blob: 39efdbaace8736432332032b84b9b0caa65c2ba6 [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()
5 let x = 1
6endfunc
7
8let cmd =
9 \ 'some '
10 \ 'string'
11
Bram Moolenaare0e39172021-01-25 21:14:57 +010012if 1
13 let x = [
14 \ ]
15endif
16
Bram Moolenaar942db232021-02-13 18:14:48 +010017for x in [
18 {key: 'value'},
19 ]
20 eval 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()
30 var d = dd
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010031 ->extend({
32 })
Bram Moolenaar0daafaa2022-09-04 17:45:43 +010033 eval 0
34enddef
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',
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010061]
Bram Moolenaar82be4842021-01-11 19:40:15 +010062echo
63
64" END_INDENT
65
66" START_INDENT
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020067" INDENT_AT this-line
68func Some()
69 let 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
77 let f = x
Bram Moolenaarc0fe4972018-10-25 16:53:19 +020078endfunc
79" END_INDENT
80
81" START_INDENT
82" INDENT_PREV prev-line
83func Some()
84 let f = x
85" prev-line
86endfunc
87" END_INDENT
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010088
89" START_INDENT
90let a =<< END
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +010091nothing
92END
93" END_INDENT
94
95" START_INDENT
96let a =<< trim END
Bram Moolenaar1ff14ba2019-11-02 14:09:23 +010097 nothing
98END
99" END_INDENT
100
101" START_INDENT
102" 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
112 echo 0
113end
114" END_INDENT
115
116" START_INDENT
117var result = Func(
118 arg1,
119 arg2
120)
121" END_INDENT
122
123" START_INDENT
124var result = Func(arg1,
125 arg2)
126" END_INDENT
127
128" START_INDENT
129filter(list, (k, v) =>
130 v > 0)
131" END_INDENT
132
133" START_INDENT
134filter(list, (k, v) => {
135 const x = get(list, k, 0)
136 return x > 0
137})
138" END_INDENT
139
140" START_INDENT
141if x > 0
142 filter(list, (k, v) => {
143 const x = get(list, k, 1)
144 return x > 0
145 })
146endif
147" END_INDENT
148
149" START_INDENT
150{
151 var 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 ..
163 middle ..
164 end
165" END_INDENT
166
167" START_INDENT
168var total = start +
169 end -
170 correction
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,
225 separator = '-'
226 ): string
227enddef
228" END_INDENT
229
230" START_INDENT
231def MyFunc(
232 text: string,
233 separator = '-'
234 ): string
235enddef
236" END_INDENT
237
238" START_INDENT
239[var1, var2] =
240 Func()
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,
257 two: 2
258}
259" END_INDENT
260
261" START_INDENT
262const dict = {
263 one: 1,
264 two: 2
265}
266" END_INDENT
267
268" START_INDENT
269if true
270 const dict =
271 {
272 one: 1,
273 two: 2
274 }
275endif
276" END_INDENT
277
278" START_INDENT
279def Func()
280 return {
281 one: 1
282 }
283enddef
284" END_INDENT
285
286" START_INDENT
287echo {
288 a: 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
304 var v = ( # trailing "(" starts line continuation
305 3 + 4 # nothing special
306 ) # end of expression indicates continued line
307 var x: number # needs to align with previous "var"
308endif
309" END_INDENT
310
311" START_INDENT
312def Func() # {{{
313 # comment
314 if true
315 return
316 endif
317enddef
318" END_INDENT
319
320" START_INDENT
321echo {
322 key:
323 'value',
324}
325" END_INDENT
326
327" START_INDENT
328var id = time
329 ->timer_start((_) => {
330 n = 0
331 })
332" END_INDENT
333
334" START_INDENT
335augroup Name
336 autocmd!
337augroup END
338" END_INDENT
339
340" START_INDENT
341var n =
342 # comment
343 1
344 + 2
345
346var s = ''
347" END_INDENT
348
349" START_INDENT
350var keys = {
351 J: 'j',
352 "\<Home>": '1G',
353 "\<End>": 'G',
354 z: 'zz'
355}
356" END_INDENT
357
358" START_INDENT
359export def Func(
360 n: number,
361 s: string,
362 ...l: list<bool>
363 )
364enddef
365" END_INDENT
366
367" START_INDENT
368var heredoc =<< trim ENDD
369 var nested_heredoc =<< trim END
370 END
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
390 echo ''
391endif
392" END_INDENT
393
394" START_INDENT
395substitute/pat /rep /
396echo
397" END_INDENT
398
399" START_INDENT
400try
401 echo 1
402catch /pat / # comment
403 echo 2
404endtry
405" END_INDENT
406
407" START_INDENT
408def Func()
409 Cmd %
410enddef
411" END_INDENT
412
413" START_INDENT
414if end == 'xxx' || end == 'yyy'
415 echo
416endif
417" END_INDENT
418
419" START_INDENT
420if true
421 popup_move(id, {col: 1,
422 line: 2})
423endif
424setwinvar(id, 'name', 3)
425" END_INDENT
426
427" START_INDENT
428var d = [
429 {a: 'x',
430 b: 'y'},
431 FuncA(),
432 FuncB(),
433]
434" END_INDENT
435
436" START_INDENT
437var ll = [[
438 1,
439 2,
440 3], [
441 4,
442 5,
443 6], [
444 7,
445 8,
446 9]]
447" END_INDENT
448
449" START_INDENT
450var ld = [{
451 a: 'xxx',
452 b: 'yyy'}, {
453 c: 'xxx',
454 d: 'yyy'}, {
455 e: 'xxx',
456 f: 'yyy'}, {
457 }]
458" END_INDENT
459
460" START_INDENT
461var d = {
462 a: {
463 b: {
464 c: [{
465 d: 'e',
466 f: 'g',
467 h: 'i'
468 }],
469 j: 'k',
470 },
471 },
472}
473" END_INDENT
474
475" START_INDENT
476if true
477 var end: any
478 if true
479 end = 0
480 elseif true
481 echo
482 endif
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(
497 s: string,
498 n = 1,
499 m = 2
500 )
501enddef
502" END_INDENT
503
504" START_INDENT
505var h =<< END
506text
507END
508
509def Func()
510 echo
511enddef
512" END_INDENT
513
514" START_INDENT
515def Func()
516 var h =<< END
517text
518END
519 echo 'test'
520enddef
521" END_INDENT
522
523" START_INDENT
524def Foo()
525 lcd -
526enddef
527def Bar()
528 echo
529enddef
530" END_INDENT
531
532" START_INDENT
533if true
534 n = Func(1, 2,
535 3)
536endif
537" END_INDENT
538
539" START_INDENT
540def Func(s: string,
541 n: number): bool
542 if true
543 return false
544 endif
545enddef
546" END_INDENT
547
548" START_INDENT
549def Func(
550 n: number)
551 #
552 echo
553enddef
554" END_INDENT
555
556" START_INDENT
557" INDENT_AT this-line
558def Func(
559 n: number)
560 #
561 echo # this-line
562enddef
563" END_INDENT
564
565" START_INDENT
566if true
567 if true
568 normal! ==
569 endif
570endif
571" END_INDENT
572
573" START_INDENT
574var d = {
575 a: () => true,
576 b: () => true
577 && true
578 && Foo(),
579 c: () => Bar(),
580 e: () => Baz(),
581}
582" END_INDENT
583
584" START_INDENT
585def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
586 return (Emit: func(any)) => {
587 Cont((t: any) => {
588 if Pred(t)
589 Emit(t)
590 endif
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))
599 return (Emit: func(any)) => {
600 Cont((t: any) => {
601 if Pred(t)
602 Emit(t)
603 endif
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> = {
638 doc: $'antiword {fname}',
639 docx: $'pandoc --from=docx --to=markdown {fname}',
640 epub: $'pandoc --from=epub --to=markdown {fname}',
641 odp: $'odt2txt {fname}',
642 odt: $'odt2txt {fname}',
643 pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
644 rtf: 'unrtf --text',
645}
646" END_INDENT
647
648" START_INDENT
649const ptybuf: number = term_start(&shell, {
650 hidden: true,
651 exit_cb: (_, _) => {
652 if true
653 close
654 else
655 help
656 endif
657 }
658})
659" END_INDENT
660
661" START_INDENT
662var d = {
663 a: 0,
664 # a ' quote {{{
665 #}}}
666 b: 0,
667}
668" END_INDENT
669
670" START_INDENT
671echo printf('%s () %s',
672 1,
673 2
674)
675" END_INDENT
676
677" START_INDENT
678prop_add(1, col('.'), {
679 length: 2,
680 type: '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 =>
692 k =~ '\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) =>
702 v * (
703 1
704 + 2
705 ))
706for item in d
707 ->items()
708 ->sort((a, b) => b[1] - a[1])
709 echo
710endfor
711" END_INDENT
712
713" START_INDENT
714make_job = job_start([&shell, &shellcmdflag, make_cmd], {
715 callback: function(MakeProcessOutput, [qfid]),
716 close_cb: function(MakeCloseCb, [qfid]),
717 exit_cb: MakeCompleted,
718 in_io: 'null'
719})
720" END_INDENT
721
722" START_INDENT
723var matching_abbrev: list<dict<string>> = copy(ABBREV)
724 ->filter((_, v: dict<string>): bool =>
725 stridx(v.lhs, word_to_complete) == 0)
726 ->map((_, v: dict<string>) => ({
727 word: v.lhs,
728 menu: 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()
736 if true
737 vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
738 endif
739enddef
740" END_INDENT
741
742" START_INDENT
743setlocal iskeyword+=[
744cword = expand('<cword>')
745" END_INDENT
746
747" START_INDENT
748silent if true
749 echo
750endif
751" END_INDENT
752
753" START_INDENT
754def Func()
755 sort :^.*[\/]:
756enddef
757" END_INDENT
758
759" START_INDENT
760def Func()
761 d = {
762 }
763 hd =<< trim END
764 ['
765 ]'
766 END
767enddef
768" END_INDENT
769
770" START_INDENT
771def Func()
772 if true
773 var hd =<< trim END
774 if get(b:, 'current_syntax', '')
775 endif
776 END
777 elseif true
778 echo
779 endif
780enddef
781" END_INDENT
782
783" START_INDENT
784# test for control-flow keyword followed by commented fold marker {{{
785if true
786 echo
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
797 if true
798 windo if true | echo | endif
799 augroup Name
800 autocmd WinLeave * if true | eval 1 + 2 | endif
801 augroup END
802 endif
803endif
804" END_INDENT
805
806" START_INDENT
807if true
808 echo ' =<< trim END'
809 ->len()
810endif
811" END_INDENT
812
813" START_INDENT
814function Func()
815 if true
816 if true
817 if true | echo com | endif
818 if true | echo com | endif
819 endif
820 else
821 endif
822endfunction
823" END_INDENT
824
825" START_INDENT
826function Func()
827 if v:true
828 +
829 echo
830 -
831 endif
832endfunction
833" END_INDENT
834
835" START_INDENT
836var matchpairs: string = &matchpairs
837var pairs: dict<list<string>>
838for [opening: string, closing: string]
839 in matchpairs
840 ->split(',')
841 ->map((_, v: string): list<string> => split(v, ':'))
842 pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
843 pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
844endfor
845" END_INDENT
846
847" START_INDENT
848{
849 echo []
850 + []
851 + [{a: 1,
852 b: 2}]
853}
854" END_INDENT
855
856" START_INDENT
857silent! argdel *
858edit file
859" END_INDENT