From 6e2e51b154d526c1ab0b506bb2110b45421b7a06 Mon Sep 17 00:00:00 2001 From: w0rp Date: Sat, 29 Aug 2020 17:27:53 +0100 Subject: [PATCH] Fix #2971 - Disable automatic completion while 'paste' is active --- autoload/ale/completion.vim | 11 +++++++---- doc/ale.txt | 6 ++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/autoload/ale/completion.vim b/autoload/ale/completion.vim index f6a0c350..5035bbf0 100644 --- a/autoload/ale/completion.vim +++ b/autoload/ale/completion.vim @@ -324,6 +324,12 @@ function! ale#completion#AutomaticOmniFunc(findstart, base) abort endif endfunction +function! s:OpenCompletionMenu(...) abort + if !&l:paste + call ale#util#FeedKeys("\(ale_show_completion_menu)") + endif +endfunction + function! ale#completion#Show(result) abort if ale#util#Mode() isnot# 'i' return @@ -344,10 +350,7 @@ function! ale#completion#Show(result) abort let l:source = get(get(b:, 'ale_completion_info', {}), 'source', '') if l:source is# 'ale-automatic' || l:source is# 'ale-manual' - call timer_start( - \ 0, - \ {-> ale#util#FeedKeys("\(ale_show_completion_menu)")} - \) + call timer_start(0, function('s:OpenCompletionMenu')) endif if l:source is# 'ale-callback' diff --git a/doc/ale.txt b/doc/ale.txt index 5ec542f9..be49b6e9 100644 --- a/doc/ale.txt +++ b/doc/ale.txt @@ -463,6 +463,9 @@ is loaded. The delay for completion can be configured with |g:ale_completion_delay|. This setting should not be enabled if you wish to use ALE as a completion source for other plugins. +ALE automatic completion will not work when 'paste' is active. Only set +'paste' when you are copy and pasting text into your buffers. + ALE provides an 'omnifunc' function |ale#completion#OmniFunc| for triggering completion manually with CTRL-X CTRL-O. |i_CTRL-X_CTRL-O| > @@ -729,6 +732,9 @@ g:ale_completion_enabled *g:ale_completion_enabled* This setting should not be enabled if you wish to use ALE as a completion source for other completion plugins. + ALE automatic completion will not work when 'paste' is active. Only set + 'paste' when you are copy and pasting text into your buffers. + A buffer-local version of this setting `b:ale_completion_enabled` can be set to `0` to disable ALE's automatic completion support for a single buffer. ALE's completion support must be enabled globally to be enabled locally.