blob: 0582a930e62c1d6da2360b3d31cfdeba850e0a41 [file] [log] [blame]
Bram Moolenaarc0fe4972018-10-25 16:53:19 +02001" vim: set ft=vim sw=4 :
2
3" START_INDENT
Bram Moolenaarc0fe4972018-10-25 16:53:19 +02004func Some()
5let x = 1
6endfunc
7
8let cmd =
9\ 'some '
10\ 'string'
11
Bram Moolenaare0e39172021-01-25 21:14:57 +010012if 1
13let x = [
14\ ]
15endif
16
Bram Moolenaar942db232021-02-13 18:14:48 +010017for x in [
18{key: 'value'},
19]
20eval 0
21endfor
22
Bram Moolenaara57b5532022-06-24 11:48:03 +010023let t = [
24\ {
25\ 'k': 'val',
26\ },
27\ ]
28
Bram Moolenaar0daafaa2022-09-04 17:45:43 +010029def Func()
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010030var d = dd
31->extend({
32})
33eval 0
Bram Moolenaar0daafaa2022-09-04 17:45:43 +010034enddef
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020035" END_INDENT
36
37" START_INDENT
38" INDENT_EXE let g:vim_indent_cont = 6
39
40let cmd =
41\ 'some '
42\ 'string'
43
44" END_INDENT
45
46" START_INDENT
Bram Moolenaar82be4842021-01-11 19:40:15 +010047" INDENT_EXE let g:vim_indent_cont = 5
48
49let list = [
50\ 'one',
51\ 'two']
52
53" END_INDENT
54
55" START_INDENT
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020056" INDENT_EXE unlet g:vim_indent_cont
Bram Moolenaar82be4842021-01-11 19:40:15 +010057
58let list = [
59'one',
60'two',
61]
62echo
63
64" END_INDENT
65
66" START_INDENT
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020067" INDENT_AT this-line
68func Some()
69let f = x " this-line
70endfunc
71" END_INDENT
72
73" START_INDENT
74" INDENT_NEXT next-line
75func Some()
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010076 " next-line
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020077let f = x
78endfunc
79" END_INDENT
80
81" START_INDENT
82" INDENT_PREV prev-line
83func Some()
84let f = x
85" prev-line
86endfunc
87" END_INDENT
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010088
89" START_INDENT
90let a =<< END
91nothing
92END
93" END_INDENT
94
95" START_INDENT
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010096let a =<< trim END
97nothing
98END
99" END_INDENT
100
101" START_INDENT
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +0100102" INDENT_AT this-line
103let a=<< trim END
104 blah
105 blah
106 blah this-line
107END
108" END_INDENT
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +0100109
110" START_INDENT
111if v:true
112echo 0
113end
114" END_INDENT
115
116" START_INDENT
117var result = Func(
118arg1,
119arg2
120)
121" END_INDENT
122
123" START_INDENT
124var result = Func(arg1,
125arg2)
126" END_INDENT
127
128" START_INDENT
129filter(list, (k, v) =>
130v > 0)
131" END_INDENT
132
133" START_INDENT
134filter(list, (k, v) => {
135const x = get(list, k, 0)
136return x > 0
137})
138" END_INDENT
139
140" START_INDENT
141if x > 0
142filter(list, (k, v) => {
143const x = get(list, k, 1)
144return x > 0
145})
146endif
147" END_INDENT
148
149" START_INDENT
150{
151var temp = 'temp'
152}
153" END_INDENT
154
155" START_INDENT
156var text = lead
157.. middle
158.. end
159" END_INDENT
160
161" START_INDENT
162var text = lead ..
163middle ..
164end
165" END_INDENT
166
167" START_INDENT
168var total = start +
169end -
170correction
171" END_INDENT
172
173" START_INDENT
174var result = start
175:+ print
176" END_INDENT
177
178" START_INDENT
179var result = positive
180? PosFunc(arg)
181: NegFunc(arg)
182" END_INDENT
183
184" START_INDENT
185var result = GetBuilder()
186->BuilderSetWidth(333)
187->BuilderSetHeight(777)
188->BuilderBuild()
189" END_INDENT
190
191" START_INDENT
192var result = MyDict
193.member
194" END_INDENT
195
196" START_INDENT
197autocmd BufNewFile *.match if condition
198| echo 'match'
199| endif
200" END_INDENT
201
202" START_INDENT
203set cpo+=C
204var lines =<< trim END
205| this works
206END
207set cpo-=C
208" END_INDENT
209
210" START_INDENT
211syn region Text
212\ start='foo'
213#\ comment
214\ end='bar'
215" END_INDENT
216
217" START_INDENT
218au CursorHold * echom 'BEFORE bar'
219#\ some comment
220| echom 'AFTER bar'
221" END_INDENT
222
223" START_INDENT
224def MyFunc(text: string,
225separator = '-'
226): string
227enddef
228" END_INDENT
229
230" START_INDENT
231def MyFunc(
232text: string,
233separator = '-'
234): string
235enddef
236" END_INDENT
237
238" START_INDENT
239[var1, var2] =
240Func()
241" END_INDENT
242
243" START_INDENT
244const list = ['one',
245'two']
246" END_INDENT
247
248" START_INDENT
249const list = [
250'one',
251'two',
252]
253" END_INDENT
254
255" START_INDENT
256const dict = {one: 1,
257two: 2
258}
259" END_INDENT
260
261" START_INDENT
262const dict = {
263one: 1,
264two: 2
265}
266" END_INDENT
267
268" START_INDENT
269if true
270const dict =
271{
272one: 1,
273two: 2
274}
275endif
276" END_INDENT
277
278" START_INDENT
279def Func()
280return {
281one: 1
282}
283enddef
284" END_INDENT
285
286" START_INDENT
287echo {
288a: 0,
289# b
290# c
291}
292" END_INDENT
293
294" START_INDENT
295echo search(
296# comment
297'1'
298.. '2'
299)
300" END_INDENT
301
302" START_INDENT
303if true
304var v = ( # trailing "(" starts line continuation
3053 + 4 # nothing special
306) # end of expression indicates continued line
307var x: number # needs to align with previous "var"
308endif
309" END_INDENT
310
311" START_INDENT
312def Func() # {{{
313# comment
314if true
315return
316endif
317enddef
318" END_INDENT
319
320" START_INDENT
321echo {
322key:
323'value',
324}
325" END_INDENT
326
327" START_INDENT
328var id = time
329->timer_start((_) => {
330n = 0
331})
332" END_INDENT
333
334" START_INDENT
335augroup Name
336autocmd!
337augroup END
338" END_INDENT
339
340" START_INDENT
341var n =
342# comment
3431
344+ 2
345
346var s = ''
347" END_INDENT
348
349" START_INDENT
350var keys = {
351J: 'j',
352"\<Home>": '1G',
353"\<End>": 'G',
354z: 'zz'
355}
356" END_INDENT
357
358" START_INDENT
359export def Func(
360n: number,
361s: string,
362...l: list<bool>
363)
364enddef
365" END_INDENT
366
367" START_INDENT
368var heredoc =<< trim ENDD
369var nested_heredoc =<< trim END
370END
371ENDD
372" END_INDENT
373
374" START_INDENT
375if true
376else " comment
377endif
378" END_INDENT
379
380" START_INDENT
381if true | echo 'one' | endif
382if true | echo 'two' | endif
383if true | echo 'three' | endif
384" END_INDENT
385
386" START_INDENT
387if true
388:'<-1 mark <
389else
390echo ''
391endif
392" END_INDENT
393
394" START_INDENT
395substitute/pat /rep /
396echo
397" END_INDENT
398
399" START_INDENT
400try
401echo 1
402catch /pat / # comment
403echo 2
404endtry
405" END_INDENT
406
407" START_INDENT
408def Func()
409Cmd %
410enddef
411" END_INDENT
412
413" START_INDENT
414if end == 'xxx' || end == 'yyy'
415echo
416endif
417" END_INDENT
418
419" START_INDENT
420if true
421popup_move(id, {col: 1,
422line: 2})
423endif
424setwinvar(id, 'name', 3)
425" END_INDENT
426
427" START_INDENT
428var d = [
429{a: 'x',
430b: 'y'},
431FuncA(),
432FuncB(),
433]
434" END_INDENT
435
436" START_INDENT
437var ll = [[
4381,
4392,
4403], [
4414,
4425,
4436], [
4447,
4458,
4469]]
447" END_INDENT
448
449" START_INDENT
450var ld = [{
451a: 'xxx',
452b: 'yyy'}, {
453c: 'xxx',
454d: 'yyy'}, {
455e: 'xxx',
456f: 'yyy'}, {
457}]
458" END_INDENT
459
460" START_INDENT
461var d = {
462a: {
463b: {
464c: [{
465d: 'e',
466f: 'g',
467h: 'i'
468}],
469j: 'k',
470},
471},
472}
473" END_INDENT
474
475" START_INDENT
476if true
477var end: any
478if true
479end = 0
480elseif true
481echo
482endif
483endif
484" END_INDENT
485
486" START_INDENT
487nunmap <buffer> (
488nunmap <buffer> )
489inoremap [ {
490inoremap ] }
491silent! xunmap i{
492silent! xunmap a{
493" END_INDENT
494
495" START_INDENT
496def Func(
497s: string,
498n = 1,
499m = 2
500)
501enddef
502" END_INDENT
503
504" START_INDENT
505var h =<< END
506text
507END
508
509def Func()
510echo
511enddef
512" END_INDENT
513
514" START_INDENT
515def Func()
516var h =<< END
517text
518END
519echo 'test'
520enddef
521" END_INDENT
522
523" START_INDENT
524def Foo()
525lcd -
526enddef
527def Bar()
528echo
529enddef
530" END_INDENT
531
532" START_INDENT
533if true
534n = Func(1, 2,
5353)
536endif
537" END_INDENT
538
539" START_INDENT
540def Func(s: string,
541n: number): bool
542if true
543return false
544endif
545enddef
546" END_INDENT
547
548" START_INDENT
549def Func(
550n: number)
551#
552echo
553enddef
554" END_INDENT
555
556" START_INDENT
557" INDENT_AT this-line
558def Func(
559 n: number)
560 #
561echo # this-line
562enddef
563" END_INDENT
564
565" START_INDENT
566if true
567if true
568normal! ==
569endif
570endif
571" END_INDENT
572
573" START_INDENT
574var d = {
575a: () => true,
576b: () => true
577&& true
578&& Foo(),
579c: () => Bar(),
580e: () => Baz(),
581}
582" END_INDENT
583
584" START_INDENT
585def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
586return (Emit: func(any)) => {
587Cont((t: any) => {
588if Pred(t)
589Emit(t)
590endif
591})
592}
593enddef
594" END_INDENT
595
596" START_INDENT
597" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
598def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
599return (Emit: func(any)) => {
600Cont((t: any) => {
601if Pred(t)
602Emit(t)
603endif
604})
605}
606enddef
607" END_INDENT
608
609" START_INDENT
610" INDENT_EXE unlet! g:vim_indent
611" END_INDENT
612
613" START_INDENT
614g:lightline = {
615'active': {
616'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
617},
618'inactive': {
619'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
620}
621}
622" END_INDENT
623
624" START_INDENT
625if getline(1, 10)
626->map((_, v: string): number => strcharlen(v))
627->max() > 1'000
628&l:breakindent = false
629&l:linebreak = false
630else
631&l:breakindent = true
632&l:linebreak = true
633endif
634" END_INDENT
635
636" START_INDENT
637var ext2cmd: dict<string> = {
638doc: $'antiword {fname}',
639docx: $'pandoc --from=docx --to=markdown {fname}',
640epub: $'pandoc --from=epub --to=markdown {fname}',
641odp: $'odt2txt {fname}',
642odt: $'odt2txt {fname}',
643pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
644rtf: 'unrtf --text',
645}
646" END_INDENT
647
648" START_INDENT
649const ptybuf: number = term_start(&shell, {
650hidden: true,
651exit_cb: (_, _) => {
652if true
653close
654else
655help
656endif
657}
658})
659" END_INDENT
660
661" START_INDENT
662var d = {
663a: 0,
664# a ' quote {{{
665#}}}
666b: 0,
667}
668" END_INDENT
669
670" START_INDENT
671echo printf('%s () %s',
6721,
6732
674)
675" END_INDENT
676
677" START_INDENT
678prop_add(1, col('.'), {
679length: 2,
680type: 'test'
681})
682" END_INDENT
683
684" START_INDENT
685echo (() => " string starting with space")()
686echo
687" END_INDENT
688
689" START_INDENT
690var variables = deepcopy(g:)
691->filter((k: string, _): bool =>
692k =~ '\c\V' .. keyword->escape('\')
693&& k !~ '\%(loaded\|did_plugin_\)')
694->items()
695->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
696new
697" END_INDENT
698
699" START_INDENT
700var d = freq
701->map((_, v) =>
702v * (
7031
704+ 2
705))
706for item in d
707->items()
708->sort((a, b) => b[1] - a[1])
709echo
710endfor
711" END_INDENT
712
713" START_INDENT
714make_job = job_start([&shell, &shellcmdflag, make_cmd], {
715callback: function(MakeProcessOutput, [qfid]),
716close_cb: function(MakeCloseCb, [qfid]),
717exit_cb: MakeCompleted,
718in_io: 'null'
719})
720" END_INDENT
721
722" START_INDENT
723var matching_abbrev: list<dict<string>> = copy(ABBREV)
724->filter((_, v: dict<string>): bool =>
725stridx(v.lhs, word_to_complete) == 0)
726->map((_, v: dict<string>) => ({
727word: v.lhs,
728menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
729? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
730: AbbrevRhs(v.rhs)
731}))
732" END_INDENT
733
734" START_INDENT
735def Func()
736if true
737vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
738endif
739enddef
740" END_INDENT
741
742" START_INDENT
743setlocal iskeyword+=[
744cword = expand('<cword>')
745" END_INDENT
746
747" START_INDENT
748silent if true
749echo
750endif
751" END_INDENT
752
753" START_INDENT
754def Func()
755sort :^.*[\/]:
756enddef
757" END_INDENT
758
759" START_INDENT
760def Func()
761d = {
762}
763hd =<< trim END
764['
765]'
766END
767enddef
768" END_INDENT
769
770" START_INDENT
771def Func()
772if true
773var hd =<< trim END
774if get(b:, 'current_syntax', '')
775endif
776END
777elseif true
778echo
779endif
780enddef
781" END_INDENT
782
783" START_INDENT
784# test for control-flow keyword followed by commented fold marker {{{
785if true
786echo
787endif #}}}
788" END_INDENT
789
790" START_INDENT
791if winsz == 0|let winsz= ""|endif
792exe "noswapfile ".winsz."wincmd s"
793" END_INDENT
794
795" START_INDENT
796if true
797if true
798windo if true | echo | endif
799augroup Name
800autocmd WinLeave * if true | eval 1 + 2 | endif
801augroup END
802endif
803endif
804" END_INDENT
805
806" START_INDENT
807if true
808echo ' =<< trim END'
809->len()
810endif
811" END_INDENT
812
813" START_INDENT
814function Func()
815if true
816if true
817if true | echo com | endif
818if true | echo com | endif
819endif
820else
821endif
822endfunction
823" END_INDENT
824
825" START_INDENT
826function Func()
827if v:true
828+
829echo
830-
831endif
832endfunction
833" END_INDENT
834
835" START_INDENT
836var matchpairs: string = &matchpairs
837var pairs: dict<list<string>>
838for [opening: string, closing: string]
839in matchpairs
840->split(',')
841->map((_, v: string): list<string> => split(v, ':'))
842pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
843pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
844endfor
845" END_INDENT
846
847" START_INDENT
848{
849echo []
850+ []
851+ [{a: 1,
852b: 2}]
853}
854" END_INDENT
855
856" START_INDENT
857silent! argdel *
858edit file
859" END_INDENT