vim. update syntax file

This commit is contained in:
Johann Klähn 2012-04-22 15:42:28 +02:00
parent dc0264aca1
commit 55256d7445

View file

@ -17,15 +17,23 @@ syntax clear
" DATE[=EDATE] [*|!] [(CODE)] DESC <-- first line of transaction " DATE[=EDATE] [*|!] [(CODE)] DESC <-- first line of transaction
" ACCOUNT AMOUNT [; NOTE] <-- posting " ACCOUNT AMOUNT [; NOTE] <-- posting
syn region ledgerTransaction start=/^[[:digit:]~]/ skip=/^\s/ end=/^/ syn region ledgerTransaction start=/^[[:digit:]~=]/ skip=/^\s/ end=/^/
\ fold keepend transparent contains=ledgerTransactionDate,ledgerMetadata,ledgerPosting \ fold keepend transparent contains=ledgerTransactionDate,ledgerMetadata,ledgerPosting
syn match ledgerTransactionDate /^\d\S\+/ contained syn match ledgerTransactionDate /^\d\S\+/ contained
syn match ledgerTransactionExpression /^[=~]\s\+\zs.*/ contained
syn match ledgerPosting /^\s\+[^[:blank:];][^;]*\ze\%($\|;\)/ syn match ledgerPosting /^\s\+[^[:blank:];][^;]*\ze\%($\|;\)/
\ contained transparent contains=ledgerAccount,ledgerMetadata \ contained transparent contains=ledgerAccount,ledgerMetadata
" every space in an account name shall be surrounded by two non-spaces " every space in an account name shall be surrounded by two non-spaces
" every account name ends with a tab, two spaces or the end of the line " every account name ends with a tab, two spaces or the end of the line
syn match ledgerAccount /^\s\+\zs\%(\S\@<= \S\|\S\)\+\ze\%( \|\t\|\s*$\)/ contained syn match ledgerAccount /^\s\+\zs\%(\S\@<= \S\|\S\)\+\ze\%( \|\t\|\s*$\)/ contained
syn region ledgerPreDeclaration start=/^\(account\|payee\|commodity\|tag\)/ skip=/^\s/ end=/^/
\ fold keepend transparent
\ contains=ledgerPreDeclarationType,ledgerPreDeclarationName,ledgerPreDeclarationDirective
syn match ledgerPreDeclarationType /^\(account\|payee\|commodity\|tag\)/ contained
syn match ledgerPreDeclarationName /^\S\+\s\+\zs.*/ contained
syn match ledgerPreDeclarationDirective /^\s\+\zs\S\+/ contained
syn match ledgerComment /^;.*$/ syn match ledgerComment /^;.*$/
" comments at eol must be preceeded by at least 2 spaces / 1 tab " comments at eol must be preceeded by at least 2 spaces / 1 tab
syn region ledgerMetadata start=/\%( \|\t\|^\s\+\);/ skip=/^\s\+;/ end=/^/ syn region ledgerMetadata start=/\%( \|\t\|^\s\+\);/ skip=/^\s\+;/ end=/^/
@ -34,22 +42,27 @@ syn match ledgerTag /:[^:]\+:/hs=s+1,he=e-1 contained
syn match ledgerTag /\%(\%(;\|^tag\)[^:]\+\)\@<=[^:]\+:\ze[^:]\+$/ contained syn match ledgerTag /\%(\%(;\|^tag\)[^:]\+\)\@<=[^:]\+:\ze[^:]\+$/ contained
syn match ledgerTypedTag /\%(\%(;\|^tag\)[^:]\+\)\@<=[^:]\+::\ze[^:]\+$/ contained syn match ledgerTypedTag /\%(\%(;\|^tag\)[^:]\+\)\@<=[^:]\+::\ze[^:]\+$/ contained
syn region ledgerTagStack syn region ledgerApply
\ matchgroup=ledgerTagPush start=/^tag\>/ \ matchgroup=ledgerApply start=/^apply\>/
\ matchgroup=ledgerTagPop end=/^pop\>/ \ matchgroup=ledgerEndApply end=/^end\s\+apply\>/
\ contains=ledgerTagHead,ledgerTagStack,ledgerTransaction,ledgerComment \ contains=ledgerApplyHead,ledgerApply,ledgerTransaction,ledgerComment
syn match ledgerTagHead /\%(^tag\s\+\)\@<=\S.*$/ contained contains=ledgerTag transparent syn match ledgerApplyHead /\%(^apply\s\+\)\@<=\S.*$/ contained
highlight default link ledgerTransactionDate Constant highlight default link ledgerTransactionDate Constant
highlight default link ledgerTransactionExpression Statement
highlight default link ledgerMetadata Tag highlight default link ledgerMetadata Tag
highlight default link ledgerTypedTag Keyword highlight default link ledgerTypedTag Keyword
highlight default link ledgerTag Type highlight default link ledgerTag Type
highlight default link ledgerTagPop Tag highlight default link ledgerApply Tag
highlight default link ledgerTagPush Tag highlight default link ledgerEndApply Tag
highlight default link ledgerApplyHead Type
highlight default link ledgerAccount Identifier highlight default link ledgerAccount Identifier
highlight default link ledgerPreDeclarationType Type
highlight default link ledgerPreDeclarationName Identifier
highlight default link ledgerPreDeclarationDirective Type
" syncinc is easy: search for the first transaction. " syncinc is easy: search for the first transaction.
syn sync clear syn sync clear
syn sync match ledgerSync grouphere ledgerTransaction "^[[:digit:]~]" syn sync match ledgerSync grouphere ledgerTransaction "^[[:digit:]~=]"
let b:current_syntax = "ledger" let b:current_syntax = "ledger"