Map LSP documents by normalised FilePath#1252
Open
lionel- wants to merge 2 commits into
Open
Conversation
10e2102 to
f6332d0
Compare
4ac9528 to
e807fd2
Compare
f6332d0 to
14bacca
Compare
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Branched from #1251
Progress towards #1212
See #1250 for more context.
WorldStatenow keys documents by normalisedFilePathinstead ofUrl. Seestate.rs. Keying by normalised paths will prevent bugs when matching to paths that don't come from the frontend, e.g.source()paths in user code.The original
Urlsent by the LSP frontend is stored inDocument. This is used in communications with the frontend so that we send back exact byte-for-byte Urls, preventing any file matching bugs that could be caused by our internal normalisation of file paths.Unlike the DAP which has to deal with paths normalised by R, we never resolve symlinks on the LSP side. All matching is done on
FilePathbased on pure lexical normalisation of paths.