Jim Porter [Sat, 2 Sep 2023 22:03:10 +0000 (15:03 -0700)]
Provide our own implementation of paragraph navigation in Eshell
This lets us finally obsolete 'eshell-prompt-regexp', making it
simpler for users to customize their prompts.
* lisp/eshell/em-prompt.el (eshell-prompt-function): Update docstring.
(eshell-prompt-regexp): Make obsolete.
(eshell-prompt-initialize): Remove 'eshell-prompt-regexp' code.
(eshell-prompt-mode-map): Remap paragraph navigation commands to...
(eshell-forward-paragraph, eshell-backward-paragraph): ... these new
commands.
Jim Porter [Sat, 2 Sep 2023 21:44:33 +0000 (14:44 -0700)]
Be more precise about navigating forward/backward through Eshell prompts
* lisp/eshell/em-prompt.el (eshell-next-prompt): Make N optional.
When navigating, first move to the end of the prompt. This makes the
subsequent navigation more predictable.
(eshell-previous-prompt): Mane N optional.
* test/lisp/eshell/em-prompt-tests.el
(em-prompt-test--with-multiline): Move to "Code" section.
(em-prompt-test/next-previous-prompt-with): Rename to...
(em-prompt-test/next-previous-prompt-1): ... this, and add additional
test cases. Update callers.
(em-prompt-test/forward-backward-matching-input-with): Rename to...
(em-prompt-test/forward-backward-matching-input-1): ... this, and
improve existing test cases.
Stephen Berman [Sat, 2 Sep 2023 21:22:01 +0000 (23:22 +0200)]
Fix and extend applying substitution in widget-choose
* lisp/wid-edit.el (widget-choose): Iterate only over proper lists
when applying substitution (bug#64046, Message #53). With simple
item definitions, apply substitution only to the item text, not to
its value (bug#64046, Message #86). Apply substitution also to
the widget title (bug#64046, Message #92).
Mattias Engdegård [Sat, 2 Sep 2023 11:04:39 +0000 (13:04 +0200)]
; gdb-mi.el: remove unused variable
* lisp/progmodes/gdb-mi.el (gdb-active-process): Remove.
It went out of use in 2010 (
691cf4a0a2), and was initialised to what
was clearly meant as a doc string.
Stefan Kangas [Sat, 2 Sep 2023 16:22:23 +0000 (18:22 +0200)]
Update selected packages when deleting last package
* lisp/emacs-lisp/package.el (package--save-selected-packages): Allow
setting 'package-selected-packages' to a nil value. (bug#65475)
Alan Mackenzie [Sat, 2 Sep 2023 13:50:03 +0000 (13:50 +0000)]
Output better error messages on certain edebug spec errors
This fixes bug#65620. The error thrown up to now was "Void
function edebug-after". This has been replaced by "Invalid
call to `edebug-before'. Is the edebug spec for `foo'
correct?".
* lisp/emacs-lisp/edebug.el (edebug-b/a-error): New function
which throws the new friendlier error message.
(edebug-before, edebug-after): Replace the defalias's to nil
with actual functions which just call edebug-b/a-error.
* doc/lispref/edebug.texi (Specification List): In the entry
for `sexp', warn against mistakenly using `form' for an
Stefan Kangas [Sat, 2 Sep 2023 13:07:09 +0000 (15:07 +0200)]
Make ediff-m-empty-t-f obsolete in favor of make-temp-file
* lisp/vc/ediff-util.el (ediff-make-empty-tmp-file): Make obsolete
in favor of 'make-temp-file'. Update callers.
Stefan Kangas [Sat, 2 Sep 2023 12:42:30 +0000 (14:42 +0200)]
Make emerge-m-t-f obsolete in favor of make-temp-file
* lisp/vc/emerge.el (emerge-make-temp-file): Make obsolete in favor of
'make-temp-file'. Update all callers.
Michael Albinus [Sat, 2 Sep 2023 11:15:17 +0000 (13:15 +0200)]
Adapt tramp-get-completion-methods
* lisp/net/tramp.el (tramp-get-completion-methods): Make MULTI-HOP
optional.
João Távora [Sat, 2 Sep 2023 09:51:24 +0000 (10:51 +0100)]
Eglot: slightly simplify eglot--propose-changes-as-diff
bug#60338
* lisp/progmodes/eglot.el (eglot--propose-changes-as-diff):
Simplify slightly.
Eli Zaretskii [Sat, 2 Sep 2023 08:50:27 +0000 (11:50 +0300)]
; * src/treesit.c (treesit_recursion_limit): Fix compilation error.
Eli Zaretskii [Sat, 2 Sep 2023 08:39:01 +0000 (04:39 -0400)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
LdBeth [Mon, 26 Dec 2022 00:55:03 +0000 (18:55 -0600)]
Remove newsticker--lists-intersect-p
* lisp/net/newst-backend.el (newsticker--lists-intersect-p): Remove.
* lisp/net/newst-plainview.el (newsticker-w3m-show-inline-images)
(newsticker-next-new-item, newsticker-previous-new-item)
(newsticker-next-item, newsticker-next-item-same-feed)
(newsticker-previous-item, newsticker-next-item-available-p)
(newsticker-previous-item-available-p): Replace corresponding calls by
`invisible-p'. (Bug#60328)
Eli Zaretskii [Sat, 2 Sep 2023 08:33:44 +0000 (04:33 -0400)]
Merge from origin/emacs-29
dbbcf4a6599 Fix fontification of " in edit-kbd-macro
2137fdfd550 * lisp/emacs-lisp/gv.el (buffer-local-value): Unobsolete ...
e660ee88e3d ; Remove incorrect example from ELisp Reference manual
c32fd92d67e Add documentation to plstore.el
57760f585e2 * lisp/help.el (substitute-quotes): Improve docstring.
60dcea7658a Fix two defcustom :types
890a4c209ab Fix `image-auto-resize-on-window-resize' custom :type
369f2eea100 Add "terraform-ls" LSP server to Eglot
5cbe96d17f6 ; Improve documentation of 'char-table-range'
a219ee8c314 Fix minor bugs in vc-git and vc-hg on Windows uncovered b...
3f7598806eb Add syntax-propertize-function to js-ts-mode
18b292140ee ; * src/treesit.c: Add ts function boilerplate
ec4d29c4494 Improve performance of treesit_cursor_helper_1
# Conflicts:
# lisp/vc/vc-git.el
# src/treesit.c
Eli Zaretskii [Sat, 2 Sep 2023 08:28:29 +0000 (04:28 -0400)]
; Merge from origin/emacs-29
The following commit was skipped:
f26622b2a47 * lisp/subr.el (combine-change-calls-1): Fix bug#64989
Eli Zaretskii [Sat, 2 Sep 2023 08:28:17 +0000 (04:28 -0400)]
Merge from origin/emacs-29
648a5e33e80 Update to Org 9.6.8-3-g21171d
458442fe78c Escape percent character in treesit--inspect-name (bug#65...
bc0426ce8ed Don't add an extraneous slash in remote PATH list in Eshell
34f7a47c9ce Fix Tramp on MS Windows
ea5fd6c96bc * Fix native disassemble on Windows platforms (bug#65455)
91d2d8439bb * Handle missing eln file when trying to disassble (bug#6...
e7ac50a1539 * lisp/emacs-lisp/comp.el (comp--native-compile): Fix OUT...
45cf3a0cede Update to Transient v0.4.3
31d3808fb9d Adapt Eshell manual
0c50af054f9 Fix applying patches with Git on MS-Windows
# Conflicts:
# doc/misc/transient.texi
# test/lisp/eshell/esh-util-tests.el
Eli Zaretskii [Sat, 2 Sep 2023 08:23:58 +0000 (04:23 -0400)]
; Merge from origin/emacs-29
The following commits were skipped:
de335cb3dc9 ; Effect a safer version of that fix for Emacs 29
a6cb8e3a1fa Repair bug#65068 on Emacs 29
Stefan Kangas [Sat, 2 Sep 2023 07:48:18 +0000 (09:48 +0200)]
Fix fontification of " in edit-kbd-macro
* lisp/edmacro.el (edit-kbd-macro): Fix fontification when editing
keyboard macros containing the " character.
Eli Zaretskii [Sat, 2 Sep 2023 07:44:50 +0000 (10:44 +0300)]
* lisp/emacs-lisp/gv.el (buffer-local-value): Unobsolete (bug#65555).
Eli Zaretskii [Sat, 2 Sep 2023 07:38:16 +0000 (10:38 +0300)]
; Remove incorrect example from ELisp Reference manual
* doc/lispref/commands.texi (Event Examples): Remove incorrect
example of using SIGUSR1 signal as an event. (Bug#65577)
Jens Schmidt [Wed, 16 Aug 2023 21:31:30 +0000 (23:31 +0200)]
Add documentation to plstore.el
* lisp/plstore.el: Add link to epa manual. Describe more
restrictions. Fix a typo in the examples. Fix terminology. Mark
FIXMEs as such.
* lisp/plstore.el (plstore-save): Describe edge case when no recipient
matches and mark as FIXME. (Bug#63627)
Eli Zaretskii [Sat, 2 Sep 2023 07:08:21 +0000 (10:08 +0300)]
; Minor fixes of treesit docs
* src/treesit.c (treesit_traverse_validate_predicate)
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree, Ftreesit_node_match_p):
* lisp/treesit.el (treesit-beginning-of-thing)
(treesit-end-of-thing, treesit--things-around): Fix commentary and
doc strings.
Yuan Fu [Sat, 2 Sep 2023 05:30:21 +0000 (22:30 -0700)]
Fix treesit-thing-definition
* lisp/treesit.el (treesit-thing-definition): Add LANGUAGE parameter.
(treesit-major-mode-setup): Update treesit-thing-definition. Don't
enable tree-sitter sexp transpose if sexp isn't defined.
Yuan Fu [Sat, 2 Sep 2023 04:02:36 +0000 (21:02 -0700)]
; * lisp/treesit.el (treesit-thing-settings): Declare in treesit.el.
Yuan Fu [Sat, 2 Sep 2023 02:47:20 +0000 (19:47 -0700)]
; * src/treesit.c (Vtreesit_thing_settings): Update docstring.
Yuan Fu [Sat, 2 Sep 2023 02:27:07 +0000 (19:27 -0700)]
Don't signal error when calling treesit-node-match-p in treesit.el
Specifically, don't signal error when the thing isn't defined.
* lisp/treesit.el (treesit-node-top-level)
(treesit-forward-sentence)
(treesit--things-around): Add IGNORE-MISSING argument.
Yuan Fu [Sat, 2 Sep 2023 00:37:46 +0000 (17:37 -0700)]
Rename PRED to THING in tree-sitter navigation functions
The primary way to use these functions should be to supply a thing
symbol. Change the parameter name to THING to reflect that.
* lisp/treesit.el (treesit-beginning-of-thing)
(treesit-end-of-thing)
(treesit--things-around)
(treesit--navigate-thing)
(treesit-thing-at-point): Change parameter.
Yuan Fu [Sat, 2 Sep 2023 00:29:06 +0000 (17:29 -0700)]
Add an optional arg to Ftreesit_node_match_p
* src/treesit.c (treesit_traverse_child_helper): Fix typo.
(treesit_traverse_get_predicate): Add ignore_missing.
(Ftreesit_search_subtree)
(Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Update docstring.
(Ftreesit_node_match_p): Add ignore_missing.
Yuan Fu [Sat, 2 Sep 2023 00:14:44 +0000 (17:14 -0700)]
Obsolete treesit-block/sexp/sentence/text-type-regexp
And replace them with treesit-thing-settings.
* doc/lispref/positions.texi (List Motion): Remove mention of
treesit-sexp/sentence-type-regexp.
* lisp/progmodes/c-ts-mode.el (c-ts-base-mode)
* lisp/progmodes/dockerfile-ts-mode.el (dockerfile-ts-mode)
* lisp/progmodes/java-ts-mode.el (java-ts-mode)
* lisp/progmodes/js.el (js-ts-mode)
* lisp/progmodes/json-ts-mode.el (json-ts-mode)
* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode)
* lisp/progmodes/typescript-ts-mode.el (typescript-ts-base-mode)
(tsx-ts-mode)
* lisp/progmodes/heex-ts-mode.el (heex-ts-mode)
* lisp/progmodes/sh-script.el (bash-ts-mode)
* lisp/progmodes/prog-mode.el (prog-fill-reindent-defun)
* lisp/textmodes/html-ts-mode.el (html-ts-mode): Replace
treesit-sexp/sentence/text-type-regexp with treesit-thing-settings.
* lisp/treesit.el (treesit-sexp-type-regexp)
(treesit-sentence-type-regexp): Mark obsolete.
(treesit-block-type-regexp): Remove.
* lisp/treesit.el (treesit-forward-sexp)
(treesit-transpose-sexps)
(treesit-beginning-of-defun)
(treesit-end-of-defun)
(treesit-forward-sentence)
(treesit-defun-at-point): Make use of treesit-thing-settings.
(treesit-thing-definition)
(treesit-thing-defined-p): New functions.
(treesit-major-mode-setup): Replace
treesit-sexp/sentence-type-regexp with treesit-thing-settings.
Po Lu [Sat, 2 Sep 2023 02:05:23 +0000 (10:05 +0800)]
Open org-protocol:// links on Android
* doc/emacs/android.texi (Android Startup): Revise to reflect
changes in the set of files registered for Emacsclient and
mention org-protocol support.
* java/AndroidManifest.xml.in: Open all files, not just a
particular subset of image and data files. Register an
org-protocol scheme handler.
* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Provide
URI to Emacs verbatim if its scheme is `org-protocol'.
Dmitry Gutov [Sat, 2 Sep 2023 01:59:20 +0000 (04:59 +0300)]
xref.el: Ensure that the return value is the buffer
* lisp/progmodes/xref.el (xref--show-xrefs, xref--show-defs):
Ensure the return value of the funcall is returned (bug#65631).
Po Lu [Sat, 2 Sep 2023 01:28:50 +0000 (09:28 +0800)]
Update Android port
* lisp/touch-screen.el (touch-screen-handle-point-up) <held>:
Treat `held' as `drag' as well.
* src/android.c (android_is_special_directory): Return bool
rather than a pointer to the remainder of the file name, given
that said pointer is never used.
* src/android.h (android_is_special_directory): Modify
correspondingly.
Stefan Kangas [Sat, 2 Sep 2023 00:42:07 +0000 (02:42 +0200)]
Delete references to gnuserv
* doc/misc/mh-e.texi (Incorporating Mail):
* doc/misc/octave-mode.texi (Concept Index):
* lisp/net/browse-url.el (browse-url-w3-gnudoit): Delete
references to gnuserv; these days we use emacsclient.
Stefan Kangas [Sat, 2 Sep 2023 00:31:23 +0000 (02:31 +0200)]
Make url-gateway-broken-resolution obsolete
* lisp/url/url-gw.el (url-gateway-broken-resolution)
(url-gateway-nslookup-program, url-gateway-nslookup-host): Make obsolete.
* doc/misc/url.texi (Broken hostname resolution): Delete commented
out section.
Stefan Kangas [Sat, 2 Sep 2023 00:21:54 +0000 (02:21 +0200)]
* lisp/help.el (substitute-quotes): Improve docstring.
Eshel Yaron [Fri, 1 Sep 2023 21:54:21 +0000 (22:54 +0100)]
Eglot: rework description and type of eglot-confirm-server-edits
Co-authored-by: João Távora <joaotavora@gmail.com>
* lisp/progmodes/eglot.el (eglot-confirm-server-edits): Improve
type description.
João Távora [Fri, 1 Sep 2023 21:45:51 +0000 (22:45 +0100)]
Eglot: handle unsaved buffers in new eglot--propose-changes-as-diff
* lisp/progmodes/eglot.el (eglot--confirm-server-edits): Add docstring.
(eglot--propose-changes-as-diff): Rework. Handle unsaved buffers.
(eglot--apply-workspace-edit): Rework.
Stefan Kangas [Fri, 1 Sep 2023 20:17:48 +0000 (22:17 +0200)]
Fix two defcustom :types
* lisp/frame.el (blink-cursor-blinks):
* lisp/url/url-vars.el (url-max-redirections): Revert defcustom :types
back to integer. (Bug#65655)
Stefan Kangas [Fri, 9 Dec 2022 09:58:22 +0000 (10:58 +0100)]
Make checkdoc warn if not using lexical-binding
* lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine):
Warn if there is no lexical-binding cookie. (Bug#59920)
(checkdoc-lexical-binding-flag): New user option.
Ihor Radchenko [Wed, 23 Aug 2023 09:24:18 +0000 (12:24 +0300)]
Make emacsclient handle org-protocol:// links
Org mode provides a way to quickly capture bookmarks, notes, and links
using emacsclient:
emacsclient "org-protocol://store-link?url=URL&title=TITLE"
* etc/emacsclient.desktop: Make Emacs the default application for
org-protocol. (Bug#65469)
Eshel Yaron [Mon, 28 Aug 2023 11:43:52 +0000 (13:43 +0200)]
Fix regexp in help-do-arg-highlight
* lisp/help-fns.el (help-do-arg-highlight): Fix regexp. (Bug#65580)
Avoid highlighting (parts of) the function name as arguments in the
output of 'describe-function' when the function has an argument with
the same name. To achieve this, refine the regular expression that
'help-do-arg-highlight' uses such that it doesn't match anything in
the function name.
Manuel Giraud [Wed, 30 Aug 2023 15:38:57 +0000 (17:38 +0200)]
Fix `image-auto-resize-on-window-resize' custom :type
* lisp/image-mode.el (image-auto-resize-on-window-resize): Change
custom :type from integer to number to be able to set below 1
second. (Bug#65626)
Ross Timson [Thu, 31 Aug 2023 19:28:22 +0000 (20:28 +0100)]
Add "terraform-ls" LSP server to Eglot
* lisp/progmodes/eglot.el (eglot-server-programs): Add "terraform-ls",
the official Terraform LSP server. (Bug#65671)
Copyright-paperwork-exempt: yes
Jim Porter [Fri, 1 Sep 2023 16:26:14 +0000 (09:26 -0700)]
; Fix debug logging for synchronous commands in Eshell tests
* lisp/eshell/eshell.el (eshell-command-result): Call
'eshell-debug-command-start'.
* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Update
comment.
(eshell-test-command-result): Set 'eshell-debug-command'.
Eli Zaretskii [Fri, 1 Sep 2023 13:33:40 +0000 (16:33 +0300)]
; Improve documentation of 'char-table-range'
* doc/lispref/sequences.texi (Char-Tables):
* src/chartab.c (Fchar_table_range): Clarify what
'char-table-range' returns for an argument that is a cons cell.
Eli Zaretskii [Fri, 1 Sep 2023 13:08:36 +0000 (16:08 +0300)]
Fix minor bugs in vc-git and vc-hg on Windows uncovered by vc-tests
* lisp/vc/vc-hg.el (vc-hg-state-slow): Non-existing files emit a
different message on MS-Windows; support that.
* lisp/vc/vc-git.el (vc-git-checkin): Make sure
'default-directory' is not nil when calling
'make-nearby-temp-file' on MS-Windows.
* test/lisp/vc/vc-tests.el (vc-test--version-diff): Run
'default-directory' through 'file-truename', otherwise the
'vc-test-cvs06-version-diff' test might fail on MS-Windows.
Michael Albinus [Fri, 1 Sep 2023 12:03:26 +0000 (14:03 +0200)]
* lisp/net/tramp.el (tramp-completion-multi-hop-methods):
Add ;;;###tramp-autoload cookie.
Michael Albinus [Fri, 1 Sep 2023 11:49:22 +0000 (13:49 +0200)]
Fix tramp-completion-multi-hop-methods handling
* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
Add methods properly.
* lisp/net/tramp.el (tramp-completion-multi-hop-methods): Fix :type.
Eli Zaretskii [Fri, 1 Sep 2023 11:31:35 +0000 (14:31 +0300)]
Fix VC mode-line indication for registerd but ignored files
* lisp/vc/vc-hooks.el (vc-ignored-state): New face.
(vc-default-mode-line-string): Add special indication and tooltip
for files that are registered, but also ignored. See
https://lists.gnu.org/archive/html/emacs-devel/2023-09/msg00006.html
for the details of the use case.
* doc/emacs/maintaining.texi (VC Mode Line): Mention the
additional meaning of '!' in the VC status mode-line display.
Juri Linkov [Fri, 1 Sep 2023 06:56:59 +0000 (09:56 +0300)]
Fix height of new SVG icons on tab-bar and tab-line (bug#62562)
* lisp/tab-bar.el (tab-bar--load-buttons): Add ':height (1.0 . em)'
to icons tab-bar-new, tab-bar-menu-bar.
(tab-bar-history-mode): Add ':height (1.0 . em)'
to icons tab-bar-back, tab-bar-forward.
* lisp/tab-line.el (tab-line-new, tab-line-left, tab-line-right):
Add ':height (1.0 . em)' to these icons.
Po Lu [Fri, 1 Sep 2023 06:50:28 +0000 (14:50 +0800)]
Display the OSK after touch screen drag-to-select
* lisp/touch-screen.el (touch-screen-handle-point-up) <drag>:
New case. Activate the on screen keyboard should the window
where the first touch screen event landed have selected a
writable buffer in which the region is active.
Jim Porter [Wed, 30 Aug 2023 00:11:42 +0000 (17:11 -0700)]
Add debug instrumentation for Eshell process management
* lisp/eshell/esh-util.el (eshell-debug-command)
* lisp/eshell/em-basic.el (eshell/eshell-debug)
(pcomplete/eshell-mode/eshell-debug): Add 'process' type.
* lisp/eshell/esh-proc.el (eshell-gather-process-output)
(eshell-interactive-process-filter, eshell-insertion-filter)
(eshell-sentinel): Call 'eshell-debug-command'.
* test/lisp/eshell/eshell-tests-helpers.el (with-temp-eshell): Add
'process' to 'eshell-debug-command'
(eshell-get-debug-logs): New function...
(eshell-match-command-output, eshell-command-result-equal): ... use
it.
* doc/misc/eshell.texi (Built-ins): Mention "process" debug type.
Jim Porter [Wed, 30 Aug 2023 00:02:40 +0000 (17:02 -0700)]
Fix handling of Eshell debug modes
Previously, these were enabled/disabled at byte-compilation time, but
we want to control them at runtime.
* lisp/eshell/esh-cmd.el (eshell-eval-command): Call
'eshell-debug-command-start'.
(eshell-manipulate): Check 'eshell-debug-command' at runtime. Update
callers.
(eshell-debug-command): Move to "esh-util.el".
(eshell/eshell-debug, pcomplate/eshell-mode/eshell-debug): Move to
"em-basic.el".
(eshell-debug-show-parsed-args): Update implementation.
* lisp/eshell/esh-util.el (eshell-debug-command): Move from
"esh-cmd.el" and convert to a list.
(eshell-debug-command-buffer): New variable.
(eshell-condition-case): Check 'eshell-handle-errors' at runtime.
(eshell-debug-command-start): New function.
(eshell-debug-command): Move from "esh-cmd.el" and convert to a macro.
* lisp/eshell/em-basic.el (eshell/eshell-debug)
(pcomplete/eshell-mode/eshell-debug): Move from "esh-cmd.el" and
reimplement.
* lisp/eshell/eshell.el (eshell-command): Pass the original input to
'eshell-eval-command'.
* doc/misc/eshell.texi (Built-ins): Update documentation for
'eshell-debug'.
Dmitry Gutov [Fri, 1 Sep 2023 01:41:15 +0000 (04:41 +0300)]
Add syntax-propertize-function to js-ts-mode
* lisp/progmodes/js.el (js-ts--s-p-query):
New variable (bug#65470).
(js-ts--syntax-propertize): New function.
(js-ts-mode): Use it.
Dmitry Gutov [Fri, 1 Sep 2023 01:37:40 +0000 (04:37 +0300)]
Don't push to Xref history when search ends with error
* lisp/progmodes/xref.el (xref--push-markers):
Add new arguments (bug#65631).
(xref--show-xrefs, xref--show-defs): Use them.
Po Lu [Fri, 1 Sep 2023 00:52:22 +0000 (00:52 +0000)]
Minor copy-edits
* doc/emacs/android.texi (Android Document Providers): Fix typo.
* doc/emacs/haiku.texi (Haiku Basics): Likewise.
Po Lu [Fri, 1 Sep 2023 00:49:42 +0000 (00:49 +0000)]
Properly describe minor mode lighters while mode-line-compact
* lisp/help.el (describe-minor-mode-from-indicator): New arg
EVENT. If set to a mouse event and mode-line-compact, search
for a suitable lighter within the entire posn object.
* lisp/bindings.el (mode-line-minor-mode-help): Supply EVENT.
(bug#65664)
João Távora [Fri, 1 Sep 2023 00:09:57 +0000 (01:09 +0100)]
; Eglot: Update etc/EGLOT-NEWS
* etc/EGLOT-NEWS: Mention bug number of last change.
João Távora [Thu, 31 Aug 2023 23:48:25 +0000 (00:48 +0100)]
Eglot: revamp confirmation model for server-proposed edits
bug#60338
The variable 'eglot-confirm-server-edits' replaces the obsolete
'eglot-confirm-server-initiated-edits' and brings about a new
confirmation model, making it possible to have only certain commands
require user confirmation. This was achieved careful usage of the
'this-command' and 'last-command' variables.
There are now two types of confirmation: the usual
minibuffer summary and a temporary 'diff-mode' buffer to display the
proposed changes, so the user can apply them one by one.
Thanks to Philip Kaludercic for the diff-mode idea and implementation.
Co-authored-by: Philip Kaludercic <philipk@posteo.net>
* doc/misc/eglot.texi (Eglot Variables): Describe
'eglot-confirm-server-edits'.
* etc/EGLOT-NEWS (latest): Mention change.
* lisp/progmodes/eglot.el (diff-mode): Require it.
(eglot-confirm-server-initiated-edits): Obsolete it.
(eglot-confirm-server-edits): New variable.
(eglot-handle-request workspace/applyEdit): Use 'last-command'
(eglot-execute t t): Use 'this-command'.
(eglot--apply-workspace-edit): Rework.
(eglot-rename): Use 'this-command'.
Yuan Fu [Thu, 31 Aug 2023 23:00:54 +0000 (16:00 -0700)]
; * src/treesit.c: Add ts function boilerplate
Jimmy Yuen Ho Wong [Thu, 31 Aug 2023 18:47:12 +0000 (19:47 +0100)]
Handle directory values of scopeUri in workspace/configuration
Even though scopeUri is specified to be of documentUri type, some
servers (notably pyright) insist on passing the pathname of a
directory there. In pyright's case this is frequently useless, as the
directory is the project directory. Nevertheless we can be lenient to
those servers by detecting whether the value is a directory and doing
the right thing.
Note that we do not (yet) support per-file configuration storage.
* lisp/progmodes/eglot.el (eglot--workspace-configuration-plist):
Rework.
Co-authored-by: João Távora <joaotavora@gmail.com>
GitHub-reference: https://github.com/joaotavora/eglot/pull/1281
Michael Albinus [Thu, 31 Aug 2023 15:21:23 +0000 (17:21 +0200)]
Adapt last change
* lisp/net/tramp-container.el (tramp-completion-multi-hop-methods):
Add "docker" and "podman".
* lisp/net/tramp.el (tramp-completion-multi-hop-methods):
Adapt docstring. Use nil as initial value.
Gene Goykhman [Thu, 31 Aug 2023 15:09:36 +0000 (17:09 +0200)]
Allow enabling multi-hop container completion selectively by method
* lisp/net/tramp-container.el: Check if METHOD is a member of
`tramp-container-multi-hop-methods' before attempting completion.
* lisp/net/tramp.el: Add custom variable
`tramp-container-multi-hop-methods'.
Po Lu [Thu, 31 Aug 2023 12:22:16 +0000 (20:22 +0800)]
Copy-edits to haiku.texi
* doc/emacs/haiku.texi (Haiku, Haiku Basics, Haiku Fonts):
Refine to avoid excessively wordy and repetitive constructs.
Diancheng Wang [Wed, 9 Aug 2023 02:35:12 +0000 (10:35 +0800)]
Enable gdb-mi to set breakpoints when threads of debuggee are running
* lisp/progmodes/gdb-mi.el (gdb): Call 'gud-def' with 5th arg
non-nil for those commands that can be invoked asynchronously.
(gdb-starting): Set 'gud-async-running' non-nil for async commands.
* lisp/progmodes/gud.el (gud-async-running): New defvar.
(gud-menu-map): Enable some commands only if 'gud-async-running' is
non-nil.
(gud-def): Accept another optional argument ASYNC-OK. (Bug#65612)
Steven Allen [Fri, 25 Aug 2023 17:43:43 +0000 (10:43 -0700)]
; Fix push-button when triggered by a single keypress
* lisp/button.el (push-button): Don't assume the event is
a list, it may be a single key. (Bug#65539)
Liu Hui [Tue, 22 Aug 2023 05:52:03 +0000 (13:52 +0800)]
strokes: Support running a function when no stroke matches
* lisp/strokes.el (strokes-no-match-function): New variable.
(strokes-no-match-default): New function.
(strokes-execute-stroke): Run `strokes-no-match-function' when no
stroke matches. (Bug#65449)
Mauro Aranda [Wed, 30 Aug 2023 22:45:09 +0000 (19:45 -0300)]
Fix choice in electric-pair-skip-whitespace-chars
* lisp/elec-pair.el (electric-pair-skip-whitespace-chars): Use repeat
instead of list in custom :type. (Bug#65625)
Yuan Fu [Thu, 31 Aug 2023 03:53:03 +0000 (20:53 -0700)]
Improve performance of treesit_cursor_helper_1
* src/treesit.c: (treesit_cursor_helper_1): Use
ts_tree_cursor_goto_first_child_for_byte to speed up traversing among
siblings. The "while (ts_node_end_byte (cursor_node) < end_pos)" can
be removed with the check added in the loop below.
Po Lu [Thu, 31 Aug 2023 02:14:00 +0000 (02:14 +0000)]
Delete unused fields
* src/haiku_support.cc (class EmacsWindow)
<x_before_zoom, y_before_zoom>: Delete fields.
Po Lu [Thu, 31 Aug 2023 01:04:32 +0000 (09:04 +0800)]
Include installation date within asset files
* src/android.c (setEmacsParams): Set `emacs_installation_time'
to the mtime of the class path file, which happens to be the
time of Emacs's installation.
(emacs_installation_time): New variable.
* src/android.h (emacs_installation_time): Export new variable.
* src/androidvfs.c (android_afs_stat): If
emacs_installation_time is a valid timespec, set st_mtime to it.
Dmitry Gutov [Thu, 31 Aug 2023 00:21:11 +0000 (03:21 +0300)]
Add one more mouse-set-point call to functions xref-find-*-at-mouse
* lisp/progmodes/xref.el (xref-find-definitions-at-mouse)
(xref-find-references-at-mouse): Call mouse-set-point to ensure
that the search is initiated at the same place where
xref-backend-identifier-at-point was called (bug#65578).
Stefan Kangas [Wed, 30 Aug 2023 18:56:14 +0000 (20:56 +0200)]
Make browse-url-button support more SSL URIs
* lisp/net/browse-url.el (browse-url-button-regexp): Add support for
gophers:// and ftps:// URIs. (Bug#65627)
Stefan Kangas [Wed, 30 Aug 2023 17:42:58 +0000 (19:42 +0200)]
Clean up some safe-local-variable predicates
* lisp/progmodes/project.el: Add comments with a reminder to simplify
'safe-local-variable' predicates when Emacs 28 support is dropped.
(project-vc-ignores): Mark only a list of strings as safe-local.
* lisp/textmodes/reftex-vars.el (reftex-guess-label-type): Use
booleanp for 'safe-local-variable' predicate. (Bug#65608)
Eli Zaretskii [Wed, 30 Aug 2023 14:16:59 +0000 (17:16 +0300)]
Fix revert-buffer when some decoding is involved
* src/fileio.c (Finsert_file_contents): Fix the amount of text
read from the file when reverting. (Bug#65609)
Po Lu [Wed, 30 Aug 2023 02:07:49 +0000 (10:07 +0800)]
Facilitate typing `C-SPC' on Android
* doc/emacs/android.texi (Android Windowing): Mention C-SPC
interception and how it may be disabled.
* java/org/gnu/emacs/EmacsNative.java (shouldForwardCtrlSpace):
New function.
* java/org/gnu/emacs/EmacsView.java (onKeyPreIme): New function.
If the provided key code is SPC and the event's modifier key
mask contains ControlMask, relay it directly to onKeyDown.
* java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Export
and make static.
* src/android.c (shouldForwardCtrlSpace): New function.
* src/androidfns.c (syms_of_androidfns)
<android_intercept_control_space>: New defvar.
Stefan Kangas [Tue, 29 Aug 2023 21:49:57 +0000 (23:49 +0200)]
Add quotes around `C-x C-f` in the *scratch* buffer
* lisp/startup.el (initial-scratch-message): Add quotes around the
'find-file' keybinding.
Stefan Kangas [Tue, 29 Aug 2023 19:40:38 +0000 (21:40 +0200)]
; Fix copyright year in proced-tests.el
Stefan Kangas [Tue, 29 Aug 2023 16:49:02 +0000 (18:49 +0200)]
Make Emacs 21 compat alias obsolete
* lisp/loadhist.el (loadhist-hook-functions): Make Emacs 21
compatibility alias obsolete.
Stefan Kangas [Tue, 29 Aug 2023 16:28:57 +0000 (18:28 +0200)]
Make Makefile browser obsolete
* lisp/progmodes/make-mode.el:
(makefile-mode): Don't document Makefile browser mode.
(makefile-browser-toggle-state-for-line):
(makefile-browser-buffer-name, makefile-browser-leftmost-column)
(makefile-browser-cursor-column, makefile-browser-selected-mark)
(makefile-browser-unselected-mark)
(makefile-browser-auto-advance-after-selection-p)
(makefile-browser-hook, makefile-browser-map)
(makefile-browser-client, makefile-browser-selection-vector)
(makefile-browser-format-target-line)
(makefile-browser-format-macro-line, makefile-browser-fill)
(makefile-browser-next-line, makefile-browser-previous-line)
(makefile-browser-quit, makefile-browser-toggle)
(makefile-browser-insert-continuation)
(makefile-browser-insert-selection)
(makefile-browser-insert-selection-and-quit)
(makefile-browser-send-this-line-item)
(makefile-browser-start-interaction, makefile-browse)
(makefile-switch-to-browser, makefile-browser-on-macro-line-p)
(makefile-browser-this-line-target-name)
(makefile-browser-this-line-macro-name)
(makefile-browser-get-state-for-line)
(makefile-browser-set-state-for-line)
(makefile-browser-toggle-state-for-line): Make obsolete. (Bug#58848)
(makefile-mode-menu): Remove Makefile browser from menu.
* etc/NEWS: Announce its obsoletion.
Michael Albinus [Tue, 29 Aug 2023 12:16:15 +0000 (14:16 +0200)]
Fix tramp-accept-process-output
* lisp/net/tramp.el (tramp-accept-process-output):
Use `with-tramp-suspended-timers' also for the other processes.
Michael Albinus [Tue, 29 Aug 2023 09:30:20 +0000 (11:30 +0200)]
Adapt some changes of last Tramp commit
* lisp/net/tramp-container.el (tramp-container--completion-function):
Use METHOD as argument, instead of PROGRAM. Determine program
from METHOD entry in `tramp-methods'. Bind `non-essential' to
nil. Use a file property as cache.
(tramp-container--completion-function): Use adapted arguments when
setting for "docker" and "podman".
* lisp/net/tramp.el (tramp--last-hop-directory): Adapt docstring.
Move down.
(tramp-set-completion-function): Revert default case to
`file-exists-p', the workaround isn't needed anymore.
(tramp-get-completion-methods): Rename argument to MULTI-HOP.
(tramp-completion-remote-containers): Add :version.
(tramp-multi-hop-p): Bind `tramp-verbose' to nil.
Michael Albinus [Tue, 29 Aug 2023 09:29:37 +0000 (11:29 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Eshel Yaron [Sun, 20 Aug 2023 14:29:33 +0000 (16:29 +0200)]
Rename 'package-vc-allow-side-effects' to better fit its use
* lisp/emacs-lisp/package-vc.el (package-vc-allow-side-effects):
Rename to 'package-vc-allow-build-commands'.
(package-vc--unpack-1): Use new name.
* doc/emacs/package.texi (Fetching Package Sources): Use new name.
* etc/NEWS: Adapt accordingly. (Bug#65386)
Eshel Yaron [Sun, 20 Aug 2023 14:20:54 +0000 (16:20 +0200)]
; Refine 'defcustom' types in 'package-vc'
Only include VC backends that support cloning in the ':type' of
'package-vc-heuristic-alist' and 'package-vc-default-backend', and
compute the list of relevant on demand to keep it fresh.
* lisp/emacs-lisp/package-vc.el (package-vc--backend-type): New constant.
(package-vc-heuristic-alist, package-vc-default-backend): Use it. (Bug#65386)
Eshel Yaron [Fri, 18 Aug 2023 19:59:10 +0000 (21:59 +0200)]
; Refine some 'package-vc' docstrings
* lisp/emacs-lisp/package-vc.el (package-vc-heuristic-alist)
(package-vc-install-dependencies, package-vc-upgrade)
(package-vc-install, package-vc-install-from-checkout)
(package-vc-prepare-patch, package-vc-upgrade-all)
(package-vc-allow-side-effects)
(package-vc-default-backend): Refine docstrings. (Bug#65386)
Gene Goykhman [Tue, 29 Aug 2023 08:10:06 +0000 (10:10 +0200)]
Provide completion candidates for remote containers over a multi-hop
* lisp/net/tramp-container.el (tramp-container--completion-function):
Set default directory to last hop.
(tramp-set-completion-function): Don't use executable-find for
container program since it might not be running locally.
* lisp/net/tramp.el (tramp--last-hop-directory): Add new variable.
(tramp-completion-handle-file-name-all-completions): Use container
host directory to execute container program on remote host.
(tramp-set-completion-function): FIXME: for now, don't constrain
allowable completion methods to only those present on the local system.
(tramp-completion-remote-containers): Add customize option to
provide completion candidates for containers running on remote hosts.
Po Lu [Tue, 29 Aug 2023 02:47:21 +0000 (10:47 +0800)]
Update Android port
* src/sfnt.c (xfree, sfnt_make_interpreter)
(stack_overflow_test_args, stack_underflow_test_args)
(dup_test_args, clear_test_args, raw_test_args, fdef_test_args)
(fdef_1_test_args, endf_test_args, rs_test_args, debug_test_args)
(eif_test_args, sds_test_args, round_test_args, sangw_test_args)
(aa_test_args, scantype_test_args): Include alloca.h. Minor
fixes for standards conformance.
Po Lu [Tue, 29 Aug 2023 01:29:20 +0000 (09:29 +0800)]
Avoid Unicode quotes within transient.texi
* doc/misc/transient.texi (Top, Introduction)
(Aborting and Resuming Transients, Common Suffix Commands)
(Enabling and Disabling Suffixes, Modifying Existing Transients)
(Defining Transients, Binding Suffix and Infix Commands)
(Suffix Specifications, Defining Suffix and Infix Commands)
(Transient State, Group Classes, Suffix Value Methods)
(Prefix Slots, Comparison With Other Packages, FAQ): Replace
Unicode quote characters with grave quotes.
Po Lu [Tue, 29 Aug 2023 01:05:04 +0000 (09:05 +0800)]
Reintroduce menus beneath chapters in the Transient manual
* doc/misc/transient.texi (Introduction)
(Modifying Existing Transients, Predicate Slots): Return the
menus to their proper location, so Texinfo 4.13 can infer up
pointers for nodes within.
Stefan Kangas [Mon, 28 Aug 2023 22:48:06 +0000 (00:48 +0200)]
Skip hanging EasyPG tests on GnuPG 2.4
* test/lisp/epg-tests.el (epg-roundtrip-1, epg-roundtrip-2):
Skip tests on GnuPG 2.4. (Bug#63256)
Stefan Kangas [Mon, 28 Aug 2023 20:05:16 +0000 (22:05 +0200)]
Split up tests in bovine/gcc-tests.el
* test/lisp/cedet/semantic/bovine/gcc-tests.el
(semantic-gcc-test): New macro.
(semantic-gcc-test/1, semantic-gcc-test/2, semantic-gcc-test/3)
(semantic-gcc-test/4, semantic-gcc-test/5, semantic-gcc-test/6)
(semantic-gcc-test/7, semantic-gcc-test/8, semantic-gcc-test/9)
(semantic-gcc-test-output-parser/fail): New tests.
Stefan Kangas [Mon, 28 Aug 2023 19:58:36 +0000 (21:58 +0200)]
Make Emacs 21 compat alias obsolete
* lisp/jit-lock.el (jit-lock-defer-contextually): Make Emacs 21 compat
alias obsolete.
Juri Linkov [Mon, 28 Aug 2023 16:57:16 +0000 (19:57 +0300)]
* lisp/tab-bar.el: Add tab-bar-tab-name-format-functions (bug#65554)
(tab-bar-tab-name-format-truncated)
(tab-bar-tab-name-format-hints)
(tab-bar-tab-name-format-close-button)
(tab-bar-tab-name-format-face): New functions.
(tab-bar-tab-name-format-functions): New defcustom.
(tab-bar-tab-name-format-default): Rewrite to use
'tab-bar-tab-name-format-functions'.
Stefan Monnier [Mon, 28 Aug 2023 16:12:42 +0000 (12:12 -0400)]
* lisp/subr.el (combine-change-calls-1): Fix bug#64989
Silence the spurious warning, and improve the warning while at it.
Do not merge to master.
Gerd Möllmann [Mon, 28 Aug 2023 14:39:01 +0000 (16:39 +0200)]
; Add .clangd configuration file
Juri Linkov [Mon, 28 Aug 2023 06:52:36 +0000 (09:52 +0300)]
* lisp/tab-bar.el: Show full tab names on tooltips (bug#65554).
(tab-bar--format-tab): Use tab names for :help strings.
It's useful to see original tab names when the tab-bar displays names
truncated by tab-bar-auto-width, etc.
(tab-bar-format-menu-bar): Fix string case for consistency with other items.
Po Lu [Mon, 28 Aug 2023 05:08:22 +0000 (13:08 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsActivity.java (attachWindow, onDestroy)
(onWindowFocusChanged, onContextMenuClosed):
* java/org/gnu/emacs/EmacsContextMenu.java (onMenuItemClick):
* java/org/gnu/emacs/EmacsDialog.java (onClick, display1, onDismiss):
* java/org/gnu/emacs/EmacsOpenActivity.java (checkReadableOrCopy)
(onDestroy, onWindowFocusChanged, onPause):
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(registerWindow, removeWindowConsumer, detachWindow)
(noticeIconified, noticeDeiconified): Remove superfluous
debugging code now that the Android port is stable.
* java/org/gnu/emacs/EmacsView.java (onLayout): Detect if the
IME is hidden while a toplevel window is focused, and clear
isCurrentlyTextEditor in that case.
(onApplyWindowInsets): New function.
(raise, lower, popupMenu, onCreateInputConnection): Delete
aforementioned debugging code.
Kyle Meyer [Mon, 28 Aug 2023 02:38:34 +0000 (22:38 -0400)]
Update to Org 9.6.8-3-g21171d
Yuan Fu [Sun, 27 Aug 2023 21:49:56 +0000 (14:49 -0700)]
Escape percent character in treesit--inspect-name (bug#65540)
* lisp/treesit.el (treesit-inspect-node-at-point): Escape percent.