summaryrefslogtreecommitdiff
path: root/mnv/runtime/indent/testdir/mnv9.in
diff options
context:
space:
mode:
Diffstat (limited to 'mnv/runtime/indent/testdir/mnv9.in')
-rw-r--r--mnv/runtime/indent/testdir/mnv9.in795
1 files changed, 795 insertions, 0 deletions
diff --git a/mnv/runtime/indent/testdir/mnv9.in b/mnv/runtime/indent/testdir/mnv9.in
new file mode 100644
index 0000000000..1e5fe084fd
--- /dev/null
+++ b/mnv/runtime/indent/testdir/mnv9.in
@@ -0,0 +1,795 @@
+mnv9script
+# mnv: set ft=mnv sw=4 :
+
+# START_INDENT
+# INDENT_EXE let g:mnv_indent = {'searchpair_timeout': 8192}
+# INDENT_EXE runtime autoload/dist/mnvindent.mnv
+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:mnv_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 let g:mnv_indent = {'searchpair_timeout': 8192}
+# 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
+mnvgrep /^\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
+
+# START_INDENT
+def ToggleBoolOpt(opt: string)
+exe $"&{opt} = !&{opt}"
+$"&{opt}"
+->eval()
+->( (v) => v ? "ON" : "OFF" )()
+->printf($"{opt} %s")
+->popup_notification({})
+enddef
+# END_INDENT