summaryrefslogtreecommitdiff
path: root/autoload
diff options
context:
space:
mode:
authorMartin Bielik <mx.bielik@gmail.com>2024-03-24 11:55:49 +0100
committerGitHub <noreply@github.com>2024-03-24 11:55:49 +0100
commitb75b5be5dcf762b76d832eae4f7814824a479e88 (patch)
treee7f1851a38c169d96618455ce05b7a8534ac01b5 /autoload
parentedd54923c2caa81066e637da50f76905bb1c3a11 (diff)
parent50e4da43a59107e39c5523accab2ed62f9d0cedf (diff)
downloadvim-ai-b75b5be5dcf762b76d832eae4f7814824a479e88.tar.gz
Merge pull request #89 from Konfekt/paste
automatically unset &paste also after failed command
Diffstat (limited to 'autoload')
-rw-r--r--autoload/vim_ai.vim20
1 files changed, 8 insertions, 12 deletions
diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim
index 47a9f03..a37ddad 100644
--- a/autoload/vim_ai.vim
+++ b/autoload/vim_ai.vim
@@ -79,15 +79,14 @@ function! s:OpenChatWindow(open_conf)
endfunction
function! s:set_paste(config)
- if a:config['ui']['paste_mode']
- setlocal paste
- endif
-endfunction
-
-function! s:set_nopaste(config)
- if a:config['ui']['paste_mode']
- setlocal nopaste
- endif
+ if !a:config['ui']['paste_mode'] | return | endif
+ if &paste | return | endif
+ setlocal paste
+ augroup AiPaste
+ autocmd!
+ autocmd ModeChanged i:* exe 'set nopaste'
+ autocmd! AiPaste InsertLeave
+ augroup END
endfunction
function! s:GetSelectionOrRange(is_selection, ...)
@@ -153,7 +152,6 @@ function! vim_ai#AIRun(config, ...) range
endif
execute "py3file " . s:complete_py
execute "normal! " . a:lastline . "G"
- call s:set_nopaste(l:config)
endfunction
" Edit prompt
@@ -184,7 +182,6 @@ function! vim_ai#AIEditRun(config, ...) range
call s:SelectSelectionOrRange(l:is_selection, a:firstline, a:lastline)
execute "normal! c"
execute "py3file " . s:complete_py
- call s:set_nopaste(l:config)
endfunction
" Start and answer the chat
@@ -227,7 +224,6 @@ function! vim_ai#AIChatRun(uses_range, config, ...) range
let s:last_config = a:config
execute "py3file " . s:chat_py
- call s:set_nopaste(l:config)
endfunction
" Start a new chat