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>
or
3: f<C-N>
or
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.
I expect
'noignorecase' 'ignorecase'
3: <C-N> 3: <C-N>
foo foo
Foo Foo
3: f<C-N> 3: f<C-N>
foo foo
Foo
3: F<C-N> 3: F<C-N>
Foo foo
Foo
This is same as searching behavior. And before 7.0.068, Vim behaved as
I expect.
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.
Reproducing:
$ 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)
at normal.c:8714
#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 - [EMAIL PROTECTED]