summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/context.py14
-rw-r--r--py/roles.py2
-rw-r--r--py/utils.py2
3 files changed, 11 insertions, 7 deletions
diff --git a/py/context.py b/py/context.py
index 2644bae..581f8ad 100644
--- a/py/context.py
+++ b/py/context.py
@@ -105,15 +105,15 @@ def parse_role_names(prompt):
def parse_prompt_and_role_config(user_instruction, command_type):
user_instruction = user_instruction.strip()
roles = parse_role_names(user_instruction)
- if not roles:
- # does not require role
- return (user_instruction, {})
- last_role = roles[-1]
+ last_role = roles[-1] if roles else ''
user_prompt = user_instruction[user_instruction.index(last_role) + len(last_role):].strip() # strip roles
-
- parsed_role = merge_deep([load_role_config(role) for role in roles])
- config = merge_deep([parsed_role['role_default'], parsed_role['role_' + command_type]])
+ role_results = [load_role_config(role) for role in [DEFAULT_ROLE_NAME] + roles]
+ parsed_role = merge_deep(role_results)
+ config = merge_deep([
+ parsed_role.get('role_default', {}),
+ parsed_role.get('role_' + command_type, {}),
+ ])
role_prompt = config.get('prompt', '')
return user_prompt, config
diff --git a/py/roles.py b/py/roles.py
index 94bcdb4..bb5356e 100644
--- a/py/roles.py
+++ b/py/roles.py
@@ -16,4 +16,6 @@ def load_ai_role_names(command_type):
if len(parts) == 1 or parts[-1] == command_type:
role_names.add(parts[0])
+ role_names = [name for name in role_names if name != DEFAULT_ROLE_NAME]
+
return list(role_names)
diff --git a/py/utils.py b/py/utils.py
index 89bef3e..931eeab 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -15,6 +15,8 @@ import configparser
utils_py_imported = True
+DEFAULT_ROLE_NAME = 'default'
+
def is_ai_debugging():
return vim.eval("g:vim_ai_debug") == "1"