| Index: pkg/analysis_server/lib/src/services/completion/dart/library_member_contributor.dart
|
| diff --git a/pkg/analysis_server/lib/src/services/completion/dart/library_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/library_member_contributor.dart
|
| index 24f9a751d5fd6ae4ea29abeaf0ca14fe52d36da1..2d12d7053a811e8e6a35585dbe5577df17cc11f6 100644
|
| --- a/pkg/analysis_server/lib/src/services/completion/dart/library_member_contributor.dart
|
| +++ b/pkg/analysis_server/lib/src/services/completion/dart/library_member_contributor.dart
|
| @@ -62,8 +62,14 @@ class LibraryMemberContributor extends DartCompletionContributor {
|
| bool isConstructor = parent.parent is ConstructorName;
|
| bool typesOnly = parent is TypeName;
|
| bool instCreation = typesOnly && isConstructor;
|
| - library.visitChildren(new _SuggestionBuilder(
|
| - suggestions, typesOnly, instCreation));
|
| + LibraryElementSuggestionBuilder builder =
|
| + new LibraryElementSuggestionBuilder(
|
| + containingLibrary,
|
| + CompletionSuggestionKind.INVOCATION,
|
| + typesOnly,
|
| + instCreation);
|
| + library.visitChildren(builder);
|
| + suggestions.addAll(builder.suggestions);
|
|
|
| // If the import is 'deferred' then suggest 'loadLibrary'
|
| if (directive.deferredKeyword != null) {
|
| @@ -105,97 +111,3 @@ class LibraryMemberContributor extends DartCompletionContributor {
|
| return null;
|
| }
|
| }
|
| -
|
| -/**
|
| - * This class visits elements in a library and provides suggestions based upon
|
| - * the visible members in that library.
|
| - */
|
| -class _SuggestionBuilder extends GeneralizingElementVisitor {
|
| - final List<CompletionSuggestion> suggestions;
|
| - final bool typesOnly;
|
| - final bool instCreation;
|
| -
|
| - _SuggestionBuilder(this.suggestions, this.typesOnly, this.instCreation);
|
| -
|
| - @override
|
| - visitClassElement(ClassElement element) {
|
| - if (instCreation) {
|
| - element.visitChildren(this);
|
| - } else {
|
| - _addSuggestion(element);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - visitCompilationUnitElement(CompilationUnitElement element) {
|
| - element.visitChildren(this);
|
| - LibraryElement containingLibrary = element.library;
|
| - if (containingLibrary != null) {
|
| - for (var lib in containingLibrary.exportedLibraries) {
|
| - lib.visitChildren(this);
|
| - }
|
| - }
|
| - }
|
| -
|
| - @override
|
| - visitConstructorElement(ConstructorElement element) {
|
| - if (instCreation) {
|
| - ClassElement classElem = element.enclosingElement;
|
| - if (classElem != null) {
|
| - String prefix = classElem.name;
|
| - if (prefix != null && prefix.length > 0) {
|
| - _addSuggestion(element, prefix: prefix);
|
| - }
|
| - }
|
| - }
|
| - }
|
| -
|
| - @override
|
| - visitElement(Element element) {
|
| - // ignored
|
| - }
|
| -
|
| - @override
|
| - visitFunctionElement(FunctionElement element) {
|
| - if (!typesOnly) {
|
| - _addSuggestion(element);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - visitFunctionTypeAliasElement(FunctionTypeAliasElement element) {
|
| - if (!instCreation) {
|
| - _addSuggestion(element);
|
| - }
|
| - }
|
| -
|
| - @override
|
| - visitTopLevelVariableElement(TopLevelVariableElement element) {
|
| - if (!typesOnly) {
|
| - _addSuggestion(element);
|
| - }
|
| - }
|
| -
|
| - void _addSuggestion(Element element, {String prefix}) {
|
| - if (element.isPrivate) {
|
| - 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) {
|
| - CompletionSuggestion suggestion = createSuggestion(element,
|
| - completion: completion,
|
| - kind: CompletionSuggestionKind.INVOCATION,
|
| - relevance: DART_RELEVANCE_DEFAULT);
|
| - if (suggestion != null) {
|
| - suggestions.add(suggestion);
|
| - }
|
| - }
|
| - }
|
| -}
|
|
|