Skip to content

Commit 131a2b1

Browse files
committed
Generate clojureTop syntax cluster
1 parent 05d6f93 commit 131a2b1

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

clj/src/vim_clojure_static/generate.clj

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,17 @@
272272
"Vimscript literal `setlocal lispwords=` statement."
273273
(str "setlocal lispwords=" (string/join \, (sort lispwords)) "\n"))
274274

275+
(def vim-top-cluster
276+
"Vimscript literal `syntax cluster` for all top-level syntax groups."
277+
(->> "../syntax/clojure.vim"
278+
slurp
279+
(re-seq #"syntax\s+(?:keyword|match|region)\s+(\S+)(?!.*\bcontained\b)")
280+
(map peek)
281+
sort
282+
distinct
283+
(string/join \,)
284+
(format "syntax cluster clojureTop contains=@Spell,%s\n")))
285+
275286
(comment
276287
;; Generate the vim literal definitions for pasting into the runtime files.
277288
(spit "tmp/clojure-defs.vim"
@@ -289,6 +300,9 @@
289300
vim-unicode-block-char-classes
290301
\newline
291302
generation-comment
303+
vim-top-cluster
304+
\newline
305+
generation-comment
292306
vim-lispwords
293307
\newline
294308
generation-comment

syntax/clojure.vim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ syntax keyword clojureCommentTodo contained FIXME XXX TODO FIXME: XXX: TODO:
121121
syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
122122
syntax match clojureComment "#!.*$"
123123

124-
syntax cluster clojureTop contains=clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector
124+
" Generated from https://github.com/guns/vim-clojure-static/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
125+
syntax cluster clojureTop contains=@Spell,clojureAnonArg,clojureBoolean,clojureCharacter,clojureComment,clojureCond,clojureConstant,clojureDefine,clojureDeref,clojureDispatch,clojureError,clojureException,clojureFunc,clojureKeyword,clojureMacro,clojureMap,clojureMeta,clojureNumber,clojureQuote,clojureRegexp,clojureRepeat,clojureSexp,clojureSpecial,clojureString,clojureSymbol,clojureUnquote,clojureVarArg,clojureVariable,clojureVector
125126

126127
syntax region clojureSexp matchgroup=clojureParen start="(" matchgroup=clojureParen end=")" contains=@clojureTop fold
127128
syntax region clojureVector matchgroup=clojureParen start="\[" matchgroup=clojureParen end="]" contains=@clojureTop fold

0 commit comments

Comments
 (0)