summaryrefslogtreecommitdiff
path: root/py/roles.py
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2024-03-11 21:45:41 +0100
committerGitHub <noreply@github.com>2024-03-11 21:45:41 +0100
commit1ae3ebccf6d790e669311d9556335a8fa55b07cc (patch)
tree3ff148f263f708ee6861a8a4671b8675be6a678d /py/roles.py
parent5709ab1ce75f05e9b57bf052f3ad92aa74f61c16 (diff)
parent881fd24a6d2c0de387256b4d6e05f5d0a53cc8e2 (diff)
downloadvim-ai-1ae3ebccf6d790e669311d9556335a8fa55b07cc.tar.gz
Merge pull request #87 from Konfekt/custom-roles
Ensure role config file exists and optional Vim source
Diffstat (limited to '')
-rw-r--r--py/roles.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/py/roles.py b/py/roles.py
index 7c7cf13..6e0a52e 100644
--- a/py/roles.py
+++ b/py/roles.py
@@ -3,9 +3,19 @@ import os
import configparser
roles_config_path = os.path.expanduser(vim.eval("g:vim_ai_roles_config_file"))
+if not os.path.exists(roles_config_path):
+ raise Exception(f"Role config file does not exist: {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 + "()"))
+
role_names = [name for name in roles.sections() if not '.' in name]
role_list = [f'"{name}"' for name in role_names]