]> git.eshelyaron.com Git - emacs.git/log
emacs.git
16 months agoUse advertised PREFIX when formatting nicks in ERC
F. Jason Park [Fri, 29 Dec 2023 04:20:55 +0000 (20:20 -0800)]
Use advertised PREFIX when formatting nicks in ERC

* lisp/erc/erc-speedbar.el (erc-speedbar-insert-user): Run
`erc-get-channel-membership-prefix' in associated buffer if possible.
* lisp/erc/erc.el (erc-get-channel-membership-prefix): Use known
prefix mappings when determining status chars.
* test/lisp/erc/erc-tests.el (erc--parsed-prefix): Use common helpers
for initializing buffers, and use a more realistic example for PREFIX
value.
(erc--update-channel-modes): Add current buffer to `erc-server-user'
object to maintain essential invariant, even though this doesn't
affect the test's outcome.
(erc-tests--equal-including-properties): Move to `erc-tests-common'
and rename `erc-tests-common-equal-with-props'.
(erc--merge-prop, erc--remove-from-prop-value-list,
erc--remove-from-prop-value-list/many): Use new name for
`erc-tests-common-equal-with-props'.
(erc-get-channel-membership-prefix): New test.
(erc--determine-speaker-message-format-args,
erc--determine-speaker-message-format-args/queries-as-channel,
erc--determine-speaker-message-format-args/queries): Use new name
for `erc-tests-common-equal-with-props'.
* test/lisp/erc/resources/erc-tests-common.el
(erc-tests-common-equal-with-props): New macro, originally
`erc-tests--equal-including-properties' from erc-tests.el.
(erc-tests-common-make-server-buf): Initialize tables and make NAME
argument optional.  (Bug#67677)

(cherry picked from commit 4939f4139391c13c34387ac0c05a5c7db39bf9d5)

16 months agoFix regression in erc-button-add-button
F. Jason Park [Fri, 29 Dec 2023 04:21:13 +0000 (20:21 -0800)]
Fix regression in erc-button-add-button

* lisp/erc/erc-button.el (erc-button--nick): Abide by recommended
internal naming convention and use "cusr" instead of "cuser" for
referring to an `erc-channel-user' object.
(erc-button--fallback-cmem-function,
erc-button--get-user-from-spkr-prop): Use new, preferred name
`erc-channel-members' for `erc-channel-users' table.
(erc-button-add-nickname-buttons): Use "cmem" instead of "cuser" to
refer to values of the `erc-channel-members' table, which are cons
cells, not `erc-channel-user' objects.  Use updated slot name `cusr'
when initializing `erc-button--nick' object.
(erc-button-add-button): Honor wishes of
`erc-button--modify-nick-function' advice members when they set the
`nickname-face' slot of the passed-around `erc-button--nick' object to
nil to indicate a desire to forgo adding a face while still
buttonizing the inserted nick with `erc-data', etc.  (Bug#67767)

(cherry picked from commit 2534a4737f711e12318fdc50af8d608a81414ebf)

16 months agoMake erc-update-channel-current-member stricter
F. Jason Park [Fri, 29 Dec 2023 04:21:30 +0000 (20:21 -0800)]
Make erc-update-channel-current-member stricter

* lisp/erc/erc.el (erc--update-cusr-status-if-changed): Remove unused
macro.
(erc-update-current-channel-member): Redo doc string and abide by its
original language to the letter by not honoring a value of t for the
five channel-membership status parameters, even though this may break
user code that accidentally passes t instead of `on'.  Avoid double
lookup for nick in `erc-server-users'.  Rename some variables as per
recommended conventions for `erc-channel-user' objects.  Stash
downcased nick for further reuse.  Don't bother factoring in `addp' to
return value because `cusr-changed-p' is always non-nil when `addp'
is.

(cherry picked from commit 6c899525571749c29ec3e2826c4cc70b85b17db1)

16 months agoDon't discard trimmed args in erc-cmd-MODE
F. Jason Park [Thu, 28 Dec 2023 05:13:45 +0000 (21:13 -0800)]
Don't discard trimmed args in erc-cmd-MODE

* lisp/erc/erc.el (erc-cmd-MODE): Use matched non-whitespace portion
of input line instead of the original line.  Otherwise, when the user
types "/MODE #chan", the server sees "MODE  #chan", with twos spaces.
(erc--parse-nuh): Improve doc.

(cherry picked from commit 2560d81351c72002e1014c70af0488bbb2558b34)

16 months agoUse format-prompt in erc-select-read-args
F. Jason Park [Sun, 31 Dec 2023 00:27:08 +0000 (16:27 -0800)]
Use format-prompt in erc-select-read-args

* lisp/erc/erc-button.el (erc-button-cmd-KICK, erc-button-cmd-MSG):
Use `read-string' instead of `read-from-minibuffer'.
* lisp/erc/erc.el (erc-select-read-args): Use `format-prompt', which
isn't normally available in Emacs 27 without Compat.

(cherry picked from commit d5f6e911a99157d79bc900a1a8719298575dad74)

16 months agoRestore predicate for detecting date stamps in ERC
F. Jason Park [Sun, 31 Dec 2023 00:39:18 +0000 (16:39 -0800)]
Restore predicate for detecting date stamps in ERC

* etc/ERC-NEWS: Mention function `erc-stamp-inserting-date-stamp-p'.
* lisp/erc/erc-stamp.el (erc-stamp-inserting-date-stamp-p): New
function for third parties to detect whether the message being
inserted is a date stamp.  Date stamps as independent messages were
originally introduced as part of bug#60936.

(cherry picked from commit 8513ecc8a38f76b497348bbae61ae4c5ac5a9995)

16 months agoFix regression in erc-keep-place-indicator-mode
F. Jason Park [Sun, 31 Dec 2023 01:09:17 +0000 (17:09 -0800)]
Fix regression in erc-keep-place-indicator-mode

