diff options
author | John Wiegley <johnw@newartisans.com> | 2009-01-28 17:16:20 -0400 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2009-01-28 17:16:20 -0400 |
commit | 024e10cbfad2e17e76223219cf7271557019d739 (patch) | |
tree | 6c0af4de3f1129d78f1259c354330a557a6f725c /contrib/ledger.vim | |
parent | e08959aab6d7d6adcb23912e38303f90f865e055 (diff) | |
download | fork-ledger-024e10cbfad2e17e76223219cf7271557019d739.tar.gz fork-ledger-024e10cbfad2e17e76223219cf7271557019d739.tar.bz2 fork-ledger-024e10cbfad2e17e76223219cf7271557019d739.zip |
Updated ledger.vim to the latest version.
Diffstat (limited to 'contrib/ledger.vim')
-rw-r--r-- | contrib/ledger.vim | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/contrib/ledger.vim b/contrib/ledger.vim index df63feb8..2efce5be 100644 --- a/contrib/ledger.vim +++ b/contrib/ledger.vim @@ -1,19 +1,24 @@ " Vim syntax file " filetype: ledger -" Version: 0.0.2 +" Version: 0.0.4 +" by Stefan Karrmann; Use according to the terms of the GPL>=2. " by Wolfgang Oertl; Use according to the terms of the GPL>=2. " Revision history -" 2005-02-05 first version (partly copied from ledger.vim 0.0.1) - +" 2009-01-28 S.Karrmann: minor fixes +" 2009-01-27 third version by S.Karrmann. +" better extraction of the amount of the transaction +" decimal separator can be one of '.' and ','. +" 2005-02-05 first version (partly copied from ledger.vim 0.0.1) + if version < 600 - syntax clear + syntax clear elseif exists("b:current_sytax") - finish + finish endif - + " for debugging syntax clear - + " region: a normal transaction syn region transNorm start=/^\d/ skip=/^\s/ end=/^/ fold keepend transparent contains=transDate syn match transDate /^\d\S\+/ contained @@ -21,26 +26,30 @@ syn match Comment /^;.*$/ " highlight default link transNorm Question highlight default link Comment SpecialKey highlight default link transDate Question - + " folding: how to represent a transaction in one line. -function! MyFoldText() - let line = strpart(getline(v:foldstart), 0, 65) +function! LedgerFoldText() + let line = strpart(getline(v:foldstart), 0, 99) " get the amount at the end of the second line let line2 = getline(v:foldstart+1) - let pos = match(line2, "[0-9.]*$") - let line2 = strpart(line2, pos) + let lst = matchlist(line2,'\([0-9]\+\%([,.][0-9]\+\)\=\|[,.][0-9]\+\)\s*\%([A-Za-z$€¢]\+\s*\)\=\%(\s*;.*\)\=$') + if (len(lst) == 0) + let line2 = "" + else + let line2 = lst[1] + endif let pad_len = 80 - strlen(line) - strlen(line2) - if (pad_len < 0) then + if (pad_len < 0) pad_len = 0 endif let pad = strpart(" ", 0, pad_len) return line . pad . line2 endfunction -set foldtext=MyFoldText() +set foldtext=LedgerFoldText() set foldmethod=syntax - + " syncinc is easy: search for the first transaction. syn sync clear syn sync match ledgerSync grouphere transNorm "^\d" - + let b:current_syntax = "ledger" |