(rx (in (?^ . ?a))) was incorrectly translated to "[^-a]".
Change it so that we get "[_-a^]" instead.
* lisp/emacs-lisp/rx.el (rx--generate-alt): Split ranges starting with
`^` occurring first in a non-negated character alternative.
* test/lisp/emacs-lisp/rx-tests.el (rx-any): Add and adapt tests.
This was originally installed on 2023-06-17 in the emacs-29 release
branch and later reverted. This backport follows the Emacs 29.1
release (bug#64019).
The shy groups were caught by modified versions of the GNU ELPA
packages xr and relint:
- https://github.com/mattiase/xr/pull/6
- https://github.com/mattiase/relint/pull/14
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special
character in regexp.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
* lisp/progmodes/js.el (js--plain-method-re):
(js--treesit-font-lock-settings):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Replace character
alternative [\\d], which matches '\' or 'd', with the most likely
intention [0-9]. Fix shy groups mistyped as optional colons.
Remove unneeded numbered :match group in rust-ts-mode.
Eli Zaretskii [Sun, 30 Jul 2023 15:05:00 +0000 (11:05 -0400)]
; Fix admin/upload-manuals script
* admin/upload-manuals (html_mono): Chdir to the right directory
before committing.
(html_node): Avoid computing $stale in newly-created or empty
directories.
* lisp/help-fns.el (help-fns--analyze-function):
For aliases, use the base function name if at the end of the chain.
This fixes a regression introduced in d30fde6b0cc.
Update CMake support due to upstream changes (bug#64922)
A recent change in tree-sitter-cmake grammar support for CMake (commit fe9b5e0), now put arguments are wrapped in a new argument_list node.
To support the old and new version of the grammar, a new function was
added on which string syntax highlighting now depends.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-compatibility-fe9b5e0): Indent helper
function to handle different tree-sitter-cmake version.
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings): Use the new function to handle
the new argument_list node.
Remove nullptr named node from c++-ts-mode (bug#64818)
The nullptr node was changed from a named node to an unnamed node
upstream[0], which caused font locking to break. As this is a small
enough regression, no compat code is required.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings): Remove
node no longer in use.
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b):
Add argument so that we run the 'treesit-query-capture' when the
language is 'typescript', not only 'tsx'.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use supplied argument.
Update JSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-javascript grammar support for
JSX (commit bb1f97b), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/js.el (js-jsx--treesit-indent-compatibility-bb1f97b):
Indent helper function to handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-indent-rules): Use the new
function to handle both jsx_fragment and jsx_text.
* lisp/progmodes/js.el (js-jsx--treesit-font-lock-compatibility-bb1f97b):
Font lock helper function for handle different tree-sitter-javascript
version.
* lisp/progmodes/js.el (js--treesit-font-lock-settings): Use the new
function to handle both nested_identifier and member_expression.
Update TSX support due to upstream changes (bug#64647)
A recent change in tree-sitter-typescript grammar support for
TSX (commit b893426), changed two things:
1. renamed nested_identifier to member_expression
2. removed jsx_fragment, jsx_text is used instead
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--indent-compatibility-b893426): Indent helper function
to handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--indent-rules): use the new function to handle
both jsx_fragment and jsx_text.
* lisp/progmodes/typescript-ts-mode.el
(tsx-ts-mode--font-lock-compatibility-bb1f97b): Font lock helper
function for handle different tree-sitter-typescript version.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings): Use the new function to
handle both nested_identifier and member_expression.
Eli Zaretskii [Sat, 22 Jul 2023 08:02:04 +0000 (11:02 +0300)]
; Improve documentation of automatic addition to minibuffer history
* doc/lispref/minibuf.texi (Minibuffer History)
(Minibuffer Commands, Text from Minibuffer)
(Minibuffer Completion): Document the behavior of 'M-n' and
"future history" when the value(s) in DEFAULT is/are exhausted.
(Bug#64656)
Ignore quit while getting interprogram paste in kill-new
On X, if the current selection owner is not responding to selection
requests, the user may want to take ownership of the selection. The
obvious way to do this is to kill some text (which a user might also
be doing just as part of normal editing at the time the selection
owner becomes nonresponsive). However, if
save-interprogram-paste-before-kill is non-nil, then killing text will
hang until the user quits, and this quit will abort the entire
kill-new, preventing the user from taking ownership of the selection.
Now instead if the user quits while we are attempting to retrieve the
selection from hanging owner, we will proceed to take ownership of the
selection as normal, resolving the problem.
(One example of a selction owner that might not be responding to
selection requests is another instance of Emacs itself; while Emacs is
blocked in call-process or Lisp execution, it currently does not
respond to selection requests.)
* lisp/simple.el (kill-new): Ignore quit while getting interprogram
paste (bug#64423)
* configure.ac (netbsd): Don't set TERMINFO=no unless the termcap
library is either -ltermcap or -lcurses. This prevents aborts
because on recent versions of NetBSD libtermcap is actually a
symlink to libterminfo. (Bug#64577)
This adds a section for documenting all the optional modules.
Do not merge to master. This is a backport of f2981a1681d.
* doc/misc/eshell.texi (Extension modules): Move explanation about
writing modules to...
(Writing a module): ... here.
(Module testing): Remove. Testing an Eshell module doesn't require
any special documentation.
(Key binding, Smart scrolling, Electric forward slash): Move under...
(Optional modules): ... here.
(Directory handling, Terminal emulation): Remove. These modules are
enabled by default, and so are documented above.
(Tramp extensions, Extra built-in commands): New sections.
* doc/misc/epa.texi (Top): Add menu entry for new node GnuPG Pinentry.
(Quick Start): Add information on and reference to basic GnuPG
configuration.
(Encrypting/decrypting gpg files): Add usage information.
(GnuPG version compatibility): Update version information.
(GnuPG Pinentry): Add new node.
(Caching Passphrases): Describe mandatory gpg-agent usage for GnuPG
2.0 and later.
(Overview, Encrypting/decrypting gpg files, GnuPG version compatibility)
(Caching Passphrases, Bug Reports): Fix references, terminology,
mark-up, and index entries. (Bug#64154)
Eli Zaretskii [Mon, 10 Jul 2023 14:15:21 +0000 (17:15 +0300)]
Fix show-paren-mode when the parentheses is partially visible
* lisp/paren.el (show-paren-function): Support the case where the
open paren is partially visible, but enough so to not consider it
"off-screen". (Bug#64547)
* lisp/subr.el (with-restriction):
* doc/lispref/positions.texi (Narrowing): Make it clear that the
argument is evaluated and that the result of the evaluation must
not be nil.
Mark failing icalendar test as unstable (bug#56241)
* test/lisp/calendar/icalendar-tests.el
(icalendar-export-bug-56241-dotted-pair):
This test started failing early July 2023 in multiple branches at
once without any change to the code and is likely sensitive to the
current date. Tag it to keep it quiet for now.
Simplify after adding internal function to enter a labeled restriction
* src/editfns.c: (Finternal__labeled_narrow_to_region): Merge the
code of Finternal__label_restriction into this function.
(Finternal__label_restriction): Remove this function.
(syms_of_editfns): Remove the 'outermost-restriction' buffer local
variable, which is not used anymore, and the symbol of
'internal--label-restriction'.
(Fwiden): Remove the call to reset the 'outermost-restriction'
buffer local variable.
Add internal function to enter a labeled restriction
* src/editfns.c (Finternal__labeled_narrow_to_region): New
function. A specific function is necessary to avoid unnecessary
slowdowns when 'narrow-to-region'/'widen' are called in a loop.
(Fnarrow_to_region): Remove the call to Fset, which has been moved
into Finternal__labeled_narrow_to_region.
(labeled_narrow_to_region): Use the new function.
(syms_of_editfns): Add the symbol of the new function.
* lisp/subr.el (internal--with-restriction): Use the new function.
Robert Pluim [Tue, 4 Jul 2023 15:44:43 +0000 (17:44 +0200)]
Improve natnump shortdoc
* lisp/emacs-lisp/shortdoc.el (number): Make it clear that zero
satisfies 'natnump'. Move 'natnump' next to 'cl-plusp' to highlight
the difference between them.
Include a help-echo for flymake's modeline counters
This helps clarify what each of these numbers mean. This is inspired
by 'compilation-mode-line-errors' which does the same.
* lisp/progmodes/flymake.el (flymake--mode-line-counter): Add
help-echo to mode line properties. (Bug#64424)
Eli Zaretskii [Sun, 2 Jul 2023 06:16:58 +0000 (09:16 +0300)]
Avoid errors in completion due to 'completion-regexp-list'
* doc/lispref/minibuf.texi (Basic Completion):
* src/minibuf.c (syms_of_minibuf) <completion-regexp-list>:
Document that global non-nil settings of 'completion-regexp-list'
are not safe.
* lisp/minibuffer.el (completion-pcm--merge-completions): Avoid
errors in 'try-completion' when PREFIX is nil. (Bug#64351)