diff --git a/indent/clojure.vim b/indent/clojure.vim index e447e52..a40b631 100644 --- a/indent/clojure.vim +++ b/indent/clojure.vim @@ -56,7 +56,8 @@ if exists("*searchpairpos") endfunction function! s:ignored_region() - return s:syn_id_name() =~? '\vstring|regex|comment|character' + let name = s:syn_id_name() + return (name =~? '\vstring|regex|comment|character') && (name !=# 'clojureCommentReaderMacro') endfunction function! s:current_char() diff --git a/syntax/clojure.vim b/syntax/clojure.vim index 1099785..2f5c12a 100644 --- a/syntax/clojure.vim +++ b/syntax/clojure.vim @@ -134,9 +134,20 @@ syntax keyword clojureCommentTodo contained FIXME XXX TODO BUG NOTE HACK FIXME: syntax match clojureComment ";.*$" contains=clojureCommentTodo,@Spell syntax match clojureComment "#!.*$" +" Comment forms highlight comment forms as comment. Based on: +syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*/ end=/[, \t\n()\[\]{}";]/me=e-1 +syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*"/ skip=/\\[\\"]/ end=/"/ +syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*(/ end=/)/ contains=clojureCommentReaderMacroForm +syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*\[/ end=/\]/ contains=clojureCommentReaderMacroForm +syntax region clojureCommentReaderMacro matchgroup=clojureCommentReaderMacro start=/#_[ ,\t\n`'~]*{/ end=/}/ contains=clojureCommentReaderMacroForm + +syntax region clojureCommentReaderMacroForm start="(" end=")" contained contains=clojureCommentReaderMacroForm +syntax region clojureCommentReaderMacroForm start="{" end="}" contained contains=clojureCommentReaderMacroForm +syntax region clojureCommentReaderMacroForm start="\[" end="\]" contained contains=clojureCommentReaderMacroForm + " -*- TOP CLUSTER -*- " Generated from https://github.com/clojure-vim/clojure.vim/blob/%%RELEASE_TAG%%/clj/src/vim_clojure_static/generate.clj -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 +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 syntax region clojureSexp matchgroup=clojureParen start="(" end=")" contains=@clojureTop fold syntax region clojureVector matchgroup=clojureParen start="\[" end="]" contains=@clojureTop fold @@ -191,6 +202,8 @@ highlight default link clojureDispatch SpecialChar highlight default link clojureComment Comment highlight default link clojureCommentTodo Todo +highlight default link clojureCommentReaderMacro clojureComment +highlight default link clojureCommentReaderMacroForm clojureCommentReaderMacro highlight default link clojureError Error