" 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/]\+\)\?\(\s\+[!*]\)\?" contained containedin=hledgerTransaction syn match hledgerTransactionDate "[0-9/]\+" contained containedin=hledgerTransactionHead syn match hledgerTransactionComment ";.*" contained containedin=hledgerTransaction,hledgerPosting,hledgerPostingOdd syn region hledgerPostingOdd start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPosting syn region hledgerPosting start=/^\s\+[^; ]/ end=/^/ contained containedin=hledgerTransaction nextgroup=hledgerPostingOdd syn match hledgerPostingAccountOdd "^\s\+[^; ][^; ]*" contained containedin=hledgerPostingOdd nextgroup=hledgerPostingAmountOdd contains=hledgerNumberOdd,hledgerAccountSeparatorOdd syn match hledgerPostingAccount "^\s\+[^; ][^; ]*" contained containedin=hledgerPosting nextgroup=hledgerPostingAmount contains=hledgerNumber,hledgerAccountSeparator syn match hledgerPostingAmountOdd " *\([^;]*\|$\)" contained containedin=hledgerPostingOdd contains=hledgerNumberOdd syn match hledgerPostingAmount " *\([^;]*\|$\)" contained containedin=hledgerPosting contains=hledgerNumber syn match hledgerTag /[^:, ]\+:[^,]*/ contained containedin=hledgerTransactionComment nextgroup=hledgerTagValue syn match hledgerTagValue /:[^,]*/ms=s+1 contained containedin=hledgerTag if version >= 508 || !exists("did_hledger_syntax_inits") hi hledgerComment term=bold cterm=bold ctermfg=6 ctermbg=0 gui=bold guifg=#4169E1 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=black guibg=gray90 hi hledgerAccountSeparator term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black 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=gray90 hi hledgerPosting cterm=bold ctermbg=none guibg=lightgreen 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 guibg=gray90 hi hledgerPostingAmount cterm=bold ctermfg=3 ctermbg=none gui=bold 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 hledgerTransactionHead term=bold cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black guibg=lightgreen endif let b:current_syntax = "hledger"