* lisp/erc/erc-goodies.el (erc-keep-place): Revert portion of
65735efdca0 "Improve multi-window erc-keep-place-indicator-mode" that
skipped modifying `window-prev-buffers' when the indicator's minor
mode was enabled.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el: Modify test to
assert that point's place is preserved after switching away from a
buffer with the indicator enabled.
* test/lisp/erc/resources/keep-place/follow.eld: Update.
This feature was originally introduced by bug#59943.

(cherry picked from commit 4eda77ed335f982460f818ae1b8619cbd32ba77d)

16 months ago; * etc/TODO: Add an item about 'Info-hide-note-references'.
Eli Zaretskii [Sun, 31 Dec 2023 13:17:18 +0000 (15:17 +0200)]
; * etc/TODO: Add an item about 'Info-hide-note-references'.

(cherry picked from commit 240b4594f11ee14c91f4a37d0b3ff4625e79f19c)

16 months agoCC Mode. Preserve space syntax-table props in open strings
Alan Mackenzie [Sun, 31 Dec 2023 11:02:50 +0000 (11:02 +0000)]
CC Mode.  Preserve space syntax-table props in open strings

This fixes bug#68111, allowing, e.g., backward-kill-word to
work properly.

* lisp/progmodes/cc-mode.el (c-clear-string-fences): On an open
string which isn't followed by another string, remove the
syntax-table properties just from template delimiters rather
than setting the syntax-table properties of all the string to
punctuation.

(cherry picked from commit 91f316d293150c6d025c61949c24fc07136fb1fd)

16 months agoRevert "Get NS screen resolution from system"
Alan Third [Sun, 31 Dec 2023 10:28:29 +0000 (10:28 +0000)]
Revert "Get NS screen resolution from system"

This reverts commit f3dec3439fd5aee885a76622f384f6c7ca67d128.

(cherry picked from commit bbd372da53302daa771efe0350bf46783aba3af7)

16 months ago; Remove needless .lldbinit settings from lldb NEWS entry
Gerd Möllmann [Sun, 31 Dec 2023 08:41:11 +0000 (09:41 +0100)]
; Remove needless .lldbinit settings from lldb NEWS entry

(cherry picked from commit 348424776d65e0bddab288bf8924be89a02b6746)

16 months ago* doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#68164).
Eli Zaretskii [Sun, 31 Dec 2023 07:44:32 +0000 (09:44 +0200)]
* doc/emacs/custom.texi (Modifier Keys): Fix markup (bug#68164).

Suggested by Jens Quade <jq@qdevelop.de>.

(cherry picked from commit 01be4fe39d7029295d09b0e5e46b9239ab4600bc)

16 months agoPrevent overlapping sections of glyphs from being misaligned
Po Lu [Sun, 31 Dec 2023 03:34:28 +0000 (11:34 +0800)]
Prevent overlapping sections of glyphs from being misaligned

* src/xdisp.c (gui_fix_overlapping_area): Offset all glyphs by
ROW->x.

(cherry picked from commit 4ffd16b8e5e4635246155fdb23967707bcb70949)

16 months ago; * src/buffer.c (Ffind_buffer): Fix coding style in recent change.
Po Lu [Sun, 31 Dec 2023 03:21:34 +0000 (11:21 +0800)]
; * src/buffer.c (Ffind_buffer): Fix coding style in recent change.

(cherry picked from commit 2bbd50a03d61bb38a9b72ba86bcd46106cfeedfe)

16 months agoDelete unused macros (SF#494)
Bill Wohler [Sun, 31 Dec 2023 01:30:34 +0000 (17:30 -0800)]
Delete unused macros (SF#494)

* lisp/mh-e/mh-acros.el (mh-do-in-gnu-emacs, mh-do-in-xemacs,
mh-funcall-if-exists, defun-mh, defmacro-mh, mh-make-local-hook,
mh-mark-active-p): Delete unused macros.

(cherry picked from commit a058d61615d7c234631612f84c7b879845fdb7f7)

16 months ago; * src/alloc.c (garbage_collect): Fix typo.
Stefan Kangas [Sat, 30 Dec 2023 22:24:16 +0000 (23:24 +0100)]
; * src/alloc.c (garbage_collect): Fix typo.

(cherry picked from commit 82f6367ee241d2d99ed9ca126b458381ee2cf620)

16 months ago; cperl-mode.el: Improve discoverability of cperl-file-styles
Harald Jörg [Sat, 30 Dec 2023 20:50:22 +0000 (21:50 +0100)]
; cperl-mode.el: Improve discoverability of cperl-file-styles

* lisp/progmodes/cperl-mode.el (cperl-indentation-details):
Mention the option `cperl-file-style' in the docstring.
(cperl-file-style): Describe the available styles, and move the
option to the group `cperl-indentatino-details'.

(cherry picked from commit 1d278dc786c01cd3799a29156e3e1f8dda965318)

16 months agoSlightly clarify "Start Emacs maximized" in FAQ
Stefan Kangas [Sat, 30 Dec 2023 20:06:14 +0000 (21:06 +0100)]
Slightly clarify "Start Emacs maximized" in FAQ

* doc/misc/efaq.texi (Start Emacs maximized): Clarify why the early init
file is used.

(cherry picked from commit fc8a20f79274a2e533722f636cb538d7f8fb5427)

16 months ago; Skip commit 518e6795c0a3a5f5901056130ddb18143aa3a985
Eshel Yaron [Tue, 2 Jan 2024 07:55:54 +0000 (08:55 +0100)]
; Skip commit 518e6795c0a3a5f5901056130ddb18143aa3a985

16 months ago; Clean up some Keyword headers
Stefan Kangas [Sat, 30 Dec 2023 17:59:56 +0000 (18:59 +0100)]
; Clean up some Keyword headers

(cherry picked from commit 32cfc60d2a2baa7f60bd4190ab83580bc667c753)

16 months agoDocument `wp` defgroup as obsolete instead of deprecated
Stefan Kangas [Sat, 30 Dec 2023 17:10:25 +0000 (18:10 +0100)]
Document `wp` defgroup as obsolete instead of deprecated

This opens up for its removal at some point in the future.  It has
been deprecated for the better part of a decade by now.

* lisp/cus-edit.el (wp): Document group "wp" as obsolete.
* lisp/finder.el (finder-known-keywords): Document keyword "wp" as obsolete.

(cherry picked from commit 479e64b5ad7f87b291a52ebb0227cf37a4defe50)

16 months ago; Prefer finder keyword "text" to deprecated keyword "wp"
Stefan Kangas [Sat, 30 Dec 2023 17:01:48 +0000 (18:01 +0100)]
; Prefer finder keyword "text" to deprecated keyword "wp"

(cherry picked from commit 0f3be9596fb3cf2f5e8f10fe2b3ef59546de98bb)

16 months agoAdd `text` to `finder-known-keywords`
Stefan Kangas [Sat, 30 Dec 2023 16:56:39 +0000 (17:56 +0100)]
Add `text` to `finder-known-keywords`

`finder-known-keywords` is "supposed to correspond to top-level
customization groups".  However, the customize group "wp" is now
deprecated in favor of "text".

* lisp/finder.el (finder-known-keywords): Add new "text" keyword.
Deprecate the "wp" keyword.

(cherry picked from commit 03fdb21bcfdc27401066bb7375d07ad0259219fa)

16 months agoorg-protocol: Minor copy-edits to Commentary
Stefan Kangas [Sat, 30 Dec 2023 16:53:26 +0000 (17:53 +0100)]
org-protocol: Minor copy-edits to Commentary

* lisp/org/org-protocol.el: Minor copy-edits to Commentary.

(cherry picked from commit 55555a6a0d1d76468f8327972b3cb067b9e35f24)

16 months ago; Jsonrpc: fix spurious unintended change
João Távora [Sat, 30 Dec 2023 12:10:31 +0000 (06:10 -0600)]
; Jsonrpc: fix spurious unintended change

* lisp/jsonrpc.el (jsonrpc--log-event): Fix spurious unintended
change.

(cherry picked from commit e438215f69fcd9e536981f90b2ff30f72c4a757e)

16 months agoSimplify Objective C autorelease pool handling
Alan Third [Mon, 9 Oct 2023 21:21:05 +0000 (22:21 +0100)]
Simplify Objective C autorelease pool handling

* src/emacs.c: Remove ns_pool.
(main): Replace ns_pool stuff with call to ns_init_pool.
(Fkill_emacs): The pools are drained automatically when the
application exits, so it's probably not worth draining the pool here.
(decode_env_path): No longer required as this is handled by
`outerpool' defined in nsterm.m.
* src/nsterm.h:
* src/nsterm.m (ns_init_pool): New function.

(cherry picked from commit 66656bf5f86c7623072a08fa3f29ba9c879d3f6d)

16 months agoGet NS screen resolution from system
Alan Third [Sun, 8 Oct 2023 22:11:46 +0000 (23:11 +0100)]
Get NS screen resolution from system

* src/nsterm.m (ns_initialize_display_info): Query the screen
deviceDescription for the resolution instead of hard-coding it.

(cherry picked from commit f3dec3439fd5aee885a76622f384f6c7ca67d128)

16 months ago; Improve documentation of SVG image loading
Alan Third [Sat, 30 Dec 2023 11:15:17 +0000 (11:15 +0000)]
; Improve documentation of SVG image loading

* src/image.c (svg_load_image): Add comments explaining the process.

(cherry picked from commit 536674138d53e81f9e1d8bd7f3f7e744cc04fae2)

16 months agoRemove redundant pdmp file copy (bug#66022)
Alan Third [Sun, 8 Oct 2023 22:14:24 +0000 (23:14 +0100)]
Remove redundant pdmp file copy (bug#66022)

* nextstep/Makefile.in (${ns_applibexecdir}/Emacs.pdmp): The pdmp file
is not required in the app bundle for a non-self-contained install.

(cherry picked from commit 1b0a1e5d224831c09ac655af5bd75b47827ae98d)

16 months agoImprove syntax highlighting for python-ts-mode
Denis Zubarev [Sat, 11 Nov 2023 01:55:44 +0000 (04:55 +0300)]
Improve syntax highlighting for python-ts-mode

Fix fontification of strings inside of f-strings interpolation, e.g. for
f"beg {'nested'}" - 'nested' was not fontified as string.  Do not
override the face of builtin functions (all, bytes etc.) with the
function call face.  Add missing assignment expressions (:= *=).
Fontify built-ins (dict,list,etc.) as types when they are used in type
hints.  Highlight union types (type1|type2).  Highlight base class names
in the class definition.  Fontify class patterns in case statements.
Highlight the second argument as a type in isinstance/issubclass call.
Highlight dotted decorator names.

* lisp/progmodes/python.el (python--treesit-keywords): Add compound
keyword "is not".
(python--treesit-builtin-types): New variable that stores all python
built-in types.
(python--treesit-type-regex): New variable.  Regex matches if text is
either built-in type or text starts with capital letter.
(python--treesit-builtins): Extract built-in types to other variable.
(python--treesit-fontify-string): fix f-string interpolation.  Enable
interpolation highlighting only if string-interpolation is presented
on the enabled levels of treesit-font-lock-feature-list.
(python--treesit-fontify-string-interpolation): Remove function.
(python--treesit-fontify-union-types): Fontify nested union types.
(python--treesit-fontify-union-types-strict): Fontify nested union
types, only if type identifier matches against
python--treesit-type-regex.
(python--treesit-fontify-dotted-decorator): Fontify all parts of
dotted decorator name.
(python--treesit-settings): Change/add rules.  (Bug#67061)

* test/lisp/progmodes/python-tests.el
(python-ts-tests-with-temp-buffer): Function for setting up test
buffer.
(python-ts-mode-compound-keywords-face)
(python-ts-mode-named-assignement-face-1)
(python-ts-mode-assignement-face-2)
(python-ts-mode-nested-types-face-1)
(python-ts-mode-union-types-face-1)
(python-ts-mode-union-types-face-2)
(python-ts-mode-types-face-1)
(python-ts-mode-types-face-2)
(python-ts-mode-types-face-3)
(python-ts-mode-isinstance-type-face-1)
(python-ts-mode-isinstance-type-face-2)
(python-ts-mode-isinstance-type-face-3)
(python-ts-mode-superclass-type-face)
(python-ts-mode-class-patterns-face)
(python-ts-mode-dotted-decorator-face-1)
(python-ts-mode-dotted-decorator-face-2)
(python-ts-mode-builtin-call-face)
(python-ts-mode-interpolation-nested-string)
(python-ts-mode-disabled-string-interpolation)
(python-ts-mode-interpolation-doc-string): Add tests.

(cherry picked from commit 4696869d3d57e0b28b0450515f2f3322607d845e)

16 months ago; * lisp/files.el (find-buffer-visiting): Fix whitespace of last change.
Eli Zaretskii [Sat, 30 Dec 2023 11:04:58 +0000 (13:04 +0200)]
; * lisp/files.el (find-buffer-visiting): Fix whitespace of last change.

(cherry picked from commit 06f2bb9c24104b87b458506f3bdee1aaba7bbf97)

16 months agofind-buffer-visiting: Fix test breakage introduced in b7a737ef49
Ihor Radchenko [Sat, 30 Dec 2023 10:31:51 +0000 (11:31 +0100)]
find-buffer-visiting: Fix test breakage introduced in b7a737ef49

* lisp/files.el (find-buffer-visiting): Fix code branch checking for
buffers referring to the same file number.  We should check the found
buffer with the file number, not current.

Link: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66117#412
(cherry picked from commit 46a93aa7b0753e7e1ba7c557709b2680ebb24fde)

16 months ago; Skip commit 5f80541fbc46a7854da00b0f8e67c0daa89d454a
Eshel Yaron [Tue, 2 Jan 2024 07:53:25 +0000 (08:53 +0100)]
; Skip commit 5f80541fbc46a7854da00b0f8e67c0daa89d454a

16 months ago; Skip commit fafeafd2bc2a4b1440c9aa03b846244626ee12a3
Eshel Yaron [Tue, 2 Jan 2024 07:53:04 +0000 (08:53 +0100)]
; Skip commit fafeafd2bc2a4b1440c9aa03b846244626ee12a3

16 months ago; Auto-commit of loaddefs files.
Eli Zaretskii [Sat, 30 Dec 2023 09:56:52 +0000 (04:56 -0500)]
; Auto-commit of loaddefs files.

(cherry picked from commit 95fd7d7ef8518f5276f151513849409b1ad1ff4b)

16 months agoImprove performance let-binding `case-fold-search' (bug#66117)
Ihor Radchenko [Fri, 15 Dec 2023 10:47:45 +0000 (11:47 +0100)]
Improve performance let-binding `case-fold-search' (bug#66117)

* src/buffer.h: Remove case_fold_search_ buffer object slot.
* src/buffer.c (bset_case_fold_search): Remove - no longer needed.
(init_buffer_once): Remove removed buffer slot init.
(syms_of_buffer): Use DEFVAR_LISP to define `case-fold-search' and
declare it buffer-local.
* src/minibuf.c (syms_of_minibuf): Remove DEFSYM call for
`case-fold-search' symbol.  It now lives in `syms_of_buffer'.
* src/editfns.c (Fcompare_buffer_substrings):
(Fchar_equal):
* src/search.c (looking_at_1):
(string_match_1):
(search_command):
(Fre__describe_compiled): Adjust C queries to `case-fold-search' value
to use C globals instead of BVAR macro.
* doc/lispref/internals.texi (Buffer Internals): Do not list
`case_fold_search' slot.

See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=66117#259

When used as buffer slot, let-binding `case-fold-search' would scale
with the number of live buffers and can be slow.  This change makes
let-binding much faster at the cost of slightly slower `set-buffer'.

(cherry picked from commit aa0037aaf7c2cd7052925fdeca73c77c91254de1)

16 months ago; Fix last change
Eli Zaretskii [Sat, 30 Dec 2023 08:01:31 +0000 (10:01 +0200)]
; Fix last change

* src/buffer.c (Ffind_buffer): Doc fix.  (Bug#66117)

* test/manual/etags/c-src/emacs/src/lisp.h (get_truename_buffer):
Revert removal of prototype: that breaks the test results.

(cherry picked from commit 784acce8425fb3143719d34be1e39be499564dfb)

16 months agoImprove performance of `find-buffer-visiting' (bug#66117)
Ihor Radchenko [Sun, 8 Oct 2023 08:48:42 +0000 (11:48 +0300)]
Improve performance of `find-buffer-visiting' (bug#66117)

* src/buffer.c (Fget_truename_buffer): Expose `get_truename_buffer' to
Elisp.
(Ffind_buffer): New subr searching for a live buffer with a given
value of buffer-local variable.
(syms_of_buffer): Register the new added subroutines.
* src/filelock.c (lock_file): Use the new `Fget_truename_buffer' name.
* src/lisp.h:
* test/manual/etags/c-src/emacs/src/lisp.h: Remove no-longer-necessary
extern declarations for `get_truename_buffer'.
* lisp/files.el (find-buffer-visiting): Refactor, using subroutines to
search for buffers instead of slow manual Elisp iterations.

(cherry picked from commit b7a737ef49e787120ea7a7e9f4d4ef04dd1a0723)

16 months ago* lisp/textmodes/remember.el: Remove org-remember support.
Ihor Radchenko [Thu, 28 Dec 2023 10:58:42 +0000 (11:58 +0100)]
* lisp/textmodes/remember.el: Remove org-remember support.

org-remember has been removed from Org mode proper and then from
org-contrib 10 years ago in
https://git.sr.ht/~bzg/org-contrib/commit/be8736195e
(Bug#68076)

(cherry picked from commit 0cb252cf21efec49f693f5a8873ed02c1bcbd713)

16 months agoFix previous page and next page tooltips in doc-view.el
Daniel Martín [Mon, 25 Dec 2023 10:43:39 +0000 (11:43 +0100)]
Fix previous page and next page tooltips in doc-view.el

* lisp/doc-view.el (doc-view-tool-bar-map): Fix toolbar items to go to
next and previous pages in a document.  (Bug#68018)

(cherry picked from commit 35f8629a3f42b1d053cd5c9e6445f0240131be42)

16 months agoAdd tests for `let' (bug#66117)
Ihor Radchenko [Sat, 23 Dec 2023 14:29:36 +0000 (15:29 +0100)]
Add tests for `let' (bug#66117)

* test/src/eval-tests.el (eval-tests/default-value): New test.

(cherry picked from commit bb0a5eb41f183b37015d09190b56ac8ce6e3c5c8)

16 months agoRevert "Fix treesit-node-field-name and friends (bug#66674)"
Yuan Fu [Sat, 30 Dec 2023 03:52:07 +0000 (19:52 -0800)]
Revert "Fix treesit-node-field-name and friends (bug#66674)"

This reverts commit 9874561f39e62c1c9fada6c2e013f93d9ea65729.

See bug#67990.  Basically our original code is correct, the error is
in libtree-sitter, which only manifests in certain cases.

https://github.com/tree-sitter/tree-sitter/pull/2104
(cherry picked from commit 530315287254da2e6b0767ad343fa55f79be8536)

16 months agoSimplify code relating to UI thread synchronization
Po Lu [Sat, 30 Dec 2023 02:57:11 +0000 (10:57 +0800)]
Simplify code relating to UI thread synchronization

* java/org/gnu/emacs/EmacsContextMenu.java (display):

* java/org/gnu/emacs/EmacsDialog.java (display):

* java/org/gnu/emacs/EmacsService.java (getEmacsView)
(getLocationOnScreen, getClipboardManager)
(requestDirectoryAccess): Replace manual synchronization within
Runnable objects by usage of FutureTask.
(syncRunnable): Accept FutureTask<V> in place of Runnables, and
obtain and return results from calls to its get method.

(cherry picked from commit 94e3d1159334d08fd1d54464bf6173755ba606b7)

16 months agoRevert "Silence warning when requiring ruby-ts-mode"
Stefan Kangas [Sat, 30 Dec 2023 00:06:41 +0000 (01:06 +0100)]
Revert "Silence warning when requiring ruby-ts-mode"

This reverts commit bf81706988f6b1b9d6e8033c8227f0129e04ef03.

We deliberately don't silence these warnings, so that a user who loads
the mode without having the grammar installed sees the warning and
realizes the problem in time to fix it.

(cherry picked from commit fe2b68d405251498518b279a17a87f4cbcf82479)

16 months ago; Skip commit d7ff14fcba6f0830eeadb98981bb626cf7314c53
Eshel Yaron [Tue, 2 Jan 2024 07:30:20 +0000 (08:30 +0100)]
; Skip commit d7ff14fcba6f0830eeadb98981bb626cf7314c53

16 months agoImprove documentation of 'require-with-check'
Eli Zaretskii [Fri, 29 Dec 2023 19:19:50 +0000 (21:19 +0200)]
Improve documentation of 'require-with-check'

* doc/lispref/loading.texi (Named Features): Document
'require-with-check'.

* etc/NEWS: Fix wording of entry about 'require-with-check'.

(cherry picked from commit 291763feca34174290345055a6748436839f7606)

16 months ago* lisp/progmodes/eglot.el (toplevel): Fix usual last minute typo
Stefan Monnier [Fri, 29 Dec 2023 16:21:38 +0000 (11:21 -0500)]
* lisp/progmodes/eglot.el (toplevel): Fix usual last minute typo

(cherry picked from commit b0bead793f880a9434c38caeaa744f7d7a0e519b)

16 months ago(require-with-check): New function (bug#67696)
Stefan Monnier [Fri, 29 Dec 2023 16:17:51 +0000 (11:17 -0500)]
(require-with-check): New function (bug#67696)

* lisp/files.el (require-with-check): New function.
* lisp/progmodes/eglot.el: Use it (and prefer #' to quote function names).

(cherry picked from commit 2a8e6c8c84ed33674e525625644d5ce84ee8c59a)

16 months ago; Fix style of comments and doc strings in last change in ses.el
Eli Zaretskii [Fri, 29 Dec 2023 12:32:56 +0000 (14:32 +0200)]
; Fix style of comments and doc strings in last change in ses.el

* lisp/ses.el (ses-cell-set-formula): Fix comments style.
(cl-member): Fix byte-compilation warning.

* test/lisp/ses-tests.el
(ses-set-formula-write-cells-with-changed-references): Doc fix.

(cherry picked from commit f27dd1f954bcc6f35f4248370a7fe09de5f66096)

16 months agoFix 13 years old bug#5852 !
Vincent Belaïche [Fri, 29 Dec 2023 11:11:51 +0000 (12:11 +0100)]
Fix 13 years old bug#5852 !

Sometimes recalculating a cell does not change its value, however it
still have to be written to the data area when the reference list is
changed

* lisp/ses.el (ses-cell-set-formula): Fix bug#5852, at last !

* test/lisp/ses-tests.el
(ses-set-formula-write-cells-with-changed-references): Rename test
from ses-bug5852, do not expect failure, and update description.

(cherry picked from commit 825b896acfe2b2d2b3a8f29b4ed1d5810d222663)

16 months agoSimplify test ses-bug5852
Vincent Belaïche [Fri, 29 Dec 2023 11:29:20 +0000 (12:29 +0100)]
Simplify test ses-bug5852

* test/lisp/ses-tests.el (ses-bug5852): Siumplify test to
demonstrate that the bug is not connected to yanking, but has to
do with ses-cell-set-formula.

(cherry picked from commit b96087d42714ebd4cbf610fc01eebc4f2adae5f7)

16 months agoAdd test reproducting bug #5852
Vincent Belaïche [Thu, 28 Dec 2023 18:08:46 +0000 (19:08 +0100)]
Add test reproducting bug #5852

(cherry picked from commit 0ffcfd015d383e4f04ea41af7ac480a27c6f5da5)

16 months ago; Declare unused cperl-mode function obsolete
Stefan Kangas [Fri, 29 Dec 2023 10:39:28 +0000 (11:39 +0100)]
; Declare unused cperl-mode function obsolete

* lisp/progmodes/cperl-mode.el (cperl-font-lock-unfontify-region-function):
Make unused function obsolete.

(cherry picked from commit ae9657e1f4a01552d5ab1602fffa817f1fe2e56c)

16 months ago; Delete some commented out code from ange-ftp.el
Stefan Kangas [Fri, 29 Dec 2023 10:25:53 +0000 (11:25 +0100)]
; Delete some commented out code from ange-ftp.el

* lisp/net/ange-ftp.el: Delete some code commented out since 2002.

(cherry picked from commit 5cf22cacda0d14155794cba8c26549e05f073440)

16 months agoDon't recommend using `cperl-hairy`
Stefan Kangas [Fri, 29 Dec 2023 10:24:48 +0000 (11:24 +0100)]
Don't recommend using `cperl-hairy`

Enabling `cperl-hairy` makes cperl-mode break many Emacs conventions
and can be confusing to new users.  Let's not say that this is the
"recommended mode of use", instead leaving it up to the user.

* lisp/progmodes/cperl-mode.el (cperl-mode): Don't recommend using
`cperl-hairy'.

(cherry picked from commit 82eb4f00203f912cc0be902c8151c07c4792425d)

16 months agoObey USE_MY_METRICS in compound glyphs
Po Lu [Fri, 29 Dec 2023 06:58:19 +0000 (14:58 +0800)]
Obey USE_MY_METRICS in compound glyphs

* src/sfnt.c (struct sfnt_compound_glyph_context): New fields
holding the positions of both phantom points.
(sfnt_decompose_compound_glyph): New argument METRICS_RETURN;
return the metrics of components with USE_MY_METRICS within this
field.
(sfnt_decompose_glyph): New argument METRICS_RETURN, which
serves the same purpose.
(sfnt_build_glyph_outline): Apply glyph advance and origin
distortion to METRICS, and return the metrics as altered by
compound glyphs in there.
(sfnt_lookup_glyph_metrics): Trim away two unused parameters,
PIXEL_SIZE and HEAD, whose functionality has been superseeded by
sfnt_scale_metrics and the implicit scaling the interpreter
performs.
(sfnt_interpret_compound_glyph_2): Save phantom points within
fields provided to that end in CONTEXT.
(sfnt_interpret_compound_glyph_1): Save and source phantom
points for each glyph to and from the context.
(sfnt_test_get_metrics, main): Adjust tests correspondingly.

* src/sfnt.h: Update prototypes.

* src/sfntfont.c (sfntfont_get_metrics): Remove obsolete
parameters.
(sfntfont_get_glyph_outline): Don't change temp by the metrics
distortions, which is now the task of sfnt_decompose_glyph.

(cherry picked from commit ea3d211f3f7ecc5b59d5affc1aed812a2ded62b0)

16 months ago; * src/buffer.c (syms_of_buffer) <default-directory>: Doc fix (bug#68088).
Eli Zaretskii [Thu, 28 Dec 2023 19:46:59 +0000 (21:46 +0200)]
; * src/buffer.c (syms_of_buffer) <default-directory>: Doc fix (bug#68088).

(cherry picked from commit fa0bb88302b5d9e02190f60cf50ce8a85e849cdf)

16 months agoFix extraction of files with wildcards in names from zip archives
Eli Zaretskii [Thu, 28 Dec 2023 14:51:45 +0000 (16:51 +0200)]
Fix extraction of files with wildcards in names from zip archives

* lisp/arc-mode.el (archive-zip-extract): Quote wildcard
characters in file names as [C].  (Bug#67926)

(cherry picked from commit 714942b1c3767ee6c70a5644d6a4460dedbe4422)

16 months agoFix rectangle commands when 'indent-tabs-mode' is non-nil
Eli Zaretskii [Thu, 28 Dec 2023 08:56:33 +0000 (10:56 +0200)]
Fix rectangle commands when 'indent-tabs-mode' is non-nil

* lisp/rect.el (delete-rectangle, kill-rectangle): Temporarily
bind 'indent-tabs-mode' to nil.  (Bug#67925)

(cherry picked from commit 24e71050ea9f82979fadd320e8aaf9c8d58b72f2)

16 months agoFix 'delete-rectangle' with multi-column characters
Eli Zaretskii [Thu, 28 Dec 2023 08:50:59 +0000 (10:50 +0200)]
Fix 'delete-rectangle' with multi-column characters

* lisp/rect.el (delete-rectangle-line): Support multi-column
characters, when STARTCOL is in the middle of such a character.
(Bug#67925)

(cherry picked from commit 6abf1c038f6c74f2e56078228cdf8a0cda40c6b3)

16 months agoSideline implied invisible-intangible coupling in ERC
F. Jason Park [Thu, 28 Dec 2023 02:44:29 +0000 (18:44 -0800)]
Sideline implied invisible-intangible coupling in ERC

* etc/ERC-NEWS: Add entry explaining removal of automatic `intangible'
propertizing of t-valued `invisible' messages.
* lisp/erc/erc.el (erc--insert-invisible-as-intangible-p): New flag
variable, a temporary escape hatch to regain pre-5.6 behavior
involving the modification of certain `invisible' messages.
(erc--insert-line): Gate unfavorable behavior behind
`erc--insert-invisible-as-intangible-p' flag.  Add comment clarifying
deferred initialization of `insert-position', which was part of the
many changes introduced as part of bug#60936.

(cherry picked from commit 775bd4b631e9303c20e4ebddd179960276065448)

16 months agoMove ERC test utilities to common file
F. Jason Park [Sun, 24 Dec 2023 20:21:49 +0000 (12:21 -0800)]
Move ERC test utilities to common file

* lisp/erc/erc-common.el (erc--define-catalog): Update name of
reference to convenience command now located in `erc-tests-common'.
* test/lisp/erc/erc-button-tests.el: Require common test-util library
`erc-tests-common', located under test/lisp/erc/resources.
; (erc-button-alist--url,
; erc-button-tests--erc-button-alist--function-as-form,
; erc-button-tests--erc-button-alist--nil-form,
; erc-button--display-error-notice-with-keys): Use common helper
; `erc-tests-common-init-server-proc' from test-utils library.
* test/lisp/erc/erc-fill-tests.el: Require `erc-tests-common'.
(erc-fill-tests--wrap-populate): Use helper
`erc-tests-common-init-server-proc'.
(erc-fill-tests--save-p): Remove.  See replacement
`erc-tests-common-snapshot-save-p' in erc-tests-common.
(erc-fill-tests--graphic-dir): Add trailing slash.
(erc-fill-tests--compare): Move body to generalized utility
`erc-tests-common-snapshot-compare' in erc-tests-common.
* test/lisp/erc/erc-goodies-tests.el: Require `erc-tests-common'.
(erc--get-inserted-msg-beg/readonly,
erc--get-inserted-msg-end/readonly,
erc--get-inserted-msg-bounds/readonly): Move here from erc-tests.el.
* test/lisp/erc/erc-networks-tests.el: Load `erc-tests-common'.
(erc-networks-tests--create-live-proc): Defer to
`erc-tests-common-init-server-proc' and drop optional buffer param.
(erc-networks-tests--clean-bufs): Defer to
`erc-tests-common-kill-buffers'.
(erc-networks--rename-server-buffer--existing--live): Call
`erc-networks-tests--create-live-proc' in server buffer.
* test/lisp/erc/erc-scenarios-internal.el: Load `erc-tests-common'.
(erc-scenarios-internal--run-graphical-all): Use
`erc-tests-common-create-subprocess' to create process.
* test/lisp/erc/erc-scenarios-sasl.el
(erc-scenarios-sasl--plain-fail): Silence error message.
* test/lisp/erc/erc-stamp-tests.el: Require `erc-tests-common'.
(erc-stamp-tests--insert-right, erc-timestamp-intangible--left): Use
`erc-tests-common-init-server-proc'.
(erc-tests--assert-get-inserted-msg/stamp,
erc-stamp-tests--assert-get-inserted-msg/stamp): Move from
erc-tests.el, renaming to latter.
(erc--get-inserted-msg-beg/stamp,
erc--get-inserted-msg-beg/readonly/stamp,
erc--get-inserted-msg-end/stamp,
erc--get-inserted-msg-end/readonly/stamp,
erc--get-inserted-msg-bounds/stamp,
erc--get-inserted-msg-bounds/readonly/stamp): Move here from
erc-tests.el.
* test/lisp/erc/erc-tests.el: Require `erc-tests-common'.
(erc-with-server-buffer): Use renamed test-helper utility
`erc-tests-common-init-server-proc'.
(erc-tests--send-prep, erc-tests--set-fake-server-process): Move to
`erc-tests-common' library and rename to
`erc-tests-common-prep-for-insertion' and
`erc-tests-common-init-server-proc', respectively.
; (erc-hide-prompt, erc--refresh-prompt,
; erc-setup-buffer--custom-action, erc--parsed-prefix,
; erc--update-channel-modes, erc--channel-modes,
; erc--channel-modes/graphic-p, erc-ring-previous-command): Use
; `erc-tests-common-prep-for-insertion' instead of
; `erc-tests--send-prep', and use `erc-tests-common-init-server-proc'
; instead of `erc-tests--set-fake-server-process'.
(erc-tests--with-process-input-spy): Move to `erc-tests-common' and
rename `erc-tests-common-with-process-input-spy'.
; (erc--check-prompt-input-functions, erc-send-current-line,
; erc--check-prompt-input-for-multiline-blanks,
; erc-send-whitespace-lines): Use renamed
; `erc-tests-common-with-process-input-spy' and
; `erc-tests-common-init-server-proc'.
; (erc-process-input-line): Use renamed
; `erc-tests-common-init-server-proc'.
(erc-tests--get-inserted-msg-setup,
erc-tests--assert-get-inserted-msg,
erc-tests--assert-get-inserted-msg/basic,
erc-tests--assert-get-inserted-msg-readonly-with): Move to
`erc-tests-common' and rename with "common" prefix, using single
instead of double hyphen.
(erc-tests--assert-get-inserted-msg/stamp): Move to `erc-stamp-tests'
and rename with "stamp" prefix.
(erc--get-inserted-msg-beg/stamp,
erc--get-inserted-msg-beg/readonly/stamp,
erc--get-inserted-msg-end/stamp,
erc--get-inserted-msg-end/readonly/stamp,
erc--get-inserted-msg-bounds/stamp,
erc--get-inserted-msg-bounds/readonly/stamp): Move to
`erc-stamp-tests'.
(erc--get-inserted-msg-beg/readonly,
erc--get-inserted-msg-end/readonly,
erc--get-inserted-msg-bounds/readonly): Move to `erc-goodies-tests'.
; (erc--get-inserted-msg-beg/basic,
; erc--get-inserted-msg-end/basic,
; erc--get-inserted-msg-bounds/basic): Use common helpers.
; (erc--route-insertion): Use renamed helper functions
; `erc-tests-common-with-process-input-spy' and
; `erc-tests-common-init-server-proc'.
(erc-tests--make-server-buf): Move to `erc-common-tests' and rename
with "common" prefix.
(erc-tests--make-client-buf): Remove unused function without supplying
replacement.
; (erc-handle-irc-url): Use renamed `erc-tests-common-make-server-buf'
; utility function.
; (erc-tests--assert-printed-in-subprocess): Use helper from common lib
; `erc-tests-common-create-subprocess code' to do the heavy lifting.
(erc-tests--string-to-propertized-parts,
erc-tests-pp-propertized-parts): Move to `erc-tests-common' and rename
with "common" prefix.
* test/lisp/erc/resources/erc-tests-common.el: New file containing
helper utilities and fixtures used by multiple files in test/lisp/erc.

(cherry picked from commit 7097be8ef601a20cdcd5d3a2bf2b1e33f2124981)

16 months agoAllow selecting graphical ERC tests manually
F. Jason Park [Sat, 23 Dec 2023 23:23:44 +0000 (15:23 -0800)]
Allow selecting graphical ERC tests manually

* test/lisp/erc/erc-fill-tests.el
(erc-fill-wrap--monospace, erc-fill-wrap--merge,
erc-fill-wrap-tests--merge-action,
erc-fill-wrap-tests--merge-action/indicator-pre,
erc-fill-wrap-tests--merge-action/indicator-post,
erc-fill-line-spacing, erc-fill-wrap-visual-keys--body,
erc-fill-wrap-visual-keys--prompt, erc-fill--left-hand-stamps): Tag as
:erc--graphcial.
* test/lisp/erc/erc-scenarios-internal.el
(erc-scenarios-internal--run-interactive-all): New test to assist ERC
contributors in -jN parallel runs.
* test/lisp/erc/erc-scenarios-scrolltobottom-relaxed.el
(erc-scenarios-scrolltobottom--relaxed): Tag as :erc--graphical.
* test/lisp/erc/erc-scenarios-scrolltobottom.el
(erc-scenarios-scrolltobottom--normal,
erc-scenarios-scrolltobottom--all): Tag as :erc--graphical.
* test/lisp/erc/erc-scenarios-status-sidebar.el
(erc-scenarios-status-sidebar--nickbar): Tag as :erc--graphical.
* test/lisp/erc/erc-tests.el (erc--channel-modes/graphic-p): Tag as
:erc--graphical.
* test/lisp/erc/resources/base/local-modules/first.eld: Timeouts.
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common--graphical-p): New variable.
(erc-scenarios-common--make-bindings): Don't enable
`inhibit-interaction' when interactive.  Set
`erc-scenarios-common--graphical-p' flag when
`:erc--graphical' tag present and running interactively.
(erc-scenarios-common-with-cleanup): Account for variable
`erc-scenarios-common--graphical-p'.
(erc-scenarios-common-scrolltobottom--normal): Turn off
`erc-scrolltobottom-mode' when test finishes so as not to pollute when
running multiple interactive tests.
; * test/lisp/erc/resources/join/network-id/barnet.eld: Timeouts.

(cherry picked from commit c83a2d15097e39d2a46d898f7731ca592c59e5a7)

16 months agoReplace erc--get-inserted-msg-bounds with functions
F. Jason Park [Sun, 24 Dec 2023 19:49:26 +0000 (11:49 -0800)]
Replace erc--get-inserted-msg-bounds with functions

* lisp/erc/erc-fill.el (erc-fill--wrap-rejigger-region): Call
`erc--get-inserted-msg-end' instead of `erc--get-inserted-msg-bounds'
with `end' arg.
* lisp/erc/erc-truncate.el (erc-truncate-buffer-to-size): Call
`erc--get-inserted-msg-beg' with `point' instead of
`erc--get-inserted-msg-bounds' with `beg' arg.
* lisp/erc/erc.el (erc--get-inserted-msg-beg-at,
erc--get-inserted-msg-end-at): New macros.
(erc--get-inserted-msg-beg, erc--get-inserted-msg-end): New functions.
(erc--get-inserted-msg-bounds): Convert to function with different
signature, and refactor.  This was introduced for the yet unreleased
5.6 (Emacs 30) by bug#60936.
(erc--get-inserted-msg-prop): Use `erc--get-inserted-msg-beg' instead
of `erc--get-inserted-msg-bounds' with `beg' arg.
(erc--delete-inserted-message): Update call site of
`erc--get-inserted-msg-bounds' to match new signature.
(erc-cmd-CLEAR): Use `erc--get-inserted-msg-beg' instead of
`erc--get-inserted-msg-bounds' with `beg' arg.
* test/lisp/erc/erc-scenarios-match.el
(erc-scenarios-match--stamp-right-fools-invisible): Call
`erc--get-inserted-msg-end' instead of `erc--get-inserted-msg-bounds'.
* test/lisp/erc/erc-tests.el (erc-tests--get-inserted-msg-setup,
erc-tests--assert-get-inserted-msg,
erc-tests--assert-get-inserted-msg/basic,
erc-tests--assert-get-inserted-msg/stamp,
erc-tests--assert-get-inserted-msg-readonly-with): New helper
functions.
(erc--get-inserted-msg-beg/basic, erc--get-inserted-msg-beg/readonly,
erc--get-inserted-msg-beg/stamp,
erc--get-inserted-msg-beg/readonly/stamp,
erc--get-inserted-msg-end/basic, erc--get-inserted-msg-end/stamp,
erc--get-inserted-msg-end/readonly,
erc--get-inserted-msg-end/readonly/stamp,
erc--get-inserted-msg-bounds/readonly,
erc--get-inserted-msg-bounds/stamp,
erc--get-inserted-msg-bounds/readonly/stamp): New tests.
(erc--get-inserted-msg-bounds, erc--get-inserted-msg-bounds/basic):
Move `beg' and `end' cases to separate test variants and rename former
to latter.

(cherry picked from commit 7576926bea34c45ea9b035b59b8a9d3967311f60)

16 months agoImprove multi-window erc-keep-place-indicator-mode
F. Jason Park [Sat, 23 Dec 2023 20:46:33 +0000 (12:46 -0800)]
Improve multi-window erc-keep-place-indicator-mode

* lisp/erc/erc-goodies.el (erc-keep-place-indicator-follow): Describe
condition causing an indicator update.
(erc--keep-place-indicator-on-window-configuration-change,
erc--keep-place-indicator-on-window-buffer-change): Rename former to
latter, add required WINDOW parameter, and don't move indicator if
buffer appears in multiple windows.  Also, don't bother checking
whether either buffer is a mini because the manual says window change
functions don't run for minibuffer replacements.
(erc--keep-place-indicator-setup): Hook on
`window-buffer-change-functions' instead of
`window-configuration-change-hook'.
(erc-keep-place-mode, erc-keep-place-disable): Remove member from
`window-buffer-change-functions' instead of
`window-configuration-change-hook'.
(erc-keep-place): Use `visible' FRAME arg of `get-buffer-window'.
Don't twiddle `window-prev-buffers' when
`erc-keep-place-indicator-mode' is non-nil.  This feature was
originally introduced by bug#59943.
* test/lisp/erc/erc-goodies-tests.el
(erc-goodies-tests--assert-kp-indicator-on,
erc-goodies-tests--assert-kp-indicator-off): Update hook name.
* test/lisp/erc/erc-scenarios-keep-place-indicator.el: New file.
* test/lisp/erc/resources/keep-place/follow.eld: New file.

(cherry picked from commit 65735efdca017f2ec0aa1022b7e82f68fbe0084d)

16 months ago; Fix typos
Stefan Kangas [Thu, 28 Dec 2023 00:20:20 +0000 (01:20 +0100)]
; Fix typos

(cherry picked from commit 8f571769e155a214ae2f9f760dd179b687d9982e)

16 months agoAbbreviate the VC revision in vc-annotate's buffer name
Jim Porter [Thu, 14 Dec 2023 19:31:27 +0000 (11:31 -0800)]
Abbreviate the VC revision in vc-annotate's buffer name

* lisp/vc/vc-hooks.el (vc-use-short-revision): New variable.
(vc-short-revision): New function.

* lisp/vc/vc-annotate.el (vc-annotate-use-short-revision): New
option...
(vc-annotate): ... use it.

* lisp/vc/vc-git.el (vc-git--rev-parse): Consult
'vc-use-short-revision'.

* etc/NEWS: Announce this change (bug#67062).

(cherry picked from commit ea4cbb3aae3c7f72ef04337bc2db7292909ca9a1)

16 months ago; * doc/misc/eglot.texi (Performance): Fix a typo.
Eli Zaretskii [Wed, 27 Dec 2023 16:42:41 +0000 (18:42 +0200)]
; * doc/misc/eglot.texi (Performance): Fix a typo.

(cherry picked from commit 9e0eeb2d49ccd443bb667be9231fe932be67bb10)

16 months agoEglot: experimental support for Eglot-only subprojects
João Távora [Wed, 27 Dec 2023 15:19:01 +0000 (09:19 -0600)]
Eglot: experimental support for Eglot-only subprojects

* lisp/progmodes/eglot.el
(eglot-alternatives)
(eglot-server-programs): : Rework docstring.
(eglot--guess-contact): Pass project to eglot-server-programs function.
(project-root): Define for new experimental Eglot project type.

Github-reference: https://github.com/joaotavora/eglot/discussions/1337
(cherry picked from commit 4f017f5f0e89e07757dd2d5e0971219420920b79)

16 months agoEglot: bump to 1.16
João Távora [Wed, 27 Dec 2023 12:05:43 +0000 (06:05 -0600)]
Eglot: bump to 1.16

* etc/EGLOT-NEWS: Update.

* lisp/progmodes/eglot.el (Version): Bump to 1.15
(Package-Requires): Bump jsonrpc depedency to 1.23

(cherry picked from commit c5a4366b3f3c6ee4178d954e58eb226441d1d2ee)

16 months agoEglot: fix typo
João Távora [Wed, 27 Dec 2023 13:53:30 +0000 (07:53 -0600)]
Eglot: fix typo

* lisp/progmodes/eglot.el (eglot--guess-contact): Fix typo.

(cherry picked from commit d4485838e14718f0a4a53004c4ab4fc8d049ca18)

16 months agoEglot: introduce eglot-events-buffer-config
João Távora [Wed, 27 Dec 2023 12:38:31 +0000 (06:38 -0600)]
Eglot: introduce eglot-events-buffer-config

* doc/misc/eglot.texi (Eglot Variables): Reword.
(Performance): Reword.

* lisp/progmodes/eglot.el (eglot-events-buffer-size): Obsolete.
(eglot-events-buffer-config): New customization variable.
(eglot--connect): Use eglot-events-buffer-config.

(cherry picked from commit d9b5f618baa31e97a5d675c665c9094cf757d184)

16 months agoJsonrpc: bump to 1.0.23
João Távora [Wed, 27 Dec 2023 12:10:28 +0000 (06:10 -0600)]
Jsonrpc: bump to 1.0.23

* lisp/jsonrpc.el (Version): Bump to 1.0.23

(cherry picked from commit 731cfee3b45361158d88bded3c32c9a48ace7bdb)

16 months ago; Fix typo
Stefan Kangas [Tue, 26 Dec 2023 21:09:57 +0000 (22:09 +0100)]
; Fix typo

(cherry picked from commit 44517037aed6caada1d18bc6e39cc52413df6f84)

16 months ago; Fix last change.
Eli Zaretskii [Tue, 26 Dec 2023 12:51:37 +0000 (14:51 +0200)]
; Fix last change.

(cherry picked from commit ccf46acefd2272afa18832cd6dd4d35b0803e70a)

16 months ago; * etc/DEBUG: Improve advice for debugging native-compilation (bug#67900).
Eli Zaretskii [Tue, 26 Dec 2023 12:49:50 +0000 (14:49 +0200)]
; * etc/DEBUG: Improve advice for debugging native-compilation (bug#67900).

(cherry picked from commit c86b039dffc23354ae898f358eadbe5b58e67aa3)

16 months agoExplain status "r" in `epa-list-keys`
Stefan Kangas [Mon, 25 Dec 2023 15:04:18 +0000 (16:04 +0100)]
Explain status "r" in `epa-list-keys`

* lisp/epa.el (epa-list-keys): Add revoked status to description.
Suggested by CHENG Gao <chenggao@icloud.com>.

(cherry picked from commit 9afba605bbc3db354476dddeffacfa036259c101)

16 months ago; * lisp/dired.el (dired--make-directory-clickable): Reformat comment.
Eli Zaretskii [Mon, 25 Dec 2023 13:07:21 +0000 (15:07 +0200)]
; * lisp/dired.el (dired--make-directory-clickable): Reformat comment.

(cherry picked from commit 627142219683441a907f9a96239fdb188202e129)

16 months agoFix mouse clicks on directory line in Dired
Jared Finder [Sat, 16 Dec 2023 20:10:03 +0000 (12:10 -0800)]
Fix mouse clicks on directory line in Dired

The option 'dired-kill-when-opening-new-dired-buffer' should be
also honored when clicking the mouse to kill prev buffer.
* lisp/dired.el (dired--make-directory-clickable): Call
'dired--find-possibly-alternative-file' instead of 'dired', in
the click callback.  (Bug#67856)

(cherry picked from commit fcbb00448998cdfffcf7455192bfebf98ef27a1e)

16 months agoFix 'split-root-window-right' and 'split-root-window-below'
Eli Zaretskii [Mon, 25 Dec 2023 12:59:26 +0000 (14:59 +0200)]
Fix 'split-root-window-right' and 'split-root-window-below'

* lisp/window.el (split-root-window-right)
(split-root-window-below): Fix the 'interactive' spec to avoid
misbehaving when invoked with no prefix argument.  (Bug#67452)

(cherry picked from commit be8a7155b48198b08bbc4844b2ce60c127405fb7)

16 months agoMark icalendar.el as maintained by emacs-devel
Stefan Kangas [Sun, 24 Dec 2023 13:57:49 +0000 (14:57 +0100)]
Mark icalendar.el as maintained by emacs-devel

* lisp/calendar/icalendar.el: Mark emacs-devel as the maintainer.
Ref: https://debbugs.gnu.org/34315#152

(cherry picked from commit eb19984c4dbba3c5237a679167fd8583bdb6ad70)

16 months ago; Fix footnotes in ELisp Intro manual
Eli Zaretskii [Sun, 24 Dec 2023 08:46:04 +0000 (10:46 +0200)]
; Fix footnotes in ELisp Intro manual

(cherry picked from commit 03dc914fd37735f9f768519bf5bf86913d5c9dbe)

16 months agoFix usage of `setq-default' and offer more suggestions
Xiyue Deng [Sun, 24 Dec 2023 00:12:44 +0000 (16:12 -0800)]
Fix usage of `setq-default' and offer more suggestions

cd61af0 changed from default-major-mode to major-mode in the first
code sample but didn't change the rest.  This patch fixes this and add
some explanations of why use `setq-default' instead of `setq'.  In
addition, it gives background on suggesting using text-mode as default
mode and suggest other alternatives.

* doc/lispintro/emacs-lisp-intro.texi (Text and Auto-fill): Fix usage
of `setq-default' and offer more suggestions.  (Bug#67848)

(cherry picked from commit ceacf75395834c452b43932c19df7e3202a16094)

16 months agoFix python-ts-mode triple quote syntax (bug#67262)
Yuan Fu [Sat, 23 Dec 2023 23:49:32 +0000 (15:49 -0800)]
Fix python-ts-mode triple quote syntax (bug#67262)

* lisp/progmodes/python.el (python--treesit-syntax-propertize): New function.
(python-ts-mode): Activate python--treesit-syntax-propertize.

(cherry picked from commit 2701da0eee54d85f79104c7a91610bf591159a51)

16 months agoIncrement parser timestamp when narrowing changes (bug#67977)
Yuan Fu [Sun, 24 Dec 2023 00:47:04 +0000 (16:47 -0800)]
Increment parser timestamp when narrowing changes (bug#67977)

When narrowing changes, parse reparses, so the timestamp should
definitely increment, just like in ts_record_changes.

Failing to increment this timestamp, outdated nodes would think they
are still up-to-date, and try to print their type name.  Printing
their type name involves accessing the old parse tree, which is
already freed during the last reparse.

I also found that we don't increment timestamp when changing parser
ranges and fixed that as well.

* src/treesit.c (treesit_sync_visible_region):
(Ftreesit_parser_set_included_ranges): Increment timestamp.
* src/treesit.h (Lisp_TS_Parser): Add some comments.

(cherry picked from commit 683c7c96871cc374b0e00f5084e43a70fc3ec36a)

16 months agoruby-ts-mode: Fix indentation for string_array closer
Dmitry Gutov [Sun, 24 Dec 2023 02:22:34 +0000 (04:22 +0200)]
ruby-ts-mode: Fix indentation for string_array closer

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
Fix indentation for string_array closer.

(cherry picked from commit 8ae42c825e1e058d3c736837a023bdc2617b85a2)

16 months agotreesit-major-mode-setup: Use 'treesit--syntax-propertize-notifier'
Dmitry Gutov [Sun, 24 Dec 2023 02:07:15 +0000 (04:07 +0200)]
treesit-major-mode-setup: Use 'treesit--syntax-propertize-notifier'

* lisp/treesit.el (treesit-major-mode-setup): Make sure
'treesit--syntax-propertize-notifier' is used (bug#66732)

(cherry picked from commit 9cfa498e0ab4876e38f46b4ee9e26804512fd666)

16 months agoruby-ts-mode: Fix an out-of-bounds error with heredoc at eob
Dmitry Gutov [Sun, 24 Dec 2023 01:58:49 +0000 (03:58 +0200)]
ruby-ts-mode: Fix an out-of-bounds error with heredoc at eob

* lisp/progmodes/ruby-ts-mode.el (ruby-ts--syntax-propertize):
Fix an out-of-bounds error with heredoc at eob.

(cherry picked from commit da2e440462b643427de94433f5e8d0e1330c7450)

16 months agoCorrectly refontify changed region in tree-sitter modes (bug#66732)
Yuan Fu [Sun, 17 Dec 2023 01:15:04 +0000 (17:15 -0800)]
Correctly refontify changed region in tree-sitter modes (bug#66732)

We already have treesit--font-lock-notifier that should mark changed
regions to be refontified, but it's called too late in the redsiplay &
fontification pipeline.  Here we add treesit--pre-redisplay that
forces reparse and calls notifier functions in
pre-redisplay-functions, which is early enough for the marking to take
effect.

Similarly, we force reparse in
syntax-propertize-extend-region-functions so syntax-ppss will have the
up-to-date syntax information when it scans the buffer text.  We also
record the lowest start position of the affected regions, and make
sure next syntex-propertize starts from that position.

* lisp/treesit.el (treesit--pre-redisplay-tick):
(treesit--syntax-propertize-start): New variable.
(treesit--syntax-propertize-notifier):
(treesit--pre-redisplay):
(treesit--pre-syntax-ppss): New functions.
(treesit-major-mode-setup): Add hooks.

* lisp/progmodes/ruby-ts-mode.el (ruby-ts-mode): Remove notifier.
(ruby-ts--parser-after-change): Remove notifier function.

(cherry picked from commit 6ea507296a7e8bd55df8961793b02cf54d0f3c72)

16 months ago; Fix 'mode-line-format-right-align' with ElDoc
Eshel Yaron [Mon, 1 Jan 2024 21:14:59 +0000 (22:14 +0100)]
; Fix 'mode-line-format-right-align' with ElDoc

* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Avoid nesting
'mode-line-format', since that breaks 'mode-line-format-right-align'.

16 months agoRevert e8df6c311fcf59bf23d31b9db2bb8fec9d78fbe7
Yuan Fu [Wed, 27 Dec 2023 06:37:19 +0000 (22:37 -0800)]
Revert e8df6c311fcf59bf23d31b9db2bb8fec9d78fbe7

(cherry picked from commit 8044140b54bfe7e88c28a49cc0dc4ae129029e4f)

16 months agoFix Tramp error in project-find-file
Dmitry Gutov [Wed, 27 Dec 2023 00:20:39 +0000 (02:20 +0200)]
Fix Tramp error in project-find-file

* lisp/progmodes/project.el (project--read-file-cpd-relative):
Avoid new Tramp connections (bug#68041).

(cherry picked from commit 5213e92f203b0ec934860d6026bdc5d3cddc0173)

16 months agoRevert "Eglot: Make 'try-completion' less broken"
João Távora [Tue, 26 Dec 2023 14:10:04 +0000 (08:10 -0600)]
Revert "Eglot: Make 'try-completion' less broken"

This reverts commit 4dcbf61c1518dc53061707aeff8887517e050003.

It's not correct, breaks tests.  I declare it impossible to make C-M-i
use of 'try-completion' behave sanely with LSP in its current state.
YMMV.  Use a completion tooltip, like Company.

(cherry picked from commit d376462c7183752bf44b9bd20bf5020fe7eaf75a)

16 months agoSupport interactively sorting minibuffer completions
Eshel Yaron [Wed, 27 Dec 2023 09:11:36 +0000 (10:11 +0100)]
Support interactively sorting minibuffer completions

* lisp/minibuffer.el (minibuffer-completions-sort-function): New var.
(minibuffer-read-sort-order-with-completion)
(minibuffer-completions-sort-orders): New user options.
(minibuffer-sort-completions): New command.
(minibuffer-local-completion-map): Bind it to 'C-x C-v'.
(display-completion-list, minibuffer-completion-help): Take
'minibuffer-completions-sort-function' into account.
(completions-header-format): Add '%t' format spec construct,
substituted with a description of the current sort order.
* lisp/menu-bar.el (minibuffer-local-completion-map): Add menu bar
menu entry for sorting completions candidates.
* doc/emacs/mini.texi (Completion Commands): Document new command.
Improve documentation and indexing of 'minibuffer-complete-and-exit'.
(Completion Exit, Completion Options): Update
* doc/lispref/minibuf.texi (Completion Commands): Document new user
options and command.
* etc/NEWS: Announce new feature.

16 months ago; (completion-metadata): Mention 'narrow-completions-function'.
Eshel Yaron [Wed, 27 Dec 2023 09:05:14 +0000 (10:05 +0100)]
; (completion-metadata): Mention 'narrow-completions-function'.

16 months ago; Document 'completions-sort' value 'historical' in the manual
Eshel Yaron [Wed, 27 Dec 2023 07:20:08 +0000 (08:20 +0100)]
; Document 'completions-sort' value 'historical' in the manual

16 months ago; Document buffer name completion narrowing by major mode
Eshel Yaron [Tue, 26 Dec 2023 15:48:35 +0000 (16:48 +0100)]
; Document buffer name completion narrowing by major mode

16 months agoEglot: Make 'try-completion' less broken
João Távora [Tue, 26 Dec 2023 13:47:29 +0000 (07:47 -0600)]
Eglot: Make 'try-completion' less broken

The 'try-completion' completion operation, used mostly in vanilla
'completion-at-point' invoked with C-M-i is close to impossible to get
right in LSP because of the arbitrary edits handled in
':exit-function'.

When this operation is invoked on the table, returning the pattern
argument unchanged somehow (TM) makes a sole completion show the
*Completions* buffer, where selecting it will recover context
necessary for `:exit-function' and call that function.  It doesn't
break any other cases I know, and that's good enough for now.

https://github.com/joaotavora/eglot/issues/1339

* lisp/progmodes/eglot.el (eglot-completion-at-point): Return pattern
when 'try-completion' is invoked.

(cherry picked from commit 4dcbf61c1518dc53061707aeff8887517e050003)

16 months agoNarrow buffer completions by major mode with 'C-x n m'
Eshel Yaron [Tue, 26 Dec 2023 15:14:58 +0000 (16:14 +0100)]
Narrow buffer completions by major mode with 'C-x n m'

* lisp/minibuffer.el (buffers-except-current-if-switching): Doc fix.
(minibuffer-narrow-buffer-completions): New function.
* src/minibuf.c (Finternal_complete_buffer): Use it.
(syms_of_minibuf): Update.

16 months ago; * src/ftfont.c (ftfont_glyph_metrics): Comment on advance rounding.
Po Lu [Tue, 26 Dec 2023 06:09:42 +0000 (14:09 +0800)]
; * src/ftfont.c (ftfont_glyph_metrics): Comment on advance rounding.

(cherry picked from commit 60199ac01d711d3240146afedd830b774eb5c5d2)