aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Chu2016-06-08 05:27:48 +0000
committerJason Chu2016-06-12 23:09:15 +0000
commitd3aef2a9bee0962cff93f5a68588d558559f46a6 (patch)
tree75f64733509c544ea12f0cec93503e647531f656
parent8d13b147c6feb68af10112c3d2c6dccd1a4aead4 (diff)
downloadvim-beancount-d3aef2a9bee0962cff93f5a68588d558559f46a6.tar.gz
Add a function to display the current line's beancount context in a scratch window
-rw-r--r--autoload/beancount.vim9
-rw-r--r--doc/beancount.txt10
-rw-r--r--ftplugin/beancount.vim3
3 files changed, 22 insertions, 0 deletions
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 <buffer> <leader>= :AlignCommodity<CR>
<
+ *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 <buffer> <LocalLeader>c :GetContext<CR>
+<
+
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(<line1>, <line2>)
+command! -buffer -range GetContext
+ \ :call beancount#get_context()
+
" Omnifunc for account completion.
setl omnifunc=beancount#complete_account