From 17a914f628c2ac880cd1439199a9c1d4b16f0394 Mon Sep 17 00:00:00 2001 From: Konfekt Date: Thu, 14 Mar 2024 13:42:13 +0100 Subject: automatically unset &paste also after failed command --- autoload/vim_ai.vim | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim index 74515d4..936d59f 100644 --- a/autoload/vim_ai.vim +++ b/autoload/vim_ai.vim @@ -78,15 +78,13 @@ 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, ...) @@ -152,7 +150,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 @@ -183,7 +180,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 @@ -226,7 +222,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 -- cgit v1.2.3 From 50e4da43a59107e39c5523accab2ed62f9d0cedf Mon Sep 17 00:00:00 2001 From: Martin Bielik Date: Sun, 24 Mar 2024 11:55:17 +0100 Subject: consistent execution delimiter --- autoload/vim_ai.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/autoload/vim_ai.vim b/autoload/vim_ai.vim index 936d59f..875258c 100644 --- a/autoload/vim_ai.vim +++ b/autoload/vim_ai.vim @@ -83,7 +83,8 @@ function! s:set_paste(config) setlocal paste augroup AiPaste autocmd! - autocmd ModeChanged i:* exe 'set nopaste' | autocmd! AiPaste InsertLeave + autocmd ModeChanged i:* exe 'set nopaste' + autocmd! AiPaste InsertLeave augroup END endfunction -- cgit v1.2.3