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

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

Issue 1537713002: remove unused suggestion builder (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: rebase Created 5 years 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 | « pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
diff --git a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
deleted file mode 100644
index 301b22013306222be1affc65c42eebd606cc5398..0000000000000000000000000000000000000000
--- a/pkg/analysis_server/lib/src/services/completion/suggestion_builder.dart
+++ /dev/null
@@ -1,189 +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.suggestion.builder;
-
-import 'dart:async';
-
-import 'package:analysis_server/src/protocol_server.dart'
- hide Element, ElementKind;
-import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'
- show createSuggestion;
-import 'package:analysis_server/src/services/completion/dart_completion_manager.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/src/generated/ast.dart';
-
-export 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'
- show createSuggestion;
-
-const String DYNAMIC = 'dynamic';
-
-/**
- * Call the given function with each non-null non-empty inherited type name
- * that is defined in the given class.
- */
-visitInheritedTypeNames(ClassDeclaration node, void inherited(String name)) {
- void visit(TypeName type) {
- if (type != null) {
- Identifier id = type.name;
- if (id != null) {
- String name = id.name;
- if (name != null && name.length > 0) {
- inherited(name);
- }
- }
- }
- }
-
- ExtendsClause extendsClause = node.extendsClause;
- if (extendsClause != null) {
- visit(extendsClause.superclass);
- }
- ImplementsClause implementsClause = node.implementsClause;
- if (implementsClause != null) {
- NodeList<TypeName> interfaces = implementsClause.interfaces;
- if (interfaces != null) {
- interfaces.forEach((TypeName type) {
- visit(type);
- });
- }
- }
- WithClause withClause = node.withClause;
- if (withClause != null) {
- NodeList<TypeName> mixinTypes = withClause.mixinTypes;
- if (mixinTypes != null) {
- mixinTypes.forEach((TypeName type) {
- visit(type);
- });
- }
- }
-}
-
-/**
- * Starting with the given class node, traverse the inheritance hierarchy
- * calling the given functions with each non-null non-empty inherited class
- * declaration. For each locally defined declaration, call [localDeclaration].
- * For each class identifier in the hierarchy that is not defined locally,
- * call the [importedTypeName] function.
- */
-void visitInheritedTypes(ClassDeclaration node,
- {void localDeclaration(ClassDeclaration classNode),
- void importedTypeName(String typeName)}) {
- CompilationUnit unit = node.getAncestor((p) => p is CompilationUnit);
- List<ClassDeclaration> todo = new List<ClassDeclaration>();
- todo.add(node);
- Set<String> visited = new Set<String>();
- while (todo.length > 0) {
- node = todo.removeLast();
- visitInheritedTypeNames(node, (String name) {
- if (visited.add(name)) {
- var classNode = unit.declarations.firstWhere((member) {
- if (member is ClassDeclaration) {
- SimpleIdentifier id = member.name;
- if (id != null && id.name == name) {
- return true;
- }
- }
- return false;
- }, orElse: () => null);
- if (classNode is ClassDeclaration) {
- if (localDeclaration != null) {
- localDeclaration(classNode);
- }
- todo.add(classNode);
- } else {
- if (importedTypeName != null) {
- importedTypeName(name);
- }
- }
- }
- });
- }
-}
-
-/**
- * Common mixin for sharing behavior
- */
-abstract class ElementSuggestionBuilder {
- /**
- * Return the kind of suggestions that should be built.
- */
- CompletionSuggestionKind get kind;
-
- /**
- * Return the request on which the builder is operating.
- */
- DartCompletionRequest get request;
-
- /**
- * Add a suggestion based upon the given element.
- */
- void addSuggestion(Element element,
- {String prefix, int relevance: DART_RELEVANCE_DEFAULT}) {
- if (element.isPrivate) {
- LibraryElement elementLibrary = element.library;
- CompilationUnitElement unitElem = request.unit.element;
- if (unitElem == null) {
- return;
- }
- LibraryElement unitLibrary = unitElem.library;
- if (elementLibrary != unitLibrary) {
- return;
- }
- }
- if (prefix == null && element.isSynthetic) {
- if ((element is PropertyAccessorElement) ||
- element is FieldElement && !_isSpecialEnumField(element)) {
- return;
- }
- }
- String completion = element.displayName;
- if (prefix != null && prefix.length > 0) {
- if (completion == null || completion.length <= 0) {
- completion = prefix;
- } else {
- completion = '$prefix.$completion';
- }
- }
- if (completion == null || completion.length <= 0) {
- return;
- }
- CompletionSuggestion suggestion = createSuggestion(element,
- completion: completion, kind: kind, relevance: relevance);
- if (suggestion != null) {
- request.addSuggestion(suggestion);
- }
- }
-
- /**
- * Determine if the given element is one of the synthetic enum accessors
- * for which we should generate a suggestion.
- */
- bool _isSpecialEnumField(FieldElement element) {
- Element parent = element.enclosingElement;
- if (parent is ClassElement && parent.isEnum) {
- if (element.name == 'values') {
- return true;
- }
- }
- return false;
- }
-}
-
-/**
- * Common interface implemented by suggestion builders.
- */
-abstract class SuggestionBuilder {
- /**
- * Compute suggestions and return `true` if building is complete,
- * or `false` if [computeFull] should be called.
- */
- bool computeFast(AstNode node);
-
- /**
- * Return a future that computes the suggestions given a fully resolved AST.
- * The future returns `true` if suggestions were added, else `false`.
- */
- Future<bool> computeFull(AstNode node);
-}
« no previous file with comments | « pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698