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

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

Issue 492563002: Make more use of generated classes in analysis server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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
Index: pkg/analysis_server/lib/src/domain_analysis.dart
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 40eb77053a2d6f3e006d54baaa4cde5322aa0e31..e20e63345011a02de1f11f352bc9161d504aa25c 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -4,15 +4,12 @@
library domain.analysis;
-import 'dart:collection';
-
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/computer/computer_hover.dart';
import 'package:analysis_server/src/computer/error.dart';
import 'package:analysis_server/src/constants.dart';
import 'package:analysis_server/src/protocol.dart';
import 'package:analysis_server/src/protocol2.dart';
-import 'package:analysis_server/src/services/correction/change.dart';
import 'package:analyzer/src/generated/ast.dart';
import 'package:analyzer/src/generated/engine.dart' as engine;
@@ -65,14 +62,14 @@ class AnalysisDomainHandler implements RequestHandler {
*/
Response getHover(Request request) {
// prepare parameters
- String file = request.getRequiredParameter(FILE).asString();
- int offset = request.getRequiredParameter(OFFSET).asInt();
+ var params = new AnalysisGetHoverParams.fromRequest(request);
// prepare hovers
List<Hover> hovers = <Hover>[];
- List<CompilationUnit> units = server.getResolvedCompilationUnits(file);
+ List<CompilationUnit> units =
+ server.getResolvedCompilationUnits(params.file);
for (CompilationUnit unit in units) {
Hover hoverInformation =
- new DartUnitHoverComputer(unit, offset).compute();
+ new DartUnitHoverComputer(unit, params.offset).compute();
if (hoverInformation != null) {
hovers.add(hoverInformation);
}
@@ -112,14 +109,9 @@ class AnalysisDomainHandler implements RequestHandler {
* Implement the 'analysis.setAnalysisRoots' request.
*/
Response setAnalysisRoots(Request request) {
- // included
- RequestDatum includedDatum = request.getRequiredParameter(INCLUDED);
- List<String> includedPaths = includedDatum.asStringList();
- // excluded
- RequestDatum excludedDatum = request.getRequiredParameter(EXCLUDED);
- List<String> excludedPaths = excludedDatum.asStringList();
+ var params = new AnalysisSetAnalysisRootsParams.fromRequest(request);
// continue in server
- server.setAnalysisRoots(request.id, includedPaths, excludedPaths);
+ server.setAnalysisRoots(request.id, params.included, params.excluded);
return new Response(request.id);
}
@@ -127,10 +119,8 @@ class AnalysisDomainHandler implements RequestHandler {
* Implement the 'analysis.setPriorityFiles' request.
*/
Response setPriorityFiles(Request request) {
- // files
- RequestDatum filesDatum = request.getRequiredParameter(FILES);
- List<String> files = filesDatum.asStringList();
- server.setPriorityFiles(request, files);
+ var params = new AnalysisSetPriorityFilesParams.fromRequest(request);
+ server.setPriorityFiles(request, params.files);
return new Response(request.id);
}
@@ -138,16 +128,11 @@ class AnalysisDomainHandler implements RequestHandler {
* Implement the 'analysis.setSubscriptions' request.
*/
Response setSubscriptions(Request request) {
+ var params = new AnalysisSetSubscriptionsParams.fromRequest(request);
// parse subscriptions
- Map<AnalysisService, Set<String>> subMap;
- {
- Map<AnalysisService, List<String>> subscriptions =
- new AnalysisSetSubscriptionsParams.fromRequest(request).subscriptions;
- subMap = new HashMap<AnalysisService, Set<String>>();
- subscriptions.forEach((AnalysisService service, List<String> paths) {
- subMap[service] = new HashSet.from(paths);
- });
- }
+ Map<AnalysisService, Set<String>> subMap =
+ mapMap(params.subscriptions, valueCallback:
+ (List<String> subscriptions) => subscriptions.toSet());
server.setAnalysisSubscriptions(subMap);
return new Response(request.id);
}
@@ -156,35 +141,8 @@ class AnalysisDomainHandler implements RequestHandler {
* Implement the 'analysis.updateContent' request.
*/
Response updateContent(Request request) {
- var changes = new HashMap<String, ContentChange>();
- RequestDatum filesDatum = request.getRequiredParameter(FILES);
- for (String file in filesDatum.keys) {
- RequestDatum changeDatum = filesDatum[file];
- ContentChange change = new ContentChange();
- change.type = changeDatum[TYPE].asString();
- switch (change.type) {
- case ADD:
- change.content = changeDatum[CONTENT].asString();
- break;
- case CHANGE:
- change.changes = changeDatum[EDITS].asList((RequestDatum item) {
- int offset = item[OFFSET].asInt();
- int length = item[LENGTH].asInt();
- String replacement = item[REPLACEMENT].asString();
- return new Edit(offset, length, replacement);
- });
- break;
- case REMOVE:
- break;
- default:
- return new Response.invalidParameter(
- request,
- changeDatum[TYPE].path,
- 'be one of "add", "change", or "remove"');
- }
- changes[file] = change;
- }
- server.updateContent(changes);
+ var params = new AnalysisUpdateContentParams.fromRequest(request);
+ server.updateContent(params.files);
return new Response(request.id);
}
@@ -236,21 +194,3 @@ class AnalysisDomainHandler implements RequestHandler {
return new Response(request.id);
}
}
-
-
-/**
- * A description of the change to the content of a file.
- */
-class ContentChange {
- /**
- * Type of content change. 'add' means that [content] contains the full
- * content of the file, and [changes] should be null. 'change' means that
- * [changes] contains changes to be applied to the file, and [content] should
- * be null. 'remove' means that the file should be read from the filesystem,
- * and both [content] and [changes] should be null.
- */
- String type;
-
- String content;
- List<Edit> changes;
-}

Powered by Google App Engine
This is Rietveld 408576698