summaryrefslogtreecommitdiff
path: root/py/complete.py
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2023-03-14 19:10:09 +0100
committerMartin Bielik <mx.bielik@gmail.com>2023-03-14 19:10:09 +0100
commit641ac91387da52197d31a0e6bc5a06e28281f0e1 (patch)
treef75cf68bb73eb26898f272b5550ea4a1774ced9d /py/complete.py
parent9545d08a879380d47901a7398c0c3aa6972933bf (diff)
downloadvim-ai-641ac91387da52197d31a0e6bc5a06e28281f0e1.tar.gz
ctrl c to cancel completion
Diffstat (limited to 'py/complete.py')
-rw-r--r--py/complete.py42
1 files changed, 24 insertions, 18 deletions
diff --git a/py/complete.py b/py/complete.py
index 705dd90..9e46d63 100644
--- a/py/complete.py
+++ b/py/complete.py
@@ -8,22 +8,28 @@ prompt = vim.eval("prompt")
openai.api_key = load_api_key()
-if prompt.strip():
-
- response = openai.Completion.create(
- model="text-davinci-003",
- prompt=prompt,
- max_tokens=1000,
- temperature=0.1,
- stream=True,
- )
-
- generating_text = False
- for resp in response:
- text = resp['choices'][0].get('text', '')
- if not text.strip() and not generating_text:
- continue # trim newlines from the beginning
-
- generating_text = True
- vim.command("normal! a" + text)
+try:
+ if prompt.strip():
+
+ print('Completing...')
vim.command("redraw")
+
+ response = openai.Completion.create(
+ model="text-davinci-003",
+ prompt=prompt,
+ max_tokens=1000,
+ temperature=0.1,
+ stream=True,
+ )
+
+ generating_text = False
+ for resp in response:
+ text = resp['choices'][0].get('text', '')
+ if not text.strip() and not generating_text:
+ continue # trim newlines from the beginning
+
+ generating_text = True
+ vim.command("normal! a" + text)
+ vim.command("redraw")
+except KeyboardInterrupt:
+ vim.command("normal! a Ctrl-C...")