Fix an off-by-one error in the LSP formatter #1605
Merged
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.
According to the LSP specification the end of a text range in the protocol is exclusive. When executing a formatting request in the language server we want to replace the entire document with the formatted result, including any trailing newlines. This means we need to specify the beginning of the line after the very last line in the document as the end of the range of text to be replaced.
This also fixes an annoying behaviour when formatting with NLS in Helix. Previously, Helix would insist on selecting (what looked like) the entire document on every formatting request. With this change, Helix refrains from doing this.