Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Unified Diff: pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart

Issue 1369033002: Completions with exact prefix should be prioritized - fixes #23099 (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/completion/completion_test_util.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart
diff --git a/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart
index 6fdb2b6c89237a5a129b828e743e0547e113a02b..aa495cf0d7789245b05e368533b50d9dbe45ffc1 100644
--- a/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/local_reference_contributor.dart
@@ -351,9 +351,20 @@ class _LabelVisitor extends LocalDeclarationVisitor {
class _LocalVisitor extends LocalDeclarationVisitor {
final DartCompletionRequest request;
final OpType optype;
+ int privateMemberRelevance = DART_RELEVANCE_DEFAULT;
_LocalVisitor(this.request, int offset, this.optype) : super(offset) {
includeLocalInheritedTypes = !optype.inStaticMethodBody;
+ if (request.replacementLength > 0) {
+ var contents = request.source.contents;
+ if (contents != null &&
+ contents.data != null &&
+ contents.data.startsWith('_', request.replacementOffset)) {
+ // If user typed identifier starting with '_'
+ // then do not suppress the relevance of private members
+ privateMemberRelevance = null;
+ }
+ }
}
@override
@@ -554,6 +565,10 @@ class _LocalVisitor extends LocalDeclarationVisitor {
id, isDeprecated, relevance, typeName,
classDecl: classDecl);
if (suggestion != null) {
+ if (privateMemberRelevance != null &&
+ suggestion.completion.startsWith('_')) {
+ suggestion.relevance = privateMemberRelevance;
+ }
request.addSuggestion(suggestion);
suggestion.element = createElement(request.source, elemKind, id,
isAbstract: isAbstract,
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/completion/completion_test_util.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698