diff options
Diffstat (limited to '')
| -rw-r--r-- | plugin/vim-ai.vim | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/plugin/vim-ai.vim b/plugin/vim-ai.vim index 1d03177..5d156c3 100644 --- a/plugin/vim-ai.vim +++ b/plugin/vim-ai.vim @@ -4,8 +4,19 @@ if !has('python3') finish endif -command! -range -nargs=? AI <line1>,<line2>call vim_ai#AIRun(<range>, {}, <f-args>) -command! -range -nargs=? AIEdit <line1>,<line2>call vim_ai#AIEditRun(<range>, {}, <f-args>) -command! -range -nargs=? AIChat <line1>,<line2>call vim_ai#AIChatRun(<range>, {}, <f-args>) -command! -nargs=? AINewChat call vim_ai#AINewChatRun(<f-args>) -command! AIRedo call vim_ai#AIRedoRun() +" detect if a visual selection is pending: https://stackoverflow.com/a/20133772 +let g:vim_ai_is_selection_pending = 0 +augroup vim_ai + autocmd! + autocmd CursorMoved * + \ let g:vim_ai_is_selection_pending = mode() =~# "^[vV\<C-v>]" +augroup END + +command! -range -nargs=? AI <line1>,<line2>call vim_ai#AIRun({}, <q-args>) +command! -range -nargs=? AIEdit <line1>,<line2>call vim_ai#AIEditRun({}, <q-args>) +" Whereas AI and AIEdit default to passing the current line as range +" AIChat defaults to passing nothing which is achieved by -range=0 and passing +" <count> as described at https://stackoverflow.com/a/20133772 +command! -range=0 -nargs=? AIChat <line1>,<line2>call vim_ai#AIChatRun(<count>, {}, <q-args>) +command! -nargs=? AINewChat call vim_ai#AINewChatRun(<q-args>) +command! AIRedo call vim_ai#AIRedoRun() |