Create DartCompletionRequest with values, currently using forResolvedUnit() constructor.

Change-Id: Ie3db8617ed882d9561f9ea49b23dd5f8d3b4cf5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219753
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov
2021-11-09 16:17:55 +00:00
committed by commit-bot@chromium.org
parent 428d3e83a2
commit 5ffec0e46e
10 changed files with 44 additions and 19 deletions
@@ -70,7 +70,7 @@ class CiderCompletionComputer {
var lineInfo = resolvedUnit.lineInfo;
var offset = lineInfo.getOffsetOfLine(line) + column;
_dartCompletionRequest = DartCompletionRequest(
_dartCompletionRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: resolvedUnit,
offset: offset,
);
@@ -329,7 +329,7 @@ class CompletionDomainHandler extends AbstractRequestHandler {
);
performanceList.add(completionPerformance);
var completionRequest = DartCompletionRequest(
var completionRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: resolvedUnit,
offset: offset,
dartdocDirectiveInfo: server.getDartdocDirectiveInfoFor(
@@ -527,7 +527,7 @@ class CompletionDomainHandler extends AbstractRequestHandler {
return;
}
var completionRequest = DartCompletionRequest(
var completionRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: resolvedUnit,
offset: offset,
dartdocDirectiveInfo: server.getDartdocDirectiveInfoFor(
@@ -69,7 +69,7 @@ class RuntimeCompletionComputer {
return RuntimeCompletionResult([], []);
}
var dartRequest = DartCompletionRequest(
var dartRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: targetResult,
offset: targetOffset,
);
@@ -215,7 +215,7 @@ class CompletionHandler
);
server.performanceStats.completion.add(completionPerformance);
final completionRequest = DartCompletionRequest(
final completionRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: unit,
offset: offset,
dartdocDirectiveInfo: server.getDartdocDirectiveInfoFor(unit),
@@ -328,17 +328,22 @@ class DartCompletionRequest {
bool _aborted = false;
factory DartCompletionRequest({
required ResolvedUnitResult resolvedUnit,
required AnalysisSession analysisSession,
required String filePath,
required String fileContent,
required CompilationUnitElement unitElement,
required AstNode enclosingNode,
required int offset,
DartdocDirectiveInfo? dartdocDirectiveInfo,
CompletionPreference completionPreference = CompletionPreference.insert,
DocumentationCache? documentationCache,
}) {
var target = CompletionTarget.forOffset(resolvedUnit.unit, offset);
var target = CompletionTarget.forOffset(enclosingNode, offset);
var libraryElement = unitElement.library;
var featureComputer = FeatureComputer(
resolvedUnit.typeSystem,
resolvedUnit.typeProvider,
libraryElement.typeSystem,
libraryElement.typeProvider,
);
var contextType = featureComputer.computeContextType(
@@ -352,23 +357,43 @@ class DartCompletionRequest {
}
return DartCompletionRequest._(
analysisSession: resolvedUnit.session as AnalysisSessionImpl,
analysisSession: analysisSession as AnalysisSessionImpl,
completionPreference: completionPreference,
content: resolvedUnit.content,
content: fileContent,
contextType: contextType,
dartdocDirectiveInfo: dartdocDirectiveInfo ?? DartdocDirectiveInfo(),
documentationCache: documentationCache,
featureComputer: featureComputer,
libraryElement: resolvedUnit.libraryElement,
libraryElement: libraryElement,
offset: offset,
opType: opType,
path: resolvedUnit.path,
path: filePath,
replacementRange: target.computeReplacementRange(offset),
source: resolvedUnit.unit.declaredElement!.source,
source: unitElement.source,
target: target,
);
}
factory DartCompletionRequest.forResolvedUnit({
required ResolvedUnitResult resolvedUnit,
required int offset,
DartdocDirectiveInfo? dartdocDirectiveInfo,
CompletionPreference completionPreference = CompletionPreference.insert,
DocumentationCache? documentationCache,
}) {
return DartCompletionRequest(
analysisSession: resolvedUnit.session,
filePath: resolvedUnit.path,
fileContent: resolvedUnit.content,
unitElement: resolvedUnit.unit.declaredElement!,
enclosingNode: resolvedUnit.unit,
offset: offset,
dartdocDirectiveInfo: dartdocDirectiveInfo,
completionPreference: completionPreference,
documentationCache: documentationCache,
);
}
DartCompletionRequest._({
required this.analysisSession,
required this.completionPreference,
@@ -531,7 +531,7 @@ abstract class _BaseDartCompletionContributorTest extends AbstractContextTest {
result = await session.getResolvedUnit(testFile) as ResolvedUnitResult;
// Build the request
var request = DartCompletionRequest(
var request = DartCompletionRequest.forResolvedUnit(
resolvedUnit: result,
offset: completionOffset,
dartdocDirectiveInfo: dartdocInfo,
@@ -52,7 +52,7 @@ part 'test.dart';
// Build the request
var resolvedUnit =
await session.getResolvedUnit(testFile) as ResolvedUnitResult;
request = DartCompletionRequest(
request = DartCompletionRequest.forResolvedUnit(
resolvedUnit: resolvedUnit,
offset: completionOffset,
);
@@ -27,7 +27,7 @@ class ContextTypeTest extends AbstractSingleUnitTest {
}
Future<CompletionSuggestion> forTopLevelFunction(String functionName) async {
var request = DartCompletionRequest(
var request = DartCompletionRequest.forResolvedUnit(
resolvedUnit: testAnalysisResult,
offset: 0,
);
@@ -99,7 +99,7 @@ class CompletionRunner {
}
timer.start();
var dartRequest = DartCompletionRequest(
var dartRequest = DartCompletionRequest.forResolvedUnit(
resolvedUnit: result,
offset: offset,
);
@@ -1368,7 +1368,7 @@ class CompletionMetricsComputer {
{required MetricsSuggestionListener listener,
required CompletionMetrics metrics}) async {
var stopwatch = Stopwatch()..start();
var request = DartCompletionRequest(
var request = DartCompletionRequest.forResolvedUnit(
resolvedUnit: resolvedUnitResult,
offset: expectedCompletion.offset,
documentationCache: documentationCache,