Commit graph

91728 commits

Author SHA1 Message Date
Po Lu
8f3fee7dff Merge remote-tracking branch 'origin/master' into feature/android 2023-06-20 09:18:27 +08:00
Andrew G Cohen
1e13610b75 Don't read all headers in gnus thread referral (bug#63842)
Gnus thread referral tries to add newly found articles to an existing
summary buffer. When the list of such articles is known from searching
we can speed things up by only entering these specific headers into
the dependencies table.

* lisp/gnus/gnus-sum.el (gnus-summary-refer-thread): Don't set
`gnus-read-all-available-headers' when finding articles by searching.
2023-06-20 08:33:03 +08:00
Paul Eggert
94d8eeeff4 Call them “bracket expressions” more consistently
Emacs comments and doc were inconsistent about the name used for
regexps like [a-z].  Sometimes it called them “character
alternatives”, sometimes “character sets”, sometimes “bracket
expressions”.  Prefer “bracket expressions” as it is less confusing:
POSIX and most other programs’ doc uses “bracket expressions”,
“alternative” is also used in the Emacs documentation to talk about
...\|... in regexps, and “character set” normally has a different
meaning in Emacs.
2023-06-19 11:09:00 -07:00
Po Lu
83eeebe9ef Merge remote-tracking branch 'origin/master' into feature/android 2023-06-19 08:55:42 +08:00
Al Petrofsky
d46a2fa319 Make C-SPC work in "M-x term"
* lisp/term.el (term-raw-map): Add bindings for C-SPC, C-M-SPC,
and C-M-/.
(term-send-C-@, term-send-C-M-_, term-send-C-M-@): New commands.
(Bug#64121)
2023-06-18 09:33:19 +03:00
Po Lu
3f90818be6 Enable text conversion in conf-modes
* lisp/textmodes/conf-mode.el (conf-mode-initialize): Set
text-conversion-style.
2023-06-18 10:26:13 +08:00
Po Lu
8412581f08 Merge remote-tracking branch 'origin/master' into feature/android 2023-06-18 08:56:54 +08:00
Stefan Monnier
1b0348d959 Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs 2023-06-17 18:06:01 -04:00
Stefan Monnier
a9c962be96 pp-fill: Fix tests breakage
* lisp/emacs-lisp/pp.el (pp-to-string, pp-buffer, pp): Preserve old
behavior of (almost always) returning a trailing newline.

* test/lisp/emacs-lisp/pp-tests.el (pp-print-quote): Adjust tests, now
that `pp-to-string` always returns a trailing newline, rather than only
most of the time.

* test/lisp/emacs-lisp/backtrace-tests.el
(backtrace-tests--single-and-multi-line): Make the test less sensitive
to the choice of what is "pretty".
2023-06-17 18:05:33 -04:00
Stefan Monnier
2f181d6032 pp.el (pp-fill): New default pp function
* lisp/emacs-lisp/pp.el (pp-default-function): Change default.
(pp--within-fill-column-p): New helper function.
(pp-fill): New function.
2023-06-17 17:24:38 -04:00
Stefan Monnier
184106be26 pp.el (pp-default-function): New custom var
* lisp/emacs-lisp/pp.el (pp-use-max-width): Make obsolete.
(pp-default-function): New custom var.
(pp--object, pp--region): New helper functions.
(pp-29): New function, extracted from `pp-to-string`.
(pp-to-string): Add `pp-function` arg and obey `pp-default-function`.
(pp-28): New function, extracted from `pp-buffer`.
(pp-buffer): Rewrite, to obey `pp-default-function`.
(pp): Obey `pp-default-function`.
(pp-emacs-lisp-code): Add new calling convention to apply it to a region.
2023-06-17 17:21:03 -04:00
Stefan Monnier
f411cc3a95 * lisp/emacs-lisp/lisp-mode.el (lisp-ppss): Fix performance bug
(nth 2 ppss) can be absent but not incorrect, so don't recompute ppss
for (nth 2 ppss) when (nth 2 ppss) is already provided.
When calling `lisp-indent-line` on all the lines in a region, this
sometimes introduced a gratuitous O(N²) complexity.
2023-06-17 17:10:50 -04:00
Basil L. Contovounesios
cd8d3f3379 Fix some tree-sitter :match regexps
This was originally installed on 2023-06-17 in the emacs-29 release
branch and later reverted.  The intention is to backport it after
Emacs 29.1 is released.

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 (bug#64019).
2023-06-17 20:47:50 +01:00
Basil L. Contovounesios
fef27d28fa Fix more shy group regexps
These issues 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/gnus/gnus-art.el (gnus-parse-news-url): Remove redundant
numbered group and calls to match-string.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--c-or-c++-regexp): Fix shy
group mistyped as optional colon (bug#64019#29).
* lisp/vc/vc-git.el (vc-git-annotate-time): Ditto.  Also fix
timezone parsing by using iso8601-parse (bug#64069).
* test/lisp/vc/vc-git-tests.el (vc-git-test-annotate-time): New
test.
2023-06-17 16:36:27 +01:00
Alan Mackenzie
f47cf7110e CC Mode: Correct some regexp typos, \\(:? -> \\(?:
This partly corrects bug#64069.

* lisp/progmodes/cc-langs.el (c-ml-string-back-closer-re): Fix
four occurrences, one of which was in a comment, one in a doc
string.

* lisp/progmodes/cc-mode.el (c-or-c++-mode--regexp.): Fix one
occurrence.
2023-06-17 13:19:18 +00:00
Eli Zaretskii
30d5f1e62c ; Auto-commit of loaddefs files. 2023-06-17 05:27:03 -04:00
Po Lu
bf3bea4460 Merge remote-tracking branch 'origin/master' into feature/android 2023-06-17 17:18:41 +08:00
Eli Zaretskii
b51be64a71 Merge from origin/emacs-29
3b0bf359e9 Fix documentation of comment-dwim (bug#64104)
2023-06-17 05:02:56 -04:00
Eli Zaretskii
d1ddd1d5d9 Merge from origin/emacs-29
84d2da003e ; Fix example in the Flymake manual
0a1459f1d9 * doc/misc/calc.texi (Advanced Math Functions): Correct c...
92faf1f564 Consider 'dired-kill-when-opening-new-dired-buffer' in mo...
bafe71a69f ; Fix use-package.texi markup
018e4ca6c5 ; * doc/misc/calc.texi (Advanced Math Functions): Fix las...
1952dbd4c5 Fix Gamma function definition in calc.texi
f73f82d7e8 Fix subscripts in the Calc manual
70fc7c41ef Improve documentation of 'declare' forms
c835758238 ; * src/lread.c (bytecode_from_rev_list): Avoid C++ comment.
2847857496 Improve tree-sitter docs
0e9307eb2b Fix some Texinfo markup in manuals
8dc08333ee Fix bol/bos anchors in tree-sitter :match regexps
8225ade615 ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: F...
1f0527a312 ; Fix last change in tex-mode.el
4da479920e * lisp/subr.el (with-restriction): Tweak indent rule
36aa9bd818 ; Fix previous change
aaeaf608d8 Fix setting region in the minibuffer
1383efe01d Fix setting $DBUS_SESSION_BUS_ADDRESS after Emacs has sta...
bdb0bc2b4e Fix tex-mode display-buffer issues
90047c38ce Add test for when 'completion-auto-help' is 'visible'
2c623e4feb Avoid errors in 'apropos-documentation' after 'eval-buffer'
dd3b98121c ; * doc/emacs/indent.texi (Indentation Commands): Fix las...
904edf1f07 Mention indent-rigidly in the Emacs manual
2023-06-17 05:02:55 -04:00
Eli Zaretskii
3b0bf359e9 Fix documentation of comment-dwim (bug#64104)
* lisp/newcomment.el (comment-dwim): Doc fix.

* doc/emacs/programs.texi (Comment Commands): More accurate
description of what 'M-;' does when there's no active region.
2023-06-17 11:37:19 +03:00
Eli Zaretskii
71b27779a9 ; * lisp/net/ldap.el (ldap-search-internal): Fix last change. (Bug#64089) 2023-06-17 10:59:44 +03:00
Jens Schmidt
d2246b2627 Fix parsing of dn line if WITHDN is non-nil
Function `ldap-search' errors out with `wrong-type-argument listp'
when called with WITHDN non-nil.
* lisp/net/ldap.el (ldap-search-internal): Parse the dn line
correctly so that `ldap-search' can grok it.  (Bug#64089)
2023-06-17 10:57:42 +03:00
Po Lu
7f0342a1bd Merge remote-tracking branch 'origin/master' into feature/android 2023-06-16 08:40:33 +08:00
Tony Zorman
f2aae8b879 eshell-next-prompt: More precisely navigate to the prompt (bug#63748)
* lisp/eshell/em-prompt.el (eshell-next-prompt): Navigate to the
current prompt more accurately by using text properties instead of
going to the beginning of the line.  This is important for multiline
prompts, as they don't necessarily start at the beginning of the
current line.

* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test--with-multiline):
Execute a given body with a multiline prompt.

(em-prompt-test/next-previous-prompt-with):
(em-prompt-test/forward-backward-matching-input-with):
Helper functions for code reuse.

(em-prompt-test/forward-backward-matching-input):
(em-prompt-test/next-previous-prompt):
Rewrite in terms of the appropriate helper functions.

(em-prompt-test/next-previous-prompt-multiline):
(em-prompt-test/forward-backward-matching-input-multiline):
Add multiline variants of existing tests.
2023-06-15 09:40:12 -07:00
Harald Jörg
1acce3b5c7 ; cperl-mode.el: Fix font-lock after yanking into POD
When extending the region to fontify for jit-lock-mode, make
sure we start fontifying at the beginning of a POD section
(Bug#64056).
2023-06-15 17:15:36 +02:00
Eli Zaretskii
92faf1f564 Consider 'dired-kill-when-opening-new-dired-buffer' in mouse clicks
* lisp/dired.el (dired-mouse-find-file): Honor the value of
'dired-kill-when-opening-new-dired-buffer'.  (Bug#64079)
2023-06-15 16:12:24 +03:00
Yuan Fu
ad3ec429a1
Fix treesit-install-language-grammar (bug#63990)
* lisp/treesit.el:
(treesit-install-language-grammar): When called non-interactively,
out-dir should default to default-out-dir.
2023-06-15 01:22:53 -07:00
Eli Zaretskii
70fc7c41ef Improve documentation of 'declare' forms
* lisp/simple.el (read-extended-command-predicate): Mention the
'(declare completion ...' form in the doc string.

* doc/lispref/functions.texi (Declare Form): Clarify
'completion-predicate' and 'modes'; add cross-references.
(Bug#64045)
2023-06-15 09:28:26 +03:00
Po Lu
ca120044ac Merge remote-tracking branch 'origin/master' into feature/android 2023-06-15 08:25:45 +08:00
Stefan Monnier
020fd63018 Avoid using `(lambda ...) to build function values
* lisp/emacs-lisp/nadvice.el (advice-eval-interactive-spec): Avoid
`(lambda ...).
2023-06-14 17:06:37 -04:00
Spencer Baugh
9cbd25e5cd Handle point not at EOB in minibuffer-choose-completion
Without this change, only the minibuffer contents before point are
cleared when a completion is chosen, which results in stray text when
point is in the middle of the minibuffer.

After this change, we heuristically decide either to clear the whole
buffer or only part of it, taking into account the location of point.

* lisp/minibuffer.el (minibuffer-completion-help): Use point when
calculating completion-base-affixes. (Bug#62700)
2023-06-14 20:31:34 +03:00
Po Lu
87b8f8769e Merge remote-tracking branch 'origin/master' into feature/android 2023-06-14 08:26:57 +08:00
Basil L. Contovounesios
2847857496 Improve tree-sitter docs
* doc/lispref/positions.texi (List Motion): Incorporate more
accurate description of treesit-defun-type-regexp from
'(elisp) Tree-sitter Major Modes', replacing that duplicate
entry (bug#64018).

* doc/lispref/parsing.texi (Parsing Program Source)
(Language Grammar, Using Parser, Retrieving Nodes)
(Accessing Node Information, Pattern Matching, Multiple Languages):
(Tree-sitter Major Modes):
* doc/lispref/modes.texi (Parser-based Font Lock): Improve wording,
grammar, punctuation, and markup.  Fix typos.
(Parser-based Indentation): Ditto.  Document indent rule presets
field-is, catch-all, nth-sibling, grand-parent, and
great-grand-parent.

* lisp/treesit.el (treesit-simple-indent-presets): Mention field-is,
catch-all, nth-sibling, grand-parent, great-grand-parent in
docstring.
(treesit-major-mode-setup, treesit-explore-mode): Improve
docstring/commentary grammar.
2023-06-13 17:22:16 +01:00
Basil L. Contovounesios
8dc08333ee Fix bol/bos anchors in tree-sitter :match regexps
Further regexp fixes to follow separately (bug#64019#29).

* lisp/progmodes/c-ts-mode.el (c-ts-mode--font-lock-settings):
* lisp/progmodes/cmake-ts-mode.el
(cmake-ts-mode--font-lock-settings):
* lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings):
* lisp/progmodes/js.el (js--treesit-font-lock-settings):
* lisp/progmodes/python.el (python--treesit-settings):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings):
* lisp/progmodes/sh-script.el (sh-mode--treesit-settings):
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--font-lock-settings):
* test/src/treesit-tests.el (treesit-query-api): Anchor :match
regexps at beginning/end of string, not line.
2023-06-13 14:35:14 +01:00
Robert Pluim
daf7902ed9 Insert timestamp when converting icalendar to org event
* lisp/gnus/gnus-icalendar.el (gnus-icalendar--update-org-event):
Insert the timestamp even if the description is empty.  (Bug#64023)
2023-06-13 14:43:18 +02:00
Mattias Engdegård
ef1394fca0 Move quoted lambda funarg check and expand coverage
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all):
Move check for incorrectly quoted lambda arguments from here...
* lisp/emacs-lisp/bytecomp.el (byte-compile-form):
... to here, which should provide more detection opportunities.
Expand the set of functions for which this check is performed, now
also for some keyword arguments.
2023-06-13 14:27:48 +02:00
Eli Zaretskii
1f0527a312 ; Fix last change in tex-mode.el
* lisp/textmodes/tex-mode.el (tex-cmd-doc-view): Remove the second
argument.  (Bug#63956)
2023-06-13 14:11:41 +03:00
Po Lu
5268f8476f Improve behavior of Gnus on Android
* etc/NEWS: Fix typo.
* lisp/gnus/gnus-score.el (gnus-read-char): New function.
(gnus-summary-increase-score): Use it to display a dialog box on
Android, where input methods have trouble with plain old
read-char.
2023-06-13 16:20:58 +08:00
Stefan Monnier
4da479920e * lisp/subr.el (with-restriction): Tweak indent rule 2023-06-12 22:43:44 -04:00
Po Lu
32c627a5ac Merge remote-tracking branch 'origin/master' into feature/android 2023-06-13 08:35:32 +08:00
Stefan Monnier
410aac8183 * lisp/transient.el (transient--wrap-command): Use letrec and a closure 2023-06-12 13:25:31 -04:00
Robert Pluim
36aa9bd818 ; Fix previous change
* lisp/window.el (display-tex-shell-buffer-action): Fix default
value's type.  (Bug#63956)
2023-06-12 19:08:31 +02:00
Eli Zaretskii
aaeaf608d8 Fix setting region in the minibuffer
* lisp/minibuffer.el (minibuffer-beginning-of-buffer): Fix setting
region.  (Bug#64022)
2023-06-12 18:47:04 +03:00
Mattias Engdegård
560c15a04f ; * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): minor tweaks
Don't lose `funcall` symbol position.  Remove outdated comment.
2023-06-12 10:24:32 +02:00
F. Jason Park
edfbdb3f16 Define missing groups for ERC modules
* lisp/erc/erc-imenu.el (erc-imenu): Define group even though there
aren't any associated faces or user options because `imenu' is a
global module, and `define-erc-module' calls `define-minor-mode',
which needs a group for its mode variable.  This should have been
handled by bug#60954 but wasn't.
* lisp/erc/erc-sound.el (erc-sound): Move group definition above
module definition.
* lisp/erc/erc-spelling.el (erc-spelling): Define group.
2023-06-11 20:53:48 -07:00
F. Jason Park
56e1922281 Revert "Add hook to regain nickname in ERC"
This reverts commit 8c0c982684.  The
functionality it introduced is likely being migrated to a
"regain"-specific local module to live in the library erc-services.el
alongside the existing `services' module.  Its scope will be expanded
to address common "regain" cases requiring NickServ.  This commit is
being reverted to prevent any confusion that might arise from users
encountering the old interface while the new one is being hashed out
on the tracker.
2023-06-11 20:24:07 -07:00
F. Jason Park
2daa71f932 Don't insert prompt input before markers in ERC
* etc/ERC-NEWS: Update entry in 5.6 section announcing a persistent
prompt.
* lisp/erc/erc-dcc.el (erc-dcc-chat-setup): Use helper
`erc--initialize-markers' to set up prompt.
* lisp/erc/erc.el (erc--initialize-markers): Change
`erc-insert-marker' type to t.  Do this to spare modules that want to
remember the current message location from resorting to workarounds,
like leaving a marker one char before the end of a message, which is
not foolproof.
(erc--refresh-prompt): Temporarily change type of `erc-insert-marker'
when inserting prompt.
(erc-display-line-1): Insert incoming message normally instead of
forcing before markers, thus respecting markers left by third parties.
Strictly speaking, this is a breaking change.
(erc-display-msg): Insert normally instead of calling
`insert-before-markers', which was a regression introduced by 05f6fdb9
"Preserve ERC prompt and its bounding markers".
* test/lisp/erc/erc-dcc-tests.el
(erc-dcc-tests--dcc-handle-ctcp-send,
erc-dcc-tests--erc-dcc-do-GET-command): Use helper to initialize
prompt and markers.
* test/lisp/erc/erc-networks-tests.el
(erc-networks--ensure-announced,
erc-networks--rename-server-buffer--existing--reuse,
erc-networks--rename-server-buffer--existing--noreuse,
erc-networks--rename-server-buffer--reconnecting,
erc-networks--rename-server-buffer--id,
erc-networks--rename-server-buffer--existing--live,
erc-networks--rename-server-buffer--local-match,
erc-networks--rename-server-buffer--local-nomatch): Use helper to
initialize prompt and bounding markers.
* test/lisp/erc/erc-stamp-tests.el (erc-stamp-tests--insert-right):
Use `erc--initialize-markers' for setting up prompt.
* test/lisp/erc/erc-tests.el (erc--refresh-prompt): Adjust assertions
for expected prompt content.  (Bug#60936)
2023-06-11 20:14:08 -07:00
F. Jason Park
d880a08f95 Cement ordering of essential hook members in ERC
* etc/ERC-NEWS: Add new section explaining the pinning of certain hook
members owned by built-in modules to fixed depths.
* lisp/erc/erc-button.el (erc-button-mode, erc-button-enable): Change
hook depth for `erc-button-add-buttons' from 90 to 30.
* lisp/erc/erc-fill.el (erc-fill-mode, erc-fill-enable): Change hook
depth for `erc-fill' from 0 to 40.
* lisp/erc/erc-match.el (erc-match-mode, erc-match-enable): Change
hook depth for `erc-match-message' from 90 to 60.
* lisp/erc/erc-stamp.el (erc-stamp-mode, erc-stamp-enable): Change
hook depth for `erc-add-timestamp' from 90 to 50.
* test/lisp/erc/erc-tests.el
(erc-tests--assert-printed-in-subprocess): Add fixture for testing a
form printed from a subprocess.
(erc--find-mode, erc--essential-hook-ordering): Use helper in existing
and new tests, respectively.  (Bug#60936)
2023-06-11 19:55:11 -07:00
F. Jason Park
1c3f6aa98f Measure stamps pixel-wise with erc-fill-wrap
* lisp/erc/erc-fill.el (erc-fill-wrap-mode, erc-fill-wrap-enable):
Change "how" for advice applied to `erc-stamp--insert-date-function'
from `:filter-args' to `:after'.
(erc-fill--wrap-stamp-insert-prefixed-date): Change signature to
conform to `:after'-style advice.  Use `buffer-text-pixel-size' when
desired and available for generating display spec.
(erc-fill-wrap): Remove confusing comment.  Don't apply text props to
newlines because there's no obvious use case for inheriting these.
* lisp/erc/erc.el (erc-send-action, erc-display-msg): Add
`erc-command' property (as "PRIVMSG") to inserted message, sans
newline, so that all inserted messages in an ERC buffer contain this
property.
* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update data.
* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update data.
* test/lisp/erc/resources/fill/snapshots/monospace-01-start.eld: Update.
* test/lisp/erc/resources/fill/snapshots/monospace-02-right.eld: Update.
* test/lisp/erc/resources/fill/snapshots/monospace-03-left.eld: Update.
* test/lisp/erc/resources/fill/snapshots/monospace-04-reset.eld: Update.
* test/lisp/erc/resources/fill/snapshots/spacing-01-mono.eld: Update.
(Bug#60936)
2023-06-11 19:52:00 -07:00
F. Jason Park
e560f9af8e Allow ERC modules to extend erc-nick-popup-alist
* etc/ERC-NEWS: Mention changes to `erc-button-alist' and superficial
changes to `erc-nick-popup-alist'.
* lisp/erc/erc-button.el (erc-nick-popup-alist): Change type to prefer
associating strings with functions instead of arbitrary sexps.
(erc-button-cmd-KICK, erc-button-cmd-MSG): New functions to serve as
interrogative wrappers for `erc-cmd-KICK' and `erc-cmd-MSG' in
`erc-nick-popup-alist'.  The first also fixes a bug in which all but
the first token of a given "reason" would be omitted from the
":trailing" portion of an outgoing "KICK" message.
(erc-button--nick-popup-alist): New variable to help built-in modules
expose special actions to `erc-nick-popup' without touching
`erc-nick-popup-alist'.
(erc-nick-popup): Present members from both `erc--nick-popup-alist'
and `erc-nick-popup-alist' to the invoking user.  Accommodate
functions as well as arbitrary sexps.  (bug#63569)
2023-06-11 19:18:14 -07:00