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

Unified Diff: pkg/analysis_server/lib/src/domain_completion.dart

Issue 2910463002: Allow plugins to provide completions for non-dart files (Closed)
Patch Set: Created 3 years, 7 months 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 | « no previous file | pkg/analysis_server/lib/src/services/completion/completion_core.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/domain_completion.dart
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index e015a40acacf0af45655680c0fbabda42a7974a8..a00617f22f630dbfa41cec09a5e82fe4a60abbf3 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -87,26 +87,28 @@ class CompletionDomainHandler extends AbstractRequestHandler {
//
// Compute completions generated by server.
//
- Iterable<CompletionContributor> newContributors =
- server.serverPlugin.completionContributors;
List<CompletionSuggestion> suggestions = <CompletionSuggestion>[];
-
- const COMPUTE_SUGGESTIONS_TAG = 'computeSuggestions';
- performance.logStartTime(COMPUTE_SUGGESTIONS_TAG);
-
- for (CompletionContributor contributor in newContributors) {
- String contributorTag = 'computeSuggestions - ${contributor.runtimeType}';
- performance.logStartTime(contributorTag);
- try {
- suggestions.addAll(await contributor.computeSuggestions(request));
- } on AbortCompletion {
- suggestions.clear();
- break;
+ if (request.result != null) {
+ Iterable<CompletionContributor> newContributors =
+ server.serverPlugin.completionContributors;
+
+ const COMPUTE_SUGGESTIONS_TAG = 'computeSuggestions';
+ performance.logStartTime(COMPUTE_SUGGESTIONS_TAG);
+
+ for (CompletionContributor contributor in newContributors) {
+ String contributorTag = 'computeSuggestions - ${contributor
+ .runtimeType}';
+ performance.logStartTime(contributorTag);
+ try {
+ suggestions.addAll(await contributor.computeSuggestions(request));
+ } on AbortCompletion {
+ suggestions.clear();
+ break;
+ }
+ performance.logElapseTime(contributorTag);
}
- performance.logElapseTime(contributorTag);
+ performance.logElapseTime(COMPUTE_SUGGESTIONS_TAG);
}
- performance.logElapseTime(COMPUTE_SUGGESTIONS_TAG);
-
// TODO (danrubel) if request is obsolete (processAnalysisRequest returns
// false) then send empty results
@@ -161,8 +163,11 @@ class CompletionDomainHandler extends AbstractRequestHandler {
// extract and validate params
CompletionGetSuggestionsParams params =
new CompletionGetSuggestionsParams.fromRequest(request);
+ String filePath = params.file;
+ int offset = params.offset;
- AnalysisResult result = await server.getAnalysisResult(params.file);
+ AnalysisResult result = await server.getAnalysisResult(filePath);
+ Source source;
if (result == null || !result.exists) {
if (server.onNoAnalysisCompletion != null) {
@@ -170,31 +175,27 @@ class CompletionDomainHandler extends AbstractRequestHandler {
await server.onNoAnalysisCompletion(
request, this, params, performance, completionId);
return;
- } else {
- server.sendResponse(new Response.unknownSource(request));
+ }
+ source = server.resourceProvider.getFile(filePath).createSource();
+ } else {
+ if (offset < 0 || offset > result.content.length) {
+ server.sendResponse(new Response.invalidParameter(
+ request,
+ 'params.offset',
+ 'Expected offset between 0 and source length inclusive,'
+ ' but found ${offset}'));
return;
}
- }
+ source =
+ server.resourceProvider.getFile(result.path).createSource(result.uri);
- if (params.offset < 0 || params.offset > result.content.length) {
- server.sendResponse(new Response.invalidParameter(
- request,
- 'params.offset',
- 'Expected offset between 0 and source length inclusive,'
- ' but found ${params.offset}'));
- return;
+ recordRequest(performance, source, result.content, offset);
}
-
- Source source =
- server.resourceProvider.getFile(result.path).createSource(result.uri);
-
- recordRequest(performance, source, result.content, params.offset);
-
CompletionRequestImpl completionRequest = new CompletionRequestImpl(
result,
server.resourceProvider,
source,
- params.offset,
+ offset,
performance,
server.ideOptions);
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/services/completion/completion_core.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698