mirror of
https://github.com/dart-lang/sdk
synced 2024-10-03 23:16:55 +00:00
Don't give Source and ResourceProvider to CompletionRequestImpl.
It knows them already. R=brianwilkerson@google.com Change-Id: I48de58d7de140b210b17a11d7cc085c43461803c Reviewed-on: https://dart-review.googlesource.com/55905 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
04816270fa
commit
97b6c2e09d
|
@ -16,7 +16,6 @@ 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/completion_performance.dart';
|
||||||
import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
|
import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
|
||||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||||
import 'package:analyzer/src/generated/source.dart';
|
|
||||||
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
|
||||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||||
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
import 'package:analyzer_plugin/protocol/protocol_constants.dart' as plugin;
|
||||||
|
@ -176,7 +175,6 @@ class CompletionDomainHandler extends AbstractRequestHandler {
|
||||||
int offset = params.offset;
|
int offset = params.offset;
|
||||||
|
|
||||||
AnalysisResult result = await server.getAnalysisResult(filePath);
|
AnalysisResult result = await server.getAnalysisResult(filePath);
|
||||||
Source source;
|
|
||||||
|
|
||||||
if (result == null || !result.exists) {
|
if (result == null || !result.exists) {
|
||||||
if (server.onNoAnalysisCompletion != null) {
|
if (server.onNoAnalysisCompletion != null) {
|
||||||
|
@ -185,7 +183,6 @@ class CompletionDomainHandler extends AbstractRequestHandler {
|
||||||
request, this, params, performance, completionId);
|
request, this, params, performance, completionId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
source = server.resourceProvider.getFile(filePath).createSource();
|
|
||||||
} else {
|
} else {
|
||||||
if (offset < 0 || offset > result.content.length) {
|
if (offset < 0 || offset > result.content.length) {
|
||||||
server.sendResponse(new Response.invalidParameter(
|
server.sendResponse(new Response.invalidParameter(
|
||||||
|
@ -195,13 +192,11 @@ class CompletionDomainHandler extends AbstractRequestHandler {
|
||||||
' but found $offset'));
|
' but found $offset'));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
source =
|
|
||||||
server.resourceProvider.getFile(result.path).createSource(result.uri);
|
|
||||||
|
|
||||||
recordRequest(performance, source, result.content, offset);
|
recordRequest(performance, filePath, result.content, offset);
|
||||||
}
|
}
|
||||||
CompletionRequestImpl completionRequest = new CompletionRequestImpl(
|
CompletionRequestImpl completionRequest =
|
||||||
result, server.resourceProvider, source, offset, performance);
|
new CompletionRequestImpl(result, offset, performance);
|
||||||
|
|
||||||
String completionId = (_nextCompletionId++).toString();
|
String completionId = (_nextCompletionId++).toString();
|
||||||
|
|
||||||
|
@ -233,10 +228,10 @@ class CompletionDomainHandler extends AbstractRequestHandler {
|
||||||
* If tracking code completion performance over time, then
|
* If tracking code completion performance over time, then
|
||||||
* record addition information about the request in the performance record.
|
* record addition information about the request in the performance record.
|
||||||
*/
|
*/
|
||||||
void recordRequest(CompletionPerformance performance, Source source,
|
void recordRequest(CompletionPerformance performance, String path,
|
||||||
String content, int offset) {
|
String content, int offset) {
|
||||||
performance.source = source;
|
performance.path = path;
|
||||||
if (performanceListMaxLength == 0 || source == null) {
|
if (performanceListMaxLength == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
performance.setContentsAndOffset(content, offset);
|
performance.setContentsAndOffset(content, offset);
|
||||||
|
|
|
@ -108,11 +108,8 @@ library _runtimeCompletion;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompletionContributor contributor = new DartCompletionManager();
|
CompletionContributor contributor = new DartCompletionManager();
|
||||||
// TODO(scheglov) Stop requiring Source, it has it in AnalysisResult.
|
|
||||||
CompletionRequestImpl request = new CompletionRequestImpl(
|
CompletionRequestImpl request = new CompletionRequestImpl(
|
||||||
targetResult,
|
targetResult,
|
||||||
resourceProvider,
|
|
||||||
targetResult.unit.element.source,
|
|
||||||
targetOffset,
|
targetOffset,
|
||||||
new CompletionPerformance(),
|
new CompletionPerformance(),
|
||||||
);
|
);
|
||||||
|
|
|
@ -15,9 +15,6 @@ class CompletionRequestImpl implements CompletionRequest {
|
||||||
@override
|
@override
|
||||||
final AnalysisResult result;
|
final AnalysisResult result;
|
||||||
|
|
||||||
@override
|
|
||||||
final Source source;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
final int offset;
|
final int offset;
|
||||||
|
|
||||||
|
@ -39,9 +36,6 @@ class CompletionRequestImpl implements CompletionRequest {
|
||||||
*/
|
*/
|
||||||
int replacementLength;
|
int replacementLength;
|
||||||
|
|
||||||
@override
|
|
||||||
final ResourceProvider resourceProvider;
|
|
||||||
|
|
||||||
bool _aborted = false;
|
bool _aborted = false;
|
||||||
|
|
||||||
final CompletionPerformance performance;
|
final CompletionPerformance performance;
|
||||||
|
@ -49,13 +43,17 @@ class CompletionRequestImpl implements CompletionRequest {
|
||||||
/**
|
/**
|
||||||
* Initialize a newly created completion request based on the given arguments.
|
* Initialize a newly created completion request based on the given arguments.
|
||||||
*/
|
*/
|
||||||
CompletionRequestImpl(this.result, this.resourceProvider, Source source,
|
CompletionRequestImpl(this.result, int offset, this.performance)
|
||||||
int offset, this.performance)
|
: this.offset = offset,
|
||||||
: this.source = source,
|
|
||||||
this.offset = offset,
|
|
||||||
replacementOffset = offset,
|
replacementOffset = offset,
|
||||||
replacementLength = 0;
|
replacementLength = 0;
|
||||||
|
|
||||||
|
@override
|
||||||
|
ResourceProvider get resourceProvider => result.session.resourceProvider;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Source get source => result.unit.element.source;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get sourceContents => result?.content;
|
String get sourceContents => result?.content;
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
// for details. All rights reserved. Use of this source code is governed by a
|
// 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.
|
// BSD-style license that can be found in the LICENSE file.
|
||||||
|
|
||||||
import 'package:analyzer/src/generated/source.dart';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overall performance of a code completion operation.
|
* Overall performance of a code completion operation.
|
||||||
*/
|
*/
|
||||||
|
@ -13,7 +11,7 @@ class CompletionPerformance {
|
||||||
final Stopwatch _stopwatch = new Stopwatch();
|
final Stopwatch _stopwatch = new Stopwatch();
|
||||||
final List<OperationPerformance> operations = <OperationPerformance>[];
|
final List<OperationPerformance> operations = <OperationPerformance>[];
|
||||||
|
|
||||||
Source source;
|
String path;
|
||||||
String snippet = '';
|
String snippet = '';
|
||||||
int notificationCount = -1;
|
int notificationCount = -1;
|
||||||
int suggestionCountFirst = -1;
|
int suggestionCountFirst = -1;
|
||||||
|
|
|
@ -350,12 +350,14 @@ class CompletionPage extends DiagnosticPageWithNav {
|
||||||
buf.writeln('<table>');
|
buf.writeln('<table>');
|
||||||
buf.writeln(
|
buf.writeln(
|
||||||
'<tr><th>Time</th><th>Results</th><th>Source</th><th>Snippet</th></tr>');
|
'<tr><th>Time</th><th>Results</th><th>Source</th><th>Snippet</th></tr>');
|
||||||
|
var pathContext = completionDomain.server.resourceProvider.pathContext;
|
||||||
for (CompletionPerformance completion in completions) {
|
for (CompletionPerformance completion in completions) {
|
||||||
|
String shortName = pathContext.basename(completion.path);
|
||||||
buf.writeln('<tr>'
|
buf.writeln('<tr>'
|
||||||
'<td class="pre right">${printMilliseconds(
|
'<td class="pre right">${printMilliseconds(
|
||||||
completion.elapsedInMilliseconds)}</td>'
|
completion.elapsedInMilliseconds)}</td>'
|
||||||
'<td class="right">${completion.suggestionCount}</td>'
|
'<td class="right">${completion.suggestionCount}</td>'
|
||||||
'<td>${escape(completion.source.shortName)}</td>'
|
'<td>${escape(shortName)}</td>'
|
||||||
'<td><code>${escape(completion.snippet)}</code></td>'
|
'<td><code>${escape(completion.snippet)}</code></td>'
|
||||||
'</tr>');
|
'</tr>');
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ import 'package:analysis_server/src/services/completion/dart/completion_manager.
|
||||||
show DartCompletionRequestImpl;
|
show DartCompletionRequestImpl;
|
||||||
import 'package:analyzer/src/dart/analysis/driver.dart';
|
import 'package:analyzer/src/dart/analysis/driver.dart';
|
||||||
import 'package:analyzer/src/generated/parser.dart' as analyzer;
|
import 'package:analyzer/src/generated/parser.dart' as analyzer;
|
||||||
import 'package:analyzer/src/generated/source.dart';
|
|
||||||
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
import 'package:analyzer_plugin/protocol/protocol_common.dart';
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
|
@ -26,7 +25,6 @@ int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) {
|
||||||
abstract class DartCompletionContributorTest extends AbstractContextTest {
|
abstract class DartCompletionContributorTest extends AbstractContextTest {
|
||||||
static const String _UNCHECKED = '__UNCHECKED__';
|
static const String _UNCHECKED = '__UNCHECKED__';
|
||||||
String testFile;
|
String testFile;
|
||||||
Source testSource;
|
|
||||||
int completionOffset;
|
int completionOffset;
|
||||||
int replacementOffset;
|
int replacementOffset;
|
||||||
int replacementLength;
|
int replacementLength;
|
||||||
|
@ -59,7 +57,7 @@ abstract class DartCompletionContributorTest extends AbstractContextTest {
|
||||||
expect(nextOffset, equals(-1), reason: 'too many ^');
|
expect(nextOffset, equals(-1), reason: 'too many ^');
|
||||||
content = content.substring(0, completionOffset) +
|
content = content.substring(0, completionOffset) +
|
||||||
content.substring(completionOffset + 1);
|
content.substring(completionOffset + 1);
|
||||||
testSource = addSource(testFile, content);
|
addSource(testFile, content);
|
||||||
}
|
}
|
||||||
|
|
||||||
void assertHasNoParameterInfo(CompletionSuggestion suggestion) {
|
void assertHasNoParameterInfo(CompletionSuggestion suggestion) {
|
||||||
|
@ -473,13 +471,8 @@ abstract class DartCompletionContributorTest extends AbstractContextTest {
|
||||||
Future computeSuggestions({int times = 200}) async {
|
Future computeSuggestions({int times = 200}) async {
|
||||||
AnalysisResult analysisResult =
|
AnalysisResult analysisResult =
|
||||||
await driver.getResult(convertPath(testFile));
|
await driver.getResult(convertPath(testFile));
|
||||||
testSource = analysisResult.unit.element.source;
|
|
||||||
CompletionRequestImpl baseRequest = new CompletionRequestImpl(
|
CompletionRequestImpl baseRequest = new CompletionRequestImpl(
|
||||||
analysisResult,
|
analysisResult, completionOffset, new CompletionPerformance());
|
||||||
resourceProvider,
|
|
||||||
testSource,
|
|
||||||
completionOffset,
|
|
||||||
new CompletionPerformance());
|
|
||||||
|
|
||||||
// Build the request
|
// Build the request
|
||||||
Completer<DartCompletionRequest> requestCompleter =
|
Completer<DartCompletionRequest> requestCompleter =
|
||||||
|
|
|
@ -48,8 +48,6 @@ part '${convertPathForImport(testFile)}';
|
||||||
// Build the request
|
// Build the request
|
||||||
CompletionRequestImpl baseRequest = new CompletionRequestImpl(
|
CompletionRequestImpl baseRequest = new CompletionRequestImpl(
|
||||||
await driver.getResult(testFile),
|
await driver.getResult(testFile),
|
||||||
resourceProvider,
|
|
||||||
testSource,
|
|
||||||
completionOffset,
|
completionOffset,
|
||||||
new CompletionPerformance());
|
new CompletionPerformance());
|
||||||
Completer<DartCompletionRequest> requestCompleter =
|
Completer<DartCompletionRequest> requestCompleter =
|
||||||
|
|
Loading…
Reference in a new issue