diff options
| author | Martin Bielik <mx.bielik@gmail.com> | 2023-04-22 17:29:58 +0200 |
|---|---|---|
| committer | Martin Bielik <mx.bielik@gmail.com> | 2023-04-22 17:29:58 +0200 |
| commit | 27ee959366ab8b5aebc2d0db6f508ebdc84519b6 (patch) | |
| tree | 93c1e27cc4a574e025564301cadefd02b7962d40 /autoload | |
| parent | 4b3f4339e643bb7cae9065fb4129bdbfaf0b2dcf (diff) | |
| download | vim-ai-27ee959366ab8b5aebc2d0db6f508ebdc84519b6.tar.gz | |
added AINewChat command
Diffstat (limited to '')
| -rw-r--r-- | autoload/vim_ai.vim | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim index 5d8ee79..a87517d 100644 --- a/autoload/vim_ai.vim +++ b/autoload/vim_ai.vim @@ -69,6 +69,13 @@ function! s:MakePrompt(is_selection, lines, instruction, config) return join([l:instruction, l:delimiter, l:selection], "") endfunction +function! s:OpenChatWindow(open_conf) + let l:open_cmd = has_key(g:vim_ai_open_chat_presets, a:open_conf) + \ ? g:vim_ai_open_chat_presets[a:open_conf] + \ : a:open_conf + execute l:open_cmd +endfunction + " Complete prompt " - is_selection - <range> parameter " - config - function scoped vim_ai_complete config @@ -137,10 +144,7 @@ function! vim_ai#AIChatRun(is_selection, config, ...) range else " open new chat window let l:open_conf = g:vim_ai_chat['ui']['open_chat_command'] - let l:open_cmd = has_key(g:vim_ai_open_chat_presets, l:open_conf) - \ ? g:vim_ai_open_chat_presets[l:open_conf] - \ : l:open_conf - execute l:open_cmd + call s:OpenChatWindow(l:open_conf) endif endif @@ -159,6 +163,15 @@ function! vim_ai#AIChatRun(is_selection, config, ...) range set nopaste endfunction +" Start a new chat +" a:1 - optional preset shorcut (below, right, tab) +function! vim_ai#AINewChatRun(...) + let l:open_conf = a:0 ? "preset_" . a:1 : g:vim_ai_chat['ui']['open_chat_command'] + call s:OpenChatWindow(l:open_conf) + call vim_ai#AIChatRun(0, {}) +endfunction + +" Repeat last AI command function! vim_ai#AIRedoRun() execute "normal! u" if s:last_command == "complete" |