summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--py/roles.py13
-rw-r--r--py/utils.py15
2 files changed, 14 insertions, 14 deletions
diff --git a/py/roles.py b/py/roles.py
index 6e0a52e..b7d19e1 100644
--- a/py/roles.py
+++ b/py/roles.py
@@ -1,6 +1,8 @@
import vim
-import os
-import configparser
+
+# import utils
+plugin_root = vim.eval("s:plugin_root")
+vim.command(f"py3file {plugin_root}/py/utils.py")
roles_config_path = os.path.expanduser(vim.eval("g:vim_ai_roles_config_file"))
if not os.path.exists(roles_config_path):
@@ -9,12 +11,7 @@ if not os.path.exists(roles_config_path):
roles = configparser.ConfigParser()
roles.read(roles_config_path)
-if vim.eval("exists('g:vim_ai_roles_config_function')") == '1':
- roles_config_function = vim.eval("g:vim_ai_roles_config_function")
- if not vim.eval("exists('*" + roles_config_function + "')"):
- raise Exception(f"Role config function does not exist: {roles_config_function}")
- else:
- roles.update(vim.eval(roles_config_function + "()"))
+enhance_roles_with_custom_function(roles)
role_names = [name for name in roles.sections() if not '.' in name]
diff --git a/py/utils.py b/py/utils.py
index 471b5c4..963377d 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -263,6 +263,14 @@ def clear_echo_message():
# https://neovim.discourse.group/t/how-to-clear-the-echo-message-in-the-command-line/268/3
vim.command("call feedkeys(':','nx')")
+def enhance_roles_with_custom_function(roles):
+ if vim.eval("exists('g:vim_ai_roles_config_function')") == '1':
+ roles_config_function = vim.eval("g:vim_ai_roles_config_function")
+ if not vim.eval("exists('*" + roles_config_function + "')"):
+ raise Exception(f"Role config function does not exist: {roles_config_function}")
+ else:
+ roles.update(vim.eval(roles_config_function + "()"))
+
def load_role_config(role):
roles_config_path = os.path.expanduser(vim.eval("g:vim_ai_roles_config_file"))
if not os.path.exists(roles_config_path):
@@ -271,12 +279,7 @@ def load_role_config(role):
roles = configparser.ConfigParser()
roles.read(roles_config_path)
- if vim.eval("exists('g:vim_ai_roles_config_function')") == '1':
- roles_config_function = vim.eval("g:vim_ai_roles_config_function")
- if not vim.eval("exists('*" + roles_config_function + "')"):
- raise Exception(f"Role config function does not exist: {roles_config_function}")
- else:
- roles.update(vim.eval(roles_config_function + "()"))
+ enhance_roles_with_custom_function(roles)
if not role in roles:
raise Exception(f"Role `{role}` not found")