From b7ac124402e1b972cea5632475e4b2e08a4840bf Mon Sep 17 00:00:00 2001 From: James Cherti Date: Fri, 11 Apr 2025 10:18:19 -0400 Subject: [PATCH] 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) --- lisp/progmodes/sh-script.el | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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. ?$ "'" - ?! "_" - ?% "_" - ?: "_" - ?. "_" - ?^ "_" - ?~ "_" - ?, "_" + ?! "." + ?% "." + ?: "." + ?. "." + ?^ "." + ?~ "." + ?, "." ?= "." ?/ "." ?\; "." -- 2.39.5