Skip to content

Commit 469e55b

Browse files
authored
indent: default to the result of GetYAMLIndent; always return the default for non-blank lines (pearofducks#127)
1 parent c84f8bb commit 469e55b

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

indent/ansible.vim

+15-11
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ let s:named_module_entry = '\v^\s*-\s*(name|hosts|role):\s*\S' " - name: 'do stu
1818
let s:dictionary_entry = '\v^\s*[^:-]+:\s*$' " with_items:
1919
let s:key_value = '\v^\s*[^:-]+:\s*\S' " apt: name=package
2020
let s:scalar_value = '\v:\s*[>|\|]\s*$' " shell: >
21+
let s:blank = '\v^\s*$' " line with only spaces
2122

2223
if exists('*GetAnsibleIndent')
2324
finish
@@ -33,26 +34,29 @@ function GetAnsibleIndent(lnum)
3334
endif
3435
endif
3536
let prevlnum = prevnonblank(a:lnum - 1)
36-
let maintain = indent(prevlnum)
37-
let increase = maintain + &sw
37+
let default = GetYAMLIndent(a:lnum)
38+
let increase = indent(prevlnum) + &sw
3839

39-
let line = getline(prevlnum)
40-
if line =~ s:array_entry
41-
if line =~ s:named_module_entry
40+
let prevline = getline(prevlnum)
41+
let line = getline(a:lnum)
42+
if line !~ s:blank
43+
return default " we only special case blank lines
44+
elseif prevline =~ s:array_entry
45+
if prevline =~ s:named_module_entry
4246
return increase
4347
else
44-
return maintain
48+
return default
4549
endif
46-
elseif line =~ s:dictionary_entry
50+
elseif prevline =~ s:dictionary_entry
4751
return increase
48-
elseif line =~ s:key_value
49-
if line =~ s:scalar_value
52+
elseif prevline =~ s:key_value
53+
if prevline =~ s:scalar_value
5054
return increase
5155
else
52-
return maintain
56+
return default
5357
endif
5458
else
55-
return maintain
59+
return default
5660
endif
5761
endfunction
5862

0 commit comments

Comments
 (0)