mirror of
https://github.com/vim/vim
synced 2025-07-16 09:12:00 +00: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:
committed by
Christian Brabandt
parent
8e92db4ea2
commit
221c53202d
@ -113,284 +113,12 @@ echo 0
|
||||
end
|
||||
" 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
|
||||
augroup Name
|
||||
autocmd!
|
||||
augroup END
|
||||
" 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
|
||||
substitute/pat /rep /
|
||||
echo
|
||||
@ -404,92 +132,12 @@ echo 2
|
||||
endtry
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
def Func()
|
||||
Cmd %
|
||||
enddef
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
if end == 'xxx' || end == 'yyy'
|
||||
echo
|
||||
endif
|
||||
" 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
|
||||
nunmap <buffer> (
|
||||
nunmap <buffer> )
|
||||
@ -499,224 +147,6 @@ silent! xunmap i{
|
||||
silent! xunmap a{
|
||||
" 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
|
||||
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
||||
callback: function(MakeProcessOutput, [qfid]),
|
||||
@ -726,109 +156,16 @@ in_io: 'null'
|
||||
})
|
||||
" 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
|
||||
setlocal iskeyword+=[
|
||||
cword = expand('<cword>')
|
||||
" 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 winsz == 0|let winsz= ""|endif
|
||||
exe "noswapfile ".winsz."wincmd s"
|
||||
" 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
|
||||
function Func()
|
||||
if v:true
|
||||
@ -839,128 +176,11 @@ 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
|
||||
silent! argdel *
|
||||
edit file
|
||||
" 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
|
||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||
call prop_type_delete('indent_after_literal_dict')
|
||||
|
@ -113,284 +113,12 @@ if v:true
|
||||
end
|
||||
" 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
|
||||
augroup Name
|
||||
autocmd!
|
||||
augroup END
|
||||
" 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
|
||||
substitute/pat /rep /
|
||||
echo
|
||||
@ -404,92 +132,12 @@ catch /pat / # comment
|
||||
endtry
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
def Func()
|
||||
Cmd %
|
||||
enddef
|
||||
" END_INDENT
|
||||
|
||||
" START_INDENT
|
||||
if end == 'xxx' || end == 'yyy'
|
||||
echo
|
||||
endif
|
||||
" 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
|
||||
nunmap <buffer> (
|
||||
nunmap <buffer> )
|
||||
@ -499,224 +147,6 @@ silent! xunmap i{
|
||||
silent! xunmap a{
|
||||
" 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
|
||||
make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
||||
callback: function(MakeProcessOutput, [qfid]),
|
||||
@ -726,109 +156,16 @@ make_job = job_start([&shell, &shellcmdflag, make_cmd], {
|
||||
})
|
||||
" 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
|
||||
setlocal iskeyword+=[
|
||||
cword = expand('<cword>')
|
||||
" 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 winsz == 0|let winsz= ""|endif
|
||||
exe "noswapfile ".winsz."wincmd s"
|
||||
" 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
|
||||
function Func()
|
||||
if v:true
|
||||
@ -839,128 +176,11 @@ function Func()
|
||||
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
|
||||
silent! argdel *
|
||||
edit file
|
||||
" 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
|
||||
call prop_type_add('indent_after_literal_dict', #{ foo: 'bar' })
|
||||
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
|
Reference in New Issue
Block a user