summaryrefslogtreecommitdiff
path: root/py
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2023-04-22 11:48:44 +0200
committerMartin Bielik <mx.bielik@gmail.com>2023-04-22 11:48:44 +0200
commita138532d0dc7f71ba3b9eb4ead9576ea87707761 (patch)
treeb62567cca4579ccff9673aec4d3c6ee8ada90452 /py
parent9a90d8fc431fc424ccb664516833d837dcf7ac77 (diff)
downloadvim-ai-a138532d0dc7f71ba3b9eb4ead9576ea87707761.tar.gz
recover for unfinished chat
Diffstat (limited to 'py')
-rw-r--r--py/chat.py7
-rw-r--r--py/utils.py1
2 files changed, 8 insertions, 0 deletions
diff --git a/py/chat.py b/py/chat.py
index 93a8664..6054484 100644
--- a/py/chat.py
+++ b/py/chat.py
@@ -27,6 +27,13 @@ def initialize_chat_window():
vim_break_undo_sequence()
vim.command("redraw")
+ file_content = vim.eval('trim(join(getline(1, "$"), "\n"))')
+ role_lines = re.findall(r'(^>>> user|^>>> system|^<<< assistant).*', file_content, flags=re.MULTILINE)
+ if not role_lines[-1].startswith(">>> user"):
+ # last role is not user, most likely completion was cancelled before
+ vim.command("normal! o")
+ vim.command("normal! i\n>>> user\n\n")
+
if prompt:
vim.command("normal! a" + prompt)
vim_break_undo_sequence()
diff --git a/py/utils.py b/py/utils.py
index 9539d84..22d4079 100644
--- a/py/utils.py
+++ b/py/utils.py
@@ -5,6 +5,7 @@ import json
import urllib.error
import urllib.request
import socket
+import re
from urllib.error import URLError
is_debugging = vim.eval("g:vim_ai_debug") == "1"