1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-06 23:51:24 -08:00
Commit graph

170740 commits

Author SHA1 Message Date
Yuan Fu
f63bcf2dfe
Fix treesit--indent-1 regarding local parsers
Take this code as an example:

1 class Foo
2 {
3     /**
4      * Block comment
5      */
6     function foo($c) {
7     }
8 }

Suppose the block comment is covered by a local parser.  When we
indent line 3, treesit--indent-1 will try to get the local parser at
the BOL, and it'll get the local parser.  But it shouldn't use the
local parser to indent this line, it should use the host parser of
that local parser instead.

So now, if treesit--indent-1 gets a local parser, but the local
parser's root node's start coincides with BOL, treesit--indent-1 will
use the host parser to indent this line.

We also need to make treesit--update-ranges-local to save the host
parser along with the local parser, and make
treesit-local-parsers-at/on extract and return the host parser.

I also switch the two cases in the cond form in treesit--indent-1:
(null (treesit-parser-list)) and (car local-parsers), (car
local-parsers) now takes precedence.

* lisp/treesit.el (treesit-local-parsers-at):
(treesit-local-parsers-on): Add WITH-HOST parameter.
(treesit--update-ranges-local): Save the host parser to the local
overlay.
(treesit--indent-1): If the root node of the local parser is at BOL,
use the host parser instead.
2024-01-30 22:28:47 -08:00
Paul Eggert
dd177b7b88 Update from Gnulib by running admin/merge-gnulib 2024-01-30 17:23:26 -08:00
Paul Eggert
17771b2a42 ; Spelling fixes 2024-01-30 17:23:25 -08:00
Stefan Monnier
3afbab2f1d * lisp/emacs-lisp/inline.el (inline-const-val): Improve docstring 2024-01-30 13:14:32 -05:00
Eli Zaretskii
c8b9ec923f ; Rename a lexical variable in vhdl-mode.el
* lisp/progmodes/vhdl-mode.el (vhdl-speedbar-insert-hierarchy):
Rename a variable to avoid shadowing a global.  (Bug#68810)
2024-01-30 16:15:59 +02:00
Jim Porter
a470dfb7f8 Fix typo in Eshell's "du" command
This option is supposed to be "--si", for "International System of
Units", not "--is".

* lisp/eshell/em-unix.el (eshell/du): Change "is" to "si".
2024-01-29 17:33:35 -08:00
Stefan Monnier
c385e966e1 derived.el: Delete old code (bug#68625)
* lisp/emacs-lisp/derived.el (derived-mode-setup-function-name)
(derived-mode-init-mode-variables, derived-mode-set-keymap)
(derived-mode-set-syntax-table, derived-mode-set-abbrev-table)
(derived-mode-run-hooks, derived-mode-merge-keymaps)
(derived-mode-merge-syntax-tables, derived-mode-merge-abbrev-tables):
Delete functions.
2024-01-29 19:04:59 -05:00
Stefan Monnier
e625f2044a (byte-compile): Try and make it a bit more readable
* lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function):
Use `macroexp-parse-body` and only handle closures.
(byte-compile): Clarify the control and data flow a bit.
2024-01-29 18:56:19 -05:00
Andrea Corallo
cfc1779f46 * Better type comparison in comp tests
* test/src/comp-tests.el (comp-tests--type-lists-equal): New function.
(comp-tests--types-equal): Handle function types.
2024-01-29 21:24:38 +01:00
Eli Zaretskii
98c906e5be ; * lisp/minibuffer.el (minibuffer-visible-completions): Doc fix. 2024-01-29 21:21:50 +02:00
Daniel Brooks
e3620796ff Fix 'calc-math-read-preprocess-string' test (bug#66944).
Copyright-paperwork-exempt: yes
2024-01-29 14:50:45 +02:00
Po Lu
5d81371cc4 ; * src/sfnt.c: Fix standalone compilation. 2024-01-29 20:28:50 +08:00
Po Lu
59d0b353d5 * src/haiku_select.cc: Include stdckdint.h. 2024-01-29 12:17:26 +00:00
Paul Eggert
116c47874e ; Spelling fixes 2024-01-29 00:22:37 -08:00
Po Lu
0aec3117b5 Don't open a new line for long defuns being inserted at column 0
* lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Don't
open a new line for long defuns at column 0.

* test/lisp/vc/log-edit-tests.el
(log-edit-fill-entry-space-substitution): Adjust expected
results to match change.
(log-edit-fill-entry-initial-wrapping): New test.
2024-01-29 15:45:47 +08:00
Po Lu
b9f348ce1e * exec/configure.ac (OPENAT_SYSCALL): Define on MIPS. 2024-01-29 11:54:46 +08:00
Po Lu
f83d9e16d0 ; * test/lisp/vc/log-edit-tests.el: Pacify compiler warnings. 2024-01-29 11:01:33 +08:00
Po Lu
e9cf215d70 Prevent filling from mangling ChangeLog defun lists
* lisp/vc/log-edit.el (log-edit-fill-entry): Replace space
characters within defun lists with NBSPs for the duration of
`fill-region''s execution, so that they are never considered
break points.

* test/lisp/vc/log-edit-tests.el
(log-edit-fill-entry-space-substitution): New test.
2024-01-29 10:59:30 +08:00
Jim Porter
d2abe91d4b In Eshell, don't expand quoted tildes into a user's home directory
* lisp/eshell/em-dirs.el (eshell-parse-user-reference): Don't expand
quoted tildes.

* test/lisp/eshell/em-dirs-tests.el
(em-dirs-test/expand-user-reference/local)
(em-dirs-test/expand-user-reference/quoted): New tests.
2024-01-28 16:02:05 -08:00
Jim Porter
1f5a13d584 In Eshell, allow an escaped newline at the end of a command
Normally, "echo<RET>" runs the command "echo".  Likewise,
"echo\<RET><RET>" should too: we escape the first newline, and then
the second one is unescaped and should send the command input to
Eshell.  Previously, you had to press RET a third time, but now it
works as expected.

* lisp/eshell/esh-arg.el (eshell-looking-at-backslash-return): Make
obsolete.
(eshell-parse-backslash): A backslash sequence is only incomplete if
there's nothing at all after it.

* test/lisp/eshell/esh-arg-tests.el (esh-arg-test/escape/newline)
(esh-arg-test/escape-quoted/newline): Remove inaccurate comment;
escaped newlines are always special.
(esh-arg-test/escape/trailing-newline): New test.
2024-01-28 15:54:46 -08:00
Stefan Monnier
e734f8e502 xt-mouse.el: Obey mouse-wheel-*-event variables (bug#68698)
* lisp/xt-mouse.el (xterm-mouse--same-button-p): New function.
(xterm-mouse--read-event-sequence): Use it to obey
`mouse-wheel-*-event` variables.
* lisp/mwheel.el (mouse-wheel-obey-old-style-wheel-buttons):
Update docstring.
2024-01-28 18:51:11 -05:00
Stefan Kangas
71b5d5a979 ; Fix typos 2024-01-28 17:11:51 +01:00
Michael Albinus
6ebd5aa337 Merge from origin/emacs-29
e11c9f9c6e Handle wrong login program in Tramp

# Conflicts:
#	lisp/net/tramp-sh.el
2024-01-28 11:51:51 +01:00
Michael Albinus
af10fe49fb ; Merge from origin/emacs-29
The following commits were skipped:

b2db82c5ae * doc/lispref/package.texi (Multi-file Packages): Documen...
3c2baa1b95 Avoid signaling errors in emoji.el on empty input
2024-01-28 11:49:59 +01:00
Michael Albinus
e11c9f9c6e Handle wrong login program in Tramp
* lisp/net/tramp-sh.el (tramp-maybe-open-connection): Exit remote
shell when login fails.
2024-01-28 10:31:45 +01:00
Po Lu
833d2636ff ; * lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Fix typos. 2024-01-28 17:09:29 +08:00
Po Lu
adf32eb69e ; Correct typo
* lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Correct
typo in alignment constants.
2024-01-28 16:58:28 +08:00
Po Lu
d664814a8d ; New log-edit tests
* test/lisp/vc/log-edit-tests.el
(log-edit-fill-entry-confinement): Test confinement in various
contrived scenarious.
2024-01-28 16:58:28 +08:00
Po Lu
78fc49407b Improve filling of ChangeLog entries
* lisp/vc/log-edit.el (log-edit--insert-filled-defuns): Rewrite
completely.
(log-edit-fill-entry): Abandon pcase and cl-lib.
2024-01-28 16:58:28 +08:00
Paul Eggert
ad2c81082a Prefer C23 ckd_* to Gnulib *_WRAPV and *_OK macros
* src/alloc.c (android_make_lisp_symbol) [HAVE_ANDROID && !__clang__]:
* src/android.c (android_blit_copy, android_blit_xor)
(android_get_image):
* src/androidmenu.c (android_menu_show):
* src/androidselect.c (Fandroid_get_clipboard_data)
(android_notifications_notify_1):
* src/androidterm.c (android_decode_utf16)
(android_text_to_string):
* src/haiku_select.cc (be_display_notification):
* src/sfnt.c (sfnt_read_cmap_format_8, sfnt_read_cmap_format_12)
(sfnt_read_cmap_format_14, sfnt_read_cmap_table_1)
(sfnt_expand_compound_glyph_context, sfnt_poly_edges_exact)
(sfnt_read_meta_table, sfnt_read_ttc_header)
(sfnt_read_cvt_table, sfnt_read_fpgm_table)
(sfnt_read_prep_table, sfnt_make_interpreter)
(sfnt_interpret_simple_glyph, sfnt_interpret_compound_glyph_2)
(sfnt_interpret_compound_glyph, sfnt_read_default_uvs_table)
(sfnt_read_nondefault_uvs_table, sfnt_create_uvs_context)
(sfnt_read_fvar_table, sfnt_read_gvar_table)
(sfnt_read_avar_table, sfnt_read_cvar_table):
* src/sfntfont-android.c (GET_SCANLINE_BUFFER):
* src/textconv.c (really_commit_text, really_set_composing_text)
(really_replace_text, get_surrounding_text):
Prefer C2x stdckdint.h macros to intprops.h macros.
2024-01-28 00:26:44 -08:00
Paul Eggert
a3d7092114 Rename TAG_PTR to TAG_PTR_INITIALLY
* src/lisp.h (TAG_PTR_INITIALLY): Rename from TAG_PTR, since calls
can be used only as initializers, and the convention elsewhere in
lisp.c is to give these macros names ending in ‘_INITIALLY’.
This should help avoid confusion such as we recently experienced
in make_lisp_symbol_internal.  All uses changed.
2024-01-28 00:26:44 -08:00
Paul Eggert
fcf69960e8 * src/lisp.h: Improve TAG_PTR comments. 2024-01-28 00:26:44 -08:00
Paul Eggert
99a122b5b8 Fix C conformance issue in LISPSYM_INITIALLY
* src/lisp.h (LISPSYM_INITIALLY): Remove unnecessary cast to char *.
The C standard allows but does not require support for casts to
pointers in constant expressions in static initializers.
2024-01-28 00:26:44 -08:00
Eli Zaretskii
e1970c99f0 Fix "emacs -nw" on MS-Windows
* src/w32term.c (w32_flip_buffers_if_dirty): Do nothing if F is
not a GUI frame.  This avoids rare crashes in "emacs -nw".
* src/w32console.c (initialize_w32_display): Set the
ENABLE_EXTENDED_FLAGS bit in 'prev_console_mode'.
2024-01-28 10:19:48 +02:00
Jim Porter
c4d16909fa ; Be more strict with command arguments for a few Eshell commands
* lisp/eshell/em-dirs.el (eshell/pwd):
* lisp/eshell/em-unix.el (eshell/whoami):
* lisp/eshell/esh-proc.el (eshell/jobs): Don't accept arguments.
2024-01-27 22:21:29 -08:00
Jim Porter
a3cd284b90 Support setting umask symbolically in Eshell
* lisp/eshell/em-basic.el (eshell/umask): Handle setting umask
symbolically, and make setting umask take precedence over "-S".

* test/lisp/eshell/em-basic-tests.el
(em-basic-test/umask-print-numeric, em-basic-test/umask-read-symbolic,
em-basic-test/umask-set): Rename to...
(em-basic-test/umask/print-numeric)
(em-basic-test/umask/print-symbolic, em-basic-test/umask/set-numeric):
... these.
(em-basic-test/umask/set-symbolic, em-basic-test/umask/set-with-S):
New tests.

* etc/NEWS: Announce this change.
2024-01-27 22:21:23 -08:00
Yuan Fu
236317e5d2
Fix treesit-range-rules
* lisp/treesit.el (treesit-range-rules): Reset :local like other
keywords.  The other chunk is indentation fix.
2024-01-27 22:04:30 -08:00
Eli Zaretskii
6d76e39912 ; Fix last change in package.texi
* doc/lispref/package.texi (Multi-file Packages): Fix wording and
markup.  (Bug#65027)
2024-01-28 07:43:25 +02:00
Jim Porter
b2db82c5ae * doc/lispref/package.texi (Multi-file Packages): Document ".elpaignore".
(cherry picked from commit 744a10a4d7)
2024-01-28 03:51:48 +01:00
Jim Porter
744a10a4d7 * doc/lispref/package.texi (Multi-file Packages): Document ".elpaignore". 2024-01-27 12:31:32 -08:00
Jim Porter
3c680968e4 Fix command replacement with the Eshell builtin versions of "sudo" and "doas"
This is particularly important when the inner command to execute is an
alias.  Aliases throw 'eshell-replace-command' too, so we want to do
this in two phases: first, replace the "sudo"/"doas" with a
let-binding of 'default-directory', and then later, let the alias code
do its own replacement (bug#68074).

* lisp/eshell/em-tramp.el (eshell/sudo, eshell/doas): Use
'eshell-replace-command' to wrap the inner command.
* test/lisp/eshell/em-tramp-tests.el (mock-eshell-named-command):
Remove.
(em-tramp-test/sudo-basic, em-tramp-test/sudo-user)
(em-tramp-test/doas-basic, em-tramp-test/doas-user): Catch
'eshell-replace-command'.
2024-01-27 12:22:57 -08:00
Eli Zaretskii
aa386cd92f ; * src/pdumper.c: Fix comments. 2024-01-27 22:21:11 +02:00
Konstantin Kharlamov
54c6588952 Support a local repo as URL in 'treesit-language-source-alist'
Sometimes people may need to bisect to find specific revision
in a grammar library's repo.  In this case they'd want to point
the URL to the local repo to avoid cloning it on every rebuild.
So add support for a directory instead of URL in
'treesit-language-source-alist'.
* lisp/treesit.el (treesit--install-language-grammar-1): Test
if URL is a local directory.  Then if it is, avoid cloning the
repo and removing the path on success.
(treesit--git-clone-repo): Factor out the code for cloning to
a separate function.
(treesit--git-checkout-branch): A helper to checkout the
revision for cases where we didn't clone the repo but want it
to point the revision.  (Bug#68579)
2024-01-27 21:18:27 +02:00
Manuel Giraud
12afe75cf7 Enable marking tagged with ls -F
Bug#68637

* lisp/image/image-dired-dired.el (image-dired-mark-tagged-files):
Enable marking tagged for executable and symlink images when
'dired-listing-switches' includes -F.
2024-01-27 20:44:01 +02:00
Eli Zaretskii
6da9dc9048 ; * lisp/visual-wrap.el: Fix typos. 2024-01-27 19:18:16 +02:00
Eli Zaretskii
37c0607241 ; * lisp/visual-wrap.el (visual-wrap-fill-context-prefix): Doc fix. 2024-01-27 19:15:00 +02:00
Eli Zaretskii
58f0603d40 Allow users to opt out of following Windows Dark mode
* src/w32fns.c (globals_of_w32fns) <w32-follow-system-dark-mode>:
New variable.
(w32_applytheme): Disable application of Dark mode if
'w32-follow-system-dark-mode' is nil.

* etc/NEWS:
* doc/emacs/msdos.texi (Windows Misc): Document
'w32-follow-system-dark-mode'.
2024-01-27 19:11:22 +02:00
Stefan Monnier
3c4b6823c3 * src/pdumper.c (Fdump_emacs_portable): Simplify commit 16a16645f5 2024-01-27 11:15:54 -05:00
Eli Zaretskii
4e5dd1a796 ; * doc/misc/calc.texi (Fractions): Fix typos. (Bug#66944) 2024-01-27 16:47:10 +02:00
Daniel Brooks
77d9d05df8 Calc parses fractions written using U+2044 FRACTION SLASH
Fractions of the form 123⁄456 are handled as if written 123:456. Note
in particular the difference in behavior from U+2215 DIVISION SLASH
and U+002F SOLIDUS, which result in division rather than a rational
fraction.
* lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a
colon for any fraction slash.  (Bug#66944)

* test/lisp/calc/calc-tests.el (calc-frac-input): Test various
fraction types.

* etc/NEWS:
* doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed
fractions.

Copyright-paperwork-exempt: yes
2024-01-27 16:42:47 +02:00