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

Avoid writing empty source on excluded files #317

Merged
merged 1 commit into from
Nov 10, 2023
Merged

Conversation

charliermarsh
Copy link
Member

@charliermarsh charliermarsh commented Nov 10, 2023

Right now, if the user tries to fix or format an excluded file, we don't write anything to stdout. As a result, the LSP then overwrites the file with the empty string.

This is a compromise fix whereby we avoid writing empty fixes in the LSP. It's a "compromise" in that it'll do the wrong thing in some cases, e.g., if the file is just import os, we won't remove that when the user runs "Fix all". However, I think we already had this behavior in the LSP in the past, and we can fix it for newer versions by changing Ruff to output the unchanged file.

Test Plan

Ran the debug extension.

Opened a first-party file, and ensured that formatting and linting work as before (with the exception of the import os case).

Opened a third-party file, and ensured that formatting and linting had no effect (and didn't delete the file).

Copy link
Member

@dhruvmanila dhruvmanila left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@charliermarsh charliermarsh merged commit 5e03217 into main Nov 10, 2023
20 checks passed
@charliermarsh charliermarsh deleted the charlie/empty branch November 10, 2023 03:57
charliermarsh added a commit that referenced this pull request Nov 10, 2023
## Summary

We can avoid the safeguard we introduced in
#317 for newer Ruff versions,
since Ruff will now avoid writing empty output for excluded files (see:
astral-sh/ruff#8596).

Closes #267.

## Test Plan

I tested this with a local debug build. Now, when I "Fix all" on a
non-excluded file with `import os`, it _does_ properly get removed,
while running "Format" or "Fix all" on an excluded file leaves the
contents untouched.
azurelotus0926 added a commit to azurelotus0926/ruff-lsp that referenced this pull request Jun 27, 2024
## Summary

We can avoid the safeguard we introduced in
astral-sh/ruff-lsp#317 for newer Ruff versions,
since Ruff will now avoid writing empty output for excluded files (see:
astral-sh/ruff#8596).

Closes astral-sh/ruff-lsp#267.

## Test Plan

I tested this with a local debug build. Now, when I "Fix all" on a
non-excluded file with `import os`, it _does_ properly get removed,
while running "Format" or "Fix all" on an excluded file leaves the
contents untouched.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants