summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--README.md5
-rw-r--r--autoload/vim_ai.vim6
-rw-r--r--autoload/vim_ai_config.vim8
-rw-r--r--doc/vim-ai.txt2
4 files changed, 15 insertions, 6 deletions
diff --git a/README.md b/README.md
index 91808de..5d47090 100644
--- a/README.md
+++ b/README.md
@@ -230,7 +230,7 @@ END
" - options.request_timeout: request timeout in seconds
" - options.selection_boundary: seleciton prompt wrapper
" - ui.populate_options: put [chat-options] to the chat header
-" - ui.open_chat_command: customize how to open chat window
+" - ui.open_chat_command: preset (preset_below, preset_tab, preset_right) or a custom command
" - ui.scratch_buffer_keep_open: re-use scratch buffer within the vim session
let g:vim_ai_chat = {
\ "options": {
@@ -244,7 +244,7 @@ let g:vim_ai_chat = {
\ "ui": {
\ "code_syntax_enabled": 1,
\ "populate_options": 0,
-\ "open_chat_command": "below new | call vim_ai#MakeScratchWindow()",
+\ "open_chat_command": "preset_below",
\ "scratch_buffer_keep_open": 0,
\ },
\}
@@ -252,7 +252,6 @@ let g:vim_ai_chat = {
" Tips:
" "open_chat_command":
" - "below new /tmp/last_conversation.aichat" - restore converstaion from a file
-" - "tabnew | call vim_ai#MakeScratchWindow()" - open chat in a new tab
```
### Using chat engine for completion and edits
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
diff --git a/doc/vim-ai.txt b/doc/vim-ai.txt
index 396fb95..d4ce47e 100644
--- a/doc/vim-ai.txt
+++ b/doc/vim-ai.txt
@@ -83,7 +83,7 @@ Options: >
\ "ui": {
\ "code_syntax_enabled": 1,
\ "populate_options": 0,
- \ "open_chat_command": "below new | call vim_ai#MakeScratchWindow()",
+ \ "open_chat_command": "preset_below",
\ "scratch_buffer_keep_open": 0,
\ },
\}