Skip to content

Commit 2382c8b

Browse files
authored
Syntax highlight comment reader macro as a comment (#15)
1 parent d9e7dce commit 2382c8b

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

indent/clojure.vim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ if exists("*searchpairpos")
5656
endfunction
5757

5858
function! s:ignored_region()
59-
return s:syn_id_name() =~? '\vstring|regex|comment|character'
59+
let name = s:syn_id_name()
60+
return (name =~? '\vstring|regex|comment|character') && (name !=# 'clojureCommentReaderMacro')
6061
endfunction
6162

6263
function! s:current_char()

syntax/clojure.vim

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,20 @@ syntax keyword clojureCommentTodo contained FIXME XXX TODO BUG NOTE HACK FIXME:
134134
syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell
135135
syntax match clojureComment "#!.*$"
136136

137+
" Comment forms highlight comment forms as comment. Based on: <https://git.sr.ht/~evhan/vim-scheme/>
138+
syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1
139+
syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/
140+
syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureCommentReaderMacroForm
141+
syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureCommentReaderMacroForm
142+
syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureCommentReaderMacroForm
143+
144+
syntax region clojureCommentReaderMacroForm start="(" end=")" contained contains=clojureCommentReaderMacroForm
145+
syntax region clojureCommentReaderMacroForm start="{" end="}" contained contains=clojureCommentReaderMacroForm
146+
syntax region clojureCommentReaderMacroForm start="\[" end="\]" contained contains=clojureCommentReaderMacroForm
147+
137148
" -*- TOP CLUSTER -*-
138149
" Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj
139-
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
150+
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,clojureCommentReaderMacro
140151

141152
syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold
142153
syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold
@@ -191,6 +202,8 @@ highlight default link clojureDispatch SpecialChar
191202

192203
highlight default link clojureComment Comment
193204
highlight default link clojureCommentTodo Todo
205+
highlight default link clojureCommentReaderMacro clojureComment
206+
highlight default link clojureCommentReaderMacroForm clojureCommentReaderMacro
194207

195208
highlight default link clojureError Error
196209

0 commit comments

Comments
 (0)