diff --git a/pkg/analysis_server/lib/src/cider/completion.dart b/pkg/analysis_server/lib/src/cider/completion.dart index 214d3f2cd53..5fe1bc67675 100644 --- a/pkg/analysis_server/lib/src/cider/completion.dart +++ b/pkg/analysis_server/lib/src/cider/completion.dart @@ -32,7 +32,7 @@ class CiderCompletionComputer { final OperationPerformanceImpl _performanceRoot = OperationPerformanceImpl(''); - late DartCompletionRequestImpl _dartCompletionRequest; + late DartCompletionRequest _dartCompletionRequest; /// Paths of imported libraries for which suggestions were (re)computed /// during processing of this request. Does not include libraries that were @@ -78,7 +78,7 @@ class CiderCompletionComputer { CompletionPerformance(), ); - _dartCompletionRequest = DartCompletionRequestImpl.from( + _dartCompletionRequest = DartCompletionRequest.from( completionRequest, ); diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart index 69d0deccd38..65e211edce8 100644 --- a/pkg/analysis_server/lib/src/domain_completion.dart +++ b/pkg/analysis_server/lib/src/domain_completion.dart @@ -102,7 +102,7 @@ class CompletionDomainHandler extends AbstractRequestHandler { var contributorTag = 'computeSuggestions - ${manager.runtimeType}'; await perf.runAsync(contributorTag, (performance) async { - var dartRequest = DartCompletionRequestImpl.from( + var dartRequest = DartCompletionRequest.from( request, dartdocDirectiveInfo: server.getDartdocDirectiveInfoFor( request.result, diff --git a/pkg/analysis_server/lib/src/domains/execution/completion.dart b/pkg/analysis_server/lib/src/domains/execution/completion.dart index 346dc0095fd..7bba39f15ac 100644 --- a/pkg/analysis_server/lib/src/domains/execution/completion.dart +++ b/pkg/analysis_server/lib/src/domains/execution/completion.dart @@ -76,7 +76,7 @@ class RuntimeCompletionComputer { CompletionPerformance(), ); - var dartRequest = DartCompletionRequestImpl.from(request); + var dartRequest = DartCompletionRequest.from(request); var suggestions = await request.performance.runRequestOperation( (performance) async { diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart index 80aa6a30e1a..f6608d859d2 100644 --- a/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart +++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_completion.dart @@ -213,7 +213,7 @@ class CompletionHandler CompletionRequestImpl(unit, offset, performance); final directiveInfo = server.getDartdocDirectiveInfoFor(completionRequest.result); - final dartCompletionRequest = DartCompletionRequestImpl.from( + final dartCompletionRequest = DartCompletionRequest.from( completionRequest, dartdocDirectiveInfo: directiveInfo, completionPreference: CompletionPreference.replace, diff --git a/pkg/analysis_server/lib/src/provisional/completion/dart/completion_dart.dart b/pkg/analysis_server/lib/src/provisional/completion/dart/completion_dart.dart index 90c6495ee4c..69b06a8f5b2 100644 --- a/pkg/analysis_server/lib/src/provisional/completion/dart/completion_dart.dart +++ b/pkg/analysis_server/lib/src/provisional/completion/dart/completion_dart.dart @@ -2,17 +2,8 @@ // 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. -import 'package:analysis_server/src/provisional/completion/completion_core.dart'; -import 'package:analysis_server/src/services/completion/dart/feature_computer.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; -import 'package:analyzer/dart/analysis/features.dart'; -import 'package:analyzer/dart/ast/ast.dart'; -import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/dart/element/type.dart'; -import 'package:analyzer/src/dartdoc/dartdoc_directive_info.dart'; -import 'package:analyzer/src/generated/source.dart'; -import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart'; -import 'package:analyzer_plugin/src/utilities/completion/optype.dart'; export 'package:analyzer_plugin/utilities/completion/relevance.dart'; @@ -28,64 +19,3 @@ abstract class DartCompletionContributor { /// given completion [request] have been added to the [builder]. Future computeSuggestions(); } - -/// The information about a requested list of completions within a Dart file. -/// -/// Clients may not extend, implement or mix-in this class. -abstract class DartCompletionRequest extends CompletionRequest { - CompletionPreference get completionPreference; - - /// Return the type imposed on the target's `containingNode` based on its - /// context, or `null` if the context does not impose any type. - DartType? get contextType; - - /// Return the object used to resolve macros in Dartdoc comments. - DartdocDirectiveInfo get dartdocDirectiveInfo; - - /// Return the expression to the right of the "dot" or "dot dot", - /// or `null` if this is not a "dot" completion (e.g. `foo.b`). - Expression? get dotTarget; - - /// Return the object used to compute the values of the features used to - /// compute relevance scores for suggestions. - FeatureComputer get featureComputer; - - /// Return the feature set that was used to analyze the compilation unit in - /// which suggestions are being made. - FeatureSet get featureSet; - - /// Return `true` if free standing identifiers should be suggested - bool get includeIdentifiers; - - /// Return `true` if the completion is occurring in a constant context. - bool get inConstantContext; - - /// Return the library element which contains the unit in which the completion - /// is occurring. - LibraryElement get libraryElement; - - /// Answer the [DartType] for Object in dart:core - DartType get objectType; - - /// The [OpType] which describes which types of suggestions would fit the - /// request. - OpType get opType; - - /// The source range that represents the region of text that should be - /// replaced when a suggestion is selected. - SourceRange get replacementRange; - - /// Return the [SourceFactory] of the request. - SourceFactory get sourceFactory; - - /// Return the completion target. This determines what part of the parse tree - /// will receive the newly inserted text. - /// At a minimum, all declarations in the completion scope in [target.unit] - /// will be resolved if they can be resolved. - CompletionTarget get target; - - /// Return prefix that already exists in the document for [target] or empty - /// string if unavailable. This can be used to filter the completion list to - /// items that already match the text to the left of the caret. - String get targetPrefix; -} diff --git a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart index 44f88c6e248..05e4e8289e0 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/provisional/completion/completion_core.dart'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/utilities/flutter.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/combinator_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/combinator_contributor.dart index 138c369560d..7acb0585a9c 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/combinator_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/combinator_contributor.dart @@ -5,6 +5,7 @@ import 'package:analysis_server/src/protocol_server.dart' hide Element, ElementKind; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart index 6b3f53c3965..fc36c3cca35 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart @@ -85,7 +85,7 @@ class DartCompletionManager { includedSuggestionRelevanceTags == null)); Future> computeSuggestions( - DartCompletionRequestImpl dartRequest, + DartCompletionRequest dartRequest, OperationPerformanceImpl performance, { bool enableOverrideContributor = true, bool enableUriContributor = true, @@ -159,7 +159,7 @@ class DartCompletionManager { return builder.suggestions.toList(); } - void _addIncludedElementKinds(DartCompletionRequestImpl request) { + void _addIncludedElementKinds(DartCompletionRequest request) { var opType = request.opType; if (!opType.includeIdentifiers) return; @@ -192,7 +192,7 @@ class DartCompletionManager { } } - void _addIncludedSuggestionRelevanceTags(DartCompletionRequestImpl request) { + void _addIncludedSuggestionRelevanceTags(DartCompletionRequest request) { final includedSuggestionRelevanceTags = this.includedSuggestionRelevanceTags!; var location = request.opType.completionLocation; @@ -243,31 +243,35 @@ class DartCompletionManager { } /// The information about a requested list of completions within a Dart file. -class DartCompletionRequestImpl implements DartCompletionRequest { - @override +class DartCompletionRequest implements CompletionRequest { final CompletionPreference completionPreference; - @override + /// Return the type imposed on the target's `containingNode` based on its + /// context, or `null` if the context does not impose any type. final DartType? contextType; - @override + /// Return the object used to resolve macros in Dartdoc comments. final DartdocDirectiveInfo dartdocDirectiveInfo; final DocumentationCache? documentationCache; - @override + /// Return the expression to the right of the "dot" or "dot dot", + /// or `null` if this is not a "dot" completion (e.g. `foo.b`). final Expression? dotTarget; - @override + /// Return the object used to compute the values of the features used to + /// compute relevance scores for suggestions. final FeatureComputer featureComputer; @override final int offset; - @override + /// The [OpType] which describes which types of suggestions would fit the + /// request. final OpType opType; - @override + /// The source range that represents the region of text that should be + /// replaced when a suggestion is selected. final SourceRange replacementRange; final CompletionRequest request; @@ -278,10 +282,13 @@ class DartCompletionRequestImpl implements DartCompletionRequest { @override final Source source; - @override + /// Return the completion target. This determines what part of the parse tree + /// will receive the newly inserted text. + /// At a minimum, all declarations in the completion scope in [target.unit] + /// will be resolved if they can be resolved. final CompletionTarget target; - DartCompletionRequestImpl._({ + DartCompletionRequest._({ required this.completionPreference, required this.contextType, required this.dartdocDirectiveInfo, @@ -297,24 +304,26 @@ class DartCompletionRequestImpl implements DartCompletionRequest { required this.target, }); - @override + /// Return the feature set that was used to analyze the compilation unit in + /// which suggestions are being made. FeatureSet get featureSet => libraryElement.featureSet; - @override + /// Return `true` if free standing identifiers should be suggested bool get includeIdentifiers { return opType.includeIdentifiers; } - @override + /// Return `true` if the completion is occurring in a constant context. bool get inConstantContext { var entity = target.entity; return entity is Expression && entity.inConstantContext; } - @override + /// Return the library element which contains the unit in which the completion + /// is occurring. LibraryElement get libraryElement => result.libraryElement; - @override + /// Answer the [DartType] for Object in dart:core DartType get objectType => libraryElement.typeProvider.objectType; @override @@ -323,13 +332,15 @@ class DartCompletionRequestImpl implements DartCompletionRequest { @override String? get sourceContents => result.content; - @override + /// Return the [SourceFactory] of the request. SourceFactory get sourceFactory { var context = result.session.analysisContext as DriverBasedAnalysisContext; return context.driver.sourceFactory; } - @override + /// Return prefix that already exists in the document for [target] or empty + /// string if unavailable. This can be used to filter the completion list to + /// items that already match the text to the left of the caret. String get targetPrefix { var entity = target.entity; @@ -364,7 +375,7 @@ class DartCompletionRequestImpl implements DartCompletionRequest { /// Return a newly created completion request based on the given [request]. /// This method will throw [AbortCompletion] if the completion request has /// been aborted. - static DartCompletionRequestImpl from( + static DartCompletionRequest from( CompletionRequest request, { DartdocDirectiveInfo? dartdocDirectiveInfo, CompletionPreference completionPreference = CompletionPreference.insert, @@ -393,7 +404,7 @@ class DartCompletionRequestImpl implements DartCompletionRequest { opType.includeVoidReturnSuggestions = true; } - return DartCompletionRequestImpl._( + return DartCompletionRequest._( completionPreference: completionPreference, contextType: contextType, dartdocDirectiveInfo: dartdocDirectiveInfo ?? DartdocDirectiveInfo(), diff --git a/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart index 58e3b835247..9b6634ca32b 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/extension_member_contributor.dart @@ -5,6 +5,7 @@ import 'package:analysis_server/src/protocol_server.dart' show CompletionSuggestionKind; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/utilities/extensions/element.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart index d07395681a6..daa7ef1dd73 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/field_formal_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/imported_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/imported_reference_contributor.dart index eb2bd03fe5d..32775933df9 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/imported_reference_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/imported_reference_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/local_library_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart' show SuggestionBuilder; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart index a32f625be11..864f1f93ba5 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/keyword_contributor.dart @@ -56,10 +56,8 @@ class _KeywordVisitor extends GeneralizingAstVisitor { @override void visitArgumentList(ArgumentList node) { - if (request is DartCompletionRequestImpl) { - if (request.opType.includeOnlyNamedArgumentSuggestions) { - return; - } + if (request.opType.includeOnlyNamedArgumentSuggestions) { + return; } final entity = this.entity; if (entity == node.rightParenthesis) { diff --git a/pkg/analysis_server/lib/src/services/completion/dart/label_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/label_contributor.dart index c3d8f570edb..9933db438d2 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/label_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/label_contributor.dart @@ -4,7 +4,7 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; import 'package:analysis_server/src/services/completion/dart/completion_manager.dart' - show DartCompletionRequestImpl; + show DartCompletionRequest; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer_plugin/src/utilities/visitors/local_declaration_visitor.dart' @@ -21,7 +21,7 @@ class LabelContributor extends DartCompletionContributor { @override Future computeSuggestions() async { - var optype = (request as DartCompletionRequestImpl).opType; + var optype = request.opType; // Collect suggestions from the specific child [AstNode] that contains // the completion offset and all of its parents recursively. 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 0b49e0f0179..5654e3074f3 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 @@ -5,6 +5,7 @@ import 'package:analysis_server/src/protocol_server.dart' show CompletionSuggestionKind; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/library_prefix_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/library_prefix_contributor.dart index 5fad45d311f..09900cf95eb 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/library_prefix_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/library_prefix_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; /// A contributor that produces suggestions based on the prefixes defined on diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart index e0b113dfa87..734a36edf8f 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/local_library_contributor.dart @@ -5,6 +5,7 @@ import 'package:analysis_server/src/protocol_server.dart' show CompletionSuggestionKind; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart' show SuggestionBuilder; import 'package:analyzer/dart/element/element.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart index dd5d7336a71..ca8280cc8a7 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/local_reference_contributor.dart @@ -5,6 +5,7 @@ import 'package:analysis_server/src/protocol_server.dart' show CompletionSuggestionKind; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart index 41fa61c7f17..51853fe169c 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/named_constructor_contributor.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/protocol_server.dart' as protocol; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/utilities/extensions/completion_request.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart index 0e62f8e97f4..72174fe63d8 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/override_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/src/dart/element/inheritance_manager3.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart index 4fd743ad5ae..faea3647759 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/redirecting_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/static_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/static_member_contributor.dart index 9aa546b2cf4..ec104fa9b47 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/static_member_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/static_member_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/utilities/extensions/completion_request.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart index fd8331010b4..8783ddd417a 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/suggestion_builder.dart @@ -1177,15 +1177,12 @@ class SuggestionBuilder { /// If the [element] has a documentation comment, fill the [suggestion]'s /// documentation fields. void _setDocumentation(CompletionSuggestion suggestion, Element element) { - final request = this.request; - if (request is DartCompletionRequestImpl) { - var documentationCache = request.documentationCache; - var data = documentationCache?.dataFor(element); - if (data != null) { - suggestion.docComplete = data.full; - suggestion.docSummary = data.summary; - return; - } + var documentationCache = request.documentationCache; + var data = documentationCache?.dataFor(element); + if (data != null) { + suggestion.docComplete = data.full; + suggestion.docSummary = data.summary; + return; } var doc = DartUnitHoverComputer.computeDocumentation( request.dartdocDirectiveInfo, element, diff --git a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart index f15812ef9ed..66b7f47eaa0 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart @@ -5,6 +5,7 @@ import 'dart:collection'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/element/element.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart index cbb8337d54d..703acf8ffdd 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/visitor.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart index 4a4c7d5d07a..19d86b022b4 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/utilities.dart @@ -5,7 +5,7 @@ /// A collection of utility methods used by completion contributors. import 'package:analysis_server/src/protocol_server.dart' show CompletionSuggestion, Location; -import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analyzer/dart/ast/ast.dart'; import 'package:analyzer/dart/ast/standard_ast_factory.dart'; import 'package:analyzer/dart/ast/token.dart'; diff --git a/pkg/analysis_server/lib/src/services/completion/dart/variable_name_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/variable_name_contributor.dart index 97b2249d598..1de638f39ea 100644 --- a/pkg/analysis_server/lib/src/services/completion/dart/variable_name_contributor.dart +++ b/pkg/analysis_server/lib/src/services/completion/dart/variable_name_contributor.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/services/correction/name_suggestion.dart'; import 'package:analyzer/dart/ast/ast.dart'; diff --git a/pkg/analysis_server/lib/src/utilities/extensions/completion_request.dart b/pkg/analysis_server/lib/src/utilities/extensions/completion_request.dart index f0af6907ad9..85066d44762 100644 --- a/pkg/analysis_server/lib/src/utilities/extensions/completion_request.dart +++ b/pkg/analysis_server/lib/src/utilities/extensions/completion_request.dart @@ -2,7 +2,7 @@ // 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. -import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analyzer/dart/analysis/features.dart'; import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/dart/element/nullability_suffix.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart index 8dfaa600635..690b2516582 100644 --- a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; import 'package:analysis_server/src/services/completion/dart/arglist_contributor.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/src/dart/analysis/experiments.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart index e41e5a225d8..3099fcf405f 100644 --- a/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/combinator_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; import 'package:analysis_server/src/services/completion/dart/combinator_contributor.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart index 6bfb88532b4..607830a9459 100644 --- a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart +++ b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart @@ -8,7 +8,7 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart. import 'package:analysis_server/src/services/completion/completion_core.dart'; import 'package:analysis_server/src/services/completion/completion_performance.dart'; import 'package:analysis_server/src/services/completion/dart/completion_manager.dart' - show DartCompletionRequestImpl; + show DartCompletionRequest; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/services/completion/dart/utilities.dart'; import 'package:analyzer/dart/analysis/results.dart'; @@ -537,7 +537,7 @@ abstract class _BaseDartCompletionContributorTest extends AbstractContextTest { return await baseRequest.performance.runRequestOperation( (performance) async { // Build the request - var request = DartCompletionRequestImpl.from( + var request = DartCompletionRequest.from( baseRequest, dartdocDirectiveInfo: dartdocInfo, ); diff --git a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart index 3924da20927..a12c50b8d30 100644 --- a/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/completion_manager_test.dart @@ -57,7 +57,7 @@ part 'test.dart'; completionOffset, CompletionPerformance()); await baseRequest.performance.runRequestOperation((performance) async { - request = DartCompletionRequestImpl.from(baseRequest); + request = DartCompletionRequest.from(baseRequest); }); var directives = request.target.unit.directives; diff --git a/pkg/analysis_server/test/services/completion/dart/extension_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/extension_member_contributor_test.dart index 4e72a0e599a..d8f81bbb76d 100644 --- a/pkg/analysis_server/test/services/completion/dart/extension_member_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/extension_member_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/extension_member_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test_reflective_loader/test_reflective_loader.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart index f38df45a5b0..ff209f11f94 100644 --- a/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/field_formal_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/field_formal_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart index b1cfe1265f5..6f277c36a43 100644 --- a/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/imported_reference_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/imported_reference_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/src/dart/analysis/experiments.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart index 1d96cae1ba4..585012df952 100644 --- a/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/keyword_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/keyword_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer/dart/analysis/features.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/label_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/label_contributor_test.dart index ad09ba39b2c..2d6d5f5f109 100644 --- a/pkg/analysis_server/test/services/completion/dart/label_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/label_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/label_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/library_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/library_member_contributor_test.dart index d4a3f764c2d..5c1db887d8c 100644 --- a/pkg/analysis_server/test/services/completion/dart/library_member_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/library_member_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/library_member_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart index 96ecfce7b12..aa2e6a24df1 100644 --- a/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/library_prefix_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/library_prefix_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/local_library_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/local_library_contributor_test.dart index d5cfe06b5a7..3a6fa563beb 100644 --- a/pkg/analysis_server/test/services/completion/dart/local_library_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/local_library_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/local_library_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart index 25888ec6eaa..6e7253d1ee6 100644 --- a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart @@ -4,6 +4,7 @@ import 'package:analysis_server/src/protocol_server.dart'; import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/local_reference_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart index 87db57766a5..a671eebbca2 100644 --- a/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/named_constructor_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/named_constructor_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/override_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/override_contributor_test.dart index 3178bc4b6e5..e8eff7170c4 100644 --- a/pkg/analysis_server/test/services/completion/dart/override_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/override_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/override_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart index 919e17500f3..e4bc0d3b0bf 100644 --- a/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/static_member_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/static_member_contributor.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart index 8633ece4aba..c7f9a182897 100644 --- a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/services/completion/dart/type_member_contributor.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart index f2e442c1b17..92e87d324c7 100644 --- a/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/uri_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/services/completion/dart/uri_contributor.dart'; import 'package:analyzer/file_system/memory_file_system.dart'; diff --git a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart index 97bac2bb689..63f698fa037 100644 --- a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart +++ b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart @@ -3,6 +3,7 @@ // BSD-style license that can be found in the LICENSE file. import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart'; +import 'package:analysis_server/src/services/completion/dart/completion_manager.dart'; import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart'; import 'package:analysis_server/src/services/completion/dart/variable_name_contributor.dart'; import 'package:test/test.dart'; diff --git a/pkg/analysis_server/test/src/services/completion/dart/suggestion_builder_test.dart b/pkg/analysis_server/test/src/services/completion/dart/suggestion_builder_test.dart index 64130c8caa5..adb064b5c04 100644 --- a/pkg/analysis_server/test/src/services/completion/dart/suggestion_builder_test.dart +++ b/pkg/analysis_server/test/src/services/completion/dart/suggestion_builder_test.dart @@ -29,7 +29,7 @@ class ContextTypeTest extends AbstractSingleUnitTest { } Future forTopLevelFunction(String functionName) async { - var request = DartCompletionRequestImpl.from( + var request = DartCompletionRequest.from( CompletionRequestImpl(testAnalysisResult, 0, CompletionPerformance()), ); var builder = SuggestionBuilder(request); diff --git a/pkg/analysis_server/test/stress/completion/completion_runner.dart b/pkg/analysis_server/test/stress/completion/completion_runner.dart index 921a82f798c..8e9aec2ed99 100644 --- a/pkg/analysis_server/test/stress/completion/completion_runner.dart +++ b/pkg/analysis_server/test/stress/completion/completion_runner.dart @@ -100,7 +100,7 @@ class CompletionRunner { timer.start(); var request = CompletionRequestImpl(result, offset, statistics); - var dartRequest = DartCompletionRequestImpl.from(request); + var dartRequest = DartCompletionRequest.from(request); var suggestions = await request.performance.runRequestOperation( (performance) async { return await contributor.computeSuggestions( diff --git a/pkg/analysis_server/tool/code_completion/completion_metrics.dart b/pkg/analysis_server/tool/code_completion/completion_metrics.dart index 4746652c578..e4c411d1d76 100644 --- a/pkg/analysis_server/tool/code_completion/completion_metrics.dart +++ b/pkg/analysis_server/tool/code_completion/completion_metrics.dart @@ -1208,7 +1208,7 @@ class CompletionMetricsComputer { availableSuggestionsParams]) async { List suggestions; - var dartRequest = DartCompletionRequestImpl.from( + var dartRequest = DartCompletionRequest.from( request, dartdocDirectiveInfo: dartdocDirectiveInfo, documentationCache: documentationCache, @@ -1385,7 +1385,7 @@ class CompletionMetricsComputer { late List suggestions; await request.performance.runRequestOperation( (performance) async { - var dartRequest = DartCompletionRequestImpl.from( + var dartRequest = DartCompletionRequest.from( request, documentationCache: documentationCache, );