vim. add case of automatic transactions
This commit is contained in:
parent
84fea7f136
commit
ae3a8b6e11
1 changed files with 17 additions and 2 deletions
|
|
@ -326,14 +326,25 @@ function! s:transaction.new() dict
|
||||||
endf
|
endf
|
||||||
|
|
||||||
function! s:transaction.from_lnum(lnum) dict "{{{2
|
function! s:transaction.from_lnum(lnum) dict "{{{2
|
||||||
let head = s:get_transaction_extents(a:lnum)[0]
|
let [head, tail] = s:get_transaction_extents(a:lnum)
|
||||||
if ! head
|
if ! head
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
|
|
||||||
let trans = copy(s:transaction)
|
let trans = copy(s:transaction)
|
||||||
let trans['head'] = head
|
let trans['head'] = head
|
||||||
|
let trans['tail'] = tail
|
||||||
|
|
||||||
let parts = split(getline(head), '\s\+')
|
let parts = split(getline(head), '\s\+')
|
||||||
|
if parts[0] ==# '~'
|
||||||
|
let trans['expr'] = join(parts[1:])
|
||||||
|
return trans
|
||||||
|
elseif parts[0] !~ '^\d'
|
||||||
|
" this case is avoided in s:get_transaction_extents(),
|
||||||
|
" but we'll check anyway.
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
let description = []
|
let description = []
|
||||||
for part in parts
|
for part in parts
|
||||||
if ! has_key(trans, 'date') && part =~ '^\d'
|
if ! has_key(trans, 'date') && part =~ '^\d'
|
||||||
|
|
@ -351,6 +362,10 @@ function! s:transaction.from_lnum(lnum) dict "{{{2
|
||||||
endf "}}}
|
endf "}}}
|
||||||
|
|
||||||
function! s:transaction.format_head() dict "{{{2
|
function! s:transaction.format_head() dict "{{{2
|
||||||
|
if has_key(self, 'expr')
|
||||||
|
return '~ '.self['expr']
|
||||||
|
endif
|
||||||
|
|
||||||
let parts = []
|
let parts = []
|
||||||
if has_key(self, 'date') | call add(parts, self['date']) | endif
|
if has_key(self, 'date') | call add(parts, self['date']) | endif
|
||||||
if has_key(self, 'code') | call add(parts, '('.self['code'].')') | endif
|
if has_key(self, 'code') | call add(parts, '('.self['code'].')') | endif
|
||||||
|
|
@ -369,7 +384,7 @@ function! s:get_transaction_extents(lnum) "{{{2
|
||||||
set nofoldenable
|
set nofoldenable
|
||||||
|
|
||||||
call cursor(a:lnum, 0)
|
call cursor(a:lnum, 0)
|
||||||
let head = search('^\d\S\+', 'bcnW')
|
let head = search('^[~[:digit:]]\S\+', 'bcnW')
|
||||||
let tail = search('^[^;[:blank:]]\S\+', 'nW')
|
let tail = search('^[^;[:blank:]]\S\+', 'nW')
|
||||||
let tail = tail > head ? tail - 1 : line('$')
|
let tail = tail > head ? tail - 1 : line('$')
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue