Juanma Barranquero [Fri, 16 Dec 2022 17:36:42 +0000 (18:36 +0100)]
; * lisp/bs.el: Small doc and whitespace fixes
Eli Zaretskii [Fri, 16 Dec 2022 16:26:14 +0000 (18:26 +0200)]
New option for selecting symbols by double-clicking
* lisp/mouse.el (mouse-1-double-click-prefer-symbols): New user
option.
(mouse-skip-word): If 'mouse-1-double-click-prefer-symbols' is
non-nil, skip over the entire symbol at point. (Bug#60080)
Mattias Engdegård [Thu, 15 Dec 2022 10:22:06 +0000 (11:22 +0100)]
Closures are always non-nil
* lisp/emacs-lisp/byte-opt.el (byte-compile-trueconstp):
Treat closures as true in boolean context.
Stefan Monnier [Fri, 16 Dec 2022 16:00:53 +0000 (11:00 -0500)]
tab-bar.el: Fix "void-function cl--set-substring" error
* lisp/tab-bar.el: Use #' to quote function names.
Try and fit within 80 columns.
(tab-bar--load-buttons): Silence compiler warnings about `icons` functions.
(tab-bar-auto-width): Avoid the use of `substring` as a gv-place
because it requires `cl-lib` which we don't (want to) preload.
[ Maybe a better solution would be to not preload tab-bar.el. ]
Stefan Kangas [Fri, 16 Dec 2022 07:47:27 +0000 (08:47 +0100)]
; Fix merge errors
Stefan Kangas [Fri, 16 Dec 2022 07:45:06 +0000 (08:45 +0100)]
Merge from origin/emacs-29
033071692c7 ; Fix typos
f4a513344d9 Add lambda_expression-rule to java-ts-mode (bug#60091)
546aed35434 eglot: Add support for new language server csharp-ls
cb761eb7ac4 Use the new tree-sitter commands
037407ad95a Add "function" feature to python-ts-mode (bug#59977)
fee2efe1b03 Add go-ts-mode and go-mod-ts-mode (Bug#60025)
e8f7ab67ad1 Add basic support for hideshow in python-ts-mode (bug#60044)
cac070b23e4 Add "this" keyword to java-ts-mode (bug#60086)
c8d75046a2f When completing relative project file names, use relative...
3b618d0e3ed Avoid segfaults due to invalid selected-window's buffer
# Conflicts:
# lisp/progmodes/sh-script.el
Stefan Kangas [Fri, 16 Dec 2022 07:33:47 +0000 (08:33 +0100)]
Fix typo in rcirc function name
* lisp/net/rcirc.el (rcirc-format-strike-through): Rename from
'rcirc-format-strike-trough'. Make old name into obsolete
function alias. Update all uses.
Stefan Kangas [Thu, 15 Dec 2022 01:41:20 +0000 (02:41 +0100)]
; Fix typos
Stefan Kangas [Fri, 16 Dec 2022 06:49:17 +0000 (07:49 +0100)]
Fix typo in rcirc variable name
* lisp/net/rcirc.el (rcirc-track-abbreviate-flag): Rename from
misspelled 'rcirc-track-abbrevate-flag'. Make old name into
obsolete variable alias.
* doc/misc/rcirc.texi (Channels): Update above variable name.
Juanma Barranquero [Fri, 16 Dec 2022 06:10:28 +0000 (07:10 +0100)]
Fix lisp/bs.el change in commit
e0a057c16b of 2022-12-07
* lisp/bs.el (bs-default-action-list): Before creating a window
first try `display-buffer-reuse-window', but make sure it never
chooses a window in another frame.
Jim Porter [Mon, 12 Dec 2022 04:19:57 +0000 (20:19 -0800)]
; Rename 'eshell-flatten-args' token to 'eshell-splice-immediately'
This is for symmetry with 'eshell-splice-args' (which performs a
splice later on). Since this is just an internal symbol not exposed
to users, changing it is safe.
* lisp/eshell/esh-arg.el (eshell-parse-arguments, eshell-finish-arg):
Use 'eshell-splice-immediately'.
Jim Porter [Wed, 9 Nov 2022 06:49:23 +0000 (22:49 -0800)]
Add support for the "splice operator" in Eshell
This allows splicing lists in-place in argument lists, which is
particularly important when defining aliases using the '$*' special
variable (bug#59960).
* lisp/eshell/esh-var.el (eshell-parse-variable): Add support for the
splice operator.
(eshell-interpolate-variable): Let 'eshell-parse-variable' handle
adding 'eshell-escape-arg'.
(eshell-complete-variable-reference): Handle the splice operator.
* lisp/eshell/esh-arg.el (eshell-concat-groups)
(eshell-prepare-splice): New functions...
(eshell-resolve-current-argument): ... use them.
(eshell-splice-args): New function.
* lisp/eshell/esh-cmd.el (eshell-rewrite-named-command): Handle
'eshell-splice-args'.
* lisp/eshell/esh-util.el (eshell-list-to-string): New function...
(eshell-flatten-and-stringify): ... use it.
* lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Remove
'eshell-splice-args' sigils in Eshell command forms so that we can
perform completion on splice-expansions.
* lisp/eshell/em-unix.el (eshell-complete-host-reference): Don't try
to complete arguments containing "$@".
* test/lisp/eshell/esh-var-tets.el (esh-var-test/interp-list-var)
(esh-var-test/interp-list-var-concat, esh-var-test/interp-var-splice)
(esh-var-test/interp-var-splice-concat)
(esh-var-test/quoted-interp-list-var)
(esh-var-test/quoted-interp-list-var-concat)
(esh-var-test/quoted-interp-var-splice)
(esh-var-test/quoted-interp-var-splice-concat): New tests.
* test/lisp/eshell/em-alias-tests.el
(em-alias-test/alias-all-args-var-splice): New test.
* doc/misc/eshell.texi (Dollars Expansion): Explain the splice
operator.
(Aliases): Expand documentation and use '$@*'.
(Built-ins, Bugs and Ideas): Use '$@*' where appropriate.
* etc/NEWS: Announce this change.
Jim Porter [Sun, 11 Dec 2022 04:52:28 +0000 (20:52 -0800)]
Support completion of variables with the length operator in Eshell
These are forms like '$#VARIABLE'.
* lisp/eshell/esh-var.el (eshell-complete-variable-reference): Support
the length operator.
Theodor Thornhill [Thu, 15 Dec 2022 13:54:17 +0000 (14:54 +0100)]
Add lambda_expression-rule to java-ts-mode (bug#60091)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules): New
rule.
Jostein Kjønigsen [Thu, 15 Dec 2022 12:44:39 +0000 (13:44 +0100)]
eglot: Add support for new language server csharp-ls
C# has two popular language servers: Omnisharp Roslyn (already
supported) and csharp-ls (newer, more performant).
* lisp/progmodes/eglot.el: Add new C# language server
csharp-ls. (Bug#60089)
Yuan Fu [Fri, 16 Dec 2022 01:44:07 +0000 (17:44 -0800)]
Use the new tree-sitter commands
* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-valid-p)
(c-ts-mode--defun-skipper): New functions.
(c-ts-base-mode): Setup defun navigation.
* lisp/progmodes/sh-script.el (bash-ts-mode): Setup defun navigation.
* lisp/treesit.el (treesit-beginning-of-defun)
(treesit-end-of-defun): Change to new implementation, which is
intended to be used as commands.
(treesit-major-mode-setup): Setup remap for beginning/end-of-defun
commands.
Yuan Fu [Fri, 16 Dec 2022 01:25:06 +0000 (17:25 -0800)]
Add "function" feature to python-ts-mode (bug#59977)
* lisp/progmodes/python.el (python--treesit-settings): Add feature.
(python-ts-mode): Add feature. And fix indentation for the
python-indent-guess-indent-offset code.
Randy Taylor [Sun, 11 Dec 2022 23:41:16 +0000 (18:41 -0500)]
Add go-ts-mode and go-mod-ts-mode (Bug#60025)
* admin/notes/tree-sitter/build-module/batch.sh:
* admin/notes/tree-sitter/build-module/build.sh: Add go-mod support.
* etc/NEWS: Mention them.
* lisp/progmodes/eglot.el (eglot-server-programs): Add them.
* lisp/progmodes/go-ts-mode.el: New major modes with
tree-sitter support.
Yuan Fu [Fri, 16 Dec 2022 01:16:28 +0000 (17:16 -0800)]
Add basic support for hideshow in python-ts-mode (bug#60044)
* lisp/progmodes/python.el (python-base-mode): Add setup for
python-ts-mode.
Theodor Thornhill [Thu, 15 Dec 2022 10:48:32 +0000 (11:48 +0100)]
Add "this" keyword to java-ts-mode (bug#60086)
* lisp/progmodes/java-ts-mode.el
(java-ts-mode--font-lock-settings): Add the node to the keyword
feature.
Juanma Barranquero [Thu, 15 Dec 2022 23:21:16 +0000 (00:21 +0100)]
* lisp/bs.el: Use modern height preserving method instead of hooks
* lisp/bs.el (bs--track-window-changes, bs--remove-hooks): Remove.
(bs-mode): Do not set window-change tracking hooks.
(bs--set-window-height): Pass PRESERVE-SIZE to `fit-window-to-buffer'.
Dmitry Gutov [Thu, 15 Dec 2022 22:45:55 +0000 (00:45 +0200)]
When completing relative project file names, use relative history
* lisp/progmodes/project.el: Require 'cl-lib'.
* lisp/progmodes/project.el (project--read-file-cpd-relative):
Pre-process history entries around completing-read (bug#58447).
This includes both filtering by common-parent-directory prefix and
mapping into relative names.
Eli Zaretskii [Thu, 15 Dec 2022 21:39:58 +0000 (23:39 +0200)]
Avoid segfaults due to invalid selected-window's buffer
* lisp/startup.el (initial-scratch-message): Don't use \\[...]
commands for substitute-command-keys.
* lisp/simple.el (get-scratch-buffer-create): Don't call
substitute-command-keys on initial-scratch-message, to avoid
signaling an error in rare cases. (Bug#60096)
Stefan Kangas [Thu, 15 Dec 2022 20:13:16 +0000 (21:13 +0100)]
Merge from origin/emacs-29
99aa00e6e34 Revert
21b387c39bd with last-minute hasty changes (bug#60...
386d6e74d83 Replace an erroneous eq with an equal in cc-defs.el
eb069470631 * lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' i...
26243f7b65e compile.el: Fix regression with nb of errors in modeline
6e2923d80f8 Make tab-bar-tab-group-format-function backwards-compatib...
b211a63455c Make tab-bar-tab-group-format-function also handle curren...
367022f316e Ensure package directories for source packages from check...
3a633bdd6df ; * etc/NEWS: Fix recent changes.
6aa5d16c643 * test/README (SELECTOR): Add eglot-tests.el to remote fi...
bb27be36ddf Fix bug#60060 in Tramp
d4c2aa4f913 ; * lisp/net/tramp-crypt.el: Fix comment.
8404253d17a * .gitignore: Ignore GDB history files.
12684c3a199 Mention 'tree-sitter' in user manual and NEWS
49d7e0cec6a ; * etc/NEWS: Rearrange entries for tree-sitter supported...
0ad2112a2f0 ; Announce 'toml-ts-mode' in NEWS.
# Conflicts:
# etc/NEWS
Stefan Kangas [Thu, 15 Dec 2022 20:13:15 +0000 (21:13 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
98ea7054a71 ; Auto-commit of loaddefs files.
Stefan Kangas [Thu, 15 Dec 2022 20:13:14 +0000 (21:13 +0100)]
Merge from origin/emacs-29
a15cd55044c ; Don't quote nil in comments
da39200c4be ; Checkdoc fixes in dired-aux.el
fd403a5c5a8 Fix ruby-add-log-current-method after nested class defini...
2ca06aed7b3 Add indent rules to js/typescript/tsx-ts-mode (bug#60074)
a54d5f500c1 Improve fontification in csharp-ts-mode (bug#59897)
3db2f560bb7 Revert "Add expression for generic_name in csharp-ts-mode"
1985762fbd7 Introduce support for TOML config-format
622838b957e Fix handling of % when searching in .tex or .dtx files
3b226b60248 Treat C++ classes as defuns in C Tree-sitter mode (bug#60...
480f41c7deb Add < and > to the syntax table in c++-ts-mode (bug#60049)
fbf0d3b796a Improve fontifications in Typescript mode
f93a5180a61 Update the documentation of overlays (bug#59996)
d51b66ed540 ; Improve description of scoping and let-bindings
752f9dde631 ; Fix a typo in window.el
102a3e3b445 Don't send erc-sasl-user as USER command argument
f0c90888781 Set erc-network to a "given" ID instead of failing
09c0c6b2ba3 Limit casemapping to appropriate ranges in ERC
44b04c0ac1c Actually accept non-symbols as IDs in erc-open
75f26646d4a ; Be nicer when updating browse-url var in erc-compat
0155fc67be3 Respect a nil erc-session-password when reconnecting
9ac80e8a6e4 Add dedicated auth-source section in ERC manual
2d96a18cd09 ; * lisp/emacs-lisp/shortdoc.el: fix mistakes in previous...
1d3cbba7dfa ; * lisp/progmodes/cmake-ts-mode.el (auto-mode-alist): $ ...
0cc199f1a61 Better shortdoc examples
931d97bf563 Shortdoc: read and evaluate strings after :eval
be165f75332 Fix Tramp tests in eglot-tests, prefix tests uniquely
8c30cb90ba9 * lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-tem...
3efe4df1d20 Delete temp files after icalendar tests
# Conflicts:
# etc/NEWS
Stefan Kangas [Thu, 15 Dec 2022 20:13:14 +0000 (21:13 +0100)]
; Merge from origin/emacs-29
The following commit was skipped:
33e0a104649 ; * lisp/keymap.el (keymap-substitute): Doc fix. (Bug#60...
Stefan Kangas [Thu, 15 Dec 2022 20:13:13 +0000 (21:13 +0100)]
Merge from origin/emacs-29
fafcf02c856 Fix syntax tables of tree-sitter modes (bug#59807)
91b8d9b7db4 ; * admin/notes/tree-sitter/build-module/build.sh: Minor ...
1b0e282a7f8 ; Comment and stylistic change in treesit.el
489b02d03cf * doc/misc/Makefile.in (need_emacsver): Add use-package.
Juri Linkov [Thu, 15 Dec 2022 19:24:48 +0000 (21:24 +0200)]
Revert
21b387c39bd with last-minute hasty changes (bug#60048).
* lisp/simple.el (completion-list-mode-map): Unbind [up] and [down].
(previous-line-completion, next-line-completion): Remove.
Alan Mackenzie [Thu, 15 Dec 2022 19:23:19 +0000 (19:23 +0000)]
Replace an erroneous eq with an equal in cc-defs.el
* lisp/progmodes/cc-defs.el (c-looking-at-non-alphnumspace): Replace eq with
equal in the XEmacs branch.
Juri Linkov [Thu, 15 Dec 2022 19:10:28 +0000 (21:10 +0200)]
* lisp/tab-bar.el ([tab-bar]): Use 'make-sparse-keymap' instead of 'ignore'.
This helps to avoid the error in 'where-is-internal' that should
not call :filter unnecessarily (bug#9923).
Stefan Monnier [Thu, 15 Dec 2022 18:36:14 +0000 (13:36 -0500)]
compile.el: Fix regression with nb of errors in modeline
* lisp/progmodes/compile.el (compilation-mode-line-errors): Mark it as
risky-local, like `defconst` used to do for us.
Juri Linkov [Thu, 15 Dec 2022 18:03:24 +0000 (20:03 +0200)]
Make tab-bar-tab-group-format-function backwards-compatible (bug#60073)
* lisp/tab-bar.el (tab-bar--format-tab-group): Add condition-case
with wrong-number-of-arguments for backwards-compatibility.
(tab-bar-tab-group-format-default): Simplify.
Gabriel do Nascimento Ribeiro [Thu, 15 Dec 2022 14:58:30 +0000 (11:58 -0300)]
Make tab-bar-tab-group-format-function also handle current group
* lisp/tab-bar.el (tab-bar--format-tab-group): Call
'tab-bar-tab-group-format-default' to format current group tab.
(tab-bar-tab-group-format-default): Update function to also handle
current group tab (bug#60073).
Philip Kaludercic [Thu, 15 Dec 2022 17:21:24 +0000 (18:21 +0100)]
Ensure package directories for source packages from checkouts
* lisp/emacs-lisp/package-vc.el (package-vc-install-from-checkout):
Set the :dir entry, since `package-vc--unpack-1' assumes the field is
set, as is the case when invoking `package-vc--unpack'.
Randy Taylor [Thu, 15 Dec 2022 16:44:10 +0000 (11:44 -0500)]
; * etc/NEWS: Fix recent changes.
Michael Albinus [Thu, 15 Dec 2022 15:37:36 +0000 (16:37 +0100)]
* test/README (SELECTOR): Add eglot-tests.el to remote file using libraries.
Michael Albinus [Thu, 15 Dec 2022 15:37:16 +0000 (16:37 +0100)]
Fix bug#60060 in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-file-local-copy):
Delete `tmpfile' in case of error. (Bug#60060)
Michael Albinus [Thu, 15 Dec 2022 15:36:38 +0000 (16:36 +0100)]
; * lisp/net/tramp-crypt.el: Fix comment.
Po Lu [Thu, 15 Dec 2022 12:06:37 +0000 (20:06 +0800)]
Handle selection transfer errors earlier
* src/xselect.c (x_decline_selection_request, struct transfer)
(struct x_selection_request, x_cancel_selection_transfer)
(x_start_selection_transfer, x_continue_selection_transfer):
Give the right serial to x_ignore_errors_for_next_request.
(x_handle_selection_error): New function.
(x_reply_selection_request): Give the right serial to
x_ignore_errors_for_next_request.
* src/xterm.c (x_ignore_errors_for_next_request): New arg
`selection_serial'. All callers changed.
(x_error_handler): Call selection error handler.
* src/xterm.h (struct x_failable_request): New field
`selection_serial'.
Manuel Giraud [Thu, 15 Dec 2022 08:50:32 +0000 (09:50 +0100)]
* .gitignore: Ignore GDB history files.
Eli Zaretskii [Thu, 15 Dec 2022 08:47:11 +0000 (10:47 +0200)]
Mention 'tree-sitter' in user manual and NEWS
* doc/emacs/programs.texi (Program Modes): Mention tree-sitter and
the modes supported by it.
* etc/NEWS: Mention tree-sitter in the Installation Changes
section.
Eli Zaretskii [Thu, 15 Dec 2022 08:25:27 +0000 (10:25 +0200)]
; * etc/NEWS: Rearrange entries for tree-sitter supported modes.
Eli Zaretskii [Thu, 15 Dec 2022 08:09:25 +0000 (10:09 +0200)]
; Announce 'toml-ts-mode' in NEWS.
Stefan Kangas [Thu, 15 Dec 2022 04:11:35 +0000 (05:11 +0100)]
; Auto-commit of loaddefs files.
Stefan Kangas [Thu, 15 Dec 2022 04:11:34 +0000 (05:11 +0100)]
; Auto-commit of loaddefs files.
Stefan Kangas [Thu, 15 Dec 2022 01:24:56 +0000 (02:24 +0100)]
; Don't quote nil in comments
Stefan Kangas [Thu, 15 Dec 2022 01:22:45 +0000 (02:22 +0100)]
; Checkdoc fixes in dired-aux.el
* lisp/dired-aux.el (dired-compare-directories, dired-do-chmod)
(dired-do-chgrp, dired-do-chown, dired-do-touch)
(dired-minibuffer-default-add-shell-commands)
(dired-read-shell-command, dired-mark-prefix)
(dired-mark-postfix, dired-mark-separator, dired-kill-line)
(dired-reset-subdir-switches, dired-add-entry)
(dired-remove-file)
(dired-create-destination-dirs-on-trailing-dirsep)
(dired-maybe-insert-subdir, dired-tree-up, dired-tree-down):
Checkdoc fixes.
Dmitry Gutov [Thu, 15 Dec 2022 01:21:14 +0000 (03:21 +0200)]
Fix ruby-add-log-current-method after nested class definition
* lisp/progmodes/ruby-mode.el (ruby--add-log-current-indent):
New function.
(ruby-add-log-current-method): Use it.
Check for "class" and "module" indentation to filter out the
definitions which don't include the given position. Also try to
match "def" only once (for performance), because if the closest
one doesn't include the given position, none will.
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-add-log-current-method-after-inner-class-outside-methods)
(ruby-add-log-current-method-after-inner-class-outside-methods-with-text):
New tests.
Stefan Kangas [Wed, 14 Dec 2022 22:46:38 +0000 (23:46 +0100)]
Mark flymake diagnostic modes as non-interactive
* lisp/progmodes/flymake.el (flymake-diagnostics-buffer-mode)
(flymake-project-diagnostics-mode): Mark modes as non-interactive.
Theodor Thornhill [Wed, 14 Dec 2022 20:23:33 +0000 (21:23 +0100)]
Add indent rules to js/typescript/tsx-ts-mode (bug#60074)
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): Add in binary_expression and
jsx_fragment.
* lisp/progmodes/js.el (js--treesit-indent-rules): Add the same rules.
Jostein Kjønigsen [Thu, 8 Dec 2022 10:07:15 +0000 (11:07 +0100)]
Improve fontification in csharp-ts-mode (bug#59897)
Fixes highlighting of generic methods like the one below:
instance.MethodWithTypeArguments<Type>(...);
InClassMethodWithTypeArguments<Type>(...);
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--font-lock-settings):
Add new rule.
Yuan Fu [Wed, 14 Dec 2022 22:28:29 +0000 (14:28 -0800)]
Revert "Add expression for generic_name in csharp-ts-mode"
I applied the wrong commit, the next commit will be the right one,
sorry about that!
This reverts commit
647b6a8099f414e5a7b162efd3658e174064dfe7.
Jostein Kjønigsen [Sun, 11 Dec 2022 12:05:29 +0000 (13:05 +0100)]
Introduce support for TOML config-format
This commit introduces support for the semi-popular TOML
config-format[1] through a new major-mode: toml-ts-mode.
I've read through the full spec[2], and from what I can see this
major-mode should provide correct syntax-highligting for every sort of
config-declaration which adheres to the specification.
Besides that it also adds support for imenu and basic tree-sitter
based navigation.
[1] https://toml.io/en/
[2] https://toml.io/en/v1.0.0
Arash Esbati [Wed, 14 Dec 2022 20:17:30 +0000 (21:17 +0100)]
Fix handling of % when searching in .tex or .dtx files
* lisp/textmodes/reftex.el (reftex-compile-variables): Consider %
when building the regexp for searching only in .dtx files.
(AUCTeX bug#59638)
Daniel Martín [Tue, 13 Dec 2022 20:35:40 +0000 (21:35 +0100)]
Treat C++ classes as defuns in C Tree-sitter mode (bug#60047)
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode): Add "class_specifier"
as a node of type "defun".
Daniel Martín [Tue, 13 Dec 2022 21:28:13 +0000 (22:28 +0100)]
Add < and > to the syntax table in c++-ts-mode (bug#60049)
* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Add a
specific syntax table for C++. Consider "<" and ">" open/close
delimiters (C++ templates).
(c++-ts-mode): Use the new syntax table.
Jostein Kjønigsen [Wed, 7 Dec 2022 08:27:42 +0000 (09:27 +0100)]
Improve fontifications in Typescript mode
* lisp/progmodes/typescript-ts-mode.el: Improve fontification of
variables. (Bug#59831)
Mattias Engdegård [Wed, 14 Dec 2022 16:48:17 +0000 (17:48 +0100)]
Warn about unmatchable constant args to `eq`, `memq` etc
Add a byte-compiler warning about attempts to compare literal values
with undefined identity relation to other values. For example:
(eq x 2.0)
(memq x '("a" (b) [c]))
Such incomparable values include all literal conses, strings, vectors,
records and (except for eql and memql) floats and bignums.
The warning currently applies to eq, eql, memq, memql, assq, rassq,
remq and delq.
* lisp/emacs-lisp/bytecomp.el (bytecomp--dodgy-eq-arg)
(bytecomp--value-type-description, bytecomp--arg-type-description)
(bytecomp--warn-dodgy-eq-arg, bytecomp--check-eq-args)
(bytecomp--check-memq-args): New.
(eq, eql, memq, memql, assq, rassq, remq, delq):
Set compiler-macro property.
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings):
Amend doc string.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp--with-warning-test): Fix text-quoting-style and expand
re-warning so that it doesn't need to be a literal.
(bytecomp-warn-dodgy-args-eq, bytecomp-warn-dodgy-args-memq):
New tests.
Eli Zaretskii [Wed, 14 Dec 2022 18:13:47 +0000 (20:13 +0200)]
Update the documentation of overlays (bug#59996)
* src/buffer.c (Foverlay_recenter, Foverlay_lists): Update the doc
strings.
* lisp/subr.el (copy-overlay): Update comment.
* doc/lispref/internals.texi (Buffer Internals): Remove buffer
fields relevant to the old implementation; add the new interval
tree field.
* doc/lispref/display.texi (Overlays, Managing Overlays): Update
text to be consistent with the new implementation of overlays.
(Managing Overlays): Remove documentation of 'overlay-recenter'.
* etc/NEWS: Mention incompatible aspects of overlay
reimplementation.
Eli Zaretskii [Wed, 14 Dec 2022 15:46:16 +0000 (17:46 +0200)]
; Improve description of scoping and let-bindings
* doc/lispref/variables.texi (Local Variables, Variable Scoping):
Explain the move to lexical-binding and elaborate on 'let*'.
Suggested by Michael Heerdegen <michael_heerdegen@web.de>.
(Bug#60027)
Eli Zaretskii [Wed, 14 Dec 2022 15:08:46 +0000 (17:08 +0200)]
; Fix a typo in window.el
* lisp/window.el (switch-to-prev-buffer-skip-p): Fix typo.
Patch by Shuguang Sun <shuguang79@qq.com>. (Bug#59985)
Eli Zaretskii [Wed, 14 Dec 2022 14:53:29 +0000 (16:53 +0200)]
Make proced-tests work on more systems
* test/lisp/proced-tests.el (proced-format-test)
(proced-update-test, proced-revert-test, proced-color-test):
Remove the 'skip-unless' condition, as it is unnecessary.
(proced-refine-test, proced-refine-with-update-test): Use PID, not
Args, as the column to test, as PID is more portable.
F. Jason Park [Tue, 13 Dec 2022 07:58:03 +0000 (23:58 -0800)]
Don't send erc-sasl-user as USER command argument
* lisp/erc/erc-sasl.el (erc-sasl--send-cap-ls): Add internal switch
for sending an opening "CAP LS". The rationale for not enabling this
by default is twofold: one, it more strongly implies that ERC supports
IRCv3 client capability negotiation, which is somewhat disingenuous;
and, two, We'd still be "faking it" by firing and forgetting, and more
balls in the air makes things less predictable.
(erc--register-connection): Possibly send a "CAP LS" before anything
depending on the value of `erc-sasl--send-cap-ls'. Also, don't
attempt to send `erc-session-username' when it holds an SASL username
because the latter may contain protocol-defying characters.
* test/lisp/erc/resources/base/local-modules/fourth.eld: change user
parameter of "USER" command to reflect nick when `erc-sasl-user' is
set to `:user'. (Bug#59976.)
F. Jason Park [Tue, 13 Dec 2022 07:58:03 +0000 (23:58 -0800)]
Set erc-network to a "given" ID instead of failing
* lisp/erc/erc-networks.el (erc-networks--determine): Return the
so-called "given" ID from a non-nil `:id' keyword arg passed to `erc'
or `erc-tls'.
(erc-networks--allow-unknown-network): Add internal variable to
allow IRC session to continue despite the network being unknown.
(erc-networks--set-name): Tell the user about falling back to a given
ID when the network can't be determined. When that's so, end the
session by destroying the connection unless
`erc-networks--allow-unknown-network' is enabled. (Bug#59976.)
(erc-networks--ensure-announced): Include the fallback announced
server name in the error message.
* test/lisp/erc/erc-networks-tests.el (erc-networks--set-name): Add
dummy server process and don't expect an error to be signaled.
* test/lisp/erc/erc-scenarios-misc.el
(erc-scenarios-networks-announced-missing): Don't expect an error to
be signaled.
* test/lisp/erc/resources/networks/announced-missing/foonet.eld:
Remove "mode" match pattern.
F. Jason Park [Mon, 12 Dec 2022 03:41:43 +0000 (19:41 -0800)]
Limit casemapping to appropriate ranges in ERC
* lisp/erc/erc-common.el (erc-downcase): Use case table for
`erc-downcase' so that case conversions are limited to the ASCII
interval.
* lisp/erc/erc.el (erc-casemapping--rfc1459-strict,
erc--casemapping-rfc1459): Make these case tables instead of
translation tables. The functions in case-table.el modify the
standard syntax table, but that doesn't seem to make sense here,
right?
* test/lisp/erc/erc-tests.el (erc-downcase): Add cases showing
mappings outside of the ASCII range. (Bug#59976.)
F. Jason Park [Mon, 12 Dec 2022 03:41:43 +0000 (19:41 -0800)]
Actually accept non-symbols as IDs in erc-open
* lisp/erc/erc.el (erc-generate-new-buffer-name): Despite what it says
in the documentation, only symbols were being accepted as valid `:id'
entry-point arguments. This uses the interned `princ' representation
of the argument instead.
* test/lisp/erc/erc-scenarios-base-netid-samenet.el
(erc-scenarios-common--base-network-id-same-network): Randomly specify
a string for the ID param instead of a non-nil symbol when opening a
new connection.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common-assert-initial-buf-name): Adjust helper to allow
for non-symbol IDs. (Bug#59976.)
F. Jason Park [Mon, 12 Dec 2022 03:16:07 +0000 (19:16 -0800)]
; Be nicer when updating browse-url var in erc-compat
* lisp/erc/erc-compat.el: Be more cautious about modifying
`browse-url-default-handlers' when loading erc-compat on Emacs 28. A
user may have already added an entry for irc:// URLs before loading
`erc-compat'.
F. Jason Park [Sat, 3 Dec 2022 07:11:24 +0000 (23:11 -0800)]
Respect a nil erc-session-password when reconnecting
* lisp/erc/erc.el (erc-open): Simplify `old-vars' expression.
(erc--compute-server-password): Only compute a server password when
first connecting. For compatibility, this respects third-party code
that expects session passwords in target buffers when initially
non-nil.
* test/lisp/erc/erc-scenarios-services-misc.el
(erc-scenarios-services-auth-source-reconnect): Add new test.
* test/lisp/erc/resources/services/auth-source/recon.eld: Add new test
data file. (Bug#59858.)
F. Jason Park [Thu, 1 Dec 2022 07:10:58 +0000 (23:10 -0800)]
Add dedicated auth-source section in ERC manual
* doc/misc/erc.texi: Move auth-source description from the Password
subheading of the Advanced chapter's Connecting section to the new
Integrations section as a new node, Auth-Source, and give it a bit
more structure. Fix various misuses of xref vs. pxref. Convert URL
subheading to subsection and add anchor. Prefer "backend" as a single
word, based on usage in other manuals. Also replace loud "warning" in
SASL troubleshooting section.
* etc/ERC-NEWS: Re-link auth-source mention.
* lisp/erc/erc-sasl.el (erc-sasl-auth-source-function): Update info
node in doc string.
* lisp/erc/erc-services.el (erc-auth-source-services-function):
Re-link auth-source info node in doc string.
* lisp/erc/erc.el (erc-password, erc-auth-source-server-function,
erc-auth-source-join-function): Re-link auth-source info node in doc
strings.
Laurence Warne [Thu, 8 Dec 2022 13:39:00 +0000 (13:39 +0000)]
Add tests for proced
* test/lisp/proced-tests.el: New file.
Laurence Warne [Sat, 3 Dec 2022 21:41:57 +0000 (21:41 +0000)]
Make proced-update preserve refinements
Make proced-update preserve refinements by creating a new buffer local
variable proced-refinements which stores information about the current
refinements and is used by proced-update to further refine
proced-process-alist in the case it is non-nil. The result is that
refinements are not immediately cleared when a proced buffer is
updated with proced-auto-update-flag non-nil. proced-revert
maintains its current behaviour of clearing any active refinements.
* lisp/proced.el (proced-refinements): New buffer local variable
which tracks the current refinements.
(proced-refine): Set 'proced-refinements' variable and defer setting of
'proced-process-alist' to 'proced-update'.
(proced-update): Take into account 'proced-refinements' when setting
'proced-process-alist'.
(proced-revert): Set 'proced-refinements' to nil prior to calling
'proced-update'.
Po Lu [Wed, 14 Dec 2022 13:30:29 +0000 (21:30 +0800)]
Work around primary selection clobbering during xterm DND
* src/xterm.c (x_dnd_do_unsupported_drop): Set `deactivate-mark'
to `dont-save'. Explain why.
(syms_of_xterm): New DEFSYM `dont-save'.
Mattias Engdegård [Wed, 14 Dec 2022 13:06:46 +0000 (14:06 +0100)]
; * lisp/emacs-lisp/shortdoc.el: fix mistakes in previous commit
Mattias Engdegård [Wed, 14 Dec 2022 11:25:49 +0000 (12:25 +0100)]
; * lisp/progmodes/cmake-ts-mode.el (auto-mode-alist): $ -> \'
Mattias Engdegård [Wed, 14 Dec 2022 11:20:46 +0000 (12:20 +0100)]
Better shortdoc examples
* lisp/emacs-lisp/shortdoc.el
(symbol, comparison): New.
(string, list, number): Remove or change examples that do not have
well-defined results, such as `eq` on strings or floats.
Edit other examples for better illustrating each respective operation.
Mattias Engdegård [Wed, 14 Dec 2022 11:16:28 +0000 (12:16 +0100)]
Shortdoc: read and evaluate strings after :eval
* lisp/emacs-lisp/shortdoc.el (shortdoc--display-function):
If the parameter of :eval is a string then read, evaluate and print
the result. This was always the intention and is documented behaviour.
Michael Albinus [Wed, 14 Dec 2022 09:52:04 +0000 (10:52 +0100)]
Fix Tramp tests in eglot-tests, prefix tests uniquely
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
Use `make-nearby-temp-file'.
(eglot--call-with-tramp-test): Set `tramp-verbose' and
`default-directory'. The latter is needed for `make-nearby-temp-file'.
(eglot-test-tramp-test, eglot-test-tramp-test-2): Tag them as
:expensive-test.
(all): Prefix all tests with `eglot-test-' uniquely.
Juri Linkov [Wed, 14 Dec 2022 08:05:55 +0000 (10:05 +0200)]
* lisp/vc/vc-git.el (vc-git-checkin): Use make-nearby-temp-file (bug#60011)
Stefan Kangas [Wed, 14 Dec 2022 07:21:34 +0000 (08:21 +0100)]
Delete temp files after icalendar tests
* test/lisp/calendar/icalendar-tests.el
(icalendar-tests--get-error-string-for-export): Make sure we clean up
temporary files after test.
Stefan Kangas [Wed, 14 Dec 2022 05:38:14 +0000 (06:38 +0100)]
; * lisp/keymap.el (keymap-substitute): Doc fix. (Bug#60059)
(cherry picked from commit
1568123196cd8b57ed64e284b7deb058026be713)
Stefan Kangas [Wed, 14 Dec 2022 05:38:14 +0000 (06:38 +0100)]
; * lisp/keymap.el (keymap-substitute): Doc fix. (Bug#60059)
Kai Ma [Sat, 3 Dec 2022 22:15:42 +0000 (06:15 +0800)]
Fix syntax tables of tree-sitter modes (bug#59807)
Tree-sitter modes should use the same syntax table as the
non-tree-sitter ones.
* lisp/progmodes/js.el (js-mode-syntax-table)
(js-ts-mode)
* lisp/progmodes/python.el (python-ts-mode)
* lisp/progmodes/sh-script.el (bash-ts-mode)
Copyright-paperwork-exempt: yes
xx
Yuan Fu [Wed, 14 Dec 2022 00:24:38 +0000 (16:24 -0800)]
; * admin/notes/tree-sitter/build-module/build.sh: Minor name change.
Yuan Fu [Tue, 13 Dec 2022 23:59:29 +0000 (15:59 -0800)]
; Comment and stylistic change in treesit.el
* lisp/treesit.el (treesit-defun-skipper): Docstring change.
(treesit--navigate-defun): Comment and stylistic change.
Stefan Kangas [Tue, 13 Dec 2022 23:36:30 +0000 (00:36 +0100)]
* doc/misc/Makefile.in (need_emacsver): Add use-package.
Stefan Kangas [Tue, 13 Dec 2022 23:15:03 +0000 (00:15 +0100)]
; * etc/NEWS: Fix another merge error.
Stefan Kangas [Tue, 13 Dec 2022 23:12:52 +0000 (00:12 +0100)]
; Fix merge error
Stefan Kangas [Tue, 13 Dec 2022 23:06:29 +0000 (00:06 +0100)]
Merge from origin/emacs-29
cd5856e4038 Fix bug when calling `rgrep` non-interactively
ba4bdd6a259 Adapt Tramp specific tests in eglot-tests.el
1d5c35c8e46 * lisp/textmodes/texinfo.el (texinfo-flymake): Improve do...
a99d0e7e6c9 Support a function in the BUFFER-LIST arg of list-buffers...
def51dd6458 ; Fix typos
4980ed7a6d9 Don't allow lazy highlight from recursive minibuffers
4ef8b9f5441 Improve resetting face attributes when looking for suitab...
c4b8bc90a8e ; Fix typos in doc strings
c45eb138451 ; * lisp/bs.el (bs-attributes-list): Doc fix
d6adaf487d8 Add lexical-binding to example package header
03ad1a92a2d Add improved tree-sitter navigation
a5272e2a7cc ; * test/src/treesit-tests.el: Add outline headers.
489bcacc7c3 Add cross-reference to flush-lines
0f9e6532b14 Use font-lock-number-face for numeric values in csharp-mode
4bccb7b211e Make treesit-query-validate create a read-only buffer
c0fe6c72cec Improve dockerfile-ts-mode imenu generation (Bug#59979)
631908f7017 Add "->" to python--treesit-operators (bug#59968)
5d4274d9b65 ; * admin/notes/tree-sitter/build-module/build.sh: Add -f...
d264b75669d Align C++ access specifiers to their enclosing class/stru...
ca67d988d87 Add cmake-ts-mode
8ec923775de Tweak various ts-mode's indent and fontification (bug#59931)
647b6a8099f Add expression for generic_name in csharp-ts-mode (bug#59...
5b178efd85a ; Adjust eglot test to recent autopep8/pycodestyle
58b8ed8b55c ; Avoid compilation warning on MS-Windows
40c23c11e88 * lisp/outline.el: Fix the value 'insert' of outline-mino...
527eb11de20 * lisp/minibuffer.el (completions-group-separator): Rever...
42d740fb2cb ; Skip two eglot tests when typescript is missing
19ef86f775a ; Remove outdated text describing overlays
081bf583007 Skip Eglot rust-analyzer tests if 'cargo' isn't available
# Conflicts:
# lisp/progmodes/typescript-ts-mode.el
# lisp/treesit.el
Stefan Kangas [Tue, 13 Dec 2022 21:01:45 +0000 (22:01 +0100)]
Fix bug when calling `rgrep` non-interactively
* lisp/progmodes/grep.el (rgrep): Fix bug where running
non-interactively requires running it interactively
first. (Bug#60024)
Michael Albinus [Tue, 13 Dec 2022 19:06:48 +0000 (20:06 +0100)]
Adapt Tramp specific tests in eglot-tests.el
* test/lisp/progmodes/eglot-tests.el (tramp): Move up.
(tramp-sh): Don't require.
(eglot--cleanup-after-test): Delete Tramp buffers if needed.
(eglot-tests-lsp-abiding-column): Rename from `eglot-lsp-abiding-column'.
(tramp-histfile-override): Declare.
(eglot--call-with-tramp-test):
Use `ert-remote-temporary-file-directory'. Skip if needed.
(eglot--tramp-test, eglot--tramp-test-2): Don't skip.
Stefan Kangas [Tue, 13 Dec 2022 17:57:25 +0000 (18:57 +0100)]
* lisp/textmodes/texinfo.el (texinfo-flymake): Improve docstring.
Juri Linkov [Tue, 13 Dec 2022 17:47:47 +0000 (19:47 +0200)]
Support a function in the BUFFER-LIST arg of list-buffers-noselect (bug#59935)
* lisp/buff-menu.el (Buffer-menu-buffer-list): New buffer-local variable.
(list-buffers-noselect): Set Buffer-menu-buffer-list to 'buffer-list'
that now keeps the buffer-local value of the provided buffer list
or a function that returns the buffer list.
(list-buffers--refresh): Handle buffer-list and Buffer-menu-buffer-list
as a function and as a list.
* lisp/progmodes/project.el (project-list-buffers): Let-bind
'buffer-list-function' used by both legacy code and the new version
of list-buffers-noselect that supports its arg BUFFER-LIST as a function.
Stefan Kangas [Mon, 12 Dec 2022 07:50:21 +0000 (08:50 +0100)]
; Fix typos
Augusto Stoffel [Mon, 12 Dec 2022 22:07:28 +0000 (23:07 +0100)]
Don't allow lazy highlight from recursive minibuffers
See bug#59918.
* lisp/isearch.el (minibuffer-lazy-highlight-setup): Don't activate
when starting a recursive minibuffer.
Eli Zaretskii [Tue, 13 Dec 2022 15:35:17 +0000 (17:35 +0200)]
Improve resetting face attributes when looking for suitable fonts
* src/xfaces.c (syms_of_xfaces)<face-font-lax-matched-attributes>:
Change the default value to t. Update doc string.
(realize_gui_face): When 'Vface_font_lax_matched_attributes' is t,
reset the 3 default font attributes efficiently. Call
'font_maybe_unset_attribute' only if the value is neither nil nor
t. (Bug#59347)
Mattias Engdegård [Tue, 13 Dec 2022 15:10:34 +0000 (16:10 +0100)]
; * lisp/progmodes/gdb-mi.el (gdb-locals-table-row-config): fix type
Eli Zaretskii [Tue, 13 Dec 2022 14:24:09 +0000 (16:24 +0200)]
; Improve recently installed documentation
* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun): Fix
wording of the doc string.
* doc/emacs/programs.texi (Multi-line Indent): Improve wording of
the description of 'prog-fill-reindent-defun' and related
variables.
Eli Zaretskii [Tue, 13 Dec 2022 14:10:23 +0000 (16:10 +0200)]
; Fix typos in xterm.c
* src/xterm.c (syms_of_xterm) <x-lax-frame-positioning>: Fix typos
in the name and doc string of the variable.
Eli Zaretskii [Tue, 13 Dec 2022 14:01:13 +0000 (16:01 +0200)]
; Fix typos in doc strings
* lisp/treesit.el (treesit-defun-tactic)
(treesit-default-defun-skipper): Fix typos in doc strings.