Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9abde3c

Browse files
committed
Improve search for connected URIs
1 parent 6dea0b5 commit 9abde3c

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

‎server/src/analyser.ts‎

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -864,23 +864,41 @@ export default class Analyzer {
864864
this.includeAllWorkspaceSymbols = includeAllWorkspaceSymbols
865865
}
866866

867-
// TODO: Handle cases where sourcing files gets sourced.
868-
public findAllSourcingUris(uri: string): string[] {
867+
/**
868+
* If `includeAllWorkspaceSymbols` is true, this returns all URIs from the
869+
* background analysis. Else, it returns the URIs of the files that are
870+
* connected to `uri` via sourcing.
871+
*/
872+
public findAllConnectedUris(uri: string): string[] {
869873
if (this.includeAllWorkspaceSymbols) {
870874
return Object.keys(this.uriToAnalyzedDocument)
871875
}
872876

873-
const uris = []
874-
for (const [u, ad] of Object.entries(this.uriToAnalyzedDocument)) {
875-
if (ad?.sourcedUris) {
876-
for (const v of ad.sourcedUris.values()) {
877-
if (v === uri) {
878-
uris.push(u)
877+
const uriToAnalyzedDocument = Object.entries(this.uriToAnalyzedDocument)
878+
const uris: string[] = []
879+
let continueSearching = true
880+
881+
while (continueSearching) {
882+
continueSearching = false
883+
884+
for (const [analyzedUri, analyzedDocument] of uriToAnalyzedDocument) {
885+
if (!analyzedDocument) {
886+
continue
887+
}
888+
889+
for (const sourcedUri of analyzedDocument.sourcedUris.values()) {
890+
if (
891+
(sourcedUri === uri || uris.includes(sourcedUri)) &&
892+
!uris.includes(analyzedUri)
893+
) {
894+
uris.push(analyzedUri)
895+
continueSearching = true
879896
break
880897
}
881898
}
882899
}
883900
}
901+
884902
return uris
885903
}
886904

‎server/src/server.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ export default class BashServer {
815815
newText: params.newName,
816816
}))
817817

818-
for (const uri of this.analyzer.findAllSourcingUris(declaration.uri)) {
818+
for (const uri of this.analyzer.findAllConnectedUris(declaration.uri)) {
819819
edits.changes[uri] = this.analyzer
820820
.findOccurrencesWithin({
821821
uri,

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /