commit 500f5da5fb62cd0bbded8df754d93e3147d1d847 (HEAD, refs/remotes/origin/master) Author: Daniel Colascione Date: Sat Oct 5 22:07:11 2024 -0400 Simplify xref regular expression with rx * lisp/progmodes/xref.el (xref--regexp-to-extended): switch to rx regular expression for legibility diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index b841dc1d179..28bd42aebde 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -2076,7 +2076,8 @@ directory, used as the root of the ignore globs." (replace-regexp-in-string ;; FIXME: Add tests. Move to subr.el, make a public function. ;; Maybe error on Emacs-only constructs. - "\\(?:\\\\\\\\\\)*\\(?:\\\\[][]\\)?\\(?:\\[.+?\\]\\|\\(\\\\?[(){}|]\\)\\)" + (rx (zero-or-more "\\\\") (opt "\\" (any "[]")) + (or (seq "[" (+? nonl) "]") (group (opt "\\") (any "(){|}")))) (lambda (str) (cond ((not (match-beginning 1)) commit e776df2a3eae0454ea85287e15ebba649bf8e918 Author: Dmitry Gutov Date: Sun Oct 6 04:31:31 2024 +0300 help-setup-xref: Keep the local values only of some variables * lisp/help-mode.el (help-setup-xref): Kill all local variables, saving ones that are known to need to be preserved (bug#73637). diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 7bb69a9389f..a44749d1fe9 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -505,30 +505,19 @@ This should be called very early, before the output buffer is cleared, because we want to record the \"previous\" position of point so we can restore it properly when going back." (with-current-buffer (help-buffer) - ;; Disable `outline-minor-mode' in a reused Help buffer - ;; created by `describe-bindings' that enables this mode. - (when (bound-and-true-p outline-minor-mode) - (outline-minor-mode -1) - (mapc #'kill-local-variable - '(outline-search-function - outline-regexp - outline-heading-end-regexp - outline-level - outline-minor-mode-cycle - outline-minor-mode-highlight - outline-minor-mode-use-buttons - outline-default-state - outline-default-rules))) - (kill-local-variable 'xref-backend-functions) - (kill-local-variable 'semantic-symref-filepattern-alist) - (when help-xref-stack-item - (push (cons (point) help-xref-stack-item) help-xref-stack) - (setq help-xref-forward-stack nil)) - (when interactive-p - (let ((tail (nthcdr 10 help-xref-stack))) - ;; Truncate the stack. - (if tail (setcdr tail nil)))) - (setq help-xref-stack-item item))) + (let ((stack-item help-xref-stack-item) + (stack help-xref-stack)) + (kill-all-local-variables) + (setq help-xref-stack-item stack-item + help-xref-stack stack) + (when help-xref-stack-item + (push (cons (point) help-xref-stack-item) help-xref-stack) + (setq help-xref-forward-stack nil)) + (when interactive-p + (let ((tail (nthcdr 10 help-xref-stack))) + ;; Truncate the stack. + (if tail (setcdr tail nil)))) + (setq help-xref-stack-item item)))) (defvar help-xref-following nil "Non-nil when following a help cross-reference.") commit 4c7a6dc1a0ce8fe7bb603c907efb52d2ecf30858 Author: Alan Mackenzie Date: Sat Oct 5 17:28:28 2024 +0000 CC Mode: Remove search limit to fontify first decl in xdisp.c An unneeded 10,000 character search limit prevents the full fontification of the first declaration of xdisp.c, since the introductory commentary is longer than that. * lisp/progmodes/cc-engine (c-find-decl-spots): Remove the 10,000 char limit. diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index f6c255dfab1..868267f06f4 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -6579,8 +6579,7 @@ comment at the start of cc-engine.el for more info." ;; we're just some syntactic whitespace further down we can ;; still use the cache to limit the skipping. (c-backward-syntactic-ws - (max (or c-find-decl-syntactic-pos (point-min)) - (- (point) 10000) (point-min)))) + (max (or c-find-decl-syntactic-pos (point-min)) (point-min)))) ;; If we hit `c-find-decl-syntactic-pos' and ;; `c-find-decl-match-pos' is set then we install the cached commit 24fe762503ee5e36f49f01e538d89ab986f1f593 Author: Stefan Kangas Date: Sat Oct 5 18:31:50 2024 +0200 Remove redundant face specs in manoj-dark theme * etc/themes/manoj-dark-theme.el (manoj-dark): Remove redundant face specs. ':bold t' duplicates ':weight bold', and ':italic t' duplicates ':slant italic'. diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el index 81dac1902f0..b902f293ca0 100644 --- a/etc/themes/manoj-dark-theme.el +++ b/etc/themes/manoj-dark-theme.el @@ -81,22 +81,22 @@ jarring angry fruit salad look to reduce eye fatigue." '(font-lock-preprocessor-face ((t (:foreground "CornFlowerBlue" :italic t)))) '(font-lock-keyword-face ((t (:foreground "cyan1")))) '(font-lock-type-face ((t (:foreground "SteelBlue1")))) - '(font-lock-regexp-grouping-backslash ((t (:bold t :weight bold)))) - '(font-lock-regexp-grouping-construct ((t (:bold t :weight bold)))) + '(font-lock-regexp-grouping-backslash ((t (:weight bold)))) + '(font-lock-regexp-grouping-construct ((t (:weight bold)))) '(font-lock-variable-name-face ((t (:foreground "Aquamarine")))) - '(font-lock-function-name-face ((t (:foreground "mediumspringgreen" - :weight bold)))) + '(font-lock-function-name-face ((t ( :foreground "mediumspringgreen" + :weight bold)))) '(font-lock-string-face ((t (:foreground "RosyBrown1")))) '(font-lock-comment-face ((t (:italic t :slant oblique :foreground "chocolate1")))) '(font-lock-comment-delimiter-face ((t (:foreground "Salmon")))) '(font-lock-doc-face ((t (:italic t :slant oblique :foreground "LightCoral")))) - '(font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold)))) + '(font-lock-warning-face ((t (:foreground "Pink" :weight bold)))) '(cperl-array-face ((t (:foreground "LawnGreen" :background "Black" :bold t)))) '(cperl-hash-face ((t (:foreground "SpringGreen" :background "Black" :bold t :italic t)))) '(cperl-nonoverridable-face ((t (:foreground "chartreuse3")))) - '(gnus-button ((t (:bold t :weight bold :background "#191932" :box (:line-width 2 :style released-button))))) + '(gnus-button ((t (:weight bold :background "#191932" :box (:line-width 2 :style released-button))))) '(gnus-cite-attribution-face ((t (:italic t)))) '(gnus-cite-face-1 ((t (:foreground "CornflowerBlue")))) '(gnus-cite-face-2 ((t (:foreground "PaleGreen")))) @@ -109,68 +109,68 @@ jarring angry fruit salad look to reduce eye fatigue." '(gnus-cite-face-9 ((t (:foreground "chartreuse1")))) '(gnus-cite-face-10 ((t (:foreground "thistle1")))) '(gnus-cite-face-11 ((t (:foreground "LightYellow1")))) - '(gnus-emphasis-bold ((t (:bold t :weight bold)))) - '(gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold)))) + '(gnus-emphasis-bold ((t (:weight bold)))) + '(gnus-emphasis-bold-italic ((t (:slant italic :weight bold)))) '(gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow")))) - '(gnus-emphasis-italic ((t (:italic t :slant italic)))) + '(gnus-emphasis-italic ((t (:slant italic)))) '(gnus-emphasis-strikethru ((t (:strike-through t)))) '(gnus-emphasis-underline ((t (:underline t)))) - '(gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold)))) - '(gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold)))) - '(gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic)))) + '(gnus-emphasis-underline-bold ((t (:underline t :weight bold)))) + '(gnus-emphasis-underline-bold-italic ((t (:underline t :slant italic :weight bold)))) + '(gnus-emphasis-underline-italic ((t (:underline t :slant italic)))) - '(gnus-header-content ((t (:italic t :foreground "DarkKhaki" :slant italic)))) - '(gnus-header-content-face ((t (:italic t :foreground "DarkKhaki" :slant italic)))) + '(gnus-header-content ((t (:foreground "DarkKhaki" :slant italic)))) + '(gnus-header-content-face ((t (:foreground "DarkKhaki" :slant italic)))) '(gnus-header-from ((t (:foreground "PaleGreen1")))) '(gnus-header-from-face ((t (:foreground "PaleGreen1")))) - '(gnus-header-name ((t (:bold t :foreground "BlanchedAlmond" :weight bold)))) - '(gnus-header-name-face ((t (:bold t :foreground "BlanchedAlmond" :weight bold)))) - '(gnus-header-newsgroups ((t (:italic t :foreground "yellow" :slant italic)))) - '(gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic)))) + '(gnus-header-name ((t (:foreground "BlanchedAlmond" :weight bold)))) + '(gnus-header-name-face ((t (:foreground "BlanchedAlmond" :weight bold)))) + '(gnus-header-newsgroups ((t (:foreground "yellow" :slant italic)))) + '(gnus-header-newsgroups-face ((t (:foreground "yellow" :slant italic)))) '(gnus-header-subject ((t (:foreground "coral1")))) '(gnus-header-subject-face ((t (:foreground "coral1")))) - '(gnus-signature ((t (:italic t :slant italic)))) - '(gnus-signature-face ((t (:italic t :slant italic)))) + '(gnus-signature ((t (:slant italic)))) + '(gnus-signature-face ((t (:slant italic)))) '(gnus-splash ((t (:foreground "#cccccc")))) '(gnus-summary-cancelled ((t (:background "black" :foreground "yellow")))) '(gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow")))) - '(gnus-summary-high-ancient ((t (:bold t :foreground "CornflowerBlue" :weight bold)))) - '(gnus-summary-high-ancient-face ((t (:bold t :foreground "CornflowerBlue" :weight bold)))) + '(gnus-summary-high-ancient ((t (:foreground "CornflowerBlue" :weight bold)))) + '(gnus-summary-high-ancient-face ((t (:foreground "CornflowerBlue" :weight bold)))) '(gnus-summary-normal-ancient ((t (:foreground "SkyBlue")))) '(gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue")))) - '(gnus-summary-low-ancient ((t (:italic t :foreground "LightSteelBlue" :slant italic)))) - '(gnus-summary-low-ancien-facet ((t (:italic t :foreground "LightSteelBlue" :slant italic)))) + '(gnus-summary-low-ancient ((t (:foreground "LightSteelBlue" :slant italic)))) + '(gnus-summary-low-ancien-facet ((t (:foreground "LightSteelBlue" :slant italic)))) - '(gnus-summary-high-read ((t (:bold t :foreground "grey60" :weight bold)))) - '(gnus-summary-high-read-face ((t (:bold t :foreground "grey60" :weight bold)))) + '(gnus-summary-high-read ((t (:foreground "grey60" :weight bold)))) + '(gnus-summary-high-read-face ((t (:foreground "grey60" :weight bold)))) '(gnus-summary-normal-read ((t (:foreground "grey50")))) '(gnus-summary-normal-read-face ((t (:foreground "grey50")))) - '(gnus-summary-low-read ((t (:italic t :foreground "LightSlateGray" :slant italic)))) - '(gnus-summary-low-read-face ((t (:italic t :foreground "LightSlateGray" :slant italic)))) + '(gnus-summary-low-read ((t (:foreground "LightSlateGray" :slant italic)))) + '(gnus-summary-low-read-face ((t (:foreground "LightSlateGray" :slant italic)))) - '(gnus-summary-high-ticked ((t (:bold t :foreground "RosyBrown" :weight bold)))) - '(gnus-summary-high-ticked-face ((t (:bold t :foreground "RosyBrown" :weight bold)))) + '(gnus-summary-high-ticked ((t (:foreground "RosyBrown" :weight bold)))) + '(gnus-summary-high-ticked-face ((t (:foreground "RosyBrown" :weight bold)))) '(gnus-summary-normal-ticked ((t (:foreground "LightSalmon")))) '(gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon")))) - '(gnus-summary-low-ticked ((t (:italic t :foreground "pink" :slant italic)))) - '(gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic)))) + '(gnus-summary-low-ticked ((t (:foreground "pink" :slant italic)))) + '(gnus-summary-low-ticked-face ((t (:foreground "pink" :slant italic)))) - '(gnus-summary-high-undownloaded ((t (:bold t :foreground "ivory3" :weight bold)))) + '(gnus-summary-high-undownloaded ((t (:foreground "ivory3" :weight bold)))) '(gnus-summary-normal-undownloaded ((t (:foreground "LightGray" :weight normal)))) - '(gnus-summary-low-undownloaded ((t (:italic t :foreground "grey75" :slant italic :weight normal)))) + '(gnus-summary-low-undownloaded ((t (:foreground "grey75" :slant italic :weight normal)))) - '(gnus-summary-high-unread ((t (:bold t :foreground "PaleGreen" :weight bold)))) - '(gnus-summary-high-unread-face ((t (:bold t :foreground "PaleGreen" :weight bold)))) + '(gnus-summary-high-unread ((t (:foreground "PaleGreen" :weight bold)))) + '(gnus-summary-high-unread-face ((t (:foreground "PaleGreen" :weight bold)))) '(gnus-summary-normal-unread ((t (:foreground "YellowGreen")))) '(gnus-summary-normal-unread-face ((t (:foreground "YellowGreen")))) - '(gnus-summary-low-unread ((t (:italic t :foreground "MediumSeaGreen" :slant italic)))) - '(gnus-summary-low-unread-face ((t (:italic t :foreground "MediumSeaGreen" :slant italic)))) - '(gnus-summary-root-face ((t (:bold t :foreground "Red" :weight bold)))) + '(gnus-summary-low-unread ((t (:foreground "MediumSeaGreen" :slant italic)))) + '(gnus-summary-low-unread-face ((t (:foreground "MediumSeaGreen" :slant italic)))) + '(gnus-summary-root-face ((t (:foreground "Red" :weight bold)))) '(gnus-summary-selected ((t (:underline t :foreground "LemonChiffon")))) '(gnus-summary-selected-face ((t (:underline t :foreground "LemonChiffon")))) - '(gnus-user-agent-bad-face ((t (:bold t :background "black" :foreground "red" :weight bold)))) + '(gnus-user-agent-bad-face ((t (:background "black" :foreground "red" :weight bold)))) '(gnus-user-agent-good-face ((t (:background "black" :foreground "green")))) - '(gnus-user-agent-unknown-face ((t (:bold t :background "black" :foreground "orange" :weight bold)))) + '(gnus-user-agent-unknown-face ((t (:background "black" :foreground "orange" :weight bold)))) '(gnus-x-face ((t (:background "white" :foreground "black")))) '(gnus-group-mail-1 ((t (:bold t :foreground "#3BFF00" :weight normal)))) @@ -188,23 +188,23 @@ jarring angry fruit salad look to reduce eye fatigue." '(gnus-group-mail-3-empty ((t (:foreground "#4D9900")))) '(gnus-group-mail-3-empty-face ((t (:foreground "#4D9900")))) - '(gnus-group-mail-low ((t (:bold t :foreground "aquamarine2" :weight bold)))) - '(gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine2" :weight bold)))) + '(gnus-group-mail-low ((t (:foreground "aquamarine2" :weight bold)))) + '(gnus-group-mail-low-face ((t (:foreground "aquamarine2" :weight bold)))) '(gnus-group-mail-low-empty ((t (:foreground "aquamarine2")))) '(gnus-group-mail-low-empty-face ((t (:foreground "aquamarine2")))) - '(gnus-group-news-1 ((t (:bold t :foreground "#8480FF" :weight bold)))) - '(gnus-group-news-1-face ((t (:bold t :foreground "#8480FF" :weight bold)))) - '(gnus-group-news-2 ((t (:bold t :foreground "#8088FF" :weight bold)))) - '(gnus-group-news-2-face ((t (:bold t :foreground "#8088FF" :weight bold)))) - '(gnus-group-news-3 ((t (:bold t :foreground "#8095FF" :weight bold)))) - '(gnus-group-news-3-face ((t (:bold t :foreground "#8095FF" :weight bold)))) - '(gnus-group-news-4 ((t (:bold t :foreground "#80A1FF" :weight bold)))) - '(gnus-group-news-4-face ((t (:bold t :foreground "#80A1FF" :weight bold)))) - '(gnus-group-news-5 ((t (:bold t :foreground "#80AEFF" :weight bold)))) - '(gnus-group-news-5-face ((t (:bold t :foreground "#80AEFF" :weight bold)))) - '(gnus-group-news-6 ((t (:bold t :foreground "#80BBFF" :weight bold)))) - '(gnus-group-news-6-face ((t (:bold t :foreground "#80BBFF" :weight bold)))) + '(gnus-group-news-1 ((t (:foreground "#8480FF" :weight bold)))) + '(gnus-group-news-1-face ((t (:foreground "#8480FF" :weight bold)))) + '(gnus-group-news-2 ((t (:foreground "#8088FF" :weight bold)))) + '(gnus-group-news-2-face ((t (:foreground "#8088FF" :weight bold)))) + '(gnus-group-news-3 ((t (:foreground "#8095FF" :weight bold)))) + '(gnus-group-news-3-face ((t (:foreground "#8095FF" :weight bold)))) + '(gnus-group-news-4 ((t (:foreground "#80A1FF" :weight bold)))) + '(gnus-group-news-4-face ((t (:foreground "#80A1FF" :weight bold)))) + '(gnus-group-news-5 ((t (:foreground "#80AEFF" :weight bold)))) + '(gnus-group-news-5-face ((t (:foreground "#80AEFF" :weight bold)))) + '(gnus-group-news-6 ((t (:foreground "#80BBFF" :weight bold)))) + '(gnus-group-news-6-face ((t (:foreground "#80BBFF" :weight bold)))) '(gnus-group-news-1-empty ((t (:foreground "#524DFF")))) '(gnus-group-news-1-empty-face ((t (:foreground "#524DFF")))) @@ -219,8 +219,8 @@ jarring angry fruit salad look to reduce eye fatigue." '(gnus-group-news-6-empty ((t (:foreground "#4DA0FF")))) '(gnus-group-news-6-empty-face ((t (:foreground "#4DA0FF")))) - '(gnus-group-news-low ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) - '(gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) + '(gnus-group-news-low ((t (:foreground "DarkTurquoise" :weight bold)))) + '(gnus-group-news-low-face ((t (:foreground "DarkTurquoise" :weight bold)))) '(gnus-group-news-low-empty ((t (:foreground "DarkTurquoise")))) '(gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise")))) @@ -229,25 +229,25 @@ jarring angry fruit salad look to reduce eye fatigue." ;;message faces '(message-cited-text ((t (:foreground "red3")))) - '(message-header-cc ((t (:bold t :foreground "chartreuse1" :weight bold)))) - '(message-header-cc-face ((t (:bold t :foreground "chartreuse1" :weight bold)))) + '(message-header-cc ((t (:foreground "chartreuse1" :weight bold)))) + '(message-header-cc-face ((t (:foreground "chartreuse1" :weight bold)))) '(message-header-name ((t (:foreground "green")))) '(message-header-name-face ((t (:foreground "green")))) - '(message-header-newsgroups ((t (:italic t :bold t :foreground "papaya whip" :slant italic :weight bold)))) - '(message-header-newsgroups-face ((t (:italic t :bold t :foreground "papaya whip" :slant italic :weight bold)))) + '(message-header-newsgroups ((t (:foreground "papaya whip" :slant italic :weight bold)))) + '(message-header-newsgroups-face ((t (:foreground "papaya whip" :slant italic :weight bold)))) '(message-header-other ((t (:foreground "ivory")))) '(message-header-other-face ((t (:foreground "ivory")))) '(message-header-subject ((t (:foreground "OliveDrab1")))) '(message-header-subject-face ((t (:foreground "OliveDrab1")))) - '(message-header-to ((t (:bold t :foreground "floral white" :weight bold)))) - '(message-header-to-face ((t (:bold t :foreground "floral white" :weight bold)))) + '(message-header-to ((t (:foreground "floral white" :weight bold)))) + '(message-header-to-face ((t (:foreground "floral white" :weight bold)))) '(message-header-xheader ((t (:foreground "DeepSkyBlue1")))) '(message-header-xheader-face ((t (:foreground "DeepSkyBlue1")))) '(message-mml ((t (:foreground "MediumSpringGreen")))) '(message-mml-face ((t (:foreground "MediumSpringGreen")))) '(message-separator ((t (:foreground "LightSkyBlue1")))) '(message-separator-face ((t (:foreground "LightSkyBlue1")))) - '(message-url ((t (:bold t :foreground "blue" :weight bold)))) + '(message-url ((t (:foreground "blue" :weight bold)))) '(bg:erc-color-face0 ((t (:background "saddle brown")))) '(bg:erc-color-face1 ((t (:background "black")))) @@ -265,12 +265,12 @@ jarring angry fruit salad look to reduce eye fatigue." '(bg:erc-color-face7 ((t (:background "orange")))) '(bg:erc-color-face8 ((t (:background "yellow4")))) '(bg:erc-color-face9 ((t (:background "green")))) - '(erc-action-face ((t (:bold t :weight bold :foreground "turquoise1")))) - '(erc-bold-face ((t (:bold t :weight bold)))) - '(erc-button ((t (:bold t :weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button))))) - '(erc-button-face ((t (:bold t :weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button))))) - '(erc-command-indicator-face ((t (:bold t :weight bold)))) - '(erc-current-nick-face ((t (:bold t :foreground "DarkTurquoise" :weight bold)))) + '(erc-action-face ((t (:weight bold :foreground "turquoise1")))) + '(erc-bold-face ((t (:weight bold)))) + '(erc-button ((t (:weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button))))) + '(erc-button-face ((t (:weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button))))) + '(erc-command-indicator-face ((t (:weight bold)))) + '(erc-current-nick-face ((t (:foreground "DarkTurquoise" :weight bold)))) '(erc-dangerous-host-face ((t (:foreground "red")))) '(erc-direct-msg-face ((t (:foreground "sandybrown")))) '(erc-error-face ((t (:foreground "red")))) @@ -278,15 +278,15 @@ jarring angry fruit salad look to reduce eye fatigue." '(erc-header-line ((t (:background "grey95" :foreground "ConFlowerBlue")))) '(erc-input-face ((t (:foreground "brown")))) '(erc-inverse-face ((t (:background "Black" :foreground "White")))) - '(erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold)))) - '(erc-my-nick-face ((t (:bold t :foreground "brown" :weight bold)))) - '(erc-nick-default-face ((t (:bold t :weight bold :foreground "DodgerBlue1")))) - '(erc-button-nickname-face ((t (:bold t :weight bold :background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button) )))) - '(erc-nick-msg-face ((t (:bold t :foreground "IndianRed" :weight bold)))) - '(erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold)))) - '(erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold)))) - '(erc-prompt-face ((t (:bold t :background "Navy" :foreground "lightBlue2" :weight bold)))) - '(erc-timestamp-face ((t (:bold t :foreground "SeaGreen1" :weight bold)))) + '(erc-keyword-face ((t (:foreground "pale green" :weight bold)))) + '(erc-my-nick-face ((t (:foreground "brown" :weight bold)))) + '(erc-nick-default-face ((t (:weight bold :foreground "DodgerBlue1")))) + '(erc-button-nickname-face ((t (:weight bold :background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button) )))) + '(erc-nick-msg-face ((t (:foreground "IndianRed" :weight bold)))) + '(erc-notice-face ((t (:foreground "SlateBlue" :weight bold)))) + '(erc-pal-face ((t (:foreground "Magenta" :weight bold)))) + '(erc-prompt-face ((t (:background "Navy" :foreground "lightBlue2" :weight bold)))) + '(erc-timestamp-face ((t (:foreground "SeaGreen1" :weight bold)))) '(erc-underline-face ((t (:underline t)))) '(fg:erc-color-face0 ((t (:foreground "BlanchedAlmond")))) '(fg:erc-color-face1 ((t (:foreground "beige")))) @@ -306,15 +306,15 @@ jarring angry fruit salad look to reduce eye fatigue." '(fg:erc-color-face9 ((t (:foreground "green")))) '(org-agenda-date ((t (:foreground "LightSkyBlue")))) - '(org-agenda-date-weekend ((t (:bold t :foreground "LightSkyBlue" :weight bold)))) + '(org-agenda-date-weekend ((t (:foreground "LightSkyBlue" :weight bold)))) '(org-agenda-restriction-lock ((t (:background "skyblue4")))) '(org-agenda-structure ((t (:foreground "LightSkyBlue")))) '(org-archived ((t (:foreground "grey70")))) '(org-code ((t (:foreground "grey70")))) '(org-column ((t (:background "grey30" :slant normal :weight normal :height 81)))) - '(org-column-title ((t (:bold t :background "grey30" :underline t :weight bold)))) + '(org-column-title ((t (:background "grey30" :underline t :weight bold)))) '(org-date ((t (:foreground "Cyan" :underline t)))) - '(org-done ((t (:bold t :foreground "PaleGreen" :weight bold)))) + '(org-done ((t (:foreground "PaleGreen" :weight bold)))) '(org-drawer ((t (:foreground "LightSkyBlue")))) '(org-ellipsis ((t (:foreground "LightGoldenrod" :underline t)))) '(org-formula ((t (:foreground "chocolate1")))) @@ -336,13 +336,13 @@ jarring angry fruit salad look to reduce eye fatigue." '(org-sexp-date ((t (:foreground "Cyan")))) '(org-special-keyword ((t (:foreground "LightSalmon")))) '(org-table ((t (:foreground "LightSkyBlue")))) - '(org-tag ((t (:bold t :weight bold)))) + '(org-tag ((t (:weight bold)))) '(org-target ((t (:underline t)))) '(org-time-grid ((t (:foreground "LightGoldenrod")))) - '(org-todo ((t (:bold t :foreground "Pink" :weight bold)))) + '(org-todo ((t (:foreground "Pink" :weight bold)))) '(org-upcoming-deadline ((t (:foreground "chocolate1")))) '(org-verbatim ((t (:foreground "grey70" :underline t)))) - '(org-warning ((t (:bold t :weight bold :foreground "Pink")))) + '(org-warning ((t (:weight bold :foreground "Pink")))) '(outline-1 ((t (:foreground "LightSkyBlue")))) '(outline-2 ((t (:foreground "LightGoldenrod")))) '(outline-3 ((t (:foreground "Cyan1")))) @@ -356,10 +356,10 @@ jarring angry fruit salad look to reduce eye fatigue." '(CUA-global-mark-face ((t (:background "cyan" :foreground "black")))) '(CUA-rectangle-face ((t (:background "maroon" :foreground "white")))) '(CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white")))) - '(Info-title-1-face ((t (:bold t :weight bold :height 1.728)))) - '(Info-title-2-face ((t (:bold t :weight bold :height 1.44)))) - '(Info-title-3-face ((t (:bold t :weight bold :height 1.2)))) - '(Info-title-4-face ((t (:bold t :weight bold)))) + '(Info-title-1-face ((t (:weight bold :height 1.728)))) + '(Info-title-2-face ((t (:weight bold :height 1.44)))) + '(Info-title-3-face ((t (:weight bold :height 1.2)))) + '(Info-title-4-face ((t (:weight bold)))) '(align-highlight-nochange-face ((t (:background "SkyBlue4")))) '(antlr-font-lock-keyword-face ((t (:foreground "SteelBlue")))) ;% @@ -369,70 +369,70 @@ jarring angry fruit salad look to reduce eye fatigue." '(antlr-font-lock-tokendef-face ((t (:foreground "khaki")))) '(antlr-font-lock-tokenref-face ((t (:foreground "LightSteelBlue4")))) - '(bbdb-company ((t (:italic t :slant italic :foreground "indian red")))) - '(bbdb-field-name ((t (:bold t :weight bold :foreground "steel blue")))) + '(bbdb-company ((t (:slant italic :foreground "indian red")))) + '(bbdb-field-name ((t (:weight bold :foreground "steel blue")))) '(bbdb-field-value ((t (:foreground "AntiqueWhite2")))) '(bbdb-name ((t (:underline t :foreground "cadet blue")))) - '(bold ((t (:bold t :weight bold)))) - '(bold-italic ((t (:bold t :italic t :slant italic :weight bold)))) + '(bold ((t (:weight bold)))) + '(bold-italic ((t (:slant italic :weight bold)))) '(border ((t (:background "gold" :foreground "black" )))) - '(buffer-menu-buffer ((t (:bold t :weight bold)))) - '(button ((t (:underline t :box (:line-width 2 :color "grey" - :style released-button) - :foreground "black" :background "grey" - :weight bold )))) + '(buffer-menu-buffer ((t (:weight bold)))) + '(button ((t ( :underline t :box ( :line-width 2 :color "grey" + :style released-button) + :foreground "black" :background "grey" + :weight bold )))) '(calendar-today-face ((t (:underline t :bold t :foreground "cornsilk")))) '(change-log-acknowledgment ((t (:italic t :slant oblique :foreground "AntiqueWhite3")))) '(change-log-conditionals-face ((t (:foreground "Aquamarine")))) '(change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood")))) '(change-log-email-face ((t (:foreground "Aquamarine")))) - '(change-log-file-face ((t (:bold t :weight bold :foreground "LightSkyBlue" :height 0.9)))) + '(change-log-file-face ((t (:weight bold :foreground "LightSkyBlue" :height 0.9)))) '(change-log-function-face ((t (:foreground "Aquamarine")))) '(change-log-list-face ((t (:foreground "LightSkyBlue")))) - '(change-log-name-face ((t (:bold t :weight bold :foreground "Gold")))) + '(change-log-name-face ((t (:weight bold :foreground "Gold")))) - '(comint-highlight-input ((t (:bold t :weight bold)))) + '(comint-highlight-input ((t (:weight bold)))) '(comint-highlight-prompt ((t (:foreground "cyan1")))) '(compilation-column-number ((t (:foreground "PaleGreen")))) - '(compilation-error ((t (:bold t :weight bold :foreground "Brown1")))) - '(compilation-info ((t (:bold t :foreground "LightPink1" :weight bold)))) + '(compilation-error ((t (:weight bold :foreground "Brown1")))) + '(compilation-info ((t (:foreground "LightPink1" :weight bold)))) '(compilation-line-number ((t (:foreground "LightGoldenrod")))) '(compilation-message-face ((t (:underline t)))) - '(compilation-warning ((t (:bold t :foreground "Orange" :weight bold)))) - '(compilation-warning-face ((t (:bold t :foreground "Orange" :weight bold)))) - '(completions-common-part ((t (:width normal :weight normal - :slant normal :foreground "WhiteSmoke" - :background "black" :height 0.9)))) - '(completions-first-difference ((t (:bold t :weight bold)))) + '(compilation-warning ((t (:foreground "Orange" :weight bold)))) + '(compilation-warning-face ((t (:foreground "Orange" :weight bold)))) + '(completions-common-part ((t ( :width normal :weight normal + :slant normal :foreground "WhiteSmoke" + :background "black" :height 0.9)))) + '(completions-first-difference ((t (:weight bold)))) '(css-selector ((t (:foreground "LightSteelBlue")))) '(css-property ((t (:foreground "light sea green")))) '(cursor ((t (:background "orchid")))) - '(custom-button-face ((t (:background "lightgrey" :foreground "black" - :box (:line-width 2 :style released-button))))) - '(custom-button-pressed-face ((t (:background "lightgrey" - :foreground "black" - :box (:line-width 2 :style pressed-button))))) + '(custom-button-face ((t ( :background "lightgrey" :foreground "black" + :box (:line-width 2 :style released-button))))) + '(custom-button-pressed-face ((t ( :background "lightgrey" + :foreground "black" + :box (:line-width 2 :style pressed-button))))) '(custom-changed-face ((t (:foreground "wheat" :background "blue")))) '(custom-comment-face ((t (:background "dim gray")))) '(custom-comment-tag-face ((t (:foreground "gray80")))) - '(custom-face-tag-face ((t (:bold t :weight bold :height 1.1)))) - '(custom-group-tag-face ((t (:bold t :foreground "light blue" :weight bold :height 1.1)))) - '(custom-group-tag-face-1 ((t (:bold t :foreground "pink" :weight bold :height 1.1)))) + '(custom-face-tag-face ((t (:weight bold :height 1.1)))) + '(custom-group-tag-face ((t (:foreground "light blue" :weight bold :height 1.1)))) + '(custom-group-tag-face-1 ((t (:foreground "pink" :weight bold :height 1.1)))) '(custom-invalid-face ((t (:background "red" :foreground "yellow")))) '(custom-modified-face ((t (:background "blue" :foreground "white")))) '(custom-rogue-face ((t (:background "black" :foreground "pink")))) '(custom-saved-face ((t (:underline t)))) '(custom-set-face ((t (:background "white" :foreground "blue")))) '(custom-state-face ((t (:foreground "lime green")))) - '(custom-variable-button-face ((t (:bold t :underline t :weight bold - :background "lightgrey" - :foreground "black" - :box (:line-width 2 :style released-button))))) - '(custom-variable-tag-face ((t (:bold t :foreground "light blue" - :weight bold :height 1.2)))) + '(custom-variable-button-face ((t ( :underline t :weight bold + :background "lightgrey" + :foreground "black" + :box (:line-width 2 :style released-button))))) + '(custom-variable-tag-face ((t ( :foreground "light blue" + :weight bold :height 1.2)))) '(diary ((t (:foreground "IndianRed")))) '(diary-anniversary ((t (:foreground "Cyan1")))) @@ -443,15 +443,15 @@ jarring angry fruit salad look to reduce eye fatigue." '(diff-added-face ((t (:foreground "Green")))) '(diff-changed-face ((t (:foreground "Khaki")))) '(diff-context-face ((t (:foreground "grey70")))) - '(diff-file-header ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold)))) - '(diff-file-header-face ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold)))) + '(diff-file-header ((t (:background "grey20" :foreground "ivory1" :weight bold)))) + '(diff-file-header-face ((t (:background "grey20" :foreground "ivory1" :weight bold)))) '(diff-function-face ((t (:foreground "SpringGreen1")))) '(diff-header-face ((t (:background "SlateBlue4")))) '(diff-hunk-header ((t (:slant italic :background "DodgerBlue4")))) '(diff-hunk-header-face ((t (:slant italic :background "DodgerBlue4")))) - '(diff-index-face ((t (:bold t :weight bold :background "SteelBlue4" :foreground "linen" )))) - '(diff-nonexistent ((t (:bold t :weight bold :background "Black" :foreground "Wheat1")))) - '(diff-nonexistent-face ((t (:bold t :weight bold :background "Black" :foreground "Wheat1")))) + '(diff-index-face ((t (:weight bold :background "SteelBlue4" :foreground "linen" )))) + '(diff-nonexistent ((t (:weight bold :background "Black" :foreground "Wheat1")))) + '(diff-nonexistent-face ((t (:weight bold :background "Black" :foreground "Wheat1")))) '(diff-removed ((t (:foreground "salmon1")))) '(diff-removed-face ((t (:foreground "salmon1")))) '(diff-refine-change-face ((t (:background "MidnightBlue")))) @@ -475,15 +475,15 @@ jarring angry fruit salad look to reduce eye fatigue." '(ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey")))) '(eieio-custom-slot-tag-face ((t (:foreground "light blue")))) - '(eldoc-highlight-function-argument ((t (:bold t :weight bold)))) - '(epa-field-body ((t (:italic t :foreground "turquoise" :slant italic)))) - '(epa-field-name ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - '(epa-mark ((t (:bold t :foreground "orange" :weight bold)))) + '(eldoc-highlight-function-argument ((t (:weight bold)))) + '(epa-field-body ((t (:foreground "turquoise" :slant italic)))) + '(epa-field-name ((t (:foreground "PaleTurquoise" :weight bold)))) + '(epa-mark ((t (:foreground "orange" :weight bold)))) '(epa-string ((t (:foreground "lightyellow")))) - '(epa-validity-disabled ((t (:italic t :slant italic)))) - '(epa-validity-high ((t (:bold t :foreground "PaleTurquoise" :weight bold)))) - '(epa-validity-low ((t (:italic t :slant italic)))) - '(epa-validity-medium ((t (:italic t :foreground "PaleTurquoise" :slant italic)))) + '(epa-validity-disabled ((t (:slant italic)))) + '(epa-validity-high ((t (:foreground "PaleTurquoise" :weight bold)))) + '(epa-validity-low ((t (:slant italic)))) + '(epa-validity-medium ((t (:foreground "PaleTurquoise" :slant italic)))) '(escape-glyph ((t (:foreground "cyan")))) '(homoglyph ((t (:foreground "cyan")))) @@ -513,7 +513,7 @@ jarring angry fruit salad look to reduce eye fatigue." '(fringe ((t (:background "grey30" :foreground "Wheat")))) '(header-line ((t (:box (:line-width -1 :color "grey20" :style released-button) :background "grey20" :foreground "grey90" :height 0.9)))) - '(help-argument-name ((t (:italic t :slant italic)))) + '(help-argument-name ((t (:slant italic)))) '(highlight ((t (:background "gray10" :foreground "Old Lace")))) '(hl-line ((t (:background "grey10" :foreground "Old Lace")))) '(gnus-mouse-face ((t (:background "darkseagreen2" :foreground "blue")))) @@ -534,21 +534,21 @@ jarring angry fruit salad look to reduce eye fatigue." '(ibuffer-dired-buffer-face ((t (:foreground "mediumspringgreen" :weight bold :height 1.1)))) '(ibuffer-help-buffer-face ((t (:italic t :slant oblique :foreground "chocolate1")))) - '(ibuffer-hidden-buffer-face ((t (:bold t :foreground "Pink" :weight bold)))) - '(ibuffer-occur-match-face ((t (:bold t :foreground "Pink" :weight bold)))) + '(ibuffer-hidden-buffer-face ((t (:foreground "Pink" :weight bold)))) + '(ibuffer-occur-match-face ((t (:foreground "Pink" :weight bold)))) '(ibuffer-read-only-buffer-face ((t (:foreground "SteelBlue1")))) '(ibuffer-special-buffer-face ((t (:foreground "SteelBlue1")))) - '(ido-first-match ((t (:bold t :weight bold)))) - '(ido-incomplete-regexp ((t (:bold t :weight bold :foreground "Pink")))) + '(ido-first-match ((t (:weight bold)))) + '(ido-incomplete-regexp ((t (:weight bold :foreground "Pink")))) '(ido-indicator ((t (:background "red1" :foreground "yellow1" :width condensed)))) '(ido-only-match ((t (:foreground "ForestGreen")))) '(ido-subdir ((t (:foreground "red1")))) - '(info-menu-header ((t (:bold t :weight bold)))) + '(info-menu-header ((t (:weight bold)))) '(info-node ((t (:bold t :italic t :foreground "yellow")))) - '(info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold)))) + '(info-node ((t (:foreground "white" :slant italic :weight bold)))) '(info-xref ((t (:bold t :foreground "DodgerBlue1")))) - '(info-xref ((t (:bold t :foreground "cyan" :weight bold)))) + '(info-xref ((t (:foreground "cyan" :weight bold)))) '(isearch ((t (:background "palevioletred2" :foreground "brown4")))) '(isearch-fail ((t (:background "red4")))) '(isearch-lazy-highlight-face ((t (:background "paleturquoise4")))) @@ -585,18 +585,18 @@ jarring angry fruit salad look to reduce eye fatigue." '(man-xref ((t (:underline t)))) '(match ((t (:background "RoyalBlue3")))) '(minibuffer-prompt ((t (:foreground "cyan")))) - '(mode-line ((t (:background "grey75" :foreground "Blue" - :box (:line-width -1 :style released-button) - :height 0.9)))) - '(mode-line-buffer-id ((t (:background "grey65" :foreground "red" - :bold t :weight bold :height 0.9)))) - '(mode-line-emphasis ((t (:bold t :weight bold)))) + '(mode-line ((t ( :background "grey75" :foreground "Blue" + :box (:line-width -1 :style released-button) + :height 0.9)))) + '(mode-line-buffer-id ((t ( :background "grey65" :foreground "red" + :weight bold :height 0.9)))) + '(mode-line-emphasis ((t (:weight bold)))) '(mode-line-highlight ((t (:box (:line-width 2 :color "grey40" :style released-button) :height 0.9)))) - '(mode-line-inactive ((t (:background "grey30" :foreground "grey80" - :box (:line-width -1 :color "grey40") - :weight light :height 0.9)))) + '(mode-line-inactive ((t ( :background "grey30" :foreground "grey80" + :box (:line-width -1 :color "grey40") + :weight light :height 0.9)))) '(mouse ((t (:background "OrangeRed")))) '(next-error ((t (:background "blue3")))) @@ -678,16 +678,16 @@ jarring angry fruit salad look to reduce eye fatigue." '(viper-minibuffer-vi-face ((t (:foreground "DarkGreen" :background "grey")))) '(viper-replace-overlay-face ((t (:foreground "Black" :background "darkseagreen2")))) '(viper-search-face ((t (:foreground "Black" :background "khaki")))) - '(vm-highlight-url-face ((t (:bold t :italic t :slant italic :weight bold)))) - '(vm-highlighted-header-face ((t (:bold t :weight bold)))) + '(vm-highlight-url-face ((t (:slant italic :weight bold)))) + '(vm-highlighted-header-face ((t (:weight bold)))) '(vm-mime-button-face ((t (:background "grey75" :foreground "black" :box (:line-width 2 :style released-button))))) - '(vm-summary-highlight-face ((t (:bold t :weight bold)))) + '(vm-summary-highlight-face ((t (:weight bold)))) '(vm-xface ((t (:background "white" :foreground "black")))) '(which-func ((t (:foreground "Blue1")))) '(widget ((t (:height 1.2 :background "Gray80" :foreground "black")))) - '(widget-button ((t (:bold t :weight bold :box (:line-width 2 :style released-button))))) - '(widget-button-face ((t (:bold t :weight bold :box (:line-width 2 :style released-button))))) + '(widget-button ((t (:weight bold :box (:line-width 2 :style released-button))))) + '(widget-button-face ((t (:weight bold :box (:line-width 2 :style released-button))))) '(widget-button-pressed ((t (:foreground "red1" :background "lightgrey" :box (:line-width 2 :style pressed-button))))) '(widget-button-pressed-face ((t (:foreground "red1" :background "lightgrey" :box (:line-width 2 :style pressed-button))))) '(widget-documentation ((t (:foreground "lime green")))) commit d54e7f13926f88bd012ab999e2bf048f45187f86 Author: Eli Zaretskii Date: Sat Oct 5 15:07:24 2024 +0300 ; Fix warnings in register.el * lisp/register.el (dired-current-directory): Declare. (file-to-register): Doc fix. diff --git a/lisp/register.el b/lisp/register.el index ed7b4402a3f..1b4281ae4ec 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -36,6 +36,7 @@ ;; FIXME: Clean up namespace usage! (declare-function frameset-register-p "frameset") +(declare-function dired-current-directory "dired") (cl-defstruct (registerv (:constructor nil) @@ -705,7 +706,8 @@ To visit the file, use \\[jump-to-register]. Interactively, prompt for REGISTER using `register-read-with-preview'. With a prefix-argument, prompt for FILE-NAME using `read-file-name', -With no prefix-argument, use the currently visited file or directory for FILE-NAME." +With no prefix-argument, use the currently visited file or directory +for FILE-NAME." (interactive (list (if (eq current-prefix-arg nil) (if (eq major-mode 'dired-mode) (dired-current-directory) commit 7949452350ca69a7d3e56c1e16fa35f81d8fdf50 Merge: b2ebba1d3cd b68b9f291cc Author: Eli Zaretskii Date: Sat Oct 5 07:41:22 2024 -0400 Merge from origin/emacs-30 b68b9f291cc ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)... 688201ef18d ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D... ba44fc9a447 Restore comment/string check for 'electric-layout-mode' 5a462948e13 Update Arni Magnusson's email address 6b1271b169a Fix python-ts-mode-map docstring aaaafddc945 Normalize "Commentary" section in eudc.el d656be9794d Expand email abbrevs in X-Debbugs-Cc header. e9dcf0c57dd Fix 'list-tags' when invoked from a non-file buffer 51ef05f684c count-windows: Fix reference to walk-windows 5eaf0c784bf * lisp/info-look.el (mapc): Add use-package manual's index. 705a5a1a9e6 ; * ChangeLog.4: Fix attribution of one change. bf26ff0dc8d Update csharp-ts-mode font-lock (bug#73369) 4c866abab96 ; * doc/lispref/variables.texi (Creating Buffer-Local): F... d42d7d474fe ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst... f46f476bb8f ; * admin/MAINTAINERS: Take VC subsystem, add note about ... d68e6d2689d ; rcirc-update-activity-string: Justify some existing beh... e6a37869c8d Fix inconsistency in value of rcirc-activity-string 108b3179bd4 Revert "; Minor clarification in variables.texi" 44156c21407 ; Minor clarification in variables.texi 63058e1153a Tag interactive commands in 'lua-ts-mode' 84bea20eba2 ; * lisp/info-look.el: Add two more links. 96b87ad5363 Mention LSP acronym in eglot defgroup docstring 9c904e8ceae Change :group of 'eglot' defgroup to 'tools' fd1a1b07805 Remove out-of-date documentation from python.el 11e3e0cadd4 Fix executing commands in Eshell using "env" with no loca... c0ef8a9a1b3 Fix a typo in the calendar manual 36ff7138feb ; Fix a thinko in sieve-manage.el 7abecbcd633 ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) # Conflicts: # admin/MAINTAINERS commit b68b9f291cc52f6120858534ff450fa7f6381d0b Author: Eli Zaretskii Date: Sat Oct 5 14:38:48 2024 +0300 ; * lisp/progmodes/csharp-mode.el (treesit-query-compile): Declare. 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." commit 688201ef18df468dc8c7e8eb2ce6a96a9c625517 Author: Eli Zaretskii Date: Sat Oct 5 13:30:30 2024 +0300 ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): Doc fix (bug#73545). 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 commit ba44fc9a447be75eff304f606e0cc9ea7ba7656a Author: Morgan Willcock Date: Tue Sep 24 19:33:11 2024 +0100 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. 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)) commit b2ebba1d3cdcda9197ddce9ee14cd6184eca7131 Author: Eli Zaretskii Date: Sat Oct 5 13:07:25 2024 +0300 ; * etc/NEWS: Fix formatting. diff --git a/etc/NEWS b/etc/NEWS index 44c618b824d..d1bd469435f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -131,9 +131,11 @@ These allow users to interactively store file and buffers in registers. Killed buffers stored in a register using buffer-to-register are automatically converted to a file-query value if the buffer was visiting a file. + * Editing Changes in Emacs 31.1 -** Commands for keyboard translation + +** Commands for keyboard translation. `key-translate' is now interactive. It prompts for a key to translate from, and another to translate to, and sets `keyboard-translate-table'. The new command `key-translate-remove' prompts for a key/translation commit 048e72a403e22dc394b265c6ff290b8d40e806a5 Author: Barra Ó Catháin Date: Tue Sep 24 14:19:55 2024 +0100 Add file/buffer-to-register (Bug#73308) * doc/emacs/regs.texi (File and Buffer Registers): Update documentation to refer to 'file-to-register' and 'buffer-to-register'. * etc/NEWS: Announce the new commands. * lisp/bindings.el (ctl-x-r-map): Map new commands into the register keymap. * lisp/register.el (register-command-info): Register new commands. (jump-to-register): Remove docstring line referring to using set-register instead of new commands. (file-to-register): Add function for storing files in registers. (buffer-to-register): Add function for storing buffers in registers. (register-buffer-to-file-query): Add function for converting buffer registers to file-query registers on killing a buffer. diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi index 734d704a272..df3c22742b6 100644 --- a/doc/emacs/regs.texi +++ b/doc/emacs/regs.texi @@ -290,40 +290,39 @@ numeric argument stores zero in the register. @cindex saving file name in a register @cindex saving buffer name in a register - If you visit certain file names frequently, you can visit them more -conveniently if you put their names in registers. Here's the Lisp code -used to put a file @var{name} into register @var{r}: - -@smallexample -(set-register @var{r} '(file . @var{name})) -@end smallexample - -@need 3000 -@noindent -For example, - -@smallexample -(set-register ?z '(file . "/gd/gnu/emacs/19.0/src/ChangeLog")) -@end smallexample - -@noindent -puts the file name shown in register @samp{z}. - - To visit the file whose name is in register @var{r}, type @kbd{C-x r j -@var{r}}. (This is the same command used to jump to a position or -restore a frame configuration.) - - Similarly, if there are certain buffers you visit frequently, you -can put their names in registers. For instance, if you visit the -@samp{*Messages*} buffer often, you can use the following snippet to -put that buffer into the @samp{m} register: - -@smallexample -(set-register ?m '(buffer . "*Messages*")) -@end smallexample +@table @kbd +@item C-x r F @var{r} +Store the currently visited file or directory in register +@var{r} (@code{file-to-register}). +@item C-x r B @var{r} +Store the currently visited buffer in register +@var{r} (@code{buffer-to-register}). +@end table - To switch to the buffer whose name is in register @var{r}, type -@kbd{C-x r j @var{r}}. +If you visit certain files or buffers frequently, you can visit them +more conveniently if you put their names in registers. + +@kindex C-x r F +@findex file-to-register + Typing @kbd{C-x r F} (@code{file-to-register}), followed by a +character @kbd{@var{r}}, saves a reference to the currently visited file +in register @var{r}. You can then visit the file using +@code{jump-to-register} by typing @kbd{C-x r j} @var{r}. With a prefix +argument, @code{file-to-register} prompts for a file name to store in +the register. + +@kindex C-x r B +@findex buffer-to-register + Typing @kbd{C-x r B} (@code{buffer-to-register}), followed by a +character @kbd{@var{r}}, saves a reference to the currently visited buffer +in register @var{r}. You can then revisit the buffer using +@code{jump-to-register}. With a prefix argument, @code{buffer-to-register} +prompts for a buffer name to store in the register. + + If you store a buffer name which is visiting a file in a +register, and the buffer is then closed, the register is automatically +converted to a file reference, allowing you to quickly re-open the +closed file. @node Keyboard Macro Registers @section Keyboard Macro Registers diff --git a/etc/NEWS b/etc/NEWS index 24fd8ae0e8d..44c618b824d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -124,6 +124,13 @@ This hook allows you to control which tab-bar tabs are auto-resized. *** New command 'project-root-find-file'. It is equivalent to running ‘project-any-command’ with ‘find-file’. +** Registers + +*** New functions 'buffer-to-register' and 'file-to-register'. +These allow users to interactively store file and buffers in registers. +Killed buffers stored in a register using buffer-to-register are +automatically converted to a file-query value if the buffer was visiting +a file. * Editing Changes in Emacs 31.1 ** Commands for keyboard translation diff --git a/lisp/bindings.el b/lisp/bindings.el index 6b34c5750c1..06a488fa9fa 100644 --- a/lisp/bindings.el +++ b/lisp/bindings.el @@ -1574,7 +1574,9 @@ if `inhibit-field-text-motion' is non-nil." "n" #'number-to-register "+" #'increment-register "w" #'window-configuration-to-register - "f" #'frameset-to-register) + "f" #'frameset-to-register + "F" #'file-to-register + "B" #'buffer-to-register) (define-key ctl-x-map "r" ctl-x-r-map) (define-key esc-map "q" 'fill-paragraph) diff --git a/lisp/register.el b/lisp/register.el index 497848ded1e..ed7b4402a3f 100644 --- a/lisp/register.el +++ b/lisp/register.el @@ -300,6 +300,18 @@ If NOCONFIRM is non-nil, request confirmation of register name by RET." :act 'set :noconfirm (memq register-use-preview '(nil never)) :smatch t)) +(cl-defmethod register-command-info ((_command (eql file-to-register))) + (make-register-preview-info + :types '(all) + :msg "File to register `%s'" + :act 'set + :noconfirm (memq register-use-preview '(nil never)))) +(cl-defmethod register-command-info ((_command (eql buffer-to-register))) + (make-register-preview-info + :types '(all) + :msg "Buffer to register `%s'" + :act 'set + :noconfirm (memq register-use-preview '(nil never)))) (defun register-preview-forward-line (arg) "Move to next or previous line in register preview buffer. @@ -672,7 +684,6 @@ Interactively, prompt for REGISTER using `register-read-with-preview'." Push the mark if going to the location moves point, unless called in succession. If the register contains a file name, find that file. If the register contains a buffer name, switch to that buffer. -\(To put a file or buffer name in a register, you must use `set-register'.) If the register contains a window configuration (one frame) or a frameset \(all frames), restore the configuration of that frame or of all frames accordingly. @@ -688,6 +699,36 @@ Interactively, prompt for REGISTER using `register-read-with-preview'." (let ((val (get-register register))) (register-val-jump-to val delete))) +(defun file-to-register (file-name register) + "Insert FILE-NAME into REGISTER. +To visit the file, use \\[jump-to-register]. + +Interactively, prompt for REGISTER using `register-read-with-preview'. +With a prefix-argument, prompt for FILE-NAME using `read-file-name', +With no prefix-argument, use the currently visited file or directory for FILE-NAME." + (interactive (list (if (eq current-prefix-arg nil) + (if (eq major-mode 'dired-mode) + (dired-current-directory) + (buffer-file-name)) + (read-file-name "File: ")) + (register-read-with-preview "File to register: "))) + (unless (eq file-name nil) + (set-register register (cons 'file file-name)))) + +(defun buffer-to-register (buffer register) + "Insert BUFFER into REGISTER. +To visit the buffer, use \\[jump-to-register]. + +Interactively, prompt for REGISTER using `register-read-with-preview'. +With a prefix-argument, prompt for BUFFER-NAME using `read-buffer', +With no prefix-argument, use the current buffer for BUFFER." + (interactive (list (if (eq current-prefix-arg nil) + (current-buffer) + (read-buffer "Buffer: ")) + (register-read-with-preview "Buffer to register: "))) + (add-hook 'kill-buffer-hook 'register-buffer-to-file-query nil t) + (set-register register (cons 'buffer buffer))) + (cl-defgeneric register-val-jump-to (_val _arg) "Execute the \"jump\" operation of VAL. VAL is the contents of a register as returned by `get-register'. @@ -739,6 +780,18 @@ ARG is the value of the prefix argument or nil." buffer-file-name (marker-position (cdr elem)))))))) +(defun register-buffer-to-file-query () + "Turn buffer registers into file-query references when a buffer is killed." + (and buffer-file-name + (dolist (elem register-alist) + (and (consp (cdr elem)) + (eq (current-buffer) (cddr elem)) + (setcdr elem + (list 'file-query + buffer-file-name + (point))))))) + + (defun number-to-register (number register) "Store NUMBER in REGISTER. REGISTER is a character, the name of the register. commit 364801fcd66d8e93a900fd750a998f4590d85397 Author: Stefan Kangas Date: Sat Oct 5 11:50:34 2024 +0200 Prefer defvar-keymap in python.el It's okay to use defvar-keymap here since the 'compat' package backports it for all versions of Emacs that we support (24.4 or later). * lisp/progmodes/python.el (python-mode-map): Prefer defvar-keymap. (python-menu): Move to toplevel. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index c85db018eb1..5532d5f6ce1 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -334,112 +334,110 @@ To customize the Python interpreter for interactive use, modify ;;; Bindings -(defvar python-mode-map - (let ((map (make-sparse-keymap))) - ;; Movement - (define-key map [remap backward-sentence] #'python-nav-backward-block) - (define-key map [remap forward-sentence] #'python-nav-forward-block) - (define-key map [remap backward-up-list] #'python-nav-backward-up-list) - (define-key map [remap up-list] #'python-nav-up-list) - (define-key map [remap mark-defun] #'python-mark-defun) - (define-key map "\C-c\C-j" #'imenu) - ;; Indent specific - (define-key map "\177" #'python-indent-dedent-line-backspace) - (define-key map (kbd "") #'python-indent-dedent-line) - (define-key map "\C-c<" #'python-indent-shift-left) - (define-key map "\C-c>" #'python-indent-shift-right) - ;; Skeletons - (define-key map "\C-c\C-tc" #'python-skeleton-class) - (define-key map "\C-c\C-td" #'python-skeleton-def) - (define-key map "\C-c\C-tf" #'python-skeleton-for) - (define-key map "\C-c\C-ti" #'python-skeleton-if) - (define-key map "\C-c\C-tm" #'python-skeleton-import) - (define-key map "\C-c\C-tt" #'python-skeleton-try) - (define-key map "\C-c\C-tw" #'python-skeleton-while) - ;; Shell interaction - (define-key map "\C-c\C-p" #'run-python) - (define-key map "\C-c\C-s" #'python-shell-send-string) - (define-key map "\C-c\C-e" #'python-shell-send-statement) - (define-key map "\C-c\C-r" #'python-shell-send-region) - (define-key map "\C-\M-x" #'python-shell-send-defun) - (define-key map "\C-c\C-b" #'python-shell-send-block) - (define-key map "\C-c\C-c" #'python-shell-send-buffer) - (define-key map "\C-c\C-l" #'python-shell-send-file) - (define-key map "\C-c\C-z" #'python-shell-switch-to-shell) - ;; Some util commands - (define-key map "\C-c\C-v" #'python-check) - (define-key map "\C-c\C-f" #'python-eldoc-at-point) - (define-key map "\C-c\C-d" #'python-describe-at-point) - ;; Import management - (define-key map "\C-c\C-ia" #'python-add-import) - (define-key map "\C-c\C-if" #'python-fix-imports) - (define-key map "\C-c\C-ir" #'python-remove-import) - (define-key map "\C-c\C-is" #'python-sort-imports) - ;; Utilities - (substitute-key-definition #'complete-symbol #'completion-at-point - map global-map) - (easy-menu-define python-menu map "Python Mode menu" - '("Python" - :help "Python-specific Features" - ["Shift region left" python-indent-shift-left :active mark-active - :help "Shift region left by a single indentation step"] - ["Shift region right" python-indent-shift-right :active mark-active - :help "Shift region right by a single indentation step"] - "-" - ["Start of def/class" beginning-of-defun - :help "Go to start of outermost definition around point"] - ["End of def/class" end-of-defun - :help "Go to end of definition around point"] - ["Mark def/class" mark-defun - :help "Mark outermost definition around point"] - ["Jump to def/class" imenu - :help "Jump to a class or function definition"] - "--" - ("Skeletons") - "---" - ["Start interpreter" run-python - :help "Run inferior Python process in a separate buffer"] - ["Switch to shell" python-shell-switch-to-shell - :help "Switch to running inferior Python process"] - ["Eval string" python-shell-send-string - :help "Eval string in inferior Python session"] - ["Eval block" python-shell-send-block - :help "Eval block in inferior Python session"] - ["Eval buffer" python-shell-send-buffer - :help "Eval buffer in inferior Python session"] - ["Eval statement" python-shell-send-statement - :help "Eval statement in inferior Python session"] - ["Eval region" python-shell-send-region - :help "Eval region in inferior Python session"] - ["Eval defun" python-shell-send-defun - :help "Eval defun in inferior Python session"] - ["Eval file" python-shell-send-file - :help "Eval file in inferior Python session"] - ["Debugger" pdb :help "Run pdb under GUD"] - "----" - ["Check file" python-check - :help "Check file for errors"] - ["Help on symbol" python-eldoc-at-point - :help "Get help on symbol at point"] - ["Complete symbol" completion-at-point - :help "Complete symbol before point"] - "-----" - ["Add import" python-add-import - :help "Add an import statement to the top of this buffer"] - ["Remove import" python-remove-import - :help "Remove an import statement from the top of this buffer"] - ["Sort imports" python-sort-imports - :help "Sort the import statements at the top of this buffer"] - ["Fix imports" python-fix-imports - :help "Add missing imports and remove unused ones from the current buffer"] - "-----" - ("Toggle..." - ["Subword Mode" subword-mode - :style toggle :selected subword-mode - :help "Toggle subword movement and editing mode"]) - )) - map) - "Keymap for `python-mode'.") +(defvar-keymap python-mode-map + :doc "Keymap for `python-mode'." + ;; Movement + " " #'python-nav-backward-block + " " #'python-nav-forward-block + " " #'python-nav-backward-up-list + " " #'python-nav-up-list + " " #'python-mark-defun + "C-c C-j" #'imenu + ;; Indent specific + "DEL" #'python-indent-dedent-line-backspace + "" #'python-indent-dedent-line + "C-c <" #'python-indent-shift-left + "C-c >" #'python-indent-shift-right + ;; Skeletons + "C-c C-t c" #'python-skeleton-class + "C-c C-t d" #'python-skeleton-def + "C-c C-t f" #'python-skeleton-for + "C-c C-t i" #'python-skeleton-if + "C-c C-t m" #'python-skeleton-import + "C-c C-t t" #'python-skeleton-try + "C-c C-t w" #'python-skeleton-while + ;; Shell interaction + "C-c C-p" #'run-python + "C-c C-s" #'python-shell-send-string + "C-c C-e" #'python-shell-send-statement + "C-c C-r" #'python-shell-send-region + "C-M-x" #'python-shell-send-defun + "C-c C-b" #'python-shell-send-block + "C-c C-c" #'python-shell-send-buffer + "C-c C-l" #'python-shell-send-file + "C-c C-z" #'python-shell-switch-to-shell + ;; Some util commands + "C-c C-v" #'python-check + "C-c C-f" #'python-eldoc-at-point + "C-c C-d" #'python-describe-at-point + ;; Import management + "C-c C-i a" #'python-add-import + "C-c C-i f" #'python-fix-imports + "C-c C-i r" #'python-remove-import + "C-c C-i s" #'python-sort-imports + ;; Utilities + " " #'completion-at-point) + +(easy-menu-define python-menu python-mode-map + "Menu used for ´python-mode'." + '("Python" + :help "Python-specific Features" + ["Shift region left" python-indent-shift-left :active mark-active + :help "Shift region left by a single indentation step"] + ["Shift region right" python-indent-shift-right :active mark-active + :help "Shift region right by a single indentation step"] + "-----" + ["Start of def/class" beginning-of-defun + :help "Go to start of outermost definition around point"] + ["End of def/class" end-of-defun + :help "Go to end of definition around point"] + ["Mark def/class" mark-defun + :help "Mark outermost definition around point"] + ["Jump to def/class" imenu + :help "Jump to a class or function definition"] + "-----" + ("Skeletons") + "-----" + ["Start interpreter" run-python + :help "Run inferior Python process in a separate buffer"] + ["Switch to shell" python-shell-switch-to-shell + :help "Switch to running inferior Python process"] + ["Eval string" python-shell-send-string + :help "Eval string in inferior Python session"] + ["Eval block" python-shell-send-block + :help "Eval block in inferior Python session"] + ["Eval buffer" python-shell-send-buffer + :help "Eval buffer in inferior Python session"] + ["Eval statement" python-shell-send-statement + :help "Eval statement in inferior Python session"] + ["Eval region" python-shell-send-region + :help "Eval region in inferior Python session"] + ["Eval defun" python-shell-send-defun + :help "Eval defun in inferior Python session"] + ["Eval file" python-shell-send-file + :help "Eval file in inferior Python session"] + ["Debugger" pdb :help "Run pdb under GUD"] + "-----" + ["Check file" python-check + :help "Check file for errors"] + ["Help on symbol" python-eldoc-at-point + :help "Get help on symbol at point"] + ["Complete symbol" completion-at-point + :help "Complete symbol before point"] + "-----" + ["Add import" python-add-import + :help "Add an import statement to the top of this buffer"] + ["Remove import" python-remove-import + :help "Remove an import statement from the top of this buffer"] + ["Sort imports" python-sort-imports + :help "Sort the import statements at the top of this buffer"] + ["Fix imports" python-fix-imports + :help "Add missing imports and remove unused ones from the current buffer"] + "-----" + ("Toggle..." + ["Subword Mode" subword-mode + :style toggle :selected subword-mode + :help "Toggle subword movement and editing mode"]))) (defvar python-ts-mode-map (copy-keymap python-mode-map) "Keymap for `(copy-keymap python-mode-map)'.") commit 84c66625e5ef268ec958a04eb61ba8f2beb2ea02 Author: Stefan Kangas Date: Sat Oct 5 11:48:36 2024 +0200 ; Minor cleanup of python-interpreter variable * lisp/progmodes/python.el (python-interpreter) (python-shell-interpreter): Simplify definition. diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 173a9bc3692..c85db018eb1 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -316,7 +316,6 @@ (defcustom python-interpreter (cond ((executable-find "python") "python") - ((executable-find "python3") "python3") (t "python3")) "Python interpreter for noninteractive use. Some Python interpreters also require changes to @@ -2742,7 +2741,6 @@ position, else returns nil." (defcustom python-shell-interpreter (cond ((executable-find "python") "python") - ((executable-find "python3") "python3") (t "python3")) "Python interpreter for interactive use. commit 50e522123618011b742985fda941ed17e339a9aa Author: Sean Whitton Date: Sat Oct 5 17:23:26 2024 +0800 ; Tweak line breaks in last change diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 9497b46c6cf..540ed2b5819 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -1008,11 +1008,10 @@ matches exist." (string-width icomplete-separator) (+ 2 (string-width ellipsis)) ;; take {…} into account (string-width - (buffer-substring - (save-excursion - (goto-char (icomplete--field-beg)) - (pos-bol)) - (icomplete--field-end))))) + (buffer-substring (save-excursion + (goto-char (icomplete--field-beg)) + (pos-bol)) + (icomplete--field-end))))) (prospects-max ;; Max total length to use, including the minibuffer content. (* (+ icomplete-prospects-height commit a96954b982ddd441ac943bfa48015fb4775c00cb Author: Sean Whitton Date: Fri Oct 4 08:19:40 2024 +0800 icomplete-completions: Revise computation of prospects-len * lisp/icomplete.el (icomplete-completions): Revise computation of prospects-len (i) to avoid calling string-width on the entire buffer-string, which could be slow; and (ii) to better handle minibuffer prompts with embedded newlines (bug#72826). diff --git a/lisp/icomplete.el b/lisp/icomplete.el index 2ea5e36fa88..9497b46c6cf 100644 --- a/lisp/icomplete.el +++ b/lisp/icomplete.el @@ -1007,7 +1007,12 @@ matches exist." (or determ (concat open-bracket close-bracket))) (string-width icomplete-separator) (+ 2 (string-width ellipsis)) ;; take {…} into account - (string-width (buffer-string)))) + (string-width + (buffer-substring + (save-excursion + (goto-char (icomplete--field-beg)) + (pos-bol)) + (icomplete--field-end))))) (prospects-max ;; Max total length to use, including the minibuffer content. (* (+ icomplete-prospects-height commit 5a462948e13393fc742e36b655c529f3c5e851bb Author: Stefan Kangas Date: Sat Oct 5 02:24:30 2024 +0200 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) 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. commit 6b1271b169a8c5d46eace65fb9348d6110527cf3 Author: Stefan Kangas Date: Sat Oct 5 01:58:46 2024 +0200 Fix python-ts-mode-map docstring * lisp/progmodes/python.el (python-ts-mode-map): Fix docstring. 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 commit aaaafddc945bbd046d675ea50f221edb02c8988b Author: Stefan Kangas Date: Sat Oct 5 00:45:54 2024 +0200 Normalize "Commentary" section in eudc.el * lisp/net/eudc.el: Normalize "Commentary" section to make 'M-x describe-package RET eudc RET' more useful. 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. +;; +;; 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 +;; 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: commit d656be9794dcce02fb0b2ac3f5a955ddbe57040d Author: Eli Zaretskii Date: Fri Oct 4 16:32:13 2024 +0300 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. 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 commit e9dcf0c57ddea6a3ac3136e82cdb740326e735d4 Author: Eli Zaretskii Date: Fri Oct 4 14:39:50 2024 +0300 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'. 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)) commit 51ef05f684c779b492965571cf9a169b93e86aa0 Author: Sean Whitton Date: Fri Oct 4 17:28:38 2024 +0800 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. 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. commit 5eaf0c784bf1709d3ad18ff4a0b4d4b7ec03cf91 Author: Stefan Kangas Date: Thu Oct 3 23:52:55 2024 +0200 * lisp/info-look.el (mapc): Add use-package manual's index. 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") commit 705a5a1a9e6c3ae006a2aa4d6bc9d02951a58aa6 Author: Sean Whitton Date: Thu Oct 3 18:39:16 2024 +0800 ; * ChangeLog.4: Fix attribution of one change. 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 commit bf26ff0dc8d1591c9c75e12cfdf057353b3869bf Author: Yuan Fu Date: Fri Sep 20 01:16:44 2024 -0700 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. 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)) commit 4c866abab966e85ed1fb57aea9971ce8d1495970 Author: Eli Zaretskii Date: Wed Oct 2 08:47:29 2024 +0300 ; * doc/lispref/variables.texi (Creating Buffer-Local): Fix wording. 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 commit d42d7d474fe07a577d9f8006323784583867ec43 Author: Sean Whitton Date: Wed Oct 2 12:06:46 2024 +0800 ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docstring. 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") commit f46f476bb8f1b0f4f63c2af86aa0dcd11c9e2c7c Author: Sean Whitton Date: Wed Oct 2 09:21:11 2024 +0800 ; * admin/MAINTAINERS: Take VC subsystem, add note about handovers Based on discussion with the head maintainers and Dmitry by private mail. 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 commit d68e6d2689d0b3be4d251b0edc09fba144f7b282 Author: Sean Whitton Date: Wed Oct 2 09:18:35 2024 +0800 ; rcirc-update-activity-string: Justify some existing behaviour 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 commit e6a37869c8dcbd17b01dab66c5588f087a33ddf0 Author: Sean Whitton Date: Wed Oct 2 09:15:46 2024 +0800 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. 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))) commit 108b3179bd4bcc82791ea5998de5dadb647992c4 Author: Stefan Kangas Date: Wed Oct 2 00:12:34 2024 +0200 Revert "; Minor clarification in variables.texi" This reverts commit 44156c2140772fa04ebbc0a488a85f0741e0c2ef. 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. commit 44156c2140772fa04ebbc0a488a85f0741e0c2ef Author: Stefan Kangas Date: Tue Oct 1 22:09:42 2024 +0200 ; Minor clarification in variables.texi * doc/lispref/variables.texi (Creating Buffer-Local): Add comma to make reference clearer. 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. commit 63058e1153ae1c3a9662b50ff8be439026e11986 Author: john muhl Date: Sat Jul 13 18:36:38 2024 -0500 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) 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 commit 84bea20eba2fd7c9b8c81b816fffe69a2b7892e3 Author: Stefan Kangas Date: Tue Oct 1 21:24:09 2024 +0200 ; * lisp/info-look.el: Add two more links. 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 commit 96b87ad5363feed7a3bc5ab1c7fa096867140cf4 Author: Stefan Kangas Date: Tue Oct 1 00:24:23 2024 +0200 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. 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) commit 9c904e8ceae935a370a20f8255a355997786647c Author: Stefan Kangas Date: Tue Oct 1 00:15:08 2024 +0200 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'. 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'. commit fd1a1b07805a0d84ca3a7fe83a5f90a8fa0fd00b Author: Stefan Kangas Date: Mon Sep 30 20:37:27 2024 +0200 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. 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'. commit 11e3e0cadd46ee49007477af1335ddd5365debe2 Author: Jim Porter Date: Wed Sep 25 11:59:32 2024 -0700 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). 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 commit c0ef8a9a1b39c63de17b375485cc405f994d4e55 Author: Gautier Ponsinet Date: Sun Sep 29 14:00:05 2024 +0300 Fix a typo in the calendar manual * doc/emacs/calendar.texi (Calendar Unit Motion): Add a missing parenthesis. (Bug#73555) 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. commit 36ff7138febfcec7fcee44e8b51c6b26cbb056a2 Author: Eli Zaretskii Date: Sun Sep 29 15:42:21 2024 +0300 ; Fix a thinko in sieve-manage.el * lisp/net/sieve-manage.el (sieve-manage--append-to-log): Fix thinko. (Bug#54154) 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)))) commit 7abecbcd63317496369fffe69b6afab4af058ed6 Author: Eli Zaretskii Date: Sat Sep 28 15:36:06 2024 +0300 ; * nt/INSTALL: Update MinGW notes URL. (Bug#73528) 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