Correction : vim/syntax/hledger.vim
authorJulien Moutinho <julm+tool+hledger@autogeree.net>
Tue, 29 Jul 2014 02:10:04 +0000 (04:10 +0200)
committerJulien Moutinho <julm+tool+hledger@autogeree.net>
Tue, 29 Jul 2014 02:10:15 +0000 (04:10 +0200)
vim/syntax/hledger.vim

index 3f58d7a..1943692 100644 (file)
@@ -8,7 +8,6 @@ if exists("b:current_syntax")
        finish
  endif
 
-
 syn clear
 syn sync fromstart
 syn sync linebreaks=1
@@ -22,41 +21,53 @@ 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 hledgerTransaction            start=/^\d[^  ]\+/ end=/^\s*$/
+syn match  hledgerTransactionHead        "^[0-9/]\+\(=[0-9/]\+\)\?\(\s\+[!*]\)\?" contained containedin=hledgerTransaction nextgroup=hledgerTransactionDescription
+syn match  hledgerTransactionDate        "[0-9/]\+" contained containedin=hledgerTransactionHead
+syn match  hledgerTransactionDescription "\s[^;]\+"ms=s+1 contained containedin=hledgerTransaction
+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  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\+[^;         ][^;    ]*" 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 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+1  contained containedin=hledgerTag
+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")
-       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
+       if version < 508
+               let did_hledger_syntax_inits = 1
+               command! -nargs=+ HiLink hi link <args>
+       else
+               command! -nargs=+ HiLink hi def link <args>
+        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                      guibg=lightgoldenrod
+       hi hledgerTransactionHead        term=bold      cterm=bold ctermfg=3 ctermbg=none gui=bold guifg=black          guibg=lightgreen
+       delcommand HiLink
  endif
 
 let b:current_syntax = "hledger"