summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2024-03-24 11:29:43 +0100
committerGitHub <noreply@github.com>2024-03-24 11:29:43 +0100
commitedd54923c2caa81066e637da50f76905bb1c3a11 (patch)
tree160568ea3abdabbca1273acb9bc423cfa98f1a53 /autoload
parenteb333e39e17d4d5240dbbc186a65bc6e9ab6b44e (diff)
parent6a053767af08d6edfb46b4be72f05a9b3bc7be04 (diff)
downloadvim-ai-edd54923c2caa81066e637da50f76905bb1c3a11.tar.gz
Merge pull request #85 from madox2/custom-roles
Custom roles
Diffstat (limited to 'autoload')
-rw-r--r--autoload/vim_ai.vim7
-rw-r--r--autoload/vim_ai_config.vim5
2 files changed, 12 insertions, 0 deletions
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim
index 74515d4..47a9f03 100644
--- a/autoload/vim_ai.vim
+++ b/autoload/vim_ai.vim
@@ -3,6 +3,7 @@ call vim_ai_config#load()
let s:plugin_root = expand('<sfile>:p:h:h')
let s:complete_py = s:plugin_root . "/py/complete.py"
let s:chat_py = s:plugin_root . "/py/chat.py"
+let s:roles_py = s:plugin_root . "/py/roles.py"
" remembers last command parameters to be used in AIRedoRun
let s:last_is_selection = 0
@@ -249,3 +250,9 @@ function! vim_ai#AIRedoRun()
call vim_ai#AIChatRun(0, s:last_config)
endif
endfunction
+
+function! vim_ai#RoleCompletion(A,L,P) abort
+ execute "py3file " . s:roles_py
+ call map(l:role_list, '"/" . v:val')
+ return filter(l:role_list, 'v:val =~ "^' . a:A . '"')
+endfunction
diff --git a/autoload/vim_ai_config.vim b/autoload/vim_ai_config.vim
index ef3c863..41932de 100644
--- a/autoload/vim_ai_config.vim
+++ b/autoload/vim_ai_config.vim
@@ -1,3 +1,5 @@
+let s:plugin_root = expand('<sfile>:p:h:h')
+
let g:vim_ai_complete_default = {
\ "engine": "complete",
\ "options": {
@@ -73,6 +75,9 @@ endif
if !exists("g:vim_ai_token_file_path")
let g:vim_ai_token_file_path = "~/.config/openai.token"
endif
+if !exists("g:vim_ai_roles_config_file")
+ let g:vim_ai_roles_config_file = s:plugin_root . "/roles-example.ini"
+endif
function! vim_ai_config#ExtendDeep(defaults, override) abort
let l:result = a:defaults