diff --git a/syntax/ledger.vim b/syntax/ledger.vim index 0cb85fe..4f65a22 100644 --- a/syntax/ledger.vim +++ b/syntax/ledger.vim @@ -15,12 +15,22 @@ if !exists ('b:is_hledger') let b:is_hledger = get(g:, 'ledger_is_hledger', 0) == 1 endif + +syntax case ignore +syntax keyword ledgerTodo contained fixme todo +syntax case match + +if b:is_hledger + syntax match ledgerComment /\v^[;*#].*$/ +else + syntax match ledgerComment /\v^[;*#|%].*$/ +endif +syntax match ledgerComment contains=ledgerTodo,@Spell + " Force old regex engine (:help two-engines) let s:oe = '\%#=1' let s:lb1 = '\@1<=' -let s:line_comment_chars = b:is_hledger ? ';*#' : ';|*#%' - let s:fb = get(g:, 'ledger_fold_blanks', 0) let s:skip = s:fb > 0 ? '\|^\n' : '' if s:fb == 1 @@ -67,7 +77,6 @@ syn match ledgerOneCharDirective /^\%(P\|A\|Y\|N\|D\|C\)\s/ syn region ledgerBlockComment start=/^comment/ end=/^end comment/ syn region ledgerBlockTest start=/^test/ end=/^end test/ -exe 'syn match ledgerComment /^['.s:line_comment_chars.'].*$/' " Tags (metadata) are handled a bit differntly in ledger-cli vs. hledger even " though they both nested in commens the same way. @@ -111,9 +120,6 @@ syn region ledgerApply exe 'syn match ledgerApplyHead '. \ '/'.s:oe.'\%(^apply\s\+\)\@<=\S.*$/ contained' -syntax keyword ledgerTodo FIXME TODO - \ contained containedin=ledgerComment,ledgerTransaction,ledgerTransactionMetadata,ledgerPostingMetadata - highlight default link ledgerComment Comment highlight default link ledgerBlockComment Comment highlight default link ledgerBlockTest Comment