initial commit
This commit is contained in:
commit
a1c5082583
23
exp.txt
Normal file
23
exp.txt
Normal file
@ -0,0 +1,23 @@
|
||||
|
||||
fo
|
||||
bar
|
||||
bar
|
||||
hello
|
||||
bar
|
||||
hello
|
||||
hello
|
||||
f
|
||||
abcd
|
||||
fo
|
||||
hello
|
||||
fo
|
||||
bcd
|
||||
hello world and ha ha ha
|
||||
foo bar and ha ha ha
|
||||
xdfadf bar and ha ha he
|
||||
skafjds bar and ha ha ha
|
||||
hello ha ha ha
|
||||
foob and ha ha ha
|
||||
skafjds bar and ha ha ha
|
||||
|
||||
|
28
lc.vim
Normal file
28
lc.vim
Normal file
@ -0,0 +1,28 @@
|
||||
vim9script
|
||||
|
||||
def GetMatch(b: string, l: string): list<any>
|
||||
var s = b
|
||||
while stridx(l, s) == -1
|
||||
s = strpart(s, 1)
|
||||
if strlen(s) == 0
|
||||
return [0, ""]
|
||||
endif
|
||||
endwhile
|
||||
const idx = stridx(l, s)
|
||||
const slen = strlen(s)
|
||||
return [slen, b .. strpart(l, idx + slen)]
|
||||
enddef
|
||||
|
||||
export def WholeLineCompl(f: bool, b: string): any
|
||||
if f
|
||||
return 0
|
||||
endif
|
||||
return getline(0, '$')
|
||||
->sort()
|
||||
->uniq()
|
||||
->map( (_, v) => GetMatch(b, v) )
|
||||
->sort( (x, y) => y[0] - x[0] )
|
||||
->map( (_, v) => v[1] )
|
||||
enddef
|
||||
|
||||
setlocal completefunc=WholeLineCompl
|
Loading…
Reference in New Issue
Block a user