mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
runtime(vim): Split Vim legacy and Vim9 script indent tests
The indent test file is not highlighted correctly as it's currently a syntactically erroneous mix of legacy and Vim9 script. This is causing spurious indent test failures as the indent script relies on syntax ID tests to determine the context of lines being processed. Splitting the tests into legacy and Vim9 specific files allows for correct syntax highlighting and indenting. closes: #16431 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
8e92db4ea2
commit
221c53202d
@ -113,284 +113,12 @@ echo 0
|
|||||||
end
|
end
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = Func(
|
|
||||||
arg1,
|
|
||||||
arg2
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = Func(arg1,
|
|
||||||
arg2)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
filter(list, (k, v) =>
|
|
||||||
v > 0)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
filter(list, (k, v) => {
|
|
||||||
const x = get(list, k, 0)
|
|
||||||
return x > 0
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if x > 0
|
|
||||||
filter(list, (k, v) => {
|
|
||||||
const x = get(list, k, 1)
|
|
||||||
return x > 0
|
|
||||||
})
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
{
|
|
||||||
var temp = 'temp'
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var text = lead
|
|
||||||
.. middle
|
|
||||||
.. end
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var text = lead ..
|
|
||||||
middle ..
|
|
||||||
end
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var total = start +
|
|
||||||
end -
|
|
||||||
correction
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = start
|
|
||||||
:+ print
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = positive
|
|
||||||
? PosFunc(arg)
|
|
||||||
: NegFunc(arg)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = GetBuilder()
|
|
||||||
->BuilderSetWidth(333)
|
|
||||||
->BuilderSetHeight(777)
|
|
||||||
->BuilderBuild()
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = MyDict
|
|
||||||
.member
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
autocmd BufNewFile *.match if condition
|
|
||||||
| echo 'match'
|
|
||||||
| endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
set cpo+=C
|
|
||||||
var lines =<< trim END
|
|
||||||
| this works
|
|
||||||
END
|
|
||||||
set cpo-=C
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
syn region Text
|
|
||||||
\ start='foo'
|
|
||||||
#\ comment
|
|
||||||
\ end='bar'
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
au CursorHold * echom 'BEFORE bar'
|
|
||||||
#\ some comment
|
|
||||||
| echom 'AFTER bar'
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def MyFunc(text: string,
|
|
||||||
separator = '-'
|
|
||||||
): string
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def MyFunc(
|
|
||||||
text: string,
|
|
||||||
separator = '-'
|
|
||||||
): string
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
[var1, var2] =
|
|
||||||
Func()
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const list = ['one',
|
|
||||||
'two']
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const list = [
|
|
||||||
'one',
|
|
||||||
'two',
|
|
||||||
]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const dict = {one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const dict = {
|
|
||||||
one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
const dict =
|
|
||||||
{
|
|
||||||
one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
return {
|
|
||||||
one: 1
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
a: 0,
|
|
||||||
# b
|
|
||||||
# c
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo search(
|
|
||||||
# comment
|
|
||||||
'1'
|
|
||||||
.. '2'
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var v = ( # trailing "(" starts line continuation
|
|
||||||
3 + 4 # nothing special
|
|
||||||
) # end of expression indicates continued line
|
|
||||||
var x: number # needs to align with previous "var"
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func() # {{{
|
|
||||||
# comment
|
|
||||||
if true
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
key:
|
|
||||||
'value',
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var id = time
|
|
||||||
->timer_start((_) => {
|
|
||||||
n = 0
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
augroup Name
|
augroup Name
|
||||||
autocmd!
|
autocmd!
|
||||||
augroup END
|
augroup END
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var n =
|
|
||||||
# comment
|
|
||||||
1
|
|
||||||
+ 2
|
|
||||||
|
|
||||||
var s = ''
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var keys = {
|
|
||||||
J: 'j',
|
|
||||||
"\<Home>": '1G',
|
|
||||||
"\<End>": 'G',
|
|
||||||
z: 'zz'
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
export def Func(
|
|
||||||
n: number,
|
|
||||||
s: string,
|
|
||||||
...l: list<bool>
|
|
||||||
)
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var heredoc =<< trim ENDD
|
|
||||||
var nested_heredoc =<< trim END
|
|
||||||
END
|
|
||||||
ENDD
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
else " comment
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true | echo 'one' | endif
|
|
||||||
if true | echo 'two' | endif
|
|
||||||
if true | echo 'three' | endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
:'<-1 mark <
|
|
||||||
else
|
|
||||||
echo ''
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
substitute/pat /rep /
|
substitute/pat /rep /
|
||||||
echo
|
echo
|
||||||
@ -404,92 +132,12 @@ echo 2
|
|||||||
endtry
|
endtry
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
Cmd %
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
if end == 'xxx' || end == 'yyy'
|
if end == 'xxx' || end == 'yyy'
|
||||||
echo
|
echo
|
||||||
endif
|
endif
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
popup_move(id, {col: 1,
|
|
||||||
line: 2})
|
|
||||||
endif
|
|
||||||
setwinvar(id, 'name', 3)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = [
|
|
||||||
{a: 'x',
|
|
||||||
b: 'y'},
|
|
||||||
FuncA(),
|
|
||||||
FuncB(),
|
|
||||||
]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ll = [[
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3], [
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6], [
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9]]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ld = [{
|
|
||||||
a: 'xxx',
|
|
||||||
b: 'yyy'}, {
|
|
||||||
c: 'xxx',
|
|
||||||
d: 'yyy'}, {
|
|
||||||
e: 'xxx',
|
|
||||||
f: 'yyy'}, {
|
|
||||||
}]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: {
|
|
||||||
b: {
|
|
||||||
c: [{
|
|
||||||
d: 'e',
|
|
||||||
f: 'g',
|
|
||||||
h: 'i'
|
|
||||||
}],
|
|
||||||
j: 'k',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var end: any
|
|
||||||
if true
|
|
||||||
end = 0
|
|
||||||
elseif true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var d = {
|
|
||||||
end: 0}
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
nunmap <buffer> (
|
nunmap <buffer> (
|
||||||
nunmap <buffer> )
|
nunmap <buffer> )
|
||||||
@ -499,224 +147,6 @@ silent! xunmap i{
|
|||||||
silent! xunmap a{
|
silent! xunmap a{
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(
|
|
||||||
s: string,
|
|
||||||
n = 1,
|
|
||||||
m = 2
|
|
||||||
)
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var h =<< END
|
|
||||||
text
|
|
||||||
END
|
|
||||||
|
|
||||||
def Func()
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
var h =<< END
|
|
||||||
text
|
|
||||||
END
|
|
||||||
echo 'test'
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Foo()
|
|
||||||
lcd -
|
|
||||||
enddef
|
|
||||||
def Bar()
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
n = Func(1, 2,
|
|
||||||
3)
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(s: string,
|
|
||||||
n: number): bool
|
|
||||||
if true
|
|
||||||
return false
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(
|
|
||||||
n: number)
|
|
||||||
#
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_AT this-line
|
|
||||||
def Func(
|
|
||||||
n: number)
|
|
||||||
#
|
|
||||||
echo # this-line
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
normal! ==
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: () => true,
|
|
||||||
b: () => true
|
|
||||||
&& true
|
|
||||||
&& Foo(),
|
|
||||||
c: () => Bar(),
|
|
||||||
e: () => Baz(),
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
|
||||||
return (Emit: func(any)) => {
|
|
||||||
Cont((t: any) => {
|
|
||||||
if Pred(t)
|
|
||||||
Emit(t)
|
|
||||||
endif
|
|
||||||
})
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
|
||||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
|
||||||
return (Emit: func(any)) => {
|
|
||||||
Cont((t: any) => {
|
|
||||||
if Pred(t)
|
|
||||||
Emit(t)
|
|
||||||
endif
|
|
||||||
})
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_EXE unlet! g:vim_indent
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
g:lightline = {
|
|
||||||
'active': {
|
|
||||||
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
|
|
||||||
},
|
|
||||||
'inactive': {
|
|
||||||
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if getline(1, 10)
|
|
||||||
->map((_, v: string): number => strcharlen(v))
|
|
||||||
->max() > 1'000
|
|
||||||
&l:breakindent = false
|
|
||||||
&l:linebreak = false
|
|
||||||
else
|
|
||||||
&l:breakindent = true
|
|
||||||
&l:linebreak = true
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ext2cmd: dict<string> = {
|
|
||||||
doc: $'antiword {fname}',
|
|
||||||
docx: $'pandoc --from=docx --to=markdown {fname}',
|
|
||||||
epub: $'pandoc --from=epub --to=markdown {fname}',
|
|
||||||
odp: $'odt2txt {fname}',
|
|
||||||
odt: $'odt2txt {fname}',
|
|
||||||
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
|
|
||||||
rtf: 'unrtf --text',
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const ptybuf: number = term_start(&shell, {
|
|
||||||
hidden: true,
|
|
||||||
exit_cb: (_, _) => {
|
|
||||||
if true
|
|
||||||
close
|
|
||||||
else
|
|
||||||
help
|
|
||||||
endif
|
|
||||||
}
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: 0,
|
|
||||||
# a ' quote {{{
|
|
||||||
#}}}
|
|
||||||
b: 0,
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo printf('%s () %s',
|
|
||||||
1,
|
|
||||||
2
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
prop_add(1, col('.'), {
|
|
||||||
length: 2,
|
|
||||||
type: 'test'
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo (() => " string starting with space")()
|
|
||||||
echo
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var variables = deepcopy(g:)
|
|
||||||
->filter((k: string, _): bool =>
|
|
||||||
k =~ '\c\V' .. keyword->escape('\')
|
|
||||||
&& k !~ '\%(loaded\|did_plugin_\)')
|
|
||||||
->items()
|
|
||||||
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
|
|
||||||
new
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = freq
|
|
||||||
->map((_, v) =>
|
|
||||||
v * (
|
|
||||||
1
|
|
||||||
+ 2
|
|
||||||
))
|
|
||||||
for item in d
|
|
||||||
->items()
|
|
||||||
->sort((a, b) => b[1] - a[1])
|
|
||||||
echo
|
|
||||||
endfor
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
||||||
callback: function(MakeProcessOutput, [qfid]),
|
callback: function(MakeProcessOutput, [qfid]),
|
||||||
@ -726,109 +156,16 @@ in_io: 'null'
|
|||||||
})
|
})
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var matching_abbrev: list<dict<string>> = copy(ABBREV)
|
|
||||||
->filter((_, v: dict<string>): bool =>
|
|
||||||
stridx(v.lhs, word_to_complete) == 0)
|
|
||||||
->map((_, v: dict<string>) => ({
|
|
||||||
word: v.lhs,
|
|
||||||
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
|
|
||||||
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
|
|
||||||
: AbbrevRhs(v.rhs)
|
|
||||||
}))
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
if true
|
|
||||||
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
setlocal iskeyword+=[
|
setlocal iskeyword+=[
|
||||||
cword = expand('<cword>')
|
cword = expand('<cword>')
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
silent if true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
sort :^.*[\/]:
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
d = {
|
|
||||||
}
|
|
||||||
hd =<< trim END
|
|
||||||
['
|
|
||||||
]'
|
|
||||||
END
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
if true
|
|
||||||
var hd =<< trim END
|
|
||||||
if get(b:, 'current_syntax', '')
|
|
||||||
endif
|
|
||||||
END
|
|
||||||
elseif true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
# test for control-flow keyword followed by commented fold marker {{{
|
|
||||||
if true
|
|
||||||
echo
|
|
||||||
endif #}}}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
if winsz == 0|let winsz= ""|endif
|
if winsz == 0|let winsz= ""|endif
|
||||||
exe "noswapfile ".winsz."wincmd s"
|
exe "noswapfile ".winsz."wincmd s"
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
windo if true | echo | endif
|
|
||||||
augroup Name
|
|
||||||
autocmd WinLeave * if true | eval 1 + 2 | endif
|
|
||||||
augroup END
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
echo ' =<< trim END'
|
|
||||||
->len()
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
function Func()
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
if true | echo com | endif
|
|
||||||
if true | echo com | endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
function Func()
|
function Func()
|
||||||
if v:true
|
if v:true
|
||||||
@ -839,128 +176,11 @@ endif
|
|||||||
endfunction
|
endfunction
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var matchpairs: string = &matchpairs
|
|
||||||
var pairs: dict<list<string>>
|
|
||||||
for [opening: string, closing: string]
|
|
||||||
in matchpairs
|
|
||||||
->split(',')
|
|
||||||
->map((_, v: string): list<string> => split(v, ':'))
|
|
||||||
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
|
|
||||||
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
|
|
||||||
endfor
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
{
|
|
||||||
echo []
|
|
||||||
+ []
|
|
||||||
+ [{a: 1,
|
|
||||||
b: 2}]
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
silent! argdel *
|
silent! argdel *
|
||||||
edit file
|
edit file
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Foo()
|
|
||||||
Bar(1,
|
|
||||||
[]->filter((_, v) => {
|
|
||||||
return true
|
|
||||||
}),
|
|
||||||
() => {
|
|
||||||
echo
|
|
||||||
})
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
k: () => {
|
|
||||||
if true
|
|
||||||
echo
|
|
||||||
popup_setoptions(id,
|
|
||||||
{title: 'title'})
|
|
||||||
endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
elseif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if (
|
|
||||||
true)
|
|
||||||
&& true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
abstract class Shape
|
|
||||||
var color = Color.Black
|
|
||||||
var thickness = 10
|
|
||||||
endclass
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
class OtherThing
|
|
||||||
var size: number
|
|
||||||
static var totalSize: number
|
|
||||||
|
|
||||||
static def ClearTotalSize(): number
|
|
||||||
var prev = totalSize
|
|
||||||
totalSize = 0
|
|
||||||
return prev
|
|
||||||
enddef
|
|
||||||
endclass
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
interface HasSurface
|
|
||||||
var size: number
|
|
||||||
def Surface(): number
|
|
||||||
endinterface
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
interface EnterExit
|
|
||||||
def Enter(): void
|
|
||||||
def Exit(): void
|
|
||||||
endinterface
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
enum Color
|
|
||||||
White,
|
|
||||||
Red,
|
|
||||||
Green,
|
|
||||||
Blue,
|
|
||||||
Black
|
|
||||||
endenum
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
enum Digits
|
|
||||||
INVALID(v:numbermax), # The null value.
|
|
||||||
ZERO(0 * v:numbermin), ONE(2 - 1),
|
|
||||||
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
|
||||||
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
|
||||||
NINE(3 + 3 + 3)
|
|
||||||
const value: number
|
|
||||||
def new(value: number)
|
|
||||||
this.value = value
|
|
||||||
enddef
|
|
||||||
endenum
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||||
call prop_type_delete('indent_after_literal_dict')
|
call prop_type_delete('indent_after_literal_dict')
|
||||||
|
@ -113,284 +113,12 @@ if v:true
|
|||||||
end
|
end
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = Func(
|
|
||||||
arg1,
|
|
||||||
arg2
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = Func(arg1,
|
|
||||||
arg2)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
filter(list, (k, v) =>
|
|
||||||
v > 0)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
filter(list, (k, v) => {
|
|
||||||
const x = get(list, k, 0)
|
|
||||||
return x > 0
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if x > 0
|
|
||||||
filter(list, (k, v) => {
|
|
||||||
const x = get(list, k, 1)
|
|
||||||
return x > 0
|
|
||||||
})
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
{
|
|
||||||
var temp = 'temp'
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var text = lead
|
|
||||||
.. middle
|
|
||||||
.. end
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var text = lead ..
|
|
||||||
middle ..
|
|
||||||
end
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var total = start +
|
|
||||||
end -
|
|
||||||
correction
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = start
|
|
||||||
:+ print
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = positive
|
|
||||||
? PosFunc(arg)
|
|
||||||
: NegFunc(arg)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = GetBuilder()
|
|
||||||
->BuilderSetWidth(333)
|
|
||||||
->BuilderSetHeight(777)
|
|
||||||
->BuilderBuild()
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var result = MyDict
|
|
||||||
.member
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
autocmd BufNewFile *.match if condition
|
|
||||||
| echo 'match'
|
|
||||||
| endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
set cpo+=C
|
|
||||||
var lines =<< trim END
|
|
||||||
| this works
|
|
||||||
END
|
|
||||||
set cpo-=C
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
syn region Text
|
|
||||||
\ start='foo'
|
|
||||||
#\ comment
|
|
||||||
\ end='bar'
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
au CursorHold * echom 'BEFORE bar'
|
|
||||||
#\ some comment
|
|
||||||
| echom 'AFTER bar'
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def MyFunc(text: string,
|
|
||||||
separator = '-'
|
|
||||||
): string
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def MyFunc(
|
|
||||||
text: string,
|
|
||||||
separator = '-'
|
|
||||||
): string
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
[var1, var2] =
|
|
||||||
Func()
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const list = ['one',
|
|
||||||
'two']
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const list = [
|
|
||||||
'one',
|
|
||||||
'two',
|
|
||||||
]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const dict = {one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const dict = {
|
|
||||||
one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
const dict =
|
|
||||||
{
|
|
||||||
one: 1,
|
|
||||||
two: 2
|
|
||||||
}
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
return {
|
|
||||||
one: 1
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
a: 0,
|
|
||||||
# b
|
|
||||||
# c
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo search(
|
|
||||||
# comment
|
|
||||||
'1'
|
|
||||||
.. '2'
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var v = ( # trailing "(" starts line continuation
|
|
||||||
3 + 4 # nothing special
|
|
||||||
) # end of expression indicates continued line
|
|
||||||
var x: number # needs to align with previous "var"
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func() # {{{
|
|
||||||
# comment
|
|
||||||
if true
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
key:
|
|
||||||
'value',
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var id = time
|
|
||||||
->timer_start((_) => {
|
|
||||||
n = 0
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
augroup Name
|
augroup Name
|
||||||
autocmd!
|
autocmd!
|
||||||
augroup END
|
augroup END
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var n =
|
|
||||||
# comment
|
|
||||||
1
|
|
||||||
+ 2
|
|
||||||
|
|
||||||
var s = ''
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var keys = {
|
|
||||||
J: 'j',
|
|
||||||
"\<Home>": '1G',
|
|
||||||
"\<End>": 'G',
|
|
||||||
z: 'zz'
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
export def Func(
|
|
||||||
n: number,
|
|
||||||
s: string,
|
|
||||||
...l: list<bool>
|
|
||||||
)
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var heredoc =<< trim ENDD
|
|
||||||
var nested_heredoc =<< trim END
|
|
||||||
END
|
|
||||||
ENDD
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
else " comment
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true | echo 'one' | endif
|
|
||||||
if true | echo 'two' | endif
|
|
||||||
if true | echo 'three' | endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
:'<-1 mark <
|
|
||||||
else
|
|
||||||
echo ''
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
substitute/pat /rep /
|
substitute/pat /rep /
|
||||||
echo
|
echo
|
||||||
@ -404,92 +132,12 @@ catch /pat / # comment
|
|||||||
endtry
|
endtry
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
Cmd %
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
if end == 'xxx' || end == 'yyy'
|
if end == 'xxx' || end == 'yyy'
|
||||||
echo
|
echo
|
||||||
endif
|
endif
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
popup_move(id, {col: 1,
|
|
||||||
line: 2})
|
|
||||||
endif
|
|
||||||
setwinvar(id, 'name', 3)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = [
|
|
||||||
{a: 'x',
|
|
||||||
b: 'y'},
|
|
||||||
FuncA(),
|
|
||||||
FuncB(),
|
|
||||||
]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ll = [[
|
|
||||||
1,
|
|
||||||
2,
|
|
||||||
3], [
|
|
||||||
4,
|
|
||||||
5,
|
|
||||||
6], [
|
|
||||||
7,
|
|
||||||
8,
|
|
||||||
9]]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ld = [{
|
|
||||||
a: 'xxx',
|
|
||||||
b: 'yyy'}, {
|
|
||||||
c: 'xxx',
|
|
||||||
d: 'yyy'}, {
|
|
||||||
e: 'xxx',
|
|
||||||
f: 'yyy'}, {
|
|
||||||
}]
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: {
|
|
||||||
b: {
|
|
||||||
c: [{
|
|
||||||
d: 'e',
|
|
||||||
f: 'g',
|
|
||||||
h: 'i'
|
|
||||||
}],
|
|
||||||
j: 'k',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var end: any
|
|
||||||
if true
|
|
||||||
end = 0
|
|
||||||
elseif true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
var d = {
|
|
||||||
end: 0}
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
nunmap <buffer> (
|
nunmap <buffer> (
|
||||||
nunmap <buffer> )
|
nunmap <buffer> )
|
||||||
@ -499,224 +147,6 @@ silent! xunmap i{
|
|||||||
silent! xunmap a{
|
silent! xunmap a{
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(
|
|
||||||
s: string,
|
|
||||||
n = 1,
|
|
||||||
m = 2
|
|
||||||
)
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var h =<< END
|
|
||||||
text
|
|
||||||
END
|
|
||||||
|
|
||||||
def Func()
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
var h =<< END
|
|
||||||
text
|
|
||||||
END
|
|
||||||
echo 'test'
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Foo()
|
|
||||||
lcd -
|
|
||||||
enddef
|
|
||||||
def Bar()
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
n = Func(1, 2,
|
|
||||||
3)
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(s: string,
|
|
||||||
n: number): bool
|
|
||||||
if true
|
|
||||||
return false
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func(
|
|
||||||
n: number)
|
|
||||||
#
|
|
||||||
echo
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_AT this-line
|
|
||||||
def Func(
|
|
||||||
n: number)
|
|
||||||
#
|
|
||||||
echo # this-line
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
normal! ==
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: () => true,
|
|
||||||
b: () => true
|
|
||||||
&& true
|
|
||||||
&& Foo(),
|
|
||||||
c: () => Bar(),
|
|
||||||
e: () => Baz(),
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
|
||||||
return (Emit: func(any)) => {
|
|
||||||
Cont((t: any) => {
|
|
||||||
if Pred(t)
|
|
||||||
Emit(t)
|
|
||||||
endif
|
|
||||||
})
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
|
||||||
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
|
||||||
return (Emit: func(any)) => {
|
|
||||||
Cont((t: any) => {
|
|
||||||
if Pred(t)
|
|
||||||
Emit(t)
|
|
||||||
endif
|
|
||||||
})
|
|
||||||
}
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
" INDENT_EXE unlet! g:vim_indent
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
g:lightline = {
|
|
||||||
'active': {
|
|
||||||
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
|
|
||||||
},
|
|
||||||
'inactive': {
|
|
||||||
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
|
|
||||||
}
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if getline(1, 10)
|
|
||||||
->map((_, v: string): number => strcharlen(v))
|
|
||||||
->max() > 1'000
|
|
||||||
&l:breakindent = false
|
|
||||||
&l:linebreak = false
|
|
||||||
else
|
|
||||||
&l:breakindent = true
|
|
||||||
&l:linebreak = true
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var ext2cmd: dict<string> = {
|
|
||||||
doc: $'antiword {fname}',
|
|
||||||
docx: $'pandoc --from=docx --to=markdown {fname}',
|
|
||||||
epub: $'pandoc --from=epub --to=markdown {fname}',
|
|
||||||
odp: $'odt2txt {fname}',
|
|
||||||
odt: $'odt2txt {fname}',
|
|
||||||
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
|
|
||||||
rtf: 'unrtf --text',
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
const ptybuf: number = term_start(&shell, {
|
|
||||||
hidden: true,
|
|
||||||
exit_cb: (_, _) => {
|
|
||||||
if true
|
|
||||||
close
|
|
||||||
else
|
|
||||||
help
|
|
||||||
endif
|
|
||||||
}
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = {
|
|
||||||
a: 0,
|
|
||||||
# a ' quote {{{
|
|
||||||
#}}}
|
|
||||||
b: 0,
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo printf('%s () %s',
|
|
||||||
1,
|
|
||||||
2
|
|
||||||
)
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
prop_add(1, col('.'), {
|
|
||||||
length: 2,
|
|
||||||
type: 'test'
|
|
||||||
})
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo (() => " string starting with space")()
|
|
||||||
echo
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var variables = deepcopy(g:)
|
|
||||||
->filter((k: string, _): bool =>
|
|
||||||
k =~ '\c\V' .. keyword->escape('\')
|
|
||||||
&& k !~ '\%(loaded\|did_plugin_\)')
|
|
||||||
->items()
|
|
||||||
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
|
|
||||||
new
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var d = freq
|
|
||||||
->map((_, v) =>
|
|
||||||
v * (
|
|
||||||
1
|
|
||||||
+ 2
|
|
||||||
))
|
|
||||||
for item in d
|
|
||||||
->items()
|
|
||||||
->sort((a, b) => b[1] - a[1])
|
|
||||||
echo
|
|
||||||
endfor
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
||||||
callback: function(MakeProcessOutput, [qfid]),
|
callback: function(MakeProcessOutput, [qfid]),
|
||||||
@ -726,109 +156,16 @@ make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
|||||||
})
|
})
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var matching_abbrev: list<dict<string>> = copy(ABBREV)
|
|
||||||
->filter((_, v: dict<string>): bool =>
|
|
||||||
stridx(v.lhs, word_to_complete) == 0)
|
|
||||||
->map((_, v: dict<string>) => ({
|
|
||||||
word: v.lhs,
|
|
||||||
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
|
|
||||||
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
|
|
||||||
: AbbrevRhs(v.rhs)
|
|
||||||
}))
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
if true
|
|
||||||
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
setlocal iskeyword+=[
|
setlocal iskeyword+=[
|
||||||
cword = expand('<cword>')
|
cword = expand('<cword>')
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
silent if true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
sort :^.*[\/]:
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
d = {
|
|
||||||
}
|
|
||||||
hd =<< trim END
|
|
||||||
['
|
|
||||||
]'
|
|
||||||
END
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Func()
|
|
||||||
if true
|
|
||||||
var hd =<< trim END
|
|
||||||
if get(b:, 'current_syntax', '')
|
|
||||||
endif
|
|
||||||
END
|
|
||||||
elseif true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
# test for control-flow keyword followed by commented fold marker {{{
|
|
||||||
if true
|
|
||||||
echo
|
|
||||||
endif #}}}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
if winsz == 0|let winsz= ""|endif
|
if winsz == 0|let winsz= ""|endif
|
||||||
exe "noswapfile ".winsz."wincmd s"
|
exe "noswapfile ".winsz."wincmd s"
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
windo if true | echo | endif
|
|
||||||
augroup Name
|
|
||||||
autocmd WinLeave * if true | eval 1 + 2 | endif
|
|
||||||
augroup END
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
echo ' =<< trim END'
|
|
||||||
->len()
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
function Func()
|
|
||||||
if true
|
|
||||||
if true
|
|
||||||
if true | echo com | endif
|
|
||||||
if true | echo com | endif
|
|
||||||
endif
|
|
||||||
else
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
function Func()
|
function Func()
|
||||||
if v:true
|
if v:true
|
||||||
@ -839,128 +176,11 @@ function Func()
|
|||||||
endfunction
|
endfunction
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
var matchpairs: string = &matchpairs
|
|
||||||
var pairs: dict<list<string>>
|
|
||||||
for [opening: string, closing: string]
|
|
||||||
in matchpairs
|
|
||||||
->split(',')
|
|
||||||
->map((_, v: string): list<string> => split(v, ':'))
|
|
||||||
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
|
|
||||||
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
|
|
||||||
endfor
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
{
|
|
||||||
echo []
|
|
||||||
+ []
|
|
||||||
+ [{a: 1,
|
|
||||||
b: 2}]
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
silent! argdel *
|
silent! argdel *
|
||||||
edit file
|
edit file
|
||||||
" END_INDENT
|
" END_INDENT
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
def Foo()
|
|
||||||
Bar(1,
|
|
||||||
[]->filter((_, v) => {
|
|
||||||
return true
|
|
||||||
}),
|
|
||||||
() => {
|
|
||||||
echo
|
|
||||||
})
|
|
||||||
enddef
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
echo {
|
|
||||||
k: () => {
|
|
||||||
if true
|
|
||||||
echo
|
|
||||||
popup_setoptions(id,
|
|
||||||
{title: 'title'})
|
|
||||||
endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if true
|
|
||||||
elseif
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
if (
|
|
||||||
true)
|
|
||||||
&& true
|
|
||||||
echo
|
|
||||||
endif
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
abstract class Shape
|
|
||||||
var color = Color.Black
|
|
||||||
var thickness = 10
|
|
||||||
endclass
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
class OtherThing
|
|
||||||
var size: number
|
|
||||||
static var totalSize: number
|
|
||||||
|
|
||||||
static def ClearTotalSize(): number
|
|
||||||
var prev = totalSize
|
|
||||||
totalSize = 0
|
|
||||||
return prev
|
|
||||||
enddef
|
|
||||||
endclass
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
interface HasSurface
|
|
||||||
var size: number
|
|
||||||
def Surface(): number
|
|
||||||
endinterface
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
interface EnterExit
|
|
||||||
def Enter(): void
|
|
||||||
def Exit(): void
|
|
||||||
endinterface
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
enum Color
|
|
||||||
White,
|
|
||||||
Red,
|
|
||||||
Green,
|
|
||||||
Blue,
|
|
||||||
Black
|
|
||||||
endenum
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
|
||||||
enum Digits
|
|
||||||
INVALID(v:numbermax), # The null value.
|
|
||||||
ZERO(0 * v:numbermin), ONE(2 - 1),
|
|
||||||
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
|
||||||
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
|
||||||
NINE(3 + 3 + 3)
|
|
||||||
const value: number
|
|
||||||
def new(value: number)
|
|
||||||
this.value = value
|
|
||||||
enddef
|
|
||||||
endenum
|
|
||||||
" END_INDENT
|
|
||||||
|
|
||||||
" START_INDENT
|
" START_INDENT
|
||||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||||
call prop_type_delete('indent_after_literal_dict')
|
call prop_type_delete('indent_after_literal_dict')
|
||||||
|
782
runtime/indent/testdir/vim9.in
Normal file
782
runtime/indent/testdir/vim9.in
Normal file
@ -0,0 +1,782 @@
|
|||||||
|
vim9script
|
||||||
|
# vim: set ft=vim sw=4 :
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = Func(
|
||||||
|
arg1,
|
||||||
|
arg2
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = Func(arg1,
|
||||||
|
arg2)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
filter(list, (k, v) =>
|
||||||
|
v > 0)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
filter(list, (k, v) => {
|
||||||
|
const x = get(list, k, 0)
|
||||||
|
return x > 0
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if x > 0
|
||||||
|
filter(list, (k, v) => {
|
||||||
|
const x = get(list, k, 1)
|
||||||
|
return x > 0
|
||||||
|
})
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
{
|
||||||
|
var temp = 'temp'
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var text = lead
|
||||||
|
.. middle
|
||||||
|
.. end
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var text = lead ..
|
||||||
|
middle ..
|
||||||
|
end
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var total = start +
|
||||||
|
end -
|
||||||
|
correction
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = start
|
||||||
|
:+ print
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = positive
|
||||||
|
? PosFunc(arg)
|
||||||
|
: NegFunc(arg)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = GetBuilder()
|
||||||
|
->BuilderSetWidth(333)
|
||||||
|
->BuilderSetHeight(777)
|
||||||
|
->BuilderBuild()
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = MyDict
|
||||||
|
.member
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
autocmd BufNewFile *.match if condition
|
||||||
|
| echo 'match'
|
||||||
|
| endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
set cpo+=C
|
||||||
|
var lines =<< trim END
|
||||||
|
| this works
|
||||||
|
END
|
||||||
|
set cpo-=C
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
syn region Text
|
||||||
|
\ start='foo'
|
||||||
|
#\ comment
|
||||||
|
\ end='bar'
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
au CursorHold * echom 'BEFORE bar'
|
||||||
|
#\ some comment
|
||||||
|
| echom 'AFTER bar'
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def MyFunc(text: string,
|
||||||
|
separator = '-'
|
||||||
|
): string
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def MyFunc(
|
||||||
|
text: string,
|
||||||
|
separator = '-'
|
||||||
|
): string
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
[var1, var2] =
|
||||||
|
Func()
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const list = ['one',
|
||||||
|
'two']
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const list = [
|
||||||
|
'one',
|
||||||
|
'two',
|
||||||
|
]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const dict = {one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const dict = {
|
||||||
|
one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
const dict =
|
||||||
|
{
|
||||||
|
one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
return {
|
||||||
|
one: 1
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
a: 0,
|
||||||
|
# b
|
||||||
|
# c
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo search(
|
||||||
|
# comment
|
||||||
|
'1'
|
||||||
|
.. '2'
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var v = ( # trailing "(" starts line continuation
|
||||||
|
3 + 4 # nothing special
|
||||||
|
) # end of expression indicates continued line
|
||||||
|
var x: number # needs to align with previous "var"
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func() # {{{
|
||||||
|
# comment
|
||||||
|
if true
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
key:
|
||||||
|
'value',
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var id = time
|
||||||
|
->timer_start((_) => {
|
||||||
|
n = 0
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var n =
|
||||||
|
# comment
|
||||||
|
1
|
||||||
|
+ 2
|
||||||
|
|
||||||
|
var s = ''
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var keys = {
|
||||||
|
J: 'j',
|
||||||
|
"\<Home>": '1G',
|
||||||
|
"\<End>": 'G',
|
||||||
|
z: 'zz'
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
export def Func(
|
||||||
|
n: number,
|
||||||
|
s: string,
|
||||||
|
...l: list<bool>
|
||||||
|
)
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var heredoc =<< trim ENDD
|
||||||
|
var nested_heredoc =<< trim END
|
||||||
|
END
|
||||||
|
ENDD
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
else " comment
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true | echo 'one' | endif
|
||||||
|
if true | echo 'two' | endif
|
||||||
|
if true | echo 'three' | endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
:'<-1 mark <
|
||||||
|
else
|
||||||
|
echo ''
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
Cmd %
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
popup_move(id, {col: 1,
|
||||||
|
line: 2})
|
||||||
|
endif
|
||||||
|
setwinvar(id, 'name', 3)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = [
|
||||||
|
{a: 'x',
|
||||||
|
b: 'y'},
|
||||||
|
FuncA(),
|
||||||
|
FuncB(),
|
||||||
|
]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ll = [[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3], [
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6], [
|
||||||
|
7,
|
||||||
|
8,
|
||||||
|
9]]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ld = [{
|
||||||
|
a: 'xxx',
|
||||||
|
b: 'yyy'}, {
|
||||||
|
c: 'xxx',
|
||||||
|
d: 'yyy'}, {
|
||||||
|
e: 'xxx',
|
||||||
|
f: 'yyy'}, {
|
||||||
|
}]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: {
|
||||||
|
b: {
|
||||||
|
c: [{
|
||||||
|
d: 'e',
|
||||||
|
f: 'g',
|
||||||
|
h: 'i'
|
||||||
|
}],
|
||||||
|
j: 'k',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var end: any
|
||||||
|
if true
|
||||||
|
end = 0
|
||||||
|
elseif true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var d = {
|
||||||
|
end: 0}
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(
|
||||||
|
s: string,
|
||||||
|
n = 1,
|
||||||
|
m = 2
|
||||||
|
)
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var h =<< END
|
||||||
|
text
|
||||||
|
END
|
||||||
|
|
||||||
|
def Func()
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
var h =<< END
|
||||||
|
text
|
||||||
|
END
|
||||||
|
echo 'test'
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Foo()
|
||||||
|
lcd -
|
||||||
|
enddef
|
||||||
|
def Bar()
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
n = Func(1, 2,
|
||||||
|
3)
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(s: string,
|
||||||
|
n: number): bool
|
||||||
|
if true
|
||||||
|
return false
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(
|
||||||
|
n: number)
|
||||||
|
#
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_AT this-line
|
||||||
|
def Func(
|
||||||
|
n: number)
|
||||||
|
#
|
||||||
|
echo # this-line
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
normal! ==
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: () => true,
|
||||||
|
b: () => true
|
||||||
|
&& true
|
||||||
|
&& Foo(),
|
||||||
|
c: () => Bar(),
|
||||||
|
e: () => Baz(),
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||||
|
return (Emit: func(any)) => {
|
||||||
|
Cont((t: any) => {
|
||||||
|
if Pred(t)
|
||||||
|
Emit(t)
|
||||||
|
endif
|
||||||
|
})
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||||
|
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||||
|
return (Emit: func(any)) => {
|
||||||
|
Cont((t: any) => {
|
||||||
|
if Pred(t)
|
||||||
|
Emit(t)
|
||||||
|
endif
|
||||||
|
})
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_EXE unlet! g:vim_indent
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
g:lightline = {
|
||||||
|
'active': {
|
||||||
|
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
|
||||||
|
},
|
||||||
|
'inactive': {
|
||||||
|
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if getline(1, 10)
|
||||||
|
->map((_, v: string): number => strcharlen(v))
|
||||||
|
->max() > 1'000
|
||||||
|
&l:breakindent = false
|
||||||
|
&l:linebreak = false
|
||||||
|
else
|
||||||
|
&l:breakindent = true
|
||||||
|
&l:linebreak = true
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ext2cmd: dict<string> = {
|
||||||
|
doc: $'antiword {fname}',
|
||||||
|
docx: $'pandoc --from=docx --to=markdown {fname}',
|
||||||
|
epub: $'pandoc --from=epub --to=markdown {fname}',
|
||||||
|
odp: $'odt2txt {fname}',
|
||||||
|
odt: $'odt2txt {fname}',
|
||||||
|
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
|
||||||
|
rtf: 'unrtf --text',
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const ptybuf: number = term_start(&shell, {
|
||||||
|
hidden: true,
|
||||||
|
exit_cb: (_, _) => {
|
||||||
|
if true
|
||||||
|
close
|
||||||
|
else
|
||||||
|
help
|
||||||
|
endif
|
||||||
|
}
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: 0,
|
||||||
|
# a ' quote {{{
|
||||||
|
#}}}
|
||||||
|
b: 0,
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo printf('%s () %s',
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
prop_add(1, col('.'), {
|
||||||
|
length: 2,
|
||||||
|
type: 'test'
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo (() => " string starting with space")()
|
||||||
|
echo
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var variables = deepcopy(g:)
|
||||||
|
->filter((k: string, _): bool =>
|
||||||
|
k =~ '\c\V' .. keyword->escape('\')
|
||||||
|
&& k !~ '\%(loaded\|did_plugin_\)')
|
||||||
|
->items()
|
||||||
|
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
|
||||||
|
new
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = freq
|
||||||
|
->map((_, v) =>
|
||||||
|
v * (
|
||||||
|
1
|
||||||
|
+ 2
|
||||||
|
))
|
||||||
|
for item in d
|
||||||
|
->items()
|
||||||
|
->sort((a, b) => b[1] - a[1])
|
||||||
|
echo
|
||||||
|
endfor
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var matching_abbrev: list<dict<string>> = copy(ABBREV)
|
||||||
|
->filter((_, v: dict<string>): bool =>
|
||||||
|
stridx(v.lhs, word_to_complete) == 0)
|
||||||
|
->map((_, v: dict<string>) => ({
|
||||||
|
word: v.lhs,
|
||||||
|
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
|
||||||
|
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
|
||||||
|
: AbbrevRhs(v.rhs)
|
||||||
|
}))
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
if true
|
||||||
|
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
silent if true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
sort :^.*[\/]:
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
d = {
|
||||||
|
}
|
||||||
|
hd =<< trim END
|
||||||
|
['
|
||||||
|
]'
|
||||||
|
END
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
if true
|
||||||
|
var hd =<< trim END
|
||||||
|
if get(b:, 'current_syntax', '')
|
||||||
|
endif
|
||||||
|
END
|
||||||
|
elseif true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# test for control-flow keyword followed by commented fold marker {{{
|
||||||
|
if true
|
||||||
|
echo
|
||||||
|
endif #}}}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
windo if true | echo | endif
|
||||||
|
augroup Name
|
||||||
|
autocmd WinLeave * if true | eval 1 + 2 | endif
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
echo ' =<< trim END'
|
||||||
|
->len()
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
function Func()
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
if true | echo com | endif
|
||||||
|
if true | echo com | endif
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var matchpairs: string = &matchpairs
|
||||||
|
var pairs: dict<list<string>>
|
||||||
|
for [opening: string, closing: string]
|
||||||
|
in matchpairs
|
||||||
|
->split(',')
|
||||||
|
->map((_, v: string): list<string> => split(v, ':'))
|
||||||
|
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
|
||||||
|
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
|
||||||
|
endfor
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
{
|
||||||
|
echo []
|
||||||
|
+ []
|
||||||
|
+ [{a: 1,
|
||||||
|
b: 2}]
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Foo()
|
||||||
|
Bar(1,
|
||||||
|
[]->filter((_, v) => {
|
||||||
|
return true
|
||||||
|
}),
|
||||||
|
() => {
|
||||||
|
echo
|
||||||
|
})
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
k: () => {
|
||||||
|
if true
|
||||||
|
echo
|
||||||
|
popup_setoptions(id,
|
||||||
|
{title: 'title'})
|
||||||
|
endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
elseif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if (
|
||||||
|
true)
|
||||||
|
&& true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
abstract class Shape
|
||||||
|
var color = Color.Black
|
||||||
|
var thickness = 10
|
||||||
|
endclass
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
class OtherThing
|
||||||
|
var size: number
|
||||||
|
static var totalSize: number
|
||||||
|
|
||||||
|
static def ClearTotalSize(): number
|
||||||
|
var prev = totalSize
|
||||||
|
totalSize = 0
|
||||||
|
return prev
|
||||||
|
enddef
|
||||||
|
endclass
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
interface HasSurface
|
||||||
|
var size: number
|
||||||
|
def Surface(): number
|
||||||
|
endinterface
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
interface EnterExit
|
||||||
|
def Enter(): void
|
||||||
|
def Exit(): void
|
||||||
|
endinterface
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
enum Color
|
||||||
|
White,
|
||||||
|
Red,
|
||||||
|
Green,
|
||||||
|
Blue,
|
||||||
|
Black
|
||||||
|
endenum
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
enum Digits
|
||||||
|
INVALID(v:numbermax), # The null value.
|
||||||
|
ZERO(0 * v:numbermin), ONE(2 - 1),
|
||||||
|
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
||||||
|
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
||||||
|
NINE(3 + 3 + 3)
|
||||||
|
const value: number
|
||||||
|
def new(value: number)
|
||||||
|
this.value = value
|
||||||
|
enddef
|
||||||
|
endenum
|
||||||
|
# END_INDENT
|
782
runtime/indent/testdir/vim9.ok
Normal file
782
runtime/indent/testdir/vim9.ok
Normal file
@ -0,0 +1,782 @@
|
|||||||
|
vim9script
|
||||||
|
# vim: set ft=vim sw=4 :
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = Func(
|
||||||
|
arg1,
|
||||||
|
arg2
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = Func(arg1,
|
||||||
|
arg2)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
filter(list, (k, v) =>
|
||||||
|
v > 0)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
filter(list, (k, v) => {
|
||||||
|
const x = get(list, k, 0)
|
||||||
|
return x > 0
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if x > 0
|
||||||
|
filter(list, (k, v) => {
|
||||||
|
const x = get(list, k, 1)
|
||||||
|
return x > 0
|
||||||
|
})
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
{
|
||||||
|
var temp = 'temp'
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var text = lead
|
||||||
|
.. middle
|
||||||
|
.. end
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var text = lead ..
|
||||||
|
middle ..
|
||||||
|
end
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var total = start +
|
||||||
|
end -
|
||||||
|
correction
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = start
|
||||||
|
:+ print
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = positive
|
||||||
|
? PosFunc(arg)
|
||||||
|
: NegFunc(arg)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = GetBuilder()
|
||||||
|
->BuilderSetWidth(333)
|
||||||
|
->BuilderSetHeight(777)
|
||||||
|
->BuilderBuild()
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var result = MyDict
|
||||||
|
.member
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
autocmd BufNewFile *.match if condition
|
||||||
|
| echo 'match'
|
||||||
|
| endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
set cpo+=C
|
||||||
|
var lines =<< trim END
|
||||||
|
| this works
|
||||||
|
END
|
||||||
|
set cpo-=C
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
syn region Text
|
||||||
|
\ start='foo'
|
||||||
|
#\ comment
|
||||||
|
\ end='bar'
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
au CursorHold * echom 'BEFORE bar'
|
||||||
|
#\ some comment
|
||||||
|
| echom 'AFTER bar'
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def MyFunc(text: string,
|
||||||
|
separator = '-'
|
||||||
|
): string
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def MyFunc(
|
||||||
|
text: string,
|
||||||
|
separator = '-'
|
||||||
|
): string
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
[var1, var2] =
|
||||||
|
Func()
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const list = ['one',
|
||||||
|
'two']
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const list = [
|
||||||
|
'one',
|
||||||
|
'two',
|
||||||
|
]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const dict = {one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const dict = {
|
||||||
|
one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
const dict =
|
||||||
|
{
|
||||||
|
one: 1,
|
||||||
|
two: 2
|
||||||
|
}
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
return {
|
||||||
|
one: 1
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
a: 0,
|
||||||
|
# b
|
||||||
|
# c
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo search(
|
||||||
|
# comment
|
||||||
|
'1'
|
||||||
|
.. '2'
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var v = ( # trailing "(" starts line continuation
|
||||||
|
3 + 4 # nothing special
|
||||||
|
) # end of expression indicates continued line
|
||||||
|
var x: number # needs to align with previous "var"
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func() # {{{
|
||||||
|
# comment
|
||||||
|
if true
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
key:
|
||||||
|
'value',
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var id = time
|
||||||
|
->timer_start((_) => {
|
||||||
|
n = 0
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var n =
|
||||||
|
# comment
|
||||||
|
1
|
||||||
|
+ 2
|
||||||
|
|
||||||
|
var s = ''
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var keys = {
|
||||||
|
J: 'j',
|
||||||
|
"\<Home>": '1G',
|
||||||
|
"\<End>": 'G',
|
||||||
|
z: 'zz'
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
export def Func(
|
||||||
|
n: number,
|
||||||
|
s: string,
|
||||||
|
...l: list<bool>
|
||||||
|
)
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var heredoc =<< trim ENDD
|
||||||
|
var nested_heredoc =<< trim END
|
||||||
|
END
|
||||||
|
ENDD
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
else " comment
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true | echo 'one' | endif
|
||||||
|
if true | echo 'two' | endif
|
||||||
|
if true | echo 'three' | endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
:'<-1 mark <
|
||||||
|
else
|
||||||
|
echo ''
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
Cmd %
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
popup_move(id, {col: 1,
|
||||||
|
line: 2})
|
||||||
|
endif
|
||||||
|
setwinvar(id, 'name', 3)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = [
|
||||||
|
{a: 'x',
|
||||||
|
b: 'y'},
|
||||||
|
FuncA(),
|
||||||
|
FuncB(),
|
||||||
|
]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ll = [[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3], [
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6], [
|
||||||
|
7,
|
||||||
|
8,
|
||||||
|
9]]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ld = [{
|
||||||
|
a: 'xxx',
|
||||||
|
b: 'yyy'}, {
|
||||||
|
c: 'xxx',
|
||||||
|
d: 'yyy'}, {
|
||||||
|
e: 'xxx',
|
||||||
|
f: 'yyy'}, {
|
||||||
|
}]
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: {
|
||||||
|
b: {
|
||||||
|
c: [{
|
||||||
|
d: 'e',
|
||||||
|
f: 'g',
|
||||||
|
h: 'i'
|
||||||
|
}],
|
||||||
|
j: 'k',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var end: any
|
||||||
|
if true
|
||||||
|
end = 0
|
||||||
|
elseif true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
var d = {
|
||||||
|
end: 0}
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(
|
||||||
|
s: string,
|
||||||
|
n = 1,
|
||||||
|
m = 2
|
||||||
|
)
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var h =<< END
|
||||||
|
text
|
||||||
|
END
|
||||||
|
|
||||||
|
def Func()
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
var h =<< END
|
||||||
|
text
|
||||||
|
END
|
||||||
|
echo 'test'
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Foo()
|
||||||
|
lcd -
|
||||||
|
enddef
|
||||||
|
def Bar()
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
n = Func(1, 2,
|
||||||
|
3)
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(s: string,
|
||||||
|
n: number): bool
|
||||||
|
if true
|
||||||
|
return false
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func(
|
||||||
|
n: number)
|
||||||
|
#
|
||||||
|
echo
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_AT this-line
|
||||||
|
def Func(
|
||||||
|
n: number)
|
||||||
|
#
|
||||||
|
echo # this-line
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
normal! ==
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: () => true,
|
||||||
|
b: () => true
|
||||||
|
&& true
|
||||||
|
&& Foo(),
|
||||||
|
c: () => Bar(),
|
||||||
|
e: () => Baz(),
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||||
|
return (Emit: func(any)) => {
|
||||||
|
Cont((t: any) => {
|
||||||
|
if Pred(t)
|
||||||
|
Emit(t)
|
||||||
|
endif
|
||||||
|
})
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
|
||||||
|
def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
|
||||||
|
return (Emit: func(any)) => {
|
||||||
|
Cont((t: any) => {
|
||||||
|
if Pred(t)
|
||||||
|
Emit(t)
|
||||||
|
endif
|
||||||
|
})
|
||||||
|
}
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# INDENT_EXE unlet! g:vim_indent
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
g:lightline = {
|
||||||
|
'active': {
|
||||||
|
'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
|
||||||
|
},
|
||||||
|
'inactive': {
|
||||||
|
'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if getline(1, 10)
|
||||||
|
->map((_, v: string): number => strcharlen(v))
|
||||||
|
->max() > 1'000
|
||||||
|
&l:breakindent = false
|
||||||
|
&l:linebreak = false
|
||||||
|
else
|
||||||
|
&l:breakindent = true
|
||||||
|
&l:linebreak = true
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var ext2cmd: dict<string> = {
|
||||||
|
doc: $'antiword {fname}',
|
||||||
|
docx: $'pandoc --from=docx --to=markdown {fname}',
|
||||||
|
epub: $'pandoc --from=epub --to=markdown {fname}',
|
||||||
|
odp: $'odt2txt {fname}',
|
||||||
|
odt: $'odt2txt {fname}',
|
||||||
|
pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
|
||||||
|
rtf: 'unrtf --text',
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
const ptybuf: number = term_start(&shell, {
|
||||||
|
hidden: true,
|
||||||
|
exit_cb: (_, _) => {
|
||||||
|
if true
|
||||||
|
close
|
||||||
|
else
|
||||||
|
help
|
||||||
|
endif
|
||||||
|
}
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = {
|
||||||
|
a: 0,
|
||||||
|
# a ' quote {{{
|
||||||
|
#}}}
|
||||||
|
b: 0,
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo printf('%s () %s',
|
||||||
|
1,
|
||||||
|
2
|
||||||
|
)
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
prop_add(1, col('.'), {
|
||||||
|
length: 2,
|
||||||
|
type: 'test'
|
||||||
|
})
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo (() => " string starting with space")()
|
||||||
|
echo
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var variables = deepcopy(g:)
|
||||||
|
->filter((k: string, _): bool =>
|
||||||
|
k =~ '\c\V' .. keyword->escape('\')
|
||||||
|
&& k !~ '\%(loaded\|did_plugin_\)')
|
||||||
|
->items()
|
||||||
|
->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
|
||||||
|
new
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var d = freq
|
||||||
|
->map((_, v) =>
|
||||||
|
v * (
|
||||||
|
1
|
||||||
|
+ 2
|
||||||
|
))
|
||||||
|
for item in d
|
||||||
|
->items()
|
||||||
|
->sort((a, b) => b[1] - a[1])
|
||||||
|
echo
|
||||||
|
endfor
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var matching_abbrev: list<dict<string>> = copy(ABBREV)
|
||||||
|
->filter((_, v: dict<string>): bool =>
|
||||||
|
stridx(v.lhs, word_to_complete) == 0)
|
||||||
|
->map((_, v: dict<string>) => ({
|
||||||
|
word: v.lhs,
|
||||||
|
menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
|
||||||
|
? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
|
||||||
|
: AbbrevRhs(v.rhs)
|
||||||
|
}))
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
if true
|
||||||
|
vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
silent if true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
sort :^.*[\/]:
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
d = {
|
||||||
|
}
|
||||||
|
hd =<< trim END
|
||||||
|
['
|
||||||
|
]'
|
||||||
|
END
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Func()
|
||||||
|
if true
|
||||||
|
var hd =<< trim END
|
||||||
|
if get(b:, 'current_syntax', '')
|
||||||
|
endif
|
||||||
|
END
|
||||||
|
elseif true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
# test for control-flow keyword followed by commented fold marker {{{
|
||||||
|
if true
|
||||||
|
echo
|
||||||
|
endif #}}}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
windo if true | echo | endif
|
||||||
|
augroup Name
|
||||||
|
autocmd WinLeave * if true | eval 1 + 2 | endif
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
echo ' =<< trim END'
|
||||||
|
->len()
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
function Func()
|
||||||
|
if true
|
||||||
|
if true
|
||||||
|
if true | echo com | endif
|
||||||
|
if true | echo com | endif
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
endif
|
||||||
|
endfunction
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
var matchpairs: string = &matchpairs
|
||||||
|
var pairs: dict<list<string>>
|
||||||
|
for [opening: string, closing: string]
|
||||||
|
in matchpairs
|
||||||
|
->split(',')
|
||||||
|
->map((_, v: string): list<string> => split(v, ':'))
|
||||||
|
pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
|
||||||
|
pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
|
||||||
|
endfor
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
{
|
||||||
|
echo []
|
||||||
|
+ []
|
||||||
|
+ [{a: 1,
|
||||||
|
b: 2}]
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
def Foo()
|
||||||
|
Bar(1,
|
||||||
|
[]->filter((_, v) => {
|
||||||
|
return true
|
||||||
|
}),
|
||||||
|
() => {
|
||||||
|
echo
|
||||||
|
})
|
||||||
|
enddef
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
echo {
|
||||||
|
k: () => {
|
||||||
|
if true
|
||||||
|
echo
|
||||||
|
popup_setoptions(id,
|
||||||
|
{title: 'title'})
|
||||||
|
endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if true
|
||||||
|
elseif
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
if (
|
||||||
|
true)
|
||||||
|
&& true
|
||||||
|
echo
|
||||||
|
endif
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
abstract class Shape
|
||||||
|
var color = Color.Black
|
||||||
|
var thickness = 10
|
||||||
|
endclass
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
class OtherThing
|
||||||
|
var size: number
|
||||||
|
static var totalSize: number
|
||||||
|
|
||||||
|
static def ClearTotalSize(): number
|
||||||
|
var prev = totalSize
|
||||||
|
totalSize = 0
|
||||||
|
return prev
|
||||||
|
enddef
|
||||||
|
endclass
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
interface HasSurface
|
||||||
|
var size: number
|
||||||
|
def Surface(): number
|
||||||
|
endinterface
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
interface EnterExit
|
||||||
|
def Enter(): void
|
||||||
|
def Exit(): void
|
||||||
|
endinterface
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
enum Color
|
||||||
|
White,
|
||||||
|
Red,
|
||||||
|
Green,
|
||||||
|
Blue,
|
||||||
|
Black
|
||||||
|
endenum
|
||||||
|
# END_INDENT
|
||||||
|
|
||||||
|
# START_INDENT
|
||||||
|
enum Digits
|
||||||
|
INVALID(v:numbermax), # The null value.
|
||||||
|
ZERO(0 * v:numbermin), ONE(2 - 1),
|
||||||
|
TWO(1 + 1), THREE(9 / 3), FOUR(1 * 4),
|
||||||
|
FIVE(1 + 2 + 2), SIX(36 / 3 / 2), SEVEN(7), EIGHT(2 * 2 * 2),
|
||||||
|
NINE(3 + 3 + 3)
|
||||||
|
const value: number
|
||||||
|
def new(value: number)
|
||||||
|
this.value = value
|
||||||
|
enddef
|
||||||
|
endenum
|
||||||
|
# END_INDENT
|
Loading…
x
Reference in New Issue
Block a user