Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Avoid writing empty source on excluded files#317

Merged
charliermarsh merged 1 commit intomainfrom
charlie/empty
Nov 10, 2023
Merged

Avoid writing empty source on excluded files#317
charliermarsh merged 1 commit intomainfrom
charlie/empty

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
@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.
azurelotus06 added a commit to azurelotus06/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 subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants