diff options
author | Daniel MartÃn <mardani29@yahoo.es> | 2022-12-13 22:28:13 +0100 |
---|---|---|
committer | Yuan Fu <casouri@gmail.com> | 2022-12-14 11:42:58 -0800 |
commit | 480f41c7deb4d3a45a862a5308950b35085f835d (patch) | |
tree | 5bbd9de42ee9c2f93f375ef0cb2444857852533b /lisp/progmodes/c-ts-mode.el | |
parent | fbf0d3b796ac1b891be35b642878a1fd412ee5ea (diff) | |
download | emacs-480f41c7deb4d3a45a862a5308950b35085f835d.tar.gz emacs-480f41c7deb4d3a45a862a5308950b35085f835d.tar.bz2 emacs-480f41c7deb4d3a45a862a5308950b35085f835d.zip |
Add < and > to the syntax table in c++-ts-mode (bug#60049)
* 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.
Diffstat (limited to 'lisp/progmodes/c-ts-mode.el')
-rw-r--r-- | lisp/progmodes/c-ts-mode.el | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lisp/progmodes/c-ts-mode.el b/lisp/progmodes/c-ts-mode.el index 4cf06e10ebf..821e8f5fd96 100644 --- a/lisp/progmodes/c-ts-mode.el +++ b/lisp/progmodes/c-ts-mode.el @@ -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")) |