summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoload/ale/fixers/clangformat.vim13
-rw-r--r--test/fixers/test_clangformat_fixer_callback.vader3
2 files changed, 11 insertions, 5 deletions
diff --git a/autoload/ale/fixers/clangformat.vim b/autoload/ale/fixers/clangformat.vim
index eae1a7b4..ea5743a5 100644
--- a/autoload/ale/fixers/clangformat.vim
+++ b/autoload/ale/fixers/clangformat.vim
@@ -13,10 +13,15 @@ function! ale#fixers#clangformat#GetExecutable(buffer) abort
endfunction
function! ale#fixers#clangformat#Fix(buffer) abort
+ let l:executable = ale#Escape(ale#fixers#clangformat#GetExecutable(a:buffer))
+ let l:filename = ale#Escape(bufname(a:buffer))
let l:options = ale#Var(a:buffer, 'c_clangformat_options')
- return {
- \ 'command': ale#Escape(ale#fixers#clangformat#GetExecutable(a:buffer))
- \ . ' ' . l:options,
- \}
+ let l:command = l:executable . ' --assume-filename=' . l:filename
+
+ if l:options isnot# ''
+ let l:command .= ' ' . l:options
+ endif
+
+ return {'command': l:command}
endfunction
diff --git a/test/fixers/test_clangformat_fixer_callback.vader b/test/fixers/test_clangformat_fixer_callback.vader
index a55576bf..ae7db4cf 100644
--- a/test/fixers/test_clangformat_fixer_callback.vader
+++ b/test/fixers/test_clangformat_fixer_callback.vader
@@ -20,7 +20,7 @@ Execute(The clang-format callback should return the correct default values):
AssertEqual
\ {
\ 'command': ale#Escape(g:ale_c_clangformat_executable)
- \ . ' '
+ \ . ' --assume-filename=' . ale#Escape(bufname(bufnr('')))
\ },
\ ale#fixers#clangformat#Fix(bufnr(''))
@@ -31,6 +31,7 @@ Execute(The clangformat callback should include any additional options):
AssertEqual
\ {
\ 'command': ale#Escape(g:ale_c_clangformat_executable)
+ \ . ' --assume-filename=' . ale#Escape(bufname(bufnr('')))
\ . ' --some-option',
\ },
\ ale#fixers#clangformat#Fix(bufnr(''))