blob: c2e149ab377e522463c51ddb144cc0e51797d616 [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
Christian Brabandt6efb1982023-08-10 05:44:25 +0200487if true
488var d = {
489end: 0}
490endif
491" END_INDENT
492
493" START_INDENT
Bram Moolenaar9fbdbb82022-09-27 17:30:34 +0100494nunmap <buffer> (
495nunmap <buffer> )
496inoremap [ {
497inoremap ] }
498silent! xunmap i{
499silent! xunmap a{
500" END_INDENT
501
502" START_INDENT
503def Func(
504s: string,
505n = 1,
506m = 2
507)
508enddef
509" END_INDENT
510
511" START_INDENT
512var h =<< END
513text
514END
515
516def Func()
517echo
518enddef
519" END_INDENT
520
521" START_INDENT
522def Func()
523var h =<< END
524text
525END
526echo 'test'
527enddef
528" END_INDENT
529
530" START_INDENT
531def Foo()
532lcd -
533enddef
534def Bar()
535echo
536enddef
537" END_INDENT
538
539" START_INDENT
540if true
541n = Func(1, 2,
5423)
543endif
544" END_INDENT
545
546" START_INDENT
547def Func(s: string,
548n: number): bool
549if true
550return false
551endif
552enddef
553" END_INDENT
554
555" START_INDENT
556def Func(
557n: number)
558#
559echo
560enddef
561" END_INDENT
562
563" START_INDENT
564" INDENT_AT this-line
565def Func(
566 n: number)
567 #
568echo # this-line
569enddef
570" END_INDENT
571
572" START_INDENT
573if true
574if true
575normal! ==
576endif
577endif
578" END_INDENT
579
580" START_INDENT
581var d = {
582a: () => true,
583b: () => true
584&& true
585&& Foo(),
586c: () => Bar(),
587e: () => Baz(),
588}
589" END_INDENT
590
591" START_INDENT
592def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
593return (Emit: func(any)) => {
594Cont((t: any) => {
595if Pred(t)
596Emit(t)
597endif
598})
599}
600enddef
601" END_INDENT
602
603" START_INDENT
604" INDENT_EXE let g:vim_indent = {'more_in_bracket_block': v:true}
605def Select(Cont: func(func(any)), Pred: func(any): bool): func(func(any))
606return (Emit: func(any)) => {
607Cont((t: any) => {
608if Pred(t)
609Emit(t)
610endif
611})
612}
613enddef
614" END_INDENT
615
616" START_INDENT
617" INDENT_EXE unlet! g:vim_indent
618" END_INDENT
619
620" START_INDENT
621g:lightline = {
622'active': {
623'left': [ [ 'mode', 'paste' ], [ 'readonly', 'relativepath', 'modified' ] ],
624},
625'inactive': {
626'left': [ [ 'readonly', 'relativepath', 'modified' ] ],
627}
628}
629" END_INDENT
630
631" START_INDENT
632if getline(1, 10)
633->map((_, v: string): number => strcharlen(v))
634->max() > 1'000
635&l:breakindent = false
636&l:linebreak = false
637else
638&l:breakindent = true
639&l:linebreak = true
640endif
641" END_INDENT
642
643" START_INDENT
644var ext2cmd: dict<string> = {
645doc: $'antiword {fname}',
646docx: $'pandoc --from=docx --to=markdown {fname}',
647epub: $'pandoc --from=epub --to=markdown {fname}',
648odp: $'odt2txt {fname}',
649odt: $'odt2txt {fname}',
650pdf: $'pdftotext -nopgbrk -layout -q -eol unix {fname} -',
651rtf: 'unrtf --text',
652}
653" END_INDENT
654
655" START_INDENT
656const ptybuf: number = term_start(&shell, {
657hidden: true,
658exit_cb: (_, _) => {
659if true
660close
661else
662help
663endif
664}
665})
666" END_INDENT
667
668" START_INDENT
669var d = {
670a: 0,
671# a ' quote {{{
672#}}}
673b: 0,
674}
675" END_INDENT
676
677" START_INDENT
678echo printf('%s () %s',
6791,
6802
681)
682" END_INDENT
683
684" START_INDENT
685prop_add(1, col('.'), {
686length: 2,
687type: 'test'
688})
689" END_INDENT
690
691" START_INDENT
692echo (() => " string starting with space")()
693echo
694" END_INDENT
695
696" START_INDENT
697var variables = deepcopy(g:)
698->filter((k: string, _): bool =>
699k =~ '\c\V' .. keyword->escape('\')
700&& k !~ '\%(loaded\|did_plugin_\)')
701->items()
702->map((_, v): string => v[0] .. ' = ' .. string(v[1]))
703new
704" END_INDENT
705
706" START_INDENT
707var d = freq
708->map((_, v) =>
709v * (
7101
711+ 2
712))
713for item in d
714->items()
715->sort((a, b) => b[1] - a[1])
716echo
717endfor
718" END_INDENT
719
720" START_INDENT
721make_job = job_start([&shell, &shellcmdflag, make_cmd], {
722callback: function(MakeProcessOutput, [qfid]),
723close_cb: function(MakeCloseCb, [qfid]),
724exit_cb: MakeCompleted,
725in_io: 'null'
726})
727" END_INDENT
728
729" START_INDENT
730var matching_abbrev: list<dict<string>> = copy(ABBREV)
731->filter((_, v: dict<string>): bool =>
732stridx(v.lhs, word_to_complete) == 0)
733->map((_, v: dict<string>) => ({
734word: v.lhs,
735menu: AbbrevRhs(v.rhs)->stridx('expand_') >= 0
736? AbbrevRhs(v.rhs)->matchstr('.*,\s*''\zs.*\ze'')')
737: AbbrevRhs(v.rhs)
738}))
739" END_INDENT
740
741" START_INDENT
742def Func()
743if true
744vimgrep /^\C\s*\%(fu\%[nction]\|def\)\s\+/ file
745endif
746enddef
747" END_INDENT
748
749" START_INDENT
750setlocal iskeyword+=[
751cword = expand('<cword>')
752" END_INDENT
753
754" START_INDENT
755silent if true
756echo
757endif
758" END_INDENT
759
760" START_INDENT
761def Func()
762sort :^.*[\/]:
763enddef
764" END_INDENT
765
766" START_INDENT
767def Func()
768d = {
769}
770hd =<< trim END
771['
772]'
773END
774enddef
775" END_INDENT
776
777" START_INDENT
778def Func()
779if true
780var hd =<< trim END
781if get(b:, 'current_syntax', '')
782endif
783END
784elseif true
785echo
786endif
787enddef
788" END_INDENT
789
790" START_INDENT
791# test for control-flow keyword followed by commented fold marker {{{
792if true
793echo
794endif #}}}
795" END_INDENT
796
797" START_INDENT
798if winsz == 0|let winsz= ""|endif
799exe "noswapfile ".winsz."wincmd s"
800" END_INDENT
801
802" START_INDENT
803if true
804if true
805windo if true | echo | endif
806augroup Name
807autocmd WinLeave * if true | eval 1 + 2 | endif
808augroup END
809endif
810endif
811" END_INDENT
812
813" START_INDENT
814if true
815echo ' =<< trim END'
816->len()
817endif
818" END_INDENT
819
820" START_INDENT
821function Func()
822if true
823if true
824if true | echo com | endif
825if true | echo com | endif
826endif
827else
828endif
829endfunction
830" END_INDENT
831
832" START_INDENT
833function Func()
834if v:true
835+
836echo
837-
838endif
839endfunction
840" END_INDENT
841
842" START_INDENT
843var matchpairs: string = &matchpairs
844var pairs: dict<list<string>>
845for [opening: string, closing: string]
846in matchpairs
847->split(',')
848->map((_, v: string): list<string> => split(v, ':'))
849pairs[opening] = [escape(opening, '[]'), escape(closing, '[]'), 'nW', 'w$']
850pairs[closing] = [escape(opening, '[]'), escape(closing, '[]'), 'bnW', 'w0']
851endfor
852" END_INDENT
853
854" START_INDENT
855{
856echo []
857+ []
858+ [{a: 1,
859b: 2}]
860}
861" END_INDENT
862
863" START_INDENT
864silent! argdel *
865edit file
866" END_INDENT
Bram Moolenaarf269eab2022-10-03 18:04:35 +0100867
868" START_INDENT
869def Foo()
870Bar(1,
871[]->filter((_, v) => {
872return true
873}),
874() => {
875echo
876})
877enddef
878" END_INDENT
Bram Moolenaar3c053a12022-10-16 13:11:12 +0100879
880" START_INDENT
881echo {
882k: () => {
883if true
884echo
885popup_setoptions(id,
886{title: 'title'})
887endif
888}
889}
890" END_INDENT
891
892" START_INDENT
893if true
894elseif
895endif
896" END_INDENT
Bram Moolenaarbe4e0162023-02-02 13:59:48 +0000897
898" START_INDENT
899if (
900true)
901&& true
902echo
903endif
904" END_INDENT
905
906" START_INDENT
907abstract class Shape
908this.color = Color.Black
909this.thickness = 10
910endclass
911" END_INDENT
912
913" START_INDENT
914class OtherThing
915this.size: number
916static totalSize: number
917
918static def ClearTotalSize(): number
919var prev = totalSize
920totalSize = 0
921return prev
922enddef
923endclass
924" END_INDENT
925
926" START_INDENT
927interface HasSurface
928this.size: number
929def Surface(): number
930endinterface
931" END_INDENT
932
933" START_INDENT
934interface EnterExit
935def Enter(): void
936def Exit(): void
937endinterface
938" END_INDENT
939
940" START_INDENT
941enum Color
942White
943Red
944Green
945Blue
946Black
947endenum
948" END_INDENT