Use fallback settings when indexing the project#12362
Merged
dhruvmanila merged 2 commits intomainfrom Jul 18, 2024
Merged
Conversation
Contributor
|
| ); | ||
| return WalkState::Continue; | ||
| } | ||
| .map(|(_, settings)| settings.clone()) |
Member
There was a problem hiding this comment.
Are these clones necessary?
Member
There was a problem hiding this comment.
I think these are all Arc<RuffSettings> so this should be cheap.
Member
Author
There was a problem hiding this comment.
Yes, these are all Arcs
Member
Author
There was a problem hiding this comment.
It otherwise throws "rustc: temporary value dropped while borrowed" if I use a reference
let settings = index
.read()
.unwrap()
.range(..directory.clone())
.rfind(|(path, _)| directory.starts_with(path))
.map(|(_, settings)| settings)
.unwrap_or(&fallback);
MichaReiser
reviewed
Jul 17, 2024
| ); | ||
| return WalkState::Continue; | ||
| } | ||
| .map(|(_, settings)| settings.clone()) |
Member
There was a problem hiding this comment.
I think these are all Arc<RuffSettings> so this should be cheap.
MichaReiser
approved these changes
Jul 17, 2024
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.
Summary
This PR updates the settings index building logic in the language server to consider the fallback settings for applying ignore filters in
WalkBuilderand the exclusion viaexclude/extend-exclude.This flow matches the one in the
ruffCLI where the root settings is built by (1) finding the workspace setting in the ancestor directory (2) finding the user configuration if that's missing and (3) fallback to using the default configuration.Previously, the index building logic was being executed before (2) and (3). This PR reverses the logic so that the exclusion /
respect_gitignoreis being considered from the default settings if there's no workspace / user settings. This has the benefit that the server no longer enters the.gitdirectory or any other excluded directory when a user opens a file in the home directory.Related to #11366
Test plan
Opened a test file from the home directory and confirmed with the debug trace (removed in #12360) that the server excludes the
.gitdirectory when indexing.