This repository was archived by the owner on Dec 16, 2025. It is now read-only.
Support one-based column indices for Edits#103
Merged
MichaReiser merged 1 commit intomainfrom May 10, 2023
Merged
Conversation
Member
Author
|
Current dependencies on/for this PR: This comment was auto-generated by Graphite. |
charliermarsh
approved these changes
May 10, 2023
konstin
approved these changes
May 10, 2023
MichaReiser
added a commit
to astral-sh/ruff
that referenced
this pull request
May 10, 2023
I noticed in the byte-offsets refactor that the `JsonEmitter` uses one indexed column numbers for the diagnostic start and end locations but not for `edits`. This PR changes the `JsonEmitter` to emit one-indexed column numbers for edits, as we already do for `Message::location` and `Message::end_location`. ## Open questions ~We'll need to change the LSP to subtract 1 from the columns in `_parse_fix`~ https://github.com/charliermarsh/ruff-lsp/blob/6e44fadf8a5954adaf3c21af196fa195708ff912/ruff_lsp/server.py#L129-L150 ~@charliermarsh is there a way to get the ruff version in that method? If not, then I recommend adding a `version` that we increment whenever we make incompatible changes to the serialized message. We can then use it in the LSP to correctly compute the column offset.~ I'll use the presence of the `Fix::applicability` field to detect if the Ruff version uses one or zero-based column indices. See astral-sh/ruff-lsp#103
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Ruff is switching to use one-based column indices for edits to align them with the fix-column indices.
This PR converts the column indices to zero-based indices depending on the connected ruff version. The heuristic used to detect whether ruff uses one-based indices is to test if the
Fixhas anapplicabilityfield which was newly introduced in astral-sh/ruff#4341.Test Plan
New ruff version
https://github.com/charliermarsh/ruff-lsp/assets/1203881/25f8ef9c-5215-4126-8dfb-4aa48fee9dbe
old ruff version using zero-based column indices
https://github.com/charliermarsh/ruff-lsp/assets/1203881/172cd901-7c70-47e8-81fa-f9c1402c69b1