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

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

Issue 1068483002: rename completion source files to match content (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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
Index: pkg/analysis_server/lib/src/services/completion/keyword_computer.dart
diff --git a/pkg/analysis_server/lib/src/services/completion/keyword_computer.dart b/pkg/analysis_server/lib/src/services/completion/keyword_computer.dart
deleted file mode 100644
index 5e6de53ab2d71c24186df15e9e5c7e76aab06215..0000000000000000000000000000000000000000
--- a/pkg/analysis_server/lib/src/services/completion/keyword_computer.dart
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library services.completion.contributor.dart.keyword;
-
-import 'dart:async';
-
-import 'package:analysis_server/src/protocol.dart';
-import 'package:analysis_server/src/services/completion/dart_completion_manager.dart';
-import 'package:analyzer/src/generated/ast.dart';
-import 'package:analyzer/src/generated/scanner.dart';
-
-/**
- * A contributor for calculating `completion.getSuggestions` request results
- * for the local library in which the completion is requested.
- */
-class KeywordContributor extends DartCompletionContributor {
- @override
- bool computeFast(DartCompletionRequest request) {
- request.target.containingNode.accept(new _KeywordVisitor(request));
- return true;
- }
-
- @override
- Future<bool> computeFull(DartCompletionRequest request) {
- return new Future.value(false);
- }
-}
-
-/**
- * A vistor for generating keyword suggestions.
- */
-class _KeywordVisitor extends GeneralizingAstVisitor {
- final DartCompletionRequest request;
- final Object entity;
-
- _KeywordVisitor(DartCompletionRequest request)
- : this.request = request,
- this.entity = request.target.entity;
-
- @override
- visitBlock(Block node) {
- if (_isInClassMemberBody(node)) {
- _addSuggestions([Keyword.SUPER, Keyword.THIS,]);
- }
- _addSuggestions([
- Keyword.ASSERT,
- Keyword.CASE,
- Keyword.CONTINUE,
- Keyword.DO,
- Keyword.FINAL,
- Keyword.FOR,
- Keyword.IF,
- Keyword.NEW,
- Keyword.RETHROW,
- Keyword.RETURN,
- Keyword.SWITCH,
- Keyword.THROW,
- Keyword.TRY,
- Keyword.VAR,
- Keyword.VOID,
- Keyword.WHILE
- ]);
- }
-
- @override
- visitClassDeclaration(ClassDeclaration node) {
- // Don't suggest class name
- if (entity == node.name) {
- return;
- }
- if (entity == node.rightBracket || entity is ClassMember) {
- _addSuggestions([
- Keyword.CONST,
- Keyword.DYNAMIC,
- Keyword.FACTORY,
- Keyword.FINAL,
- Keyword.GET,
- Keyword.OPERATOR,
- Keyword.SET,
- Keyword.STATIC,
- Keyword.VAR,
- Keyword.VOID
- ]);
- return;
- }
- _addClassDeclarationKeywords(node);
- }
-
- @override
- visitCompilationUnit(CompilationUnit node) {
- var previousMember = null;
- for (var member in node.childEntities) {
- if (entity == member) {
- break;
- }
- previousMember = member;
- }
- if (previousMember is ClassDeclaration) {
- if (previousMember.leftBracket == null ||
- previousMember.leftBracket.isSynthetic) {
- // If the prior member is an unfinished class declaration
- // then the user is probably finishing that
- _addClassDeclarationKeywords(previousMember);
- return;
- }
- }
- if (previousMember == null || previousMember is Directive) {
- if (previousMember == null &&
- !node.directives.any((d) => d is LibraryDirective)) {
- _addSuggestions([Keyword.LIBRARY], DART_RELEVANCE_HIGH);
- }
- _addSuggestions(
- [Keyword.EXPORT, Keyword.IMPORT, Keyword.PART], DART_RELEVANCE_HIGH);
- }
- if (entity == null || entity is Declaration) {
- _addSuggestions([
- Keyword.ABSTRACT,
- Keyword.CLASS,
- Keyword.CONST,
- Keyword.DYNAMIC,
- Keyword.FINAL,
- Keyword.TYPEDEF,
- Keyword.VAR,
- Keyword.VOID
- ], DART_RELEVANCE_HIGH);
- }
- }
-
- void _addClassDeclarationKeywords(ClassDeclaration node) {
- // Very simplistic suggestion because analyzer will warn if
- // the extends / with / implements keywords are out of order
- if (node.extendsClause == null) {
- _addSuggestion(Keyword.EXTENDS, DART_RELEVANCE_HIGH);
- } else if (node.withClause == null) {
- _addSuggestion(Keyword.WITH, DART_RELEVANCE_HIGH);
- }
- if (node.implementsClause == null) {
- _addSuggestion(Keyword.IMPLEMENTS, DART_RELEVANCE_HIGH);
- }
- }
-
- void _addSuggestion(Keyword keyword,
- [int relevance = DART_RELEVANCE_DEFAULT]) {
- String completion = keyword.syntax;
- request.addSuggestion(new CompletionSuggestion(
- CompletionSuggestionKind.KEYWORD, relevance, completion,
- completion.length, 0, false, false));
- }
-
- void _addSuggestions(List<Keyword> keywords,
- [int relevance = DART_RELEVANCE_KEYWORD]) {
- keywords.forEach((Keyword keyword) {
- _addSuggestion(keyword, relevance);
- });
- }
-
- bool _isInClassMemberBody(AstNode node) {
- while (true) {
- AstNode body = node.getAncestor((n) => n is FunctionBody);
- if (body == null) {
- return false;
- }
- AstNode parent = body.parent;
- if (parent is ConstructorDeclaration || parent is MethodDeclaration) {
- return true;
- }
- node = parent;
- }
- }
-}

Powered by Google App Engine
This is Rietveld 408576698