Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: force --no-fix when ruff used as a linter #4759

Merged
merged 1 commit into from
Apr 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ale_linters/python/ruff.vim
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ function! ale_linters#python#ruff#GetCommand(buffer, version) abort
" NOTE: ruff version `0.0.69` supports liniting input from stdin
" NOTE: ruff version `0.1.0` deprecates `--format text`
return ale#Escape(l:executable) . l:exec_args . ' -q'
\ . ' --no-fix'
\ . ale#Pad(ale#Var(a:buffer, 'python_ruff_options'))
\ . (ale#semver#GTE(a:version, [0, 1, 0]) ? ' --output-format json-lines' : ' --format json-lines')
\ . (ale#semver#GTE(a:version, [0, 0, 69]) ? ' --stdin-filename %s -' : ' %s')
Expand Down
16 changes: 8 additions & 8 deletions test/linter/test_ruff.vader
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Before:
call ale#assert#SetUpLinterTest('python', 'ruff')

let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
let b:command_head = ale#Escape('ruff') . ' -q'
let b:command_head = ale#Escape('ruff') . ' -q --no-fix'
let b:command_tail = ' --format json-lines --stdin-filename %s -'

GivenCommandOutput ['ruff 0.0.83']
Expand Down Expand Up @@ -46,7 +46,7 @@ Execute(ruff should run with the check subcmd in versions >= 0.3.0):
GivenCommandOutput ['ruff 0.3.0']

AssertLinterCwd expand('%:p:h')
let b:cmd_head = ale#Escape('ruff') . ' check -q'
let b:cmd_head = ale#Escape('ruff') . ' check -q --no-fix'
AssertLinter 'ruff', b:cmd_head . ' --output-format json-lines --stdin-filename %s -'

Execute(The option for disabling changing directories should work):
Expand All @@ -58,7 +58,7 @@ Execute(The option for disabling changing directories should work):
Execute(The ruff executable should be configurable, and escaped properly):
let g:ale_python_ruff_executable = 'executable with spaces'

AssertLinter 'executable with spaces', ale#Escape('executable with spaces') . ' -q' . b:command_tail
AssertLinter 'executable with spaces', ale#Escape('executable with spaces') . ' -q --no-fix' . b:command_tail

Execute(The ruff command callback should let you set options):
let g:ale_python_ruff_options = '--some-flag'
Expand All @@ -79,7 +79,7 @@ Execute(The ruff callbacks should detect virtualenv directories):
\ g:dir . '/../test-files/python/with_virtualenv/env/' . b:bin_dir . '/ruff'
\)
AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/python/with_virtualenv/subdir')
AssertLinter b:executable, ale#Escape(b:executable) . ' -q' . b:command_tail
AssertLinter b:executable, ale#Escape(b:executable) . ' -q --no-fix' . b:command_tail

Execute(You should able able to use the global ruff instead):
call ale#test#SetFilename('../test-files/python/with_virtualenv/subdir/foo/bar.py')
Expand All @@ -92,28 +92,28 @@ Execute(Setting executable to 'pipenv' appends 'run ruff'):
let g:ale_python_ruff_executable = 'path/to/pipenv'
let g:ale_python_ruff_use_global = 1

AssertLinter 'path/to/pipenv', ale#Escape('path/to/pipenv') . ' run ruff -q'
AssertLinter 'path/to/pipenv', ale#Escape('path/to/pipenv') . ' run ruff -q --no-fix'
\ . b:command_tail

Execute(Pipenv is detected when python_ruff_auto_pipenv is set):
let g:ale_python_ruff_auto_pipenv = 1
call ale#test#SetFilename('../test-files/python/pipenv/whatever.py')

AssertLinterCwd expand('%:p:h')
AssertLinter 'pipenv', ale#Escape('pipenv') . ' run ruff -q'
AssertLinter 'pipenv', ale#Escape('pipenv') . ' run ruff -q --no-fix'
\ . b:command_tail

Execute(Setting executable to 'poetry' appends 'run ruff'):
let g:ale_python_ruff_executable = 'path/to/poetry'
let g:ale_python_ruff_use_global = 1

AssertLinter 'path/to/poetry', ale#Escape('path/to/poetry') . ' run ruff -q'
AssertLinter 'path/to/poetry', ale#Escape('path/to/poetry') . ' run ruff -q --no-fix'
\ . b:command_tail

Execute(poetry is detected when python_ruff_auto_poetry is set):
let g:ale_python_ruff_auto_poetry = 1
call ale#test#SetFilename('../test-files/python/poetry/whatever.py')

AssertLinterCwd expand('%:p:h')
AssertLinter 'poetry', ale#Escape('poetry') . ' run ruff -q'
AssertLinter 'poetry', ale#Escape('poetry') . ' run ruff -q --no-fix'
\ . b:command_tail