@@ -33,11 +33,23 @@ function! s:system(str, ...)
33
33
return output
34
34
endfunction
35
35
36
- function ! s: make_style_options ()
36
+ function ! s: build_extra_options ()
37
37
let extra_options = " "
38
- for [key , value] in items (g: clang_format #style_options)
38
+
39
+ let opts = copy (g: clang_format #style_options)
40
+ if has_key (g: clang_format #filetype_style_options, &ft )
41
+ call extend (opts, g: clang_format #filetype_style_options[&ft ])
42
+ endif
43
+
44
+ for [key , value] in items (opts)
39
45
let extra_options .= printf (" , %s: %s" , key , value)
40
46
endfor
47
+
48
+ return extra_options
49
+ endfunction
50
+
51
+ function ! s: make_style_options ()
52
+ let extra_options = s: build_extra_options ()
41
53
return printf (" '{BasedOnStyle: %s, IndentWidth: %d, UseTab: %s%s}'" ,
42
54
\ g: clang_format #code_style,
43
55
\ (exists (' *shiftwidth' ) ? shiftwidth () : &l: shiftwidth ),
@@ -124,6 +136,7 @@ endif
124
136
125
137
let g: clang_format #code_style = s: getg (' clang_format#code_style' , ' google' )
126
138
let g: clang_format #style_options = s: getg (' clang_format#style_options' , {})
139
+ let g: clang_format #filetype_style_options = s: getg (' clang_format#filetype_style_options' , {})
127
140
128
141
let g: clang_format #detect_style_file = s: getg (' clang_format#detect_style_file' , 1 )
129
142
let g: clang_format #auto_format = s: getg (' clang_format#auto_format' , 0 )
0 commit comments