summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2023-04-21 17:43:54 +0200
committerMartin Bielik <mx.bielik@gmail.com>2023-04-21 17:44:00 +0200
commit3a5283fa3808401b3f8274d42b688051e52004cf (patch)
treef33cd06e0c6066ff74a3ed714966ff617ffa4c0a /autoload
parenta939c66ec841ada2017f1c2f19c244064edb9e47 (diff)
downloadvim-ai-3a5283fa3808401b3f8274d42b688051e52004cf.tar.gz
reuse chat if it is active in current tab
Diffstat (limited to '')
-rw-r--r--autoload/vim_ai.vim10
1 files changed, 8 insertions, 2 deletions
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim
index 69a0f95..55439b2 100644
--- a/autoload/vim_ai.vim
+++ b/autoload/vim_ai.vim
@@ -117,8 +117,14 @@ function! vim_ai#AIChatRun(is_selection, ...) range
let l:lines = getline(a:firstline, a:lastline)
set paste
if &filetype != 'aichat'
- " open chat window
- execute g:vim_ai_chat['ui']['open_chat_command']
+ let l:chat_win_id = bufwinid(s:scratch_buffer_name)
+ if l:chat_win_id != -1
+ " reuse chat in active window
+ call win_gotoid(l:chat_win_id)
+ else
+ " open new chat window
+ execute g:vim_ai_chat['ui']['open_chat_command']
+ endif
let l:prompt = ""
if a:0 || a:is_selection
let l:instruction = a:0 ? a:1 : ""