Text format to return edited ranges instead of entire document #579
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.
This pull request addresses the current behavior of ZLS's text formatting. Currently, ZLS will return the result of
zig fmt
as the replacement text for the entire range of the document. This causes odd issues in certain text editors such as Helix which lose cursor position due to the whole document being changedThis pull request adds the ability to compare the input text and the
zig fmt
output in order to get proper text edit ranges. I am not an expert on the LSP specification by any means, but I believe this is more in mind with how text formatting is supposed to behave. In most cases it should allow for smaller messages between the client and server as well