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

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

Issue 1067143002: suggest deferred/as keywords (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 5 years, 8 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/keyword_contributor_test.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/keyword_contributor.dart
diff --git a/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart b/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
index 5e6de53ab2d71c24186df15e9e5c7e76aab06215..adc4b603084c9a4a3f9d5b6a63ec90170fbd3576 100644
--- a/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/keyword_contributor.dart
@@ -106,6 +106,14 @@ class _KeywordVisitor extends GeneralizingAstVisitor {
return;
}
}
+ if (previousMember is ImportDirective) {
+ if (previousMember.semicolon == null || previousMember.semicolon.isSynthetic) {
+ // If the prior member is an unfinished import directive
+ // then the user is probably finishing that
+ _addImportDirectiveKeywords(previousMember);
+ return;
+ }
+ }
if (previousMember == null || previousMember is Directive) {
if (previousMember == null &&
!node.directives.any((d) => d is LibraryDirective)) {
@@ -128,6 +136,27 @@ class _KeywordVisitor extends GeneralizingAstVisitor {
}
}
+ @override
+ visitImportDirective(ImportDirective node) {
+ if (entity == node.asKeyword) {
+ if (node.deferredKeyword == null) {
+ _addSuggestion(Keyword.DEFERRED, DART_RELEVANCE_HIGH);
+ }
+ }
+ if (entity == node.semicolon) {
+ _addImportDirectiveKeywords(node);
+ }
+ }
+
+ void _addImportDirectiveKeywords(ImportDirective node) {
+ if (node.asKeyword == null) {
+ _addSuggestion(Keyword.AS, DART_RELEVANCE_HIGH);
+ if (node.deferredKeyword == null) {
+ _addSuggestion(Keyword.DEFERRED, DART_RELEVANCE_HIGH);
+ }
+ }
+ }
+
void _addClassDeclarationKeywords(ClassDeclaration node) {
// Very simplistic suggestion because analyzer will warn if
// the extends / with / implements keywords are out of order
« no previous file with comments | « no previous file | pkg/analysis_server/test/services/completion/keyword_contributor_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698