Skip to content

Commit 00a92af

Browse files
authored
Merge pull request #14 from jasonjckn/main
Add syntax table
2 parents 0192986 + 712dc77 commit 00a92af

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

clojure-ts-mode.el

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,51 @@
6767
"Enables debugging messages, shows current node in mode-line.
6868
Only intended for use at development time.")
6969

70+
(defvar clojure-ts-mode-syntax-table
71+
(let ((table (make-syntax-table)))
72+
;; Initialize ASCII charset as symbol syntax
73+
(modify-syntax-entry '(0 . 127) "_" table)
74+
75+
;; Word syntax
76+
(modify-syntax-entry '(?0 . ?9) "w" table)
77+
(modify-syntax-entry '(?a . ?z) "w" table)
78+
(modify-syntax-entry '(?A . ?Z) "w" table)
79+
80+
;; Whitespace
81+
(modify-syntax-entry ?\s " " table)
82+
(modify-syntax-entry ?\xa0 " " table) ; non-breaking space
83+
(modify-syntax-entry ?\t " " table)
84+
(modify-syntax-entry ?\f " " table)
85+
;; Setting commas as whitespace makes functions like `delete-trailing-whitespace' behave unexpectedly (#561)
86+
(modify-syntax-entry ?, "." table)
87+
88+
;; Delimiters
89+
(modify-syntax-entry ?\( "()" table)
90+
(modify-syntax-entry ?\) ")(" table)
91+
(modify-syntax-entry ?\[ "(]" table)
92+
(modify-syntax-entry ?\] ")[" table)
93+
(modify-syntax-entry ?\{ "(}" table)
94+
(modify-syntax-entry ?\} "){" table)
95+
96+
;; Prefix chars
97+
(modify-syntax-entry ?` "'" table)
98+
(modify-syntax-entry ?~ "'" table)
99+
(modify-syntax-entry ?^ "'" table)
100+
(modify-syntax-entry ?@ "'" table)
101+
(modify-syntax-entry ?? "_ p" table) ; ? is a prefix outside symbols
102+
(modify-syntax-entry ?# "_ p" table) ; # is allowed inside keywords (#399)
103+
(modify-syntax-entry ?' "_ p" table) ; ' is allowed anywhere but the start of symbols
104+
105+
;; Others
106+
(modify-syntax-entry ?\; "<" table) ; comment start
107+
(modify-syntax-entry ?\n ">" table) ; comment end
108+
(modify-syntax-entry ?\" "\"" table) ; string
109+
(modify-syntax-entry ?\\ "\\" table) ; escape
110+
111+
table)
112+
"Syntax table for clojure-ts-mode.")
113+
114+
70115
(defconst clojure-ts--builtin-dynamic-var-regexp
71116
(eval-and-compile
72117
(concat "^"

0 commit comments

Comments
 (0)