branch: elpa/clojure-ts-mode commit 00a92afac3cbb3b36654af4aaac262e09d81c23d Merge: 019298655e 712dc772fd Author: Danny Freeman <dannyfree...@users.noreply.github.com> Commit: GitHub <nore...@github.com>
Merge pull request #14 from jasonjckn/main Add syntax table --- clojure-ts-mode.el | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/clojure-ts-mode.el b/clojure-ts-mode.el index 636ad2296c..336eeaf9d3 100644 --- a/clojure-ts-mode.el +++ b/clojure-ts-mode.el @@ -67,6 +67,51 @@ "Enables debugging messages, shows current node in mode-line. Only intended for use at development time.") +(defvar clojure-ts-mode-syntax-table + (let ((table (make-syntax-table))) + ;; Initialize ASCII charset as symbol syntax + (modify-syntax-entry '(0 . 127) "_" table) + + ;; Word syntax + (modify-syntax-entry '(?0 . ?9) "w" table) + (modify-syntax-entry '(?a . ?z) "w" table) + (modify-syntax-entry '(?A . ?Z) "w" table) + + ;; Whitespace + (modify-syntax-entry ?\s " " table) + (modify-syntax-entry ?\xa0 " " table) ; non-breaking space + (modify-syntax-entry ?\t " " table) + (modify-syntax-entry ?\f " " table) + ;; Setting commas as whitespace makes functions like `delete-trailing-whitespace' behave unexpectedly (#561) + (modify-syntax-entry ?, "." table) + + ;; Delimiters + (modify-syntax-entry ?\( "()" table) + (modify-syntax-entry ?\) ")(" table) + (modify-syntax-entry ?\[ "(]" table) + (modify-syntax-entry ?\] ")[" table) + (modify-syntax-entry ?\{ "(}" table) + (modify-syntax-entry ?\} "){" table) + + ;; Prefix chars + (modify-syntax-entry ?` "'" table) + (modify-syntax-entry ?~ "'" table) + (modify-syntax-entry ?^ "'" table) + (modify-syntax-entry ?@ "'" table) + (modify-syntax-entry ?? "_ p" table) ; ? is a prefix outside symbols + (modify-syntax-entry ?# "_ p" table) ; # is allowed inside keywords (#399) + (modify-syntax-entry ?' "_ p" table) ; ' is allowed anywhere but the start of symbols + + ;; Others + (modify-syntax-entry ?\; "<" table) ; comment start + (modify-syntax-entry ?\n ">" table) ; comment end + (modify-syntax-entry ?\" "\"" table) ; string + (modify-syntax-entry ?\\ "\\" table) ; escape + + table) + "Syntax table for clojure-ts-mode.") + + (defconst clojure-ts--builtin-dynamic-var-regexp (eval-and-compile (concat "^"