summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Bielik <martin.bielik@instea.sk>2024-12-07 21:39:34 +0100
committerMartin Bielik <martin.bielik@instea.sk>2024-12-07 21:39:34 +0100
commit946ac0d45d4dab7c80d4e2a96957cd6dc87a75ba (patch)
tree4784d0c0964af61977ed000c245fc15027379e4d
parent6366dfbfb3f7422a09f061cc5f7aebeacebc22e0 (diff)
downloadvim-ai-946ac0d45d4dab7c80d4e2a96957cd6dc87a75ba.tar.gz
fixed options normalization
Diffstat (limited to '')
-rw-r--r--py/chat.py9
-rw-r--r--py/complete.py12
-rw-r--r--py/utils.py19
3 files changed, 20 insertions, 20 deletions
diff --git a/py/chat.py b/py/chat.py
index e91ea81..a3729f1 100644
--- a/py/chat.py
+++ b/py/chat.py
@@ -4,13 +4,8 @@ import vim
plugin_root = vim.eval("s:plugin_root")
vim.command(f"py3file {plugin_root}/py/utils.py")
-prompt, role_options = parse_prompt_and_role(vim.eval("l:prompt"))
-config = normalize_config(vim.eval("l:config"))
-config_options = {
- **config['options'],
- **role_options['options_default'],
- **role_options['options_chat'],
-}
+prompt, config = load_config_and_prompt()
+config_options = config['options']
config_ui = config['ui']
def initialize_chat_window():
diff --git a/py/complete.py b/py/complete.py
index 868b7ee..d7040a3 100644
--- a/py/complete.py
+++ b/py/complete.py
@@ -4,15 +4,11 @@ import vim
plugin_root = vim.eval("s:plugin_root")
vim.command(f"py3file {plugin_root}/py/utils.py")
-config = normalize_config(vim.eval("l:config"))
-engine = config['engine']
+prompt, config = load_config_and_prompt()
+config_options = config['options']
+config_ui = config['ui']
-prompt, role_options = parse_prompt_and_role(vim.eval("l:prompt"))
-config_options = {
- **config['options'],
- **role_options['options_default'],
- **role_options['options_complete'],
-}
+engine = config['engine']
is_selection = vim.eval("l:is_selection")
def complete_engine(prompt):
diff --git a/py/utils.py b/py/utils.py
index 264c0c4..7f8fa90 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -44,12 +44,21 @@ def load_api_key(config_token_file_path):
return (api_key, org_id)
-def normalize_config(config):
- normalized = { **config }
+def load_config_and_prompt():
+ prompt, role_options = parse_prompt_and_role(vim.eval("l:prompt"))
+ config = vim.eval("l:config")
+ config['options'] = {
+ **normalize_options(config['options']),
+ **normalize_options(role_options['options_default']),
+ **normalize_options(role_options['options_chat']),
+ }
+ return prompt, config
+
+def normalize_options(options):
# initial prompt can be both a string and a list of strings, normalize it to list
- if 'initial_prompt' in config['options'] and isinstance(config['options']['initial_prompt'], str):
- normalized['options']['initial_prompt'] = normalized['options']['initial_prompt'].split('\n')
- return normalized
+ if 'initial_prompt' in options and isinstance(options['initial_prompt'], str):
+ options['initial_prompt'] = options['initial_prompt'].split('\n')
+ return options
def make_openai_options(options):
max_tokens = int(options['max_tokens'])