From 27ee959366ab8b5aebc2d0db6f508ebdc84519b6 Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Sat, 22 Apr 2023 17:29:58 +0200 Subject: added AINewChat command --- autoload/vim_ai.vim | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'autoload') 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 - 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" -- cgit v1.2.3