diff options
author | Horacio Sanson <hsanson@gmail.com> | 2020-08-01 13:21:16 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-01 13:21:16 +0900 |
commit | 9894e925539bb65c875fa8c67c9e2ddc4d5a17b1 (patch) | |
tree | d6ca13e4d165b5c6d0a5c73f2230a3cfcaa52ea8 | |
parent | fc7b4585e630313560def02806b02e08f84d8f5d (diff) | |
parent | e2d1e54eb5ac65e2320ac8ce977e70c7016591c4 (diff) | |
download | ale-9894e925539bb65c875fa8c67c9e2ddc4d5a17b1.zip |
Merge pull request #3257 from jhlink/fix_astyle_config_detection_with_source
Fix Astyle Project Option Detection when Placed with Source Files
-rw-r--r-- | autoload/ale/fixers/astyle.vim | 2 | ||||
-rw-r--r-- | test/fixers/test_astyle_fixer_callback.vader | 30 | ||||
-rw-r--r-- | test/test_cpp_project/.astylerc | 0 | ||||
-rw-r--r-- | test/test_cpp_project/dummy.cpp | 0 |
4 files changed, 25 insertions, 7 deletions
diff --git a/autoload/ale/fixers/astyle.vim b/autoload/ale/fixers/astyle.vim index 04e4b69a..3a5a70a1 100644 --- a/autoload/ale/fixers/astyle.vim +++ b/autoload/ale/fixers/astyle.vim @@ -49,7 +49,7 @@ endfunction function! ale#fixers#astyle#Fix(buffer) abort let l:executable = ale#fixers#astyle#Var(a:buffer, 'executable') let l:proj_options = ale#fixers#astyle#FindProjectOptions(a:buffer) - let l:command = ' --stdin=' + let l:command = ' --stdin=' . ale#Escape(expand('#' . a:buffer)) return { \ 'command': ale#Escape(l:executable) diff --git a/test/fixers/test_astyle_fixer_callback.vader b/test/fixers/test_astyle_fixer_callback.vader index cbec4493..ac756870 100644 --- a/test/fixers/test_astyle_fixer_callback.vader +++ b/test/fixers/test_astyle_fixer_callback.vader @@ -20,11 +20,12 @@ Execute(The astyle callback should return the correct default values): " Because this file doesn't exist, no astylrc config " exists near it. Therefore, project_options is empty. call ale#test#SetFilename('../c_files/testfile.c') + let targetfile = bufname(bufnr('%')) AssertEqual \ { \ 'command': ale#Escape(g:ale_c_astyle_executable) - \ . ' --stdin=' + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) @@ -33,46 +34,63 @@ Execute(The astyle callback should support cpp files): " exists near it. Therefore, project_options is empty. call ale#test#SetFilename('../cpp_files/dummy.cpp') set filetype=cpp " The test fails without this + let targetfile = bufname(bufnr('%')) AssertEqual \ { \ 'command': ale#Escape(g:ale_cpp_astyle_executable) - \ . ' --stdin=' + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) Execute(The astyle callback should support cpp files with option file set): call ale#test#SetFilename('../cpp_files/dummy.cpp') let g:ale_cpp_astyle_project_options = '.astylerc_cpp' + let targetfile = bufname(bufnr('%')) set filetype=cpp " The test fails without this AssertEqual \ { \ 'command': ale#Escape('invalidpp') \ . ' --project=' . g:ale_cpp_astyle_project_options - \ . ' --stdin=' + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) -Execute(The astyle callback should return the correct default values with an option file set): +Execute(The astyle callback should return the correct default values with a specified option file): call ale#test#SetFilename('../c_files/testfile.c') let g:ale_c_astyle_project_options = '.astylerc_c' + let targetfile = bufname(bufnr('%')) AssertEqual \ { \ 'command': ale#Escape('xxxinvalid') \ . ' --project=' . g:ale_c_astyle_project_options - \ . ' --stdin=' + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) Execute(The astyle callback should find nearest default option file _astylrc): call ale#test#SetFilename('../test_c_projects/makefile_project/subdir/file.c') + let targetfile = bufname(bufnr('%')) AssertEqual \ { \ 'command': ale#Escape('xxxinvalid') \ . ' --project=_astylerc' - \ . ' --stdin=' + \ . ' --stdin=' . ale#Escape(targetfile) + \ }, + \ ale#fixers#astyle#Fix(bufnr('')) + +Execute(The astyle callback should find .astylrc in the same directory as src): + call ale#test#SetFilename('../test_cpp_project/dummy.cpp') + set filetype=cpp " The test fails without this + let targetfile = bufname(bufnr('%')) + + AssertEqual + \ { + \ 'command': ale#Escape('invalidpp') + \ . ' --project=.astylerc' + \ . ' --stdin=' . ale#Escape(targetfile) \ }, \ ale#fixers#astyle#Fix(bufnr('')) diff --git a/test/test_cpp_project/.astylerc b/test/test_cpp_project/.astylerc new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/test_cpp_project/.astylerc diff --git a/test/test_cpp_project/dummy.cpp b/test/test_cpp_project/dummy.cpp new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/test/test_cpp_project/dummy.cpp |