1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-27 23:50:30 -08:00
Commit graph

165763 commits

Author SHA1 Message Date
John Wiegley
2efc869866 Merge branch 'master' into texinfo-wip 2022-11-15 08:22:04 -08:00
John Wiegley
9b476ae71c Merge pull request from skangas/gnu-elpa
GitHub-reference: https://github.com/jwiegley/use-package/issues/1017
2022-11-15 08:21:22 -08:00
Eli Zaretskii
ab70ab19be Fix the MS-Windows build due to use of a new TS function
* src/treesit.c (ts_tree_get_changed_ranges) [WINDOWSNT]: Define,
load from the library, and call through a function pointer.
2022-11-15 16:54:41 +02:00
Vibhav Pant
7d5cf08de9
; .clang-format: Support macros in comp.c, align operands correctly.
* .clang-format (WhitespaceSensitiveMacros): Add comp.c macros that
stringify arguments, telling clang-format to not format them.
(AlignOperands): Set to Align, to make clang-format correctly align
multi-line expressions involving binary and ternary expressions.
(ForEachMacros): Add FOR_EACH_ALIST_VALUE.
2022-11-15 20:18:44 +05:30
Po Lu
c63d77ac6b Fix last change again
* src/frame.c (Freconsider_frame_fonts): Apply value of default
face again.  (bug#59283)
2022-11-15 21:42:59 +08:00
Po Lu
c6df541783 More fixes to last change
* lisp/dynamic-setting.el (font-setting-change-default-font):
Call `reconsider-frame-fonts'.
* src/frame.c (Freconsider_frame_fonts): New function.
(syms_of_frame): Add new function.
2022-11-15 19:48:39 +08:00
Po Lu
833e60ae1a Fix recent Cairo xsettings changes
* lisp/dynamic-setting.el (font-setting-change-default-font):
Instead of setting the font frame parameter, just clear the font
and face cache and redraw the display.  This will re-open all
fonts as well.
* src/ftcrfont.c (ftcrfont_get_default_font_options): New
function.
* src/ftfont.h: Export.
* src/xsettings.c (apply_xft_settings): Call that function to
obtain the default font settings on Cairo.  (bug#58912,
bug#59283, bug#59271)
2022-11-15 19:48:39 +08:00
Yuan Fu
8175497cca
; Enable highlighting error in c-ts-mode--base-mode
I expect this to be turned off by default. but turn this on for
demonstration for now.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode): Enable error.
2022-11-15 02:39:03 -08:00
Yuan Fu
63f8a838ec
Make tree-sitter fontification automatically update
Now nodes that are affected and changed during re-parse will be
correctly refontified.  Nodes can change even if it corresponding text
wasn't edited: additional text can complete the parse tree and resolve
error nodes, for example.

* lisp/progmodes/python.el (python-mode): Create Python parser before
calling treesit-major-mode-setup.
* lisp/treesit.el (treesit--font-lock-notifier): New function.
(treesit-major-mode-setup): Register fontifier with every existing
parser.
2022-11-15 02:30:50 -08:00
Yuan Fu
e0760599b0
Remove the contextual hack in tree-sitter fontification
We now have a better facility that can replace the contextual
hack. The C part is in the previous commit, and the Lisp part work
will be in the next commit.

* doc/lispref/modes.texi (Parser-based Font Lock): Update manual.
* lisp/progmodes/js.el (js--treesit-font-lock-settings)
* lisp/progmodes/python.el (python--treesit-settings)
* lisp/progmodes/ts-mode.el (ts-mode--font-lock-settings): Stop marking
contextual nodes.
* lisp/treesit.el (treesit-font-lock-contextual-post-process): Remove
function.
(treesit-font-lock-fontify-region): Remove code processing contextual
nodes.
2022-11-15 02:22:41 -08:00
Yuan Fu
34e50dc4a2
Allow tree-sitter to notify parse-tree changes
* src/treesit.c (treesit_call_after_change_functions): New function.
(treesit_ensure_parsed): Call treesit_call_after_change_functions
right after re-parse.
(make_treesit_parser): Initialize after_change_functions.
(Ftreesit_parser_notifiers)
(Ftreesit_parser_add_notifier)
(Ftreesit_parser_remove_notifier): New functions.
* src/treesit.h (Lisp_TS_Parser): New field after_change_functions.
2022-11-15 02:16:11 -08:00
Stefan Kangas
8cf8631c69 Fix makeinfo warnings
Resolves https://github.com/jwiegley/use-package/issues/962
2022-11-15 09:41:47 +01:00
Yuan Fu
06db8015ea
Extract out treesit_make_ranges
* src/treesit.c (treesit_make_ranges): New function.
(Ftreesit_parser_included_ranges): Use treesit_make_ranges.
2022-11-15 00:31:42 -08:00
Stefan Kangas
a6b1b62763 Use two spaces to end sentences 2022-11-15 09:21:22 +01:00
Stefan Kangas
6a26c55d70 Recommend GNU ELPA over MELPA 2022-11-15 08:54:56 +01:00
Stefan Kangas
0ac626f1d4 Use substitute-command-keys for buffer-menu help
* lisp/buff-menu.el (buffer-menu--display-help): New function.
(buffer-menu, buffer-menu-other-window): Fontify key bindings
using substitute-command-keys.
(Buffer-menu-delete): Advertise key binding as 'd'.
(Buffer-menu-this-window): Advertise key binding as 'f'.
2022-11-15 08:45:02 +01:00
Stefan Kangas
4e8b72efc8 manual: Regenerate texi file 2022-11-15 08:14:47 +01:00
Stefan Kangas
222c297032 ; Auto-commit of loaddefs files. 2022-11-15 05:09:10 +01:00
Stefan Kangas
9db6da5449 Add face to key bindings suggested by M-x
* lisp/simple.el (execute-extended-command--describe-binding-msg):
Use 'help-key-binding' face for keybinding.
2022-11-15 04:19:36 +01:00
John Wiegley
ae301ad36d Merge pull request from skangas/checkdoc
GitHub-reference: https://github.com/jwiegley/use-package/issues/1015
2022-11-14 12:07:34 -08:00
John Wiegley
5dad5ff0fe Merge pull request from skangas/ci
GitHub-reference: https://github.com/jwiegley/use-package/issues/1013
2022-11-14 12:07:06 -08:00
Yuan Fu
ecb216fd93
Don't highlight syntax error in c-ts-mode
* lisp/progmodes/c-ts-mode.el (c-ts-mode--base-mode): Remove error
feature.
2022-11-14 10:34:27 -08:00
Robert Pluim
56026242e4 Explain how to bind keys to non-ASCII sequences
* doc/emacs/custom.texi (Init Rebinding): Explain how to use `kbd'
when binding keys to non-ASCII sequences.
2022-11-14 17:16:40 +01:00
Po Lu
723ceaca1d Make C-x 5 o work on GNOME Shell-like Wayland compositors
* src/pgtkterm.c (pgtk_free_frame_resources)
(fill_background_by_face)
(pgtk_draw_glyphless_glyph_string_foreground)
(pgtk_draw_window_cursor): Fix coding style.
(pgtk_focus_frame): Use gtk_window_present_with_time whenever
possible.
(key_press_event): Set the last user time.
(pgtk_display_info_for_display): New function.
(key_release_event, construct_mouse_click, button_event): Set
the last user time.
(scroll_event, pgtk_parse_color, syms_of_pgtkterm)
(pgtk_begin_cr_clip): Fix coding style.
* src/pgtkterm.h (struct pgtk_output): New field
`last_user_time'.
2022-11-14 19:06:37 +08:00
Alan Mackenzie
7e493b1773 CC Mode: Prevent over-eager recognition of a variable as a found type
This fixes bug #59233.  It occurred in the C source code fragment

    open_replies = alloca (nproviders )

, where typing a * before the closing parenthesis caused nproviders to be
prematurely recognized as a type.

* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 18 - set
unsafe-maybe to t, when needed.
2022-11-14 09:47:14 +00:00
Yuan Fu
0d195584f2
; Remove some tree-sitter tests
* test/src/treesit-tests.el (treesit-parser-supplemental): Remove
treesit-set-ranges, and treesit-get-ranges, as these functions are
removed.
2022-11-14 01:23:45 -08:00
Theodor Thornhill
829c7e3566
Fix some inconsistencies in *-ts-modes
(c-ts-mode--base-mode): Extract comment-* so that we can separate
between C and C++.
(c-ts-mode, c++-ts-mode): Set comment-* variables.

* lisp/progmodes/css-ts-mode.el (css-ts-mode): Add electric-indent.

* lisp/progmodes/java-ts-mode.el
(java-ts-mode--imenu): Add categories.  Only display categories that
exist in the file.
(java-ts-mode): Add electric-indent.

* lisp/progmodes/json-ts-mode.el
(json-ts-mode): Add electric-indent.

* lisp/progmodes/ts-mode.el
(ts-mode--font-lock-settings): Whitespace cleanup.
(ts-mode): Add electric-indent.
2022-11-14 01:22:38 -08:00
Yuan Fu
7e9c2e2952
; * test/src/treesit-tests.el (treesit-node-check): New test. 2022-11-14 00:54:54 -08:00
Yuan Fu
3a0c94ac0b
Remove feature that checks whether tree-sitter node "has changes"
First of all, we signal error on using an outdated node, so if a node
has changes, calling treesit-node-check would only raise an error.
Besides, in order to properly answer whether a node has changed, we
would have to update the node as the buffer is edited, which we don't
do right now.

* doc/lispref/parsing.texi (Accessing Node Information): Remove
relevant manual text.
* src/treesit.c (Ftreesit_node_check): Remove docstring mentions,
remove the branch for "has-changes".
(syms_of_treesit): Remove has-changes.
2022-11-14 00:51:54 -08:00
Po Lu
83a497ee87 Prevent crashes upon trying to focus a child frame on click
* src/xterm.c (handle_one_xevent): Do not try to activate
override-redirect frames.  Explain why.
(x_focus_frame): Catch errors around XSetInputFocus.
2022-11-14 14:07:04 +08:00
Stefan Kangas
ff30d22909 Various checkdoc fixes 2022-11-14 02:18:43 +01:00
Dmitry Gutov
c0474ca21d Hardcode "-name" instead of using find-name-arg
* lisp/progmodes/project.el (project--files-in-directory):
Hardcode "-name" instead of using find-name-arg (bug#59023).
2022-11-14 02:19:10 +02:00
John Wiegley
971634e3f9 Merge pull request from bhankas/master
GitHub-reference: https://github.com/jwiegley/use-package/issues/1011
2022-11-13 15:22:50 -08:00
Stefan Kangas
43254ae62f Fix building on Emacs 24.3
This fixes the following error:
use-package-core.el:60:32:Error: Cannot open load file: subr-x
2022-11-13 23:26:44 +01:00
Stefan Kangas
45e6ee1371 Fix tests on Emacs 26 or older
This fixes the following error in Emacs 25.3:

In toplevel form:
bind-key.el:549:1:Error: the function ‘mapcan’ is not known to be defined.
2022-11-13 23:26:44 +01:00
Juri Linkov
9d5fc2c7eb * lisp/minibuffer.el (set-message-functions): New user option.
(set-message-function): Change the default from
'set-minibuffer-message' to 'set-message-functions'.
'set-minibuffer-message' is set as the default value
of the user option 'set-message-functions'.
(set-message-functions): New function.
(inhibit-message-regexps): New customizable variable (bug#52314).
(inhibit-message): New function.
(multi-message-timeout, multi-message-max): New defcustoms.
(multi-message-separator, multi-message-list): New variables.
(set-multi-message): New function.
2022-11-13 20:57:50 +02:00
Stefan Kangas
a5bf6fb526 Fix suggest-key-bindings displaying key as command
* lisp/simple.el (execute-extended-command--describe-binding-msg):
New function factored out from...
(execute-extended-command): ...here.  Fix bug where a key binding was
displayed as a command with 'suggest-key-bindings'.  (Bug#59247)
* test/lisp/simple-tests.el
(simple-execute-extended-command--describe-binding-msg): New test.
2022-11-13 19:46:02 +01:00
Juri Linkov
443bd35e86 * lisp/tab-bar.el: More improvements for tab-bar-auto-width (bug#59208)
(tab-bar-auto-width): Use add-face-text-property instead of propertize.
Prevent from going into infinite loops.  More optimizations.
(tab-bar-format-align-right): Use add-face-text-property, not propertize.
2022-11-13 20:16:17 +02:00
Ingo Lohmar
7d53164162 Eglot: fix null scopeUri regression in workspace/configuration
* lisp/progmodes/eglot.el (eglot-handle-request):
Commit 1a2d603bb3 changed
`eglot--uri-to-path' to return a nil uri untouched.  (Before,
`url-unhex-string' turned the parsed all-nil uri record into the empty
string.)

A nil return value must now be handled in the caller, do that for the
workspace/configuration handler to avoid an uncaught error.
2022-11-13 17:48:36 +01:00
Stefan Kangas
ae1a6b5bdf ; * lisp/simple.el (execute-extended-command): Improve comments. 2022-11-13 16:53:31 +01:00
Stefan Kangas
90a7dee79d New test for execute-extended-command helper defun
* test/lisp/simple-tests.el
(simple-execute-extended-command--shorter): New test.
2022-11-13 15:34:02 +01:00
Stefan Kangas
73c03d64ce Prefer defvar-keymap in sql.el
* lisp/progmodes/sql.el (sql-interactive-mode-map, sql-mode-map):
Prefer defvar-keymap.
2022-11-13 15:17:07 +01:00
Davide Masserut
ae9e441415 Add new Go modes to eglot-server-programs
* lisp/progmodes/eglot.el (eglot-server-programs): Add new major modes
for Go to be used with gopls.  (Bug#59245)
2022-11-13 14:40:45 +01:00
Po Lu
7a9beac461 Fix bug#59075
* src/nsimage.m (ns_can_use_native_image_api): Do not use native
image APIs for SVG images when RSVG is present.  (bug#59075)
2022-11-13 17:30:49 +08:00
Eli Zaretskii
3a5c4bdc0c Fix crash on MS-Windows due to memory-allocation problem in treesit.c
* src/treesit.c (treesit_load_language): Use 'xstrdup'/'xfree'
instead of 'strdup'/'free', to prevent crashes on MS-Windows,
where we must use our own implementation of 'malloc'/'free',
whereas 'strdup' uses the default implementation in the MS-Windows
C runtime library.
2022-11-13 10:51:42 +02:00
Po Lu
756373a772 Fix warnings without XCB or XFixes
* src/xterm.c (x_term_init): Don't USE_SAFE_ALLOCA or call
SAFE_FREE outside of where it is actually used.  For some reason
the compiler still emitted warnings despite the ((void)
SAFE_ALLOCA (0)) statement.
2022-11-13 15:35:02 +08:00
Eli Zaretskii
695dbd3db4 ; Improve documentation of text-scale adjust commands
* lisp/face-remap.el (global-text-scale-adjust)
(text-scale-adjust): Doc fixes.  (Bug#59122)
2022-11-13 08:56:35 +02:00
Po Lu
47b377f64b Prevent non-local exits from ns-in-echo-area
* src/nsterm.m (ns_in_echo_area_1):
(ns_in_echo_area_2):
(ns_in_echo_area): New functions.
([EmacsView firstRectForCharacterRange:]): Call them instead.
(syms_of_nsterm): New defsym.
2022-11-13 09:04:25 +08:00
Yuan Fu
908aab6144
Improve tree-sitter imenu for c-mode and js-mode
Instead of a flat list, now categorize imenu entries into categories
like "Function", "Variable", "Class", etc.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu-1): Handle more edge
cases.
(c-ts-mode--imenu): Categorize menu entries.
* lisp/progmodes/js.el (js--treesit-imenu-type-alist): Remove variable.
(js--treesit-imenu-label): Remove function.
(js--treesit-imenu-1): Use the name alone for labels.
(js--treesit-imenu): Categorize menu entries.
2022-11-12 15:57:02 -08:00
Yuan Fu
c78dc25a53
; Minor typo fixes for tree-sitter modes
* etc/NEWS: Fix typos.  Change Tree-sitter to tree-sitter.
* lisp/progmodes/c-ts-mode.el
* lisp/progmodes/css-ts-mode.el
* lisp/progmodes/java-ts-mode.el
* lisp/progmodes/json-ts-mode.el: Change Tree Sitter to tree-sitter.
Fix typo.
2022-11-12 15:02:59 -08:00