| Index: pkg/analyzer_plugin/lib/protocol/protocol_common.dart
|
| diff --git a/pkg/analyzer_plugin/lib/protocol/protocol_common.dart b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..881f7bd3e56521fdff6e55911ec428cb6f4c1030
|
| --- /dev/null
|
| +++ b/pkg/analyzer_plugin/lib/protocol/protocol_common.dart
|
| @@ -0,0 +1,5444 @@
|
| +// Copyright (c) 2017, 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.
|
| +//
|
| +// This file has been automatically generated. Please do not edit it manually.
|
| +// To regenerate the file, use the script
|
| +// "pkg/analysis_server/tool/spec/generate_files".
|
| +
|
| +import 'dart:convert' hide JsonDecoder;
|
| +
|
| +import 'package:analyzer/src/generated/utilities_general.dart';
|
| +import 'package:analyzer_plugin/protocol/protocol.dart';
|
| +import 'package:analyzer_plugin/src/protocol/protocol_internal.dart';
|
| +
|
| +/**
|
| + * AddContentOverlay
|
| + *
|
| + * {
|
| + * "type": "add"
|
| + * "content": String
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class AddContentOverlay implements HasToJson {
|
| + String _content;
|
| +
|
| + /**
|
| + * The new content of the file.
|
| + */
|
| + String get content => _content;
|
| +
|
| + /**
|
| + * The new content of the file.
|
| + */
|
| + void set content(String value) {
|
| + assert(value != null);
|
| + this._content = value;
|
| + }
|
| +
|
| + AddContentOverlay(String content) {
|
| + this.content = content;
|
| + }
|
| +
|
| + factory AddContentOverlay.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + if (json["type"] != "add") {
|
| + throw jsonDecoder.mismatch(jsonPath, "equal " + "add", json);
|
| + }
|
| + String content;
|
| + if (json.containsKey("content")) {
|
| + content =
|
| + jsonDecoder.decodeString(jsonPath + ".content", json["content"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "content");
|
| + }
|
| + return new AddContentOverlay(content);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "AddContentOverlay", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["type"] = "add";
|
| + result["content"] = content;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is AddContentOverlay) {
|
| + return content == other.content;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, 704418402);
|
| + hash = JenkinsSmiHash.combine(hash, content.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * AnalysisError
|
| + *
|
| + * {
|
| + * "severity": AnalysisErrorSeverity
|
| + * "type": AnalysisErrorType
|
| + * "location": Location
|
| + * "message": String
|
| + * "correction": optional String
|
| + * "code": String
|
| + * "hasFix": optional bool
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class AnalysisError implements HasToJson {
|
| + AnalysisErrorSeverity _severity;
|
| +
|
| + AnalysisErrorType _type;
|
| +
|
| + Location _location;
|
| +
|
| + String _message;
|
| +
|
| + String _correction;
|
| +
|
| + String _code;
|
| +
|
| + bool _hasFix;
|
| +
|
| + /**
|
| + * The severity of the error.
|
| + */
|
| + AnalysisErrorSeverity get severity => _severity;
|
| +
|
| + /**
|
| + * The severity of the error.
|
| + */
|
| + void set severity(AnalysisErrorSeverity value) {
|
| + assert(value != null);
|
| + this._severity = value;
|
| + }
|
| +
|
| + /**
|
| + * The type of the error.
|
| + */
|
| + AnalysisErrorType get type => _type;
|
| +
|
| + /**
|
| + * The type of the error.
|
| + */
|
| + void set type(AnalysisErrorType value) {
|
| + assert(value != null);
|
| + this._type = value;
|
| + }
|
| +
|
| + /**
|
| + * The location associated with the error.
|
| + */
|
| + Location get location => _location;
|
| +
|
| + /**
|
| + * The location associated with the error.
|
| + */
|
| + void set location(Location value) {
|
| + assert(value != null);
|
| + this._location = value;
|
| + }
|
| +
|
| + /**
|
| + * The message to be displayed for this error. The message should indicate
|
| + * what is wrong with the code and why it is wrong.
|
| + */
|
| + String get message => _message;
|
| +
|
| + /**
|
| + * The message to be displayed for this error. The message should indicate
|
| + * what is wrong with the code and why it is wrong.
|
| + */
|
| + void set message(String value) {
|
| + assert(value != null);
|
| + this._message = value;
|
| + }
|
| +
|
| + /**
|
| + * The correction message to be displayed for this error. The correction
|
| + * message should indicate how the user can fix the error. The field is
|
| + * omitted if there is no correction message associated with the error code.
|
| + */
|
| + String get correction => _correction;
|
| +
|
| + /**
|
| + * The correction message to be displayed for this error. The correction
|
| + * message should indicate how the user can fix the error. The field is
|
| + * omitted if there is no correction message associated with the error code.
|
| + */
|
| + void set correction(String value) {
|
| + this._correction = value;
|
| + }
|
| +
|
| + /**
|
| + * The name, as a string, of the error code associated with this error.
|
| + */
|
| + String get code => _code;
|
| +
|
| + /**
|
| + * The name, as a string, of the error code associated with this error.
|
| + */
|
| + void set code(String value) {
|
| + assert(value != null);
|
| + this._code = value;
|
| + }
|
| +
|
| + /**
|
| + * A hint to indicate to interested clients that this error has an associated
|
| + * fix (or fixes). The absence of this field implies there are not known to
|
| + * be fixes. Note that since the operation to calculate whether fixes apply
|
| + * needs to be performant it is possible that complicated tests will be
|
| + * skipped and a false negative returned. For this reason, this attribute
|
| + * should be treated as a "hint". Despite the possibility of false negatives,
|
| + * no false positives should be returned. If a client sees this flag set they
|
| + * can proceed with the confidence that there are in fact associated fixes.
|
| + */
|
| + bool get hasFix => _hasFix;
|
| +
|
| + /**
|
| + * A hint to indicate to interested clients that this error has an associated
|
| + * fix (or fixes). The absence of this field implies there are not known to
|
| + * be fixes. Note that since the operation to calculate whether fixes apply
|
| + * needs to be performant it is possible that complicated tests will be
|
| + * skipped and a false negative returned. For this reason, this attribute
|
| + * should be treated as a "hint". Despite the possibility of false negatives,
|
| + * no false positives should be returned. If a client sees this flag set they
|
| + * can proceed with the confidence that there are in fact associated fixes.
|
| + */
|
| + void set hasFix(bool value) {
|
| + this._hasFix = value;
|
| + }
|
| +
|
| + AnalysisError(AnalysisErrorSeverity severity, AnalysisErrorType type,
|
| + Location location, String message, String code,
|
| + {String correction, bool hasFix}) {
|
| + this.severity = severity;
|
| + this.type = type;
|
| + this.location = location;
|
| + this.message = message;
|
| + this.correction = correction;
|
| + this.code = code;
|
| + this.hasFix = hasFix;
|
| + }
|
| +
|
| + factory AnalysisError.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + AnalysisErrorSeverity severity;
|
| + if (json.containsKey("severity")) {
|
| + severity = new AnalysisErrorSeverity.fromJson(
|
| + jsonDecoder, jsonPath + ".severity", json["severity"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "severity");
|
| + }
|
| + AnalysisErrorType type;
|
| + if (json.containsKey("type")) {
|
| + type = new AnalysisErrorType.fromJson(
|
| + jsonDecoder, jsonPath + ".type", json["type"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "type");
|
| + }
|
| + Location location;
|
| + if (json.containsKey("location")) {
|
| + location = new Location.fromJson(
|
| + jsonDecoder, jsonPath + ".location", json["location"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "location");
|
| + }
|
| + String message;
|
| + if (json.containsKey("message")) {
|
| + message =
|
| + jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "message");
|
| + }
|
| + String correction;
|
| + if (json.containsKey("correction")) {
|
| + correction = jsonDecoder.decodeString(
|
| + jsonPath + ".correction", json["correction"]);
|
| + }
|
| + String code;
|
| + if (json.containsKey("code")) {
|
| + code = jsonDecoder.decodeString(jsonPath + ".code", json["code"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "code");
|
| + }
|
| + bool hasFix;
|
| + if (json.containsKey("hasFix")) {
|
| + hasFix = jsonDecoder.decodeBool(jsonPath + ".hasFix", json["hasFix"]);
|
| + }
|
| + return new AnalysisError(severity, type, location, message, code,
|
| + correction: correction, hasFix: hasFix);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "AnalysisError", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["severity"] = severity.toJson();
|
| + result["type"] = type.toJson();
|
| + result["location"] = location.toJson();
|
| + result["message"] = message;
|
| + if (correction != null) {
|
| + result["correction"] = correction;
|
| + }
|
| + result["code"] = code;
|
| + if (hasFix != null) {
|
| + result["hasFix"] = hasFix;
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is AnalysisError) {
|
| + return severity == other.severity &&
|
| + type == other.type &&
|
| + location == other.location &&
|
| + message == other.message &&
|
| + correction == other.correction &&
|
| + code == other.code &&
|
| + hasFix == other.hasFix;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, severity.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, correction.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, code.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, hasFix.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * AnalysisErrorSeverity
|
| + *
|
| + * enum {
|
| + * INFO
|
| + * WARNING
|
| + * ERROR
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class AnalysisErrorSeverity implements Enum {
|
| + static const AnalysisErrorSeverity INFO =
|
| + const AnalysisErrorSeverity._("INFO");
|
| +
|
| + static const AnalysisErrorSeverity WARNING =
|
| + const AnalysisErrorSeverity._("WARNING");
|
| +
|
| + static const AnalysisErrorSeverity ERROR =
|
| + const AnalysisErrorSeverity._("ERROR");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<AnalysisErrorSeverity> VALUES =
|
| + const <AnalysisErrorSeverity>[INFO, WARNING, ERROR];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const AnalysisErrorSeverity._(this.name);
|
| +
|
| + factory AnalysisErrorSeverity(String name) {
|
| + switch (name) {
|
| + case "INFO":
|
| + return INFO;
|
| + case "WARNING":
|
| + return WARNING;
|
| + case "ERROR":
|
| + return ERROR;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory AnalysisErrorSeverity.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new AnalysisErrorSeverity(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorSeverity", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "AnalysisErrorSeverity.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * AnalysisErrorType
|
| + *
|
| + * enum {
|
| + * CHECKED_MODE_COMPILE_TIME_ERROR
|
| + * COMPILE_TIME_ERROR
|
| + * HINT
|
| + * LINT
|
| + * STATIC_TYPE_WARNING
|
| + * STATIC_WARNING
|
| + * SYNTACTIC_ERROR
|
| + * TODO
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class AnalysisErrorType implements Enum {
|
| + static const AnalysisErrorType CHECKED_MODE_COMPILE_TIME_ERROR =
|
| + const AnalysisErrorType._("CHECKED_MODE_COMPILE_TIME_ERROR");
|
| +
|
| + static const AnalysisErrorType COMPILE_TIME_ERROR =
|
| + const AnalysisErrorType._("COMPILE_TIME_ERROR");
|
| +
|
| + static const AnalysisErrorType HINT = const AnalysisErrorType._("HINT");
|
| +
|
| + static const AnalysisErrorType LINT = const AnalysisErrorType._("LINT");
|
| +
|
| + static const AnalysisErrorType STATIC_TYPE_WARNING =
|
| + const AnalysisErrorType._("STATIC_TYPE_WARNING");
|
| +
|
| + static const AnalysisErrorType STATIC_WARNING =
|
| + const AnalysisErrorType._("STATIC_WARNING");
|
| +
|
| + static const AnalysisErrorType SYNTACTIC_ERROR =
|
| + const AnalysisErrorType._("SYNTACTIC_ERROR");
|
| +
|
| + static const AnalysisErrorType TODO = const AnalysisErrorType._("TODO");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<AnalysisErrorType> VALUES = const <AnalysisErrorType>[
|
| + CHECKED_MODE_COMPILE_TIME_ERROR,
|
| + COMPILE_TIME_ERROR,
|
| + HINT,
|
| + LINT,
|
| + STATIC_TYPE_WARNING,
|
| + STATIC_WARNING,
|
| + SYNTACTIC_ERROR,
|
| + TODO
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const AnalysisErrorType._(this.name);
|
| +
|
| + factory AnalysisErrorType(String name) {
|
| + switch (name) {
|
| + case "CHECKED_MODE_COMPILE_TIME_ERROR":
|
| + return CHECKED_MODE_COMPILE_TIME_ERROR;
|
| + case "COMPILE_TIME_ERROR":
|
| + return COMPILE_TIME_ERROR;
|
| + case "HINT":
|
| + return HINT;
|
| + case "LINT":
|
| + return LINT;
|
| + case "STATIC_TYPE_WARNING":
|
| + return STATIC_TYPE_WARNING;
|
| + case "STATIC_WARNING":
|
| + return STATIC_WARNING;
|
| + case "SYNTACTIC_ERROR":
|
| + return SYNTACTIC_ERROR;
|
| + case "TODO":
|
| + return TODO;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory AnalysisErrorType.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new AnalysisErrorType(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "AnalysisErrorType", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "AnalysisErrorType.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * ChangeContentOverlay
|
| + *
|
| + * {
|
| + * "type": "change"
|
| + * "edits": List<SourceEdit>
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class ChangeContentOverlay implements HasToJson {
|
| + List<SourceEdit> _edits;
|
| +
|
| + /**
|
| + * The edits to be applied to the file.
|
| + */
|
| + List<SourceEdit> get edits => _edits;
|
| +
|
| + /**
|
| + * The edits to be applied to the file.
|
| + */
|
| + void set edits(List<SourceEdit> value) {
|
| + assert(value != null);
|
| + this._edits = value;
|
| + }
|
| +
|
| + ChangeContentOverlay(List<SourceEdit> edits) {
|
| + this.edits = edits;
|
| + }
|
| +
|
| + factory ChangeContentOverlay.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + if (json["type"] != "change") {
|
| + throw jsonDecoder.mismatch(jsonPath, "equal " + "change", json);
|
| + }
|
| + List<SourceEdit> edits;
|
| + if (json.containsKey("edits")) {
|
| + edits = jsonDecoder.decodeList(
|
| + jsonPath + ".edits",
|
| + json["edits"],
|
| + (String jsonPath, Object json) =>
|
| + new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "edits");
|
| + }
|
| + return new ChangeContentOverlay(edits);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "ChangeContentOverlay", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["type"] = "change";
|
| + result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is ChangeContentOverlay) {
|
| + return listEqual(
|
| + edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, 873118866);
|
| + hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * CompletionSuggestion
|
| + *
|
| + * {
|
| + * "kind": CompletionSuggestionKind
|
| + * "relevance": int
|
| + * "completion": String
|
| + * "selectionOffset": int
|
| + * "selectionLength": int
|
| + * "isDeprecated": bool
|
| + * "isPotential": bool
|
| + * "docSummary": optional String
|
| + * "docComplete": optional String
|
| + * "declaringType": optional String
|
| + * "defaultArgumentListString": optional String
|
| + * "defaultArgumentListTextRanges": optional List<int>
|
| + * "element": optional Element
|
| + * "returnType": optional String
|
| + * "parameterNames": optional List<String>
|
| + * "parameterTypes": optional List<String>
|
| + * "requiredParameterCount": optional int
|
| + * "hasNamedParameters": optional bool
|
| + * "parameterName": optional String
|
| + * "parameterType": optional String
|
| + * "importUri": optional String
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class CompletionSuggestion implements HasToJson {
|
| + CompletionSuggestionKind _kind;
|
| +
|
| + int _relevance;
|
| +
|
| + String _completion;
|
| +
|
| + int _selectionOffset;
|
| +
|
| + int _selectionLength;
|
| +
|
| + bool _isDeprecated;
|
| +
|
| + bool _isPotential;
|
| +
|
| + String _docSummary;
|
| +
|
| + String _docComplete;
|
| +
|
| + String _declaringType;
|
| +
|
| + String _defaultArgumentListString;
|
| +
|
| + List<int> _defaultArgumentListTextRanges;
|
| +
|
| + Element _element;
|
| +
|
| + String _returnType;
|
| +
|
| + List<String> _parameterNames;
|
| +
|
| + List<String> _parameterTypes;
|
| +
|
| + int _requiredParameterCount;
|
| +
|
| + bool _hasNamedParameters;
|
| +
|
| + String _parameterName;
|
| +
|
| + String _parameterType;
|
| +
|
| + String _importUri;
|
| +
|
| + /**
|
| + * The kind of element being suggested.
|
| + */
|
| + CompletionSuggestionKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of element being suggested.
|
| + */
|
| + void set kind(CompletionSuggestionKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + /**
|
| + * The relevance of this completion suggestion where a higher number
|
| + * indicates a higher relevance.
|
| + */
|
| + int get relevance => _relevance;
|
| +
|
| + /**
|
| + * The relevance of this completion suggestion where a higher number
|
| + * indicates a higher relevance.
|
| + */
|
| + void set relevance(int value) {
|
| + assert(value != null);
|
| + this._relevance = value;
|
| + }
|
| +
|
| + /**
|
| + * The identifier to be inserted if the suggestion is selected. If the
|
| + * suggestion is for a method or function, the client might want to
|
| + * additionally insert a template for the parameters. The information
|
| + * required in order to do so is contained in other fields.
|
| + */
|
| + String get completion => _completion;
|
| +
|
| + /**
|
| + * The identifier to be inserted if the suggestion is selected. If the
|
| + * suggestion is for a method or function, the client might want to
|
| + * additionally insert a template for the parameters. The information
|
| + * required in order to do so is contained in other fields.
|
| + */
|
| + void set completion(String value) {
|
| + assert(value != null);
|
| + this._completion = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset, relative to the beginning of the completion, of where the
|
| + * selection should be placed after insertion.
|
| + */
|
| + int get selectionOffset => _selectionOffset;
|
| +
|
| + /**
|
| + * The offset, relative to the beginning of the completion, of where the
|
| + * selection should be placed after insertion.
|
| + */
|
| + void set selectionOffset(int value) {
|
| + assert(value != null);
|
| + this._selectionOffset = value;
|
| + }
|
| +
|
| + /**
|
| + * The number of characters that should be selected after insertion.
|
| + */
|
| + int get selectionLength => _selectionLength;
|
| +
|
| + /**
|
| + * The number of characters that should be selected after insertion.
|
| + */
|
| + void set selectionLength(int value) {
|
| + assert(value != null);
|
| + this._selectionLength = value;
|
| + }
|
| +
|
| + /**
|
| + * True if the suggested element is deprecated.
|
| + */
|
| + bool get isDeprecated => _isDeprecated;
|
| +
|
| + /**
|
| + * True if the suggested element is deprecated.
|
| + */
|
| + void set isDeprecated(bool value) {
|
| + assert(value != null);
|
| + this._isDeprecated = value;
|
| + }
|
| +
|
| + /**
|
| + * True if the element is not known to be valid for the target. This happens
|
| + * if the type of the target is dynamic.
|
| + */
|
| + bool get isPotential => _isPotential;
|
| +
|
| + /**
|
| + * True if the element is not known to be valid for the target. This happens
|
| + * if the type of the target is dynamic.
|
| + */
|
| + void set isPotential(bool value) {
|
| + assert(value != null);
|
| + this._isPotential = value;
|
| + }
|
| +
|
| + /**
|
| + * An abbreviated version of the Dartdoc associated with the element being
|
| + * suggested, This field is omitted if there is no Dartdoc associated with
|
| + * the element.
|
| + */
|
| + String get docSummary => _docSummary;
|
| +
|
| + /**
|
| + * An abbreviated version of the Dartdoc associated with the element being
|
| + * suggested, This field is omitted if there is no Dartdoc associated with
|
| + * the element.
|
| + */
|
| + void set docSummary(String value) {
|
| + this._docSummary = value;
|
| + }
|
| +
|
| + /**
|
| + * The Dartdoc associated with the element being suggested. This field is
|
| + * omitted if there is no Dartdoc associated with the element.
|
| + */
|
| + String get docComplete => _docComplete;
|
| +
|
| + /**
|
| + * The Dartdoc associated with the element being suggested. This field is
|
| + * omitted if there is no Dartdoc associated with the element.
|
| + */
|
| + void set docComplete(String value) {
|
| + this._docComplete = value;
|
| + }
|
| +
|
| + /**
|
| + * The class that declares the element being suggested. This field is omitted
|
| + * if the suggested element is not a member of a class.
|
| + */
|
| + String get declaringType => _declaringType;
|
| +
|
| + /**
|
| + * The class that declares the element being suggested. This field is omitted
|
| + * if the suggested element is not a member of a class.
|
| + */
|
| + void set declaringType(String value) {
|
| + this._declaringType = value;
|
| + }
|
| +
|
| + /**
|
| + * A default String for use in generating argument list source contents on
|
| + * the client side.
|
| + */
|
| + String get defaultArgumentListString => _defaultArgumentListString;
|
| +
|
| + /**
|
| + * A default String for use in generating argument list source contents on
|
| + * the client side.
|
| + */
|
| + void set defaultArgumentListString(String value) {
|
| + this._defaultArgumentListString = value;
|
| + }
|
| +
|
| + /**
|
| + * Pairs of offsets and lengths describing 'defaultArgumentListString' text
|
| + * ranges suitable for use by clients to set up linked edits of default
|
| + * argument source contents. For example, given an argument list string 'x,
|
| + * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
|
| + * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
|
| + * treat the 'x' and 'y' values specially for linked edits.
|
| + */
|
| + List<int> get defaultArgumentListTextRanges => _defaultArgumentListTextRanges;
|
| +
|
| + /**
|
| + * Pairs of offsets and lengths describing 'defaultArgumentListString' text
|
| + * ranges suitable for use by clients to set up linked edits of default
|
| + * argument source contents. For example, given an argument list string 'x,
|
| + * y', the corresponding text range [0, 1, 3, 1], indicates two text ranges
|
| + * of length 1, starting at offsets 0 and 3. Clients can use these ranges to
|
| + * treat the 'x' and 'y' values specially for linked edits.
|
| + */
|
| + void set defaultArgumentListTextRanges(List<int> value) {
|
| + this._defaultArgumentListTextRanges = value;
|
| + }
|
| +
|
| + /**
|
| + * Information about the element reference being suggested.
|
| + */
|
| + Element get element => _element;
|
| +
|
| + /**
|
| + * Information about the element reference being suggested.
|
| + */
|
| + void set element(Element value) {
|
| + this._element = value;
|
| + }
|
| +
|
| + /**
|
| + * The return type of the getter, function or method or the type of the field
|
| + * being suggested. This field is omitted if the suggested element is not a
|
| + * getter, function or method.
|
| + */
|
| + String get returnType => _returnType;
|
| +
|
| + /**
|
| + * The return type of the getter, function or method or the type of the field
|
| + * being suggested. This field is omitted if the suggested element is not a
|
| + * getter, function or method.
|
| + */
|
| + void set returnType(String value) {
|
| + this._returnType = value;
|
| + }
|
| +
|
| + /**
|
| + * The names of the parameters of the function or method being suggested.
|
| + * This field is omitted if the suggested element is not a setter, function
|
| + * or method.
|
| + */
|
| + List<String> get parameterNames => _parameterNames;
|
| +
|
| + /**
|
| + * The names of the parameters of the function or method being suggested.
|
| + * This field is omitted if the suggested element is not a setter, function
|
| + * or method.
|
| + */
|
| + void set parameterNames(List<String> value) {
|
| + this._parameterNames = value;
|
| + }
|
| +
|
| + /**
|
| + * The types of the parameters of the function or method being suggested.
|
| + * This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + List<String> get parameterTypes => _parameterTypes;
|
| +
|
| + /**
|
| + * The types of the parameters of the function or method being suggested.
|
| + * This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + void set parameterTypes(List<String> value) {
|
| + this._parameterTypes = value;
|
| + }
|
| +
|
| + /**
|
| + * The number of required parameters for the function or method being
|
| + * suggested. This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + int get requiredParameterCount => _requiredParameterCount;
|
| +
|
| + /**
|
| + * The number of required parameters for the function or method being
|
| + * suggested. This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + void set requiredParameterCount(int value) {
|
| + this._requiredParameterCount = value;
|
| + }
|
| +
|
| + /**
|
| + * True if the function or method being suggested has at least one named
|
| + * parameter. This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + bool get hasNamedParameters => _hasNamedParameters;
|
| +
|
| + /**
|
| + * True if the function or method being suggested has at least one named
|
| + * parameter. This field is omitted if the parameterNames field is omitted.
|
| + */
|
| + void set hasNamedParameters(bool value) {
|
| + this._hasNamedParameters = value;
|
| + }
|
| +
|
| + /**
|
| + * The name of the optional parameter being suggested. This field is omitted
|
| + * if the suggestion is not the addition of an optional argument within an
|
| + * argument list.
|
| + */
|
| + String get parameterName => _parameterName;
|
| +
|
| + /**
|
| + * The name of the optional parameter being suggested. This field is omitted
|
| + * if the suggestion is not the addition of an optional argument within an
|
| + * argument list.
|
| + */
|
| + void set parameterName(String value) {
|
| + this._parameterName = value;
|
| + }
|
| +
|
| + /**
|
| + * The type of the options parameter being suggested. This field is omitted
|
| + * if the parameterName field is omitted.
|
| + */
|
| + String get parameterType => _parameterType;
|
| +
|
| + /**
|
| + * The type of the options parameter being suggested. This field is omitted
|
| + * if the parameterName field is omitted.
|
| + */
|
| + void set parameterType(String value) {
|
| + this._parameterType = value;
|
| + }
|
| +
|
| + /**
|
| + * The import to be added if the suggestion is out of scope and needs an
|
| + * import to be added to be in scope.
|
| + */
|
| + String get importUri => _importUri;
|
| +
|
| + /**
|
| + * The import to be added if the suggestion is out of scope and needs an
|
| + * import to be added to be in scope.
|
| + */
|
| + void set importUri(String value) {
|
| + this._importUri = value;
|
| + }
|
| +
|
| + CompletionSuggestion(
|
| + CompletionSuggestionKind kind,
|
| + int relevance,
|
| + String completion,
|
| + int selectionOffset,
|
| + int selectionLength,
|
| + bool isDeprecated,
|
| + bool isPotential,
|
| + {String docSummary,
|
| + String docComplete,
|
| + String declaringType,
|
| + String defaultArgumentListString,
|
| + List<int> defaultArgumentListTextRanges,
|
| + Element element,
|
| + String returnType,
|
| + List<String> parameterNames,
|
| + List<String> parameterTypes,
|
| + int requiredParameterCount,
|
| + bool hasNamedParameters,
|
| + String parameterName,
|
| + String parameterType,
|
| + String importUri}) {
|
| + this.kind = kind;
|
| + this.relevance = relevance;
|
| + this.completion = completion;
|
| + this.selectionOffset = selectionOffset;
|
| + this.selectionLength = selectionLength;
|
| + this.isDeprecated = isDeprecated;
|
| + this.isPotential = isPotential;
|
| + this.docSummary = docSummary;
|
| + this.docComplete = docComplete;
|
| + this.declaringType = declaringType;
|
| + this.defaultArgumentListString = defaultArgumentListString;
|
| + this.defaultArgumentListTextRanges = defaultArgumentListTextRanges;
|
| + this.element = element;
|
| + this.returnType = returnType;
|
| + this.parameterNames = parameterNames;
|
| + this.parameterTypes = parameterTypes;
|
| + this.requiredParameterCount = requiredParameterCount;
|
| + this.hasNamedParameters = hasNamedParameters;
|
| + this.parameterName = parameterName;
|
| + this.parameterType = parameterType;
|
| + this.importUri = importUri;
|
| + }
|
| +
|
| + factory CompletionSuggestion.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + CompletionSuggestionKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new CompletionSuggestionKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + int relevance;
|
| + if (json.containsKey("relevance")) {
|
| + relevance =
|
| + jsonDecoder.decodeInt(jsonPath + ".relevance", json["relevance"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "relevance");
|
| + }
|
| + String completion;
|
| + if (json.containsKey("completion")) {
|
| + completion = jsonDecoder.decodeString(
|
| + jsonPath + ".completion", json["completion"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "completion");
|
| + }
|
| + int selectionOffset;
|
| + if (json.containsKey("selectionOffset")) {
|
| + selectionOffset = jsonDecoder.decodeInt(
|
| + jsonPath + ".selectionOffset", json["selectionOffset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "selectionOffset");
|
| + }
|
| + int selectionLength;
|
| + if (json.containsKey("selectionLength")) {
|
| + selectionLength = jsonDecoder.decodeInt(
|
| + jsonPath + ".selectionLength", json["selectionLength"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "selectionLength");
|
| + }
|
| + bool isDeprecated;
|
| + if (json.containsKey("isDeprecated")) {
|
| + isDeprecated = jsonDecoder.decodeBool(
|
| + jsonPath + ".isDeprecated", json["isDeprecated"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "isDeprecated");
|
| + }
|
| + bool isPotential;
|
| + if (json.containsKey("isPotential")) {
|
| + isPotential = jsonDecoder.decodeBool(
|
| + jsonPath + ".isPotential", json["isPotential"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "isPotential");
|
| + }
|
| + String docSummary;
|
| + if (json.containsKey("docSummary")) {
|
| + docSummary = jsonDecoder.decodeString(
|
| + jsonPath + ".docSummary", json["docSummary"]);
|
| + }
|
| + String docComplete;
|
| + if (json.containsKey("docComplete")) {
|
| + docComplete = jsonDecoder.decodeString(
|
| + jsonPath + ".docComplete", json["docComplete"]);
|
| + }
|
| + String declaringType;
|
| + if (json.containsKey("declaringType")) {
|
| + declaringType = jsonDecoder.decodeString(
|
| + jsonPath + ".declaringType", json["declaringType"]);
|
| + }
|
| + String defaultArgumentListString;
|
| + if (json.containsKey("defaultArgumentListString")) {
|
| + defaultArgumentListString = jsonDecoder.decodeString(
|
| + jsonPath + ".defaultArgumentListString",
|
| + json["defaultArgumentListString"]);
|
| + }
|
| + List<int> defaultArgumentListTextRanges;
|
| + if (json.containsKey("defaultArgumentListTextRanges")) {
|
| + defaultArgumentListTextRanges = jsonDecoder.decodeList(
|
| + jsonPath + ".defaultArgumentListTextRanges",
|
| + json["defaultArgumentListTextRanges"],
|
| + jsonDecoder.decodeInt);
|
| + }
|
| + Element element;
|
| + if (json.containsKey("element")) {
|
| + element = new Element.fromJson(
|
| + jsonDecoder, jsonPath + ".element", json["element"]);
|
| + }
|
| + String returnType;
|
| + if (json.containsKey("returnType")) {
|
| + returnType = jsonDecoder.decodeString(
|
| + jsonPath + ".returnType", json["returnType"]);
|
| + }
|
| + List<String> parameterNames;
|
| + if (json.containsKey("parameterNames")) {
|
| + parameterNames = jsonDecoder.decodeList(jsonPath + ".parameterNames",
|
| + json["parameterNames"], jsonDecoder.decodeString);
|
| + }
|
| + List<String> parameterTypes;
|
| + if (json.containsKey("parameterTypes")) {
|
| + parameterTypes = jsonDecoder.decodeList(jsonPath + ".parameterTypes",
|
| + json["parameterTypes"], jsonDecoder.decodeString);
|
| + }
|
| + int requiredParameterCount;
|
| + if (json.containsKey("requiredParameterCount")) {
|
| + requiredParameterCount = jsonDecoder.decodeInt(
|
| + jsonPath + ".requiredParameterCount",
|
| + json["requiredParameterCount"]);
|
| + }
|
| + bool hasNamedParameters;
|
| + if (json.containsKey("hasNamedParameters")) {
|
| + hasNamedParameters = jsonDecoder.decodeBool(
|
| + jsonPath + ".hasNamedParameters", json["hasNamedParameters"]);
|
| + }
|
| + String parameterName;
|
| + if (json.containsKey("parameterName")) {
|
| + parameterName = jsonDecoder.decodeString(
|
| + jsonPath + ".parameterName", json["parameterName"]);
|
| + }
|
| + String parameterType;
|
| + if (json.containsKey("parameterType")) {
|
| + parameterType = jsonDecoder.decodeString(
|
| + jsonPath + ".parameterType", json["parameterType"]);
|
| + }
|
| + String importUri;
|
| + if (json.containsKey("importUri")) {
|
| + importUri = jsonDecoder.decodeString(
|
| + jsonPath + ".importUri", json["importUri"]);
|
| + }
|
| + return new CompletionSuggestion(kind, relevance, completion,
|
| + selectionOffset, selectionLength, isDeprecated, isPotential,
|
| + docSummary: docSummary,
|
| + docComplete: docComplete,
|
| + declaringType: declaringType,
|
| + defaultArgumentListString: defaultArgumentListString,
|
| + defaultArgumentListTextRanges: defaultArgumentListTextRanges,
|
| + element: element,
|
| + returnType: returnType,
|
| + parameterNames: parameterNames,
|
| + parameterTypes: parameterTypes,
|
| + requiredParameterCount: requiredParameterCount,
|
| + hasNamedParameters: hasNamedParameters,
|
| + parameterName: parameterName,
|
| + parameterType: parameterType,
|
| + importUri: importUri);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestion", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["kind"] = kind.toJson();
|
| + result["relevance"] = relevance;
|
| + result["completion"] = completion;
|
| + result["selectionOffset"] = selectionOffset;
|
| + result["selectionLength"] = selectionLength;
|
| + result["isDeprecated"] = isDeprecated;
|
| + result["isPotential"] = isPotential;
|
| + if (docSummary != null) {
|
| + result["docSummary"] = docSummary;
|
| + }
|
| + if (docComplete != null) {
|
| + result["docComplete"] = docComplete;
|
| + }
|
| + if (declaringType != null) {
|
| + result["declaringType"] = declaringType;
|
| + }
|
| + if (defaultArgumentListString != null) {
|
| + result["defaultArgumentListString"] = defaultArgumentListString;
|
| + }
|
| + if (defaultArgumentListTextRanges != null) {
|
| + result["defaultArgumentListTextRanges"] = defaultArgumentListTextRanges;
|
| + }
|
| + if (element != null) {
|
| + result["element"] = element.toJson();
|
| + }
|
| + if (returnType != null) {
|
| + result["returnType"] = returnType;
|
| + }
|
| + if (parameterNames != null) {
|
| + result["parameterNames"] = parameterNames;
|
| + }
|
| + if (parameterTypes != null) {
|
| + result["parameterTypes"] = parameterTypes;
|
| + }
|
| + if (requiredParameterCount != null) {
|
| + result["requiredParameterCount"] = requiredParameterCount;
|
| + }
|
| + if (hasNamedParameters != null) {
|
| + result["hasNamedParameters"] = hasNamedParameters;
|
| + }
|
| + if (parameterName != null) {
|
| + result["parameterName"] = parameterName;
|
| + }
|
| + if (parameterType != null) {
|
| + result["parameterType"] = parameterType;
|
| + }
|
| + if (importUri != null) {
|
| + result["importUri"] = importUri;
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is CompletionSuggestion) {
|
| + return kind == other.kind &&
|
| + relevance == other.relevance &&
|
| + completion == other.completion &&
|
| + selectionOffset == other.selectionOffset &&
|
| + selectionLength == other.selectionLength &&
|
| + isDeprecated == other.isDeprecated &&
|
| + isPotential == other.isPotential &&
|
| + docSummary == other.docSummary &&
|
| + docComplete == other.docComplete &&
|
| + declaringType == other.declaringType &&
|
| + defaultArgumentListString == other.defaultArgumentListString &&
|
| + listEqual(defaultArgumentListTextRanges,
|
| + other.defaultArgumentListTextRanges, (int a, int b) => a == b) &&
|
| + element == other.element &&
|
| + returnType == other.returnType &&
|
| + listEqual(parameterNames, other.parameterNames,
|
| + (String a, String b) => a == b) &&
|
| + listEqual(parameterTypes, other.parameterTypes,
|
| + (String a, String b) => a == b) &&
|
| + requiredParameterCount == other.requiredParameterCount &&
|
| + hasNamedParameters == other.hasNamedParameters &&
|
| + parameterName == other.parameterName &&
|
| + parameterType == other.parameterType &&
|
| + importUri == other.importUri;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, relevance.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, completion.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, selectionOffset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, selectionLength.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, isDeprecated.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, isPotential.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, docSummary.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, docComplete.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, declaringType.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, defaultArgumentListString.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, defaultArgumentListTextRanges.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameterNames.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameterTypes.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, requiredParameterCount.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, hasNamedParameters.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameterName.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameterType.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, importUri.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * CompletionSuggestionKind
|
| + *
|
| + * enum {
|
| + * ARGUMENT_LIST
|
| + * IMPORT
|
| + * IDENTIFIER
|
| + * INVOCATION
|
| + * KEYWORD
|
| + * NAMED_ARGUMENT
|
| + * OPTIONAL_ARGUMENT
|
| + * PARAMETER
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class CompletionSuggestionKind implements Enum {
|
| + /**
|
| + * A list of arguments for the method or function that is being invoked. For
|
| + * this suggestion kind, the completion field is a textual representation of
|
| + * the invocation and the parameterNames, parameterTypes, and
|
| + * requiredParameterCount attributes are defined.
|
| + */
|
| + static const CompletionSuggestionKind ARGUMENT_LIST =
|
| + const CompletionSuggestionKind._("ARGUMENT_LIST");
|
| +
|
| + static const CompletionSuggestionKind IMPORT =
|
| + const CompletionSuggestionKind._("IMPORT");
|
| +
|
| + /**
|
| + * The element identifier should be inserted at the completion location. For
|
| + * example "someMethod" in import 'myLib.dart' show someMethod;. For
|
| + * suggestions of this kind, the element attribute is defined and the
|
| + * completion field is the element's identifier.
|
| + */
|
| + static const CompletionSuggestionKind IDENTIFIER =
|
| + const CompletionSuggestionKind._("IDENTIFIER");
|
| +
|
| + /**
|
| + * The element is being invoked at the completion location. For example,
|
| + * 'someMethod' in x.someMethod();. For suggestions of this kind, the element
|
| + * attribute is defined and the completion field is the element's identifier.
|
| + */
|
| + static const CompletionSuggestionKind INVOCATION =
|
| + const CompletionSuggestionKind._("INVOCATION");
|
| +
|
| + /**
|
| + * A keyword is being suggested. For suggestions of this kind, the completion
|
| + * is the keyword.
|
| + */
|
| + static const CompletionSuggestionKind KEYWORD =
|
| + const CompletionSuggestionKind._("KEYWORD");
|
| +
|
| + /**
|
| + * A named argument for the current call site is being suggested. For
|
| + * suggestions of this kind, the completion is the named argument identifier
|
| + * including a trailing ':' and a space.
|
| + */
|
| + static const CompletionSuggestionKind NAMED_ARGUMENT =
|
| + const CompletionSuggestionKind._("NAMED_ARGUMENT");
|
| +
|
| + static const CompletionSuggestionKind OPTIONAL_ARGUMENT =
|
| + const CompletionSuggestionKind._("OPTIONAL_ARGUMENT");
|
| +
|
| + static const CompletionSuggestionKind PARAMETER =
|
| + const CompletionSuggestionKind._("PARAMETER");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<CompletionSuggestionKind> VALUES =
|
| + const <CompletionSuggestionKind>[
|
| + ARGUMENT_LIST,
|
| + IMPORT,
|
| + IDENTIFIER,
|
| + INVOCATION,
|
| + KEYWORD,
|
| + NAMED_ARGUMENT,
|
| + OPTIONAL_ARGUMENT,
|
| + PARAMETER
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const CompletionSuggestionKind._(this.name);
|
| +
|
| + factory CompletionSuggestionKind(String name) {
|
| + switch (name) {
|
| + case "ARGUMENT_LIST":
|
| + return ARGUMENT_LIST;
|
| + case "IMPORT":
|
| + return IMPORT;
|
| + case "IDENTIFIER":
|
| + return IDENTIFIER;
|
| + case "INVOCATION":
|
| + return INVOCATION;
|
| + case "KEYWORD":
|
| + return KEYWORD;
|
| + case "NAMED_ARGUMENT":
|
| + return NAMED_ARGUMENT;
|
| + case "OPTIONAL_ARGUMENT":
|
| + return OPTIONAL_ARGUMENT;
|
| + case "PARAMETER":
|
| + return PARAMETER;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory CompletionSuggestionKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new CompletionSuggestionKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "CompletionSuggestionKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "CompletionSuggestionKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * Element
|
| + *
|
| + * {
|
| + * "kind": ElementKind
|
| + * "name": String
|
| + * "location": optional Location
|
| + * "flags": int
|
| + * "parameters": optional String
|
| + * "returnType": optional String
|
| + * "typeParameters": optional String
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class Element implements HasToJson {
|
| + static const int FLAG_ABSTRACT = 0x01;
|
| + static const int FLAG_CONST = 0x02;
|
| + static const int FLAG_FINAL = 0x04;
|
| + static const int FLAG_STATIC = 0x08;
|
| + static const int FLAG_PRIVATE = 0x10;
|
| + static const int FLAG_DEPRECATED = 0x20;
|
| +
|
| + static int makeFlags(
|
| + {isAbstract: false,
|
| + isConst: false,
|
| + isFinal: false,
|
| + isStatic: false,
|
| + isPrivate: false,
|
| + isDeprecated: false}) {
|
| + int flags = 0;
|
| + if (isAbstract) flags |= FLAG_ABSTRACT;
|
| + if (isConst) flags |= FLAG_CONST;
|
| + if (isFinal) flags |= FLAG_FINAL;
|
| + if (isStatic) flags |= FLAG_STATIC;
|
| + if (isPrivate) flags |= FLAG_PRIVATE;
|
| + if (isDeprecated) flags |= FLAG_DEPRECATED;
|
| + return flags;
|
| + }
|
| +
|
| + ElementKind _kind;
|
| +
|
| + String _name;
|
| +
|
| + Location _location;
|
| +
|
| + int _flags;
|
| +
|
| + String _parameters;
|
| +
|
| + String _returnType;
|
| +
|
| + String _typeParameters;
|
| +
|
| + /**
|
| + * The kind of the element.
|
| + */
|
| + ElementKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of the element.
|
| + */
|
| + void set kind(ElementKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + /**
|
| + * The name of the element. This is typically used as the label in the
|
| + * outline.
|
| + */
|
| + String get name => _name;
|
| +
|
| + /**
|
| + * The name of the element. This is typically used as the label in the
|
| + * outline.
|
| + */
|
| + void set name(String value) {
|
| + assert(value != null);
|
| + this._name = value;
|
| + }
|
| +
|
| + /**
|
| + * The location of the name in the declaration of the element.
|
| + */
|
| + Location get location => _location;
|
| +
|
| + /**
|
| + * The location of the name in the declaration of the element.
|
| + */
|
| + void set location(Location value) {
|
| + this._location = value;
|
| + }
|
| +
|
| + /**
|
| + * A bit-map containing the following flags:
|
| + *
|
| + * - 0x01 - set if the element is explicitly or implicitly abstract
|
| + * - 0x02 - set if the element was declared to be ‘const’
|
| + * - 0x04 - set if the element was declared to be ‘final’
|
| + * - 0x08 - set if the element is a static member of a class or is a
|
| + * top-level function or field
|
| + * - 0x10 - set if the element is private
|
| + * - 0x20 - set if the element is deprecated
|
| + */
|
| + int get flags => _flags;
|
| +
|
| + /**
|
| + * A bit-map containing the following flags:
|
| + *
|
| + * - 0x01 - set if the element is explicitly or implicitly abstract
|
| + * - 0x02 - set if the element was declared to be ‘const’
|
| + * - 0x04 - set if the element was declared to be ‘final’
|
| + * - 0x08 - set if the element is a static member of a class or is a
|
| + * top-level function or field
|
| + * - 0x10 - set if the element is private
|
| + * - 0x20 - set if the element is deprecated
|
| + */
|
| + void set flags(int value) {
|
| + assert(value != null);
|
| + this._flags = value;
|
| + }
|
| +
|
| + /**
|
| + * The parameter list for the element. If the element is not a method or
|
| + * function this field will not be defined. If the element doesn't have
|
| + * parameters (e.g. getter), this field will not be defined. If the element
|
| + * has zero parameters, this field will have a value of "()".
|
| + */
|
| + String get parameters => _parameters;
|
| +
|
| + /**
|
| + * The parameter list for the element. If the element is not a method or
|
| + * function this field will not be defined. If the element doesn't have
|
| + * parameters (e.g. getter), this field will not be defined. If the element
|
| + * has zero parameters, this field will have a value of "()".
|
| + */
|
| + void set parameters(String value) {
|
| + this._parameters = value;
|
| + }
|
| +
|
| + /**
|
| + * The return type of the element. If the element is not a method or function
|
| + * this field will not be defined. If the element does not have a declared
|
| + * return type, this field will contain an empty string.
|
| + */
|
| + String get returnType => _returnType;
|
| +
|
| + /**
|
| + * The return type of the element. If the element is not a method or function
|
| + * this field will not be defined. If the element does not have a declared
|
| + * return type, this field will contain an empty string.
|
| + */
|
| + void set returnType(String value) {
|
| + this._returnType = value;
|
| + }
|
| +
|
| + /**
|
| + * The type parameter list for the element. If the element doesn't have type
|
| + * parameters, this field will not be defined.
|
| + */
|
| + String get typeParameters => _typeParameters;
|
| +
|
| + /**
|
| + * The type parameter list for the element. If the element doesn't have type
|
| + * parameters, this field will not be defined.
|
| + */
|
| + void set typeParameters(String value) {
|
| + this._typeParameters = value;
|
| + }
|
| +
|
| + Element(ElementKind kind, String name, int flags,
|
| + {Location location,
|
| + String parameters,
|
| + String returnType,
|
| + String typeParameters}) {
|
| + this.kind = kind;
|
| + this.name = name;
|
| + this.location = location;
|
| + this.flags = flags;
|
| + this.parameters = parameters;
|
| + this.returnType = returnType;
|
| + this.typeParameters = typeParameters;
|
| + }
|
| +
|
| + factory Element.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + ElementKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new ElementKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + String name;
|
| + if (json.containsKey("name")) {
|
| + name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "name");
|
| + }
|
| + Location location;
|
| + if (json.containsKey("location")) {
|
| + location = new Location.fromJson(
|
| + jsonDecoder, jsonPath + ".location", json["location"]);
|
| + }
|
| + int flags;
|
| + if (json.containsKey("flags")) {
|
| + flags = jsonDecoder.decodeInt(jsonPath + ".flags", json["flags"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "flags");
|
| + }
|
| + String parameters;
|
| + if (json.containsKey("parameters")) {
|
| + parameters = jsonDecoder.decodeString(
|
| + jsonPath + ".parameters", json["parameters"]);
|
| + }
|
| + String returnType;
|
| + if (json.containsKey("returnType")) {
|
| + returnType = jsonDecoder.decodeString(
|
| + jsonPath + ".returnType", json["returnType"]);
|
| + }
|
| + String typeParameters;
|
| + if (json.containsKey("typeParameters")) {
|
| + typeParameters = jsonDecoder.decodeString(
|
| + jsonPath + ".typeParameters", json["typeParameters"]);
|
| + }
|
| + return new Element(kind, name, flags,
|
| + location: location,
|
| + parameters: parameters,
|
| + returnType: returnType,
|
| + typeParameters: typeParameters);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "Element", json);
|
| + }
|
| + }
|
| +
|
| + bool get isAbstract => (flags & FLAG_ABSTRACT) != 0;
|
| + bool get isConst => (flags & FLAG_CONST) != 0;
|
| + bool get isFinal => (flags & FLAG_FINAL) != 0;
|
| + bool get isStatic => (flags & FLAG_STATIC) != 0;
|
| + bool get isPrivate => (flags & FLAG_PRIVATE) != 0;
|
| + bool get isDeprecated => (flags & FLAG_DEPRECATED) != 0;
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["kind"] = kind.toJson();
|
| + result["name"] = name;
|
| + if (location != null) {
|
| + result["location"] = location.toJson();
|
| + }
|
| + result["flags"] = flags;
|
| + if (parameters != null) {
|
| + result["parameters"] = parameters;
|
| + }
|
| + if (returnType != null) {
|
| + result["returnType"] = returnType;
|
| + }
|
| + if (typeParameters != null) {
|
| + result["typeParameters"] = typeParameters;
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is Element) {
|
| + return kind == other.kind &&
|
| + name == other.name &&
|
| + location == other.location &&
|
| + flags == other.flags &&
|
| + parameters == other.parameters &&
|
| + returnType == other.returnType &&
|
| + typeParameters == other.typeParameters;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, flags.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, returnType.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, typeParameters.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * ElementKind
|
| + *
|
| + * enum {
|
| + * CLASS
|
| + * CLASS_TYPE_ALIAS
|
| + * COMPILATION_UNIT
|
| + * CONSTRUCTOR
|
| + * ENUM
|
| + * ENUM_CONSTANT
|
| + * FIELD
|
| + * FILE
|
| + * FUNCTION
|
| + * FUNCTION_TYPE_ALIAS
|
| + * GETTER
|
| + * LABEL
|
| + * LIBRARY
|
| + * LOCAL_VARIABLE
|
| + * METHOD
|
| + * PARAMETER
|
| + * PREFIX
|
| + * SETTER
|
| + * TOP_LEVEL_VARIABLE
|
| + * TYPE_PARAMETER
|
| + * UNIT_TEST_GROUP
|
| + * UNIT_TEST_TEST
|
| + * UNKNOWN
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class ElementKind implements Enum {
|
| + static const ElementKind CLASS = const ElementKind._("CLASS");
|
| +
|
| + static const ElementKind CLASS_TYPE_ALIAS =
|
| + const ElementKind._("CLASS_TYPE_ALIAS");
|
| +
|
| + static const ElementKind COMPILATION_UNIT =
|
| + const ElementKind._("COMPILATION_UNIT");
|
| +
|
| + static const ElementKind CONSTRUCTOR = const ElementKind._("CONSTRUCTOR");
|
| +
|
| + static const ElementKind ENUM = const ElementKind._("ENUM");
|
| +
|
| + static const ElementKind ENUM_CONSTANT = const ElementKind._("ENUM_CONSTANT");
|
| +
|
| + static const ElementKind FIELD = const ElementKind._("FIELD");
|
| +
|
| + static const ElementKind FILE = const ElementKind._("FILE");
|
| +
|
| + static const ElementKind FUNCTION = const ElementKind._("FUNCTION");
|
| +
|
| + static const ElementKind FUNCTION_TYPE_ALIAS =
|
| + const ElementKind._("FUNCTION_TYPE_ALIAS");
|
| +
|
| + static const ElementKind GETTER = const ElementKind._("GETTER");
|
| +
|
| + static const ElementKind LABEL = const ElementKind._("LABEL");
|
| +
|
| + static const ElementKind LIBRARY = const ElementKind._("LIBRARY");
|
| +
|
| + static const ElementKind LOCAL_VARIABLE =
|
| + const ElementKind._("LOCAL_VARIABLE");
|
| +
|
| + static const ElementKind METHOD = const ElementKind._("METHOD");
|
| +
|
| + static const ElementKind PARAMETER = const ElementKind._("PARAMETER");
|
| +
|
| + static const ElementKind PREFIX = const ElementKind._("PREFIX");
|
| +
|
| + static const ElementKind SETTER = const ElementKind._("SETTER");
|
| +
|
| + static const ElementKind TOP_LEVEL_VARIABLE =
|
| + const ElementKind._("TOP_LEVEL_VARIABLE");
|
| +
|
| + static const ElementKind TYPE_PARAMETER =
|
| + const ElementKind._("TYPE_PARAMETER");
|
| +
|
| + /**
|
| + * Deprecated: support for tests was removed.
|
| + */
|
| + static const ElementKind UNIT_TEST_GROUP =
|
| + const ElementKind._("UNIT_TEST_GROUP");
|
| +
|
| + /**
|
| + * Deprecated: support for tests was removed.
|
| + */
|
| + static const ElementKind UNIT_TEST_TEST =
|
| + const ElementKind._("UNIT_TEST_TEST");
|
| +
|
| + static const ElementKind UNKNOWN = const ElementKind._("UNKNOWN");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<ElementKind> VALUES = const <ElementKind>[
|
| + CLASS,
|
| + CLASS_TYPE_ALIAS,
|
| + COMPILATION_UNIT,
|
| + CONSTRUCTOR,
|
| + ENUM,
|
| + ENUM_CONSTANT,
|
| + FIELD,
|
| + FILE,
|
| + FUNCTION,
|
| + FUNCTION_TYPE_ALIAS,
|
| + GETTER,
|
| + LABEL,
|
| + LIBRARY,
|
| + LOCAL_VARIABLE,
|
| + METHOD,
|
| + PARAMETER,
|
| + PREFIX,
|
| + SETTER,
|
| + TOP_LEVEL_VARIABLE,
|
| + TYPE_PARAMETER,
|
| + UNIT_TEST_GROUP,
|
| + UNIT_TEST_TEST,
|
| + UNKNOWN
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const ElementKind._(this.name);
|
| +
|
| + factory ElementKind(String name) {
|
| + switch (name) {
|
| + case "CLASS":
|
| + return CLASS;
|
| + case "CLASS_TYPE_ALIAS":
|
| + return CLASS_TYPE_ALIAS;
|
| + case "COMPILATION_UNIT":
|
| + return COMPILATION_UNIT;
|
| + case "CONSTRUCTOR":
|
| + return CONSTRUCTOR;
|
| + case "ENUM":
|
| + return ENUM;
|
| + case "ENUM_CONSTANT":
|
| + return ENUM_CONSTANT;
|
| + case "FIELD":
|
| + return FIELD;
|
| + case "FILE":
|
| + return FILE;
|
| + case "FUNCTION":
|
| + return FUNCTION;
|
| + case "FUNCTION_TYPE_ALIAS":
|
| + return FUNCTION_TYPE_ALIAS;
|
| + case "GETTER":
|
| + return GETTER;
|
| + case "LABEL":
|
| + return LABEL;
|
| + case "LIBRARY":
|
| + return LIBRARY;
|
| + case "LOCAL_VARIABLE":
|
| + return LOCAL_VARIABLE;
|
| + case "METHOD":
|
| + return METHOD;
|
| + case "PARAMETER":
|
| + return PARAMETER;
|
| + case "PREFIX":
|
| + return PREFIX;
|
| + case "SETTER":
|
| + return SETTER;
|
| + case "TOP_LEVEL_VARIABLE":
|
| + return TOP_LEVEL_VARIABLE;
|
| + case "TYPE_PARAMETER":
|
| + return TYPE_PARAMETER;
|
| + case "UNIT_TEST_GROUP":
|
| + return UNIT_TEST_GROUP;
|
| + case "UNIT_TEST_TEST":
|
| + return UNIT_TEST_TEST;
|
| + case "UNKNOWN":
|
| + return UNKNOWN;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory ElementKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new ElementKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "ElementKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "ElementKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * FoldingKind
|
| + *
|
| + * enum {
|
| + * COMMENT
|
| + * CLASS_MEMBER
|
| + * DIRECTIVES
|
| + * DOCUMENTATION_COMMENT
|
| + * TOP_LEVEL_DECLARATION
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class FoldingKind implements Enum {
|
| + static const FoldingKind COMMENT = const FoldingKind._("COMMENT");
|
| +
|
| + static const FoldingKind CLASS_MEMBER = const FoldingKind._("CLASS_MEMBER");
|
| +
|
| + static const FoldingKind DIRECTIVES = const FoldingKind._("DIRECTIVES");
|
| +
|
| + static const FoldingKind DOCUMENTATION_COMMENT =
|
| + const FoldingKind._("DOCUMENTATION_COMMENT");
|
| +
|
| + static const FoldingKind TOP_LEVEL_DECLARATION =
|
| + const FoldingKind._("TOP_LEVEL_DECLARATION");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<FoldingKind> VALUES = const <FoldingKind>[
|
| + COMMENT,
|
| + CLASS_MEMBER,
|
| + DIRECTIVES,
|
| + DOCUMENTATION_COMMENT,
|
| + TOP_LEVEL_DECLARATION
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const FoldingKind._(this.name);
|
| +
|
| + factory FoldingKind(String name) {
|
| + switch (name) {
|
| + case "COMMENT":
|
| + return COMMENT;
|
| + case "CLASS_MEMBER":
|
| + return CLASS_MEMBER;
|
| + case "DIRECTIVES":
|
| + return DIRECTIVES;
|
| + case "DOCUMENTATION_COMMENT":
|
| + return DOCUMENTATION_COMMENT;
|
| + case "TOP_LEVEL_DECLARATION":
|
| + return TOP_LEVEL_DECLARATION;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory FoldingKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new FoldingKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "FoldingKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "FoldingKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * FoldingRegion
|
| + *
|
| + * {
|
| + * "kind": FoldingKind
|
| + * "offset": int
|
| + * "length": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class FoldingRegion implements HasToJson {
|
| + FoldingKind _kind;
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + /**
|
| + * The kind of the region.
|
| + */
|
| + FoldingKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of the region.
|
| + */
|
| + void set kind(FoldingKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the region to be folded.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the region to be folded.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the region to be folded.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the region to be folded.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + FoldingRegion(FoldingKind kind, int offset, int length) {
|
| + this.kind = kind;
|
| + this.offset = offset;
|
| + this.length = length;
|
| + }
|
| +
|
| + factory FoldingRegion.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + FoldingKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new FoldingKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + return new FoldingRegion(kind, offset, length);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "FoldingRegion", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["kind"] = kind.toJson();
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is FoldingRegion) {
|
| + return kind == other.kind &&
|
| + offset == other.offset &&
|
| + length == other.length;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * HighlightRegion
|
| + *
|
| + * {
|
| + * "type": HighlightRegionType
|
| + * "offset": int
|
| + * "length": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class HighlightRegion implements HasToJson {
|
| + HighlightRegionType _type;
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + /**
|
| + * The type of highlight associated with the region.
|
| + */
|
| + HighlightRegionType get type => _type;
|
| +
|
| + /**
|
| + * The type of highlight associated with the region.
|
| + */
|
| + void set type(HighlightRegionType value) {
|
| + assert(value != null);
|
| + this._type = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the region to be highlighted.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the region to be highlighted.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the region to be highlighted.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the region to be highlighted.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + HighlightRegion(HighlightRegionType type, int offset, int length) {
|
| + this.type = type;
|
| + this.offset = offset;
|
| + this.length = length;
|
| + }
|
| +
|
| + factory HighlightRegion.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + HighlightRegionType type;
|
| + if (json.containsKey("type")) {
|
| + type = new HighlightRegionType.fromJson(
|
| + jsonDecoder, jsonPath + ".type", json["type"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "type");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + return new HighlightRegion(type, offset, length);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "HighlightRegion", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["type"] = type.toJson();
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is HighlightRegion) {
|
| + return type == other.type &&
|
| + offset == other.offset &&
|
| + length == other.length;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * HighlightRegionType
|
| + *
|
| + * enum {
|
| + * ANNOTATION
|
| + * BUILT_IN
|
| + * CLASS
|
| + * COMMENT_BLOCK
|
| + * COMMENT_DOCUMENTATION
|
| + * COMMENT_END_OF_LINE
|
| + * CONSTRUCTOR
|
| + * DIRECTIVE
|
| + * DYNAMIC_TYPE
|
| + * DYNAMIC_LOCAL_VARIABLE_DECLARATION
|
| + * DYNAMIC_LOCAL_VARIABLE_REFERENCE
|
| + * DYNAMIC_PARAMETER_DECLARATION
|
| + * DYNAMIC_PARAMETER_REFERENCE
|
| + * ENUM
|
| + * ENUM_CONSTANT
|
| + * FIELD
|
| + * FIELD_STATIC
|
| + * FUNCTION
|
| + * FUNCTION_DECLARATION
|
| + * FUNCTION_TYPE_ALIAS
|
| + * GETTER_DECLARATION
|
| + * IDENTIFIER_DEFAULT
|
| + * IMPORT_PREFIX
|
| + * INSTANCE_FIELD_DECLARATION
|
| + * INSTANCE_FIELD_REFERENCE
|
| + * INSTANCE_GETTER_DECLARATION
|
| + * INSTANCE_GETTER_REFERENCE
|
| + * INSTANCE_METHOD_DECLARATION
|
| + * INSTANCE_METHOD_REFERENCE
|
| + * INSTANCE_SETTER_DECLARATION
|
| + * INSTANCE_SETTER_REFERENCE
|
| + * INVALID_STRING_ESCAPE
|
| + * KEYWORD
|
| + * LABEL
|
| + * LIBRARY_NAME
|
| + * LITERAL_BOOLEAN
|
| + * LITERAL_DOUBLE
|
| + * LITERAL_INTEGER
|
| + * LITERAL_LIST
|
| + * LITERAL_MAP
|
| + * LITERAL_STRING
|
| + * LOCAL_FUNCTION_DECLARATION
|
| + * LOCAL_FUNCTION_REFERENCE
|
| + * LOCAL_VARIABLE
|
| + * LOCAL_VARIABLE_DECLARATION
|
| + * LOCAL_VARIABLE_REFERENCE
|
| + * METHOD
|
| + * METHOD_DECLARATION
|
| + * METHOD_DECLARATION_STATIC
|
| + * METHOD_STATIC
|
| + * PARAMETER
|
| + * SETTER_DECLARATION
|
| + * TOP_LEVEL_VARIABLE
|
| + * PARAMETER_DECLARATION
|
| + * PARAMETER_REFERENCE
|
| + * STATIC_FIELD_DECLARATION
|
| + * STATIC_GETTER_DECLARATION
|
| + * STATIC_GETTER_REFERENCE
|
| + * STATIC_METHOD_DECLARATION
|
| + * STATIC_METHOD_REFERENCE
|
| + * STATIC_SETTER_DECLARATION
|
| + * STATIC_SETTER_REFERENCE
|
| + * TOP_LEVEL_FUNCTION_DECLARATION
|
| + * TOP_LEVEL_FUNCTION_REFERENCE
|
| + * TOP_LEVEL_GETTER_DECLARATION
|
| + * TOP_LEVEL_GETTER_REFERENCE
|
| + * TOP_LEVEL_SETTER_DECLARATION
|
| + * TOP_LEVEL_SETTER_REFERENCE
|
| + * TOP_LEVEL_VARIABLE_DECLARATION
|
| + * TYPE_NAME_DYNAMIC
|
| + * TYPE_PARAMETER
|
| + * UNRESOLVED_INSTANCE_MEMBER_REFERENCE
|
| + * VALID_STRING_ESCAPE
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class HighlightRegionType implements Enum {
|
| + static const HighlightRegionType ANNOTATION =
|
| + const HighlightRegionType._("ANNOTATION");
|
| +
|
| + static const HighlightRegionType BUILT_IN =
|
| + const HighlightRegionType._("BUILT_IN");
|
| +
|
| + static const HighlightRegionType CLASS = const HighlightRegionType._("CLASS");
|
| +
|
| + static const HighlightRegionType COMMENT_BLOCK =
|
| + const HighlightRegionType._("COMMENT_BLOCK");
|
| +
|
| + static const HighlightRegionType COMMENT_DOCUMENTATION =
|
| + const HighlightRegionType._("COMMENT_DOCUMENTATION");
|
| +
|
| + static const HighlightRegionType COMMENT_END_OF_LINE =
|
| + const HighlightRegionType._("COMMENT_END_OF_LINE");
|
| +
|
| + static const HighlightRegionType CONSTRUCTOR =
|
| + const HighlightRegionType._("CONSTRUCTOR");
|
| +
|
| + static const HighlightRegionType DIRECTIVE =
|
| + const HighlightRegionType._("DIRECTIVE");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType DYNAMIC_TYPE =
|
| + const HighlightRegionType._("DYNAMIC_TYPE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_DECLARATION =
|
| + const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType DYNAMIC_LOCAL_VARIABLE_REFERENCE =
|
| + const HighlightRegionType._("DYNAMIC_LOCAL_VARIABLE_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType DYNAMIC_PARAMETER_DECLARATION =
|
| + const HighlightRegionType._("DYNAMIC_PARAMETER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType DYNAMIC_PARAMETER_REFERENCE =
|
| + const HighlightRegionType._("DYNAMIC_PARAMETER_REFERENCE");
|
| +
|
| + static const HighlightRegionType ENUM = const HighlightRegionType._("ENUM");
|
| +
|
| + static const HighlightRegionType ENUM_CONSTANT =
|
| + const HighlightRegionType._("ENUM_CONSTANT");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType FIELD = const HighlightRegionType._("FIELD");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType FIELD_STATIC =
|
| + const HighlightRegionType._("FIELD_STATIC");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType FUNCTION =
|
| + const HighlightRegionType._("FUNCTION");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType FUNCTION_DECLARATION =
|
| + const HighlightRegionType._("FUNCTION_DECLARATION");
|
| +
|
| + static const HighlightRegionType FUNCTION_TYPE_ALIAS =
|
| + const HighlightRegionType._("FUNCTION_TYPE_ALIAS");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType GETTER_DECLARATION =
|
| + const HighlightRegionType._("GETTER_DECLARATION");
|
| +
|
| + static const HighlightRegionType IDENTIFIER_DEFAULT =
|
| + const HighlightRegionType._("IDENTIFIER_DEFAULT");
|
| +
|
| + static const HighlightRegionType IMPORT_PREFIX =
|
| + const HighlightRegionType._("IMPORT_PREFIX");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_FIELD_DECLARATION =
|
| + const HighlightRegionType._("INSTANCE_FIELD_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_FIELD_REFERENCE =
|
| + const HighlightRegionType._("INSTANCE_FIELD_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_GETTER_DECLARATION =
|
| + const HighlightRegionType._("INSTANCE_GETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_GETTER_REFERENCE =
|
| + const HighlightRegionType._("INSTANCE_GETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_METHOD_DECLARATION =
|
| + const HighlightRegionType._("INSTANCE_METHOD_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_METHOD_REFERENCE =
|
| + const HighlightRegionType._("INSTANCE_METHOD_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_SETTER_DECLARATION =
|
| + const HighlightRegionType._("INSTANCE_SETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INSTANCE_SETTER_REFERENCE =
|
| + const HighlightRegionType._("INSTANCE_SETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType INVALID_STRING_ESCAPE =
|
| + const HighlightRegionType._("INVALID_STRING_ESCAPE");
|
| +
|
| + static const HighlightRegionType KEYWORD =
|
| + const HighlightRegionType._("KEYWORD");
|
| +
|
| + static const HighlightRegionType LABEL = const HighlightRegionType._("LABEL");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType LIBRARY_NAME =
|
| + const HighlightRegionType._("LIBRARY_NAME");
|
| +
|
| + static const HighlightRegionType LITERAL_BOOLEAN =
|
| + const HighlightRegionType._("LITERAL_BOOLEAN");
|
| +
|
| + static const HighlightRegionType LITERAL_DOUBLE =
|
| + const HighlightRegionType._("LITERAL_DOUBLE");
|
| +
|
| + static const HighlightRegionType LITERAL_INTEGER =
|
| + const HighlightRegionType._("LITERAL_INTEGER");
|
| +
|
| + static const HighlightRegionType LITERAL_LIST =
|
| + const HighlightRegionType._("LITERAL_LIST");
|
| +
|
| + static const HighlightRegionType LITERAL_MAP =
|
| + const HighlightRegionType._("LITERAL_MAP");
|
| +
|
| + static const HighlightRegionType LITERAL_STRING =
|
| + const HighlightRegionType._("LITERAL_STRING");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType LOCAL_FUNCTION_DECLARATION =
|
| + const HighlightRegionType._("LOCAL_FUNCTION_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType LOCAL_FUNCTION_REFERENCE =
|
| + const HighlightRegionType._("LOCAL_FUNCTION_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType LOCAL_VARIABLE =
|
| + const HighlightRegionType._("LOCAL_VARIABLE");
|
| +
|
| + static const HighlightRegionType LOCAL_VARIABLE_DECLARATION =
|
| + const HighlightRegionType._("LOCAL_VARIABLE_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType LOCAL_VARIABLE_REFERENCE =
|
| + const HighlightRegionType._("LOCAL_VARIABLE_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType METHOD =
|
| + const HighlightRegionType._("METHOD");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType METHOD_DECLARATION =
|
| + const HighlightRegionType._("METHOD_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType METHOD_DECLARATION_STATIC =
|
| + const HighlightRegionType._("METHOD_DECLARATION_STATIC");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType METHOD_STATIC =
|
| + const HighlightRegionType._("METHOD_STATIC");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType PARAMETER =
|
| + const HighlightRegionType._("PARAMETER");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType SETTER_DECLARATION =
|
| + const HighlightRegionType._("SETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 1 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_VARIABLE =
|
| + const HighlightRegionType._("TOP_LEVEL_VARIABLE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType PARAMETER_DECLARATION =
|
| + const HighlightRegionType._("PARAMETER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType PARAMETER_REFERENCE =
|
| + const HighlightRegionType._("PARAMETER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_FIELD_DECLARATION =
|
| + const HighlightRegionType._("STATIC_FIELD_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_GETTER_DECLARATION =
|
| + const HighlightRegionType._("STATIC_GETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_GETTER_REFERENCE =
|
| + const HighlightRegionType._("STATIC_GETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_METHOD_DECLARATION =
|
| + const HighlightRegionType._("STATIC_METHOD_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_METHOD_REFERENCE =
|
| + const HighlightRegionType._("STATIC_METHOD_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_SETTER_DECLARATION =
|
| + const HighlightRegionType._("STATIC_SETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType STATIC_SETTER_REFERENCE =
|
| + const HighlightRegionType._("STATIC_SETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_FUNCTION_DECLARATION =
|
| + const HighlightRegionType._("TOP_LEVEL_FUNCTION_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_FUNCTION_REFERENCE =
|
| + const HighlightRegionType._("TOP_LEVEL_FUNCTION_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_GETTER_DECLARATION =
|
| + const HighlightRegionType._("TOP_LEVEL_GETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_GETTER_REFERENCE =
|
| + const HighlightRegionType._("TOP_LEVEL_GETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_SETTER_DECLARATION =
|
| + const HighlightRegionType._("TOP_LEVEL_SETTER_DECLARATION");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_SETTER_REFERENCE =
|
| + const HighlightRegionType._("TOP_LEVEL_SETTER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType TOP_LEVEL_VARIABLE_DECLARATION =
|
| + const HighlightRegionType._("TOP_LEVEL_VARIABLE_DECLARATION");
|
| +
|
| + static const HighlightRegionType TYPE_NAME_DYNAMIC =
|
| + const HighlightRegionType._("TYPE_NAME_DYNAMIC");
|
| +
|
| + static const HighlightRegionType TYPE_PARAMETER =
|
| + const HighlightRegionType._("TYPE_PARAMETER");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType UNRESOLVED_INSTANCE_MEMBER_REFERENCE =
|
| + const HighlightRegionType._("UNRESOLVED_INSTANCE_MEMBER_REFERENCE");
|
| +
|
| + /**
|
| + * Only for version 2 of highlight.
|
| + */
|
| + static const HighlightRegionType VALID_STRING_ESCAPE =
|
| + const HighlightRegionType._("VALID_STRING_ESCAPE");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<HighlightRegionType> VALUES = const <HighlightRegionType>[
|
| + ANNOTATION,
|
| + BUILT_IN,
|
| + CLASS,
|
| + COMMENT_BLOCK,
|
| + COMMENT_DOCUMENTATION,
|
| + COMMENT_END_OF_LINE,
|
| + CONSTRUCTOR,
|
| + DIRECTIVE,
|
| + DYNAMIC_TYPE,
|
| + DYNAMIC_LOCAL_VARIABLE_DECLARATION,
|
| + DYNAMIC_LOCAL_VARIABLE_REFERENCE,
|
| + DYNAMIC_PARAMETER_DECLARATION,
|
| + DYNAMIC_PARAMETER_REFERENCE,
|
| + ENUM,
|
| + ENUM_CONSTANT,
|
| + FIELD,
|
| + FIELD_STATIC,
|
| + FUNCTION,
|
| + FUNCTION_DECLARATION,
|
| + FUNCTION_TYPE_ALIAS,
|
| + GETTER_DECLARATION,
|
| + IDENTIFIER_DEFAULT,
|
| + IMPORT_PREFIX,
|
| + INSTANCE_FIELD_DECLARATION,
|
| + INSTANCE_FIELD_REFERENCE,
|
| + INSTANCE_GETTER_DECLARATION,
|
| + INSTANCE_GETTER_REFERENCE,
|
| + INSTANCE_METHOD_DECLARATION,
|
| + INSTANCE_METHOD_REFERENCE,
|
| + INSTANCE_SETTER_DECLARATION,
|
| + INSTANCE_SETTER_REFERENCE,
|
| + INVALID_STRING_ESCAPE,
|
| + KEYWORD,
|
| + LABEL,
|
| + LIBRARY_NAME,
|
| + LITERAL_BOOLEAN,
|
| + LITERAL_DOUBLE,
|
| + LITERAL_INTEGER,
|
| + LITERAL_LIST,
|
| + LITERAL_MAP,
|
| + LITERAL_STRING,
|
| + LOCAL_FUNCTION_DECLARATION,
|
| + LOCAL_FUNCTION_REFERENCE,
|
| + LOCAL_VARIABLE,
|
| + LOCAL_VARIABLE_DECLARATION,
|
| + LOCAL_VARIABLE_REFERENCE,
|
| + METHOD,
|
| + METHOD_DECLARATION,
|
| + METHOD_DECLARATION_STATIC,
|
| + METHOD_STATIC,
|
| + PARAMETER,
|
| + SETTER_DECLARATION,
|
| + TOP_LEVEL_VARIABLE,
|
| + PARAMETER_DECLARATION,
|
| + PARAMETER_REFERENCE,
|
| + STATIC_FIELD_DECLARATION,
|
| + STATIC_GETTER_DECLARATION,
|
| + STATIC_GETTER_REFERENCE,
|
| + STATIC_METHOD_DECLARATION,
|
| + STATIC_METHOD_REFERENCE,
|
| + STATIC_SETTER_DECLARATION,
|
| + STATIC_SETTER_REFERENCE,
|
| + TOP_LEVEL_FUNCTION_DECLARATION,
|
| + TOP_LEVEL_FUNCTION_REFERENCE,
|
| + TOP_LEVEL_GETTER_DECLARATION,
|
| + TOP_LEVEL_GETTER_REFERENCE,
|
| + TOP_LEVEL_SETTER_DECLARATION,
|
| + TOP_LEVEL_SETTER_REFERENCE,
|
| + TOP_LEVEL_VARIABLE_DECLARATION,
|
| + TYPE_NAME_DYNAMIC,
|
| + TYPE_PARAMETER,
|
| + UNRESOLVED_INSTANCE_MEMBER_REFERENCE,
|
| + VALID_STRING_ESCAPE
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const HighlightRegionType._(this.name);
|
| +
|
| + factory HighlightRegionType(String name) {
|
| + switch (name) {
|
| + case "ANNOTATION":
|
| + return ANNOTATION;
|
| + case "BUILT_IN":
|
| + return BUILT_IN;
|
| + case "CLASS":
|
| + return CLASS;
|
| + case "COMMENT_BLOCK":
|
| + return COMMENT_BLOCK;
|
| + case "COMMENT_DOCUMENTATION":
|
| + return COMMENT_DOCUMENTATION;
|
| + case "COMMENT_END_OF_LINE":
|
| + return COMMENT_END_OF_LINE;
|
| + case "CONSTRUCTOR":
|
| + return CONSTRUCTOR;
|
| + case "DIRECTIVE":
|
| + return DIRECTIVE;
|
| + case "DYNAMIC_TYPE":
|
| + return DYNAMIC_TYPE;
|
| + case "DYNAMIC_LOCAL_VARIABLE_DECLARATION":
|
| + return DYNAMIC_LOCAL_VARIABLE_DECLARATION;
|
| + case "DYNAMIC_LOCAL_VARIABLE_REFERENCE":
|
| + return DYNAMIC_LOCAL_VARIABLE_REFERENCE;
|
| + case "DYNAMIC_PARAMETER_DECLARATION":
|
| + return DYNAMIC_PARAMETER_DECLARATION;
|
| + case "DYNAMIC_PARAMETER_REFERENCE":
|
| + return DYNAMIC_PARAMETER_REFERENCE;
|
| + case "ENUM":
|
| + return ENUM;
|
| + case "ENUM_CONSTANT":
|
| + return ENUM_CONSTANT;
|
| + case "FIELD":
|
| + return FIELD;
|
| + case "FIELD_STATIC":
|
| + return FIELD_STATIC;
|
| + case "FUNCTION":
|
| + return FUNCTION;
|
| + case "FUNCTION_DECLARATION":
|
| + return FUNCTION_DECLARATION;
|
| + case "FUNCTION_TYPE_ALIAS":
|
| + return FUNCTION_TYPE_ALIAS;
|
| + case "GETTER_DECLARATION":
|
| + return GETTER_DECLARATION;
|
| + case "IDENTIFIER_DEFAULT":
|
| + return IDENTIFIER_DEFAULT;
|
| + case "IMPORT_PREFIX":
|
| + return IMPORT_PREFIX;
|
| + case "INSTANCE_FIELD_DECLARATION":
|
| + return INSTANCE_FIELD_DECLARATION;
|
| + case "INSTANCE_FIELD_REFERENCE":
|
| + return INSTANCE_FIELD_REFERENCE;
|
| + case "INSTANCE_GETTER_DECLARATION":
|
| + return INSTANCE_GETTER_DECLARATION;
|
| + case "INSTANCE_GETTER_REFERENCE":
|
| + return INSTANCE_GETTER_REFERENCE;
|
| + case "INSTANCE_METHOD_DECLARATION":
|
| + return INSTANCE_METHOD_DECLARATION;
|
| + case "INSTANCE_METHOD_REFERENCE":
|
| + return INSTANCE_METHOD_REFERENCE;
|
| + case "INSTANCE_SETTER_DECLARATION":
|
| + return INSTANCE_SETTER_DECLARATION;
|
| + case "INSTANCE_SETTER_REFERENCE":
|
| + return INSTANCE_SETTER_REFERENCE;
|
| + case "INVALID_STRING_ESCAPE":
|
| + return INVALID_STRING_ESCAPE;
|
| + case "KEYWORD":
|
| + return KEYWORD;
|
| + case "LABEL":
|
| + return LABEL;
|
| + case "LIBRARY_NAME":
|
| + return LIBRARY_NAME;
|
| + case "LITERAL_BOOLEAN":
|
| + return LITERAL_BOOLEAN;
|
| + case "LITERAL_DOUBLE":
|
| + return LITERAL_DOUBLE;
|
| + case "LITERAL_INTEGER":
|
| + return LITERAL_INTEGER;
|
| + case "LITERAL_LIST":
|
| + return LITERAL_LIST;
|
| + case "LITERAL_MAP":
|
| + return LITERAL_MAP;
|
| + case "LITERAL_STRING":
|
| + return LITERAL_STRING;
|
| + case "LOCAL_FUNCTION_DECLARATION":
|
| + return LOCAL_FUNCTION_DECLARATION;
|
| + case "LOCAL_FUNCTION_REFERENCE":
|
| + return LOCAL_FUNCTION_REFERENCE;
|
| + case "LOCAL_VARIABLE":
|
| + return LOCAL_VARIABLE;
|
| + case "LOCAL_VARIABLE_DECLARATION":
|
| + return LOCAL_VARIABLE_DECLARATION;
|
| + case "LOCAL_VARIABLE_REFERENCE":
|
| + return LOCAL_VARIABLE_REFERENCE;
|
| + case "METHOD":
|
| + return METHOD;
|
| + case "METHOD_DECLARATION":
|
| + return METHOD_DECLARATION;
|
| + case "METHOD_DECLARATION_STATIC":
|
| + return METHOD_DECLARATION_STATIC;
|
| + case "METHOD_STATIC":
|
| + return METHOD_STATIC;
|
| + case "PARAMETER":
|
| + return PARAMETER;
|
| + case "SETTER_DECLARATION":
|
| + return SETTER_DECLARATION;
|
| + case "TOP_LEVEL_VARIABLE":
|
| + return TOP_LEVEL_VARIABLE;
|
| + case "PARAMETER_DECLARATION":
|
| + return PARAMETER_DECLARATION;
|
| + case "PARAMETER_REFERENCE":
|
| + return PARAMETER_REFERENCE;
|
| + case "STATIC_FIELD_DECLARATION":
|
| + return STATIC_FIELD_DECLARATION;
|
| + case "STATIC_GETTER_DECLARATION":
|
| + return STATIC_GETTER_DECLARATION;
|
| + case "STATIC_GETTER_REFERENCE":
|
| + return STATIC_GETTER_REFERENCE;
|
| + case "STATIC_METHOD_DECLARATION":
|
| + return STATIC_METHOD_DECLARATION;
|
| + case "STATIC_METHOD_REFERENCE":
|
| + return STATIC_METHOD_REFERENCE;
|
| + case "STATIC_SETTER_DECLARATION":
|
| + return STATIC_SETTER_DECLARATION;
|
| + case "STATIC_SETTER_REFERENCE":
|
| + return STATIC_SETTER_REFERENCE;
|
| + case "TOP_LEVEL_FUNCTION_DECLARATION":
|
| + return TOP_LEVEL_FUNCTION_DECLARATION;
|
| + case "TOP_LEVEL_FUNCTION_REFERENCE":
|
| + return TOP_LEVEL_FUNCTION_REFERENCE;
|
| + case "TOP_LEVEL_GETTER_DECLARATION":
|
| + return TOP_LEVEL_GETTER_DECLARATION;
|
| + case "TOP_LEVEL_GETTER_REFERENCE":
|
| + return TOP_LEVEL_GETTER_REFERENCE;
|
| + case "TOP_LEVEL_SETTER_DECLARATION":
|
| + return TOP_LEVEL_SETTER_DECLARATION;
|
| + case "TOP_LEVEL_SETTER_REFERENCE":
|
| + return TOP_LEVEL_SETTER_REFERENCE;
|
| + case "TOP_LEVEL_VARIABLE_DECLARATION":
|
| + return TOP_LEVEL_VARIABLE_DECLARATION;
|
| + case "TYPE_NAME_DYNAMIC":
|
| + return TYPE_NAME_DYNAMIC;
|
| + case "TYPE_PARAMETER":
|
| + return TYPE_PARAMETER;
|
| + case "UNRESOLVED_INSTANCE_MEMBER_REFERENCE":
|
| + return UNRESOLVED_INSTANCE_MEMBER_REFERENCE;
|
| + case "VALID_STRING_ESCAPE":
|
| + return VALID_STRING_ESCAPE;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory HighlightRegionType.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new HighlightRegionType(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "HighlightRegionType", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "HighlightRegionType.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * LinkedEditGroup
|
| + *
|
| + * {
|
| + * "positions": List<Position>
|
| + * "length": int
|
| + * "suggestions": List<LinkedEditSuggestion>
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class LinkedEditGroup implements HasToJson {
|
| + List<Position> _positions;
|
| +
|
| + int _length;
|
| +
|
| + List<LinkedEditSuggestion> _suggestions;
|
| +
|
| + /**
|
| + * The positions of the regions that should be edited simultaneously.
|
| + */
|
| + List<Position> get positions => _positions;
|
| +
|
| + /**
|
| + * The positions of the regions that should be edited simultaneously.
|
| + */
|
| + void set positions(List<Position> value) {
|
| + assert(value != null);
|
| + this._positions = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the regions that should be edited simultaneously.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the regions that should be edited simultaneously.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * Pre-computed suggestions for what every region might want to be changed
|
| + * to.
|
| + */
|
| + List<LinkedEditSuggestion> get suggestions => _suggestions;
|
| +
|
| + /**
|
| + * Pre-computed suggestions for what every region might want to be changed
|
| + * to.
|
| + */
|
| + void set suggestions(List<LinkedEditSuggestion> value) {
|
| + assert(value != null);
|
| + this._suggestions = value;
|
| + }
|
| +
|
| + LinkedEditGroup(List<Position> positions, int length,
|
| + List<LinkedEditSuggestion> suggestions) {
|
| + this.positions = positions;
|
| + this.length = length;
|
| + this.suggestions = suggestions;
|
| + }
|
| +
|
| + factory LinkedEditGroup.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + List<Position> positions;
|
| + if (json.containsKey("positions")) {
|
| + positions = jsonDecoder.decodeList(
|
| + jsonPath + ".positions",
|
| + json["positions"],
|
| + (String jsonPath, Object json) =>
|
| + new Position.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "positions");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + List<LinkedEditSuggestion> suggestions;
|
| + if (json.containsKey("suggestions")) {
|
| + suggestions = jsonDecoder.decodeList(
|
| + jsonPath + ".suggestions",
|
| + json["suggestions"],
|
| + (String jsonPath, Object json) =>
|
| + new LinkedEditSuggestion.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "suggestions");
|
| + }
|
| + return new LinkedEditGroup(positions, length, suggestions);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "LinkedEditGroup", json);
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Construct an empty LinkedEditGroup.
|
| + */
|
| + LinkedEditGroup.empty() : this(<Position>[], 0, <LinkedEditSuggestion>[]);
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["positions"] =
|
| + positions.map((Position value) => value.toJson()).toList();
|
| + result["length"] = length;
|
| + result["suggestions"] = suggestions
|
| + .map((LinkedEditSuggestion value) => value.toJson())
|
| + .toList();
|
| + return result;
|
| + }
|
| +
|
| + /**
|
| + * Add a new position and change the length.
|
| + */
|
| + void addPosition(Position position, int length) {
|
| + positions.add(position);
|
| + this.length = length;
|
| + }
|
| +
|
| + /**
|
| + * Add a new suggestion.
|
| + */
|
| + void addSuggestion(LinkedEditSuggestion suggestion) {
|
| + suggestions.add(suggestion);
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is LinkedEditGroup) {
|
| + return listEqual(
|
| + positions, other.positions, (Position a, Position b) => a == b) &&
|
| + length == other.length &&
|
| + listEqual(suggestions, other.suggestions,
|
| + (LinkedEditSuggestion a, LinkedEditSuggestion b) => a == b);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, positions.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, suggestions.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * LinkedEditSuggestion
|
| + *
|
| + * {
|
| + * "value": String
|
| + * "kind": LinkedEditSuggestionKind
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class LinkedEditSuggestion implements HasToJson {
|
| + String _value;
|
| +
|
| + LinkedEditSuggestionKind _kind;
|
| +
|
| + /**
|
| + * The value that could be used to replace all of the linked edit regions.
|
| + */
|
| + String get value => _value;
|
| +
|
| + /**
|
| + * The value that could be used to replace all of the linked edit regions.
|
| + */
|
| + void set value(String value) {
|
| + assert(value != null);
|
| + this._value = value;
|
| + }
|
| +
|
| + /**
|
| + * The kind of value being proposed.
|
| + */
|
| + LinkedEditSuggestionKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of value being proposed.
|
| + */
|
| + void set kind(LinkedEditSuggestionKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + LinkedEditSuggestion(String value, LinkedEditSuggestionKind kind) {
|
| + this.value = value;
|
| + this.kind = kind;
|
| + }
|
| +
|
| + factory LinkedEditSuggestion.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String value;
|
| + if (json.containsKey("value")) {
|
| + value = jsonDecoder.decodeString(jsonPath + ".value", json["value"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "value");
|
| + }
|
| + LinkedEditSuggestionKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new LinkedEditSuggestionKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + return new LinkedEditSuggestion(value, kind);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestion", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["value"] = value;
|
| + result["kind"] = kind.toJson();
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is LinkedEditSuggestion) {
|
| + return value == other.value && kind == other.kind;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, value.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * LinkedEditSuggestionKind
|
| + *
|
| + * enum {
|
| + * METHOD
|
| + * PARAMETER
|
| + * TYPE
|
| + * VARIABLE
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class LinkedEditSuggestionKind implements Enum {
|
| + static const LinkedEditSuggestionKind METHOD =
|
| + const LinkedEditSuggestionKind._("METHOD");
|
| +
|
| + static const LinkedEditSuggestionKind PARAMETER =
|
| + const LinkedEditSuggestionKind._("PARAMETER");
|
| +
|
| + static const LinkedEditSuggestionKind TYPE =
|
| + const LinkedEditSuggestionKind._("TYPE");
|
| +
|
| + static const LinkedEditSuggestionKind VARIABLE =
|
| + const LinkedEditSuggestionKind._("VARIABLE");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<LinkedEditSuggestionKind> VALUES =
|
| + const <LinkedEditSuggestionKind>[METHOD, PARAMETER, TYPE, VARIABLE];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const LinkedEditSuggestionKind._(this.name);
|
| +
|
| + factory LinkedEditSuggestionKind(String name) {
|
| + switch (name) {
|
| + case "METHOD":
|
| + return METHOD;
|
| + case "PARAMETER":
|
| + return PARAMETER;
|
| + case "TYPE":
|
| + return TYPE;
|
| + case "VARIABLE":
|
| + return VARIABLE;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory LinkedEditSuggestionKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new LinkedEditSuggestionKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "LinkedEditSuggestionKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "LinkedEditSuggestionKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * Location
|
| + *
|
| + * {
|
| + * "file": FilePath
|
| + * "offset": int
|
| + * "length": int
|
| + * "startLine": int
|
| + * "startColumn": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class Location implements HasToJson {
|
| + String _file;
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + int _startLine;
|
| +
|
| + int _startColumn;
|
| +
|
| + /**
|
| + * The file containing the range.
|
| + */
|
| + String get file => _file;
|
| +
|
| + /**
|
| + * The file containing the range.
|
| + */
|
| + void set file(String value) {
|
| + assert(value != null);
|
| + this._file = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the range.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the range.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the range.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the range.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * The one-based index of the line containing the first character of the
|
| + * range.
|
| + */
|
| + int get startLine => _startLine;
|
| +
|
| + /**
|
| + * The one-based index of the line containing the first character of the
|
| + * range.
|
| + */
|
| + void set startLine(int value) {
|
| + assert(value != null);
|
| + this._startLine = value;
|
| + }
|
| +
|
| + /**
|
| + * The one-based index of the column containing the first character of the
|
| + * range.
|
| + */
|
| + int get startColumn => _startColumn;
|
| +
|
| + /**
|
| + * The one-based index of the column containing the first character of the
|
| + * range.
|
| + */
|
| + void set startColumn(int value) {
|
| + assert(value != null);
|
| + this._startColumn = value;
|
| + }
|
| +
|
| + Location(
|
| + String file, int offset, int length, int startLine, int startColumn) {
|
| + this.file = file;
|
| + this.offset = offset;
|
| + this.length = length;
|
| + this.startLine = startLine;
|
| + this.startColumn = startColumn;
|
| + }
|
| +
|
| + factory Location.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String file;
|
| + if (json.containsKey("file")) {
|
| + file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "file");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + int startLine;
|
| + if (json.containsKey("startLine")) {
|
| + startLine =
|
| + jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "startLine");
|
| + }
|
| + int startColumn;
|
| + if (json.containsKey("startColumn")) {
|
| + startColumn = jsonDecoder.decodeInt(
|
| + jsonPath + ".startColumn", json["startColumn"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "startColumn");
|
| + }
|
| + return new Location(file, offset, length, startLine, startColumn);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "Location", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["file"] = file;
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + result["startLine"] = startLine;
|
| + result["startColumn"] = startColumn;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is Location) {
|
| + return file == other.file &&
|
| + offset == other.offset &&
|
| + length == other.length &&
|
| + startLine == other.startLine &&
|
| + startColumn == other.startColumn;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * NavigationRegion
|
| + *
|
| + * {
|
| + * "offset": int
|
| + * "length": int
|
| + * "targets": List<int>
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class NavigationRegion implements HasToJson {
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + List<int> _targets;
|
| +
|
| + /**
|
| + * The offset of the region from which the user can navigate.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the region from which the user can navigate.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the region from which the user can navigate.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the region from which the user can navigate.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * The indexes of the targets (in the enclosing navigation response) to which
|
| + * the given region is bound. By opening the target, clients can implement
|
| + * one form of navigation. This list cannot be empty.
|
| + */
|
| + List<int> get targets => _targets;
|
| +
|
| + /**
|
| + * The indexes of the targets (in the enclosing navigation response) to which
|
| + * the given region is bound. By opening the target, clients can implement
|
| + * one form of navigation. This list cannot be empty.
|
| + */
|
| + void set targets(List<int> value) {
|
| + assert(value != null);
|
| + this._targets = value;
|
| + }
|
| +
|
| + NavigationRegion(int offset, int length, List<int> targets) {
|
| + this.offset = offset;
|
| + this.length = length;
|
| + this.targets = targets;
|
| + }
|
| +
|
| + factory NavigationRegion.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + List<int> targets;
|
| + if (json.containsKey("targets")) {
|
| + targets = jsonDecoder.decodeList(
|
| + jsonPath + ".targets", json["targets"], jsonDecoder.decodeInt);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "targets");
|
| + }
|
| + return new NavigationRegion(offset, length, targets);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "NavigationRegion", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + result["targets"] = targets;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is NavigationRegion) {
|
| + return offset == other.offset &&
|
| + length == other.length &&
|
| + listEqual(targets, other.targets, (int a, int b) => a == b);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, targets.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * NavigationTarget
|
| + *
|
| + * {
|
| + * "kind": ElementKind
|
| + * "fileIndex": int
|
| + * "offset": int
|
| + * "length": int
|
| + * "startLine": int
|
| + * "startColumn": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class NavigationTarget implements HasToJson {
|
| + ElementKind _kind;
|
| +
|
| + int _fileIndex;
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + int _startLine;
|
| +
|
| + int _startColumn;
|
| +
|
| + /**
|
| + * The kind of the element.
|
| + */
|
| + ElementKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of the element.
|
| + */
|
| + void set kind(ElementKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + /**
|
| + * The index of the file (in the enclosing navigation response) to navigate
|
| + * to.
|
| + */
|
| + int get fileIndex => _fileIndex;
|
| +
|
| + /**
|
| + * The index of the file (in the enclosing navigation response) to navigate
|
| + * to.
|
| + */
|
| + void set fileIndex(int value) {
|
| + assert(value != null);
|
| + this._fileIndex = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the region to which the user can navigate.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the region to which the user can navigate.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the region to which the user can navigate.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the region to which the user can navigate.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * The one-based index of the line containing the first character of the
|
| + * region.
|
| + */
|
| + int get startLine => _startLine;
|
| +
|
| + /**
|
| + * The one-based index of the line containing the first character of the
|
| + * region.
|
| + */
|
| + void set startLine(int value) {
|
| + assert(value != null);
|
| + this._startLine = value;
|
| + }
|
| +
|
| + /**
|
| + * The one-based index of the column containing the first character of the
|
| + * region.
|
| + */
|
| + int get startColumn => _startColumn;
|
| +
|
| + /**
|
| + * The one-based index of the column containing the first character of the
|
| + * region.
|
| + */
|
| + void set startColumn(int value) {
|
| + assert(value != null);
|
| + this._startColumn = value;
|
| + }
|
| +
|
| + NavigationTarget(ElementKind kind, int fileIndex, int offset, int length,
|
| + int startLine, int startColumn) {
|
| + this.kind = kind;
|
| + this.fileIndex = fileIndex;
|
| + this.offset = offset;
|
| + this.length = length;
|
| + this.startLine = startLine;
|
| + this.startColumn = startColumn;
|
| + }
|
| +
|
| + factory NavigationTarget.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + ElementKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new ElementKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + int fileIndex;
|
| + if (json.containsKey("fileIndex")) {
|
| + fileIndex =
|
| + jsonDecoder.decodeInt(jsonPath + ".fileIndex", json["fileIndex"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "fileIndex");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + int startLine;
|
| + if (json.containsKey("startLine")) {
|
| + startLine =
|
| + jsonDecoder.decodeInt(jsonPath + ".startLine", json["startLine"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "startLine");
|
| + }
|
| + int startColumn;
|
| + if (json.containsKey("startColumn")) {
|
| + startColumn = jsonDecoder.decodeInt(
|
| + jsonPath + ".startColumn", json["startColumn"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "startColumn");
|
| + }
|
| + return new NavigationTarget(
|
| + kind, fileIndex, offset, length, startLine, startColumn);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "NavigationTarget", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["kind"] = kind.toJson();
|
| + result["fileIndex"] = fileIndex;
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + result["startLine"] = startLine;
|
| + result["startColumn"] = startColumn;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is NavigationTarget) {
|
| + return kind == other.kind &&
|
| + fileIndex == other.fileIndex &&
|
| + offset == other.offset &&
|
| + length == other.length &&
|
| + startLine == other.startLine &&
|
| + startColumn == other.startColumn;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, fileIndex.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, startLine.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, startColumn.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Occurrences
|
| + *
|
| + * {
|
| + * "element": Element
|
| + * "offsets": List<int>
|
| + * "length": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class Occurrences implements HasToJson {
|
| + Element _element;
|
| +
|
| + List<int> _offsets;
|
| +
|
| + int _length;
|
| +
|
| + /**
|
| + * The element that was referenced.
|
| + */
|
| + Element get element => _element;
|
| +
|
| + /**
|
| + * The element that was referenced.
|
| + */
|
| + void set element(Element value) {
|
| + assert(value != null);
|
| + this._element = value;
|
| + }
|
| +
|
| + /**
|
| + * The offsets of the name of the referenced element within the file.
|
| + */
|
| + List<int> get offsets => _offsets;
|
| +
|
| + /**
|
| + * The offsets of the name of the referenced element within the file.
|
| + */
|
| + void set offsets(List<int> value) {
|
| + assert(value != null);
|
| + this._offsets = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the name of the referenced element.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the name of the referenced element.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + Occurrences(Element element, List<int> offsets, int length) {
|
| + this.element = element;
|
| + this.offsets = offsets;
|
| + this.length = length;
|
| + }
|
| +
|
| + factory Occurrences.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + Element element;
|
| + if (json.containsKey("element")) {
|
| + element = new Element.fromJson(
|
| + jsonDecoder, jsonPath + ".element", json["element"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "element");
|
| + }
|
| + List<int> offsets;
|
| + if (json.containsKey("offsets")) {
|
| + offsets = jsonDecoder.decodeList(
|
| + jsonPath + ".offsets", json["offsets"], jsonDecoder.decodeInt);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offsets");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + return new Occurrences(element, offsets, length);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "Occurrences", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["element"] = element.toJson();
|
| + result["offsets"] = offsets;
|
| + result["length"] = length;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is Occurrences) {
|
| + return element == other.element &&
|
| + listEqual(offsets, other.offsets, (int a, int b) => a == b) &&
|
| + length == other.length;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offsets.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Outline
|
| + *
|
| + * {
|
| + * "element": Element
|
| + * "offset": int
|
| + * "length": int
|
| + * "children": optional List<Outline>
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class Outline implements HasToJson {
|
| + Element _element;
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + List<Outline> _children;
|
| +
|
| + /**
|
| + * A description of the element represented by this node.
|
| + */
|
| + Element get element => _element;
|
| +
|
| + /**
|
| + * A description of the element represented by this node.
|
| + */
|
| + void set element(Element value) {
|
| + assert(value != null);
|
| + this._element = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the first character of the element. This is different than
|
| + * the offset in the Element, which is the offset of the name of the element.
|
| + * It can be used, for example, to map locations in the file back to an
|
| + * outline.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the first character of the element. This is different than
|
| + * the offset in the Element, which is the offset of the name of the element.
|
| + * It can be used, for example, to map locations in the file back to an
|
| + * outline.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the element.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the element.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * The children of the node. The field will be omitted if the node has no
|
| + * children.
|
| + */
|
| + List<Outline> get children => _children;
|
| +
|
| + /**
|
| + * The children of the node. The field will be omitted if the node has no
|
| + * children.
|
| + */
|
| + void set children(List<Outline> value) {
|
| + this._children = value;
|
| + }
|
| +
|
| + Outline(Element element, int offset, int length, {List<Outline> children}) {
|
| + this.element = element;
|
| + this.offset = offset;
|
| + this.length = length;
|
| + this.children = children;
|
| + }
|
| +
|
| + factory Outline.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + Element element;
|
| + if (json.containsKey("element")) {
|
| + element = new Element.fromJson(
|
| + jsonDecoder, jsonPath + ".element", json["element"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "element");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + List<Outline> children;
|
| + if (json.containsKey("children")) {
|
| + children = jsonDecoder.decodeList(
|
| + jsonPath + ".children",
|
| + json["children"],
|
| + (String jsonPath, Object json) =>
|
| + new Outline.fromJson(jsonDecoder, jsonPath, json));
|
| + }
|
| + return new Outline(element, offset, length, children: children);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "Outline", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["element"] = element.toJson();
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + if (children != null) {
|
| + result["children"] =
|
| + children.map((Outline value) => value.toJson()).toList();
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is Outline) {
|
| + return element == other.element &&
|
| + offset == other.offset &&
|
| + length == other.length &&
|
| + listEqual(children, other.children, (Outline a, Outline b) => a == b);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, element.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, children.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * Position
|
| + *
|
| + * {
|
| + * "file": FilePath
|
| + * "offset": int
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class Position implements HasToJson {
|
| + String _file;
|
| +
|
| + int _offset;
|
| +
|
| + /**
|
| + * The file containing the position.
|
| + */
|
| + String get file => _file;
|
| +
|
| + /**
|
| + * The file containing the position.
|
| + */
|
| + void set file(String value) {
|
| + assert(value != null);
|
| + this._file = value;
|
| + }
|
| +
|
| + /**
|
| + * The offset of the position.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the position.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + Position(String file, int offset) {
|
| + this.file = file;
|
| + this.offset = offset;
|
| + }
|
| +
|
| + factory Position.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String file;
|
| + if (json.containsKey("file")) {
|
| + file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "file");
|
| + }
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + return new Position(file, offset);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "Position", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["file"] = file;
|
| + result["offset"] = offset;
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is Position) {
|
| + return file == other.file && offset == other.offset;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * RefactoringFeedback
|
| + *
|
| + * {
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringFeedback implements HasToJson {
|
| + RefactoringFeedback();
|
| +
|
| + factory RefactoringFeedback.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json, Map responseJson) {
|
| + return refactoringFeedbackFromJson(
|
| + jsonDecoder, jsonPath, json, responseJson);
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is RefactoringFeedback) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * RefactoringKind
|
| + *
|
| + * enum {
|
| + * CONVERT_GETTER_TO_METHOD
|
| + * CONVERT_METHOD_TO_GETTER
|
| + * EXTRACT_LOCAL_VARIABLE
|
| + * EXTRACT_METHOD
|
| + * INLINE_LOCAL_VARIABLE
|
| + * INLINE_METHOD
|
| + * MOVE_FILE
|
| + * RENAME
|
| + * SORT_MEMBERS
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringKind implements Enum {
|
| + static const RefactoringKind CONVERT_GETTER_TO_METHOD =
|
| + const RefactoringKind._("CONVERT_GETTER_TO_METHOD");
|
| +
|
| + static const RefactoringKind CONVERT_METHOD_TO_GETTER =
|
| + const RefactoringKind._("CONVERT_METHOD_TO_GETTER");
|
| +
|
| + static const RefactoringKind EXTRACT_LOCAL_VARIABLE =
|
| + const RefactoringKind._("EXTRACT_LOCAL_VARIABLE");
|
| +
|
| + static const RefactoringKind EXTRACT_METHOD =
|
| + const RefactoringKind._("EXTRACT_METHOD");
|
| +
|
| + static const RefactoringKind INLINE_LOCAL_VARIABLE =
|
| + const RefactoringKind._("INLINE_LOCAL_VARIABLE");
|
| +
|
| + static const RefactoringKind INLINE_METHOD =
|
| + const RefactoringKind._("INLINE_METHOD");
|
| +
|
| + static const RefactoringKind MOVE_FILE = const RefactoringKind._("MOVE_FILE");
|
| +
|
| + static const RefactoringKind RENAME = const RefactoringKind._("RENAME");
|
| +
|
| + static const RefactoringKind SORT_MEMBERS =
|
| + const RefactoringKind._("SORT_MEMBERS");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<RefactoringKind> VALUES = const <RefactoringKind>[
|
| + CONVERT_GETTER_TO_METHOD,
|
| + CONVERT_METHOD_TO_GETTER,
|
| + EXTRACT_LOCAL_VARIABLE,
|
| + EXTRACT_METHOD,
|
| + INLINE_LOCAL_VARIABLE,
|
| + INLINE_METHOD,
|
| + MOVE_FILE,
|
| + RENAME,
|
| + SORT_MEMBERS
|
| + ];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const RefactoringKind._(this.name);
|
| +
|
| + factory RefactoringKind(String name) {
|
| + switch (name) {
|
| + case "CONVERT_GETTER_TO_METHOD":
|
| + return CONVERT_GETTER_TO_METHOD;
|
| + case "CONVERT_METHOD_TO_GETTER":
|
| + return CONVERT_METHOD_TO_GETTER;
|
| + case "EXTRACT_LOCAL_VARIABLE":
|
| + return EXTRACT_LOCAL_VARIABLE;
|
| + case "EXTRACT_METHOD":
|
| + return EXTRACT_METHOD;
|
| + case "INLINE_LOCAL_VARIABLE":
|
| + return INLINE_LOCAL_VARIABLE;
|
| + case "INLINE_METHOD":
|
| + return INLINE_METHOD;
|
| + case "MOVE_FILE":
|
| + return MOVE_FILE;
|
| + case "RENAME":
|
| + return RENAME;
|
| + case "SORT_MEMBERS":
|
| + return SORT_MEMBERS;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory RefactoringKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new RefactoringKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "RefactoringKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "RefactoringKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * RefactoringMethodParameter
|
| + *
|
| + * {
|
| + * "id": optional String
|
| + * "kind": RefactoringMethodParameterKind
|
| + * "type": String
|
| + * "name": String
|
| + * "parameters": optional String
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringMethodParameter implements HasToJson {
|
| + String _id;
|
| +
|
| + RefactoringMethodParameterKind _kind;
|
| +
|
| + String _type;
|
| +
|
| + String _name;
|
| +
|
| + String _parameters;
|
| +
|
| + /**
|
| + * The unique identifier of the parameter. Clients may omit this field for
|
| + * the parameters they want to add.
|
| + */
|
| + String get id => _id;
|
| +
|
| + /**
|
| + * The unique identifier of the parameter. Clients may omit this field for
|
| + * the parameters they want to add.
|
| + */
|
| + void set id(String value) {
|
| + this._id = value;
|
| + }
|
| +
|
| + /**
|
| + * The kind of the parameter.
|
| + */
|
| + RefactoringMethodParameterKind get kind => _kind;
|
| +
|
| + /**
|
| + * The kind of the parameter.
|
| + */
|
| + void set kind(RefactoringMethodParameterKind value) {
|
| + assert(value != null);
|
| + this._kind = value;
|
| + }
|
| +
|
| + /**
|
| + * The type that should be given to the parameter, or the return type of the
|
| + * parameter's function type.
|
| + */
|
| + String get type => _type;
|
| +
|
| + /**
|
| + * The type that should be given to the parameter, or the return type of the
|
| + * parameter's function type.
|
| + */
|
| + void set type(String value) {
|
| + assert(value != null);
|
| + this._type = value;
|
| + }
|
| +
|
| + /**
|
| + * The name that should be given to the parameter.
|
| + */
|
| + String get name => _name;
|
| +
|
| + /**
|
| + * The name that should be given to the parameter.
|
| + */
|
| + void set name(String value) {
|
| + assert(value != null);
|
| + this._name = value;
|
| + }
|
| +
|
| + /**
|
| + * The parameter list of the parameter's function type. If the parameter is
|
| + * not of a function type, this field will not be defined. If the function
|
| + * type has zero parameters, this field will have a value of '()'.
|
| + */
|
| + String get parameters => _parameters;
|
| +
|
| + /**
|
| + * The parameter list of the parameter's function type. If the parameter is
|
| + * not of a function type, this field will not be defined. If the function
|
| + * type has zero parameters, this field will have a value of '()'.
|
| + */
|
| + void set parameters(String value) {
|
| + this._parameters = value;
|
| + }
|
| +
|
| + RefactoringMethodParameter(
|
| + RefactoringMethodParameterKind kind, String type, String name,
|
| + {String id, String parameters}) {
|
| + this.id = id;
|
| + this.kind = kind;
|
| + this.type = type;
|
| + this.name = name;
|
| + this.parameters = parameters;
|
| + }
|
| +
|
| + factory RefactoringMethodParameter.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String id;
|
| + if (json.containsKey("id")) {
|
| + id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
|
| + }
|
| + RefactoringMethodParameterKind kind;
|
| + if (json.containsKey("kind")) {
|
| + kind = new RefactoringMethodParameterKind.fromJson(
|
| + jsonDecoder, jsonPath + ".kind", json["kind"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "kind");
|
| + }
|
| + String type;
|
| + if (json.containsKey("type")) {
|
| + type = jsonDecoder.decodeString(jsonPath + ".type", json["type"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "type");
|
| + }
|
| + String name;
|
| + if (json.containsKey("name")) {
|
| + name = jsonDecoder.decodeString(jsonPath + ".name", json["name"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "name");
|
| + }
|
| + String parameters;
|
| + if (json.containsKey("parameters")) {
|
| + parameters = jsonDecoder.decodeString(
|
| + jsonPath + ".parameters", json["parameters"]);
|
| + }
|
| + return new RefactoringMethodParameter(kind, type, name,
|
| + id: id, parameters: parameters);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "RefactoringMethodParameter", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + if (id != null) {
|
| + result["id"] = id;
|
| + }
|
| + result["kind"] = kind.toJson();
|
| + result["type"] = type;
|
| + result["name"] = name;
|
| + if (parameters != null) {
|
| + result["parameters"] = parameters;
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is RefactoringMethodParameter) {
|
| + return id == other.id &&
|
| + kind == other.kind &&
|
| + type == other.type &&
|
| + name == other.name &&
|
| + parameters == other.parameters;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, id.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, kind.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, type.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, name.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, parameters.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * RefactoringMethodParameterKind
|
| + *
|
| + * enum {
|
| + * REQUIRED
|
| + * POSITIONAL
|
| + * NAMED
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringMethodParameterKind implements Enum {
|
| + static const RefactoringMethodParameterKind REQUIRED =
|
| + const RefactoringMethodParameterKind._("REQUIRED");
|
| +
|
| + static const RefactoringMethodParameterKind POSITIONAL =
|
| + const RefactoringMethodParameterKind._("POSITIONAL");
|
| +
|
| + static const RefactoringMethodParameterKind NAMED =
|
| + const RefactoringMethodParameterKind._("NAMED");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<RefactoringMethodParameterKind> VALUES =
|
| + const <RefactoringMethodParameterKind>[REQUIRED, POSITIONAL, NAMED];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const RefactoringMethodParameterKind._(this.name);
|
| +
|
| + factory RefactoringMethodParameterKind(String name) {
|
| + switch (name) {
|
| + case "REQUIRED":
|
| + return REQUIRED;
|
| + case "POSITIONAL":
|
| + return POSITIONAL;
|
| + case "NAMED":
|
| + return NAMED;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory RefactoringMethodParameterKind.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new RefactoringMethodParameterKind(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(
|
| + jsonPath, "RefactoringMethodParameterKind", json);
|
| + }
|
| +
|
| + @override
|
| + String toString() => "RefactoringMethodParameterKind.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * RefactoringOptions
|
| + *
|
| + * {
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringOptions implements HasToJson {
|
| + RefactoringOptions();
|
| +
|
| + factory RefactoringOptions.fromJson(JsonDecoder jsonDecoder, String jsonPath,
|
| + Object json, RefactoringKind kind) {
|
| + return refactoringOptionsFromJson(jsonDecoder, jsonPath, json, kind);
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is RefactoringOptions) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * RefactoringProblem
|
| + *
|
| + * {
|
| + * "severity": RefactoringProblemSeverity
|
| + * "message": String
|
| + * "location": optional Location
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringProblem implements HasToJson {
|
| + RefactoringProblemSeverity _severity;
|
| +
|
| + String _message;
|
| +
|
| + Location _location;
|
| +
|
| + /**
|
| + * The severity of the problem being represented.
|
| + */
|
| + RefactoringProblemSeverity get severity => _severity;
|
| +
|
| + /**
|
| + * The severity of the problem being represented.
|
| + */
|
| + void set severity(RefactoringProblemSeverity value) {
|
| + assert(value != null);
|
| + this._severity = value;
|
| + }
|
| +
|
| + /**
|
| + * A human-readable description of the problem being represented.
|
| + */
|
| + String get message => _message;
|
| +
|
| + /**
|
| + * A human-readable description of the problem being represented.
|
| + */
|
| + void set message(String value) {
|
| + assert(value != null);
|
| + this._message = value;
|
| + }
|
| +
|
| + /**
|
| + * The location of the problem being represented. This field is omitted
|
| + * unless there is a specific location associated with the problem (such as a
|
| + * location where an element being renamed will be shadowed).
|
| + */
|
| + Location get location => _location;
|
| +
|
| + /**
|
| + * The location of the problem being represented. This field is omitted
|
| + * unless there is a specific location associated with the problem (such as a
|
| + * location where an element being renamed will be shadowed).
|
| + */
|
| + void set location(Location value) {
|
| + this._location = value;
|
| + }
|
| +
|
| + RefactoringProblem(RefactoringProblemSeverity severity, String message,
|
| + {Location location}) {
|
| + this.severity = severity;
|
| + this.message = message;
|
| + this.location = location;
|
| + }
|
| +
|
| + factory RefactoringProblem.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + RefactoringProblemSeverity severity;
|
| + if (json.containsKey("severity")) {
|
| + severity = new RefactoringProblemSeverity.fromJson(
|
| + jsonDecoder, jsonPath + ".severity", json["severity"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "severity");
|
| + }
|
| + String message;
|
| + if (json.containsKey("message")) {
|
| + message =
|
| + jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "message");
|
| + }
|
| + Location location;
|
| + if (json.containsKey("location")) {
|
| + location = new Location.fromJson(
|
| + jsonDecoder, jsonPath + ".location", json["location"]);
|
| + }
|
| + return new RefactoringProblem(severity, message, location: location);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "RefactoringProblem", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["severity"] = severity.toJson();
|
| + result["message"] = message;
|
| + if (location != null) {
|
| + result["location"] = location.toJson();
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is RefactoringProblem) {
|
| + return severity == other.severity &&
|
| + message == other.message &&
|
| + location == other.location;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, severity.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, location.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * RefactoringProblemSeverity
|
| + *
|
| + * enum {
|
| + * INFO
|
| + * WARNING
|
| + * ERROR
|
| + * FATAL
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RefactoringProblemSeverity implements Enum {
|
| + /**
|
| + * A minor code problem. No example, because it is not used yet.
|
| + */
|
| + static const RefactoringProblemSeverity INFO =
|
| + const RefactoringProblemSeverity._("INFO");
|
| +
|
| + /**
|
| + * A minor code problem. For example names of local variables should be camel
|
| + * case and start with a lower case letter. Staring the name of a variable
|
| + * with an upper case is OK from the language point of view, but it is nice
|
| + * to warn the user.
|
| + */
|
| + static const RefactoringProblemSeverity WARNING =
|
| + const RefactoringProblemSeverity._("WARNING");
|
| +
|
| + /**
|
| + * The refactoring technically can be performed, but there is a logical
|
| + * problem. For example the name of a local variable being extracted
|
| + * conflicts with another name in the scope, or duplicate parameter names in
|
| + * the method being extracted, or a conflict between a parameter name and a
|
| + * local variable, etc. In some cases the location of the problem is also
|
| + * provided, so the IDE can show user the location and the problem, and let
|
| + * the user decide whether they want to perform the refactoring. For example
|
| + * the name conflict might be expected, and the user wants to fix it
|
| + * afterwards.
|
| + */
|
| + static const RefactoringProblemSeverity ERROR =
|
| + const RefactoringProblemSeverity._("ERROR");
|
| +
|
| + /**
|
| + * A fatal error, which prevents performing the refactoring. For example the
|
| + * name of a local variable being extracted is not a valid identifier, or
|
| + * selection is not a valid expression.
|
| + */
|
| + static const RefactoringProblemSeverity FATAL =
|
| + const RefactoringProblemSeverity._("FATAL");
|
| +
|
| + /**
|
| + * A list containing all of the enum values that are defined.
|
| + */
|
| + static const List<RefactoringProblemSeverity> VALUES =
|
| + const <RefactoringProblemSeverity>[INFO, WARNING, ERROR, FATAL];
|
| +
|
| + @override
|
| + final String name;
|
| +
|
| + const RefactoringProblemSeverity._(this.name);
|
| +
|
| + factory RefactoringProblemSeverity(String name) {
|
| + switch (name) {
|
| + case "INFO":
|
| + return INFO;
|
| + case "WARNING":
|
| + return WARNING;
|
| + case "ERROR":
|
| + return ERROR;
|
| + case "FATAL":
|
| + return FATAL;
|
| + }
|
| + throw new Exception('Illegal enum value: $name');
|
| + }
|
| +
|
| + factory RefactoringProblemSeverity.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json is String) {
|
| + try {
|
| + return new RefactoringProblemSeverity(json);
|
| + } catch (_) {
|
| + // Fall through
|
| + }
|
| + }
|
| + throw jsonDecoder.mismatch(jsonPath, "RefactoringProblemSeverity", json);
|
| + }
|
| +
|
| + /**
|
| + * Returns the [RefactoringProblemSeverity] with the maximal severity.
|
| + */
|
| + static RefactoringProblemSeverity max(
|
| + RefactoringProblemSeverity a, RefactoringProblemSeverity b) =>
|
| + maxRefactoringProblemSeverity(a, b);
|
| +
|
| + @override
|
| + String toString() => "RefactoringProblemSeverity.$name";
|
| +
|
| + String toJson() => name;
|
| +}
|
| +
|
| +/**
|
| + * RemoveContentOverlay
|
| + *
|
| + * {
|
| + * "type": "remove"
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class RemoveContentOverlay implements HasToJson {
|
| + RemoveContentOverlay();
|
| +
|
| + factory RemoveContentOverlay.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + if (json["type"] != "remove") {
|
| + throw jsonDecoder.mismatch(jsonPath, "equal " + "remove", json);
|
| + }
|
| + return new RemoveContentOverlay();
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "RemoveContentOverlay", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["type"] = "remove";
|
| + return result;
|
| + }
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is RemoveContentOverlay) {
|
| + return true;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, 114870849);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * SourceChange
|
| + *
|
| + * {
|
| + * "message": String
|
| + * "edits": List<SourceFileEdit>
|
| + * "linkedEditGroups": List<LinkedEditGroup>
|
| + * "selection": optional Position
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class SourceChange implements HasToJson {
|
| + String _message;
|
| +
|
| + List<SourceFileEdit> _edits;
|
| +
|
| + List<LinkedEditGroup> _linkedEditGroups;
|
| +
|
| + Position _selection;
|
| +
|
| + /**
|
| + * A human-readable description of the change to be applied.
|
| + */
|
| + String get message => _message;
|
| +
|
| + /**
|
| + * A human-readable description of the change to be applied.
|
| + */
|
| + void set message(String value) {
|
| + assert(value != null);
|
| + this._message = value;
|
| + }
|
| +
|
| + /**
|
| + * A list of the edits used to effect the change, grouped by file.
|
| + */
|
| + List<SourceFileEdit> get edits => _edits;
|
| +
|
| + /**
|
| + * A list of the edits used to effect the change, grouped by file.
|
| + */
|
| + void set edits(List<SourceFileEdit> value) {
|
| + assert(value != null);
|
| + this._edits = value;
|
| + }
|
| +
|
| + /**
|
| + * A list of the linked editing groups used to customize the changes that
|
| + * were made.
|
| + */
|
| + List<LinkedEditGroup> get linkedEditGroups => _linkedEditGroups;
|
| +
|
| + /**
|
| + * A list of the linked editing groups used to customize the changes that
|
| + * were made.
|
| + */
|
| + void set linkedEditGroups(List<LinkedEditGroup> value) {
|
| + assert(value != null);
|
| + this._linkedEditGroups = value;
|
| + }
|
| +
|
| + /**
|
| + * The position that should be selected after the edits have been applied.
|
| + */
|
| + Position get selection => _selection;
|
| +
|
| + /**
|
| + * The position that should be selected after the edits have been applied.
|
| + */
|
| + void set selection(Position value) {
|
| + this._selection = value;
|
| + }
|
| +
|
| + SourceChange(String message,
|
| + {List<SourceFileEdit> edits,
|
| + List<LinkedEditGroup> linkedEditGroups,
|
| + Position selection}) {
|
| + this.message = message;
|
| + if (edits == null) {
|
| + this.edits = <SourceFileEdit>[];
|
| + } else {
|
| + this.edits = edits;
|
| + }
|
| + if (linkedEditGroups == null) {
|
| + this.linkedEditGroups = <LinkedEditGroup>[];
|
| + } else {
|
| + this.linkedEditGroups = linkedEditGroups;
|
| + }
|
| + this.selection = selection;
|
| + }
|
| +
|
| + factory SourceChange.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String message;
|
| + if (json.containsKey("message")) {
|
| + message =
|
| + jsonDecoder.decodeString(jsonPath + ".message", json["message"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "message");
|
| + }
|
| + List<SourceFileEdit> edits;
|
| + if (json.containsKey("edits")) {
|
| + edits = jsonDecoder.decodeList(
|
| + jsonPath + ".edits",
|
| + json["edits"],
|
| + (String jsonPath, Object json) =>
|
| + new SourceFileEdit.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "edits");
|
| + }
|
| + List<LinkedEditGroup> linkedEditGroups;
|
| + if (json.containsKey("linkedEditGroups")) {
|
| + linkedEditGroups = jsonDecoder.decodeList(
|
| + jsonPath + ".linkedEditGroups",
|
| + json["linkedEditGroups"],
|
| + (String jsonPath, Object json) =>
|
| + new LinkedEditGroup.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "linkedEditGroups");
|
| + }
|
| + Position selection;
|
| + if (json.containsKey("selection")) {
|
| + selection = new Position.fromJson(
|
| + jsonDecoder, jsonPath + ".selection", json["selection"]);
|
| + }
|
| + return new SourceChange(message,
|
| + edits: edits,
|
| + linkedEditGroups: linkedEditGroups,
|
| + selection: selection);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "SourceChange", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["message"] = message;
|
| + result["edits"] =
|
| + edits.map((SourceFileEdit value) => value.toJson()).toList();
|
| + result["linkedEditGroups"] = linkedEditGroups
|
| + .map((LinkedEditGroup value) => value.toJson())
|
| + .toList();
|
| + if (selection != null) {
|
| + result["selection"] = selection.toJson();
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + /**
|
| + * Adds [edit] to the [FileEdit] for the given [file].
|
| + */
|
| + void addEdit(String file, int fileStamp, SourceEdit edit) =>
|
| + addEditToSourceChange(this, file, fileStamp, edit);
|
| +
|
| + /**
|
| + * Adds the given [FileEdit].
|
| + */
|
| + void addFileEdit(SourceFileEdit edit) {
|
| + edits.add(edit);
|
| + }
|
| +
|
| + /**
|
| + * Adds the given [LinkedEditGroup].
|
| + */
|
| + void addLinkedEditGroup(LinkedEditGroup linkedEditGroup) {
|
| + linkedEditGroups.add(linkedEditGroup);
|
| + }
|
| +
|
| + /**
|
| + * Returns the [FileEdit] for the given [file], maybe `null`.
|
| + */
|
| + SourceFileEdit getFileEdit(String file) => getChangeFileEdit(this, file);
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is SourceChange) {
|
| + return message == other.message &&
|
| + listEqual(edits, other.edits,
|
| + (SourceFileEdit a, SourceFileEdit b) => a == b) &&
|
| + listEqual(linkedEditGroups, other.linkedEditGroups,
|
| + (LinkedEditGroup a, LinkedEditGroup b) => a == b) &&
|
| + selection == other.selection;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, message.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, linkedEditGroups.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, selection.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * SourceEdit
|
| + *
|
| + * {
|
| + * "offset": int
|
| + * "length": int
|
| + * "replacement": String
|
| + * "id": optional String
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class SourceEdit implements HasToJson {
|
| + /**
|
| + * Get the result of applying a set of [edits] to the given [code]. Edits are
|
| + * applied in the order they appear in [edits].
|
| + */
|
| + static String applySequence(String code, Iterable<SourceEdit> edits) =>
|
| + applySequenceOfEdits(code, edits);
|
| +
|
| + int _offset;
|
| +
|
| + int _length;
|
| +
|
| + String _replacement;
|
| +
|
| + String _id;
|
| +
|
| + /**
|
| + * The offset of the region to be modified.
|
| + */
|
| + int get offset => _offset;
|
| +
|
| + /**
|
| + * The offset of the region to be modified.
|
| + */
|
| + void set offset(int value) {
|
| + assert(value != null);
|
| + this._offset = value;
|
| + }
|
| +
|
| + /**
|
| + * The length of the region to be modified.
|
| + */
|
| + int get length => _length;
|
| +
|
| + /**
|
| + * The length of the region to be modified.
|
| + */
|
| + void set length(int value) {
|
| + assert(value != null);
|
| + this._length = value;
|
| + }
|
| +
|
| + /**
|
| + * The code that is to replace the specified region in the original code.
|
| + */
|
| + String get replacement => _replacement;
|
| +
|
| + /**
|
| + * The code that is to replace the specified region in the original code.
|
| + */
|
| + void set replacement(String value) {
|
| + assert(value != null);
|
| + this._replacement = value;
|
| + }
|
| +
|
| + /**
|
| + * An identifier that uniquely identifies this source edit from other edits
|
| + * in the same response. This field is omitted unless a containing structure
|
| + * needs to be able to identify the edit for some reason.
|
| + *
|
| + * For example, some refactoring operations can produce edits that might not
|
| + * be appropriate (referred to as potential edits). Such edits will have an
|
| + * id so that they can be referenced. Edits in the same response that do not
|
| + * need to be referenced will not have an id.
|
| + */
|
| + String get id => _id;
|
| +
|
| + /**
|
| + * An identifier that uniquely identifies this source edit from other edits
|
| + * in the same response. This field is omitted unless a containing structure
|
| + * needs to be able to identify the edit for some reason.
|
| + *
|
| + * For example, some refactoring operations can produce edits that might not
|
| + * be appropriate (referred to as potential edits). Such edits will have an
|
| + * id so that they can be referenced. Edits in the same response that do not
|
| + * need to be referenced will not have an id.
|
| + */
|
| + void set id(String value) {
|
| + this._id = value;
|
| + }
|
| +
|
| + SourceEdit(int offset, int length, String replacement, {String id}) {
|
| + this.offset = offset;
|
| + this.length = length;
|
| + this.replacement = replacement;
|
| + this.id = id;
|
| + }
|
| +
|
| + factory SourceEdit.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + int offset;
|
| + if (json.containsKey("offset")) {
|
| + offset = jsonDecoder.decodeInt(jsonPath + ".offset", json["offset"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "offset");
|
| + }
|
| + int length;
|
| + if (json.containsKey("length")) {
|
| + length = jsonDecoder.decodeInt(jsonPath + ".length", json["length"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "length");
|
| + }
|
| + String replacement;
|
| + if (json.containsKey("replacement")) {
|
| + replacement = jsonDecoder.decodeString(
|
| + jsonPath + ".replacement", json["replacement"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "replacement");
|
| + }
|
| + String id;
|
| + if (json.containsKey("id")) {
|
| + id = jsonDecoder.decodeString(jsonPath + ".id", json["id"]);
|
| + }
|
| + return new SourceEdit(offset, length, replacement, id: id);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "SourceEdit", json);
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * The end of the region to be modified.
|
| + */
|
| + int get end => offset + length;
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["offset"] = offset;
|
| + result["length"] = length;
|
| + result["replacement"] = replacement;
|
| + if (id != null) {
|
| + result["id"] = id;
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + /**
|
| + * Get the result of applying the edit to the given [code].
|
| + */
|
| + String apply(String code) => applyEdit(code, this);
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is SourceEdit) {
|
| + return offset == other.offset &&
|
| + length == other.length &&
|
| + replacement == other.replacement &&
|
| + id == other.id;
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, offset.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, length.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, replacement.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, id.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * SourceFileEdit
|
| + *
|
| + * {
|
| + * "file": FilePath
|
| + * "fileStamp": long
|
| + * "edits": List<SourceEdit>
|
| + * }
|
| + *
|
| + * Clients may not extend, implement or mix-in this class.
|
| + */
|
| +class SourceFileEdit implements HasToJson {
|
| + String _file;
|
| +
|
| + int _fileStamp;
|
| +
|
| + List<SourceEdit> _edits;
|
| +
|
| + /**
|
| + * The file containing the code to be modified.
|
| + */
|
| + String get file => _file;
|
| +
|
| + /**
|
| + * The file containing the code to be modified.
|
| + */
|
| + void set file(String value) {
|
| + assert(value != null);
|
| + this._file = value;
|
| + }
|
| +
|
| + /**
|
| + * The modification stamp of the file at the moment when the change was
|
| + * created, in milliseconds since the "Unix epoch". Will be -1 if the file
|
| + * did not exist and should be created. The client may use this field to make
|
| + * sure that the file was not changed since then, so it is safe to apply the
|
| + * change.
|
| + */
|
| + int get fileStamp => _fileStamp;
|
| +
|
| + /**
|
| + * The modification stamp of the file at the moment when the change was
|
| + * created, in milliseconds since the "Unix epoch". Will be -1 if the file
|
| + * did not exist and should be created. The client may use this field to make
|
| + * sure that the file was not changed since then, so it is safe to apply the
|
| + * change.
|
| + */
|
| + void set fileStamp(int value) {
|
| + assert(value != null);
|
| + this._fileStamp = value;
|
| + }
|
| +
|
| + /**
|
| + * A list of the edits used to effect the change.
|
| + */
|
| + List<SourceEdit> get edits => _edits;
|
| +
|
| + /**
|
| + * A list of the edits used to effect the change.
|
| + */
|
| + void set edits(List<SourceEdit> value) {
|
| + assert(value != null);
|
| + this._edits = value;
|
| + }
|
| +
|
| + SourceFileEdit(String file, int fileStamp, {List<SourceEdit> edits}) {
|
| + this.file = file;
|
| + this.fileStamp = fileStamp;
|
| + if (edits == null) {
|
| + this.edits = <SourceEdit>[];
|
| + } else {
|
| + this.edits = edits;
|
| + }
|
| + }
|
| +
|
| + factory SourceFileEdit.fromJson(
|
| + JsonDecoder jsonDecoder, String jsonPath, Object json) {
|
| + if (json == null) {
|
| + json = {};
|
| + }
|
| + if (json is Map) {
|
| + String file;
|
| + if (json.containsKey("file")) {
|
| + file = jsonDecoder.decodeString(jsonPath + ".file", json["file"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "file");
|
| + }
|
| + int fileStamp;
|
| + if (json.containsKey("fileStamp")) {
|
| + fileStamp =
|
| + jsonDecoder.decodeInt(jsonPath + ".fileStamp", json["fileStamp"]);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "fileStamp");
|
| + }
|
| + List<SourceEdit> edits;
|
| + if (json.containsKey("edits")) {
|
| + edits = jsonDecoder.decodeList(
|
| + jsonPath + ".edits",
|
| + json["edits"],
|
| + (String jsonPath, Object json) =>
|
| + new SourceEdit.fromJson(jsonDecoder, jsonPath, json));
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "edits");
|
| + }
|
| + return new SourceFileEdit(file, fileStamp, edits: edits);
|
| + } else {
|
| + throw jsonDecoder.mismatch(jsonPath, "SourceFileEdit", json);
|
| + }
|
| + }
|
| +
|
| + @override
|
| + Map<String, dynamic> toJson() {
|
| + Map<String, dynamic> result = {};
|
| + result["file"] = file;
|
| + result["fileStamp"] = fileStamp;
|
| + result["edits"] = edits.map((SourceEdit value) => value.toJson()).toList();
|
| + return result;
|
| + }
|
| +
|
| + /**
|
| + * Adds the given [Edit] to the list.
|
| + */
|
| + void add(SourceEdit edit) => addEditForSource(this, edit);
|
| +
|
| + /**
|
| + * Adds the given [Edit]s.
|
| + */
|
| + void addAll(Iterable<SourceEdit> edits) => addAllEditsForSource(this, edits);
|
| +
|
| + @override
|
| + String toString() => JSON.encode(toJson());
|
| +
|
| + @override
|
| + bool operator ==(other) {
|
| + if (other is SourceFileEdit) {
|
| + return file == other.file &&
|
| + fileStamp == other.fileStamp &&
|
| + listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b);
|
| + }
|
| + return false;
|
| + }
|
| +
|
| + @override
|
| + int get hashCode {
|
| + int hash = 0;
|
| + hash = JenkinsSmiHash.combine(hash, file.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, fileStamp.hashCode);
|
| + hash = JenkinsSmiHash.combine(hash, edits.hashCode);
|
| + return JenkinsSmiHash.finish(hash);
|
| + }
|
| +}
|
|
|