diff options
Diffstat (limited to '')
| -rw-r--r-- | py/chat.py | 24 |
1 files changed, 20 insertions, 4 deletions
@@ -4,13 +4,10 @@ import openai plugin_root = vim.eval("s:plugin_root") vim.command(f"py3file {plugin_root}/py/utils.py") -options = vim.eval("options") -request_options = make_request_options() - openai.api_key = load_api_key() lines = vim.eval('getline(1, "$")') -contains_user_prompt = any(line == '>>> user' for line in lines) +contains_user_prompt = '>>> user' in lines if not contains_user_prompt: # user role not found, put whole file content as an user prompt vim.command("normal! ggO>>> user\n") @@ -18,6 +15,25 @@ if not contains_user_prompt: vim.command("let &ul=&ul") # breaks undo sequence (https://vi.stackexchange.com/a/29087) vim.command("redraw") +options_chat = {} +lines = vim.eval('getline(1, "$")') +contains_chat_options = '[chat-options]' in lines +if contains_chat_options: + # parse options that are defined in the chat header + options_index = lines.index('[chat-options]') + for line in lines[options_index + 1:]: + if line.startswith('#'): + # ignore comments + continue + if line.strip() == '': + # stop at the end of the region + break + (key, value) = line.split('=') + options_chat[key.strip()] = value.strip() + +options = make_options(options_chat) +request_options = make_request_options(options) + initial_prompt = options.get('initial_prompt', []) initial_prompt = '\n'.join(initial_prompt) file_content = vim.eval('trim(join(getline(1, "$"), "\n"))') |