blob: aa20424f0c0897e71f4f21239e19dce51c85cf79 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// 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.
syntax = "proto3";
package dart_services.api;
message CompileRequest {
// The Dart source.
string source = 1;
// Return the Dart to JS source map; optional (defaults to false).
bool returnSourceMap = 2;
}
message CompileDDCRequest {
// The Dart source.
string source = 1;
}
message SourceRequest {
// The Dart source.
string source = 1;
// The offset within source to operate at.
int32 offset = 2;
}
message AnalysisResults {
repeated AnalysisIssue issues = 1;
// The package imports parsed from the source.
repeated string packageImports = 2;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
message AnalysisIssue {
string kind = 1;
int32 line = 2;
string message = 3;
string sourceName = 4;
bool hasFixes = 5;
int32 charStart = 6;
int32 charLength = 7;
}
message VersionRequest {}
message CompileResponse {
string result = 1;
string sourceMap = 2;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
message CompileDDCResponse {
string result = 1;
string modulesBaseUrl = 2;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
message DocumentResponse {
map<string, string> info = 1;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
message CompleteResponse {
// The offset of the start of the text to be replaced.
int32 replacementOffset = 1;
// The length of the text to be replaced.
int32 replacementLength = 2;
repeated Completion completions = 3;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
message Completion { map<string, string> completion = 1; }
message FixesResponse {
repeated ProblemAndFixes fixes = 1;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
// Represents a problem detected during analysis, and a set of possible ways of
// resolving the problem.
message ProblemAndFixes {
repeated CandidateFix fixes = 1;
string problemMessage = 2;
int32 offset = 3;
int32 length = 4;
}
// Represents a possible way of solving an Analysis Problem.
message CandidateFix {
string message = 1;
repeated SourceEdit edits = 2;
int32 selectionOffset = 3;
repeated LinkedEditGroup linkedEditGroups = 4;
}
// Represents a single edit-point change to a source file.
message SourceEdit {
int32 offset = 1;
int32 length = 2;
string replacement = 3;
}
message LinkedEditGroup {
// The positions of the regions that should be edited simultaneously.
repeated int32 positions = 1;
// The length of the regions that should be edited simultaneously.
int32 length = 2;
// Pre-computed suggestions for what every region might want to be changed to.
repeated LinkedEditSuggestion suggestions = 3;
}
message LinkedEditSuggestion {
// The value that could be used to replace all of the linked edit regions.
string value = 1;
// The kind of value being proposed.
string kind = 2;
}
// Represents a reformatting of the code.
message FormatResponse {
// The formatted source code.
string newString = 1;
// The (optional) new offset of the cursor; can be `null`.
int32 offset = 2;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
// The response from the `/assists` service call.
message AssistsResponse {
repeated CandidateFix assists = 1;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
// The response from the `/version` service call.
message VersionResponse {
// The Dart SDK version that DartServices is compatible with.
string sdkVersion = 1;
// The full Dart SDK version that DartServices is compatible with.
string sdkVersionFull = 2;
// The Dart SDK version that the server is running on. This will start with a
// semver string, and have a space and other build details appended.
string runtimeVersion = 3;
// The App Engine version.
string appEngineVersion = 4;
// The dart-services backend version.
string servicesVersion = 5;
// The Flutter SDK's version
string flutterVersion = 6;
// The Flutter SDK's Dart version
string flutterDartVersion = 7;
// The Flutter SDK's full Dart version
string flutterDartVersionFull = 8;
// Make this response compatible with BadRequest
ErrorMessage error = 99;
}
// Response from the server when errors are thrown internally
message BadRequest { ErrorMessage error = 99; }
// Individual error messages.
message ErrorMessage { string message = 1; }