From 33da5c296aae8452acfbe4515059321f1a31022a Mon Sep 17 00:00:00 2001 From: Alex Vear Date: Thu, 4 Mar 2021 21:57:05 +0000 Subject: [PATCH 1/2] Syntax highlight use of the comment reader macro as comments --- indent/clojure.vim | 3 ++- syntax/clojure.vim | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) 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..a77552e 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 From b2caef4d392bb22c76d5ab64d248939e0116cfa1 Mon Sep 17 00:00:00 2001 From: Alex Vear Date: Fri, 5 Mar 2021 23:32:15 +0000 Subject: [PATCH 2/2] fixup! Syntax highlight use of the comment reader macro as comments --- syntax/clojure.vim | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/syntax/clojure.vim b/syntax/clojure.vim index a77552e..2f5c12a 100644 --- a/syntax/clojure.vim +++ b/syntax/clojure.vim @@ -135,11 +135,11 @@ 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 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