diff options
Diffstat (limited to '')
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | autoload/vim_ai.vim | 6 | ||||
| -rw-r--r-- | autoload/vim_ai_config.vim | 8 | ||||
| -rw-r--r-- | doc/vim-ai.txt | 2 |
4 files changed, 15 insertions, 6 deletions
@@ -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, \ }, \} |