@@ -18,12 +18,13 @@ let s:plugin = maktaba#plugin#Get('codefmt')
1818
1919function ! s: ClangFormatHasAtLeastVersion (minimum_version) abort
2020 if ! exists (' s:clang_format_version' )
21- let l: executable = s: plugin .Flag (' clang_format_executable' )
22- if codefmt#ShouldPerformIsAvailableChecks () && ! executable (l: executable )
21+ let l: cmd = codefmt#formatterhelpers#ResolveFlagToArray (
22+ \ ' clang_format_executable' )
23+ if codefmt#ShouldPerformIsAvailableChecks () && ! executable (l: cmd [0 ])
2324 return 0
2425 endif
2526
26- let l: syscall = maktaba#syscall#Create ([ l: executable , ' --version' ])
27+ let l: syscall = maktaba#syscall#Create (l: cmd + [ ' --version' ])
2728 " Call with throw_errors disabled because some versions of clang-format
2829 " misbehave and return exit code 1 along with the successful version
2930 " output (see https://github.com/google/vim-codefmt/issues/84).
@@ -104,7 +105,13 @@ function! codefmt#clangformat#GetFormatter() abort
104105 \ ' configure the clang_format_executable flag' }
105106
106107 function l: formatter .IsAvailable () abort
107- return executable (s: plugin .Flag (' clang_format_executable' ))
108+ let l: cmd = codefmt#formatterhelpers#ResolveFlagToArray (
109+ \ ' clang_format_executable' )
110+ if ! empty (l: cmd ) && executable (l: cmd [0 ])
111+ return 1
112+ else
113+ return 0
114+ endif
108115 endfunction
109116
110117 function l: formatter .AppliesToBuffer () abort
@@ -136,9 +143,8 @@ function! codefmt#clangformat#GetFormatter() abort
136143 return
137144 endif
138145
139- let l: cmd = [
140- \ s: plugin .Flag (' clang_format_executable' ),
141- \ ' -style' , l: style ]
146+ let l: cmd = codefmt#formatterhelpers#ResolveFlagToArray (
147+ \ ' clang_format_executable' ) + [' -style' , l: style ]
142148 let l: fname = expand (' %:p' )
143149 if ! empty (l: fname )
144150 let l: cmd += [' -assume-filename' , l: fname ]
0 commit comments