diff --git a/autoload/ale/fixers/rubocop.vim b/autoload/ale/fixers/rubocop.vim index 3f92055..88dc1c4 100644 --- a/autoload/ale/fixers/rubocop.vim +++ b/autoload/ale/fixers/rubocop.vim @@ -3,8 +3,10 @@ function! ale#fixers#rubocop#GetCommand(buffer) abort let l:exec_args = l:executable =~? 'bundle$' \ ? ' exec rubocop' \ : '' + let l:config = ale#path#FindNearestFile(a:buffer, '.rubocop.yml') return ale#Escape(l:executable) . l:exec_args + \ . (!empty(l:config) ? ' --config ' . ale#Escape(l:config) : '') \ . ' --auto-correct %t' endfunction diff --git a/test/command_callback/ruby_paths/with_config/.rubocop.yml b/test/command_callback/ruby_paths/with_config/.rubocop.yml new file mode 100644 index 0000000..e69de29 diff --git a/test/fixers/test_rubocop_fixer_callback.vader b/test/fixers/test_rubocop_fixer_callback.vader index e9352e7..74160c7 100644 --- a/test/fixers/test_rubocop_fixer_callback.vader +++ b/test/fixers/test_rubocop_fixer_callback.vader @@ -19,10 +19,24 @@ After: unlet! g:dir Execute(The rubocop callback should return the correct default values): - silent execute 'file ' . fnameescape(g:dir . '/ruby_paths/dummy.rb') + call ale#test#SetFilename('ruby_paths/dummy.rb') AssertEqual - \ {'read_temporary_file': 1, - \ 'command': "'" . g:ale_ruby_rubocop_executable . "' " - \ . '--auto-correct %t' }, + \ { + \ 'read_temporary_file': 1, + \ 'command': ale#Escape(g:ale_ruby_rubocop_executable) + \ . ' --auto-correct %t', + \ }, + \ ale#fixers#rubocop#Fix(bufnr('')) + +Execute(The rubocop callback should include configuration files): + call ale#test#SetFilename('ruby_paths/with_config/dummy.rb') + + AssertEqual + \ { + \ 'read_temporary_file': 1, + \ 'command': ale#Escape(g:ale_ruby_rubocop_executable) + \ . ' --config ' . ale#Escape(g:dir . '/ruby_paths/with_config/.rubocop.yml') + \ . ' --auto-correct %t', + \ }, \ ale#fixers#rubocop#Fix(bufnr(''))