summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2023-04-22 17:05:18 +0200
committerMartin Bielik <mx.bielik@gmail.com>2023-04-22 17:05:18 +0200
commit4b3f4339e643bb7cae9065fb4129bdbfaf0b2dcf (patch)
tree01bcce6d3ba0f09352f8d4d98d65a2bdc733336c /autoload
parent12aae5adeaa393eecb424e9ffdc458616b2083f1 (diff)
downloadvim-ai-4b3f4339e643bb7cae9065fb4129bdbfaf0b2dcf.tar.gz
open_chat_command presets
Diffstat (limited to 'autoload')
-rw-r--r--autoload/vim_ai.vim6
-rw-r--r--autoload/vim_ai_config.vim8
2 files changed, 12 insertions, 2 deletions
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim
index 7206431..5d8ee79 100644
--- a/autoload/vim_ai.vim
+++ b/autoload/vim_ai.vim
@@ -136,7 +136,11 @@ function! vim_ai#AIChatRun(is_selection, config, ...) range
call win_gotoid(l:chat_win_id)
else
" open new chat window
- execute g:vim_ai_chat['ui']['open_chat_command']
+ 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
endif
endif
diff --git a/autoload/vim_ai_config.vim b/autoload/vim_ai_config.vim
index 3b182c0..ca8273e 100644
--- a/autoload/vim_ai_config.vim
+++ b/autoload/vim_ai_config.vim
@@ -35,13 +35,19 @@ let g:vim_ai_chat_default = {
\ "initial_prompt": s:initial_chat_prompt,
\ },
\ "ui": {
-\ "open_chat_command": "below new | call vim_ai#MakeScratchWindow()",
+\ "open_chat_command": "preset_below",
\ "scratch_buffer_keep_open": 0,
\ "populate_options": 0,
\ "code_syntax_enabled": 1,
\ },
\}
+let g:vim_ai_open_chat_presets = {
+\ "preset_below": "below new | call vim_ai#MakeScratchWindow()",
+\ "preset_tab": "tabnew | call vim_ai#MakeScratchWindow()",
+\ "preset_right": "rightbelow 55vnew | setlocal noequalalways | setlocal winfixwidth | call vim_ai#MakeScratchWindow()",
+\}
+
if !exists("g:vim_ai_debug")
let g:vim_ai_debug = 0
endif