]> git.eshelyaron.com Git - emacs.git/commitdiff
Add < and > to the syntax table in c++-ts-mode (bug#60049)
authorDaniel Martín <mardani29@yahoo.es>
Tue, 13 Dec 2022 21:28:13 +0000 (22:28 +0100)
committerYuan Fu <casouri@gmail.com>
Wed, 14 Dec 2022 19:42:58 +0000 (11:42 -0800)
* lisp/progmodes/c-ts-mode.el (c++-ts-mode--syntax-table): Add a
specific syntax table for C++.  Consider "<" and ">" open/close
delimiters (C++ templates).
(c++-ts-mode): Use the new syntax table.

lisp/progmodes/c-ts-mode.el

index 4cf06e10ebf5a02dd83dd165bf5f43205e6b16a8..821e8f5fd96b42c6535358a5b0e75fa521ddb52b 100644 (file)
@@ -83,6 +83,14 @@ follows the form of `treesit-simple-indent-rules'."
     table)
   "Syntax table for `c-ts-mode'.")
 
+(defvar c++-ts-mode--syntax-table
+  (let ((table (make-syntax-table c-ts-mode--syntax-table)))
+    ;; Template delimiters.
+    (modify-syntax-entry ?<  "("     table)
+    (modify-syntax-entry ?>  ")"     table)
+    table)
+  "Syntax table for `c++-ts-mode'.")
+
 (defun c-ts-mode--indent-styles (mode)
   "Indent rules supported by `c-ts-mode'.
 MODE is either `c' or `cpp'."
@@ -616,6 +624,7 @@ the subtrees."
 (define-derived-mode c++-ts-mode c-ts-base-mode "C++"
   "Major mode for editing C++, powered by tree-sitter."
   :group 'c++
+  :syntax-table c++-ts-mode--syntax-table
 
   (unless (treesit-ready-p 'cpp)
     (error "Tree-sitter for C++ isn't available"))