Add ruby fixer using rubocop --auto-correct (#689)

* add ruby fixer for `rubocop --auto-correct`
This commit is contained in:
Lynn Dylan Hurley
2017-06-25 14:04:14 -05:00
committed by w0rp
parent 7d73a1602b
commit 7f6e5dc65b
4 changed files with 64 additions and 0 deletions

View File

@@ -42,6 +42,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['python'],
\ 'description': 'Fix Python files with yapf.',
\ },
\ 'rubocop': {
\ 'function': 'ale#fixers#rubocop#Fix',
\ 'suggested_filetypes': ['ruby'],
\ 'description': 'Fix ruby files with rubocop --auto-correct.',
\ },
\}
" Reset the function registry to the default entries.

View File

@@ -0,0 +1,31 @@
" Set this option to change Rubocop options.
if !exists('g:ale_ruby_rubocop_options')
" let g:ale_ruby_rubocop_options = '--lint'
let g:ale_ruby_rubocop_options = ''
endif
if !exists('g:ale_ruby_rubocop_executable')
let g:ale_ruby_rubocop_executable = 'rubocop'
endif
function! ale#fixers#rubocop#GetExecutable(buffer) abort
return ale#Var(a:buffer, 'ruby_rubocop_executable')
endfunction
function! ale#fixers#rubocop#GetCommand(buffer) abort
let l:executable = ale#Var(a:buffer, 'ruby_rubocop_executable')
let l:exec_args = l:executable =~? 'bundle$'
\ ? ' exec rubocop'
\ : ''
return ale#Escape(l:executable) . l:exec_args
\ . ' --auto-correct %t'
endfunction
function! ale#fixers#rubocop#Fix(buffer) abort
return {
\ 'command': ale#fixers#rubocop#GetCommand(a:buffer),
\ 'read_temporary_file': 1,
\}
endfunction