diff options
author | Johann Klähn <kljohann@gmail.com> | 2012-04-22 15:42:28 +0200 |
---|---|---|
committer | Johann Klähn <kljohann@gmail.com> | 2012-04-22 15:42:28 +0200 |
commit | 55256d7445a4429831c43478c7c90cb8d4fe267b (patch) | |
tree | 4b82e2d8a74dbc74e504bb169a91db7d80c94762 /contrib/vim | |
parent | dc0264aca176860f66b680d6e1f85abd8372dcb9 (diff) | |
download | fork-ledger-55256d7445a4429831c43478c7c90cb8d4fe267b.tar.gz fork-ledger-55256d7445a4429831c43478c7c90cb8d4fe267b.tar.bz2 fork-ledger-55256d7445a4429831c43478c7c90cb8d4fe267b.zip |
vim. update syntax file
Diffstat (limited to 'contrib/vim')
-rw-r--r-- | contrib/vim/syntax/ledger.vim | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/contrib/vim/syntax/ledger.vim b/contrib/vim/syntax/ledger.vim index 73aaa0c3..c2962742 100644 --- a/contrib/vim/syntax/ledger.vim +++ b/contrib/vim/syntax/ledger.vim @@ -17,15 +17,23 @@ syntax clear " DATE[=EDATE] [*|!] [(CODE)] DESC <-- first line of transaction " 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 syn match ledgerTransactionDate /^\d\S\+/ contained +syn match ledgerTransactionExpression /^[=~]\s\+\zs.*/ contained syn match ledgerPosting /^\s\+[^[:blank:];][^;]*\ze\%($\|;\)/ \ contained transparent contains=ledgerAccount,ledgerMetadata " 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 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 /^;.*$/ " comments at eol must be preceeded by at least 2 spaces / 1 tab 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 ledgerTypedTag /\%(\%(;\|^tag\)[^:]\+\)\@<=[^:]\+::\ze[^:]\+$/ contained -syn region ledgerTagStack - \ matchgroup=ledgerTagPush start=/^tag\>/ - \ matchgroup=ledgerTagPop end=/^pop\>/ - \ contains=ledgerTagHead,ledgerTagStack,ledgerTransaction,ledgerComment -syn match ledgerTagHead /\%(^tag\s\+\)\@<=\S.*$/ contained contains=ledgerTag transparent +syn region ledgerApply + \ matchgroup=ledgerApply start=/^apply\>/ + \ matchgroup=ledgerEndApply end=/^end\s\+apply\>/ + \ contains=ledgerApplyHead,ledgerApply,ledgerTransaction,ledgerComment +syn match ledgerApplyHead /\%(^apply\s\+\)\@<=\S.*$/ contained highlight default link ledgerTransactionDate Constant +highlight default link ledgerTransactionExpression Statement highlight default link ledgerMetadata Tag highlight default link ledgerTypedTag Keyword highlight default link ledgerTag Type -highlight default link ledgerTagPop Tag -highlight default link ledgerTagPush Tag +highlight default link ledgerApply Tag +highlight default link ledgerEndApply Tag +highlight default link ledgerApplyHead Type 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. syn sync clear -syn sync match ledgerSync grouphere ledgerTransaction "^[[:digit:]~]" +syn sync match ledgerSync grouphere ledgerTransaction "^[[:digit:]~=]" let b:current_syntax = "ledger" |