summaryrefslogtreecommitdiff
path: root/vim-ai.vim
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2023-02-26 22:11:45 +0100
committerMartin Bielik <mx.bielik@gmail.com>2023-02-27 21:26:18 +0100
commite69475498a21df2934ff1c2e87fad6cfa942dc5a (patch)
treeb0861fa5a31bd74ecdd6449551c35fc1215a3472 /vim-ai.vim
parentd1b2c4ceb93e35012f9a6ff7e63c3340e1d39578 (diff)
downloadvim-ai-e69475498a21df2934ff1c2e87fad6cfa942dc5a.tar.gz
initial ai completion
Diffstat (limited to 'vim-ai.vim')
-rw-r--r--vim-ai.vim19
1 files changed, 19 insertions, 0 deletions
diff --git a/vim-ai.vim b/vim-ai.vim
new file mode 100644
index 0000000..f98fe1c
--- /dev/null
+++ b/vim-ai.vim
@@ -0,0 +1,19 @@
+let g:openaiToken = system("cat ~/.config/openai.token")
+
+function! AIRun() range
+ execute a:firstline . ',' . a:lastline . 'd'
+
+ let selection = @*
+ call writefile(split(selection, "\n"), "/tmp/vim-ai.temp")
+
+ echo "Working..."
+ let output = system("cat /tmp/vim-ai.temp | openai complete - -t " . g:openaiToken)
+
+ call feedkeys("i")
+ call feedkeys(output)
+ call feedkeys("\<Esc>")
+endfunction
+
+command! -range AI <line1>,<line2>call AIRun()
+nnoremap <leader>o :call AIRun()<CR>
+vnoremap <leader>o :call AIRun()<CR>