branch: elpa/nasm-mode commit 2259c7d698afaf49d4a8d490f980707e2d479a4d Author: Christopher Wellons <well...@nullprogram.com> Commit: Christopher Wellons <well...@nullprogram.com>
Properly distinguish word and symbol constituents. Using backward-kill-word was behaving inconsistently with other modes. Characters like _ should be symbol constituents, not word constituents. Use superword-mode to override this, just as in other modes. --- nasm-mode.el | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/nasm-mode.el b/nasm-mode.el index 63e870c..43fece5 100644 --- a/nasm-mode.el +++ b/nasm-mode.el @@ -537,17 +537,17 @@ "NASM preprocessor directives (pptok.c) for `nasm-mode'.")) (defconst nasm-label-regexp - "\\(\\<[a-zA-Z_.?][a-zA-Z0-9_$#@~.?]*\\>\\)\\s-*:" + "\\(\\_<[a-zA-Z_.?][a-zA-Z0-9_$#@~.?]*\\_>\\)\\s-*:" "Regexp for `nasm-mode' for matching labels.") (defconst nasm-constant-regexp - "\\<$?[-+0-9][-+_0-9A-Fa-fHhXxDdTtQqOoBbYyeE.]*\\>" + "\\_<$?[-+0-9][-+_0-9A-Fa-fHhXxDdTtQqOoBbYyeE.]*\\_>" "Regexp for `nasm-mode' for matching numeric constants.") (defmacro nasm--opt (keywords) "Prepare KEYWORDS for `looking-at'." `(eval-when-compile - (regexp-opt ,keywords 'words))) + (regexp-opt ,keywords 'symbols))) (defconst nasm-imenu-generic-expression `((nil ,(concat "^\\s-*" nasm-label-regexp) 1) @@ -556,7 +556,7 @@ "Expressions for `imenu-generic-expression'.") (defconst nasm-font-lock-keywords - `(("\\<\\.[a-zA-Z0-9_$#@~.?]+\\>" . font-lock-type-face) + `(("\\_<\\.[a-zA-Z0-9_$#@~.?]+\\_>" . font-lock-type-face) (,(nasm--opt nasm-registers) . 'nasm-registers) (,(nasm--opt nasm-prefix) . 'nasm-prefix) (,(nasm--opt nasm-types) . 'nasm-types) @@ -568,21 +568,19 @@ "Keywords for `nasm-mode'.") (defconst nasm-mode-syntax-table - (let ((table (make-syntax-table))) - (prog1 table - (modify-syntax-entry ?_ "w" table) - (modify-syntax-entry ?# "w" table) - (modify-syntax-entry ?@ "w" table) - (modify-syntax-entry ?\. "w" table) - (modify-syntax-entry ?\? "w" table) - (modify-syntax-entry ?# "w" table) - (modify-syntax-entry ?@ "w" table) - (modify-syntax-entry ?~ "w" table) - (modify-syntax-entry ?\; "<" table) - (modify-syntax-entry ?\n ">" table) - (modify-syntax-entry ?\" "\"" table) - (modify-syntax-entry ?\' "\"" table) - (modify-syntax-entry ?\` "\"" table))) + (with-syntax-table (copy-syntax-table) + (modify-syntax-entry ?_ "_") + (modify-syntax-entry ?# "_") + (modify-syntax-entry ?@ "_") + (modify-syntax-entry ?\? "_") + (modify-syntax-entry ?~ "_") + (modify-syntax-entry ?\. "w") + (modify-syntax-entry ?\; "<") + (modify-syntax-entry ?\n ">") + (modify-syntax-entry ?\" "\"") + (modify-syntax-entry ?\' "\"") + (modify-syntax-entry ?\` "\"") + (syntax-table)) "Syntax table for `nasm-mode'.") (defvar nasm-mode-map