| vim9script |
| # vim: set ft=vim sw=4 : |
| |
| # START_INDENT |
| # INDENT_EXE let g:vim_indent = {'searchpair_timeout': 8192} |
| # INDENT_EXE runtime autoload/dist/vimindent.vim |
| 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 let g:vim_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 |
| 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 |