summaryrefslogtreecommitdiff
path: root/py/context.py
diff options
context:
space:
mode:
authorMartin Bielik <martin.bielik@instea.sk>2024-12-17 23:13:01 +0100
committerMartin Bielik <martin.bielik@instea.sk>2024-12-17 23:13:01 +0100
commit506669af3fc44869c5ab819e2d3b43a51b3c88a8 (patch)
tree6a018f26167de1bfcf377d0e8ed3163bf6eebef0 /py/context.py
parentdda1a41e00499ac9fd304bb87a1f521afa0fef1d (diff)
downloadvim-ai-506669af3fc44869c5ab819e2d3b43a51b3c88a8.tar.gz
special role
Diffstat (limited to 'py/context.py')
-rw-r--r--py/context.py14
1 files changed, 7 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