Bram Moolenaar wrote:
> Yukihiro Nakadaira wrote:
>> There are two problems in completion. I wrote a patch. Please check
>> the following.
>> 1. 'ignorecase' does not work for completion.
>> For example, when ":set nosmartcase ignorecase" and buffer is
>> 1: foo
>> 2: Foo
>> Then, complete with
>> 3: <C-N>
>> 3: f<C-N>
>> 3: F<C-N>
>> In all cases, only "foo" is matched.
> Hmm, setting 'ignorecase' was used as a hint that case doesn't matter.
> However, when it's set just to find more matches, you will still want to
> complete words with different case, I suppose.
3: <C-N> 3: <C-N>
3: f<C-N> 3: f<C-N>
3: F<C-N> 3: F<C-N>
This is same as searching behavior. And before 7.0.068, Vim behaved as
> I wonder if this change causes a problem in combination with other
> things, such as using "longest" in 'completeopt'.
My patch seems to work with "longest". But maybe it should be tested
for other completion method. I checked only i_CTRL-X_CTRL-N.
>> 2. Completion is slow when 'completeopt' doesn't have "menu" and
>> "menuone". Until search finished, current selected item is not
>> displayed and typed key is not handled (except CTRL-C).
> I wonder when this is noticable. I do see a match displayed before the
> search is finished. Is this only in a very long file perhaps?
Yes, I worry for very long file. The unoperatable time I complained to
is only 3 or 5 seconds, but I don't like it. And I think there is no
reason to not check if key is typed while searching, only when popup
menu is not used.
By the way, I got a crash with plain vim when 'completeopt' doesn't have
"longest" and CTRL-L is used while completing.
$ vim -u NONE
:execute "normal! ifoo\n\<C-N>\<C-P>\<C-L>"
This is stacktrace.
#0 0x2889c0b9 in strlen () from /lib/libc.so.6
#1 0x08066191 in ins_compl_addfrommatch () at edit.c:3209
#2 0x080625f2 in edit (cmdchar=111, startln=1, count=1) at edit.c:753
#3 0x0811b55b in invoke_edit (cap=0xbfbfe4c0, repl=0, cmd=111, startln=1)
#4 0x0811a855 in n_opencmd (cap=0xbfbfe4c0) at normal.c:8085
#5 0x0811bd9c in nv_open (cap=0xbfbfe4c0) at normal.c:9059
#6 0x0810f810 in normal_cmd (oap=0xbfbfe530, toplevel=1) at normal.c:1137
#7 0x080d7201 in main_loop (cmdwin=0, noexmode=0) at main.c:1154
#8 0x080d6d63 in main (argc=3, argv=0xbfbfe6f8) at main.c:934
Yukihiro Nakadaira - yukihiro.nakadaira@...