diff options
| author | Martin Bielik <mx.bielik@gmail.com> | 2023-04-15 12:19:31 +0200 |
|---|---|---|
| committer | Martin Bielik <mx.bielik@gmail.com> | 2023-04-15 12:19:31 +0200 |
| commit | fd2bfb7a8a14aa9e908eff289a542f003dccfc04 (patch) | |
| tree | 90a97a95a4087473255c7ffbca4c35bb8b4c3394 /autoload/vim_ai_config.vim | |
| parent | 8f6c7ae590b179f2ec02142f57b2e9c3e81ac9fe (diff) | |
| download | vim-ai-fd2bfb7a8a14aa9e908eff289a542f003dccfc04.tar.gz | |
moving files to autoload
Diffstat (limited to '')
| -rw-r--r-- | autoload/vim_ai_config.vim | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/autoload/vim_ai_config.vim b/autoload/vim_ai_config.vim new file mode 100644 index 0000000..1b66b8e --- /dev/null +++ b/autoload/vim_ai_config.vim @@ -0,0 +1,75 @@ +echom "loading vim_ai_config" +let g:vim_ai_complete_default = { +\ "engine": "complete", +\ "options": { +\ "model": "text-davinci-003", +\ "max_tokens": 1000, +\ "temperature": 0.1, +\ "request_timeout": 20, +\ }, +\} +let g:vim_ai_edit_default = { +\ "engine": "complete", +\ "options": { +\ "model": "text-davinci-003", +\ "max_tokens": 1000, +\ "temperature": 0.1, +\ "request_timeout": 20, +\ }, +\} + +let s:initial_chat_prompt =<< trim END +>>> system + +You are a general assistant. +If you attach a code block add syntax type after ``` to enable syntax highlighting. +END +let g:vim_ai_chat_default = { +\ "options": { +\ "model": "gpt-3.5-turbo", +\ "max_tokens": 1000, +\ "temperature": 1, +\ "request_timeout": 20, +\ "initial_prompt": s:initial_chat_prompt, +\ }, +\ "ui": { +\ "open_chat_command": "below new | call vim_ai#MakeScratchWindow()", +\ "scratch_buffer_keep_open": 0, +\ "populate_options": 0, +\ "code_syntax_enabled": 1, +\ }, +\} + +if !exists("g:vim_ai_debug") + let g:vim_ai_debug = 0 +endif + +if !exists("g:vim_ai_debug_log_file") + let g:vim_ai_debug_log_file = "/tmp/vim_ai_debug.log" +endif + +function! s:ExtendDeep(defaults, override) abort + let l:result = a:defaults + for [l:key, l:value] in items(a:override) + if type(get(l:result, l:key)) is v:t_dict && type(l:value) is v:t_dict + call s:ExtendDeep(l:result[l:key], l:value) + else + let l:result[l:key] = l:value + endif + endfor + return l:result +endfunction + +function! s:MakeConfig(config_name) abort + let l:defaults = copy(g:[a:config_name . "_default"]) + let l:override = exists("g:" . a:config_name) ? g:[a:config_name] : {} + let g:[a:config_name] = s:ExtendDeep(l:defaults, l:override) +endfunction + +call s:MakeConfig("vim_ai_chat") +call s:MakeConfig("vim_ai_complete") +call s:MakeConfig("vim_ai_edit") + +function! vim_ai_config#load() + echom "[vim-ai] config loaded" +endfunction |