" Language: hledger " Maintainer: Julien Moutinho " URL: http://autogeree.net/~julm/src/vim/syntax/hledger.vim " Last Change: Mon, 21 Jul 2014 00:00:00 +0200 - initial version " Usage: autocmd BufNewFile,BufRead *.hledger,*.journal,*.ledger setfiletype hledger if exists("b:current_syntax") finish endif syn clear syn sync fromstart syn sync linebreaks=1 syn match hledgerComment ";.*" syn match hledgerNumberOdd /[0-9][0-9]*/ contained syn match hledgerNumber /[0-9][0-9]*/ contained syn match hledgerAccountSeparatorOdd ":" contained syn match hledgerAccountSeparator ":" contained syn region hledgerInclude start=/^!include/ end=/^/ syn region hledgerDirective start=/^[A-Z]/ end=/^/ contains=hledgerComment syn region hledgerTransaction start=/^\d[^ ]\+/ end=/^\s*$/ syn match hledgerTransactionHead "^[0-9/]\+\( [0-9:]\+\)\?\(=[0-9/]\+\( [0-9:]\+\)\?\)\?\(\s\+[!*]\)\?" contained containedin=hledgerTransaction nextgroup=hledgerTransactionDescription syn match hledgerTransactionDate "[0-9/]\+\( [0-9:]\+\)\?" contained containedin=hledgerTransactionHead syn match hledgerTransactionDescription "\s[^;]\+"ms=s+1 contained containedin=hledgerTransaction syn match hledgerTransactionComment ";.*" contained containedin=hledgerTransaction,hledgerPosting,hledgerPostingOdd syn match hledgerPostingAmountOdd " \(\s*[^; ]\+\)\+"ms=s+0 contained containedin=hledgerPostingOdd contains=hledgerNumberOdd syn match hledgerPostingAmount " \(\s*[^; ]\+\)\+"ms=s+0 contained containedin=hledgerPosting contains=hledgerNumber syn match hledgerPostingAccountOdd "^\s\+[^; ]\([^; ]\|\s[^; ]\+\)*" contained containedin=hledgerPostingOdd nextgroup=hledgerPostingAmountOdd contains=hledgerNumberOdd,hledgerAccountSeparatorOdd syn match hledgerPostingAccount "^\s\+[^; ]\([^; ]\|\s[^; ]\+\)*" contained containedin=hledgerPosting nextgroup=hledgerPostingAmount contains=hledgerNumber,hledgerAccountSeparator syn region hledgerPostingOdd start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPosting syn region hledgerPosting start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPostingOdd syn match hledgerTag /[^;, :]\+:[^;,]*/ contained containedin=hledgerTransactionComment nextgroup=hledgerTagValue syn match hledgerTagValue /[^;, :]:[^,;]*/ms=s+2 contained containedin=hledgerTag if version >= 508 || !exists("did_hledger_syntax_inits") if version < 508 let did_hledger_syntax_inits = 1 command! -nargs=+ HiLink hi link else command! -nargs=+ HiLink hi def link endif hi SpecialKey gui=bold guifg=lightgoldenrod hi Comment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1 hi Comment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1 HiLink hledgerComment Comment hi hledgerInclude term=bold cterm=bold gui=bold hi hledgerDirective term=bold cterm=bold gui=bold hi hledgerAccountSeparatorOdd term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=gray90 hi hledgerAccountSeparator term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=lightgreen hi hledgerNumberOdd term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=gray90 hi hledgerNumber term=bold cterm=bold ctermfg=4 ctermbg=none gui=bold guifg=blue guibg=lightgreen hi hledgerPostingOdd cterm=bold ctermbg=none guibg=NONE hi hledgerPosting cterm=bold ctermbg=none guibg=NONE hi hledgerPostingAccountOdd term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=gray90 hi hledgerPostingAccount term=underline cterm=bold ctermfg=0 ctermbg=none guifg=gray30 guibg=lightgreen hi hledgerPostingAmountOdd cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=gray90 hi hledgerPostingAmount cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=DarkGoldenrod2 guibg=lightgreen hi hledgerTag term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=orange hi hledgerTagValue term=bold cterm=bold ctermfg=1 ctermbg=none gui=NONE guifg=red hi hledgerTransaction cterm=bold ctermbg=none gui=bold hi hledgerTransactionComment term=bold cterm=bold ctermfg=6 ctermbg=none gui=bold guifg=#4169E1 hi hledgerTransactionDate cterm=bold ctermfg=5 ctermbg=none gui=bold guibg=lightgoldenrod hi hledgerTransactionDescription cterm=bold ctermfg=5 ctermbg=none gui=bold hi hledgerTransactionHead term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=purple guibg=lightgoldenrod delcommand HiLink endif let b:current_syntax = "hledger"