From 6479691cf0756d776bbc91cab5e5c339def81777 Mon Sep 17 00:00:00 2001 From: Theodor Thornhill Date: Mon, 5 Dec 2022 13:37:58 +0100 Subject: [PATCH] Fix syntax-table for tree-sitter modes When adapting the 'c-populate-syntax-table' for tree-sitter, I misread the code, and thus some crucial entries were missing. For the relevant modes we use the same table as specified in the non-tree-sitter major mode. * lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new entries. * lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries. * lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new entries. * lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new entries. * lisp/progmodes/typescript-ts-mode.el (typescript-ts-mode--syntax-table): Add new entries. * lisp/textmodes/css-mode.el (css-ts-mode): Add new entries. --- lisp/progmodes/c-ts-mode.el | 2 ++ lisp/progmodes/csharp-mode.el | 1 + lisp/progmodes/java-ts-mode.el | 5 +++++ lisp/progmodes/json-ts-mode.el | 8 +++++--- lisp/progmodes/typescript-ts-mode.el | 9 +++++++-- lisp/textmodes/css-mode.el | 1 + 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 6f1488917a6..862d8766e0b 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -79,6 +79,8 @@ follows the form of `treesit-simple-indent-rules'." (modify-syntax-entry ?\240 "." table) (modify-syntax-entry ?/ ". 124b" table) (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + (modify-syntax-entry ?\^m "> b" table) table) "Syntax table for `c-ts-mode'.") diff --git a/lisp/progmodes/csharp-mode.el b/lisp/progmodes/csharp-mode.el index bdddb46e727..82e3bc0d541 100644 --- a/lisp/progmodes/csharp-mode.el +++ b/lisp/progmodes/csharp-mode.el @@ -893,6 +893,7 @@ Key bindings: ;;;###autoload (define-derived-mode csharp-ts-mode prog-mode "C#" "Major mode for editing C# code." + :syntax-table (csharp--make-mode-syntax-table) (unless (treesit-ready-p 'c-sharp) (error "Tree-sitter for C# isn't available")) diff --git a/lisp/progmodes/java-ts-mode.el b/lisp/progmodes/java-ts-mode.el index 2c42505ac94..f947efc5a45 100644 --- a/lisp/progmodes/java-ts-mode.el +++ b/lisp/progmodes/java-ts-mode.el @@ -58,6 +58,11 @@ (modify-syntax-entry ?| "." table) (modify-syntax-entry ?\' "\"" table) (modify-syntax-entry ?\240 "." table) + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + (modify-syntax-entry ?\^m "> b" table) + (modify-syntax-entry ?@ "'" table) table) "Syntax table for `java-ts-mode'.") diff --git a/lisp/progmodes/json-ts-mode.el b/lisp/progmodes/json-ts-mode.el index 8ea582ad8fa..f3bd93923ee 100644 --- a/lisp/progmodes/json-ts-mode.el +++ b/lisp/progmodes/json-ts-mode.el @@ -46,9 +46,7 @@ (defvar json-ts-mode--syntax-table (let ((table (make-syntax-table))) - ;; Taken from the cc-langs version (modify-syntax-entry ?_ "_" table) - (modify-syntax-entry ?$ "_" table) (modify-syntax-entry ?\\ "\\" table) (modify-syntax-entry ?+ "." table) (modify-syntax-entry ?- "." table) @@ -58,8 +56,12 @@ (modify-syntax-entry ?> "." table) (modify-syntax-entry ?& "." table) (modify-syntax-entry ?| "." table) - (modify-syntax-entry ?` "\"" table) + (modify-syntax-entry ?\' "\"" table) (modify-syntax-entry ?\240 "." table) + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + (modify-syntax-entry ?\^m "> b" table) table) "Syntax table for `json-ts-mode'.") diff --git a/lisp/progmodes/typescript-ts-mode.el b/lisp/progmodes/typescript-ts-mode.el index 3da690567e2..a56568ae781 100644 --- a/lisp/progmodes/typescript-ts-mode.el +++ b/lisp/progmodes/typescript-ts-mode.el @@ -45,7 +45,6 @@ (let ((table (make-syntax-table))) ;; Taken from the cc-langs version (modify-syntax-entry ?_ "_" table) - (modify-syntax-entry ?$ "_" table) (modify-syntax-entry ?\\ "\\" table) (modify-syntax-entry ?+ "." table) (modify-syntax-entry ?- "." table) @@ -55,8 +54,14 @@ (modify-syntax-entry ?> "." table) (modify-syntax-entry ?& "." table) (modify-syntax-entry ?| "." table) - (modify-syntax-entry ?` "\"" table) + (modify-syntax-entry ?\' "\"" table) (modify-syntax-entry ?\240 "." table) + (modify-syntax-entry ?/ ". 124b" table) + (modify-syntax-entry ?* ". 23" table) + (modify-syntax-entry ?\n "> b" table) + (modify-syntax-entry ?\^m "> b" table) + (modify-syntax-entry ?$ "_" table) + (modify-syntax-entry ?` "\"" table) table) "Syntax table for `typescript-ts-mode'.") diff --git a/lisp/textmodes/css-mode.el b/lisp/textmodes/css-mode.el index 8a66986dc6f..822097a86d8 100644 --- a/lisp/textmodes/css-mode.el +++ b/lisp/textmodes/css-mode.el @@ -1822,6 +1822,7 @@ Use `\\[fill-paragraph]' to reformat CSS declaration blocks. It can also be used to fill comments. \\{css-mode-map}" + :syntax-table css-mode-syntax-table (when (treesit-ready-p 'css) ;; Borrowed from `css-mode'. (add-hook 'completion-at-point-functions -- 2.39.2