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

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

Issue 300553014: Implementation for 'analysis.updateContent' API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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
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 3a788ba28337aac3ee6519e9d94d097da0009a4a..c0d2983d5934141772631c704db1757ef591421c 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -78,6 +78,11 @@ class AnalysisDomainHandler implements RequestHandler {
static const String ADDED_PARAM = 'added';
/**
+ * The name of the `content` parameter.
+ */
+ static const String CONTENT_PARAM = 'content';
+
+ /**
* The name of the `default` parameter.
*/
static const String DEFAULT_PARAM = 'default';
@@ -118,11 +123,21 @@ class AnalysisDomainHandler implements RequestHandler {
static const String LENGTH_PARAM = 'length';
/**
+ * The name of the `newLength` parameter.
+ */
+ static const String NEW_LENGTH_PARAM = 'newLength';
+
+ /**
* The name of the `offset` parameter.
*/
static const String OFFSET_PARAM = 'offset';
/**
+ * The name of the `oldLength` parameter.
+ */
+ static const String OLD_LENGTH_PARAM = 'oldLength';
+
+ /**
* The name of the `options` parameter.
*/
static const String OPTIONS_PARAM = 'options';
@@ -222,8 +237,20 @@ class AnalysisDomainHandler implements RequestHandler {
}
Response updateContent(Request request) {
- // TODO(scheglov) implement
- return null;
+ var changes = new Map<String, ContentChange>();
+ RequestDatum filesDatum = request.getRequiredParameter(FILES_PARAM);
+ filesDatum.forEachMap((file, changeDatum) {
+ var change = new ContentChange();
+ change.content = changeDatum[CONTENT_PARAM].asString();
+ if (changeDatum.hasKey(OFFSET_PARAM)) {
+ change.offset = changeDatum[OFFSET_PARAM].asInt();
+ change.oldLength = changeDatum[OLD_LENGTH_PARAM].asInt();
+ change.newLength = changeDatum[NEW_LENGTH_PARAM].asInt();
+ }
+ changes[file] = change;
+ });
+ server.updateContent(changes);
+ return new Response(request.id);
}
Response updateOptions(Request request) {
@@ -236,3 +263,14 @@ class AnalysisDomainHandler implements RequestHandler {
return null;
}
}
+
+
+/**
+ * A description of the change to the content of a file.
+ */
+class ContentChange {
+ String content;
+ int offset;
+ int oldLength;
+ int newLength;
+}

Powered by Google App Engine
This is Rietveld 408576698