commit c31688cb061bf76c5300abadaf6fe589603b0184 (HEAD, refs/remotes/origin/master) Author: Po Lu Date: Fri Jun 23 08:24:45 2023 +0800 ; * doc/lispref/frames.texi (Frame Layout): Fix typo. diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi index 67def9b1fda..5a2d9f29295 100644 --- a/doc/lispref/frames.texi +++ b/doc/lispref/frames.texi @@ -851,7 +851,7 @@ Frame Layout This tells on which side the tool bar on @var{frame} is and can be one of @code{left}, @code{top}, @code{right} or @code{bottom}. -The values @code{left} and @code{bottom} are only supported on builds +The values @code{left} and @code{right} are only supported on builds using the GTK+ toolkit; @code{bottom} is supported on all builds other than NS, and @code{top} is supported everywhere. commit 6c1c14b33347ddcfde8068c4830c6d673d3a740b Author: Stefan Monnier Date: Thu Jun 22 13:11:03 2023 -0400 latin-ltx.el: Add \Phi; fix bug#64212 * lisp/leim/quail/latin-ltx.el (greek letters): Fix regexp which was meant to avoid lowercase phi only. diff --git a/lisp/leim/quail/latin-ltx.el b/lisp/leim/quail/latin-ltx.el index 21a01c85737..9be3d722504 100644 --- a/lisp/leim/quail/latin-ltx.el +++ b/lisp/leim/quail/latin-ltx.el @@ -244,7 +244,8 @@ ;; (which is \varphi) are reversed in `ucs-names', so we define ;; them manually. Also ignore "GREEK SMALL LETTER EPSILON" and ;; add the correct value for \epsilon manually. - (unless (string-match-p "\\<\\(?:PHI\\|GREEK SMALL LETTER EPSILON\\)\\>" name) + (unless (string-match-p "\\" + name) (concat "\\" (funcall (if (match-end 1) #' capitalize #'downcase) (match-string 2 name))))) "\\`GREEK \\(?:SMALL\\|CAPITA\\(L\\)\\) LETTER \\([^- ]+\\)\\'") commit 4c01b0deee13808605b05a89e927e67eaf67edbd Author: Jakub Ječmínek Date: Wed Jun 21 15:50:31 2023 +0200 Fix orgtbl-to-table.el function to include last cell border * lisp/org/org-table.el (orgtbl-to-table.el): Perform character replacement in the temp buffer and fix missing cell border. (Bug#64205) Copyright-paperwork-exempt: yes diff --git a/lisp/org/org-table.el b/lisp/org/org-table.el index 42f234790c5..9a72eb5f314 100644 --- a/lisp/org/org-table.el +++ b/lisp/org/org-table.el @@ -6132,9 +6132,13 @@ orgtbl-to-table.el (with-temp-buffer (insert (orgtbl-to-orgtbl table params)) (org-table-align) - (replace-regexp-in-string - "-|" "-+" - (replace-regexp-in-string "|-" "+-" (buffer-substring 1 (buffer-size)))))) + (goto-char (point-min)) + (while (search-forward "-|" nil t) + (replace-match "-+")) + (goto-char (point-min)) + (while (search-forward "|-" nil t) + (replace-match "+-")) + (buffer-string))) (defun orgtbl-to-unicode (table params) "Convert the `orgtbl-mode' TABLE into a table with unicode characters. commit a23a09a82fc59402f1f7c23a46c65fc7001eecdf Author: Mattias Engdegård Date: Thu Jun 22 13:17:00 2023 +0200 * etc/NEWS: Announce the fix for bug#44418 (,@ prefix syntax) diff --git a/etc/NEWS b/etc/NEWS index 7552640663f..422e1ec585e 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -408,6 +408,15 @@ completion based on dictionaries that the server supports. *** 'pp-to-string' takes an additional 'pp-function' argument. This arg specifies the prettifying algorithm to use. + +** Emacs Lisp mode + +--- +*** ',@' now has 'prefix' syntax +Previously, the '@' character, which normally has 'symbol' syntax, +would combine with a following Lisp symbol and interfere with symbol +searching. + * New Modes and Packages in Emacs 30.1 commit 311a25807fc6fe0589a331f400ba28af4e328e4b Author: Michael Albinus Date: Thu Jun 22 11:07:10 2023 +0200 Rearrange some Tramp declarations * lisp/net/tramp.el (tramp-prefix-format, tramp-prefix-regexp) (tramp-method-regexp, tramp-postfix-method-format) (tramp-postfix-method-regexp, tramp-prefix-ipv6-format) (tramp-prefix-ipv6-regexp, tramp-postfix-ipv6-format) (tramp-postfix-ipv6-regexp, tramp-postfix-host-format) (tramp-postfix-host-regexp, tramp-remote-file-name-spec-regexp) (tramp-file-name-structure, tramp-file-name-regexp) (tramp-completion-method-regexp) (tramp-completion-file-name-regexp): * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-vector): Rearrange declarations. diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index e214d610c91..48467a92c14 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -114,6 +114,7 @@ (declare-function zeroconf-service-host "zeroconf") (declare-function zeroconf-service-port "zeroconf") (declare-function zeroconf-service-txt "zeroconf") +(defvar tramp-gvfs-dbus-event-vector) ;; We don't call `dbus-ping', because this would load dbus.el. (defconst tramp-gvfs-enabled @@ -882,8 +883,6 @@ tramp-gvfs-file-name-p (let ((method (tramp-file-name-method vec))) (and (stringp method) (member method tramp-gvfs-methods))))) -(defvar tramp-gvfs-dbus-event-vector) - ;;;###tramp-autoload (defun tramp-gvfs-file-name-handler (operation &rest args) "Invoke the GVFS related OPERATION and ARGS. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 12fc25b5ba9..e7928e4e1f4 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -64,6 +64,22 @@ (declare-function netrc-parse "netrc") (defvar auto-save-file-name-transforms) (defvar ls-lisp-use-insert-directory-program) +(defvar tramp-prefix-format) +(defvar tramp-prefix-regexp) +(defvar tramp-method-regexp) +(defvar tramp-postfix-method-format) +(defvar tramp-postfix-method-regexp) +(defvar tramp-prefix-ipv6-format) +(defvar tramp-prefix-ipv6-regexp) +(defvar tramp-postfix-ipv6-format) +(defvar tramp-postfix-ipv6-regexp) +(defvar tramp-postfix-host-format) +(defvar tramp-postfix-host-regexp) +(defvar tramp-remote-file-name-spec-regexp) +(defvar tramp-file-name-structure) +(defvar tramp-file-name-regexp) +(defvar tramp-completion-method-regexp) +(defvar tramp-completion-file-name-regexp) ;; Reload `tramp-compat' when we reload `tramp-autoloads' of the GNU ;; ELPA package. @@ -820,23 +836,6 @@ tramp-syntax :initialize #'custom-initialize-default :set #'tramp-set-syntax) -(defvar tramp-prefix-format) -(defvar tramp-prefix-regexp) -(defvar tramp-method-regexp) -(defvar tramp-postfix-method-format) -(defvar tramp-postfix-method-regexp) -(defvar tramp-prefix-ipv6-format) -(defvar tramp-prefix-ipv6-regexp) -(defvar tramp-postfix-ipv6-format) -(defvar tramp-postfix-ipv6-regexp) -(defvar tramp-postfix-host-format) -(defvar tramp-postfix-host-regexp) -(defvar tramp-remote-file-name-spec-regexp) -(defvar tramp-file-name-structure) -(defvar tramp-file-name-regexp) -(defvar tramp-completion-method-regexp) -(defvar tramp-completion-file-name-regexp) - (defun tramp-set-syntax (symbol value) "Set SYMBOL to value VALUE. Used in user option `tramp-syntax'. There are further variables commit 8ca8fb484143a639f08987146bfdebf97d1541f4 Merge: 892a3e8731c 0154f5885e3 Author: Michael Albinus Date: Thu Jun 22 11:01:23 2023 +0200 Merge from origin/emacs-29 0154f5885e3 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ... 111efb0dd7f Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs ... 948b471756e Require ls-lisp in Tramp only when needed 90c03ffcd4b After minibuffer action, don't make the minibuffer current commit 892a3e8731cde7ddac97d20b9867e99d63837adb Merge: b104c8dfdc7 95091b77f0b Author: Michael Albinus Date: Thu Jun 22 10:50:49 2023 +0200 ; Merge from origin/emacs-29 The following commit was skipped: 95091b77f0b Fix some tree-sitter :match regexps commit b104c8dfdc7ed07a8a4b5ef95433c8103df7cd84 Merge: 4848bdf98b8 3d930b928fe Author: Michael Albinus Date: Thu Jun 22 10:50:46 2023 +0200 Merge from origin/emacs-29 3d930b928fe Eglot: fix relative position of coinciding inlay hint ove... aad7d68164c ; * doc/lispref/display.texi (Display Tables): Remove ext... commit 0154f5885e330b328f047e7c49acf050b7c4bf46 Merge: 111efb0dd7f 90c03ffcd4b Author: Michael Albinus Date: Sat Jun 17 18:16:24 2023 +0200 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29 commit 111efb0dd7f33dbc4c19706ecca705cae7b7eff9 Merge: 948b471756e 95091b77f0b Author: Michael Albinus Date: Sat Jun 17 18:15:47 2023 +0200 Merge branch 'emacs-29' of git.sv.gnu.org:/srv/git/emacs into emacs-29 commit 948b471756e517166a6d8bbbcfda83e4b572d553 Author: Michael Albinus Date: Sat Jun 17 18:15:09 2023 +0200 Require ls-lisp in Tramp only when needed * lisp/net/tramp-compat.el (ls-lisp): Require only on MS Windows. (Bug#64124) * lisp/net/tramp-sh.el (ls-lisp-use-insert-directory-program): Declare. (tramp-sh-handle-insert-directory): Simplify. * lisp/net/tramp.el (ls-lisp-use-insert-directory-program): Declare. (tramp-handle-insert-directory): Require ls-lisp. Simplify. diff --git a/lisp/net/tramp-compat.el b/lisp/net/tramp-compat.el index f176476a73a..673c6679dbe 100644 --- a/lisp/net/tramp-compat.el +++ b/lisp/net/tramp-compat.el @@ -31,11 +31,13 @@ (require 'auth-source) (require 'format-spec) -(require 'ls-lisp) ;; Due to `tramp-handle-insert-directory'. (require 'parse-time) (require 'shell) (require 'subr-x) +(when (memq system-type '(ms-dos windows-nt)) + (require 'ls-lisp)) + (declare-function tramp-compat-rx "tramp") (declare-function tramp-error "tramp") (declare-function tramp-file-name-handler "tramp") diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 392a654df21..48ba3d09e3e 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -38,6 +38,7 @@ (declare-function dired-compress-file "dired-aux") (declare-function dired-remove-file "dired-aux") (defvar dired-compress-file-suffixes) +(defvar ls-lisp-use-insert-directory-program) ;; Added in Emacs 28.1. (defvar process-file-return-signal-string) (defvar vc-handled-backends) @@ -2659,7 +2660,7 @@ tramp-sh-handle-insert-directory (access-file filename "Reading directory")) (with-parsed-tramp-file-name (expand-file-name filename) nil (if (and (featurep 'ls-lisp) - (not (symbol-value 'ls-lisp-use-insert-directory-program))) + (not ls-lisp-use-insert-directory-program)) (tramp-handle-insert-directory filename switches wildcard full-directory-p) (when (stringp switches) diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 7df455954d8..b46eeb8e374 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -63,6 +63,7 @@ (declare-function file-notify-rm-watch "filenotify") (declare-function netrc-parse "netrc") (defvar auto-save-file-name-transforms) +(defvar ls-lisp-use-insert-directory-program) ;; Reload `tramp-compat' when we reload `tramp-autoloads' of the GNU ;; ELPA package. @@ -4181,6 +4182,7 @@ tramp-handle-find-backup-file-name (defun tramp-handle-insert-directory (filename switches &optional wildcard full-directory-p) "Like `insert-directory' for Tramp files." + (require 'ls-lisp) (unless switches (setq switches "")) ;; Mark trailing "/". (when (and (directory-name-p filename) @@ -4193,7 +4195,6 @@ tramp-handle-insert-directory (with-tramp-progress-reporter v 0 (format "Opening directory %s" filename) (let (ls-lisp-use-insert-directory-program start) ;; Silence byte compiler. - (ignore ls-lisp-use-insert-directory-program) (tramp-run-real-handler #'insert-directory (list filename switches wildcard full-directory-p)) commit 90c03ffcd4b3744ae149dcede9179b0cbf9d7547 Author: Alan Mackenzie Date: Sat Jun 17 16:14:14 2023 +0000 After minibuffer action, don't make the minibuffer current This fixes bug#63967. * src/minibuf.c (minibuffer_unwind): After restoring the next minibuffer outwards to the mini window (when enable-recursive-minibuffers is non-nil), don't call Fset_frame_selected_window, which used to set the current window to be the mini window. diff --git a/src/minibuf.c b/src/minibuf.c index d5f95968ae1..bcb7eb9375d 100644 --- a/src/minibuf.c +++ b/src/minibuf.c @@ -1266,9 +1266,6 @@ minibuffer_unwind (void) set_window_buffer (window, Fcar (entry), 0, 0); Fset_window_start (window, Fcar (Fcdr (entry)), Qnil); Fset_window_point (window, Fcar (Fcdr (Fcdr (entry)))); - /* set-window-configuration may/will have unselected the - mini-window as the selected window. Restore it. */ - Fset_frame_selected_window (exp_MB_frame, window, Qnil); } else set_window_buffer (window, nth_minibuffer (0), 0, 0); commit 95091b77f0bbb2ae1aa94ef4a413626e7d434d58 Author: Basil L. Contovounesios Date: Tue Jun 13 13:53:31 2023 +0100 Fix some tree-sitter :match regexps The shy groups were caught by modified versions of the GNU ELPA packages xr and relint: - https://github.com/mattiase/xr/pull/6 - https://github.com/mattiase/relint/pull/14 * lisp/progmodes/ruby-ts-mode.el (ruby-ts--s-p-query): Quote special character in regexp. * lisp/progmodes/java-ts-mode.el (java-ts-mode--font-lock-settings): * lisp/progmodes/js.el (js--plain-method-re): (js--treesit-font-lock-settings): * lisp/progmodes/rust-ts-mode.el (rust-ts-mode--font-lock-settings): * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--font-lock-settings): Replace character alternative [\\d], which matches '\' or 'd', with the most likely intention [0-9]. Fix shy groups mistyped as optional colons. Remove unneeded numbered :match group in rust-ts-mode (bug#64019). diff --git a/lisp/progmodes/java-ts-mode.el b/lisp/progmodes/java-ts-mode.el index 463872dcbc8..7f2fc4188a3 100644 --- a/lisp/progmodes/java-ts-mode.el +++ b/lisp/progmodes/java-ts-mode.el @@ -168,7 +168,7 @@ java-ts-mode--font-lock-settings :override t :feature 'constant `(((identifier) @font-lock-constant-face - (:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face)) + (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face)) [(true) (false)] @font-lock-constant-face) :language 'java :override t diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 414b6eb2baf..48fecf69537 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -106,7 +106,7 @@ js--opt-cpp-start (defconst js--plain-method-re (concat "^\\s-*?\\(" js--dotted-name-re "\\)\\.prototype" - "\\.\\(" js--name-re "\\)\\s-*?=\\s-*?\\(\\(:?async[ \t\n]+\\)function\\)\\_>") + "\\.\\(" js--name-re "\\)\\s-*?=\\s-*?\\(\\(?:async[ \t\n]+\\)function\\)\\_>") "Regexp matching an explicit JavaScript prototype \"method\" declaration. Group 1 is a (possibly-dotted) class name, group 2 is a method name, and group 3 is the `function' keyword.") @@ -3493,7 +3493,7 @@ js--treesit-font-lock-settings :language 'javascript :feature 'constant '(((identifier) @font-lock-constant-face - (:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face)) + (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face)) [(true) (false) (null)] @font-lock-constant-face) @@ -3612,7 +3612,7 @@ js--treesit-font-lock-settings :feature 'number '((number) @font-lock-number-face ((identifier) @font-lock-number-face - (:match "\\`\\(:?NaN\\|Infinity\\)\\'" @font-lock-number-face))) + (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face))) :language 'javascript :feature 'operator diff --git a/lisp/progmodes/ruby-ts-mode.el b/lisp/progmodes/ruby-ts-mode.el index 91d65a2777b..4b951f7606f 100644 --- a/lisp/progmodes/ruby-ts-mode.el +++ b/lisp/progmodes/ruby-ts-mode.el @@ -1021,7 +1021,7 @@ ruby-ts--s-p-query (:match "\\`\\$[#\"'`:?]" @global_var)) ;; ?' ?" ?` are character literals. ((character) @char - (:match "\\`?[#\"'`:?]" @char)) + (:match "\\`\\?[#\"'`:?]" @char)) ;; Symbols like :+, :<=> or :foo=. ((simple_symbol) @symbol (:match "\\s." @symbol)) diff --git a/lisp/progmodes/rust-ts-mode.el b/lisp/progmodes/rust-ts-mode.el index b55af0b49e3..999c1d7ae96 100644 --- a/lisp/progmodes/rust-ts-mode.el +++ b/lisp/progmodes/rust-ts-mode.el @@ -143,7 +143,7 @@ rust-ts-mode--font-lock-settings eol)) @font-lock-builtin-face))) ((identifier) @font-lock-type-face - (:match "\\`\\(:?Err\\|Ok\\|None\\|Some\\)\\'" @font-lock-type-face))) + (:match "\\`\\(?:Err\\|Ok\\|None\\|Some\\)\\'" @font-lock-type-face))) :language 'rust :feature 'comment @@ -232,9 +232,12 @@ rust-ts-mode--font-lock-settings (type_identifier) @font-lock-type-face ((scoped_identifier name: (identifier) @rust-ts-mode--fontify-tail)) ((scoped_identifier path: (identifier) @font-lock-type-face) - (:match - "\\`\\(u8\\|u16\\|u32\\|u64\\|u128\\|usize\\|i8\\|i16\\|i32\\|i64\\|i128\\|isize\\|char\\|str\\)\\'" - @font-lock-type-face)) + (:match ,(rx bos + (or "u8" "u16" "u32" "u64" "u128" "usize" + "i8" "i16" "i32" "i64" "i128" "isize" + "char" "str") + eos) + @font-lock-type-face)) ((scoped_identifier path: (identifier) @rust-ts-mode--fontify-scope)) ((scoped_type_identifier path: (identifier) @rust-ts-mode--fontify-scope)) (type_identifier) @font-lock-type-face) @@ -249,7 +252,7 @@ rust-ts-mode--font-lock-settings :feature 'constant `((boolean_literal) @font-lock-constant-face ((identifier) @font-lock-constant-face - (:match "\\`[A-Z][A-Z\\d_]*\\'" @font-lock-constant-face))) + (:match "\\`[A-Z][0-9A-Z_]*\\'" @font-lock-constant-face))) :language 'rust :feature 'variable diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el index 5df34de0472..68aefd90f92 100644 --- a/lisp/progmodes/typescript-ts-mode.el +++ b/lisp/progmodes/typescript-ts-mode.el @@ -153,7 +153,7 @@ typescript-ts-mode--font-lock-settings :language language :feature 'constant `(((identifier) @font-lock-constant-face - (:match "\\`[A-Z_][A-Z_\\d]*\\'" @font-lock-constant-face)) + (:match "\\`[A-Z_][0-9A-Z_]*\\'" @font-lock-constant-face)) [(true) (false) (null)] @font-lock-constant-face) :language language @@ -311,7 +311,7 @@ typescript-ts-mode--font-lock-settings :feature 'number `((number) @font-lock-number-face ((identifier) @font-lock-number-face - (:match "\\`\\(:?NaN\\|Infinity\\)\\'" @font-lock-number-face))) + (:match "\\`\\(?:NaN\\|Infinity\\)\\'" @font-lock-number-face))) :language language :feature 'operator commit 3d930b928fe683d380809d53257017022f74aae9 Author: João Távora Date: Sat Jun 17 15:25:30 2023 +0100 Eglot: fix relative position of coinciding inlay hint overlays (bug#64101) Only seems to happen on certain platforms, like Mac OS. Reason unknown reason so far, but this defensive fix seems safe. * lisp/progmodes/eglot.el (eglot--update-hints-1): Explicitly put priority in inlay hint overalys. diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index df8f5f64829..352a6ffd6b0 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -3644,8 +3644,9 @@ eglot--update-hints-1 (if peg-after-p (make-overlay (point) (1+ (point)) nil t) (make-overlay (1- (point)) (point) nil nil nil))) - (do-it (label lpad rpad firstp) - (let* ((tweak-cursor-p (and firstp peg-after-p)) + (do-it (label lpad rpad i) + (let* ((firstp (zerop i)) + (tweak-cursor-p (and firstp peg-after-p)) (ov (make-ov)) (text (concat lpad label rpad))) (when tweak-cursor-p (put-text-property 0 1 'cursor 1 text)) @@ -3656,17 +3657,18 @@ eglot--update-hints-1 (1 'eglot-type-hint-face) (2 'eglot-parameter-hint-face) (_ 'eglot-inlay-hint-face)))) + (overlay-put ov 'priority i) (overlay-put ov 'eglot--inlay-hint t) (overlay-put ov 'evaporate t) (overlay-put ov 'eglot--overlay t)))) - (if (stringp label) (do-it label left-pad right-pad t) + (if (stringp label) (do-it label left-pad right-pad 0) (cl-loop for i from 0 for ldetail across label do (eglot--dbind ((InlayHintLabelPart) value) ldetail (do-it value (and (zerop i) left-pad) (and (= i (1- (length label))) right-pad) - (zerop i)))))))))) + i))))))))) (jsonrpc-async-request (eglot--current-server-or-lose) :textDocument/inlayHint commit aad7d68164cd4c33f60c0b6226c63d48cebabd76 Author: Eli Zaretskii Date: Sat Jun 17 16:13:38 2023 +0300 ; * doc/lispref/display.texi (Display Tables): Remove extra parens. diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 7655ca8839d..9b6e4f609bf 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -8527,7 +8527,7 @@ Display Tables (make-glyph-code (+ i 64) 'escape-glyph))))) (aset disptab 127 (vector (make-glyph-code ?^ 'escape-glyph) - (make-glyph-code ?? 'escape-glyph))))) + (make-glyph-code ?? 'escape-glyph))) @end example @defun display-table-slot display-table slot