From d3aef2a9bee0962cff93f5a68588d558559f46a6 Mon Sep 17 00:00:00 2001 From: Jason Chu Date: Wed, 8 Jun 2016 05:27:48 +0000 Subject: Add a function to display the current line's beancount context in a scratch window --- autoload/beancount.vim | 9 +++++++++ doc/beancount.txt | 10 ++++++++++ ftplugin/beancount.vim | 3 +++ 3 files changed, 22 insertions(+) diff --git a/autoload/beancount.vim b/autoload/beancount.vim index ba2a5cc..7ac7f3e 100644 --- a/autoload/beancount.vim +++ b/autoload/beancount.vim @@ -128,3 +128,12 @@ while files: vim.command('return [{}]'.format(','.join(repr(x) for x in sorted(accounts)))) EOM endfunction + +" Call bean-doctor on the current line and dump output into a scratch buffer +function! beancount#get_context() + let context = system('bean-doctor context ' . expand('%') . ' ' . line('.')) + botright new + setlocal buftype=nofile bufhidden=hide noswapfile + call append(0, split(context, '\v\n')) + normal! gg +endfunction diff --git a/doc/beancount.txt b/doc/beancount.txt index 03f4c17..2a2f37c 100644 --- a/doc/beancount.txt +++ b/doc/beancount.txt @@ -50,6 +50,16 @@ COMMANDS *beancount-commands* vnoremap = :AlignCommodity < + *beancount-:GetContext* +:GetContext Uses bean-doctor context to display the context of the + current line. + + You can use the following normal mode remap to open the + context of the line you're currently on: > + + nnoremap c :GetContext +< + COMPLETION *beancount-completion* diff --git a/ftplugin/beancount.vim b/ftplugin/beancount.vim index bcdc8c4..dc35999 100644 --- a/ftplugin/beancount.vim +++ b/ftplugin/beancount.vim @@ -28,5 +28,8 @@ endif command! -buffer -range AlignCommodity \ :call beancount#align_commodity(, ) +command! -buffer -range GetContext + \ :call beancount#get_context() + " Omnifunc for account completion. setl omnifunc=beancount#complete_account -- cgit v1.2.3-2-gb3c3