From 7abecbcd63317496369fffe69b6afab4af058ed6 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 28 Sep 2024 15:36:06 +0300 Subject: [PATCH 01/28] ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) --- nt/INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nt/INSTALL b/nt/INSTALL index 6167365169b..b959ce362f7 100644 --- a/nt/INSTALL +++ b/nt/INSTALL @@ -157,7 +157,7 @@ build should run on Windows 9X and newer systems). When the installation ends, perform the post-installation steps described on this page of the MinGW site: - http://www.mingw.org/wiki/Getting_Started + https://web.archive.org/web/20210106033223/http://www.mingw.org/wiki/Getting_Started in the "After Installing You Should ..." section. These steps are important for making your installation complete, and in particular From 36ff7138febfcec7fcee44e8b51c6b26cbb056a2 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 29 Sep 2024 15:42:21 +0300 Subject: [PATCH 02/28] ; Fix a thinko in sieve-manage.el * lisp/net/sieve-manage.el (sieve-manage--append-to-log): Fix thinko. (Bug#54154) --- lisp/net/sieve-manage.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/net/sieve-manage.el b/lisp/net/sieve-manage.el index 0faeb02bcfd..da2167cd231 100644 --- a/lisp/net/sieve-manage.el +++ b/lisp/net/sieve-manage.el @@ -178,7 +178,8 @@ If it is nil, logging is disabled." (with-current-buffer (get-buffer-create sieve-manage-log) (set-buffer-multibyte nil) - (buffer-disable-undo))) + (buffer-disable-undo) + (current-buffer))) (goto-char (point-max)) (apply #'insert args)))) From c0ef8a9a1b39c63de17b375485cc405f994d4e55 Mon Sep 17 00:00:00 2001 From: Gautier Ponsinet Date: Sun, 29 Sep 2024 14:00:05 +0300 Subject: [PATCH 03/28] Fix a typo in the calendar manual * doc/emacs/calendar.texi (Calendar Unit Motion): Add a missing parenthesis. (Bug#73555) --- doc/emacs/calendar.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi index 10fe404099d..91ea3b9154d 100644 --- a/doc/emacs/calendar.texi +++ b/doc/emacs/calendar.texi @@ -106,7 +106,7 @@ commands for moving by characters and by lines. Just as @kbd{C-n} usually moves to the same column in the following line, in Calendar mode it is bound to @code{calendar-forward-week}, which moves to the same day in the following week. And @kbd{C-p} -(@code{calendar-backward-week} moves to the same day in the previous +(@code{calendar-backward-week}) moves to the same day in the previous week. @kbd{C-f} (@code{calendar-forward-day}) and @kbd{C-b} (@code{calendar-backward-day}) move forward and back by days. From 11e3e0cadd46ee49007477af1335ddd5365debe2 Mon Sep 17 00:00:00 2001 From: Jim Porter Date: Wed, 25 Sep 2024 11:59:32 -0700 Subject: [PATCH 04/28] Fix executing commands in Eshell using "env" with no local variables * lisp/eshell/esh-var.el (eshell/env): Throw 'eshell-replace-command' as needed. * test/lisp/eshell/esh-var-tests.el (esh-var-test/local-variables/env/no-locals): New test (bug#73479). --- lisp/eshell/esh-var.el | 3 ++- test/lisp/eshell/esh-var-tests.el | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index f0270aca92c..1b54f1862be 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -436,7 +436,8 @@ the values of nil for each." :usage "[NAME=VALUE]... [COMMAND]...") (if args (or (eshell-parse-local-variables args) - (eshell-named-command (car args) (cdr args))) + (throw 'eshell-replace-command + `(eshell-named-command ,(car args) ',(cdr args)))) (eshell-with-buffered-print (dolist (setting (sort (eshell-environment-variables) 'string-lessp)) (eshell-buffered-print setting "\n")))))) diff --git a/test/lisp/eshell/esh-var-tests.el b/test/lisp/eshell/esh-var-tests.el index 6b0e225f05f..7b29e4a21db 100644 --- a/test/lisp/eshell/esh-var-tests.el +++ b/test/lisp/eshell/esh-var-tests.el @@ -669,6 +669,11 @@ nil, use FUNCTION instead." (eshell-match-command-output "env VAR=hello env" "VAR=hello\n") (should (equal (getenv "VAR") "value")))) +(ert-deftest esh-var-test/local-variables/env/no-locals () + "Test that \"env command\" works like \"command\"." + (with-temp-eshell + (eshell-match-command-output "env echo hi" "\\`hi\n"))) + ;; Variable aliases From fd1a1b07805a0d84ca3a7fe83a5f90a8fa0fd00b Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Mon, 30 Sep 2024 20:37:27 +0200 Subject: [PATCH 05/28] Remove out-of-date documentation from python.el * lisp/progmodes/python.el: Remove out-of-date documentation about automatic indentation; 'electric-indent-mode' is enabled by default in Emacs 24.4 or later, so this is no longer an issue. --- lisp/progmodes/python.el | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index a50446343a0..9d87d6cb6a5 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -233,23 +233,6 @@ ;; `python-imenu-format-parent-item-jump-label-function' variables for ;; changing the way labels are formatted in the tree version. -;; If you used python-mode.el you may miss auto-indentation when -;; inserting newlines. To achieve the same behavior you have two -;; options: - -;; 1) Enable the minor-mode `electric-indent-mode' (enabled by -;; default) and use RET. If this mode is disabled use -;; `newline-and-indent', bound to C-j. - -;; 2) Add the following hook in your .emacs: - -;; (add-hook 'python-mode-hook -;; (lambda () -;; (define-key python-mode-map "\C-m" 'newline-and-indent))) - -;; I'd recommend the first one since you'll get the same behavior for -;; all modes out-of-the-box. - ;; Flymake: A Flymake backend, using the pyflakes program by default, ;; is provided. You can also use flake8 or pylint by customizing ;; `python-flymake-command'. From 9c904e8ceae935a370a20f8255a355997786647c Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 1 Oct 2024 00:15:08 +0200 Subject: [PATCH 06/28] Change :group of 'eglot' defgroup to 'tools' In 'M-x customize', Eglot fits in better in "Programming -> Tools", with the likes of Flymake and Gud, than it does in "Applications", with ERC and Newsticker. * lisp/progmodes/eglot.el (eglot): Change :group of defgroup to 'tools'. --- lisp/progmodes/eglot.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index a358b823795..4306819b556 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -180,7 +180,7 @@ (defgroup eglot nil "Interaction with Language Server Protocol servers." :prefix "eglot-" - :group 'applications) + :group 'tools) (defun eglot-alternatives (alternatives) "Compute server-choosing function for `eglot-server-programs'. From 96b87ad5363feed7a3bc5ab1c7fa096867140cf4 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 1 Oct 2024 00:24:23 +0200 Subject: [PATCH 07/28] Mention LSP acronym in eglot defgroup docstring * lisp/progmodes/eglot.el (eglot): Improve defgroup description by mentioning the LSP acronym, for users that might be searching for that. --- lisp/progmodes/eglot.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 4306819b556..58487924883 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -178,7 +178,7 @@ ;;; User tweakable stuff (defgroup eglot nil - "Interaction with Language Server Protocol servers." + "Interaction with Language Server Protocol (LSP) servers." :prefix "eglot-" :group 'tools) From 84bea20eba2fd7c9b8c81b816fffe69a2b7892e3 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 1 Oct 2024 21:24:09 +0200 Subject: [PATCH 08/28] ; * lisp/info-look.el: Add two more links. --- lisp/info-look.el | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lisp/info-look.el b/lisp/info-look.el index 2baf133c7d3..41e64753844 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el @@ -30,6 +30,8 @@ ;; Scheme: https://groups.csail.mit.edu/mac/ftpdir/scm/r5rs.info.tar.gz ;; LaTeX: https://mirrors.ctan.org/info/latex2e-help-texinfo/latex2e.texi ;; (or CTAN mirrors) +;; Python: https://www.python.org/ftp/python/doc/ +;; SICP: https://github.com/webframp/sicp-info ;; Traditionally, makeinfo quoted `like this', but version 5 and later ;; quotes 'like this' or ‘like this’. Doc specs with patterns From 63058e1153ae1c3a9662b50ff8be439026e11986 Mon Sep 17 00:00:00 2001 From: john muhl Date: Sat, 13 Jul 2024 18:36:38 -0500 Subject: [PATCH 09/28] Tag interactive commands in 'lua-ts-mode' * lisp/progmodes/lua-ts-mode.el (lua-ts-send-buffer) (lua-ts-send-file, lua-ts-send-region): Mark inferior interaction commands that are only relevant in Lua buffers. (Bug#73586) --- lisp/progmodes/lua-ts-mode.el | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el index 8d0f49c2d89..4ea453c9b65 100644 --- a/lisp/progmodes/lua-ts-mode.el +++ b/lisp/progmodes/lua-ts-mode.el @@ -676,19 +676,19 @@ Calls REPORT-FN directly." (defun lua-ts-send-buffer () "Send current buffer to the inferior Lua process." - (interactive) + (interactive nil lua-ts-mode) (lua-ts-send-region (point-min) (point-max))) (defun lua-ts-send-file (file) "Send contents of FILE to the inferior Lua process." - (interactive "f") + (interactive "f" lua-ts-mode) (with-temp-buffer (insert-file-contents-literally file) (lua-ts-send-region (point-min) (point-max)))) (defun lua-ts-send-region (beg end) "Send region between BEG and END to the inferior Lua process." - (interactive "r") + (interactive "r" lua-ts-mode) (let ((string (buffer-substring-no-properties beg end)) (proc-buffer (lua-ts-inferior-lua))) (comint-send-string proc-buffer "print()") ; Prevent output from From 44156c2140772fa04ebbc0a488a85f0741e0c2ef Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Tue, 1 Oct 2024 22:09:42 +0200 Subject: [PATCH 10/28] ; Minor clarification in variables.texi * doc/lispref/variables.texi (Creating Buffer-Local): Add comma to make reference clearer. --- doc/lispref/variables.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 76f15b2595c..d990f116c69 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1733,7 +1733,7 @@ buffer-local variables interactively. This function eliminates all the buffer-local variable bindings of the current buffer. As a result, the buffer will see the default values of most variables. By default, for variables marked as permanent and -local hook functions that have a non-@code{nil} +local, hook functions that have a non-@code{nil} @code{permanent-local-hook} property (@pxref{Setting Hooks}) won't be killed, but if the optional @var{kill-permanent} argument is non-@code{nil}, even these variables will be killed. From 108b3179bd4bcc82791ea5998de5dadb647992c4 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Wed, 2 Oct 2024 00:12:34 +0200 Subject: [PATCH 11/28] Revert "; Minor clarification in variables.texi" This reverts commit 44156c2140772fa04ebbc0a488a85f0741e0c2ef. --- doc/lispref/variables.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index d990f116c69..76f15b2595c 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1733,7 +1733,7 @@ buffer-local variables interactively. This function eliminates all the buffer-local variable bindings of the current buffer. As a result, the buffer will see the default values of most variables. By default, for variables marked as permanent and -local, hook functions that have a non-@code{nil} +local hook functions that have a non-@code{nil} @code{permanent-local-hook} property (@pxref{Setting Hooks}) won't be killed, but if the optional @var{kill-permanent} argument is non-@code{nil}, even these variables will be killed. From e6a37869c8dcbd17b01dab66c5588f087a33ddf0 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 2 Oct 2024 09:15:46 +0800 Subject: [PATCH 12/28] Fix inconsistency in value of rcirc-activity-string * lisp/net/rcirc.el (rcirc-update-activity-string): Consistently don't display anything if there aren't any IRC connections. --- lisp/net/rcirc.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 659035d4acb..7095da34ec0 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -2537,9 +2537,14 @@ activity. Only run if the buffer is not visible and (rcirc-activity-string lopri) ")")) (and hipri "]"))) + ;; Consistently don't display anything if there aren't + ;; any IRC connections. Otherwise, whether we display + ;; "[]" or not depends on whether or not this function + ;; happens to have been called in this session yet. ((not (null (rcirc-process-list))) "[]") - (t "[]"))) + (t + ""))) (run-hooks 'rcirc-update-activity-string-hook) (force-mode-line-update t))) From d68e6d2689d0b3be4d251b0edc09fba144f7b282 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 2 Oct 2024 09:18:35 +0800 Subject: [PATCH 13/28] ; rcirc-update-activity-string: Justify some existing behaviour --- lisp/net/rcirc.el | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 7095da34ec0..2a713de83c2 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el @@ -2541,6 +2541,17 @@ activity. Only run if the buffer is not visible and ;; any IRC connections. Otherwise, whether we display ;; "[]" or not depends on whether or not this function ;; happens to have been called in this session yet. + ;; + ;; Consistently display nothing, rather than + ;; consistently displaying "[]", for the sake of the + ;; following sort of case: the user has enabled + ;; `rcirc-track-minor-mode' using the customization + ;; system, but also starts up Emacs instances that + ;; aren't used for IRC. Due to the use of easy + ;; customization, `rcirc-track-minor-mode' will be + ;; turned on for every instance of Emacs. But we don't + ;; want to take up valuable mode line space when, say, + ;; Emacs is started up as the value of EDITOR/VISUAL. ((not (null (rcirc-process-list))) "[]") (t From f46f476bb8f1b0f4f63c2af86aa0dcd11c9e2c7c Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 2 Oct 2024 09:21:11 +0800 Subject: [PATCH 14/28] ; * admin/MAINTAINERS: Take VC subsystem, add note about handovers Based on discussion with the head maintainers and Dmitry by private mail. --- admin/MAINTAINERS | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/admin/MAINTAINERS b/admin/MAINTAINERS index 16601a76bd6..9bfdcdc7489 100644 --- a/admin/MAINTAINERS +++ b/admin/MAINTAINERS @@ -233,9 +233,22 @@ Philip Kaludercic lisp/emacs-lisp/compat.el lisp/net/rcirc.el +Sean Whitton + VC + lisp/vc/* + doc/emacs/files.texi (Diff Mode) + doc/emacs/maintaining.texi (Version Control) + doc/emacs/vc*-xtra.texi + doc/emacs/emerge-xtra.texi + doc/misc/ediff.texi + test/lisp/vc/* + ============================================================================== 2. Areas that someone is willing to maintain, although he would not necessarily mind if someone else was the official maintainer. +This list also includes people who are in the process of handing over +maintainership to someone listed above, but who want to continue to be +CC'd as though they were still the primary maintainer, in the meantime. ============================================================================== Kelvin White From d42d7d474fe07a577d9f8006323784583867ec43 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Wed, 2 Oct 2024 12:06:46 +0800 Subject: [PATCH 15/28] ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docstring. --- lisp/doc-view.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/doc-view.el b/lisp/doc-view.el index 1ed0c71febe..993a880f34f 100644 --- a/lisp/doc-view.el +++ b/lisp/doc-view.el @@ -245,7 +245,7 @@ showing only titles and no page number." See `doc-view-mupdf-use-svg'. Only background and foreground colors are used as the SVG image's -descriptors, see (info \"(elisp) SVG Images\"). Non-standard values may +descriptors; see (info \"(elisp) SVG Images\"). Custom values may cause low-contrast issues with certain documents." :version "30.1") From 4c866abab966e85ed1fb57aea9971ce8d1495970 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 2 Oct 2024 08:47:29 +0300 Subject: [PATCH 16/28] ; * doc/lispref/variables.texi (Creating Buffer-Local): Fix wording. --- doc/lispref/variables.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index 76f15b2595c..af11e498d86 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi @@ -1732,11 +1732,11 @@ buffer-local variables interactively. @defun kill-all-local-variables &optional kill-permanent This function eliminates all the buffer-local variable bindings of the current buffer. As a result, the buffer will see the default values -of most variables. By default, for variables marked as permanent and +of most variables. By default, variables marked as permanent and local hook functions that have a non-@code{nil} @code{permanent-local-hook} property (@pxref{Setting Hooks}) won't be killed, but if the optional @var{kill-permanent} argument is -non-@code{nil}, even these variables will be killed. +non-@code{nil}, even those variables will be killed. This function also resets certain other information pertaining to the buffer: it sets the local keymap to @code{nil}, the syntax table to the From bf26ff0dc8d1591c9c75e12cfdf057353b3869bf Mon Sep 17 00:00:00 2001 From: Yuan Fu Date: Fri, 20 Sep 2024 01:16:44 -0700 Subject: [PATCH 17/28] Update csharp-ts-mode font-lock (bug#73369) Adapt to the latest c-sharp grammar. * lisp/progmodes/csharp-mode.el: (csharp-ts-mode--test-this-expression): (csharp-ts-mode--test-interpolated-string-text): (csharp-ts-mode--test-type-constraint): (csharp-ts-mode--test-type-of-expression): (csharp-ts-mode--test-name-equals): (csharp-ts-mode--test-if-directive): (csharp-ts-mode--test-method-declaration-type-field): New functions. (csharp-ts-mode--type-field): New variable. (csharp-ts-mode--font-lock-settings): Fix font-lock rules. --- lisp/progmodes/csharp-mode.el | 155 ++++++++++++++++++++++++++-------- 1 file changed, 118 insertions(+), 37 deletions(-) diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index 29325ab9632..755303a158d 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -730,6 +730,52 @@ compilation and evaluation time conflicts." "readonly" "unmanaged") "C# keywords for tree-sitter font-locking.") +(defun csharp-ts-mode--test-this-expression () + "Return non-nil if (this_expression) is named in csharp grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(this_expression)" t) + t)) + +(defun csharp-ts-mode--test-interpolated-string-text () + "Return non-nil if (interpolated_string_text) is in the grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(interpolated_string_text)" t) + t)) + +(defun csharp-ts-mode--test-type-constraint () + "Return non-nil if (type_constraint) is in the grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(type_constraint)" t) + t)) + +(defun csharp-ts-mode--test-type-of-expression () + "Return non-nil if (type_of_expression) is in the grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(type_of_expression)" t) + t)) + +(defun csharp-ts-mode--test-name-equals () + "Return non-nil if (name_equals) is in the grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(name_equals)" t) + t)) + +(defun csharp-ts-mode--test-if-directive () + "Return non-nil if (if_directive) is in the grammar." + (ignore-errors + (treesit-query-compile 'c-sharp "(if_directive)" t) + t)) + +(defun csharp-ts-mode--test-method-declaration-type-field () + "Return non-nil if (method_declaration) has a type field." + (ignore-errors + (treesit-query-compile 'c-sharp "(method_declaration type: (_))" t) + t)) + +(defvar csharp-ts-mode--type-field + (if (csharp-ts-mode--test-method-declaration-type-field) + 'type: 'returns:)) + (defvar csharp-ts-mode--font-lock-settings (treesit-font-lock-rules :language 'c-sharp @@ -760,7 +806,9 @@ compilation and evaluation time conflicts." :feature 'keyword `([,@csharp-ts-mode--keywords] @font-lock-keyword-face (modifier) @font-lock-keyword-face - (this_expression) @font-lock-keyword-face) + ,@(if (csharp-ts-mode--test-this-expression) + '((this_expression) @font-lock-keyword-face) + '("this" @font-lock-keyword-face))) :language 'c-sharp :override t @@ -786,18 +834,23 @@ compilation and evaluation time conflicts." :feature 'string `([(string_literal) (verbatim_string_literal) - (interpolated_string_text) - (interpolated_verbatim_string_text) - (character_literal) - "\"" - "$\"" - "@$\"" - "$@\""] @font-lock-string-face) + ,@(if (csharp-ts-mode--test-interpolated-string-text) + '((interpolated_string_text) + (interpolated_verbatim_string_text) + (character_literal) + "\"" + "$\"" + "@$\"" + "$@\"") + '((interpolated_string_expression) + (interpolation_start) + (interpolation_quote)))] + @font-lock-string-face) :language 'c-sharp :override t :feature 'type - '((predefined_type) @font-lock-type-face + `((predefined_type) @font-lock-type-face (implicit_type) @font-lock-type-face (nullable_type) @font-lock-type-face (type_parameter @@ -816,10 +869,17 @@ compilation and evaluation time conflicts." (cast_expression (generic_name (identifier) @font-lock-type-face)) ["operator"] @font-lock-type-face (type_parameter_constraints_clause - target: (identifier) @font-lock-type-face) - (type_constraint type: (identifier) @font-lock-type-face) - (type_constraint type: (generic_name (identifier) @font-lock-type-face)) - (type_of_expression (identifier) @font-lock-type-face) + (identifier) @font-lock-type-face) + ,@(if (csharp-ts-mode--test-type-constraint) + '((type_constraint type: (identifier) @font-lock-type-face) + (type_constraint type: (generic_name (identifier) @font-lock-type-face))) + '((type_parameter_constraint (type type: (identifier) @font-lock-type-face)) + (type_parameter_constraint (type type: (generic_name (identifier) @font-lock-type-face))))) + + ,@(when (csharp-ts-mode--test-type-of-expression) + '((type_of_expression (identifier) @font-lock-type-face)) + '((typeof_expression (identifier) @font-lock-type-face))) + (object_creation_expression type: (identifier) @font-lock-type-face) (object_creation_expression @@ -832,8 +892,9 @@ compilation and evaluation time conflicts." :override t `((qualified_name (identifier) @font-lock-type-face) (using_directive (identifier) @font-lock-type-face) - (using_directive (name_equals - (identifier) @font-lock-type-face)) + ,@(when (csharp-ts-mode--test-name-equals) + '((using_directive (name_equals + (identifier) @font-lock-type-face)))) (enum_declaration (identifier) @font-lock-type-face) (enum_member_declaration (identifier) @font-lock-variable-name-face) @@ -861,10 +922,10 @@ compilation and evaluation time conflicts." ;;; Check if keyword void_keyword is available, then return the correct rule." ,@(condition-case nil (progn (treesit-query-capture 'csharp '((void_keyword) @capture)) - `((method_declaration type: [(identifier) (void_keyword)] @font-lock-type-face))) + `((method_declaration ,csharp-ts-mode--type-field [(identifier) (void_keyword)] @font-lock-type-face))) (error - `((method_declaration type: [(identifier) (predefined_type)] @font-lock-type-face)))) - (method_declaration type: (generic_name (identifier) @font-lock-type-face)) + `((method_declaration ,csharp-ts-mode--type-field [(identifier) (predefined_type)] @font-lock-type-face)))) + (method_declaration ,csharp-ts-mode--type-field (generic_name (identifier) @font-lock-type-face)) (method_declaration name: (_) @font-lock-function-name-face) (catch_declaration @@ -907,25 +968,45 @@ compilation and evaluation time conflicts." :language 'c-sharp :feature 'directives :override t - '((if_directive - "if" @font-lock-preprocessor-face - (identifier) @font-lock-variable-use-face) - (elif_directive - "elif" @font-lock-preprocessor-face - (identifier) @font-lock-variable-use-face) - (else_directive) @font-lock-preprocessor-face - (endif_directive) @font-lock-preprocessor-face - (define_directive - "define" @font-lock-preprocessor-face - (identifier) @font-lock-variable-use-face) - (nullable_directive) @font-lock-preprocessor-face - (pragma_directive) @font-lock-preprocessor-face - (region_directive) @font-lock-preprocessor-face - (endregion_directive) @font-lock-preprocessor-face - (region_directive - (preproc_message) @font-lock-variable-use-face) - (endregion_directive - (preproc_message) @font-lock-variable-use-face)))) + (if (csharp-ts-mode--test-if-directive) + '((if_directive + "if" @font-lock-preprocessor-face + (identifier) @font-lock-variable-use-face) + (elif_directive + "elif" @font-lock-preprocessor-face + (identifier) @font-lock-variable-use-face) + (else_directive) @font-lock-preprocessor-face + (endif_directive) @font-lock-preprocessor-face + (define_directive + "define" @font-lock-preprocessor-face + (identifier) @font-lock-variable-use-face) + (nullable_directive) @font-lock-preprocessor-face + (pragma_directive) @font-lock-preprocessor-face + (region_directive) @font-lock-preprocessor-face + (endregion_directive) @font-lock-preprocessor-face + (region_directive + (preproc_message) @font-lock-variable-use-face) + (endregion_directive + (preproc_message) @font-lock-variable-use-face)) + '((preproc_if + "#if" @font-lock-preprocessor-face + (identifier) @font-lock-variable-use-face) + (preproc_elif + "#elif" @font-lock-preprocessor-face + (identifier) @font-lock-variable-use-face) + (preproc_else) @font-lock-preprocessor-face + "#endif" @font-lock-preprocessor-face + (preproc_define + "#define" @font-lock-preprocessor-face + (preproc_arg) @font-lock-variable-use-face) + (preproc_nullable) @font-lock-preprocessor-face + (preproc_pragma) @font-lock-preprocessor-face + (preproc_region) @font-lock-preprocessor-face + (preproc_endregion) @font-lock-preprocessor-face + (preproc_region + (preproc_arg) @font-lock-variable-use-face) + (preproc_endregion + (preproc_arg) @font-lock-variable-use-face))))) ;;;###autoload (add-to-list 'auto-mode-alist '("\\.cs\\'" . csharp-mode)) From 705a5a1a9e6c3ae006a2aa4d6bc9d02951a58aa6 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Thu, 3 Oct 2024 18:39:16 +0800 Subject: [PATCH 18/28] ; * ChangeLog.4: Fix attribution of one change. --- ChangeLog.4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.4 b/ChangeLog.4 index 4bd583818ef..975750f40cd 100644 --- a/ChangeLog.4 +++ b/ChangeLog.4 @@ -11433,7 +11433,7 @@ * etc/NEWS: Update announcement. -2024-05-15 Sean Whitton +2024-05-15 Stefan Monnier (eglot--managed-mode): Avoid calling track-changes unregistered From 5eaf0c784bf1709d3ad18ff4a0b4d4b7ec03cf91 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Thu, 3 Oct 2024 23:52:55 +0200 Subject: [PATCH 19/28] * lisp/info-look.el (mapc): Add use-package manual's index. --- lisp/info-look.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/info-look.el b/lisp/info-look.el index 41e64753844..37f6a6dbb8e 100644 --- a/lisp/info-look.el +++ b/lisp/info-look.el @@ -1083,6 +1083,7 @@ Return nil if there is nothing appropriate in the buffer near point." ("srecode" "Index") ("tramp" "Variable Index" "Function Index") ("url" "Variable Index" "Function Index") + ("use-package" "Index") ("vhdl" "(vhdl-mode)Variable Index" "(vhdl-mode)Command Index") ("viper" "Variable Index" "Function Index") ("vtable" "Index") From 51ef05f684c779b492965571cf9a169b93e86aa0 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Fri, 4 Oct 2024 17:28:38 +0800 Subject: [PATCH 20/28] count-windows: Fix reference to walk-windows * lisp/window.el (count-windows): Refer to walk-windows for the precise meaning of both the MINIBUF and ALL-FRAMES arguments, not just the ALL-FRAMES argument. In both functions, these arguments are both passed through to window-list-1. --- lisp/window.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/window.el b/lisp/window.el index 006cfa19525..50fb16b3204 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -2661,7 +2661,7 @@ window is included in the count. If ALL-FRAMES is non-nil, count the windows in all frames instead just the selected frame. -See `walk-windows' for the precise meaning of this argument." +See `walk-windows' for the precise meaning of these arguments." (length (window-list-1 nil minibuf all-frames))) ;;; Resizing windows. From e9dcf0c57ddea6a3ac3136e82cdb740326e735d4 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 4 Oct 2024 14:39:50 +0300 Subject: [PATCH 21/28] Fix 'list-tags' when invoked from a non-file buffer This use case was broken by the improvement that attempts to offer the current buffer's file name as the default file whose tags to list. * lisp/progmodes/etags.el (tags--get-current-buffer-name-in-tags-file): Doc fix. Return nil if no file is associated with the current buffer, and avoid signaling an error if 'buffer-file-name' returns nil. (Bug#37611) (list-tags): Doc fix. Signal an error if the user specifies no file name at the prompt. * doc/emacs/maintaining.texi (List Identifiers): Fix wording of the documentation of 'list-tags'. --- doc/emacs/maintaining.texi | 15 +++++++-------- lisp/progmodes/etags.el | 37 +++++++++++++++++++++++++------------ 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index 3c34afbaa20..a632ffda4ab 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -2664,14 +2664,13 @@ loaded, this command can use it to generate completion candidates. @xref{Symbol Completion}. @findex list-tags - @kbd{M-x list-tags} reads the name of one of the files covered by -the selected tags table, and displays a list of tags defined in that -file. Do not include a directory as part of the file name unless the -file name recorded in the tags table includes a directory. This -command works only with the etags backend, and requires a tags table -for the project to be available. @xref{Tags Tables}. If used -interactively, the default tag is file name of the current buffer if -used interactively. + @kbd{M-x list-tags} reads the name of one of the files covered by the +selected tags table, with completion, and displays the list of tags +defined in that file; it offers the current buffer's file name as the +default file whose tags to list. Do not include a directory as part of +the file name unless the file name recorded in the tags table includes a +directory. This command works only with the etags backend, and requires +a tags table for the project to be available. @xref{Tags Tables}. @findex tags-next-file @kbd{M-x tags-next-file} visits files covered by the selected tags table. diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el index d3eb0d46e9b..35dc0215046 100644 --- a/lisp/progmodes/etags.el +++ b/lisp/progmodes/etags.el @@ -1894,27 +1894,40 @@ description of the arguments." (try-completion string (tags-table-files) predicate)))) (defun tags--get-current-buffer-name-in-tags-file () - "Get the file name that the current buffer corresponds in the tags file." - (let ((tag-dir - (save-excursion - (visit-tags-table-buffer) - (file-name-directory (buffer-file-name))))) - (file-relative-name (buffer-file-name) tag-dir))) + "Return file name that corresponds to the current buffer in the tags table. +This returns the file name which corresponds to the current buffer relative +to the directory of the current tags table (see `visit-tags-table-buffer'). +If no file is associated with the current buffer, this function returns nil." + (let ((buf-fname (buffer-file-name))) + ;; FIXME: Are there interesting cases where 'buffer-file-name' + ;; returns nil, but there's some file we expect to find in TAGS that + ;; is associated with the buffer? The obvious cases of Dired and + ;; Info buffers are not interesting for TAGS, but are there any + ;; others? + (if buf-fname + (let ((tag-dir + (save-excursion + (visit-tags-table-buffer) + (file-name-directory buf-fname)))) + (file-relative-name buf-fname tag-dir))))) ;;;###autoload (defun list-tags (file &optional _next-match) "Display list of tags in file FILE. -This searches only the first table in the list, and no included -tables. FILE should be as it appeared in the `etags' command, -usually without a directory specification. If called -interactively, FILE defaults to the file name of the current -buffer." +Interactively, prompt for FILE, with completion, offering the current +buffer's file name as the defaul. +This command searches only the first table in the list of tags tables, +and does not search included tables. +FILE should be as it was submitted to the `etags' command, which usually +means relative to the directory of the tags table file." (interactive (list (completing-read "List tags in file: " 'tags-complete-tags-table-file nil t - ;; Default FILE to the current buffer. + ;; Default FILE to the current buffer's file. (tags--get-current-buffer-name-in-tags-file)))) + (if (string-empty-p file) + (user-error "You must specify a file name")) (with-output-to-temp-buffer "*Tags List*" (princ (substitute-command-keys "Tags in file `")) (tags-with-face 'highlight (princ file)) From d656be9794dcce02fb0b2ac3f5a955ddbe57040d Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 4 Oct 2024 16:32:13 +0300 Subject: [PATCH 22/28] Expand email abbrevs in X-Debbugs-Cc header. * lisp/mail/mailabbrev.el (mail-abbrev-mode-regexp): * lisp/mail/mailalias.el (mail-address-field-regexp) (mail-complete-alist): Add "X-Debbugs-Cc" to headers where email aliases should be expanded, for compatibility with emacsbug.el. --- lisp/mail/mailabbrev.el | 2 +- lisp/mail/mailalias.el | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lisp/mail/mailabbrev.el b/lisp/mail/mailabbrev.el index c8006294a7d..16e9d6f1bea 100644 --- a/lisp/mail/mailabbrev.el +++ b/lisp/mail/mailabbrev.el @@ -410,7 +410,7 @@ with a space." ;;; Syntax tables and abbrev-expansion (defcustom mail-abbrev-mode-regexp - "^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):" + "^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\|X-Debbugs-Cc\\):" "Regexp matching mail headers in which mail abbrevs should be expanded. This string will be handed to `looking-at' with point at the beginning of the current line; if it matches, abbrev mode will be turned on, otherwise diff --git a/lisp/mail/mailalias.el b/lisp/mail/mailalias.el index cce2fcb104d..ca4ff67a6ac 100644 --- a/lisp/mail/mailalias.el +++ b/lisp/mail/mailalias.el @@ -50,7 +50,7 @@ When t this still needs to be initialized.") (defvar mail-address-field-regexp - "^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):") + "^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\|X-Debbugs-Cc\\):") ;; `pattern' is bound dynamically before evaluating the forms in ;; `mail-complete-alist' and may be part of user customizations of @@ -61,7 +61,7 @@ When t this still needs to be initialized.") (defcustom mail-complete-alist ;; Don't refer to mail-address-field-regexp here; ;; that confuses some things such as cus-dep.el. - '(("^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\):" + '(("^\\(Resent-\\)?\\(To\\|From\\|Cc\\|Bcc\\|Reply-To\\|X-Debbugs-Cc\\):" . (mail-get-names pattern)) ("Newsgroups:" . (if (boundp 'gnus-active-hashtb) gnus-active-hashtb From aaaafddc945bbd046d675ea50f221edb02c8988b Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 5 Oct 2024 00:45:54 +0200 Subject: [PATCH 23/28] Normalize "Commentary" section in eudc.el * lisp/net/eudc.el: Normalize "Commentary" section to make 'M-x describe-package RET eudc RET' more useful. --- lisp/net/eudc.el | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/lisp/net/eudc.el b/lisp/net/eudc.el index da8955d52c9..9e640768285 100644 --- a/lisp/net/eudc.el +++ b/lisp/net/eudc.el @@ -23,25 +23,27 @@ ;; along with GNU Emacs. If not, see . ;;; Commentary: -;; This package provides a common interface to query directory servers using -;; different protocols such as LDAP, CCSO PH/QI or BBDB. Queries can be -;; made through an interactive form or inline. Inline query strings in -;; buffers are expanded with appropriately formatted query results -;; (especially used to expand email addresses in message buffers). EUDC -;; also interfaces with the BBDB package to let you register query results -;; into your own BBDB database. -;;; Usage: -;; EUDC comes with an extensive documentation, please refer to it. +;; This package provides a common interface to query directory servers using +;; different protocols such as LDAP, CCSO PH/QI or BBDB. Queries can be +;; made through an interactive form or inline. Inline query strings in +;; buffers are expanded with appropriately formatted query results +;; (especially used to expand email addresses in message buffers). EUDC +;; also interfaces with the BBDB package to let you register query results +;; into your own BBDB database. ;; -;; The main entry points of EUDC are: -;; `eudc-query-form': Query a directory server from a query form -;; `eudc-expand-inline': Query a directory server for the e-mail address -;; of the name before cursor and insert it in the -;; buffer -;; `eudc-get-phone': Get a phone number from a directory server -;; `eudc-get-email': Get an e-mail address from a directory server -;; `eudc-customize': Customize various aspects of EUDC +;; Usage: +;; +;; EUDC comes with extensive documentation, please refer to it. +;; +;; The main entry points of EUDC are: +;; `eudc-query-form': Query a directory server from a query form +;; `eudc-expand-inline': Query a directory server for the e-mail address +;; of the name before cursor and insert it in the +;; buffer +;; `eudc-get-phone': Get a phone number from a directory server +;; `eudc-get-email': Get an e-mail address from a directory server +;; `eudc-customize': Customize various aspects of EUDC ;;; Code: From 6b1271b169a8c5d46eace65fb9348d6110527cf3 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 5 Oct 2024 01:58:46 +0200 Subject: [PATCH 24/28] Fix python-ts-mode-map docstring * lisp/progmodes/python.el (python-ts-mode-map): Fix docstring. --- lisp/progmodes/python.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 9d87d6cb6a5..0001bdd21a9 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -408,7 +408,7 @@ To customize the Python interpreter for interactive use, modify "Keymap for `python-mode'.") (defvar python-ts-mode-map (copy-keymap python-mode-map) - "Keymap for `(copy-keymap python-mode-map)'.") + "Keymap for `python-ts-mode'.") ;;; Python specialized rx From 5a462948e13393fc742e36b655c529f3c5e851bb Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 5 Oct 2024 02:24:30 +0200 Subject: [PATCH 25/28] Update Arni Magnusson's email address * .mailmap: * doc/lispref/ChangeLog.1: * doc/misc/ChangeLog.1: * lisp/ChangeLog.16: * lisp/ChangeLog.17: * lisp/progmodes/bat-mode.el: Update email address of Arni Magnusson. (Bug#73631) --- .mailmap | 1 + doc/lispref/ChangeLog.1 | 2 +- doc/misc/ChangeLog.1 | 2 +- lisp/ChangeLog.16 | 2 +- lisp/ChangeLog.17 | 4 ++-- lisp/progmodes/bat-mode.el | 4 ++-- 6 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.mailmap b/.mailmap index 9647749940f..bbfe4bceba1 100644 --- a/.mailmap +++ b/.mailmap @@ -26,6 +26,7 @@ Andrew G Cohen Andrew G Cohen Arash Esbati Arash Esbati +Arni Magnusson Artur Malabarba Artur Malabarba Artur Malabarba Basil L. Contovounesios diff --git a/doc/lispref/ChangeLog.1 b/doc/lispref/ChangeLog.1 index e2d4c019b4a..a508ad9f28b 100644 --- a/doc/lispref/ChangeLog.1 +++ b/doc/lispref/ChangeLog.1 @@ -5551,7 +5551,7 @@ * loading.texi (Hooks for Loading): Document after-load-functions. Copyedits. -2010-03-24 Arni Magnusson (tiny change) +2010-03-24 Arni Magnusson (tiny change) * frames.texi (Cursor Parameters): Fix typo. (Bug#5760) diff --git a/doc/misc/ChangeLog.1 b/doc/misc/ChangeLog.1 index 37b304c2dca..14570bb174f 100644 --- a/doc/misc/ChangeLog.1 +++ b/doc/misc/ChangeLog.1 @@ -6407,7 +6407,7 @@ * epa.texi (Mail-mode integration): Mention the way to do "encrypt-to-self". (Bug#1807) -2009-02-05 Arni Magnusson (tiny change) +2009-02-05 Arni Magnusson (tiny change) * ada-mode.texi (No project files): Fix typo. (Bug#2214) diff --git a/lisp/ChangeLog.16 b/lisp/ChangeLog.16 index fa956ac8784..6d807fbd44d 100644 --- a/lisp/ChangeLog.16 +++ b/lisp/ChangeLog.16 @@ -25198,7 +25198,7 @@ * emacs-lisp/package-x.el (package-upload-buffer-internal): Use `equal' for upload base check. -2011-03-08 Arni Magnusson (tiny change) +2011-03-08 Arni Magnusson (tiny change) * textmodes/texinfo.el (texinfo-environments): Add deftypecv, deftypeivar, deftypemethod, deftypeop, html. (Bug#2783) diff --git a/lisp/ChangeLog.17 b/lisp/ChangeLog.17 index 3eec2da2038..e6c35f63a20 100644 --- a/lisp/ChangeLog.17 +++ b/lisp/ChangeLog.17 @@ -6706,7 +6706,7 @@ 2014-10-12 Stefan Monnier * progmodes/bat-mode.el (bat-font-lock-keywords): Fix \\<_ typo - (bug#18622). Reported by Arni Magnusson . + (bug#18622). Reported by Arni Magnusson . * progmodes/prolog.el (prolog-electric--underscore): Same. 2014-10-12 Michael Albinus @@ -20214,7 +20214,7 @@ (dos-mode-syntax-table): Don't use "w" for symbol chars. (dos-font-lock-keywords): Try to adjust font-lock rules accordingly. -2013-08-07 Arni Magnusson +2013-08-07 Arni Magnusson * progmodes/dos.el: New file. * generic-x.el (bat-generic-mode): Redefine as an obsolete alias to diff --git a/lisp/progmodes/bat-mode.el b/lisp/progmodes/bat-mode.el index 0687a0c9f32..613de34eb7e 100644 --- a/lisp/progmodes/bat-mode.el +++ b/lisp/progmodes/bat-mode.el @@ -1,8 +1,8 @@ ;;; bat-mode.el --- Major mode for editing DOS/Windows scripts -*- lexical-binding: t -*- -;; Copyright (C) 2003, 2008-2024 Free Software Foundation, Inc. +;; Copyright (C) 2003-2024 Free Software Foundation, Inc. -;; Author: Arni Magnusson +;; Author: Arni Magnusson ;; Keywords: languages ;; This file is part of GNU Emacs. From ba44fc9a447be75eff304f606e0cc9ea7ba7656a Mon Sep 17 00:00:00 2001 From: Morgan Willcock Date: Tue, 24 Sep 2024 19:33:11 +0100 Subject: [PATCH 26/28] Restore comment/string check for 'electric-layout-mode' This reverts an accidental change which allowed 'electric-layout-mode' to insert newlines inside strings and comments. The new behavior can be obtained by setting the new variable 'electric-layout-allow-in-comment-or-string' to a non-nil value. * lisp/electric.el (electric-layout-allow-in-comment-or-string): New variable to determine whether inserting newlines is permitted within comments or strings. (electric-layout-post-self-insert-function-1): Restore the previous default behavior of not inserting newlines within comments or strings. --- lisp/electric.el | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lisp/electric.el b/lisp/electric.el index d02bcb4735b..d84faf5433f 100644 --- a/lisp/electric.el +++ b/lisp/electric.el @@ -385,6 +385,9 @@ If multiple rules match, only first one is executed.") (defvar electric-layout-allow-duplicate-newlines nil "If non-nil, allow duplication of `before' newlines.") +(defvar electric-layout-allow-in-comment-or-string nil + "If non-nil, allow inserting newlines inside a comment or string.") + (defun electric-layout-post-self-insert-function () (when electric-layout-mode (electric-layout-post-self-insert-function-1))) @@ -409,7 +412,10 @@ If multiple rules match, only first one is executed.") (goto-char pos) (funcall probe last-command-event)))) (when res (throw 'done res)))))))))) - (when rule + (when (and rule + (or electric-layout-allow-in-comment-or-string + ;; Not in a comment or string. + (not (nth 8 (save-excursion (syntax-ppss pos)))))) (goto-char pos) (when (functionp rule) (setq rule (funcall rule))) (dolist (sym (if (symbolp rule) (list rule) rule)) From 688201ef18df468dc8c7e8eb2ce6a96a9c625517 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 5 Oct 2024 13:30:30 +0300 Subject: [PATCH 27/28] ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): Doc fix (bug#73545). --- lisp/window.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/window.el b/lisp/window.el index 50fb16b3204..01010072190 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4617,7 +4617,8 @@ Also see `switch-to-prev-buffer-skip-regexp'." "Buffers that `switch-to-prev-buffer' and `switch-to-next-buffer' should skip. The value can either be a regexp or a list of regexps. Buffers whose names match these regexps are skipped by `switch-to-prev-buffer' -and `switch-to-next-buffer'. +and `switch-to-next-buffer', unless there's no other buffer to +switch to. Also see `switch-to-prev-buffer-skip'." :type '(choice regexp From b68b9f291cc52f6120858534ff450fa7f6381d0b Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 5 Oct 2024 14:38:48 +0300 Subject: [PATCH 28/28] ; * lisp/progmodes/csharp-mode.el (treesit-query-compile): Declare. --- lisp/progmodes/csharp-mode.el | 1 + 1 file changed, 1 insertion(+) diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index 755303a158d..1f86527191a 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -46,6 +46,7 @@ (declare-function treesit-node-type "treesit.c") (declare-function treesit-node-child-by-field-name "treesit.c") (declare-function treesit-query-capture "treesit.c") +(declare-function treesit-query-compile "treesit.c") (defgroup csharp nil "Major mode for editing C# code."