Skip to content

Commit d19a590

Browse files
lambdabaacommit-bot@chromium.org
authored andcommitted
Extract the lexeme from included suggestion tags when correlating with model results
Make sure that we're comparing model lexeme to analyzer lexeme since https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart#L226. Change-Id: I01d93623fb09ecc169be92674b58a91ef0bf56ff Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112263 Commit-Queue: Ari Aye <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent 31bb4df commit d19a590

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

pkg/analysis_server/lib/src/services/completion/dart/completion_ranking.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ class CompletionRanking {
138138
List<IncludedSuggestionRelevanceTag> includedSuggestions;
139139
if (includedSuggestionRelevanceTags != null) {
140140
includedSuggestions = includedSuggestionRelevanceTags
141-
.where((tag) => areCompletionsEquivalent(tag.tag, entry.key))
141+
.where((tag) => areCompletionsEquivalent(
142+
elementNameFromRelevanceTag(tag.tag), entry.key))
142143
.toList();
143144
} else {
144145
includedSuggestions = [];

pkg/analysis_server/lib/src/services/completion/dart/completion_ranking_internal.dart

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,14 @@ List<String> constructQuery(DartCompletionRequest request, int n) {
168168

169169
return result.reversed.toList(growable: false);
170170
}
171+
172+
/// Maps included relevance tags formatted as
173+
/// '${element.librarySource.uri}::${element.name}' to element.name.
174+
String elementNameFromRelevanceTag(String tag) {
175+
final index = tag.lastIndexOf('::');
176+
if (index == -1) {
177+
return null;
178+
}
179+
180+
return tag.substring(index + 2);
181+
}

pkg/analysis_server/test/services/completion/dart/completion_ranking_internal_test.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,4 +193,10 @@ void main() {
193193
when(target.entity).thenReturn(two);
194194
expect(constructQuery(request, 100), equals(['class', 'Animal']));
195195
});
196+
197+
test('elementNameFromRelevanceTag', () {
198+
final tag =
199+
'package::flutter/src/widgets/preferred_size.dart::::PreferredSizeWidget';
200+
expect(elementNameFromRelevanceTag(tag), equals('PreferredSizeWidget'));
201+
});
196202
}

0 commit comments

Comments
 (0)