diff options
Diffstat (limited to 'py')
| -rw-r--r-- | py/context.py | 14 | ||||
| -rw-r--r-- | py/roles.py | 2 | ||||
| -rw-r--r-- | py/utils.py | 2 |
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" |