diff --git a/autoload/ale/fixers/astyle.vim b/autoload/ale/fixers/astyle.vim index aea5cc8a..236c97f1 100644 --- a/autoload/ale/fixers/astyle.vim +++ b/autoload/ale/fixers/astyle.vim @@ -18,10 +18,10 @@ endfunction function! ale#fixers#astyle#Fix(buffer) abort let l:executable = ale#fixers#astyle#Var(a:buffer, 'executable') - let l:command = ' %t' + let l:filename = ale#Escape(bufname(a:buffer)) + let l:command = ' --stdin=' . l:filename return { - \ 'command': ale#Escape(l:executable) . l:command, - \ 'read_temporary_file': 1, + \ 'command': ale#Escape(l:executable) . l:command \} endfunction diff --git a/test/fixers/test_astyle_fixer_callback.vader b/test/fixers/test_astyle_fixer_callback.vader index 9eb52788..fc481d95 100644 --- a/test/fixers/test_astyle_fixer_callback.vader +++ b/test/fixers/test_astyle_fixer_callback.vader @@ -3,6 +3,7 @@ Before: " Use an invalid global executable, so we don't match it. let g:ale_c_astyle_executable = 'xxxinvalid' + let g:ale_cpp_astyle_executable = 'invalidpp' call ale#test#SetDirectory('/testplugin/test/fixers') @@ -13,24 +14,24 @@ After: Execute(The astyle callback should return the correct default values): call ale#test#SetFilename('../c_files/testfile.c') + let targetfile = '/testplugin/test/c_files/testfile.c' AssertEqual \ { - \ 'read_temporary_file': 1, - \ 'command': ale#Escape('xxxinvalid') - \ . ' %t', + \ 'command': ale#Escape(g:ale_c_astyle_executable) + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) Execute(The astyle callback should support cpp files): call ale#test#SetFilename('../cpp_files/dummy.cpp') - let g:ale_cpp_astyle_executable = 'xxxinvalid' + let targetfile = '/testplugin/test/cpp_files/dummy.cpp' set filetype=cpp " The test fails without this AssertEqual \ { - \ 'read_temporary_file': 1, - \ 'command': ale#Escape('xxxinvalid') - \ . ' %t', + \ 'command': ale#Escape(g:ale_cpp_astyle_executable) + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) +