annotate .vim/indent/puppet.vim @ 206:3b8b613c4d7a

Whitespace!
author Steve Huston <huston@astro.princeton.edu>
date Tue, 24 Nov 2020 17:33:55 -0500
parents 07395fbde025
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
109
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
1 " Vim indent file
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
2 " Language: Puppet
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
3 " Maintainer: Todd Zullinger <tmz@pobox.com>
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
4 " Last Change: 2009 Aug 19
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
5 " vim: set sw=4 sts=4:
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
6
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
7 if exists("b:did_indent")
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
8 finish
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
9 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
10 let b:did_indent = 1
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
11
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
12 setlocal autoindent smartindent
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
13 setlocal indentexpr=GetPuppetIndent()
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
14 setlocal indentkeys+=0],0)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
15
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
16 if exists("*GetPuppetIndent")
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
17 finish
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
18 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
19
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
20 " Check if a line is part of an include 'block', e.g.:
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
21 " include foo,
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
22 " bar,
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
23 " baz
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
24 function! s:PartOfInclude(lnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
25 let lnum = a:lnum
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
26 while lnum
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
27 let lnum = lnum - 1
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
28 let line = getline(lnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
29 if line !~ ',$'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
30 break
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
31 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
32 if line =~ '^\s*include\s\+[^,]\+,$'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
33 return 1
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
34 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
35 endwhile
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
36 return 0
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
37 endfunction
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
38
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
39 function! s:OpenBrace(lnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
40 call cursor(a:lnum, 1)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
41 return searchpair('{\|\[\|(', '', '}\|\]\|)', 'nbW')
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
42 endfunction
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
43
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
44 function! GetPuppetIndent()
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
45 let pnum = prevnonblank(v:lnum - 1)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
46 if pnum == 0
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
47 return 0
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
48 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
49
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
50 let line = getline(v:lnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
51 let pline = getline(pnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
52 let ind = indent(pnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
53
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
54 if pline =~ '^\s*#'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
55 return ind
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
56 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
57
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
58 if pline =~ '\({\|\[\|(\|:\)$'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
59 let ind += &sw
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
60 elseif pline =~ ';$' && pline !~ '[^:]\+:.*[=+]>.*'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
61 let ind -= &sw
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
62 elseif pline =~ '^\s*include\s\+.*,$'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
63 let ind += &sw
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
64 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
65
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
66 if pline !~ ',$' && s:PartOfInclude(pnum)
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
67 let ind -= &sw
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
68 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
69
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
70 " Match } }, }; ] ]: )
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
71 if line =~ '^\s*\(}\(,\|;\)\?$\|]:\?$\|)\)'
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
72 let ind = indent(s:OpenBrace(v:lnum))
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
73 endif
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
74
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
75 return ind
07395fbde025 Adding puppet plugin:
Steve Huston <huston@astro.princeton.edu>
parents:
diff changeset
76 endfunction