Mercurial > index.cgi > dotfiles
annotate .vim/indent/puppet.vim @ 225:ee0a9b422580
Updates to csesbh2's screen sessions
author | Steve Huston <huston@astro.princeton.edu> |
---|---|
date | Mon, 09 Aug 2021 10:59:57 -0400 |
parents | 07395fbde025 |
children |
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 |