From 506669af3fc44869c5ab819e2d3b43a51b3c88a8 Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Tue, 17 Dec 2024 23:13:01 +0100 Subject: special role --- py/context.py | 14 +++++++------- py/roles.py | 2 ++ py/utils.py | 2 ++ 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'py') 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" -- cgit v1.2.3