From: James Cherti Date: Fri, 11 Apr 2025 14:18:19 +0000 (-0400) Subject: Mark !%:.^~, as punctuation rather than symbol constituents X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b7ac124402e1b972cea5632475e4b2e08a4840bf;p=emacs.git Mark !%:.^~, as punctuation rather than symbol constituents In Bash, the characters !%:.^~, are not valid in variable names. In sh, they are not permitted in either function or variable names. Treating them as punctuation is convenient, as they are rarely used in function names and never in variable names. Even among commands, their usage is uncommon. The only character among these that is commonly seen in command names is '.', although it is rarely used in function names. Marking these characters as punctuation, rather than symbol constituents, enhances the accuracy of symbol detection. * lisp/progmodes/sh-script.el: Mark !%:.^~, as punctuation in the sh-mode-syntax-table syntax table. Copyright-paperwork-exempt: yes (cherry picked from commit 4e1fe56e316c041ed3b07f510ecba428c6b06cd1) --- diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el index 20594e99ec1..39b93304f8d 100644 --- a/lisp/progmodes/sh-script.el +++ b/lisp/progmodes/sh-script.el @@ -406,13 +406,13 @@ name symbol." ;; to work fine. This is needed so that dabbrev-expand ;; $VARNAME works. ?$ "'" - ?! "_" - ?% "_" - ?: "_" - ?. "_" - ?^ "_" - ?~ "_" - ?, "_" + ?! "." + ?% "." + ?: "." + ?. "." + ?^ "." + ?~ "." + ?, "." ?= "." ?/ "." ?\; "."