initial commit

This commit is contained in:
Balakrishnan Balasubramanian 2023-05-27 00:29:20 -04:00
commit a1c5082583
3 changed files with 52 additions and 0 deletions

1
README.md Normal file
View File

@ -0,0 +1 @@
# Smart Whole line completion

23
exp.txt Normal file
View 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
View 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