// 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". // ignore_for_file: unnecessary_ignore, duplicate_ignore // ignore_for_file: unnecessary_type_name_in_constructor import 'dart:convert' hide JsonDecoder; import 'package:analysis_server/protocol/protocol.dart'; import 'package:analysis_server/src/protocol/protocol_internal.dart'; import 'package:analyzer_plugin/src/utilities/client_uri_converter.dart'; import 'package:analyzer_plugin/protocol/protocol_common.dart'; // We use many SCREAMING_SNAKE_CASE identifiers which might affect API. // ignore_for_file: constant_identifier_names, unnecessary_ignore /// analysis.analyzedFiles params /// /// { /// "directories": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisAnalyzedFilesParams implements HasToJson { /// A list of the paths of the files that are being analyzed. List directories; AnalysisAnalyzedFilesParams(this.directories); factory AnalysisAnalyzedFilesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List directories; if (json.containsKey('directories')) { directories = jsonDecoder.decodeList( '$jsonPath.directories', json['directories'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'directories', json); } return AnalysisAnalyzedFilesParams(directories); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.analyzedFiles params', json, ); } } factory AnalysisAnalyzedFilesParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisAnalyzedFilesParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['directories'] = directories .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.analyzedFiles', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisAnalyzedFilesParams && listEqual(directories, other.directories, (String a, String b) => a == b); @override int get hashCode => Object.hashAll(directories); } /// analysis.closingLabels params /// /// { /// "file": FilePath /// "labels": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisClosingLabelsParams implements HasToJson { /// The file the closing labels relate to. String file; /// Closing labels relevant to the file. Each item represents a useful label /// associated with some range which may be useful to display to the user /// within the editor at the end of the range to indicate what construct is /// closed at that location. Closing labels include constructor/method calls /// and List arguments that span multiple lines. Note that the ranges that /// are returned can overlap each other because they may be associated with /// constructs that can be nested. List labels; AnalysisClosingLabelsParams(this.file, this.labels); factory AnalysisClosingLabelsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List labels; if (json.containsKey('labels')) { labels = jsonDecoder.decodeList( '$jsonPath.labels', json['labels'], (String jsonPath, Object? json) => ClosingLabel.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'labels', json); } return AnalysisClosingLabelsParams(file, labels); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.closingLabels params', json, ); } } factory AnalysisClosingLabelsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisClosingLabelsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['labels'] = labels .map( (ClosingLabel value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.closingLabels', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisClosingLabelsParams && file == other.file && listEqual( labels, other.labels, (ClosingLabel a, ClosingLabel b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(labels)); } /// AnalysisErrorFixes /// /// { /// "error": AnalysisError /// "fixes": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisErrorFixes implements HasToJson { /// The error with which the fixes are associated. AnalysisError error; /// The fixes associated with the error. List fixes; AnalysisErrorFixes(this.error, {List? fixes}) : fixes = fixes ?? []; factory AnalysisErrorFixes.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { AnalysisError error; if (json.containsKey('error')) { error = AnalysisError.fromJson( jsonDecoder, '$jsonPath.error', json['error'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'error', json); } List fixes; if (json.containsKey('fixes')) { fixes = jsonDecoder.decodeList( '$jsonPath.fixes', json['fixes'], (String jsonPath, Object? json) => SourceChange.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'fixes', json); } return AnalysisErrorFixes(error, fixes: fixes); } else { throw jsonDecoder.mismatch(jsonPath, 'AnalysisErrorFixes', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['error'] = error.toJson(clientUriConverter: clientUriConverter); result['fixes'] = fixes .map( (SourceChange value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisErrorFixes && error == other.error && listEqual(fixes, other.fixes, (SourceChange a, SourceChange b) => a == b); @override int get hashCode => Object.hash(error, Object.hashAll(fixes)); } /// analysis.errors params /// /// { /// "file": FilePath /// "errors": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisErrorsParams implements HasToJson { /// The file containing the errors. String file; /// The errors contained in the file. List errors; AnalysisErrorsParams(this.file, this.errors); factory AnalysisErrorsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List errors; if (json.containsKey('errors')) { errors = jsonDecoder.decodeList( '$jsonPath.errors', json['errors'], (String jsonPath, Object? json) => AnalysisError.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'errors', json); } return AnalysisErrorsParams(file, errors); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.errors params', json); } } factory AnalysisErrorsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisErrorsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['errors'] = errors .map( (AnalysisError value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.errors', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisErrorsParams && file == other.file && listEqual( errors, other.errors, (AnalysisError a, AnalysisError b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(errors)); } /// analysis.flushResults params /// /// { /// "files": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisFlushResultsParams implements HasToJson { /// The files that are no longer being analyzed. List files; AnalysisFlushResultsParams(this.files); factory AnalysisFlushResultsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List files; if (json.containsKey('files')) { files = jsonDecoder.decodeList( '$jsonPath.files', json['files'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } return AnalysisFlushResultsParams(files); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.flushResults params', json, ); } } factory AnalysisFlushResultsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisFlushResultsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['files'] = files .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.flushResults', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisFlushResultsParams && listEqual(files, other.files, (String a, String b) => a == b); @override int get hashCode => Object.hashAll(files); } /// analysis.folding params /// /// { /// "file": FilePath /// "regions": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisFoldingParams implements HasToJson { /// The file containing the folding regions. String file; /// The folding regions contained in the file. List regions; AnalysisFoldingParams(this.file, this.regions); factory AnalysisFoldingParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List regions; if (json.containsKey('regions')) { regions = jsonDecoder.decodeList( '$jsonPath.regions', json['regions'], (String jsonPath, Object? json) => FoldingRegion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'regions', json); } return AnalysisFoldingParams(file, regions); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.folding params', json); } } factory AnalysisFoldingParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisFoldingParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['regions'] = regions .map( (FoldingRegion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.folding', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisFoldingParams && file == other.file && listEqual( regions, other.regions, (FoldingRegion a, FoldingRegion b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(regions)); } /// analysis.getErrors params /// /// { /// "file": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetErrorsParams implements RequestParams { /// The file for which errors are being requested. String file; AnalysisGetErrorsParams(this.file); factory AnalysisGetErrorsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } return AnalysisGetErrorsParams(file); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.getErrors params', json); } } factory AnalysisGetErrorsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetErrorsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getErrors', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetErrorsParams && file == other.file; @override int get hashCode => file.hashCode; } /// analysis.getErrors result /// /// { /// "errors": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetErrorsResult implements ResponseResult { /// The errors associated with the file. List errors; AnalysisGetErrorsResult(this.errors); factory AnalysisGetErrorsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List errors; if (json.containsKey('errors')) { errors = jsonDecoder.decodeList( '$jsonPath.errors', json['errors'], (String jsonPath, Object? json) => AnalysisError.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'errors', json); } return AnalysisGetErrorsResult(errors); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.getErrors result', json); } } factory AnalysisGetErrorsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetErrorsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['errors'] = errors .map( (AnalysisError value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetErrorsResult && listEqual( errors, other.errors, (AnalysisError a, AnalysisError b) => a == b, ); @override int get hashCode => Object.hashAll(errors); } /// analysis.getHover params /// /// { /// "file": FilePath /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetHoverParams implements RequestParams { /// The file in which hover information is being requested. String file; /// The offset for which hover information is being requested. int offset; AnalysisGetHoverParams(this.file, this.offset); factory AnalysisGetHoverParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return AnalysisGetHoverParams(file, offset); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.getHover params', json); } } factory AnalysisGetHoverParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetHoverParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getHover', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetHoverParams && file == other.file && offset == other.offset; @override int get hashCode => Object.hash(file, offset); } /// analysis.getHover result /// /// { /// "hovers": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetHoverResult implements ResponseResult { /// The hover information associated with the location. The list will be /// empty if no information could be determined for the location. The list /// can contain multiple items if the file is being analyzed in multiple /// contexts in conflicting ways (such as a part that is included in multiple /// libraries). List hovers; AnalysisGetHoverResult(this.hovers); factory AnalysisGetHoverResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List hovers; if (json.containsKey('hovers')) { hovers = jsonDecoder.decodeList( '$jsonPath.hovers', json['hovers'], (String jsonPath, Object? json) => HoverInformation.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'hovers', json); } return AnalysisGetHoverResult(hovers); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.getHover result', json); } } factory AnalysisGetHoverResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetHoverResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['hovers'] = hovers .map( (HoverInformation value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetHoverResult && listEqual( hovers, other.hovers, (HoverInformation a, HoverInformation b) => a == b, ); @override int get hashCode => Object.hashAll(hovers); } /// analysis.getImportedElements params /// /// { /// "file": FilePath /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetImportedElementsParams implements RequestParams { /// The file in which import information is being requested. String file; /// The offset of the region for which import information is being requested. int offset; /// The length of the region for which import information is being requested. int length; AnalysisGetImportedElementsParams(this.file, this.offset, this.length); factory AnalysisGetImportedElementsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return AnalysisGetImportedElementsParams(file, offset, length); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getImportedElements params', json, ); } } factory AnalysisGetImportedElementsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetImportedElementsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getImportedElements', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetImportedElementsParams && file == other.file && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(file, offset, length); } /// analysis.getImportedElements result /// /// { /// "elements": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetImportedElementsResult implements ResponseResult { /// The information about the elements that are referenced in the specified /// region of the specified file that come from imported libraries. List elements; AnalysisGetImportedElementsResult(this.elements); factory AnalysisGetImportedElementsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List elements; if (json.containsKey('elements')) { elements = jsonDecoder.decodeList( '$jsonPath.elements', json['elements'], (String jsonPath, Object? json) => ImportedElements.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'elements', json); } return AnalysisGetImportedElementsResult(elements); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getImportedElements result', json, ); } } factory AnalysisGetImportedElementsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetImportedElementsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['elements'] = elements .map( (ImportedElements value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetImportedElementsResult && listEqual( elements, other.elements, (ImportedElements a, ImportedElements b) => a == b, ); @override int get hashCode => Object.hashAll(elements); } /// analysis.getLibraryDependencies params /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetLibraryDependenciesParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'analysis.getLibraryDependencies'); } @override bool operator ==(Object other) => other is AnalysisGetLibraryDependenciesParams; @override int get hashCode => 246577680; } /// analysis.getLibraryDependencies result /// /// { /// "libraries": List /// "packageMap": Map>> /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetLibraryDependenciesResult implements ResponseResult { /// A list of the paths of library elements referenced by files in existing /// analysis roots. List libraries; /// A mapping from context source roots to package maps which map package /// names to source directories for use in client-side package URI /// resolution. Map>> packageMap; AnalysisGetLibraryDependenciesResult(this.libraries, this.packageMap); factory AnalysisGetLibraryDependenciesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List libraries; if (json.containsKey('libraries')) { libraries = jsonDecoder.decodeList( '$jsonPath.libraries', json['libraries'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'libraries', json); } Map>> packageMap; if (json.containsKey('packageMap')) { packageMap = jsonDecoder.decodeMap( '$jsonPath.packageMap', json['packageMap'], valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeMap( jsonPath, json, valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeList( jsonPath, json, (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ), ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'packageMap', json); } return AnalysisGetLibraryDependenciesResult(libraries, packageMap); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getLibraryDependencies result', json, ); } } factory AnalysisGetLibraryDependenciesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetLibraryDependenciesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['libraries'] = libraries .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); result['packageMap'] = mapMap( packageMap, valueCallback: (Map> value) => mapMap( value, valueCallback: (List value) => value .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(), ), ); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetLibraryDependenciesResult && listEqual(libraries, other.libraries, (String a, String b) => a == b) && mapEqual( packageMap, other.packageMap, (Map> a, Map> b) => mapEqual( a, b, (List a, List b) => listEqual(a, b, (String a, String b) => a == b), ), ); @override int get hashCode => Object.hash( Object.hashAll(libraries), Object.hashAll([...packageMap.keys, ...packageMap.values]), ); } /// analysis.getNavigation params /// /// { /// "file": FilePath /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetNavigationParams implements RequestParams { /// The file in which navigation information is being requested. String file; /// The offset of the region for which navigation information is being /// requested. int offset; /// The length of the region for which navigation information is being /// requested. int length; AnalysisGetNavigationParams(this.file, this.offset, this.length); factory AnalysisGetNavigationParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return AnalysisGetNavigationParams(file, offset, length); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getNavigation params', json, ); } } factory AnalysisGetNavigationParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetNavigationParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getNavigation', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetNavigationParams && file == other.file && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(file, offset, length); } /// analysis.getNavigation result /// /// { /// "files": List /// "targets": List /// "regions": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetNavigationResult implements ResponseResult { /// A list of the paths of files that are referenced by the navigation /// targets. List files; /// A list of the navigation targets that are referenced by the navigation /// regions. List targets; /// A list of the navigation regions within the requested region of the file. List regions; AnalysisGetNavigationResult(this.files, this.targets, this.regions); factory AnalysisGetNavigationResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List files; if (json.containsKey('files')) { files = jsonDecoder.decodeList( '$jsonPath.files', json['files'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } List targets; if (json.containsKey('targets')) { targets = jsonDecoder.decodeList( '$jsonPath.targets', json['targets'], (String jsonPath, Object? json) => NavigationTarget.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'targets', json); } List regions; if (json.containsKey('regions')) { regions = jsonDecoder.decodeList( '$jsonPath.regions', json['regions'], (String jsonPath, Object? json) => NavigationRegion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'regions', json); } return AnalysisGetNavigationResult(files, targets, regions); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getNavigation result', json, ); } } factory AnalysisGetNavigationResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetNavigationResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['files'] = files .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); result['targets'] = targets .map( (NavigationTarget value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['regions'] = regions .map( (NavigationRegion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetNavigationResult && listEqual(files, other.files, (String a, String b) => a == b) && listEqual( targets, other.targets, (NavigationTarget a, NavigationTarget b) => a == b, ) && listEqual( regions, other.regions, (NavigationRegion a, NavigationRegion b) => a == b, ); @override int get hashCode => Object.hash( Object.hashAll(files), Object.hashAll(targets), Object.hashAll(regions), ); } /// analysis.getReachableSources params /// /// { /// "file": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetReachableSourcesParams implements RequestParams { /// The file for which reachable source information is being requested. String file; AnalysisGetReachableSourcesParams(this.file); factory AnalysisGetReachableSourcesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } return AnalysisGetReachableSourcesParams(file); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getReachableSources params', json, ); } } factory AnalysisGetReachableSourcesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetReachableSourcesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getReachableSources', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetReachableSourcesParams && file == other.file; @override int get hashCode => file.hashCode; } /// analysis.getReachableSources result /// /// { /// "sources": Map> /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetReachableSourcesResult implements ResponseResult { /// A mapping from source URIs to directly reachable source URIs. For /// example, a file "foo.dart" that imports "bar.dart" would have the /// corresponding mapping { "file:///foo.dart" : ["file:///bar.dart"] }. If /// "bar.dart" has further imports (or exports) there will be a mapping from /// the URI "file:///bar.dart" to them. To check if a specific URI is /// reachable from a given file, clients can check for its presence in the /// resulting key set. Map> sources; AnalysisGetReachableSourcesResult(this.sources); factory AnalysisGetReachableSourcesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Map> sources; if (json.containsKey('sources')) { sources = jsonDecoder.decodeMap( '$jsonPath.sources', json['sources'], valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeList(jsonPath, json, jsonDecoder.decodeString), ); } else { throw jsonDecoder.mismatch(jsonPath, 'sources', json); } return AnalysisGetReachableSourcesResult(sources); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getReachableSources result', json, ); } } factory AnalysisGetReachableSourcesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetReachableSourcesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['sources'] = sources; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetReachableSourcesResult && mapEqual( sources, other.sources, (List a, List b) => listEqual(a, b, (String a, String b) => a == b), ); @override int get hashCode => Object.hashAll([...sources.keys, ...sources.values]); } /// analysis.getSignature params /// /// { /// "file": FilePath /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetSignatureParams implements RequestParams { /// The file in which signature information is being requested. String file; /// The location for which signature information is being requested. int offset; AnalysisGetSignatureParams(this.file, this.offset); factory AnalysisGetSignatureParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return AnalysisGetSignatureParams(file, offset); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getSignature params', json, ); } } factory AnalysisGetSignatureParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetSignatureParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.getSignature', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetSignatureParams && file == other.file && offset == other.offset; @override int get hashCode => Object.hash(file, offset); } /// analysis.getSignature result /// /// { /// "name": String /// "parameters": List /// "dartdoc": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisGetSignatureResult implements ResponseResult { /// The name of the function being invoked at the given offset. String name; /// A list of information about each of the parameters of the function being /// invoked. List parameters; /// The dartdoc associated with the function being invoked. Other than the /// removal of the comment delimiters, including leading asterisks in the /// case of a block comment, the dartdoc is unprocessed markdown. This data /// is omitted if there is no referenced element, or if the element has no /// dartdoc. String? dartdoc; AnalysisGetSignatureResult(this.name, this.parameters, {this.dartdoc}); factory AnalysisGetSignatureResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } List parameters; if (json.containsKey('parameters')) { parameters = jsonDecoder.decodeList( '$jsonPath.parameters', json['parameters'], (String jsonPath, Object? json) => ParameterInfo.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'parameters', json); } String? dartdoc; if (json.containsKey('dartdoc')) { dartdoc = jsonDecoder.decodeString( '$jsonPath.dartdoc', json['dartdoc'], ); } return AnalysisGetSignatureResult(name, parameters, dartdoc: dartdoc); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.getSignature result', json, ); } } factory AnalysisGetSignatureResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisGetSignatureResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['parameters'] = parameters .map( (ParameterInfo value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); var dartdoc = this.dartdoc; if (dartdoc != null) { result['dartdoc'] = dartdoc; } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisGetSignatureResult && name == other.name && listEqual( parameters, other.parameters, (ParameterInfo a, ParameterInfo b) => a == b, ) && dartdoc == other.dartdoc; @override int get hashCode => Object.hash(name, Object.hashAll(parameters), dartdoc); } /// analysis.highlights params /// /// { /// "file": FilePath /// "regions": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisHighlightsParams implements HasToJson { /// The file containing the highlight regions. String file; /// The highlight regions contained in the file. Each highlight region /// represents a particular syntactic or semantic meaning associated with /// some range. Note that the highlight regions that are returned can overlap /// other highlight regions if there is more than one meaning associated with /// a particular region. List regions; AnalysisHighlightsParams(this.file, this.regions); factory AnalysisHighlightsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List regions; if (json.containsKey('regions')) { regions = jsonDecoder.decodeList( '$jsonPath.regions', json['regions'], (String jsonPath, Object? json) => HighlightRegion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'regions', json); } return AnalysisHighlightsParams(file, regions); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.highlights params', json); } } factory AnalysisHighlightsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisHighlightsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['regions'] = regions .map( (HighlightRegion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.highlights', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisHighlightsParams && file == other.file && listEqual( regions, other.regions, (HighlightRegion a, HighlightRegion b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(regions)); } /// analysis.implemented params /// /// { /// "file": FilePath /// "classes": List /// "members": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisImplementedParams implements HasToJson { /// The file with which the implementations are associated. String file; /// The classes defined in the file that are implemented or extended. List classes; /// The members defined in the file that are implemented or overridden. List members; AnalysisImplementedParams(this.file, this.classes, this.members); factory AnalysisImplementedParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List classes; if (json.containsKey('classes')) { classes = jsonDecoder.decodeList( '$jsonPath.classes', json['classes'], (String jsonPath, Object? json) => ImplementedClass.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'classes', json); } List members; if (json.containsKey('members')) { members = jsonDecoder.decodeList( '$jsonPath.members', json['members'], (String jsonPath, Object? json) => ImplementedMember.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'members', json); } return AnalysisImplementedParams(file, classes, members); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.implemented params', json); } } factory AnalysisImplementedParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisImplementedParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['classes'] = classes .map( (ImplementedClass value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['members'] = members .map( (ImplementedMember value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.implemented', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisImplementedParams && file == other.file && listEqual( classes, other.classes, (ImplementedClass a, ImplementedClass b) => a == b, ) && listEqual( members, other.members, (ImplementedMember a, ImplementedMember b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(classes), Object.hashAll(members)); } /// analysis.invalidate params /// /// { /// "file": FilePath /// "offset": int /// "length": int /// "delta": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisInvalidateParams implements HasToJson { /// The file whose information has been invalidated. String file; /// The offset of the invalidated region. int offset; /// The length of the invalidated region. int length; /// The delta to be applied to the offsets in information that follows the /// invalidated region in order to update it so that it doesn't need to be /// re-requested. int delta; AnalysisInvalidateParams(this.file, this.offset, this.length, this.delta); factory AnalysisInvalidateParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } int delta; if (json.containsKey('delta')) { delta = jsonDecoder.decodeInt('$jsonPath.delta', json['delta']); } else { throw jsonDecoder.mismatch(jsonPath, 'delta', json); } return AnalysisInvalidateParams(file, offset, length, delta); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.invalidate params', json); } } factory AnalysisInvalidateParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisInvalidateParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; result['delta'] = delta; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.invalidate', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisInvalidateParams && file == other.file && offset == other.offset && length == other.length && delta == other.delta; @override int get hashCode => Object.hash(file, offset, length, delta); } /// analysis.navigation params /// /// { /// "file": FilePath /// "regions": List /// "targets": List /// "files": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisNavigationParams implements HasToJson { /// The file containing the navigation regions. String file; /// The navigation regions contained in the file. The regions are sorted by /// their offsets. Each navigation region represents a list of targets /// associated with some range. The lists will usually contain a single /// target, but can contain more in the case of a part that is included in /// multiple libraries or in Dart code that is compiled against multiple /// versions of a package. Note that the navigation regions that are returned /// do not overlap other navigation regions. List regions; /// The navigation targets referenced in the file. They are referenced by /// `NavigationRegion`s by their index in this array. List targets; /// The files containing navigation targets referenced in the file. They are /// referenced by `NavigationTarget`s by their index in this array. List files; AnalysisNavigationParams(this.file, this.regions, this.targets, this.files); factory AnalysisNavigationParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List regions; if (json.containsKey('regions')) { regions = jsonDecoder.decodeList( '$jsonPath.regions', json['regions'], (String jsonPath, Object? json) => NavigationRegion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'regions', json); } List targets; if (json.containsKey('targets')) { targets = jsonDecoder.decodeList( '$jsonPath.targets', json['targets'], (String jsonPath, Object? json) => NavigationTarget.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'targets', json); } List files; if (json.containsKey('files')) { files = jsonDecoder.decodeList( '$jsonPath.files', json['files'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } return AnalysisNavigationParams(file, regions, targets, files); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.navigation params', json); } } factory AnalysisNavigationParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisNavigationParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['regions'] = regions .map( (NavigationRegion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['targets'] = targets .map( (NavigationTarget value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['files'] = files .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.navigation', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisNavigationParams && file == other.file && listEqual( regions, other.regions, (NavigationRegion a, NavigationRegion b) => a == b, ) && listEqual( targets, other.targets, (NavigationTarget a, NavigationTarget b) => a == b, ) && listEqual(files, other.files, (String a, String b) => a == b); @override int get hashCode => Object.hash( file, Object.hashAll(regions), Object.hashAll(targets), Object.hashAll(files), ); } /// analysis.occurrences params /// /// { /// "file": FilePath /// "occurrences": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisOccurrencesParams implements HasToJson { /// The file in which the references occur. String file; /// The occurrences of references to elements within the file. List occurrences; AnalysisOccurrencesParams(this.file, this.occurrences); factory AnalysisOccurrencesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List occurrences; if (json.containsKey('occurrences')) { occurrences = jsonDecoder.decodeList( '$jsonPath.occurrences', json['occurrences'], (String jsonPath, Object? json) => Occurrences.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'occurrences', json); } return AnalysisOccurrencesParams(file, occurrences); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.occurrences params', json); } } factory AnalysisOccurrencesParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisOccurrencesParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['occurrences'] = occurrences .map( (Occurrences value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.occurrences', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisOccurrencesParams && file == other.file && listEqual( occurrences, other.occurrences, (Occurrences a, Occurrences b) => a == b, ); @override int get hashCode => Object.hash(file, Object.hashAll(occurrences)); } /// AnalysisOptions /// /// { /// "enableAsync": optional bool /// "enableDeferredLoading": optional bool /// "enableEnums": optional bool /// "enableNullAwareOperators": optional bool /// "generateDart2jsHints": optional bool /// "generateHints": optional bool /// "generateLints": optional bool /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisOptions implements HasToJson { /// Deprecated: this feature is always enabled. /// /// True if the client wants to enable support for the proposed async /// feature. bool? enableAsync; /// Deprecated: this feature is always enabled. /// /// True if the client wants to enable support for the proposed deferred /// loading feature. bool? enableDeferredLoading; /// Deprecated: this feature is always enabled. /// /// True if the client wants to enable support for the proposed enum feature. bool? enableEnums; /// Deprecated: this feature is always enabled. /// /// True if the client wants to enable support for the proposed "null aware /// operators" feature. bool? enableNullAwareOperators; /// True if hints that are specific to dart2js should be generated. This /// option is ignored if generateHints is false. bool? generateDart2jsHints; /// True if hints should be generated as part of generating errors and /// warnings. bool? generateHints; /// True if lints should be generated as part of generating errors and /// warnings. bool? generateLints; AnalysisOptions({ this.enableAsync, this.enableDeferredLoading, this.enableEnums, this.enableNullAwareOperators, this.generateDart2jsHints, this.generateHints, this.generateLints, }); factory AnalysisOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool? enableAsync; if (json.containsKey('enableAsync')) { enableAsync = jsonDecoder.decodeBool( '$jsonPath.enableAsync', json['enableAsync'], ); } bool? enableDeferredLoading; if (json.containsKey('enableDeferredLoading')) { enableDeferredLoading = jsonDecoder.decodeBool( '$jsonPath.enableDeferredLoading', json['enableDeferredLoading'], ); } bool? enableEnums; if (json.containsKey('enableEnums')) { enableEnums = jsonDecoder.decodeBool( '$jsonPath.enableEnums', json['enableEnums'], ); } bool? enableNullAwareOperators; if (json.containsKey('enableNullAwareOperators')) { enableNullAwareOperators = jsonDecoder.decodeBool( '$jsonPath.enableNullAwareOperators', json['enableNullAwareOperators'], ); } bool? generateDart2jsHints; if (json.containsKey('generateDart2jsHints')) { generateDart2jsHints = jsonDecoder.decodeBool( '$jsonPath.generateDart2jsHints', json['generateDart2jsHints'], ); } bool? generateHints; if (json.containsKey('generateHints')) { generateHints = jsonDecoder.decodeBool( '$jsonPath.generateHints', json['generateHints'], ); } bool? generateLints; if (json.containsKey('generateLints')) { generateLints = jsonDecoder.decodeBool( '$jsonPath.generateLints', json['generateLints'], ); } return AnalysisOptions( enableAsync: enableAsync, enableDeferredLoading: enableDeferredLoading, enableEnums: enableEnums, enableNullAwareOperators: enableNullAwareOperators, generateDart2jsHints: generateDart2jsHints, generateHints: generateHints, generateLints: generateLints, ); } else { throw jsonDecoder.mismatch(jsonPath, 'AnalysisOptions', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var enableAsync = this.enableAsync; if (enableAsync != null) { result['enableAsync'] = enableAsync; } var enableDeferredLoading = this.enableDeferredLoading; if (enableDeferredLoading != null) { result['enableDeferredLoading'] = enableDeferredLoading; } var enableEnums = this.enableEnums; if (enableEnums != null) { result['enableEnums'] = enableEnums; } var enableNullAwareOperators = this.enableNullAwareOperators; if (enableNullAwareOperators != null) { result['enableNullAwareOperators'] = enableNullAwareOperators; } var generateDart2jsHints = this.generateDart2jsHints; if (generateDart2jsHints != null) { result['generateDart2jsHints'] = generateDart2jsHints; } var generateHints = this.generateHints; if (generateHints != null) { result['generateHints'] = generateHints; } var generateLints = this.generateLints; if (generateLints != null) { result['generateLints'] = generateLints; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisOptions && enableAsync == other.enableAsync && enableDeferredLoading == other.enableDeferredLoading && enableEnums == other.enableEnums && enableNullAwareOperators == other.enableNullAwareOperators && generateDart2jsHints == other.generateDart2jsHints && generateHints == other.generateHints && generateLints == other.generateLints; @override int get hashCode => Object.hash( enableAsync, enableDeferredLoading, enableEnums, enableNullAwareOperators, generateDart2jsHints, generateHints, generateLints, ); } /// analysis.outline params /// /// { /// "file": FilePath /// "kind": FileKind /// "libraryName": optional String /// "outline": Outline /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisOutlineParams implements HasToJson { /// The file with which the outline is associated. String file; /// The kind of the file. FileKind kind; /// The name of the library defined by the file using a "library" directive, /// or referenced by a "part of" directive. If both "library" and "part of" /// directives are present, then the "library" directive takes precedence. /// This field will be omitted if the file has neither "library" nor "part /// of" directives. String? libraryName; /// The outline associated with the file. Outline outline; AnalysisOutlineParams(this.file, this.kind, this.outline, {this.libraryName}); factory AnalysisOutlineParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } FileKind kind; if (json.containsKey('kind')) { kind = FileKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } String? libraryName; if (json.containsKey('libraryName')) { libraryName = jsonDecoder.decodeString( '$jsonPath.libraryName', json['libraryName'], ); } Outline outline; if (json.containsKey('outline')) { outline = Outline.fromJson( jsonDecoder, '$jsonPath.outline', json['outline'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'outline', json); } return AnalysisOutlineParams( file, kind, outline, libraryName: libraryName, ); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.outline params', json); } } factory AnalysisOutlineParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisOutlineParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); var libraryName = this.libraryName; if (libraryName != null) { result['libraryName'] = libraryName; } result['outline'] = outline.toJson(clientUriConverter: clientUriConverter); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.outline', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisOutlineParams && file == other.file && kind == other.kind && libraryName == other.libraryName && outline == other.outline; @override int get hashCode => Object.hash(file, kind, libraryName, outline); } /// analysis.overrides params /// /// { /// "file": FilePath /// "overrides": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisOverridesParams implements HasToJson { /// The file with which the overrides are associated. String file; /// The overrides associated with the file. List overrides; AnalysisOverridesParams(this.file, this.overrides); factory AnalysisOverridesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List overrides; if (json.containsKey('overrides')) { overrides = jsonDecoder.decodeList( '$jsonPath.overrides', json['overrides'], (String jsonPath, Object? json) => Override.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'overrides', json); } return AnalysisOverridesParams(file, overrides); } else { throw jsonDecoder.mismatch(jsonPath, 'analysis.overrides params', json); } } factory AnalysisOverridesParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return AnalysisOverridesParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['overrides'] = overrides .map( (Override value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'analysis.overrides', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisOverridesParams && file == other.file && listEqual(overrides, other.overrides, (Override a, Override b) => a == b); @override int get hashCode => Object.hash(file, Object.hashAll(overrides)); } /// analysis.reanalyze params /// /// Clients may not extend, implement or mix-in this class. class AnalysisReanalyzeParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'analysis.reanalyze'); } @override bool operator ==(Object other) => other is AnalysisReanalyzeParams; @override int get hashCode => 613039876; } /// analysis.reanalyze result /// /// Clients may not extend, implement or mix-in this class. class AnalysisReanalyzeResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisReanalyzeResult; @override int get hashCode => 846803925; } /// AnalysisService /// /// enum { /// CLOSING_LABELS /// FOLDING /// HIGHLIGHTS /// IMPLEMENTED /// INVALIDATE /// NAVIGATION /// OCCURRENCES /// OUTLINE /// OVERRIDES /// } /// /// Clients may not extend, implement or mix-in this class. enum AnalysisService { CLOSING_LABELS, FOLDING, HIGHLIGHTS, IMPLEMENTED, /// This service is not currently implemented and will become a /// GeneralAnalysisService in a future release. INVALIDATE, NAVIGATION, OCCURRENCES, OUTLINE, OVERRIDES; factory AnalysisService.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'AnalysisService', json); } @override String toString() => 'AnalysisService.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// analysis.setAnalysisRoots params /// /// { /// "included": List /// "excluded": List /// "packageRoots": optional Map /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetAnalysisRootsParams implements RequestParams { /// A list of the files and directories that should be analyzed. List included; /// A list of the files and directories within the included directories that /// should not be analyzed. List excluded; /// A mapping from source directories to package roots that should override /// the normal package: URI resolution mechanism. /// /// If a package root is a file, then the analyzer will behave as though that /// file is a ".dart_tool/package_config.json" file in the source directory. /// The effect is the same as specifying the file as a "--packages" parameter /// to the Dart VM when executing any Dart file inside the source directory. /// /// Files in any directories that are not overridden by this mapping have /// their package: URI's resolved using the normal pubspec.yaml mechanism. If /// this field is absent, or the empty map is specified, that indicates that /// the normal pubspec.yaml mechanism should always be used. Map? packageRoots; AnalysisSetAnalysisRootsParams( this.included, this.excluded, { this.packageRoots, }); factory AnalysisSetAnalysisRootsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List included; if (json.containsKey('included')) { included = jsonDecoder.decodeList( '$jsonPath.included', json['included'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'included', json); } List excluded; if (json.containsKey('excluded')) { excluded = jsonDecoder.decodeList( '$jsonPath.excluded', json['excluded'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'excluded', json); } Map? packageRoots; if (json.containsKey('packageRoots')) { packageRoots = jsonDecoder.decodeMap( '$jsonPath.packageRoots', json['packageRoots'], keyDecoder: (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), valueDecoder: (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } return AnalysisSetAnalysisRootsParams( included, excluded, packageRoots: packageRoots, ); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.setAnalysisRoots params', json, ); } } factory AnalysisSetAnalysisRootsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisSetAnalysisRootsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['included'] = included .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); result['excluded'] = excluded .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); var packageRoots = this.packageRoots; if (packageRoots != null) { result['packageRoots'] = mapMap( packageRoots, keyCallback: (String value) => clientUriConverter?.toClientFilePath(value) ?? value, valueCallback: (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ); } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.setAnalysisRoots', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisSetAnalysisRootsParams && listEqual(included, other.included, (String a, String b) => a == b) && listEqual(excluded, other.excluded, (String a, String b) => a == b) && mapEqual( packageRoots, other.packageRoots, (String a, String b) => a == b, ); @override int get hashCode => Object.hash( Object.hashAll(included), Object.hashAll(excluded), Object.hashAll([...?packageRoots?.keys, ...?packageRoots?.values]), ); } /// analysis.setAnalysisRoots result /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetAnalysisRootsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisSetAnalysisRootsResult; @override int get hashCode => 866004753; } /// analysis.setGeneralSubscriptions params /// /// { /// "subscriptions": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetGeneralSubscriptionsParams implements RequestParams { /// A list of the services being subscribed to. List subscriptions; AnalysisSetGeneralSubscriptionsParams(this.subscriptions); factory AnalysisSetGeneralSubscriptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List subscriptions; if (json.containsKey('subscriptions')) { subscriptions = jsonDecoder.decodeList( '$jsonPath.subscriptions', json['subscriptions'], (String jsonPath, Object? json) => GeneralAnalysisService.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'subscriptions', json); } return AnalysisSetGeneralSubscriptionsParams(subscriptions); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.setGeneralSubscriptions params', json, ); } } factory AnalysisSetGeneralSubscriptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisSetGeneralSubscriptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['subscriptions'] = subscriptions .map( (GeneralAnalysisService value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.setGeneralSubscriptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisSetGeneralSubscriptionsParams && listEqual( subscriptions, other.subscriptions, (GeneralAnalysisService a, GeneralAnalysisService b) => a == b, ); @override int get hashCode => Object.hashAll(subscriptions); } /// analysis.setGeneralSubscriptions result /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetGeneralSubscriptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisSetGeneralSubscriptionsResult; @override int get hashCode => 386759562; } /// analysis.setPriorityFiles params /// /// { /// "files": List /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetPriorityFilesParams implements RequestParams { /// The files that are to be a priority for analysis. List files; AnalysisSetPriorityFilesParams(this.files); factory AnalysisSetPriorityFilesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List files; if (json.containsKey('files')) { files = jsonDecoder.decodeList( '$jsonPath.files', json['files'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } return AnalysisSetPriorityFilesParams(files); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.setPriorityFiles params', json, ); } } factory AnalysisSetPriorityFilesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisSetPriorityFilesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['files'] = files .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.setPriorityFiles', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisSetPriorityFilesParams && listEqual(files, other.files, (String a, String b) => a == b); @override int get hashCode => Object.hashAll(files); } /// analysis.setPriorityFiles result /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetPriorityFilesResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisSetPriorityFilesResult; @override int get hashCode => 330050055; } /// analysis.setSubscriptions params /// /// { /// "subscriptions": Map> /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetSubscriptionsParams implements RequestParams { /// A table mapping services to a list of the files being subscribed to the /// service. Map> subscriptions; AnalysisSetSubscriptionsParams(this.subscriptions); factory AnalysisSetSubscriptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Map> subscriptions; if (json.containsKey('subscriptions')) { subscriptions = jsonDecoder.decodeMap( '$jsonPath.subscriptions', json['subscriptions'], keyDecoder: (String jsonPath, Object? json) => AnalysisService.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeList( jsonPath, json, (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'subscriptions', json); } return AnalysisSetSubscriptionsParams(subscriptions); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.setSubscriptions params', json, ); } } factory AnalysisSetSubscriptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisSetSubscriptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['subscriptions'] = mapMap( subscriptions, keyCallback: (AnalysisService value) => value.toJson(clientUriConverter: clientUriConverter), valueCallback: (List value) => value .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(), ); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.setSubscriptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisSetSubscriptionsParams && mapEqual( subscriptions, other.subscriptions, (List a, List b) => listEqual(a, b, (String a, String b) => a == b), ); @override int get hashCode => Object.hashAll([...subscriptions.keys, ...subscriptions.values]); } /// analysis.setSubscriptions result /// /// Clients may not extend, implement or mix-in this class. class AnalysisSetSubscriptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisSetSubscriptionsResult; @override int get hashCode => 218088493; } /// AnalysisStatus /// /// { /// "isAnalyzing": bool /// "analysisTarget": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisStatus implements HasToJson { /// True if analysis is currently being performed. bool isAnalyzing; /// The name of the current target of analysis. This field is omitted if /// analyzing is false. String? analysisTarget; AnalysisStatus(this.isAnalyzing, {this.analysisTarget}); factory AnalysisStatus.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool isAnalyzing; if (json.containsKey('isAnalyzing')) { isAnalyzing = jsonDecoder.decodeBool( '$jsonPath.isAnalyzing', json['isAnalyzing'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isAnalyzing', json); } String? analysisTarget; if (json.containsKey('analysisTarget')) { analysisTarget = jsonDecoder.decodeString( '$jsonPath.analysisTarget', json['analysisTarget'], ); } return AnalysisStatus(isAnalyzing, analysisTarget: analysisTarget); } else { throw jsonDecoder.mismatch(jsonPath, 'AnalysisStatus', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['isAnalyzing'] = isAnalyzing; var analysisTarget = this.analysisTarget; if (analysisTarget != null) { result['analysisTarget'] = analysisTarget; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisStatus && isAnalyzing == other.isAnalyzing && analysisTarget == other.analysisTarget; @override int get hashCode => Object.hash(isAnalyzing, analysisTarget); } /// analysis.updateContent params /// /// { /// "files": Map /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisUpdateContentParams implements RequestParams { /// A table mapping the files whose content has changed to a description of /// the content change. Map files; AnalysisUpdateContentParams(this.files); factory AnalysisUpdateContentParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Map files; if (json.containsKey('files')) { files = jsonDecoder.decodeMap( '$jsonPath.files', json['files'], keyDecoder: (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeUnion(jsonPath, json, 'type', { 'add': (String jsonPath, Object? json) => AddContentOverlay.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), 'change': (String jsonPath, Object? json) => ChangeContentOverlay.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), 'remove': (String jsonPath, Object? json) => RemoveContentOverlay.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), }), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } return AnalysisUpdateContentParams(files); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.updateContent params', json, ); } } factory AnalysisUpdateContentParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisUpdateContentParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['files'] = mapMap( files, keyCallback: (String value) => clientUriConverter?.toClientFilePath(value) ?? value, valueCallback: (Object value) => (value as dynamic).toJson(), ); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.updateContent', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisUpdateContentParams && mapEqual(files, other.files, (Object a, Object b) => a == b); @override int get hashCode => Object.hashAll([...files.keys, ...files.values]); } /// analysis.updateContent result /// /// { /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisUpdateContentResult implements ResponseResult { AnalysisUpdateContentResult(); factory AnalysisUpdateContentResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { return AnalysisUpdateContentResult(); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.updateContent result', json, ); } } factory AnalysisUpdateContentResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalysisUpdateContentResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisUpdateContentResult; @override int get hashCode => 0; } /// analysis.updateOptions params /// /// { /// "options": AnalysisOptions /// } /// /// Clients may not extend, implement or mix-in this class. class AnalysisUpdateOptionsParams implements RequestParams { /// The options that are to be used to control analysis. AnalysisOptions options; AnalysisUpdateOptionsParams(this.options); factory AnalysisUpdateOptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { AnalysisOptions options; if (json.containsKey('options')) { options = AnalysisOptions.fromJson( jsonDecoder, '$jsonPath.options', json['options'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'options', json); } return AnalysisUpdateOptionsParams(options); } else { throw jsonDecoder.mismatch( jsonPath, 'analysis.updateOptions params', json, ); } } factory AnalysisUpdateOptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalysisUpdateOptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['options'] = options.toJson(clientUriConverter: clientUriConverter); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analysis.updateOptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalysisUpdateOptionsParams && options == other.options; @override int get hashCode => options.hashCode; } /// analysis.updateOptions result /// /// Clients may not extend, implement or mix-in this class. class AnalysisUpdateOptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalysisUpdateOptionsResult; @override int get hashCode => 179689467; } /// analytics.enable params /// /// { /// "value": bool /// } /// /// Clients may not extend, implement or mix-in this class. class AnalyticsEnableParams implements RequestParams { /// Enable or disable analytics. bool value; AnalyticsEnableParams(this.value); factory AnalyticsEnableParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool value; if (json.containsKey('value')) { value = jsonDecoder.decodeBool('$jsonPath.value', json['value']); } else { throw jsonDecoder.mismatch(jsonPath, 'value', json); } return AnalyticsEnableParams(value); } else { throw jsonDecoder.mismatch(jsonPath, 'analytics.enable params', json); } } factory AnalyticsEnableParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalyticsEnableParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['value'] = value; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analytics.enable', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalyticsEnableParams && value == other.value; @override int get hashCode => value.hashCode; } /// analytics.enable result /// /// Clients may not extend, implement or mix-in this class. class AnalyticsEnableResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalyticsEnableResult; @override int get hashCode => 237990792; } /// analytics.isEnabled params /// /// Clients may not extend, implement or mix-in this class. class AnalyticsIsEnabledParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'analytics.isEnabled'); } @override bool operator ==(Object other) => other is AnalyticsIsEnabledParams; @override int get hashCode => 57215544; } /// analytics.isEnabled result /// /// { /// "enabled": bool /// } /// /// Clients may not extend, implement or mix-in this class. class AnalyticsIsEnabledResult implements ResponseResult { /// Whether sending analytics is enabled or not. bool enabled; AnalyticsIsEnabledResult(this.enabled); factory AnalyticsIsEnabledResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool enabled; if (json.containsKey('enabled')) { enabled = jsonDecoder.decodeBool('$jsonPath.enabled', json['enabled']); } else { throw jsonDecoder.mismatch(jsonPath, 'enabled', json); } return AnalyticsIsEnabledResult(enabled); } else { throw jsonDecoder.mismatch(jsonPath, 'analytics.isEnabled result', json); } } factory AnalyticsIsEnabledResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return AnalyticsIsEnabledResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['enabled'] = enabled; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalyticsIsEnabledResult && enabled == other.enabled; @override int get hashCode => enabled.hashCode; } /// analytics.sendEvent params /// /// { /// "action": String /// } /// /// Clients may not extend, implement or mix-in this class. class AnalyticsSendEventParams implements RequestParams { /// The value used to indicate which action was performed. String action; AnalyticsSendEventParams(this.action); factory AnalyticsSendEventParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String action; if (json.containsKey('action')) { action = jsonDecoder.decodeString('$jsonPath.action', json['action']); } else { throw jsonDecoder.mismatch(jsonPath, 'action', json); } return AnalyticsSendEventParams(action); } else { throw jsonDecoder.mismatch(jsonPath, 'analytics.sendEvent params', json); } } factory AnalyticsSendEventParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalyticsSendEventParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['action'] = action; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analytics.sendEvent', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalyticsSendEventParams && action == other.action; @override int get hashCode => action.hashCode; } /// analytics.sendEvent result /// /// Clients may not extend, implement or mix-in this class. class AnalyticsSendEventResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalyticsSendEventResult; @override int get hashCode => 227063188; } /// analytics.sendTiming params /// /// { /// "event": String /// "millis": int /// } /// /// Clients may not extend, implement or mix-in this class. class AnalyticsSendTimingParams implements RequestParams { /// The name of the event. String event; /// The duration of the event in milliseconds. int millis; AnalyticsSendTimingParams(this.event, this.millis); factory AnalyticsSendTimingParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String event; if (json.containsKey('event')) { event = jsonDecoder.decodeString('$jsonPath.event', json['event']); } else { throw jsonDecoder.mismatch(jsonPath, 'event', json); } int millis; if (json.containsKey('millis')) { millis = jsonDecoder.decodeInt('$jsonPath.millis', json['millis']); } else { throw jsonDecoder.mismatch(jsonPath, 'millis', json); } return AnalyticsSendTimingParams(event, millis); } else { throw jsonDecoder.mismatch(jsonPath, 'analytics.sendTiming params', json); } } factory AnalyticsSendTimingParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return AnalyticsSendTimingParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['event'] = event; result['millis'] = millis; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'analytics.sendTiming', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is AnalyticsSendTimingParams && event == other.event && millis == other.millis; @override int get hashCode => Object.hash(event, millis); } /// analytics.sendTiming result /// /// Clients may not extend, implement or mix-in this class. class AnalyticsSendTimingResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is AnalyticsSendTimingResult; @override int get hashCode => 875010924; } /// BulkFix /// /// { /// "path": FilePath /// "fixes": List /// } /// /// Clients may not extend, implement or mix-in this class. class BulkFix implements HasToJson { /// The path of the library. String path; /// A list of bulk fix details. List fixes; BulkFix(this.path, this.fixes); factory BulkFix.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String path; if (json.containsKey('path')) { path = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.path', json['path']), ) ?? jsonDecoder.decodeString('$jsonPath.path', json['path']); } else { throw jsonDecoder.mismatch(jsonPath, 'path', json); } List fixes; if (json.containsKey('fixes')) { fixes = jsonDecoder.decodeList( '$jsonPath.fixes', json['fixes'], (String jsonPath, Object? json) => BulkFixDetail.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'fixes', json); } return BulkFix(path, fixes); } else { throw jsonDecoder.mismatch(jsonPath, 'BulkFix', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['path'] = clientUriConverter?.toClientFilePath(path) ?? path; result['fixes'] = fixes .map( (BulkFixDetail value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is BulkFix && path == other.path && listEqual( fixes, other.fixes, (BulkFixDetail a, BulkFixDetail b) => a == b, ); @override int get hashCode => Object.hash(path, Object.hashAll(fixes)); } /// BulkFixDetail /// /// { /// "code": String /// "occurrences": int /// } /// /// Clients may not extend, implement or mix-in this class. class BulkFixDetail implements HasToJson { /// The code of the diagnostic associated with the fix. String code; /// The number times the associated diagnostic was fixed in the associated /// source edit. int occurrences; BulkFixDetail(this.code, this.occurrences); factory BulkFixDetail.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String code; if (json.containsKey('code')) { code = jsonDecoder.decodeString('$jsonPath.code', json['code']); } else { throw jsonDecoder.mismatch(jsonPath, 'code', json); } int occurrences; if (json.containsKey('occurrences')) { occurrences = jsonDecoder.decodeInt( '$jsonPath.occurrences', json['occurrences'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'occurrences', json); } return BulkFixDetail(code, occurrences); } else { throw jsonDecoder.mismatch(jsonPath, 'BulkFixDetail', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['code'] = code; result['occurrences'] = occurrences; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is BulkFixDetail && code == other.code && occurrences == other.occurrences; @override int get hashCode => Object.hash(code, occurrences); } /// ClosingLabel /// /// { /// "offset": int /// "length": int /// "label": String /// } /// /// Clients may not extend, implement or mix-in this class. class ClosingLabel implements HasToJson { /// The offset of the construct being labelled. int offset; /// The length of the whole construct to be labelled. int length; /// The label associated with this range that should be displayed to the /// user. String label; ClosingLabel(this.offset, this.length, this.label); factory ClosingLabel.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } String label; if (json.containsKey('label')) { label = jsonDecoder.decodeString('$jsonPath.label', json['label']); } else { throw jsonDecoder.mismatch(jsonPath, 'label', json); } return ClosingLabel(offset, length, label); } else { throw jsonDecoder.mismatch(jsonPath, 'ClosingLabel', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; result['label'] = label; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ClosingLabel && offset == other.offset && length == other.length && label == other.label; @override int get hashCode => Object.hash(offset, length, label); } /// CompletionCaseMatchingMode /// /// enum { /// FIRST_CHAR /// ALL_CHARS /// NONE /// } /// /// Clients may not extend, implement or mix-in this class. enum CompletionCaseMatchingMode { /// Match the first character case only when filtering completions, the /// default for this enumeration. FIRST_CHAR, /// Match all character cases when filtering completion lists. ALL_CHARS, /// Do not match character cases when filtering completion lists. NONE; factory CompletionCaseMatchingMode.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'CompletionCaseMatchingMode', json); } @override String toString() => 'CompletionCaseMatchingMode.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// completion.existingImports params /// /// { /// "file": FilePath /// "imports": ExistingImports /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionExistingImportsParams implements HasToJson { /// The defining file of the library. String file; /// The existing imports in the library. ExistingImports imports; CompletionExistingImportsParams(this.file, this.imports); factory CompletionExistingImportsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } ExistingImports imports; if (json.containsKey('imports')) { imports = ExistingImports.fromJson( jsonDecoder, '$jsonPath.imports', json['imports'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'imports', json); } return CompletionExistingImportsParams(file, imports); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.existingImports params', json, ); } } factory CompletionExistingImportsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return CompletionExistingImportsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['imports'] = imports.toJson(clientUriConverter: clientUriConverter); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'completion.existingImports', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionExistingImportsParams && file == other.file && imports == other.imports; @override int get hashCode => Object.hash(file, imports); } /// completion.getSuggestionDetails2 params /// /// { /// "file": FilePath /// "offset": int /// "completion": String /// "libraryUri": String /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionGetSuggestionDetails2Params implements RequestParams { /// The path of the file into which this completion is being inserted. String file; /// The offset in the file where the completion will be inserted. int offset; /// The `completion` from the selected `CompletionSuggestion`. It could be a /// name of a class, or a name of a constructor in the form /// "typeName.constructorName()", or an enumeration constant in the form /// "enumName.constantName", etc. String completion; /// The URI of the library to import, so that the element referenced in the /// `completion` becomes accessible. String libraryUri; CompletionGetSuggestionDetails2Params( this.file, this.offset, this.completion, this.libraryUri, ); factory CompletionGetSuggestionDetails2Params.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } String completion; if (json.containsKey('completion')) { completion = jsonDecoder.decodeString( '$jsonPath.completion', json['completion'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'completion', json); } String libraryUri; if (json.containsKey('libraryUri')) { libraryUri = jsonDecoder.decodeString( '$jsonPath.libraryUri', json['libraryUri'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'libraryUri', json); } return CompletionGetSuggestionDetails2Params( file, offset, completion, libraryUri, ); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.getSuggestionDetails2 params', json, ); } } factory CompletionGetSuggestionDetails2Params.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return CompletionGetSuggestionDetails2Params.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['completion'] = completion; result['libraryUri'] = libraryUri; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'completion.getSuggestionDetails2', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionGetSuggestionDetails2Params && file == other.file && offset == other.offset && completion == other.completion && libraryUri == other.libraryUri; @override int get hashCode => Object.hash(file, offset, completion, libraryUri); } /// completion.getSuggestionDetails2 result /// /// { /// "completion": String /// "change": SourceChange /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionGetSuggestionDetails2Result implements ResponseResult { /// The full text to insert, which possibly includes now an import prefix. /// The client should insert this text, not the `completion` from the /// selected `CompletionSuggestion`. String completion; /// A change for the client to apply to make the accepted completion /// suggestion available. In most cases the change is to add a new import /// directive to the file. SourceChange change; CompletionGetSuggestionDetails2Result(this.completion, this.change); factory CompletionGetSuggestionDetails2Result.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String completion; if (json.containsKey('completion')) { completion = jsonDecoder.decodeString( '$jsonPath.completion', json['completion'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'completion', json); } SourceChange change; if (json.containsKey('change')) { change = SourceChange.fromJson( jsonDecoder, '$jsonPath.change', json['change'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'change', json); } return CompletionGetSuggestionDetails2Result(completion, change); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.getSuggestionDetails2 result', json, ); } } factory CompletionGetSuggestionDetails2Result.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return CompletionGetSuggestionDetails2Result.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['completion'] = completion; result['change'] = change.toJson(clientUriConverter: clientUriConverter); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionGetSuggestionDetails2Result && completion == other.completion && change == other.change; @override int get hashCode => Object.hash(completion, change); } /// completion.getSuggestions2 params /// /// { /// "file": FilePath /// "offset": int /// "maxResults": int /// "completionCaseMatchingMode": optional CompletionCaseMatchingMode /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionGetSuggestions2Params implements RequestParams { /// The file containing the point at which suggestions are to be made. String file; /// The offset within the file at which suggestions are to be made. int offset; /// The maximum number of suggestions to return. If the number of suggestions /// after filtering is greater than the `maxResults`, then `isIncomplete` is /// set to `true`. int maxResults; /// The mode of code completion being invoked. If no value is provided, /// `MATCH_FIRST_CHAR` will be assumed. CompletionCaseMatchingMode? completionCaseMatchingMode; /// The mode of code completion being invoked. If no value is provided, /// `BASIC` will be assumed. `BASIC` is also the only currently supported. CompletionMode? completionMode; /// The number of times that the user has invoked code completion at the same /// code location, counting from 1. If no value is provided, 1 will be /// assumed. int? invocationCount; /// The approximate time in milliseconds that the server should spend. The /// server will perform some steps anyway, even if it takes longer than the /// specified timeout. This field is intended to be used for benchmarking, /// and usually should not be provided, so that the default timeout is used. int? timeout; CompletionGetSuggestions2Params( this.file, this.offset, this.maxResults, { this.completionCaseMatchingMode, this.completionMode, this.invocationCount, this.timeout, }); factory CompletionGetSuggestions2Params.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int maxResults; if (json.containsKey('maxResults')) { maxResults = jsonDecoder.decodeInt( '$jsonPath.maxResults', json['maxResults'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'maxResults', json); } CompletionCaseMatchingMode? completionCaseMatchingMode; if (json.containsKey('completionCaseMatchingMode')) { completionCaseMatchingMode = CompletionCaseMatchingMode.fromJson( jsonDecoder, '$jsonPath.completionCaseMatchingMode', json['completionCaseMatchingMode'], clientUriConverter: clientUriConverter, ); } CompletionMode? completionMode; if (json.containsKey('completionMode')) { completionMode = CompletionMode.fromJson( jsonDecoder, '$jsonPath.completionMode', json['completionMode'], clientUriConverter: clientUriConverter, ); } int? invocationCount; if (json.containsKey('invocationCount')) { invocationCount = jsonDecoder.decodeInt( '$jsonPath.invocationCount', json['invocationCount'], ); } int? timeout; if (json.containsKey('timeout')) { timeout = jsonDecoder.decodeInt('$jsonPath.timeout', json['timeout']); } return CompletionGetSuggestions2Params( file, offset, maxResults, completionCaseMatchingMode: completionCaseMatchingMode, completionMode: completionMode, invocationCount: invocationCount, timeout: timeout, ); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.getSuggestions2 params', json, ); } } factory CompletionGetSuggestions2Params.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return CompletionGetSuggestions2Params.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['maxResults'] = maxResults; var completionCaseMatchingMode = this.completionCaseMatchingMode; if (completionCaseMatchingMode != null) { result['completionCaseMatchingMode'] = completionCaseMatchingMode.toJson( clientUriConverter: clientUriConverter, ); } var completionMode = this.completionMode; if (completionMode != null) { result['completionMode'] = completionMode.toJson( clientUriConverter: clientUriConverter, ); } var invocationCount = this.invocationCount; if (invocationCount != null) { result['invocationCount'] = invocationCount; } var timeout = this.timeout; if (timeout != null) { result['timeout'] = timeout; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'completion.getSuggestions2', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionGetSuggestions2Params && file == other.file && offset == other.offset && maxResults == other.maxResults && completionCaseMatchingMode == other.completionCaseMatchingMode && completionMode == other.completionMode && invocationCount == other.invocationCount && timeout == other.timeout; @override int get hashCode => Object.hash( file, offset, maxResults, completionCaseMatchingMode, completionMode, invocationCount, timeout, ); } /// completion.getSuggestions2 result /// /// { /// "replacementOffset": int /// "replacementLength": int /// "suggestions": List /// "isIncomplete": bool /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionGetSuggestions2Result implements ResponseResult { /// The offset of the start of the text to be replaced. This will be /// different from the offset used to request the completion suggestions if /// there was a portion of an identifier before the original offset. In /// particular, the replacementOffset will be the offset of the beginning of /// said identifier. int replacementOffset; /// The length of the text to be replaced if the remainder of the identifier /// containing the cursor is to be replaced when the suggestion is applied /// (that is, the number of characters in the existing identifier). int replacementLength; /// The completion suggestions being reported. This list is filtered by the /// already existing prefix, and sorted first by relevance, and (if the same) /// by the suggestion text. The list will have at most `maxResults` items. If /// the user types a new keystroke, the client is expected to either do local /// filtering (when the returned list was complete), or ask the server again /// (if `isIncomplete` was `true`). /// /// This list contains suggestions from both imported, and not yet imported /// libraries. Items from not yet imported libraries will have /// `isNotImported` set to `true`. List suggestions; /// True if the number of suggestions after filtering was greater than the /// requested `maxResults`. bool isIncomplete; CompletionGetSuggestions2Result( this.replacementOffset, this.replacementLength, this.suggestions, this.isIncomplete, ); factory CompletionGetSuggestions2Result.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int replacementOffset; if (json.containsKey('replacementOffset')) { replacementOffset = jsonDecoder.decodeInt( '$jsonPath.replacementOffset', json['replacementOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'replacementOffset', json); } int replacementLength; if (json.containsKey('replacementLength')) { replacementLength = jsonDecoder.decodeInt( '$jsonPath.replacementLength', json['replacementLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'replacementLength', json); } List suggestions; if (json.containsKey('suggestions')) { suggestions = jsonDecoder.decodeList( '$jsonPath.suggestions', json['suggestions'], (String jsonPath, Object? json) => CompletionSuggestion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'suggestions', json); } bool isIncomplete; if (json.containsKey('isIncomplete')) { isIncomplete = jsonDecoder.decodeBool( '$jsonPath.isIncomplete', json['isIncomplete'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isIncomplete', json); } return CompletionGetSuggestions2Result( replacementOffset, replacementLength, suggestions, isIncomplete, ); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.getSuggestions2 result', json, ); } } factory CompletionGetSuggestions2Result.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return CompletionGetSuggestions2Result.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['replacementOffset'] = replacementOffset; result['replacementLength'] = replacementLength; result['suggestions'] = suggestions .map( (CompletionSuggestion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['isIncomplete'] = isIncomplete; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionGetSuggestions2Result && replacementOffset == other.replacementOffset && replacementLength == other.replacementLength && listEqual( suggestions, other.suggestions, (CompletionSuggestion a, CompletionSuggestion b) => a == b, ) && isIncomplete == other.isIncomplete; @override int get hashCode => Object.hash( replacementOffset, replacementLength, Object.hashAll(suggestions), isIncomplete, ); } /// CompletionMode /// /// enum { /// BASIC /// SMART /// } /// /// Clients may not extend, implement or mix-in this class. enum CompletionMode { /// Basic code completion invocation type, and the default for this /// enumeration. BASIC, /// Smart code completion, currently not implemented. SMART; factory CompletionMode.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'CompletionMode', json); } @override String toString() => 'CompletionMode.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// completion.registerLibraryPaths params /// /// { /// "paths": List /// } /// /// Clients may not extend, implement or mix-in this class. class CompletionRegisterLibraryPathsParams implements RequestParams { /// A list of objects each containing a path and the additional libraries /// from which the client is interested in receiving completion suggestions. /// If one configured path is beneath another, the descendant will override /// the ancestors' configured libraries of interest. List paths; CompletionRegisterLibraryPathsParams(this.paths); factory CompletionRegisterLibraryPathsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List paths; if (json.containsKey('paths')) { paths = jsonDecoder.decodeList( '$jsonPath.paths', json['paths'], (String jsonPath, Object? json) => LibraryPathSet.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'paths', json); } return CompletionRegisterLibraryPathsParams(paths); } else { throw jsonDecoder.mismatch( jsonPath, 'completion.registerLibraryPaths params', json, ); } } factory CompletionRegisterLibraryPathsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return CompletionRegisterLibraryPathsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['paths'] = paths .map( (LibraryPathSet value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'completion.registerLibraryPaths', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is CompletionRegisterLibraryPathsParams && listEqual( paths, other.paths, (LibraryPathSet a, LibraryPathSet b) => a == b, ); @override int get hashCode => Object.hashAll(paths); } /// completion.registerLibraryPaths result /// /// Clients may not extend, implement or mix-in this class. class CompletionRegisterLibraryPathsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is CompletionRegisterLibraryPathsResult; @override int get hashCode => 104675661; } /// ContextData /// /// { /// "name": String /// "explicitFileCount": int /// "implicitFileCount": int /// "workItemQueueLength": int /// "cacheEntryExceptions": List /// } /// /// Clients may not extend, implement or mix-in this class. class ContextData implements HasToJson { /// The name of the context. String name; /// Explicitly analyzed files. int explicitFileCount; /// Implicitly analyzed files. int implicitFileCount; /// The number of work items in the queue. int workItemQueueLength; /// Exceptions associated with cache entries. List cacheEntryExceptions; ContextData( this.name, this.explicitFileCount, this.implicitFileCount, this.workItemQueueLength, this.cacheEntryExceptions, ); factory ContextData.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } int explicitFileCount; if (json.containsKey('explicitFileCount')) { explicitFileCount = jsonDecoder.decodeInt( '$jsonPath.explicitFileCount', json['explicitFileCount'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'explicitFileCount', json); } int implicitFileCount; if (json.containsKey('implicitFileCount')) { implicitFileCount = jsonDecoder.decodeInt( '$jsonPath.implicitFileCount', json['implicitFileCount'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'implicitFileCount', json); } int workItemQueueLength; if (json.containsKey('workItemQueueLength')) { workItemQueueLength = jsonDecoder.decodeInt( '$jsonPath.workItemQueueLength', json['workItemQueueLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'workItemQueueLength', json); } List cacheEntryExceptions; if (json.containsKey('cacheEntryExceptions')) { cacheEntryExceptions = jsonDecoder.decodeList( '$jsonPath.cacheEntryExceptions', json['cacheEntryExceptions'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'cacheEntryExceptions', json); } return ContextData( name, explicitFileCount, implicitFileCount, workItemQueueLength, cacheEntryExceptions, ); } else { throw jsonDecoder.mismatch(jsonPath, 'ContextData', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['explicitFileCount'] = explicitFileCount; result['implicitFileCount'] = implicitFileCount; result['workItemQueueLength'] = workItemQueueLength; result['cacheEntryExceptions'] = cacheEntryExceptions; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ContextData && name == other.name && explicitFileCount == other.explicitFileCount && implicitFileCount == other.implicitFileCount && workItemQueueLength == other.workItemQueueLength && listEqual( cacheEntryExceptions, other.cacheEntryExceptions, (String a, String b) => a == b, ); @override int get hashCode => Object.hash( name, explicitFileCount, implicitFileCount, workItemQueueLength, Object.hashAll(cacheEntryExceptions), ); } /// convertGetterToMethod feedback /// /// Clients may not extend, implement or mix-in this class. class ConvertGetterToMethodFeedback extends RefactoringFeedback implements HasToJson { @override bool operator ==(Object other) => other is ConvertGetterToMethodFeedback; @override int get hashCode => 616032599; } /// convertGetterToMethod options /// /// Clients may not extend, implement or mix-in this class. class ConvertGetterToMethodOptions extends RefactoringOptions implements HasToJson { @override bool operator ==(Object other) => other is ConvertGetterToMethodOptions; @override int get hashCode => 488848400; } /// convertMethodToGetter feedback /// /// Clients may not extend, implement or mix-in this class. class ConvertMethodToGetterFeedback extends RefactoringFeedback implements HasToJson { @override bool operator ==(Object other) => other is ConvertMethodToGetterFeedback; @override int get hashCode => 165291526; } /// convertMethodToGetter options /// /// Clients may not extend, implement or mix-in this class. class ConvertMethodToGetterOptions extends RefactoringOptions implements HasToJson { @override bool operator ==(Object other) => other is ConvertMethodToGetterOptions; @override int get hashCode => 27952290; } /// diagnostic.getDiagnostics params /// /// Clients may not extend, implement or mix-in this class. class DiagnosticGetDiagnosticsParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'diagnostic.getDiagnostics'); } @override bool operator ==(Object other) => other is DiagnosticGetDiagnosticsParams; @override int get hashCode => 587526202; } /// diagnostic.getDiagnostics result /// /// { /// "contexts": List /// } /// /// Clients may not extend, implement or mix-in this class. class DiagnosticGetDiagnosticsResult implements ResponseResult { /// The list of analysis contexts. List contexts; DiagnosticGetDiagnosticsResult(this.contexts); factory DiagnosticGetDiagnosticsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List contexts; if (json.containsKey('contexts')) { contexts = jsonDecoder.decodeList( '$jsonPath.contexts', json['contexts'], (String jsonPath, Object? json) => ContextData.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'contexts', json); } return DiagnosticGetDiagnosticsResult(contexts); } else { throw jsonDecoder.mismatch( jsonPath, 'diagnostic.getDiagnostics result', json, ); } } factory DiagnosticGetDiagnosticsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return DiagnosticGetDiagnosticsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['contexts'] = contexts .map( (ContextData value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is DiagnosticGetDiagnosticsResult && listEqual( contexts, other.contexts, (ContextData a, ContextData b) => a == b, ); @override int get hashCode => Object.hashAll(contexts); } /// diagnostic.getServerPort params /// /// Clients may not extend, implement or mix-in this class. class DiagnosticGetServerPortParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'diagnostic.getServerPort'); } @override bool operator ==(Object other) => other is DiagnosticGetServerPortParams; @override int get hashCode => 367508704; } /// diagnostic.getServerPort result /// /// { /// "port": int /// } /// /// Clients may not extend, implement or mix-in this class. class DiagnosticGetServerPortResult implements ResponseResult { /// The diagnostic server port. int port; DiagnosticGetServerPortResult(this.port); factory DiagnosticGetServerPortResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int port; if (json.containsKey('port')) { port = jsonDecoder.decodeInt('$jsonPath.port', json['port']); } else { throw jsonDecoder.mismatch(jsonPath, 'port', json); } return DiagnosticGetServerPortResult(port); } else { throw jsonDecoder.mismatch( jsonPath, 'diagnostic.getServerPort result', json, ); } } factory DiagnosticGetServerPortResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return DiagnosticGetServerPortResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['port'] = port; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is DiagnosticGetServerPortResult && port == other.port; @override int get hashCode => port.hashCode; } /// edit.bulkFixes params /// /// { /// "included": List /// "inTestMode": optional bool /// "updatePubspec": optional bool /// "codes": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class EditBulkFixesParams implements RequestParams { /// A list of the files and directories for which edits should be suggested. /// /// If a request is made with a path that is invalid, e.g. is not absolute /// and normalized, an error of type `INVALID_FILE_PATH_FORMAT` will be /// generated. If a request is made for a file which does not exist, or which /// is not currently subject to analysis (e.g. because it is not associated /// with any analysis root specified to analysis.setAnalysisRoots), an error /// of type `FILE_NOT_ANALYZED` will be generated. List included; /// A flag indicating whether the bulk fixes are being run in test mode. The /// only difference is that in test mode the fix processor will look for a /// configuration file that can modify the content of the data file used to /// compute the fixes when data-driven fixes are being considered. /// /// If this field is omitted the flag defaults to `false`. bool? inTestMode; /// A flag indicating whether to validate that the dependencies used by the /// included files are listed in the pubspec file. If specified, the fix /// processor will compute the set of packages imported in the source and /// check to see if they are listed in the corresponding pubspec file, and /// compute the fixes, if any. /// /// If this field is omitted the flag defaults to `false`. bool? updatePubspec; /// A list of diagnostic codes to be fixed. List? codes; EditBulkFixesParams( this.included, { this.inTestMode, this.updatePubspec, this.codes, }); factory EditBulkFixesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List included; if (json.containsKey('included')) { included = jsonDecoder.decodeList( '$jsonPath.included', json['included'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'included', json); } bool? inTestMode; if (json.containsKey('inTestMode')) { inTestMode = jsonDecoder.decodeBool( '$jsonPath.inTestMode', json['inTestMode'], ); } bool? updatePubspec; if (json.containsKey('updatePubspec')) { updatePubspec = jsonDecoder.decodeBool( '$jsonPath.updatePubspec', json['updatePubspec'], ); } List? codes; if (json.containsKey('codes')) { codes = jsonDecoder.decodeList( '$jsonPath.codes', json['codes'], jsonDecoder.decodeString, ); } return EditBulkFixesParams( included, inTestMode: inTestMode, updatePubspec: updatePubspec, codes: codes, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.bulkFixes params', json); } } factory EditBulkFixesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditBulkFixesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['included'] = included .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); var inTestMode = this.inTestMode; if (inTestMode != null) { result['inTestMode'] = inTestMode; } var updatePubspec = this.updatePubspec; if (updatePubspec != null) { result['updatePubspec'] = updatePubspec; } var codes = this.codes; if (codes != null) { result['codes'] = codes; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.bulkFixes', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditBulkFixesParams && listEqual(included, other.included, (String a, String b) => a == b) && inTestMode == other.inTestMode && updatePubspec == other.updatePubspec && listEqual(codes, other.codes, (String a, String b) => a == b); @override int get hashCode => Object.hash( Object.hashAll(included), inTestMode, updatePubspec, Object.hashAll(codes ?? []), ); } /// edit.bulkFixes result /// /// { /// "message": String /// "edits": List /// "details": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditBulkFixesResult implements ResponseResult { /// An optional message explaining unapplied fixes. String message; /// A list of source edits to apply the recommended changes. List edits; /// Details that summarize the fixes associated with the recommended changes. List details; EditBulkFixesResult(this.message, this.edits, this.details); factory EditBulkFixesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String message; if (json.containsKey('message')) { message = jsonDecoder.decodeString( '$jsonPath.message', json['message'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'message', json); } List edits; if (json.containsKey('edits')) { edits = jsonDecoder.decodeList( '$jsonPath.edits', json['edits'], (String jsonPath, Object? json) => SourceFileEdit.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'edits', json); } List details; if (json.containsKey('details')) { details = jsonDecoder.decodeList( '$jsonPath.details', json['details'], (String jsonPath, Object? json) => BulkFix.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'details', json); } return EditBulkFixesResult(message, edits, details); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.bulkFixes result', json); } } factory EditBulkFixesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditBulkFixesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['message'] = message; result['edits'] = edits .map( (SourceFileEdit value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['details'] = details .map( (BulkFix value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditBulkFixesResult && message == other.message && listEqual( edits, other.edits, (SourceFileEdit a, SourceFileEdit b) => a == b, ) && listEqual(details, other.details, (BulkFix a, BulkFix b) => a == b); @override int get hashCode => Object.hash(message, Object.hashAll(edits), Object.hashAll(details)); } /// edit.formatIfEnabled params /// /// { /// "directories": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditFormatIfEnabledParams implements RequestParams { /// The paths of the directories containing the code to be formatted. List directories; EditFormatIfEnabledParams(this.directories); factory EditFormatIfEnabledParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List directories; if (json.containsKey('directories')) { directories = jsonDecoder.decodeList( '$jsonPath.directories', json['directories'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'directories', json); } return EditFormatIfEnabledParams(directories); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.formatIfEnabled params', json); } } factory EditFormatIfEnabledParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditFormatIfEnabledParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['directories'] = directories .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.formatIfEnabled', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditFormatIfEnabledParams && listEqual(directories, other.directories, (String a, String b) => a == b); @override int get hashCode => Object.hashAll(directories); } /// edit.formatIfEnabled result /// /// { /// "edits": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditFormatIfEnabledResult implements ResponseResult { /// The edit(s) to be applied in order to format the code. The list will be /// empty if none of the files were formatted, whether because they were not /// eligible to be formatted or because they were already formatted. List edits; EditFormatIfEnabledResult(this.edits); factory EditFormatIfEnabledResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List edits; if (json.containsKey('edits')) { edits = jsonDecoder.decodeList( '$jsonPath.edits', json['edits'], (String jsonPath, Object? json) => SourceFileEdit.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'edits', json); } return EditFormatIfEnabledResult(edits); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.formatIfEnabled result', json); } } factory EditFormatIfEnabledResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditFormatIfEnabledResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['edits'] = edits .map( (SourceFileEdit value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditFormatIfEnabledResult && listEqual( edits, other.edits, (SourceFileEdit a, SourceFileEdit b) => a == b, ); @override int get hashCode => Object.hashAll(edits); } /// edit.format params /// /// { /// "file": FilePath /// "selectionOffset": int /// "selectionLength": int /// "lineLength": optional int /// } /// /// Clients may not extend, implement or mix-in this class. class EditFormatParams implements RequestParams { /// The file containing the code to be formatted. String file; /// The offset of the current selection in the file. int selectionOffset; /// The length of the current selection in the file. int selectionLength; /// The line length to be used by the formatter. This value is ignored if a /// `formatter.page_width` has been configured in the relevant /// `analysis_options.yaml` file. int? lineLength; EditFormatParams( this.file, this.selectionOffset, this.selectionLength, { this.lineLength, }); factory EditFormatParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int selectionOffset; if (json.containsKey('selectionOffset')) { selectionOffset = jsonDecoder.decodeInt( '$jsonPath.selectionOffset', json['selectionOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'selectionOffset', json); } int selectionLength; if (json.containsKey('selectionLength')) { selectionLength = jsonDecoder.decodeInt( '$jsonPath.selectionLength', json['selectionLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'selectionLength', json); } int? lineLength; if (json.containsKey('lineLength')) { lineLength = jsonDecoder.decodeInt( '$jsonPath.lineLength', json['lineLength'], ); } return EditFormatParams( file, selectionOffset, selectionLength, lineLength: lineLength, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.format params', json); } } factory EditFormatParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditFormatParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['selectionOffset'] = selectionOffset; result['selectionLength'] = selectionLength; var lineLength = this.lineLength; if (lineLength != null) { result['lineLength'] = lineLength; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.format', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditFormatParams && file == other.file && selectionOffset == other.selectionOffset && selectionLength == other.selectionLength && lineLength == other.lineLength; @override int get hashCode => Object.hash(file, selectionOffset, selectionLength, lineLength); } /// edit.format result /// /// { /// "edits": List /// "selectionOffset": int /// "selectionLength": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditFormatResult implements ResponseResult { /// The edit(s) to be applied in order to format the code. The list will be /// empty if the code was already formatted (there are no changes). List edits; /// The offset of the selection after formatting the code. int selectionOffset; /// The length of the selection after formatting the code. int selectionLength; EditFormatResult(this.edits, this.selectionOffset, this.selectionLength); factory EditFormatResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List edits; if (json.containsKey('edits')) { edits = jsonDecoder.decodeList( '$jsonPath.edits', json['edits'], (String jsonPath, Object? json) => SourceEdit.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'edits', json); } int selectionOffset; if (json.containsKey('selectionOffset')) { selectionOffset = jsonDecoder.decodeInt( '$jsonPath.selectionOffset', json['selectionOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'selectionOffset', json); } int selectionLength; if (json.containsKey('selectionLength')) { selectionLength = jsonDecoder.decodeInt( '$jsonPath.selectionLength', json['selectionLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'selectionLength', json); } return EditFormatResult(edits, selectionOffset, selectionLength); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.format result', json); } } factory EditFormatResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditFormatResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['edits'] = edits .map( (SourceEdit value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['selectionOffset'] = selectionOffset; result['selectionLength'] = selectionLength; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditFormatResult && listEqual(edits, other.edits, (SourceEdit a, SourceEdit b) => a == b) && selectionOffset == other.selectionOffset && selectionLength == other.selectionLength; @override int get hashCode => Object.hash(Object.hashAll(edits), selectionOffset, selectionLength); } /// edit.getAssists params /// /// { /// "file": FilePath /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetAssistsParams implements RequestParams { /// The file containing the code for which assists are being requested. String file; /// The offset of the code for which assists are being requested. int offset; /// The length of the code for which assists are being requested. int length; EditGetAssistsParams(this.file, this.offset, this.length); factory EditGetAssistsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return EditGetAssistsParams(file, offset, length); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getAssists params', json); } } factory EditGetAssistsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditGetAssistsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getAssists', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetAssistsParams && file == other.file && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(file, offset, length); } /// edit.getAssists result /// /// { /// "assists": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetAssistsResult implements ResponseResult { /// The assists that are available at the given location. List assists; EditGetAssistsResult(this.assists); factory EditGetAssistsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List assists; if (json.containsKey('assists')) { assists = jsonDecoder.decodeList( '$jsonPath.assists', json['assists'], (String jsonPath, Object? json) => SourceChange.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'assists', json); } return EditGetAssistsResult(assists); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getAssists result', json); } } factory EditGetAssistsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetAssistsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['assists'] = assists .map( (SourceChange value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetAssistsResult && listEqual( assists, other.assists, (SourceChange a, SourceChange b) => a == b, ); @override int get hashCode => Object.hashAll(assists); } /// edit.getAvailableRefactorings params /// /// { /// "file": FilePath /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetAvailableRefactoringsParams implements RequestParams { /// The file containing the code on which the refactoring would be based. String file; /// The offset of the code on which the refactoring would be based. int offset; /// The length of the code on which the refactoring would be based. int length; EditGetAvailableRefactoringsParams(this.file, this.offset, this.length); factory EditGetAvailableRefactoringsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return EditGetAvailableRefactoringsParams(file, offset, length); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getAvailableRefactorings params', json, ); } } factory EditGetAvailableRefactoringsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditGetAvailableRefactoringsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getAvailableRefactorings', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetAvailableRefactoringsParams && file == other.file && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(file, offset, length); } /// edit.getAvailableRefactorings result /// /// { /// "kinds": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetAvailableRefactoringsResult implements ResponseResult { /// The kinds of refactorings that are valid for the given selection. List kinds; EditGetAvailableRefactoringsResult(this.kinds); factory EditGetAvailableRefactoringsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List kinds; if (json.containsKey('kinds')) { kinds = jsonDecoder.decodeList( '$jsonPath.kinds', json['kinds'], (String jsonPath, Object? json) => RefactoringKind.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'kinds', json); } return EditGetAvailableRefactoringsResult(kinds); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getAvailableRefactorings result', json, ); } } factory EditGetAvailableRefactoringsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetAvailableRefactoringsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['kinds'] = kinds .map( (RefactoringKind value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetAvailableRefactoringsResult && listEqual( kinds, other.kinds, (RefactoringKind a, RefactoringKind b) => a == b, ); @override int get hashCode => Object.hashAll(kinds); } /// edit.getFixes params /// /// { /// "file": FilePath /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetFixesParams implements RequestParams { /// The file containing the errors for which fixes are being requested. String file; /// The offset used to select the errors for which fixes will be returned. int offset; EditGetFixesParams(this.file, this.offset); factory EditGetFixesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return EditGetFixesParams(file, offset); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getFixes params', json); } } factory EditGetFixesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditGetFixesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getFixes', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetFixesParams && file == other.file && offset == other.offset; @override int get hashCode => Object.hash(file, offset); } /// edit.getFixes result /// /// { /// "fixes": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetFixesResult implements ResponseResult { /// The fixes that are available for the errors at the given offset. List fixes; EditGetFixesResult(this.fixes); factory EditGetFixesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List fixes; if (json.containsKey('fixes')) { fixes = jsonDecoder.decodeList( '$jsonPath.fixes', json['fixes'], (String jsonPath, Object? json) => AnalysisErrorFixes.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'fixes', json); } return EditGetFixesResult(fixes); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getFixes result', json); } } factory EditGetFixesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetFixesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['fixes'] = fixes .map( (AnalysisErrorFixes value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetFixesResult && listEqual( fixes, other.fixes, (AnalysisErrorFixes a, AnalysisErrorFixes b) => a == b, ); @override int get hashCode => Object.hashAll(fixes); } /// edit.getPostfixCompletion params /// /// { /// "file": FilePath /// "key": String /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetPostfixCompletionParams implements RequestParams { /// The file containing the postfix template to be expanded. String file; /// The unique name that identifies the template in use. String key; /// The offset used to identify the code to which the template will be /// applied. int offset; EditGetPostfixCompletionParams(this.file, this.key, this.offset); factory EditGetPostfixCompletionParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } String key; if (json.containsKey('key')) { key = jsonDecoder.decodeString('$jsonPath.key', json['key']); } else { throw jsonDecoder.mismatch(jsonPath, 'key', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return EditGetPostfixCompletionParams(file, key, offset); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getPostfixCompletion params', json, ); } } factory EditGetPostfixCompletionParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditGetPostfixCompletionParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['key'] = key; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getPostfixCompletion', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetPostfixCompletionParams && file == other.file && key == other.key && offset == other.offset; @override int get hashCode => Object.hash(file, key, offset); } /// edit.getPostfixCompletion result /// /// { /// "change": SourceChange /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetPostfixCompletionResult implements ResponseResult { /// The change to be applied in order to complete the statement. SourceChange change; EditGetPostfixCompletionResult(this.change); factory EditGetPostfixCompletionResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceChange change; if (json.containsKey('change')) { change = SourceChange.fromJson( jsonDecoder, '$jsonPath.change', json['change'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'change', json); } return EditGetPostfixCompletionResult(change); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getPostfixCompletion result', json, ); } } factory EditGetPostfixCompletionResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetPostfixCompletionResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['change'] = change.toJson(clientUriConverter: clientUriConverter); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetPostfixCompletionResult && change == other.change; @override int get hashCode => change.hashCode; } /// edit.getRefactoring params /// /// { /// "kind": RefactoringKind /// "file": FilePath /// "offset": int /// "length": int /// "validateOnly": bool /// "options": optional RefactoringOptions /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetRefactoringParams implements RequestParams { /// The kind of refactoring to be performed. RefactoringKind kind; /// The file containing the code involved in the refactoring. String file; /// The offset of the region involved in the refactoring. int offset; /// The length of the region involved in the refactoring. int length; /// True if the client is only requesting that the values of the options be /// validated and no change be generated. bool validateOnly; /// Data used to provide values provided by the user. The structure of the /// data is dependent on the kind of refactoring being performed. The data /// that is expected is documented in the section titled Refactorings, /// labeled as "Options". This field can be omitted if the refactoring does /// not require any options or if the values of those options are not known. RefactoringOptions? options; EditGetRefactoringParams( this.kind, this.file, this.offset, this.length, this.validateOnly, { this.options, }); factory EditGetRefactoringParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { RefactoringKind kind; if (json.containsKey('kind')) { kind = RefactoringKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } bool validateOnly; if (json.containsKey('validateOnly')) { validateOnly = jsonDecoder.decodeBool( '$jsonPath.validateOnly', json['validateOnly'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'validateOnly', json); } RefactoringOptions? options; if (json.containsKey('options')) { options = RefactoringOptions.fromJson( jsonDecoder, '$jsonPath.options', json['options'], kind, clientUriConverter: clientUriConverter, ); } return EditGetRefactoringParams( kind, file, offset, length, validateOnly, options: options, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getRefactoring params', json); } } factory EditGetRefactoringParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { var params = EditGetRefactoringParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); REQUEST_ID_REFACTORING_KINDS[request.id] = params.kind; return params; } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['length'] = length; result['validateOnly'] = validateOnly; var options = this.options; if (options != null) { result['options'] = options.toJson( clientUriConverter: clientUriConverter, ); } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getRefactoring', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetRefactoringParams && kind == other.kind && file == other.file && offset == other.offset && length == other.length && validateOnly == other.validateOnly && options == other.options; @override int get hashCode => Object.hash(kind, file, offset, length, validateOnly, options); } /// edit.getRefactoring result /// /// { /// "initialProblems": List /// "optionsProblems": List /// "finalProblems": List /// "feedback": optional RefactoringFeedback /// "change": optional SourceChange /// "potentialEdits": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetRefactoringResult implements ResponseResult { /// The initial status of the refactoring, i.e. problems related to the /// context in which the refactoring is requested. The array will be empty if /// there are no known problems. List initialProblems; /// The options validation status, i.e. problems in the given options, such /// as light-weight validation of a new name, flags compatibility, etc. The /// array will be empty if there are no known problems. List optionsProblems; /// The final status of the refactoring, i.e. problems identified in the /// result of a full, potentially expensive validation and / or change /// creation. The array will be empty if there are no known problems. List finalProblems; /// Data used to provide feedback to the user. The structure of the data is /// dependent on the kind of refactoring being created. The data that is /// returned is documented in the section titled Refactorings, labeled as /// "Feedback". RefactoringFeedback? feedback; /// The changes that are to be applied to affect the refactoring. This field /// will be omitted if there are problems that prevent a set of changes from /// being computed, such as having no options specified for a refactoring /// that requires them, or if only validation was requested. SourceChange? change; /// The ids of source edits that are not known to be valid. An edit is not /// known to be valid if there was insufficient type information for the /// server to be able to determine whether or not the code needs to be /// modified, such as when a member is being renamed and there is a reference /// to a member from an unknown type. This field will be omitted if the /// change field is omitted or if there are no potential edits for the /// refactoring. List? potentialEdits; EditGetRefactoringResult( this.initialProblems, this.optionsProblems, this.finalProblems, { this.feedback, this.change, this.potentialEdits, }); factory EditGetRefactoringResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List initialProblems; if (json.containsKey('initialProblems')) { initialProblems = jsonDecoder.decodeList( '$jsonPath.initialProblems', json['initialProblems'], (String jsonPath, Object? json) => RefactoringProblem.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'initialProblems', json); } List optionsProblems; if (json.containsKey('optionsProblems')) { optionsProblems = jsonDecoder.decodeList( '$jsonPath.optionsProblems', json['optionsProblems'], (String jsonPath, Object? json) => RefactoringProblem.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'optionsProblems', json); } List finalProblems; if (json.containsKey('finalProblems')) { finalProblems = jsonDecoder.decodeList( '$jsonPath.finalProblems', json['finalProblems'], (String jsonPath, Object? json) => RefactoringProblem.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'finalProblems', json); } RefactoringFeedback? feedback; if (json.containsKey('feedback')) { feedback = RefactoringFeedback.fromJson( jsonDecoder, '$jsonPath.feedback', json['feedback'], json, clientUriConverter: clientUriConverter, ); } SourceChange? change; if (json.containsKey('change')) { change = SourceChange.fromJson( jsonDecoder, '$jsonPath.change', json['change'], clientUriConverter: clientUriConverter, ); } List? potentialEdits; if (json.containsKey('potentialEdits')) { potentialEdits = jsonDecoder.decodeList( '$jsonPath.potentialEdits', json['potentialEdits'], jsonDecoder.decodeString, ); } return EditGetRefactoringResult( initialProblems, optionsProblems, finalProblems, feedback: feedback, change: change, potentialEdits: potentialEdits, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.getRefactoring result', json); } } factory EditGetRefactoringResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetRefactoringResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['initialProblems'] = initialProblems .map( (RefactoringProblem value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['optionsProblems'] = optionsProblems .map( (RefactoringProblem value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['finalProblems'] = finalProblems .map( (RefactoringProblem value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); var feedback = this.feedback; if (feedback != null) { result['feedback'] = feedback.toJson( clientUriConverter: clientUriConverter, ); } var change = this.change; if (change != null) { result['change'] = change.toJson(clientUriConverter: clientUriConverter); } var potentialEdits = this.potentialEdits; if (potentialEdits != null) { result['potentialEdits'] = potentialEdits; } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetRefactoringResult && listEqual( initialProblems, other.initialProblems, (RefactoringProblem a, RefactoringProblem b) => a == b, ) && listEqual( optionsProblems, other.optionsProblems, (RefactoringProblem a, RefactoringProblem b) => a == b, ) && listEqual( finalProblems, other.finalProblems, (RefactoringProblem a, RefactoringProblem b) => a == b, ) && feedback == other.feedback && change == other.change && listEqual( potentialEdits, other.potentialEdits, (String a, String b) => a == b, ); @override int get hashCode => Object.hash( Object.hashAll(initialProblems), Object.hashAll(optionsProblems), Object.hashAll(finalProblems), feedback, change, Object.hashAll(potentialEdits ?? []), ); } /// edit.getStatementCompletion params /// /// { /// "file": FilePath /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetStatementCompletionParams implements RequestParams { /// The file containing the statement to be completed. String file; /// The offset used to identify the statement to be completed. int offset; EditGetStatementCompletionParams(this.file, this.offset); factory EditGetStatementCompletionParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return EditGetStatementCompletionParams(file, offset); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getStatementCompletion params', json, ); } } factory EditGetStatementCompletionParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditGetStatementCompletionParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.getStatementCompletion', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetStatementCompletionParams && file == other.file && offset == other.offset; @override int get hashCode => Object.hash(file, offset); } /// edit.getStatementCompletion result /// /// { /// "change": SourceChange /// "whitespaceOnly": bool /// } /// /// Clients may not extend, implement or mix-in this class. class EditGetStatementCompletionResult implements ResponseResult { /// The change to be applied in order to complete the statement. SourceChange change; /// Will be true if the change contains nothing but whitespace characters, or /// is empty. bool whitespaceOnly; EditGetStatementCompletionResult(this.change, this.whitespaceOnly); factory EditGetStatementCompletionResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceChange change; if (json.containsKey('change')) { change = SourceChange.fromJson( jsonDecoder, '$jsonPath.change', json['change'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'change', json); } bool whitespaceOnly; if (json.containsKey('whitespaceOnly')) { whitespaceOnly = jsonDecoder.decodeBool( '$jsonPath.whitespaceOnly', json['whitespaceOnly'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'whitespaceOnly', json); } return EditGetStatementCompletionResult(change, whitespaceOnly); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.getStatementCompletion result', json, ); } } factory EditGetStatementCompletionResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditGetStatementCompletionResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['change'] = change.toJson(clientUriConverter: clientUriConverter); result['whitespaceOnly'] = whitespaceOnly; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditGetStatementCompletionResult && change == other.change && whitespaceOnly == other.whitespaceOnly; @override int get hashCode => Object.hash(change, whitespaceOnly); } /// edit.importElements params /// /// { /// "file": FilePath /// "elements": List /// "offset": optional int /// } /// /// Clients may not extend, implement or mix-in this class. class EditImportElementsParams implements RequestParams { /// The file in which the specified elements are to be made accessible. String file; /// The elements to be made accessible in the specified file. List elements; /// The offset at which the specified elements need to be made accessible. If /// provided, this is used to guard against adding imports for text that /// would be inserted into a comment, string literal, or other location where /// the imports would not be necessary. int? offset; EditImportElementsParams(this.file, this.elements, {this.offset}); factory EditImportElementsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } List elements; if (json.containsKey('elements')) { elements = jsonDecoder.decodeList( '$jsonPath.elements', json['elements'], (String jsonPath, Object? json) => ImportedElements.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'elements', json); } int? offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } return EditImportElementsParams(file, elements, offset: offset); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.importElements params', json); } } factory EditImportElementsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditImportElementsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['elements'] = elements .map( (ImportedElements value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); var offset = this.offset; if (offset != null) { result['offset'] = offset; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.importElements', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditImportElementsParams && file == other.file && listEqual( elements, other.elements, (ImportedElements a, ImportedElements b) => a == b, ) && offset == other.offset; @override int get hashCode => Object.hash(file, Object.hashAll(elements), offset); } /// edit.importElements result /// /// { /// "edit": optional SourceFileEdit /// } /// /// Clients may not extend, implement or mix-in this class. class EditImportElementsResult implements ResponseResult { /// The edits to be applied in order to make the specified elements /// accessible. The file to be edited will be the defining compilation unit /// of the library containing the file specified in the request, which can be /// different than the file specified in the request if the specified file is /// a part file. This field will be omitted if there are no edits that need /// to be applied. SourceFileEdit? edit; EditImportElementsResult({this.edit}); factory EditImportElementsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceFileEdit? edit; if (json.containsKey('edit')) { edit = SourceFileEdit.fromJson( jsonDecoder, '$jsonPath.edit', json['edit'], clientUriConverter: clientUriConverter, ); } return EditImportElementsResult(edit: edit); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.importElements result', json); } } factory EditImportElementsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditImportElementsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var edit = this.edit; if (edit != null) { result['edit'] = edit.toJson(clientUriConverter: clientUriConverter); } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditImportElementsResult && edit == other.edit; @override int get hashCode => edit.hashCode; } /// edit.isPostfixCompletionApplicable params /// /// { /// "file": FilePath /// "key": String /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class EditIsPostfixCompletionApplicableParams implements RequestParams { /// The file containing the postfix template to be expanded. String file; /// The unique name that identifies the template in use. String key; /// The offset used to identify the code to which the template will be /// applied. int offset; EditIsPostfixCompletionApplicableParams(this.file, this.key, this.offset); factory EditIsPostfixCompletionApplicableParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } String key; if (json.containsKey('key')) { key = jsonDecoder.decodeString('$jsonPath.key', json['key']); } else { throw jsonDecoder.mismatch(jsonPath, 'key', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return EditIsPostfixCompletionApplicableParams(file, key, offset); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.isPostfixCompletionApplicable params', json, ); } } factory EditIsPostfixCompletionApplicableParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditIsPostfixCompletionApplicableParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['key'] = key; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.isPostfixCompletionApplicable', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditIsPostfixCompletionApplicableParams && file == other.file && key == other.key && offset == other.offset; @override int get hashCode => Object.hash(file, key, offset); } /// edit.isPostfixCompletionApplicable result /// /// { /// "value": bool /// } /// /// Clients may not extend, implement or mix-in this class. class EditIsPostfixCompletionApplicableResult implements ResponseResult { /// True if the template can be expanded at the given location. bool value; EditIsPostfixCompletionApplicableResult(this.value); factory EditIsPostfixCompletionApplicableResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool value; if (json.containsKey('value')) { value = jsonDecoder.decodeBool('$jsonPath.value', json['value']); } else { throw jsonDecoder.mismatch(jsonPath, 'value', json); } return EditIsPostfixCompletionApplicableResult(value); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.isPostfixCompletionApplicable result', json, ); } } factory EditIsPostfixCompletionApplicableResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditIsPostfixCompletionApplicableResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['value'] = value; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditIsPostfixCompletionApplicableResult && value == other.value; @override int get hashCode => value.hashCode; } /// edit.listPostfixCompletionTemplates params /// /// Clients may not extend, implement or mix-in this class. class EditListPostfixCompletionTemplatesParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'edit.listPostfixCompletionTemplates'); } @override bool operator ==(Object other) => other is EditListPostfixCompletionTemplatesParams; @override int get hashCode => 690713107; } /// edit.listPostfixCompletionTemplates result /// /// { /// "templates": List /// } /// /// Clients may not extend, implement or mix-in this class. class EditListPostfixCompletionTemplatesResult implements ResponseResult { /// The list of available templates. List templates; EditListPostfixCompletionTemplatesResult(this.templates); factory EditListPostfixCompletionTemplatesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List templates; if (json.containsKey('templates')) { templates = jsonDecoder.decodeList( '$jsonPath.templates', json['templates'], (String jsonPath, Object? json) => PostfixTemplateDescriptor.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'templates', json); } return EditListPostfixCompletionTemplatesResult(templates); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.listPostfixCompletionTemplates result', json, ); } } factory EditListPostfixCompletionTemplatesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditListPostfixCompletionTemplatesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['templates'] = templates .map( (PostfixTemplateDescriptor value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditListPostfixCompletionTemplatesResult && listEqual( templates, other.templates, (PostfixTemplateDescriptor a, PostfixTemplateDescriptor b) => a == b, ); @override int get hashCode => Object.hashAll(templates); } /// edit.organizeDirectives params /// /// { /// "file": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class EditOrganizeDirectivesParams implements RequestParams { /// The Dart file to organize directives in. String file; EditOrganizeDirectivesParams(this.file); factory EditOrganizeDirectivesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } return EditOrganizeDirectivesParams(file); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.organizeDirectives params', json, ); } } factory EditOrganizeDirectivesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditOrganizeDirectivesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.organizeDirectives', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditOrganizeDirectivesParams && file == other.file; @override int get hashCode => file.hashCode; } /// edit.organizeDirectives result /// /// { /// "edit": SourceFileEdit /// } /// /// Clients may not extend, implement or mix-in this class. class EditOrganizeDirectivesResult implements ResponseResult { /// The file edit that is to be applied to the given file to affect the /// organizing. SourceFileEdit edit; EditOrganizeDirectivesResult(this.edit); factory EditOrganizeDirectivesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceFileEdit edit; if (json.containsKey('edit')) { edit = SourceFileEdit.fromJson( jsonDecoder, '$jsonPath.edit', json['edit'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit', json); } return EditOrganizeDirectivesResult(edit); } else { throw jsonDecoder.mismatch( jsonPath, 'edit.organizeDirectives result', json, ); } } factory EditOrganizeDirectivesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditOrganizeDirectivesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['edit'] = edit.toJson(clientUriConverter: clientUriConverter); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditOrganizeDirectivesResult && edit == other.edit; @override int get hashCode => edit.hashCode; } /// edit.sortMembers params /// /// { /// "file": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class EditSortMembersParams implements RequestParams { /// The Dart file to sort. String file; EditSortMembersParams(this.file); factory EditSortMembersParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } return EditSortMembersParams(file); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.sortMembers params', json); } } factory EditSortMembersParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return EditSortMembersParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'edit.sortMembers', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditSortMembersParams && file == other.file; @override int get hashCode => file.hashCode; } /// edit.sortMembers result /// /// { /// "edit": SourceFileEdit /// } /// /// Clients may not extend, implement or mix-in this class. class EditSortMembersResult implements ResponseResult { /// The file edit that is to be applied to the given file to affect the /// sorting. SourceFileEdit edit; EditSortMembersResult(this.edit); factory EditSortMembersResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceFileEdit edit; if (json.containsKey('edit')) { edit = SourceFileEdit.fromJson( jsonDecoder, '$jsonPath.edit', json['edit'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'edit', json); } return EditSortMembersResult(edit); } else { throw jsonDecoder.mismatch(jsonPath, 'edit.sortMembers result', json); } } factory EditSortMembersResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return EditSortMembersResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['edit'] = edit.toJson(clientUriConverter: clientUriConverter); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is EditSortMembersResult && edit == other.edit; @override int get hashCode => edit.hashCode; } /// ElementDeclaration /// /// { /// "name": String /// "kind": ElementKind /// "fileIndex": int /// "offset": int /// "line": int /// "column": int /// "codeOffset": int /// "codeLength": int /// "className": optional String /// "mixinName": optional String /// "parameters": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class ElementDeclaration implements HasToJson { /// The name of the declaration. String name; /// The kind of the element that corresponds to the declaration. ElementKind kind; /// The index of the file (in the enclosing response). int fileIndex; /// The offset of the declaration name in the file. int offset; /// The one-based index of the line containing the declaration name. int line; /// The one-based index of the column containing the declaration name. int column; /// The offset of the first character of the declaration code in the file. int codeOffset; /// The length of the declaration code in the file. int codeLength; /// The name of the class enclosing this declaration. If the declaration is /// not a class member, this field will be absent. String? className; /// The name of the mixin enclosing this declaration. If the declaration is /// not a mixin member, this field will be absent. String? mixinName; /// 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 "()". The value /// should not be treated as exact presentation of parameters, it is just /// approximation of parameters to give the user general idea. String? parameters; ElementDeclaration( this.name, this.kind, this.fileIndex, this.offset, this.line, this.column, this.codeOffset, this.codeLength, { this.className, this.mixinName, this.parameters, }); factory ElementDeclaration.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } ElementKind kind; if (json.containsKey('kind')) { kind = ElementKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } int fileIndex; if (json.containsKey('fileIndex')) { fileIndex = jsonDecoder.decodeInt( '$jsonPath.fileIndex', json['fileIndex'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'fileIndex', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int line; if (json.containsKey('line')) { line = jsonDecoder.decodeInt('$jsonPath.line', json['line']); } else { throw jsonDecoder.mismatch(jsonPath, 'line', json); } int column; if (json.containsKey('column')) { column = jsonDecoder.decodeInt('$jsonPath.column', json['column']); } else { throw jsonDecoder.mismatch(jsonPath, 'column', json); } int codeOffset; if (json.containsKey('codeOffset')) { codeOffset = jsonDecoder.decodeInt( '$jsonPath.codeOffset', json['codeOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'codeOffset', json); } int codeLength; if (json.containsKey('codeLength')) { codeLength = jsonDecoder.decodeInt( '$jsonPath.codeLength', json['codeLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'codeLength', json); } String? className; if (json.containsKey('className')) { className = jsonDecoder.decodeString( '$jsonPath.className', json['className'], ); } String? mixinName; if (json.containsKey('mixinName')) { mixinName = jsonDecoder.decodeString( '$jsonPath.mixinName', json['mixinName'], ); } String? parameters; if (json.containsKey('parameters')) { parameters = jsonDecoder.decodeString( '$jsonPath.parameters', json['parameters'], ); } return ElementDeclaration( name, kind, fileIndex, offset, line, column, codeOffset, codeLength, className: className, mixinName: mixinName, parameters: parameters, ); } else { throw jsonDecoder.mismatch(jsonPath, 'ElementDeclaration', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); result['fileIndex'] = fileIndex; result['offset'] = offset; result['line'] = line; result['column'] = column; result['codeOffset'] = codeOffset; result['codeLength'] = codeLength; var className = this.className; if (className != null) { result['className'] = className; } var mixinName = this.mixinName; if (mixinName != null) { result['mixinName'] = mixinName; } var parameters = this.parameters; if (parameters != null) { result['parameters'] = parameters; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ElementDeclaration && name == other.name && kind == other.kind && fileIndex == other.fileIndex && offset == other.offset && line == other.line && column == other.column && codeOffset == other.codeOffset && codeLength == other.codeLength && className == other.className && mixinName == other.mixinName && parameters == other.parameters; @override int get hashCode => Object.hash( name, kind, fileIndex, offset, line, column, codeOffset, codeLength, className, mixinName, parameters, ); } /// ExecutableFile /// /// { /// "file": FilePath /// "kind": ExecutableKind /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutableFile implements HasToJson { /// The path of the executable file. String file; /// The kind of the executable file. ExecutableKind kind; ExecutableFile(this.file, this.kind); factory ExecutableFile.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } ExecutableKind kind; if (json.containsKey('kind')) { kind = ExecutableKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } return ExecutableFile(file, kind); } else { throw jsonDecoder.mismatch(jsonPath, 'ExecutableFile', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutableFile && file == other.file && kind == other.kind; @override int get hashCode => Object.hash(file, kind); } /// ExecutableKind /// /// enum { /// CLIENT /// EITHER /// NOT_EXECUTABLE /// SERVER /// } /// /// Clients may not extend, implement or mix-in this class. enum ExecutableKind { CLIENT, EITHER, NOT_EXECUTABLE, SERVER; factory ExecutableKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'ExecutableKind', json); } @override String toString() => 'ExecutableKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// execution.createContext params /// /// { /// "contextRoot": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionCreateContextParams implements RequestParams { /// The path of the Dart or HTML file that will be launched, or the path of /// the directory containing the file. String contextRoot; ExecutionCreateContextParams(this.contextRoot); factory ExecutionCreateContextParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String contextRoot; if (json.containsKey('contextRoot')) { contextRoot = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString( '$jsonPath.contextRoot', json['contextRoot'], ), ) ?? jsonDecoder.decodeString( '$jsonPath.contextRoot', json['contextRoot'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'contextRoot', json); } return ExecutionCreateContextParams(contextRoot); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.createContext params', json, ); } } factory ExecutionCreateContextParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ExecutionCreateContextParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['contextRoot'] = clientUriConverter?.toClientFilePath(contextRoot) ?? contextRoot; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'execution.createContext', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionCreateContextParams && contextRoot == other.contextRoot; @override int get hashCode => contextRoot.hashCode; } /// execution.createContext result /// /// { /// "id": ExecutionContextId /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionCreateContextResult implements ResponseResult { /// The identifier used to refer to the execution context that was created. String id; ExecutionCreateContextResult(this.id); factory ExecutionCreateContextResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return ExecutionCreateContextResult(id); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.createContext result', json, ); } } factory ExecutionCreateContextResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return ExecutionCreateContextResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionCreateContextResult && id == other.id; @override int get hashCode => id.hashCode; } /// execution.deleteContext params /// /// { /// "id": ExecutionContextId /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionDeleteContextParams implements RequestParams { /// The identifier of the execution context that is to be deleted. String id; ExecutionDeleteContextParams(this.id); factory ExecutionDeleteContextParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return ExecutionDeleteContextParams(id); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.deleteContext params', json, ); } } factory ExecutionDeleteContextParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ExecutionDeleteContextParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'execution.deleteContext', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionDeleteContextParams && id == other.id; @override int get hashCode => id.hashCode; } /// execution.deleteContext result /// /// Clients may not extend, implement or mix-in this class. class ExecutionDeleteContextResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ExecutionDeleteContextResult; @override int get hashCode => 479954425; } /// execution.getSuggestions params /// /// { /// "code": String /// "offset": int /// "contextFile": FilePath /// "contextOffset": int /// "variables": List /// "expressions": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionGetSuggestionsParams implements RequestParams { /// The code to get suggestions in. String code; /// The offset within the code to get suggestions at. int offset; /// The path of the context file, e.g. the file of the current debugger /// frame. The combination of the context file and context offset can be used /// to ensure that all variables of the context are available for completion /// (with their static types). String contextFile; /// The offset in the context file, e.g. the line offset in the current /// debugger frame. int contextOffset; /// The runtime context variables that are potentially referenced in the /// code. List variables; /// The list of sub-expressions in the code for which the client wants to /// provide runtime types. It does not have to be the full list of /// expressions requested by the server, for missing expressions their static /// types will be used. /// /// When this field is omitted, the server will return completion suggestions /// only when there are no interesting sub-expressions in the given code. The /// client may provide an empty list, in this case the server will return /// completion suggestions. List? expressions; ExecutionGetSuggestionsParams( this.code, this.offset, this.contextFile, this.contextOffset, this.variables, { this.expressions, }); factory ExecutionGetSuggestionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String code; if (json.containsKey('code')) { code = jsonDecoder.decodeString('$jsonPath.code', json['code']); } else { throw jsonDecoder.mismatch(jsonPath, 'code', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } String contextFile; if (json.containsKey('contextFile')) { contextFile = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString( '$jsonPath.contextFile', json['contextFile'], ), ) ?? jsonDecoder.decodeString( '$jsonPath.contextFile', json['contextFile'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'contextFile', json); } int contextOffset; if (json.containsKey('contextOffset')) { contextOffset = jsonDecoder.decodeInt( '$jsonPath.contextOffset', json['contextOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'contextOffset', json); } List variables; if (json.containsKey('variables')) { variables = jsonDecoder.decodeList( '$jsonPath.variables', json['variables'], (String jsonPath, Object? json) => RuntimeCompletionVariable.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'variables', json); } List? expressions; if (json.containsKey('expressions')) { expressions = jsonDecoder.decodeList( '$jsonPath.expressions', json['expressions'], (String jsonPath, Object? json) => RuntimeCompletionExpression.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return ExecutionGetSuggestionsParams( code, offset, contextFile, contextOffset, variables, expressions: expressions, ); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.getSuggestions params', json, ); } } factory ExecutionGetSuggestionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ExecutionGetSuggestionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['code'] = code; result['offset'] = offset; result['contextFile'] = clientUriConverter?.toClientFilePath(contextFile) ?? contextFile; result['contextOffset'] = contextOffset; result['variables'] = variables .map( (RuntimeCompletionVariable value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); var expressions = this.expressions; if (expressions != null) { result['expressions'] = expressions .map( (RuntimeCompletionExpression value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'execution.getSuggestions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionGetSuggestionsParams && code == other.code && offset == other.offset && contextFile == other.contextFile && contextOffset == other.contextOffset && listEqual( variables, other.variables, (RuntimeCompletionVariable a, RuntimeCompletionVariable b) => a == b, ) && listEqual( expressions, other.expressions, (RuntimeCompletionExpression a, RuntimeCompletionExpression b) => a == b, ); @override int get hashCode => Object.hash( code, offset, contextFile, contextOffset, Object.hashAll(variables), Object.hashAll(expressions ?? []), ); } /// execution.getSuggestions result /// /// { /// "suggestions": optional List /// "expressions": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionGetSuggestionsResult implements ResponseResult { /// The completion suggestions. In contrast to usual completion requests, /// suggestions for private elements also will be provided. /// /// If there are sub-expressions that can have different runtime types, and /// are considered to be safe to evaluate at runtime (e.g. getters), so using /// their actual runtime types can improve completion results, the server /// omits this field in the response, and instead will return the /// "expressions" field. List? suggestions; /// The list of sub-expressions in the code for which the server would like /// to know runtime types to provide better completion suggestions. /// /// This field is omitted the field "suggestions" is returned. List? expressions; ExecutionGetSuggestionsResult({this.suggestions, this.expressions}); factory ExecutionGetSuggestionsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List? suggestions; if (json.containsKey('suggestions')) { suggestions = jsonDecoder.decodeList( '$jsonPath.suggestions', json['suggestions'], (String jsonPath, Object? json) => CompletionSuggestion.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } List? expressions; if (json.containsKey('expressions')) { expressions = jsonDecoder.decodeList( '$jsonPath.expressions', json['expressions'], (String jsonPath, Object? json) => RuntimeCompletionExpression.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return ExecutionGetSuggestionsResult( suggestions: suggestions, expressions: expressions, ); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.getSuggestions result', json, ); } } factory ExecutionGetSuggestionsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return ExecutionGetSuggestionsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var suggestions = this.suggestions; if (suggestions != null) { result['suggestions'] = suggestions .map( (CompletionSuggestion value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } var expressions = this.expressions; if (expressions != null) { result['expressions'] = expressions .map( (RuntimeCompletionExpression value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionGetSuggestionsResult && listEqual( suggestions, other.suggestions, (CompletionSuggestion a, CompletionSuggestion b) => a == b, ) && listEqual( expressions, other.expressions, (RuntimeCompletionExpression a, RuntimeCompletionExpression b) => a == b, ); @override int get hashCode => Object.hash( Object.hashAll(suggestions ?? []), Object.hashAll(expressions ?? []), ); } /// execution.launchData params /// /// { /// "file": FilePath /// "kind": optional ExecutableKind /// "referencedFiles": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionLaunchDataParams implements HasToJson { /// The file for which launch data is being provided. This will either be a /// Dart library or an HTML file. String file; /// The kind of the executable file. This field is omitted if the file is not /// a Dart file. ExecutableKind? kind; /// A list of the Dart files that are referenced by the file. This field is /// omitted if the file is not an HTML file. List? referencedFiles; ExecutionLaunchDataParams(this.file, {this.kind, this.referencedFiles}); factory ExecutionLaunchDataParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } ExecutableKind? kind; if (json.containsKey('kind')) { kind = ExecutableKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } List? referencedFiles; if (json.containsKey('referencedFiles')) { referencedFiles = jsonDecoder.decodeList( '$jsonPath.referencedFiles', json['referencedFiles'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } return ExecutionLaunchDataParams( file, kind: kind, referencedFiles: referencedFiles, ); } else { throw jsonDecoder.mismatch(jsonPath, 'execution.launchData params', json); } } factory ExecutionLaunchDataParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ExecutionLaunchDataParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; var kind = this.kind; if (kind != null) { result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); } var referencedFiles = this.referencedFiles; if (referencedFiles != null) { result['referencedFiles'] = referencedFiles .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); } return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'execution.launchData', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionLaunchDataParams && file == other.file && kind == other.kind && listEqual( referencedFiles, other.referencedFiles, (String a, String b) => a == b, ); @override int get hashCode => Object.hash(file, kind, Object.hashAll(referencedFiles ?? [])); } /// execution.mapUri params /// /// { /// "id": ExecutionContextId /// "file": optional FilePath /// "uri": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionMapUriParams implements RequestParams { /// The identifier of the execution context in which the URI is to be mapped. String id; /// The path of the file to be mapped into a URI. String? file; /// The URI to be mapped into a file path. String? uri; ExecutionMapUriParams(this.id, {this.file, this.uri}); factory ExecutionMapUriParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } String? file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } String? uri; if (json.containsKey('uri')) { uri = jsonDecoder.decodeString('$jsonPath.uri', json['uri']); } return ExecutionMapUriParams(id, file: file, uri: uri); } else { throw jsonDecoder.mismatch(jsonPath, 'execution.mapUri params', json); } } factory ExecutionMapUriParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ExecutionMapUriParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; var file = this.file; if (file != null) { result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; } var uri = this.uri; if (uri != null) { result['uri'] = uri; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'execution.mapUri', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionMapUriParams && id == other.id && file == other.file && uri == other.uri; @override int get hashCode => Object.hash(id, file, uri); } /// execution.mapUri result /// /// { /// "file": optional FilePath /// "uri": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionMapUriResult implements ResponseResult { /// The file to which the URI was mapped. This field is omitted if the uri /// field was not given in the request. String? file; /// The URI to which the file path was mapped. This field is omitted if the /// file field was not given in the request. String? uri; ExecutionMapUriResult({this.file, this.uri}); factory ExecutionMapUriResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } String? uri; if (json.containsKey('uri')) { uri = jsonDecoder.decodeString('$jsonPath.uri', json['uri']); } return ExecutionMapUriResult(file: file, uri: uri); } else { throw jsonDecoder.mismatch(jsonPath, 'execution.mapUri result', json); } } factory ExecutionMapUriResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return ExecutionMapUriResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var file = this.file; if (file != null) { result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; } var uri = this.uri; if (uri != null) { result['uri'] = uri; } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionMapUriResult && file == other.file && uri == other.uri; @override int get hashCode => Object.hash(file, uri); } /// ExecutionService /// /// enum { /// LAUNCH_DATA /// } /// /// Clients may not extend, implement or mix-in this class. enum ExecutionService { LAUNCH_DATA; factory ExecutionService.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'ExecutionService', json); } @override String toString() => 'ExecutionService.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// execution.setSubscriptions params /// /// { /// "subscriptions": List /// } /// /// Clients may not extend, implement or mix-in this class. class ExecutionSetSubscriptionsParams implements RequestParams { /// A list of the services being subscribed to. List subscriptions; ExecutionSetSubscriptionsParams(this.subscriptions); factory ExecutionSetSubscriptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List subscriptions; if (json.containsKey('subscriptions')) { subscriptions = jsonDecoder.decodeList( '$jsonPath.subscriptions', json['subscriptions'], (String jsonPath, Object? json) => ExecutionService.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'subscriptions', json); } return ExecutionSetSubscriptionsParams(subscriptions); } else { throw jsonDecoder.mismatch( jsonPath, 'execution.setSubscriptions params', json, ); } } factory ExecutionSetSubscriptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ExecutionSetSubscriptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['subscriptions'] = subscriptions .map( (ExecutionService value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'execution.setSubscriptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExecutionSetSubscriptionsParams && listEqual( subscriptions, other.subscriptions, (ExecutionService a, ExecutionService b) => a == b, ); @override int get hashCode => Object.hashAll(subscriptions); } /// execution.setSubscriptions result /// /// Clients may not extend, implement or mix-in this class. class ExecutionSetSubscriptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ExecutionSetSubscriptionsResult; @override int get hashCode => 287678780; } /// ExistingImport /// /// { /// "uri": int /// "elements": List /// } /// /// Clients may not extend, implement or mix-in this class. class ExistingImport implements HasToJson { /// The URI of the imported library. It is an index in the `strings` field, /// in the enclosing `ExistingImports` and its `ImportedElementSet` object. int uri; /// The list of indexes of elements, in the enclosing `ExistingImports` /// object. List elements; ExistingImport(this.uri, this.elements); factory ExistingImport.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int uri; if (json.containsKey('uri')) { uri = jsonDecoder.decodeInt('$jsonPath.uri', json['uri']); } else { throw jsonDecoder.mismatch(jsonPath, 'uri', json); } List elements; if (json.containsKey('elements')) { elements = jsonDecoder.decodeList( '$jsonPath.elements', json['elements'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'elements', json); } return ExistingImport(uri, elements); } else { throw jsonDecoder.mismatch(jsonPath, 'ExistingImport', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['uri'] = uri; result['elements'] = elements; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExistingImport && uri == other.uri && listEqual(elements, other.elements, (int a, int b) => a == b); @override int get hashCode => Object.hash(uri, Object.hashAll(elements)); } /// ExistingImports /// /// { /// "elements": ImportedElementSet /// "imports": List /// } /// /// Clients may not extend, implement or mix-in this class. class ExistingImports implements HasToJson { /// The set of all unique imported elements for all imports. ImportedElementSet elements; /// The list of imports in the library. List imports; ExistingImports(this.elements, this.imports); factory ExistingImports.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { ImportedElementSet elements; if (json.containsKey('elements')) { elements = ImportedElementSet.fromJson( jsonDecoder, '$jsonPath.elements', json['elements'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'elements', json); } List imports; if (json.containsKey('imports')) { imports = jsonDecoder.decodeList( '$jsonPath.imports', json['imports'], (String jsonPath, Object? json) => ExistingImport.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'imports', json); } return ExistingImports(elements, imports); } else { throw jsonDecoder.mismatch(jsonPath, 'ExistingImports', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['elements'] = elements.toJson( clientUriConverter: clientUriConverter, ); result['imports'] = imports .map( (ExistingImport value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExistingImports && elements == other.elements && listEqual( imports, other.imports, (ExistingImport a, ExistingImport b) => a == b, ); @override int get hashCode => Object.hash(elements, Object.hashAll(imports)); } /// extractLocalVariable feedback /// /// { /// "coveringExpressionOffsets": optional List /// "coveringExpressionLengths": optional List /// "names": List /// "offsets": List /// "lengths": List /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractLocalVariableFeedback extends RefactoringFeedback { /// The offsets of the expressions that cover the specified selection, from /// the down most to the up most. List? coveringExpressionOffsets; /// The lengths of the expressions that cover the specified selection, from /// the down most to the up most. List? coveringExpressionLengths; /// The proposed names for the local variable. List names; /// The offsets of the expressions that would be replaced by a reference to /// the variable. List offsets; /// The lengths of the expressions that would be replaced by a reference to /// the variable. The lengths correspond to the offsets. In other words, for /// a given expression, if the offset of that expression is `offsets[i]`, /// then the length of that expression is `lengths[i]`. List lengths; ExtractLocalVariableFeedback( this.names, this.offsets, this.lengths, { this.coveringExpressionOffsets, this.coveringExpressionLengths, }); factory ExtractLocalVariableFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List? coveringExpressionOffsets; if (json.containsKey('coveringExpressionOffsets')) { coveringExpressionOffsets = jsonDecoder.decodeList( '$jsonPath.coveringExpressionOffsets', json['coveringExpressionOffsets'], jsonDecoder.decodeInt, ); } List? coveringExpressionLengths; if (json.containsKey('coveringExpressionLengths')) { coveringExpressionLengths = jsonDecoder.decodeList( '$jsonPath.coveringExpressionLengths', json['coveringExpressionLengths'], jsonDecoder.decodeInt, ); } List names; if (json.containsKey('names')) { names = jsonDecoder.decodeList( '$jsonPath.names', json['names'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'names', json); } List offsets; if (json.containsKey('offsets')) { offsets = jsonDecoder.decodeList( '$jsonPath.offsets', json['offsets'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'offsets', json); } List lengths; if (json.containsKey('lengths')) { lengths = jsonDecoder.decodeList( '$jsonPath.lengths', json['lengths'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'lengths', json); } return ExtractLocalVariableFeedback( names, offsets, lengths, coveringExpressionOffsets: coveringExpressionOffsets, coveringExpressionLengths: coveringExpressionLengths, ); } else { throw jsonDecoder.mismatch( jsonPath, 'extractLocalVariable feedback', json, ); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var coveringExpressionOffsets = this.coveringExpressionOffsets; if (coveringExpressionOffsets != null) { result['coveringExpressionOffsets'] = coveringExpressionOffsets; } var coveringExpressionLengths = this.coveringExpressionLengths; if (coveringExpressionLengths != null) { result['coveringExpressionLengths'] = coveringExpressionLengths; } result['names'] = names; result['offsets'] = offsets; result['lengths'] = lengths; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractLocalVariableFeedback && listEqual( coveringExpressionOffsets, other.coveringExpressionOffsets, (int a, int b) => a == b, ) && listEqual( coveringExpressionLengths, other.coveringExpressionLengths, (int a, int b) => a == b, ) && listEqual(names, other.names, (String a, String b) => a == b) && listEqual(offsets, other.offsets, (int a, int b) => a == b) && listEqual(lengths, other.lengths, (int a, int b) => a == b); @override int get hashCode => Object.hash( Object.hashAll(coveringExpressionOffsets ?? []), Object.hashAll(coveringExpressionLengths ?? []), Object.hashAll(names), Object.hashAll(offsets), Object.hashAll(lengths), ); } /// extractLocalVariable options /// /// { /// "name": String /// "extractAll": bool /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractLocalVariableOptions extends RefactoringOptions { /// The name that the local variable should be given. String name; /// True if all occurrences of the expression within the scope in which the /// variable will be defined should be replaced by a reference to the local /// variable. The expression used to initiate the refactoring will always be /// replaced. bool extractAll; ExtractLocalVariableOptions(this.name, this.extractAll); factory ExtractLocalVariableOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } bool extractAll; if (json.containsKey('extractAll')) { extractAll = jsonDecoder.decodeBool( '$jsonPath.extractAll', json['extractAll'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'extractAll', json); } return ExtractLocalVariableOptions(name, extractAll); } else { throw jsonDecoder.mismatch( jsonPath, 'extractLocalVariable options', json, ); } } factory ExtractLocalVariableOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return ExtractLocalVariableOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['extractAll'] = extractAll; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractLocalVariableOptions && name == other.name && extractAll == other.extractAll; @override int get hashCode => Object.hash(name, extractAll); } /// extractMethod feedback /// /// { /// "offset": int /// "length": int /// "returnType": String /// "names": List /// "canCreateGetter": bool /// "parameters": List /// "offsets": List /// "lengths": List /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractMethodFeedback extends RefactoringFeedback { /// The offset to the beginning of the expression or statements that will be /// extracted. int offset; /// The length of the expression or statements that will be extracted. int length; /// The proposed return type for the method. If the returned element does not /// have a declared return type, this field will contain an empty string. String returnType; /// The proposed names for the method. List names; /// True if a getter could be created rather than a method. bool canCreateGetter; /// The proposed parameters for the method. List parameters; /// The offsets of the expressions or statements that would be replaced by an /// invocation of the method. List offsets; /// The lengths of the expressions or statements that would be replaced by an /// invocation of the method. The lengths correspond to the offsets. In other /// words, for a given expression (or block of statements), if the offset of /// that expression is `offsets[i]`, then the length of that expression is /// `lengths[i]`. List lengths; ExtractMethodFeedback( this.offset, this.length, this.returnType, this.names, this.canCreateGetter, this.parameters, this.offsets, this.lengths, ); factory ExtractMethodFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } String returnType; if (json.containsKey('returnType')) { returnType = jsonDecoder.decodeString( '$jsonPath.returnType', json['returnType'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'returnType', json); } List names; if (json.containsKey('names')) { names = jsonDecoder.decodeList( '$jsonPath.names', json['names'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'names', json); } bool canCreateGetter; if (json.containsKey('canCreateGetter')) { canCreateGetter = jsonDecoder.decodeBool( '$jsonPath.canCreateGetter', json['canCreateGetter'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'canCreateGetter', json); } List parameters; if (json.containsKey('parameters')) { parameters = jsonDecoder.decodeList( '$jsonPath.parameters', json['parameters'], (String jsonPath, Object? json) => RefactoringMethodParameter.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'parameters', json); } List offsets; if (json.containsKey('offsets')) { offsets = jsonDecoder.decodeList( '$jsonPath.offsets', json['offsets'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'offsets', json); } List lengths; if (json.containsKey('lengths')) { lengths = jsonDecoder.decodeList( '$jsonPath.lengths', json['lengths'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'lengths', json); } return ExtractMethodFeedback( offset, length, returnType, names, canCreateGetter, parameters, offsets, lengths, ); } else { throw jsonDecoder.mismatch(jsonPath, 'extractMethod feedback', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; result['returnType'] = returnType; result['names'] = names; result['canCreateGetter'] = canCreateGetter; result['parameters'] = parameters .map( (RefactoringMethodParameter value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['offsets'] = offsets; result['lengths'] = lengths; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractMethodFeedback && offset == other.offset && length == other.length && returnType == other.returnType && listEqual(names, other.names, (String a, String b) => a == b) && canCreateGetter == other.canCreateGetter && listEqual( parameters, other.parameters, (RefactoringMethodParameter a, RefactoringMethodParameter b) => a == b, ) && listEqual(offsets, other.offsets, (int a, int b) => a == b) && listEqual(lengths, other.lengths, (int a, int b) => a == b); @override int get hashCode => Object.hash( offset, length, returnType, Object.hashAll(names), canCreateGetter, Object.hashAll(parameters), Object.hashAll(offsets), Object.hashAll(lengths), ); } /// extractMethod options /// /// { /// "returnType": String /// "createGetter": bool /// "name": String /// "parameters": List /// "extractAll": bool /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractMethodOptions extends RefactoringOptions { /// The return type that should be defined for the method. String returnType; /// True if a getter should be created rather than a method. It is an error /// if this field is true and the list of parameters is non-empty. bool createGetter; /// The name that the method should be given. String name; /// The parameters that should be defined for the method. /// /// It is an error if a REQUIRED or NAMED parameter follows a POSITIONAL /// parameter. It is an error if a REQUIRED or POSITIONAL parameter follows a /// NAMED parameter. /// /// - To change the order and/or update proposed parameters, add parameters /// with the same identifiers as proposed. /// - To add new parameters, omit their identifier. /// - To remove some parameters, omit them in this list. List parameters; /// True if all occurrences of the expression or statements should be /// replaced by an invocation of the method. The expression or statements /// used to initiate the refactoring will always be replaced. bool extractAll; ExtractMethodOptions( this.returnType, this.createGetter, this.name, this.parameters, this.extractAll, ); factory ExtractMethodOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String returnType; if (json.containsKey('returnType')) { returnType = jsonDecoder.decodeString( '$jsonPath.returnType', json['returnType'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'returnType', json); } bool createGetter; if (json.containsKey('createGetter')) { createGetter = jsonDecoder.decodeBool( '$jsonPath.createGetter', json['createGetter'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'createGetter', json); } String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } List parameters; if (json.containsKey('parameters')) { parameters = jsonDecoder.decodeList( '$jsonPath.parameters', json['parameters'], (String jsonPath, Object? json) => RefactoringMethodParameter.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'parameters', json); } bool extractAll; if (json.containsKey('extractAll')) { extractAll = jsonDecoder.decodeBool( '$jsonPath.extractAll', json['extractAll'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'extractAll', json); } return ExtractMethodOptions( returnType, createGetter, name, parameters, extractAll, ); } else { throw jsonDecoder.mismatch(jsonPath, 'extractMethod options', json); } } factory ExtractMethodOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return ExtractMethodOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['returnType'] = returnType; result['createGetter'] = createGetter; result['name'] = name; result['parameters'] = parameters .map( (RefactoringMethodParameter value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['extractAll'] = extractAll; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractMethodOptions && returnType == other.returnType && createGetter == other.createGetter && name == other.name && listEqual( parameters, other.parameters, (RefactoringMethodParameter a, RefactoringMethodParameter b) => a == b, ) && extractAll == other.extractAll; @override int get hashCode => Object.hash( returnType, createGetter, name, Object.hashAll(parameters), extractAll, ); } /// extractWidget feedback /// /// { /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractWidgetFeedback extends RefactoringFeedback { ExtractWidgetFeedback(); factory ExtractWidgetFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { return ExtractWidgetFeedback(); } else { throw jsonDecoder.mismatch(jsonPath, 'extractWidget feedback', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractWidgetFeedback; @override int get hashCode => 0; } /// extractWidget options /// /// { /// "name": String /// } /// /// Clients may not extend, implement or mix-in this class. class ExtractWidgetOptions extends RefactoringOptions { /// The name that the widget class should be given. String name; ExtractWidgetOptions(this.name); factory ExtractWidgetOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } return ExtractWidgetOptions(name); } else { throw jsonDecoder.mismatch(jsonPath, 'extractWidget options', json); } } factory ExtractWidgetOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return ExtractWidgetOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ExtractWidgetOptions && name == other.name; @override int get hashCode => name.hashCode; } /// FileKind /// /// enum { /// LIBRARY /// PART /// } /// /// Clients may not extend, implement or mix-in this class. enum FileKind { LIBRARY, PART; factory FileKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'FileKind', json); } @override String toString() => 'FileKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// flutter.getWidgetDescription params /// /// { /// "file": FilePath /// "offset": int /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterGetWidgetDescriptionParams implements RequestParams { /// The file where the widget instance is created. String file; /// The offset in the file where the widget instance is created. int offset; FlutterGetWidgetDescriptionParams(this.file, this.offset); factory FlutterGetWidgetDescriptionParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } return FlutterGetWidgetDescriptionParams(file, offset); } else { throw jsonDecoder.mismatch( jsonPath, 'flutter.getWidgetDescription params', json, ); } } factory FlutterGetWidgetDescriptionParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return FlutterGetWidgetDescriptionParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'flutter.getWidgetDescription', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterGetWidgetDescriptionParams && file == other.file && offset == other.offset; @override int get hashCode => Object.hash(file, offset); } /// flutter.getWidgetDescription result /// /// { /// "properties": List /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterGetWidgetDescriptionResult implements ResponseResult { /// The list of properties of the widget. Some of the properties might be /// read only, when their `editor` is not set. This might be because they /// have type that we don't know how to edit, or for compound properties that /// work as containers for sub-properties. List properties; FlutterGetWidgetDescriptionResult(this.properties); factory FlutterGetWidgetDescriptionResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List properties; if (json.containsKey('properties')) { properties = jsonDecoder.decodeList( '$jsonPath.properties', json['properties'], (String jsonPath, Object? json) => FlutterWidgetProperty.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'properties', json); } return FlutterGetWidgetDescriptionResult(properties); } else { throw jsonDecoder.mismatch( jsonPath, 'flutter.getWidgetDescription result', json, ); } } factory FlutterGetWidgetDescriptionResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return FlutterGetWidgetDescriptionResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['properties'] = properties .map( (FlutterWidgetProperty value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterGetWidgetDescriptionResult && listEqual( properties, other.properties, (FlutterWidgetProperty a, FlutterWidgetProperty b) => a == b, ); @override int get hashCode => Object.hashAll(properties); } /// FlutterOutline /// /// { /// "kind": FlutterOutlineKind /// "offset": int /// "length": int /// "codeOffset": int /// "codeLength": int /// "label": optional String /// "dartElement": optional Element /// "attributes": optional List /// "className": optional String /// "parentAssociationLabel": optional String /// "variableName": optional String /// "children": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterOutline implements HasToJson { /// The kind of the node. FlutterOutlineKind kind; /// 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 offset; /// The length of the element. int length; /// The offset of the first character of the element code, which is neither /// documentation, nor annotation. int codeOffset; /// The length of the element code. int codeLength; /// The text label of the node children of the node. It is provided for any /// FlutterOutlineKind.GENERIC node, where better information is not /// available. String? label; /// If this node is a Dart element, the description of it; omitted otherwise. Element? dartElement; /// Additional attributes for this node, which might be interesting to /// display on the client. These attributes are usually arguments for the /// instance creation or the invocation that created the widget. List? attributes; /// If the node creates a new class instance, or a reference to an instance, /// this field has the name of the class. String? className; /// A short text description how this node is associated with the parent /// node. For example "appBar" or "body" in Scaffold. String? parentAssociationLabel; /// If FlutterOutlineKind.VARIABLE, the name of the variable. String? variableName; /// The children of the node. The field will be omitted if the node has no /// children. List? children; FlutterOutline( this.kind, this.offset, this.length, this.codeOffset, this.codeLength, { this.label, this.dartElement, this.attributes, this.className, this.parentAssociationLabel, this.variableName, this.children, }); factory FlutterOutline.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { FlutterOutlineKind kind; if (json.containsKey('kind')) { kind = FlutterOutlineKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } int codeOffset; if (json.containsKey('codeOffset')) { codeOffset = jsonDecoder.decodeInt( '$jsonPath.codeOffset', json['codeOffset'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'codeOffset', json); } int codeLength; if (json.containsKey('codeLength')) { codeLength = jsonDecoder.decodeInt( '$jsonPath.codeLength', json['codeLength'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'codeLength', json); } String? label; if (json.containsKey('label')) { label = jsonDecoder.decodeString('$jsonPath.label', json['label']); } Element? dartElement; if (json.containsKey('dartElement')) { dartElement = Element.fromJson( jsonDecoder, '$jsonPath.dartElement', json['dartElement'], clientUriConverter: clientUriConverter, ); } List? attributes; if (json.containsKey('attributes')) { attributes = jsonDecoder.decodeList( '$jsonPath.attributes', json['attributes'], (String jsonPath, Object? json) => FlutterOutlineAttribute.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } String? className; if (json.containsKey('className')) { className = jsonDecoder.decodeString( '$jsonPath.className', json['className'], ); } String? parentAssociationLabel; if (json.containsKey('parentAssociationLabel')) { parentAssociationLabel = jsonDecoder.decodeString( '$jsonPath.parentAssociationLabel', json['parentAssociationLabel'], ); } String? variableName; if (json.containsKey('variableName')) { variableName = jsonDecoder.decodeString( '$jsonPath.variableName', json['variableName'], ); } List? children; if (json.containsKey('children')) { children = jsonDecoder.decodeList( '$jsonPath.children', json['children'], (String jsonPath, Object? json) => FlutterOutline.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return FlutterOutline( kind, offset, length, codeOffset, codeLength, label: label, dartElement: dartElement, attributes: attributes, className: className, parentAssociationLabel: parentAssociationLabel, variableName: variableName, children: children, ); } else { throw jsonDecoder.mismatch(jsonPath, 'FlutterOutline', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); result['offset'] = offset; result['length'] = length; result['codeOffset'] = codeOffset; result['codeLength'] = codeLength; var label = this.label; if (label != null) { result['label'] = label; } var dartElement = this.dartElement; if (dartElement != null) { result['dartElement'] = dartElement.toJson( clientUriConverter: clientUriConverter, ); } var attributes = this.attributes; if (attributes != null) { result['attributes'] = attributes .map( (FlutterOutlineAttribute value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } var className = this.className; if (className != null) { result['className'] = className; } var parentAssociationLabel = this.parentAssociationLabel; if (parentAssociationLabel != null) { result['parentAssociationLabel'] = parentAssociationLabel; } var variableName = this.variableName; if (variableName != null) { result['variableName'] = variableName; } var children = this.children; if (children != null) { result['children'] = children .map( (FlutterOutline value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterOutline && kind == other.kind && offset == other.offset && length == other.length && codeOffset == other.codeOffset && codeLength == other.codeLength && label == other.label && dartElement == other.dartElement && listEqual( attributes, other.attributes, (FlutterOutlineAttribute a, FlutterOutlineAttribute b) => a == b, ) && className == other.className && parentAssociationLabel == other.parentAssociationLabel && variableName == other.variableName && listEqual( children, other.children, (FlutterOutline a, FlutterOutline b) => a == b, ); @override int get hashCode => Object.hash( kind, offset, length, codeOffset, codeLength, label, dartElement, Object.hashAll(attributes ?? []), className, parentAssociationLabel, variableName, Object.hashAll(children ?? []), ); } /// FlutterOutlineAttribute /// /// { /// "name": String /// "label": String /// "literalValueBoolean": optional bool /// "literalValueInteger": optional int /// "literalValueString": optional String /// "nameLocation": optional Location /// "valueLocation": optional Location /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterOutlineAttribute implements HasToJson { /// The name of the attribute. String name; /// The label of the attribute value, usually the Dart code. It might be /// quite long, the client should abbreviate as needed. String label; /// The boolean literal value of the attribute. This field is absent if the /// value is not a boolean literal. bool? literalValueBoolean; /// The integer literal value of the attribute. This field is absent if the /// value is not an integer literal. int? literalValueInteger; /// The string literal value of the attribute. This field is absent if the /// value is not a string literal. String? literalValueString; /// If the attribute is a named argument, the location of the name, without /// the colon. Location? nameLocation; /// The location of the value. /// /// This field is always available, but marked optional for backward /// compatibility between new clients with older servers. Location? valueLocation; FlutterOutlineAttribute( this.name, this.label, { this.literalValueBoolean, this.literalValueInteger, this.literalValueString, this.nameLocation, this.valueLocation, }); factory FlutterOutlineAttribute.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } String label; if (json.containsKey('label')) { label = jsonDecoder.decodeString('$jsonPath.label', json['label']); } else { throw jsonDecoder.mismatch(jsonPath, 'label', json); } bool? literalValueBoolean; if (json.containsKey('literalValueBoolean')) { literalValueBoolean = jsonDecoder.decodeBool( '$jsonPath.literalValueBoolean', json['literalValueBoolean'], ); } int? literalValueInteger; if (json.containsKey('literalValueInteger')) { literalValueInteger = jsonDecoder.decodeInt( '$jsonPath.literalValueInteger', json['literalValueInteger'], ); } String? literalValueString; if (json.containsKey('literalValueString')) { literalValueString = jsonDecoder.decodeString( '$jsonPath.literalValueString', json['literalValueString'], ); } Location? nameLocation; if (json.containsKey('nameLocation')) { nameLocation = Location.fromJson( jsonDecoder, '$jsonPath.nameLocation', json['nameLocation'], clientUriConverter: clientUriConverter, ); } Location? valueLocation; if (json.containsKey('valueLocation')) { valueLocation = Location.fromJson( jsonDecoder, '$jsonPath.valueLocation', json['valueLocation'], clientUriConverter: clientUriConverter, ); } return FlutterOutlineAttribute( name, label, literalValueBoolean: literalValueBoolean, literalValueInteger: literalValueInteger, literalValueString: literalValueString, nameLocation: nameLocation, valueLocation: valueLocation, ); } else { throw jsonDecoder.mismatch(jsonPath, 'FlutterOutlineAttribute', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['label'] = label; var literalValueBoolean = this.literalValueBoolean; if (literalValueBoolean != null) { result['literalValueBoolean'] = literalValueBoolean; } var literalValueInteger = this.literalValueInteger; if (literalValueInteger != null) { result['literalValueInteger'] = literalValueInteger; } var literalValueString = this.literalValueString; if (literalValueString != null) { result['literalValueString'] = literalValueString; } var nameLocation = this.nameLocation; if (nameLocation != null) { result['nameLocation'] = nameLocation.toJson( clientUriConverter: clientUriConverter, ); } var valueLocation = this.valueLocation; if (valueLocation != null) { result['valueLocation'] = valueLocation.toJson( clientUriConverter: clientUriConverter, ); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterOutlineAttribute && name == other.name && label == other.label && literalValueBoolean == other.literalValueBoolean && literalValueInteger == other.literalValueInteger && literalValueString == other.literalValueString && nameLocation == other.nameLocation && valueLocation == other.valueLocation; @override int get hashCode => Object.hash( name, label, literalValueBoolean, literalValueInteger, literalValueString, nameLocation, valueLocation, ); } /// FlutterOutlineKind /// /// enum { /// DART_ELEMENT /// GENERIC /// NEW_INSTANCE /// INVOCATION /// VARIABLE /// PLACEHOLDER /// } /// /// Clients may not extend, implement or mix-in this class. enum FlutterOutlineKind { /// A dart element declaration. DART_ELEMENT, /// A generic Flutter element, without additional information. GENERIC, /// A new instance creation. NEW_INSTANCE, /// An invocation of a method, a top-level function, a function expression, /// etc. INVOCATION, /// A reference to a local variable, or a field. VARIABLE, /// The parent node has a required Widget. The node works as a placeholder /// child to drop a new Widget to. PLACEHOLDER; factory FlutterOutlineKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'FlutterOutlineKind', json); } @override String toString() => 'FlutterOutlineKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// flutter.outline params /// /// { /// "file": FilePath /// "outline": FlutterOutline /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterOutlineParams implements HasToJson { /// The file with which the outline is associated. String file; /// The outline associated with the file. FlutterOutline outline; FlutterOutlineParams(this.file, this.outline); factory FlutterOutlineParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } FlutterOutline outline; if (json.containsKey('outline')) { outline = FlutterOutline.fromJson( jsonDecoder, '$jsonPath.outline', json['outline'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'outline', json); } return FlutterOutlineParams(file, outline); } else { throw jsonDecoder.mismatch(jsonPath, 'flutter.outline params', json); } } factory FlutterOutlineParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return FlutterOutlineParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['outline'] = outline.toJson(clientUriConverter: clientUriConverter); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'flutter.outline', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterOutlineParams && file == other.file && outline == other.outline; @override int get hashCode => Object.hash(file, outline); } /// FlutterService /// /// enum { /// OUTLINE /// } /// /// Clients may not extend, implement or mix-in this class. enum FlutterService { OUTLINE; factory FlutterService.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'FlutterService', json); } @override String toString() => 'FlutterService.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// flutter.setSubscriptions params /// /// { /// "subscriptions": Map> /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterSetSubscriptionsParams implements RequestParams { /// A table mapping services to a list of the files being subscribed to the /// service. Map> subscriptions; FlutterSetSubscriptionsParams(this.subscriptions); factory FlutterSetSubscriptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Map> subscriptions; if (json.containsKey('subscriptions')) { subscriptions = jsonDecoder.decodeMap( '$jsonPath.subscriptions', json['subscriptions'], keyDecoder: (String jsonPath, Object? json) => FlutterService.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), valueDecoder: (String jsonPath, Object? json) => jsonDecoder.decodeList( jsonPath, json, (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'subscriptions', json); } return FlutterSetSubscriptionsParams(subscriptions); } else { throw jsonDecoder.mismatch( jsonPath, 'flutter.setSubscriptions params', json, ); } } factory FlutterSetSubscriptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return FlutterSetSubscriptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['subscriptions'] = mapMap( subscriptions, keyCallback: (FlutterService value) => value.toJson(clientUriConverter: clientUriConverter), valueCallback: (List value) => value .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(), ); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'flutter.setSubscriptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterSetSubscriptionsParams && mapEqual( subscriptions, other.subscriptions, (List a, List b) => listEqual(a, b, (String a, String b) => a == b), ); @override int get hashCode => Object.hashAll([...subscriptions.keys, ...subscriptions.values]); } /// flutter.setSubscriptions result /// /// Clients may not extend, implement or mix-in this class. class FlutterSetSubscriptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is FlutterSetSubscriptionsResult; @override int get hashCode => 628296315; } /// flutter.setWidgetPropertyValue params /// /// { /// "id": int /// "value": optional FlutterWidgetPropertyValue /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterSetWidgetPropertyValueParams implements RequestParams { /// The identifier of the property, previously returned as a part of a /// `FlutterWidgetProperty`. /// /// An error of type `FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_ID` is /// generated if the identifier is not valid. int id; /// The new value to set for the property. /// /// If absent, indicates that the property should be removed. If the property /// corresponds to an optional parameter, the corresponding named argument is /// removed. If the property `isRequired` is true, /// `FLUTTER_SET_WIDGET_PROPERTY_VALUE_IS_REQUIRED` error is generated. /// /// If the `expression` is not a syntactically valid Dart code, then /// `FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_EXPRESSION` is reported. FlutterWidgetPropertyValue? value; FlutterSetWidgetPropertyValueParams(this.id, {this.value}); factory FlutterSetWidgetPropertyValueParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int id; if (json.containsKey('id')) { id = jsonDecoder.decodeInt('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } FlutterWidgetPropertyValue? value; if (json.containsKey('value')) { value = FlutterWidgetPropertyValue.fromJson( jsonDecoder, '$jsonPath.value', json['value'], clientUriConverter: clientUriConverter, ); } return FlutterSetWidgetPropertyValueParams(id, value: value); } else { throw jsonDecoder.mismatch( jsonPath, 'flutter.setWidgetPropertyValue params', json, ); } } factory FlutterSetWidgetPropertyValueParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return FlutterSetWidgetPropertyValueParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; var value = this.value; if (value != null) { result['value'] = value.toJson(clientUriConverter: clientUriConverter); } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'flutter.setWidgetPropertyValue', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterSetWidgetPropertyValueParams && id == other.id && value == other.value; @override int get hashCode => Object.hash(id, value); } /// flutter.setWidgetPropertyValue result /// /// { /// "change": SourceChange /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterSetWidgetPropertyValueResult implements ResponseResult { /// The change that should be applied. SourceChange change; FlutterSetWidgetPropertyValueResult(this.change); factory FlutterSetWidgetPropertyValueResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { SourceChange change; if (json.containsKey('change')) { change = SourceChange.fromJson( jsonDecoder, '$jsonPath.change', json['change'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'change', json); } return FlutterSetWidgetPropertyValueResult(change); } else { throw jsonDecoder.mismatch( jsonPath, 'flutter.setWidgetPropertyValue result', json, ); } } factory FlutterSetWidgetPropertyValueResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return FlutterSetWidgetPropertyValueResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['change'] = change.toJson(clientUriConverter: clientUriConverter); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterSetWidgetPropertyValueResult && change == other.change; @override int get hashCode => change.hashCode; } /// FlutterWidgetProperty /// /// { /// "documentation": optional String /// "expression": optional String /// "id": int /// "isRequired": bool /// "isSafeToUpdate": bool /// "name": String /// "children": optional List /// "editor": optional FlutterWidgetPropertyEditor /// "value": optional FlutterWidgetPropertyValue /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterWidgetProperty implements HasToJson { /// The documentation of the property to show to the user. Omitted if the /// server does not know the documentation, e.g. because the corresponding /// field is not documented. String? documentation; /// If the value of this property is set, the Dart code of the expression of /// this property. String? expression; /// The unique identifier of the property, must be passed back to the server /// when updating the property value. Identifiers become invalid on any /// source code change. int id; /// True if the property is required, e.g. because it corresponds to a /// required parameter of a constructor. bool isRequired; /// If the property expression is a concrete value (e.g. a literal, or an /// enum constant), then it is safe to replace the expression with another /// concrete value. In this case this field is true. Otherwise, for example /// when the expression is a reference to a field, so that its value is /// provided from outside, this field is false. bool isSafeToUpdate; /// The name of the property to display to the user. String name; /// The list of children properties, if any. For example any property of type /// `EdgeInsets` will have four children properties of type `double` - left / /// top / right / bottom. List? children; /// The editor that should be used by the client. This field is omitted if /// the server does not know the editor for this property, for example /// because it does not have one of the supported types. FlutterWidgetPropertyEditor? editor; /// If the expression is set, and the server knows the value of the /// expression, this field is set. FlutterWidgetPropertyValue? value; FlutterWidgetProperty( this.id, this.isRequired, this.isSafeToUpdate, this.name, { this.documentation, this.expression, this.children, this.editor, this.value, }); factory FlutterWidgetProperty.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? documentation; if (json.containsKey('documentation')) { documentation = jsonDecoder.decodeString( '$jsonPath.documentation', json['documentation'], ); } String? expression; if (json.containsKey('expression')) { expression = jsonDecoder.decodeString( '$jsonPath.expression', json['expression'], ); } int id; if (json.containsKey('id')) { id = jsonDecoder.decodeInt('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } bool isRequired; if (json.containsKey('isRequired')) { isRequired = jsonDecoder.decodeBool( '$jsonPath.isRequired', json['isRequired'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isRequired', json); } bool isSafeToUpdate; if (json.containsKey('isSafeToUpdate')) { isSafeToUpdate = jsonDecoder.decodeBool( '$jsonPath.isSafeToUpdate', json['isSafeToUpdate'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isSafeToUpdate', json); } String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } List? children; if (json.containsKey('children')) { children = jsonDecoder.decodeList( '$jsonPath.children', json['children'], (String jsonPath, Object? json) => FlutterWidgetProperty.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } FlutterWidgetPropertyEditor? editor; if (json.containsKey('editor')) { editor = FlutterWidgetPropertyEditor.fromJson( jsonDecoder, '$jsonPath.editor', json['editor'], clientUriConverter: clientUriConverter, ); } FlutterWidgetPropertyValue? value; if (json.containsKey('value')) { value = FlutterWidgetPropertyValue.fromJson( jsonDecoder, '$jsonPath.value', json['value'], clientUriConverter: clientUriConverter, ); } return FlutterWidgetProperty( id, isRequired, isSafeToUpdate, name, documentation: documentation, expression: expression, children: children, editor: editor, value: value, ); } else { throw jsonDecoder.mismatch(jsonPath, 'FlutterWidgetProperty', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var documentation = this.documentation; if (documentation != null) { result['documentation'] = documentation; } var expression = this.expression; if (expression != null) { result['expression'] = expression; } result['id'] = id; result['isRequired'] = isRequired; result['isSafeToUpdate'] = isSafeToUpdate; result['name'] = name; var children = this.children; if (children != null) { result['children'] = children .map( (FlutterWidgetProperty value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } var editor = this.editor; if (editor != null) { result['editor'] = editor.toJson(clientUriConverter: clientUriConverter); } var value = this.value; if (value != null) { result['value'] = value.toJson(clientUriConverter: clientUriConverter); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterWidgetProperty && documentation == other.documentation && expression == other.expression && id == other.id && isRequired == other.isRequired && isSafeToUpdate == other.isSafeToUpdate && name == other.name && listEqual( children, other.children, (FlutterWidgetProperty a, FlutterWidgetProperty b) => a == b, ) && editor == other.editor && value == other.value; @override int get hashCode => Object.hash( documentation, expression, id, isRequired, isSafeToUpdate, name, Object.hashAll(children ?? []), editor, value, ); } /// FlutterWidgetPropertyEditor /// /// { /// "kind": FlutterWidgetPropertyEditorKind /// "enumItems": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterWidgetPropertyEditor implements HasToJson { FlutterWidgetPropertyEditorKind kind; List? enumItems; FlutterWidgetPropertyEditor(this.kind, {this.enumItems}); factory FlutterWidgetPropertyEditor.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { FlutterWidgetPropertyEditorKind kind; if (json.containsKey('kind')) { kind = FlutterWidgetPropertyEditorKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } List? enumItems; if (json.containsKey('enumItems')) { enumItems = jsonDecoder.decodeList( '$jsonPath.enumItems', json['enumItems'], (String jsonPath, Object? json) => FlutterWidgetPropertyValueEnumItem.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return FlutterWidgetPropertyEditor(kind, enumItems: enumItems); } else { throw jsonDecoder.mismatch(jsonPath, 'FlutterWidgetPropertyEditor', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); var enumItems = this.enumItems; if (enumItems != null) { result['enumItems'] = enumItems .map( (FlutterWidgetPropertyValueEnumItem value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterWidgetPropertyEditor && kind == other.kind && listEqual( enumItems, other.enumItems, ( FlutterWidgetPropertyValueEnumItem a, FlutterWidgetPropertyValueEnumItem b, ) => a == b, ); @override int get hashCode => Object.hash(kind, Object.hashAll(enumItems ?? [])); } /// FlutterWidgetPropertyEditorKind /// /// enum { /// BOOL /// DOUBLE /// ENUM /// ENUM_LIKE /// INT /// STRING /// } /// /// Clients may not extend, implement or mix-in this class. enum FlutterWidgetPropertyEditorKind { /// The editor for a property of type `bool`. BOOL, /// The editor for a property of the type `double`. DOUBLE, /// The editor for choosing an item of an enumeration, see the `enumItems` /// field of `FlutterWidgetPropertyEditor`. ENUM, /// The editor for either choosing a pre-defined item from a list of provided /// static field references (like `ENUM`), or specifying a free-form /// expression. ENUM_LIKE, /// The editor for a property of type `int`. INT, /// The editor for a property of the type `String`. STRING; factory FlutterWidgetPropertyEditorKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch( jsonPath, 'FlutterWidgetPropertyEditorKind', json, ); } @override String toString() => 'FlutterWidgetPropertyEditorKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// FlutterWidgetPropertyValue /// /// { /// "boolValue": optional bool /// "doubleValue": optional double /// "intValue": optional int /// "stringValue": optional String /// "enumValue": optional FlutterWidgetPropertyValueEnumItem /// "expression": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterWidgetPropertyValue implements HasToJson { bool? boolValue; double? doubleValue; int? intValue; String? stringValue; FlutterWidgetPropertyValueEnumItem? enumValue; /// A free-form expression, which will be used as the value as is. String? expression; FlutterWidgetPropertyValue({ this.boolValue, this.doubleValue, this.intValue, this.stringValue, this.enumValue, this.expression, }); factory FlutterWidgetPropertyValue.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool? boolValue; if (json.containsKey('boolValue')) { boolValue = jsonDecoder.decodeBool( '$jsonPath.boolValue', json['boolValue'], ); } double? doubleValue; if (json.containsKey('doubleValue')) { doubleValue = jsonDecoder.decodeDouble( '$jsonPath.doubleValue', json['doubleValue'] as Object, ); } int? intValue; if (json.containsKey('intValue')) { intValue = jsonDecoder.decodeInt( '$jsonPath.intValue', json['intValue'], ); } String? stringValue; if (json.containsKey('stringValue')) { stringValue = jsonDecoder.decodeString( '$jsonPath.stringValue', json['stringValue'], ); } FlutterWidgetPropertyValueEnumItem? enumValue; if (json.containsKey('enumValue')) { enumValue = FlutterWidgetPropertyValueEnumItem.fromJson( jsonDecoder, '$jsonPath.enumValue', json['enumValue'], clientUriConverter: clientUriConverter, ); } String? expression; if (json.containsKey('expression')) { expression = jsonDecoder.decodeString( '$jsonPath.expression', json['expression'], ); } return FlutterWidgetPropertyValue( boolValue: boolValue, doubleValue: doubleValue, intValue: intValue, stringValue: stringValue, enumValue: enumValue, expression: expression, ); } else { throw jsonDecoder.mismatch(jsonPath, 'FlutterWidgetPropertyValue', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var boolValue = this.boolValue; if (boolValue != null) { result['boolValue'] = boolValue; } var doubleValue = this.doubleValue; if (doubleValue != null) { result['doubleValue'] = doubleValue; } var intValue = this.intValue; if (intValue != null) { result['intValue'] = intValue; } var stringValue = this.stringValue; if (stringValue != null) { result['stringValue'] = stringValue; } var enumValue = this.enumValue; if (enumValue != null) { result['enumValue'] = enumValue.toJson( clientUriConverter: clientUriConverter, ); } var expression = this.expression; if (expression != null) { result['expression'] = expression; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterWidgetPropertyValue && boolValue == other.boolValue && doubleValue == other.doubleValue && intValue == other.intValue && stringValue == other.stringValue && enumValue == other.enumValue && expression == other.expression; @override int get hashCode => Object.hash( boolValue, doubleValue, intValue, stringValue, enumValue, expression, ); } /// FlutterWidgetPropertyValueEnumItem /// /// { /// "libraryUri": String /// "className": String /// "name": String /// "documentation": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class FlutterWidgetPropertyValueEnumItem implements HasToJson { /// The URI of the library containing the `className`. When the enum item is /// passed back, this will allow the server to import the corresponding /// library if necessary. String libraryUri; /// The name of the class or enum. String className; /// The name of the field in the enumeration, or the static field in the /// class. String name; /// The documentation to show to the user. Omitted if the server does not /// know the documentation, e.g. because the corresponding field is not /// documented. String? documentation; FlutterWidgetPropertyValueEnumItem( this.libraryUri, this.className, this.name, { this.documentation, }); factory FlutterWidgetPropertyValueEnumItem.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String libraryUri; if (json.containsKey('libraryUri')) { libraryUri = jsonDecoder.decodeString( '$jsonPath.libraryUri', json['libraryUri'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'libraryUri', json); } String className; if (json.containsKey('className')) { className = jsonDecoder.decodeString( '$jsonPath.className', json['className'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'className', json); } String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } String? documentation; if (json.containsKey('documentation')) { documentation = jsonDecoder.decodeString( '$jsonPath.documentation', json['documentation'], ); } return FlutterWidgetPropertyValueEnumItem( libraryUri, className, name, documentation: documentation, ); } else { throw jsonDecoder.mismatch( jsonPath, 'FlutterWidgetPropertyValueEnumItem', json, ); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['libraryUri'] = libraryUri; result['className'] = className; result['name'] = name; var documentation = this.documentation; if (documentation != null) { result['documentation'] = documentation; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is FlutterWidgetPropertyValueEnumItem && libraryUri == other.libraryUri && className == other.className && name == other.name && documentation == other.documentation; @override int get hashCode => Object.hash(libraryUri, className, name, documentation); } /// GeneralAnalysisService /// /// enum { /// ANALYZED_FILES /// } /// /// Clients may not extend, implement or mix-in this class. enum GeneralAnalysisService { ANALYZED_FILES; factory GeneralAnalysisService.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'GeneralAnalysisService', json); } @override String toString() => 'GeneralAnalysisService.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// HoverInformation /// /// { /// "offset": int /// "length": int /// "containingLibraryPath": optional String /// "containingLibraryName": optional String /// "containingClassDescription": optional String /// "dartdoc": optional String /// "elementDescription": optional String /// "elementKind": optional String /// "isDeprecated": optional bool /// "parameter": optional String /// "propagatedType": optional String /// "staticType": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class HoverInformation implements HasToJson { /// The offset of the range of characters that encompasses the cursor /// position and has the same hover information as the cursor position. int offset; /// The length of the range of characters that encompasses the cursor /// position and has the same hover information as the cursor position. int length; /// The path to the defining compilation unit of the library in which the /// referenced element is declared. This data is omitted if there is no /// referenced element, or if the element is declared inside an HTML file. String? containingLibraryPath; /// The URI of the containing library, examples here include "dart:core", /// "package:.." and file uris represented by the path on disk, "/..". The /// data is omitted if the element is declared inside an HTML file. String? containingLibraryName; /// A human-readable description of the class declaring the element being /// referenced. This data is omitted if there is no referenced element, or if /// the element is not a class member. String? containingClassDescription; /// The dartdoc associated with the referenced element. Other than the /// removal of the comment delimiters, including leading asterisks in the /// case of a block comment, the dartdoc is unprocessed markdown. This data /// is omitted if there is no referenced element, or if the element has no /// dartdoc. String? dartdoc; /// A human-readable description of the element being referenced. This data /// is omitted if there is no referenced element. String? elementDescription; /// A human-readable description of the kind of element being referenced /// (such as "class" or "function type alias"). This data is omitted if there /// is no referenced element. String? elementKind; /// True if the referenced element is deprecated. bool? isDeprecated; /// A human-readable description of the parameter corresponding to the /// expression being hovered over. This data is omitted if the location is /// not in an argument to a function. String? parameter; /// The name of the propagated type of the expression. This data is omitted /// if the location does not correspond to an expression or if there is no /// propagated type information. String? propagatedType; /// The name of the static type of the expression. This data is omitted if /// the location does not correspond to an expression. String? staticType; HoverInformation( this.offset, this.length, { this.containingLibraryPath, this.containingLibraryName, this.containingClassDescription, this.dartdoc, this.elementDescription, this.elementKind, this.isDeprecated, this.parameter, this.propagatedType, this.staticType, }); factory HoverInformation.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } String? containingLibraryPath; if (json.containsKey('containingLibraryPath')) { containingLibraryPath = jsonDecoder.decodeString( '$jsonPath.containingLibraryPath', json['containingLibraryPath'], ); } String? containingLibraryName; if (json.containsKey('containingLibraryName')) { containingLibraryName = jsonDecoder.decodeString( '$jsonPath.containingLibraryName', json['containingLibraryName'], ); } String? containingClassDescription; if (json.containsKey('containingClassDescription')) { containingClassDescription = jsonDecoder.decodeString( '$jsonPath.containingClassDescription', json['containingClassDescription'], ); } String? dartdoc; if (json.containsKey('dartdoc')) { dartdoc = jsonDecoder.decodeString( '$jsonPath.dartdoc', json['dartdoc'], ); } String? elementDescription; if (json.containsKey('elementDescription')) { elementDescription = jsonDecoder.decodeString( '$jsonPath.elementDescription', json['elementDescription'], ); } String? elementKind; if (json.containsKey('elementKind')) { elementKind = jsonDecoder.decodeString( '$jsonPath.elementKind', json['elementKind'], ); } bool? isDeprecated; if (json.containsKey('isDeprecated')) { isDeprecated = jsonDecoder.decodeBool( '$jsonPath.isDeprecated', json['isDeprecated'], ); } String? parameter; if (json.containsKey('parameter')) { parameter = jsonDecoder.decodeString( '$jsonPath.parameter', json['parameter'], ); } String? propagatedType; if (json.containsKey('propagatedType')) { propagatedType = jsonDecoder.decodeString( '$jsonPath.propagatedType', json['propagatedType'], ); } String? staticType; if (json.containsKey('staticType')) { staticType = jsonDecoder.decodeString( '$jsonPath.staticType', json['staticType'], ); } return HoverInformation( offset, length, containingLibraryPath: containingLibraryPath, containingLibraryName: containingLibraryName, containingClassDescription: containingClassDescription, dartdoc: dartdoc, elementDescription: elementDescription, elementKind: elementKind, isDeprecated: isDeprecated, parameter: parameter, propagatedType: propagatedType, staticType: staticType, ); } else { throw jsonDecoder.mismatch(jsonPath, 'HoverInformation', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; var containingLibraryPath = this.containingLibraryPath; if (containingLibraryPath != null) { result['containingLibraryPath'] = containingLibraryPath; } var containingLibraryName = this.containingLibraryName; if (containingLibraryName != null) { result['containingLibraryName'] = containingLibraryName; } var containingClassDescription = this.containingClassDescription; if (containingClassDescription != null) { result['containingClassDescription'] = containingClassDescription; } var dartdoc = this.dartdoc; if (dartdoc != null) { result['dartdoc'] = dartdoc; } var elementDescription = this.elementDescription; if (elementDescription != null) { result['elementDescription'] = elementDescription; } var elementKind = this.elementKind; if (elementKind != null) { result['elementKind'] = elementKind; } var isDeprecated = this.isDeprecated; if (isDeprecated != null) { result['isDeprecated'] = isDeprecated; } var parameter = this.parameter; if (parameter != null) { result['parameter'] = parameter; } var propagatedType = this.propagatedType; if (propagatedType != null) { result['propagatedType'] = propagatedType; } var staticType = this.staticType; if (staticType != null) { result['staticType'] = staticType; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is HoverInformation && offset == other.offset && length == other.length && containingLibraryPath == other.containingLibraryPath && containingLibraryName == other.containingLibraryName && containingClassDescription == other.containingClassDescription && dartdoc == other.dartdoc && elementDescription == other.elementDescription && elementKind == other.elementKind && isDeprecated == other.isDeprecated && parameter == other.parameter && propagatedType == other.propagatedType && staticType == other.staticType; @override int get hashCode => Object.hash( offset, length, containingLibraryPath, containingLibraryName, containingClassDescription, dartdoc, elementDescription, elementKind, isDeprecated, parameter, propagatedType, staticType, ); } /// ImplementedClass /// /// { /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class ImplementedClass implements HasToJson { /// The offset of the name of the implemented class. int offset; /// The length of the name of the implemented class. int length; ImplementedClass(this.offset, this.length); factory ImplementedClass.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return ImplementedClass(offset, length); } else { throw jsonDecoder.mismatch(jsonPath, 'ImplementedClass', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ImplementedClass && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(offset, length); } /// ImplementedMember /// /// { /// "offset": int /// "length": int /// } /// /// Clients may not extend, implement or mix-in this class. class ImplementedMember implements HasToJson { /// The offset of the name of the implemented member. int offset; /// The length of the name of the implemented member. int length; ImplementedMember(this.offset, this.length); factory ImplementedMember.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } return ImplementedMember(offset, length); } else { throw jsonDecoder.mismatch(jsonPath, 'ImplementedMember', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ImplementedMember && offset == other.offset && length == other.length; @override int get hashCode => Object.hash(offset, length); } /// ImportedElementSet /// /// { /// "strings": List /// "uris": List /// "names": List /// } /// /// Clients may not extend, implement or mix-in this class. class ImportedElementSet implements HasToJson { /// The list of unique strings in this object. List strings; /// The library URI part of the element. It is an index in the `strings` /// field. List uris; /// The name part of a the element. It is an index in the `strings` field. List names; ImportedElementSet(this.strings, this.uris, this.names); factory ImportedElementSet.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List strings; if (json.containsKey('strings')) { strings = jsonDecoder.decodeList( '$jsonPath.strings', json['strings'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'strings', json); } List uris; if (json.containsKey('uris')) { uris = jsonDecoder.decodeList( '$jsonPath.uris', json['uris'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'uris', json); } List names; if (json.containsKey('names')) { names = jsonDecoder.decodeList( '$jsonPath.names', json['names'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'names', json); } return ImportedElementSet(strings, uris, names); } else { throw jsonDecoder.mismatch(jsonPath, 'ImportedElementSet', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['strings'] = strings; result['uris'] = uris; result['names'] = names; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ImportedElementSet && listEqual(strings, other.strings, (String a, String b) => a == b) && listEqual(uris, other.uris, (int a, int b) => a == b) && listEqual(names, other.names, (int a, int b) => a == b); @override int get hashCode => Object.hash( Object.hashAll(strings), Object.hashAll(uris), Object.hashAll(names), ); } /// ImportedElements /// /// { /// "path": FilePath /// "prefix": String /// "elements": List /// } /// /// Clients may not extend, implement or mix-in this class. class ImportedElements implements HasToJson { /// The absolute and normalized path of the file containing the library. String path; /// The prefix that was used when importing the library into the original /// source. String prefix; /// The names of the elements imported from the library. List elements; ImportedElements(this.path, this.prefix, this.elements); factory ImportedElements.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String path; if (json.containsKey('path')) { path = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.path', json['path']), ) ?? jsonDecoder.decodeString('$jsonPath.path', json['path']); } else { throw jsonDecoder.mismatch(jsonPath, 'path', json); } String prefix; if (json.containsKey('prefix')) { prefix = jsonDecoder.decodeString('$jsonPath.prefix', json['prefix']); } else { throw jsonDecoder.mismatch(jsonPath, 'prefix', json); } List elements; if (json.containsKey('elements')) { elements = jsonDecoder.decodeList( '$jsonPath.elements', json['elements'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'elements', json); } return ImportedElements(path, prefix, elements); } else { throw jsonDecoder.mismatch(jsonPath, 'ImportedElements', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['path'] = clientUriConverter?.toClientFilePath(path) ?? path; result['prefix'] = prefix; result['elements'] = elements; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ImportedElements && path == other.path && prefix == other.prefix && listEqual(elements, other.elements, (String a, String b) => a == b); @override int get hashCode => Object.hash(path, prefix, Object.hashAll(elements)); } /// inlineLocalVariable feedback /// /// { /// "name": String /// "occurrences": int /// } /// /// Clients may not extend, implement or mix-in this class. class InlineLocalVariableFeedback extends RefactoringFeedback { /// The name of the variable being inlined. String name; /// The number of times the variable occurs. int occurrences; InlineLocalVariableFeedback(this.name, this.occurrences); factory InlineLocalVariableFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } int occurrences; if (json.containsKey('occurrences')) { occurrences = jsonDecoder.decodeInt( '$jsonPath.occurrences', json['occurrences'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'occurrences', json); } return InlineLocalVariableFeedback(name, occurrences); } else { throw jsonDecoder.mismatch( jsonPath, 'inlineLocalVariable feedback', json, ); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['occurrences'] = occurrences; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is InlineLocalVariableFeedback && name == other.name && occurrences == other.occurrences; @override int get hashCode => Object.hash(name, occurrences); } /// inlineLocalVariable options /// /// Clients may not extend, implement or mix-in this class. class InlineLocalVariableOptions extends RefactoringOptions implements HasToJson { @override bool operator ==(Object other) => other is InlineLocalVariableOptions; @override int get hashCode => 540364977; } /// inlineMethod feedback /// /// { /// "className": optional String /// "methodName": String /// "isDeclaration": bool /// } /// /// Clients may not extend, implement or mix-in this class. class InlineMethodFeedback extends RefactoringFeedback { /// The name of the class enclosing the method being inlined. If not a class /// member is being inlined, this field will be absent. String? className; /// The name of the method (or function) being inlined. String methodName; /// True if the declaration of the method is selected. So all references /// should be inlined. bool isDeclaration; InlineMethodFeedback(this.methodName, this.isDeclaration, {this.className}); factory InlineMethodFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? className; if (json.containsKey('className')) { className = jsonDecoder.decodeString( '$jsonPath.className', json['className'], ); } String methodName; if (json.containsKey('methodName')) { methodName = jsonDecoder.decodeString( '$jsonPath.methodName', json['methodName'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'methodName', json); } bool isDeclaration; if (json.containsKey('isDeclaration')) { isDeclaration = jsonDecoder.decodeBool( '$jsonPath.isDeclaration', json['isDeclaration'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isDeclaration', json); } return InlineMethodFeedback( methodName, isDeclaration, className: className, ); } else { throw jsonDecoder.mismatch(jsonPath, 'inlineMethod feedback', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var className = this.className; if (className != null) { result['className'] = className; } result['methodName'] = methodName; result['isDeclaration'] = isDeclaration; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is InlineMethodFeedback && className == other.className && methodName == other.methodName && isDeclaration == other.isDeclaration; @override int get hashCode => Object.hash(className, methodName, isDeclaration); } /// inlineMethod options /// /// { /// "deleteSource": bool /// "inlineAll": bool /// } /// /// Clients may not extend, implement or mix-in this class. class InlineMethodOptions extends RefactoringOptions { /// True if the method being inlined should be removed. It is an error if /// this field is true and inlineAll is false. bool deleteSource; /// True if all invocations of the method should be inlined, or false if only /// the invocation site used to create this refactoring should be inlined. bool inlineAll; InlineMethodOptions(this.deleteSource, this.inlineAll); factory InlineMethodOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool deleteSource; if (json.containsKey('deleteSource')) { deleteSource = jsonDecoder.decodeBool( '$jsonPath.deleteSource', json['deleteSource'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'deleteSource', json); } bool inlineAll; if (json.containsKey('inlineAll')) { inlineAll = jsonDecoder.decodeBool( '$jsonPath.inlineAll', json['inlineAll'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'inlineAll', json); } return InlineMethodOptions(deleteSource, inlineAll); } else { throw jsonDecoder.mismatch(jsonPath, 'inlineMethod options', json); } } factory InlineMethodOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return InlineMethodOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['deleteSource'] = deleteSource; result['inlineAll'] = inlineAll; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is InlineMethodOptions && deleteSource == other.deleteSource && inlineAll == other.inlineAll; @override int get hashCode => Object.hash(deleteSource, inlineAll); } /// LibraryPathSet /// /// { /// "scope": FilePath /// "libraryPaths": List /// } /// /// Clients may not extend, implement or mix-in this class. class LibraryPathSet implements HasToJson { /// The filepath for which this request's libraries should be active in /// completion suggestions. This object associates filesystem regions to /// libraries and library directories of interest to the client. String scope; /// The paths of the libraries of interest to the client for completion /// suggestions. List libraryPaths; LibraryPathSet(this.scope, this.libraryPaths); factory LibraryPathSet.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String scope; if (json.containsKey('scope')) { scope = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.scope', json['scope']), ) ?? jsonDecoder.decodeString('$jsonPath.scope', json['scope']); } else { throw jsonDecoder.mismatch(jsonPath, 'scope', json); } List libraryPaths; if (json.containsKey('libraryPaths')) { libraryPaths = jsonDecoder.decodeList( '$jsonPath.libraryPaths', json['libraryPaths'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'libraryPaths', json); } return LibraryPathSet(scope, libraryPaths); } else { throw jsonDecoder.mismatch(jsonPath, 'LibraryPathSet', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['scope'] = clientUriConverter?.toClientFilePath(scope) ?? scope; result['libraryPaths'] = libraryPaths .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is LibraryPathSet && scope == other.scope && listEqual( libraryPaths, other.libraryPaths, (String a, String b) => a == b, ); @override int get hashCode => Object.hash(scope, Object.hashAll(libraryPaths)); } /// lsp.handle params /// /// { /// "lspMessage": object /// } /// /// Clients may not extend, implement or mix-in this class. class LspHandleParams implements RequestParams { /// The LSP RequestMessage. Object lspMessage; LspHandleParams(this.lspMessage); factory LspHandleParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Object lspMessage; if (json.containsKey('lspMessage')) { lspMessage = json['lspMessage'] as Object; } else { throw jsonDecoder.mismatch(jsonPath, 'lspMessage', json); } return LspHandleParams(lspMessage); } else { throw jsonDecoder.mismatch(jsonPath, 'lsp.handle params', json); } } factory LspHandleParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return LspHandleParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['lspMessage'] = lspMessage; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'lsp.handle', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is LspHandleParams && lspMessage == other.lspMessage; @override int get hashCode => lspMessage.hashCode; } /// lsp.handle result /// /// { /// "lspResponse": object /// } /// /// Clients may not extend, implement or mix-in this class. class LspHandleResult implements ResponseResult { /// The LSP ResponseMessage returned by the handler. Object lspResponse; LspHandleResult(this.lspResponse); factory LspHandleResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Object lspResponse; if (json.containsKey('lspResponse')) { lspResponse = json['lspResponse'] as Object; } else { throw jsonDecoder.mismatch(jsonPath, 'lspResponse', json); } return LspHandleResult(lspResponse); } else { throw jsonDecoder.mismatch(jsonPath, 'lsp.handle result', json); } } factory LspHandleResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return LspHandleResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['lspResponse'] = lspResponse; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is LspHandleResult && lspResponse == other.lspResponse; @override int get hashCode => lspResponse.hashCode; } /// lsp.notification params /// /// { /// "lspNotification": object /// } /// /// Clients may not extend, implement or mix-in this class. class LspNotificationParams implements HasToJson { /// The LSP NotificationMessage sent by the server. Object lspNotification; LspNotificationParams(this.lspNotification); factory LspNotificationParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Object lspNotification; if (json.containsKey('lspNotification')) { lspNotification = json['lspNotification'] as Object; } else { throw jsonDecoder.mismatch(jsonPath, 'lspNotification', json); } return LspNotificationParams(lspNotification); } else { throw jsonDecoder.mismatch(jsonPath, 'lsp.notification params', json); } } factory LspNotificationParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return LspNotificationParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['lspNotification'] = lspNotification; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'lsp.notification', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is LspNotificationParams && lspNotification == other.lspNotification; @override int get hashCode => lspNotification.hashCode; } /// MessageAction /// /// { /// "label": String /// } /// /// Clients may not extend, implement or mix-in this class. class MessageAction implements HasToJson { /// The label of the button to be displayed, and the value to be returned to /// the server if the button is clicked. String label; MessageAction(this.label); factory MessageAction.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String label; if (json.containsKey('label')) { label = jsonDecoder.decodeString('$jsonPath.label', json['label']); } else { throw jsonDecoder.mismatch(jsonPath, 'label', json); } return MessageAction(label); } else { throw jsonDecoder.mismatch(jsonPath, 'MessageAction', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['label'] = label; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is MessageAction && label == other.label; @override int get hashCode => label.hashCode; } /// MessageType /// /// enum { /// ERROR /// WARNING /// INFO /// LOG /// } /// /// Clients may not extend, implement or mix-in this class. enum MessageType { /// The message is an error message. ERROR, /// The message is a warning message. WARNING, /// The message is an informational message. INFO, /// The message is a log message. LOG; factory MessageType.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'MessageType', json); } @override String toString() => 'MessageType.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// moveFile feedback /// /// Clients may not extend, implement or mix-in this class. class MoveFileFeedback extends RefactoringFeedback implements HasToJson { @override bool operator ==(Object other) => other is MoveFileFeedback; @override int get hashCode => 438975893; } /// moveFile options /// /// { /// "newFile": FilePath /// } /// /// Clients may not extend, implement or mix-in this class. class MoveFileOptions extends RefactoringOptions { /// The new file path to which the given file is being moved. String newFile; MoveFileOptions(this.newFile); factory MoveFileOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String newFile; if (json.containsKey('newFile')) { newFile = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.newFile', json['newFile']), ) ?? jsonDecoder.decodeString('$jsonPath.newFile', json['newFile']); } else { throw jsonDecoder.mismatch(jsonPath, 'newFile', json); } return MoveFileOptions(newFile); } else { throw jsonDecoder.mismatch(jsonPath, 'moveFile options', json); } } factory MoveFileOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return MoveFileOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['newFile'] = clientUriConverter?.toClientFilePath(newFile) ?? newFile; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is MoveFileOptions && newFile == other.newFile; @override int get hashCode => newFile.hashCode; } /// OverriddenMember /// /// { /// "element": Element /// "className": String /// } /// /// Clients may not extend, implement or mix-in this class. class OverriddenMember implements HasToJson { /// The element that is being overridden. Element element; /// The name of the class in which the member is defined. String className; OverriddenMember(this.element, this.className); factory OverriddenMember.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Element element; if (json.containsKey('element')) { element = Element.fromJson( jsonDecoder, '$jsonPath.element', json['element'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'element', json); } String className; if (json.containsKey('className')) { className = jsonDecoder.decodeString( '$jsonPath.className', json['className'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'className', json); } return OverriddenMember(element, className); } else { throw jsonDecoder.mismatch(jsonPath, 'OverriddenMember', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['element'] = element.toJson(clientUriConverter: clientUriConverter); result['className'] = className; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is OverriddenMember && element == other.element && className == other.className; @override int get hashCode => Object.hash(element, className); } /// Override /// /// { /// "offset": int /// "length": int /// "superclassMember": optional OverriddenMember /// "interfaceMembers": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class Override implements HasToJson { /// The offset of the name of the overriding member. int offset; /// The length of the name of the overriding member. int length; /// The member inherited from a superclass that is overridden by the /// overriding member. The field is omitted if there is no superclass member, /// in which case there must be at least one interface member. OverriddenMember? superclassMember; /// The members inherited from interfaces that are overridden by the /// overriding member. The field is omitted if there are no interface /// members, in which case there must be a superclass member. List? interfaceMembers; Override( this.offset, this.length, { this.superclassMember, this.interfaceMembers, }); factory Override.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } OverriddenMember? superclassMember; if (json.containsKey('superclassMember')) { superclassMember = OverriddenMember.fromJson( jsonDecoder, '$jsonPath.superclassMember', json['superclassMember'], clientUriConverter: clientUriConverter, ); } List? interfaceMembers; if (json.containsKey('interfaceMembers')) { interfaceMembers = jsonDecoder.decodeList( '$jsonPath.interfaceMembers', json['interfaceMembers'], (String jsonPath, Object? json) => OverriddenMember.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return Override( offset, length, superclassMember: superclassMember, interfaceMembers: interfaceMembers, ); } else { throw jsonDecoder.mismatch(jsonPath, 'Override', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; var superclassMember = this.superclassMember; if (superclassMember != null) { result['superclassMember'] = superclassMember.toJson( clientUriConverter: clientUriConverter, ); } var interfaceMembers = this.interfaceMembers; if (interfaceMembers != null) { result['interfaceMembers'] = interfaceMembers .map( (OverriddenMember value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is Override && offset == other.offset && length == other.length && superclassMember == other.superclassMember && listEqual( interfaceMembers, other.interfaceMembers, (OverriddenMember a, OverriddenMember b) => a == b, ); @override int get hashCode => Object.hash( offset, length, superclassMember, Object.hashAll(interfaceMembers ?? []), ); } /// PostfixTemplateDescriptor /// /// { /// "name": String /// "key": String /// "example": String /// } /// /// Clients may not extend, implement or mix-in this class. class PostfixTemplateDescriptor implements HasToJson { /// The template name, shown in the UI. String name; /// The unique template key, not shown in the UI. String key; /// A short example of the transformation performed when the template is /// applied. String example; PostfixTemplateDescriptor(this.name, this.key, this.example); factory PostfixTemplateDescriptor.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } String key; if (json.containsKey('key')) { key = jsonDecoder.decodeString('$jsonPath.key', json['key']); } else { throw jsonDecoder.mismatch(jsonPath, 'key', json); } String example; if (json.containsKey('example')) { example = jsonDecoder.decodeString( '$jsonPath.example', json['example'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'example', json); } return PostfixTemplateDescriptor(name, key, example); } else { throw jsonDecoder.mismatch(jsonPath, 'PostfixTemplateDescriptor', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['key'] = key; result['example'] = example; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is PostfixTemplateDescriptor && name == other.name && key == other.key && example == other.example; @override int get hashCode => Object.hash(name, key, example); } /// PubStatus /// /// { /// "isListingPackageDirs": bool /// } /// /// Clients may not extend, implement or mix-in this class. class PubStatus implements HasToJson { /// True if the server is currently running pub to produce a list of package /// directories. bool isListingPackageDirs; PubStatus(this.isListingPackageDirs); factory PubStatus.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool isListingPackageDirs; if (json.containsKey('isListingPackageDirs')) { isListingPackageDirs = jsonDecoder.decodeBool( '$jsonPath.isListingPackageDirs', json['isListingPackageDirs'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isListingPackageDirs', json); } return PubStatus(isListingPackageDirs); } else { throw jsonDecoder.mismatch(jsonPath, 'PubStatus', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['isListingPackageDirs'] = isListingPackageDirs; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is PubStatus && isListingPackageDirs == other.isListingPackageDirs; @override int get hashCode => isListingPackageDirs.hashCode; } /// RefactoringFeedback /// /// { /// } /// /// Clients may not extend, implement or mix-in this class. class RefactoringFeedback implements HasToJson { RefactoringFeedback(); static RefactoringFeedback? fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, Map responseJson, { required ClientUriConverter? clientUriConverter, }) { return refactoringFeedbackFromJson( jsonDecoder, jsonPath, json, responseJson, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RefactoringFeedback; @override int get hashCode => 0; } /// RefactoringOptions /// /// { /// } /// /// Clients may not extend, implement or mix-in this class. class RefactoringOptions implements HasToJson { RefactoringOptions(); static RefactoringOptions? fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, RefactoringKind kind, { required ClientUriConverter? clientUriConverter, }) { return refactoringOptionsFromJson( jsonDecoder, jsonPath, json, kind, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RefactoringOptions; @override int get hashCode => 0; } /// rename feedback /// /// { /// "offset": int /// "length": int /// "elementKindName": String /// "oldName": String /// } /// /// Clients may not extend, implement or mix-in this class. class RenameFeedback extends RefactoringFeedback { /// The offset to the beginning of the name selected to be renamed, or -1 if /// the name does not exist yet. int offset; /// The length of the name selected to be renamed. int length; /// The human-readable description of the kind of element being renamed (such /// as "class" or "function type alias"). String elementKindName; /// The old name of the element before the refactoring. String oldName; RenameFeedback(this.offset, this.length, this.elementKindName, this.oldName); factory RenameFeedback.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } String elementKindName; if (json.containsKey('elementKindName')) { elementKindName = jsonDecoder.decodeString( '$jsonPath.elementKindName', json['elementKindName'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'elementKindName', json); } String oldName; if (json.containsKey('oldName')) { oldName = jsonDecoder.decodeString( '$jsonPath.oldName', json['oldName'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'oldName', json); } return RenameFeedback(offset, length, elementKindName, oldName); } else { throw jsonDecoder.mismatch(jsonPath, 'rename feedback', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; result['elementKindName'] = elementKindName; result['oldName'] = oldName; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RenameFeedback && offset == other.offset && length == other.length && elementKindName == other.elementKindName && oldName == other.oldName; @override int get hashCode => Object.hash(offset, length, elementKindName, oldName); } /// rename options /// /// { /// "newName": String /// } /// /// Clients may not extend, implement or mix-in this class. class RenameOptions extends RefactoringOptions { /// The name that the element should have after the refactoring. String newName; RenameOptions(this.newName); factory RenameOptions.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String newName; if (json.containsKey('newName')) { newName = jsonDecoder.decodeString( '$jsonPath.newName', json['newName'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'newName', json); } return RenameOptions(newName); } else { throw jsonDecoder.mismatch(jsonPath, 'rename options', json); } } factory RenameOptions.fromRefactoringParams( EditGetRefactoringParams refactoringParams, Request request, { required ClientUriConverter? clientUriConverter, }) { return RenameOptions.fromJson( RequestDecoder(request), 'options', refactoringParams.options, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['newName'] = newName; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RenameOptions && newName == other.newName; @override int get hashCode => newName.hashCode; } /// RequestError /// /// { /// "code": RequestErrorCode /// "message": String /// "stackTrace": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class RequestError implements HasToJson { /// A code that uniquely identifies the error that occurred. RequestErrorCode code; /// A short description of the error. String message; /// The stack trace associated with processing the request, used for /// debugging the server. String? stackTrace; RequestError(this.code, this.message, {this.stackTrace}); factory RequestError.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { RequestErrorCode code; if (json.containsKey('code')) { code = RequestErrorCode.fromJson( jsonDecoder, '$jsonPath.code', json['code'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'code', json); } String message; if (json.containsKey('message')) { message = jsonDecoder.decodeString( '$jsonPath.message', json['message'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'message', json); } String? stackTrace; if (json.containsKey('stackTrace')) { stackTrace = jsonDecoder.decodeString( '$jsonPath.stackTrace', json['stackTrace'], ); } return RequestError(code, message, stackTrace: stackTrace); } else { throw jsonDecoder.mismatch(jsonPath, 'RequestError', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['code'] = code.toJson(clientUriConverter: clientUriConverter); result['message'] = message; var stackTrace = this.stackTrace; if (stackTrace != null) { result['stackTrace'] = stackTrace; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RequestError && code == other.code && message == other.message && stackTrace == other.stackTrace; @override int get hashCode => Object.hash(code, message, stackTrace); } /// RequestErrorCode /// /// enum { /// CONTENT_MODIFIED /// DEBUG_PORT_COULD_NOT_BE_OPENED /// FILE_NOT_ANALYZED /// FLUTTER_GET_WIDGET_DESCRIPTION_CONTENT_MODIFIED /// FLUTTER_GET_WIDGET_DESCRIPTION_NO_WIDGET /// FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_EXPRESSION /// FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_ID /// FLUTTER_SET_WIDGET_PROPERTY_VALUE_IS_REQUIRED /// FORMAT_INVALID_FILE /// FORMAT_WITH_ERRORS /// GET_ERRORS_INVALID_FILE /// GET_FIXES_INVALID_FILE /// GET_IMPORTED_ELEMENTS_INVALID_FILE /// GET_NAVIGATION_INVALID_FILE /// GET_REACHABLE_SOURCES_INVALID_FILE /// GET_SIGNATURE_INVALID_FILE /// GET_SIGNATURE_INVALID_OFFSET /// GET_SIGNATURE_UNKNOWN_FUNCTION /// IMPORT_ELEMENTS_INVALID_FILE /// INVALID_ANALYSIS_ROOT /// INVALID_EXECUTION_CONTEXT /// INVALID_FILE_PATH_FORMAT /// INVALID_OVERLAY_CHANGE /// INVALID_PARAMETER /// INVALID_REQUEST /// ORGANIZE_DIRECTIVES_ERROR /// REFACTORING_REQUEST_CANCELLED /// SERVER_ALREADY_STARTED /// SERVER_ERROR /// SORT_MEMBERS_INVALID_FILE /// SORT_MEMBERS_PARSE_ERRORS /// UNKNOWN_REQUEST /// UNSUPPORTED_FEATURE /// } /// /// Clients may not extend, implement or mix-in this class. enum RequestErrorCode { /// An "analysis.getErrors" or "analysis.getNavigation" request could not be /// satisfied because the content of the file changed before the requested /// results could be computed. CONTENT_MODIFIED, /// The server was unable to open a port for the diagnostic server. DEBUG_PORT_COULD_NOT_BE_OPENED, /// A request specified a FilePath which does not match a file in an analysis /// root, or the requested operation is not available for the file. FILE_NOT_ANALYZED, /// A file was change while widget descriptions were being computed. FLUTTER_GET_WIDGET_DESCRIPTION_CONTENT_MODIFIED, /// The given location does not have a supported widget. FLUTTER_GET_WIDGET_DESCRIPTION_NO_WIDGET, /// The given property expression is invalid, e.g. has a syntax error. FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_EXPRESSION, /// The given property identifier is not valid. It might have never been /// valid, or a change to code invalidated it, or its TTL was exceeded. FLUTTER_SET_WIDGET_PROPERTY_VALUE_INVALID_ID, /// The value of the property cannot be removed, for example because the /// corresponding constructor argument is required, and the server does not /// know what default value to use. FLUTTER_SET_WIDGET_PROPERTY_VALUE_IS_REQUIRED, /// An "edit.format" request specified a FilePath which does not match a Dart /// file in an analysis root. FORMAT_INVALID_FILE, /// An "edit.format" request specified a file that contains syntax errors. FORMAT_WITH_ERRORS, /// An "analysis.getErrors" request specified a FilePath which does not match /// a file currently subject to analysis. GET_ERRORS_INVALID_FILE, /// An "edit.getFixes" request specified a FilePath which does not match a /// file currently subject to analysis. GET_FIXES_INVALID_FILE, /// An "analysis.getImportedElements" request specified a FilePath that does /// not match a file currently subject to analysis. GET_IMPORTED_ELEMENTS_INVALID_FILE, /// An "analysis.getNavigation" request specified a FilePath which does not /// match a file currently subject to analysis. GET_NAVIGATION_INVALID_FILE, /// An "analysis.getReachableSources" request specified a FilePath which does /// not match a file currently subject to analysis. GET_REACHABLE_SOURCES_INVALID_FILE, /// An "analysis.getSignature" request specified a FilePath which does not /// match a file currently subject to analysis. GET_SIGNATURE_INVALID_FILE, /// An "analysis.getSignature" request specified an offset which is not a /// valid location within for the contents of the file specified FilePath. GET_SIGNATURE_INVALID_OFFSET, /// An "analysis.getSignature" request specified an offset that could not be /// matched to a function call. GET_SIGNATURE_UNKNOWN_FUNCTION, /// An "edit.importElements" request specified a FilePath that does not match /// a file currently subject to analysis. IMPORT_ELEMENTS_INVALID_FILE, /// A path passed as an argument to a request (such as analysis.reanalyze) is /// required to be an analysis root, but isn't. INVALID_ANALYSIS_ROOT, /// The context root used to create an execution context does not exist. INVALID_EXECUTION_CONTEXT, /// The format of the given file path is invalid, e.g. is not absolute and /// normalized. INVALID_FILE_PATH_FORMAT, /// An "analysis.updateContent" request contained a ChangeContentOverlay /// object which can't be applied, due to an edit having an offset or length /// that is out of range. INVALID_OVERLAY_CHANGE, /// One of the method parameters was invalid. INVALID_PARAMETER, /// A malformed request was received. INVALID_REQUEST, /// An "edit.organizeDirectives" request specified a Dart file that cannot be /// analyzed. The reason is described in the message. ORGANIZE_DIRECTIVES_ERROR, /// Another refactoring request was received during processing of this one. REFACTORING_REQUEST_CANCELLED, /// The analysis server has already been started (and hence won't accept new /// connections). /// /// This error is included for future expansion; at present the analysis /// server can only speak to one client at a time so this error will never /// occur. SERVER_ALREADY_STARTED, /// An internal error occurred in the analysis server. Also see the /// server.error notification. SERVER_ERROR, /// An "edit.sortMembers" request specified a FilePath which does not match a /// Dart file in an analysis root. SORT_MEMBERS_INVALID_FILE, /// An "edit.sortMembers" request specified a Dart file that has scan or /// parse errors. SORT_MEMBERS_PARSE_ERRORS, /// A request was received which the analysis server does not recognize, or /// cannot handle in its current configuration. UNKNOWN_REQUEST, /// The analysis server was requested to perform an action which is not /// supported. /// /// This is a legacy error; it will be removed before the API reaches version /// 1.0. UNSUPPORTED_FEATURE; factory RequestErrorCode.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'RequestErrorCode', json); } @override String toString() => 'RequestErrorCode.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// RuntimeCompletionExpression /// /// { /// "offset": int /// "length": int /// "type": optional RuntimeCompletionExpressionType /// } /// /// Clients may not extend, implement or mix-in this class. class RuntimeCompletionExpression implements HasToJson { /// The offset of the expression in the code for completion. int offset; /// The length of the expression in the code for completion. int length; /// When the expression is sent from the server to the client, the type is /// omitted. The client should fill the type when it sends the request to the /// server again. RuntimeCompletionExpressionType? type; RuntimeCompletionExpression(this.offset, this.length, {this.type}); factory RuntimeCompletionExpression.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } int length; if (json.containsKey('length')) { length = jsonDecoder.decodeInt('$jsonPath.length', json['length']); } else { throw jsonDecoder.mismatch(jsonPath, 'length', json); } RuntimeCompletionExpressionType? type; if (json.containsKey('type')) { type = RuntimeCompletionExpressionType.fromJson( jsonDecoder, '$jsonPath.type', json['type'], clientUriConverter: clientUriConverter, ); } return RuntimeCompletionExpression(offset, length, type: type); } else { throw jsonDecoder.mismatch(jsonPath, 'RuntimeCompletionExpression', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['offset'] = offset; result['length'] = length; var type = this.type; if (type != null) { result['type'] = type.toJson(clientUriConverter: clientUriConverter); } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RuntimeCompletionExpression && offset == other.offset && length == other.length && type == other.type; @override int get hashCode => Object.hash(offset, length, type); } /// RuntimeCompletionExpressionType /// /// { /// "libraryPath": optional FilePath /// "kind": RuntimeCompletionExpressionTypeKind /// "name": optional String /// "typeArguments": optional List /// "returnType": optional RuntimeCompletionExpressionType /// "parameterTypes": optional List /// "parameterNames": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class RuntimeCompletionExpressionType implements HasToJson { /// The path of the library that has this type. Omitted if the type is not /// declared in any library, e.g. "dynamic", or "void". String? libraryPath; /// The kind of the type. RuntimeCompletionExpressionTypeKind kind; /// The name of the type. Omitted if the type does not have a name, e.g. an /// inline function type. String? name; /// The type arguments of the type. Omitted if the type does not have type /// parameters. List? typeArguments; /// If the type is a function type, the return type of the function. Omitted /// if the type is not a function type. RuntimeCompletionExpressionType? returnType; /// If the type is a function type, the types of the function parameters of /// all kinds - required, optional positional, and optional named. Omitted if /// the type is not a function type. List? parameterTypes; /// If the type is a function type, the names of the function parameters of /// all kinds - required, optional positional, and optional named. The names /// of positional parameters are empty strings. Omitted if the type is not a /// function type. List? parameterNames; RuntimeCompletionExpressionType( this.kind, { this.libraryPath, this.name, this.typeArguments, this.returnType, this.parameterTypes, this.parameterNames, }); factory RuntimeCompletionExpressionType.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? libraryPath; if (json.containsKey('libraryPath')) { libraryPath = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString( '$jsonPath.libraryPath', json['libraryPath'], ), ) ?? jsonDecoder.decodeString( '$jsonPath.libraryPath', json['libraryPath'], ); } RuntimeCompletionExpressionTypeKind kind; if (json.containsKey('kind')) { kind = RuntimeCompletionExpressionTypeKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } String? name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } List? typeArguments; if (json.containsKey('typeArguments')) { typeArguments = jsonDecoder.decodeList( '$jsonPath.typeArguments', json['typeArguments'], (String jsonPath, Object? json) => RuntimeCompletionExpressionType.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } RuntimeCompletionExpressionType? returnType; if (json.containsKey('returnType')) { returnType = RuntimeCompletionExpressionType.fromJson( jsonDecoder, '$jsonPath.returnType', json['returnType'], clientUriConverter: clientUriConverter, ); } List? parameterTypes; if (json.containsKey('parameterTypes')) { parameterTypes = jsonDecoder.decodeList( '$jsonPath.parameterTypes', json['parameterTypes'], (String jsonPath, Object? json) => RuntimeCompletionExpressionType.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } List? parameterNames; if (json.containsKey('parameterNames')) { parameterNames = jsonDecoder.decodeList( '$jsonPath.parameterNames', json['parameterNames'], jsonDecoder.decodeString, ); } return RuntimeCompletionExpressionType( kind, libraryPath: libraryPath, name: name, typeArguments: typeArguments, returnType: returnType, parameterTypes: parameterTypes, parameterNames: parameterNames, ); } else { throw jsonDecoder.mismatch( jsonPath, 'RuntimeCompletionExpressionType', json, ); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var libraryPath = this.libraryPath; if (libraryPath != null) { result['libraryPath'] = clientUriConverter?.toClientFilePath(libraryPath) ?? libraryPath; } result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); var name = this.name; if (name != null) { result['name'] = name; } var typeArguments = this.typeArguments; if (typeArguments != null) { result['typeArguments'] = typeArguments .map( (RuntimeCompletionExpressionType value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } var returnType = this.returnType; if (returnType != null) { result['returnType'] = returnType.toJson( clientUriConverter: clientUriConverter, ); } var parameterTypes = this.parameterTypes; if (parameterTypes != null) { result['parameterTypes'] = parameterTypes .map( (RuntimeCompletionExpressionType value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } var parameterNames = this.parameterNames; if (parameterNames != null) { result['parameterNames'] = parameterNames; } return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RuntimeCompletionExpressionType && libraryPath == other.libraryPath && kind == other.kind && name == other.name && listEqual( typeArguments, other.typeArguments, ( RuntimeCompletionExpressionType a, RuntimeCompletionExpressionType b, ) => a == b, ) && returnType == other.returnType && listEqual( parameterTypes, other.parameterTypes, ( RuntimeCompletionExpressionType a, RuntimeCompletionExpressionType b, ) => a == b, ) && listEqual( parameterNames, other.parameterNames, (String a, String b) => a == b, ); @override int get hashCode => Object.hash( libraryPath, kind, name, Object.hashAll(typeArguments ?? []), returnType, Object.hashAll(parameterTypes ?? []), Object.hashAll(parameterNames ?? []), ); } /// RuntimeCompletionExpressionTypeKind /// /// enum { /// DYNAMIC /// FUNCTION /// INTERFACE /// } /// /// Clients may not extend, implement or mix-in this class. enum RuntimeCompletionExpressionTypeKind { DYNAMIC, FUNCTION, INTERFACE; factory RuntimeCompletionExpressionTypeKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch( jsonPath, 'RuntimeCompletionExpressionTypeKind', json, ); } @override String toString() => 'RuntimeCompletionExpressionTypeKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// RuntimeCompletionVariable /// /// { /// "name": String /// "type": RuntimeCompletionExpressionType /// } /// /// Clients may not extend, implement or mix-in this class. class RuntimeCompletionVariable implements HasToJson { /// The name of the variable. The name "this" has a special meaning and is /// used as an implicit target for runtime completion, and in explicit "this" /// references. String name; /// The type of the variable. RuntimeCompletionExpressionType type; RuntimeCompletionVariable(this.name, this.type); factory RuntimeCompletionVariable.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } RuntimeCompletionExpressionType type; if (json.containsKey('type')) { type = RuntimeCompletionExpressionType.fromJson( jsonDecoder, '$jsonPath.type', json['type'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'type', json); } return RuntimeCompletionVariable(name, type); } else { throw jsonDecoder.mismatch(jsonPath, 'RuntimeCompletionVariable', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; result['type'] = type.toJson(clientUriConverter: clientUriConverter); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is RuntimeCompletionVariable && name == other.name && type == other.type; @override int get hashCode => Object.hash(name, type); } /// search.findElementReferences params /// /// { /// "file": FilePath /// "offset": int /// "includePotential": bool /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindElementReferencesParams implements RequestParams { /// The file containing the declaration of or reference to the element used /// to define the search. String file; /// The offset within the file of the declaration of or reference to the /// element. int offset; /// True if potential matches are to be included in the results. bool includePotential; SearchFindElementReferencesParams( this.file, this.offset, this.includePotential, ); factory SearchFindElementReferencesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } bool includePotential; if (json.containsKey('includePotential')) { includePotential = jsonDecoder.decodeBool( '$jsonPath.includePotential', json['includePotential'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'includePotential', json); } return SearchFindElementReferencesParams(file, offset, includePotential); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findElementReferences params', json, ); } } factory SearchFindElementReferencesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchFindElementReferencesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; result['includePotential'] = includePotential; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.findElementReferences', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindElementReferencesParams && file == other.file && offset == other.offset && includePotential == other.includePotential; @override int get hashCode => Object.hash(file, offset, includePotential); } /// search.findElementReferences result /// /// { /// "id": optional SearchId /// "element": optional Element /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindElementReferencesResult implements ResponseResult { /// The identifier used to associate results with this search request. /// /// If no element was found at the given location, this field will be absent, /// and no results will be reported via the search.results notification. String? id; /// The element referenced or defined at the given offset and whose /// references will be returned in the search results. /// /// If no element was found at the given location, this field will be absent. Element? element; SearchFindElementReferencesResult({this.id, this.element}); factory SearchFindElementReferencesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } Element? element; if (json.containsKey('element')) { element = Element.fromJson( jsonDecoder, '$jsonPath.element', json['element'], clientUriConverter: clientUriConverter, ); } return SearchFindElementReferencesResult(id: id, element: element); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findElementReferences result', json, ); } } factory SearchFindElementReferencesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchFindElementReferencesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var id = this.id; if (id != null) { result['id'] = id; } var element = this.element; if (element != null) { result['element'] = element.toJson( clientUriConverter: clientUriConverter, ); } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindElementReferencesResult && id == other.id && element == other.element; @override int get hashCode => Object.hash(id, element); } /// search.findMemberDeclarations params /// /// { /// "name": String /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindMemberDeclarationsParams implements RequestParams { /// The name of the declarations to be found. String name; SearchFindMemberDeclarationsParams(this.name); factory SearchFindMemberDeclarationsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } return SearchFindMemberDeclarationsParams(name); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findMemberDeclarations params', json, ); } } factory SearchFindMemberDeclarationsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchFindMemberDeclarationsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.findMemberDeclarations', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindMemberDeclarationsParams && name == other.name; @override int get hashCode => name.hashCode; } /// search.findMemberDeclarations result /// /// { /// "id": SearchId /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindMemberDeclarationsResult implements ResponseResult { /// The identifier used to associate results with this search request. String id; SearchFindMemberDeclarationsResult(this.id); factory SearchFindMemberDeclarationsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return SearchFindMemberDeclarationsResult(id); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findMemberDeclarations result', json, ); } } factory SearchFindMemberDeclarationsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchFindMemberDeclarationsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindMemberDeclarationsResult && id == other.id; @override int get hashCode => id.hashCode; } /// search.findMemberReferences params /// /// { /// "name": String /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindMemberReferencesParams implements RequestParams { /// The name of the references to be found. String name; SearchFindMemberReferencesParams(this.name); factory SearchFindMemberReferencesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String name; if (json.containsKey('name')) { name = jsonDecoder.decodeString('$jsonPath.name', json['name']); } else { throw jsonDecoder.mismatch(jsonPath, 'name', json); } return SearchFindMemberReferencesParams(name); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findMemberReferences params', json, ); } } factory SearchFindMemberReferencesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchFindMemberReferencesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['name'] = name; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.findMemberReferences', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindMemberReferencesParams && name == other.name; @override int get hashCode => name.hashCode; } /// search.findMemberReferences result /// /// { /// "id": SearchId /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindMemberReferencesResult implements ResponseResult { /// The identifier used to associate results with this search request. String id; SearchFindMemberReferencesResult(this.id); factory SearchFindMemberReferencesResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return SearchFindMemberReferencesResult(id); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findMemberReferences result', json, ); } } factory SearchFindMemberReferencesResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchFindMemberReferencesResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindMemberReferencesResult && id == other.id; @override int get hashCode => id.hashCode; } /// search.findTopLevelDeclarations params /// /// { /// "pattern": String /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindTopLevelDeclarationsParams implements RequestParams { /// The regular expression used to match the names of the declarations to be /// found. String pattern; SearchFindTopLevelDeclarationsParams(this.pattern); factory SearchFindTopLevelDeclarationsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String pattern; if (json.containsKey('pattern')) { pattern = jsonDecoder.decodeString( '$jsonPath.pattern', json['pattern'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'pattern', json); } return SearchFindTopLevelDeclarationsParams(pattern); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findTopLevelDeclarations params', json, ); } } factory SearchFindTopLevelDeclarationsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchFindTopLevelDeclarationsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['pattern'] = pattern; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.findTopLevelDeclarations', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindTopLevelDeclarationsParams && pattern == other.pattern; @override int get hashCode => pattern.hashCode; } /// search.findTopLevelDeclarations result /// /// { /// "id": SearchId /// } /// /// Clients may not extend, implement or mix-in this class. class SearchFindTopLevelDeclarationsResult implements ResponseResult { /// The identifier used to associate results with this search request. String id; SearchFindTopLevelDeclarationsResult(this.id); factory SearchFindTopLevelDeclarationsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return SearchFindTopLevelDeclarationsResult(id); } else { throw jsonDecoder.mismatch( jsonPath, 'search.findTopLevelDeclarations result', json, ); } } factory SearchFindTopLevelDeclarationsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchFindTopLevelDeclarationsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchFindTopLevelDeclarationsResult && id == other.id; @override int get hashCode => id.hashCode; } /// search.getElementDeclarations params /// /// { /// "file": optional FilePath /// "pattern": optional String /// "maxResults": optional int /// } /// /// Clients may not extend, implement or mix-in this class. class SearchGetElementDeclarationsParams implements RequestParams { /// If this field is provided, return only declarations in this file. If this /// field is missing, return declarations in all files. String? file; /// The regular expression used to match the names of declarations. If this /// field is missing, return all declarations. String? pattern; /// The maximum number of declarations to return. If this field is missing, /// return all matching declarations. int? maxResults; SearchGetElementDeclarationsParams({ this.file, this.pattern, this.maxResults, }); factory SearchGetElementDeclarationsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } String? pattern; if (json.containsKey('pattern')) { pattern = jsonDecoder.decodeString( '$jsonPath.pattern', json['pattern'], ); } int? maxResults; if (json.containsKey('maxResults')) { maxResults = jsonDecoder.decodeInt( '$jsonPath.maxResults', json['maxResults'], ); } return SearchGetElementDeclarationsParams( file: file, pattern: pattern, maxResults: maxResults, ); } else { throw jsonDecoder.mismatch( jsonPath, 'search.getElementDeclarations params', json, ); } } factory SearchGetElementDeclarationsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchGetElementDeclarationsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var file = this.file; if (file != null) { result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; } var pattern = this.pattern; if (pattern != null) { result['pattern'] = pattern; } var maxResults = this.maxResults; if (maxResults != null) { result['maxResults'] = maxResults; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.getElementDeclarations', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchGetElementDeclarationsParams && file == other.file && pattern == other.pattern && maxResults == other.maxResults; @override int get hashCode => Object.hash(file, pattern, maxResults); } /// search.getElementDeclarations result /// /// { /// "declarations": List /// "files": List /// } /// /// Clients may not extend, implement or mix-in this class. class SearchGetElementDeclarationsResult implements ResponseResult { /// The list of declarations. List declarations; /// The list of the paths of files with declarations. List files; SearchGetElementDeclarationsResult(this.declarations, this.files); factory SearchGetElementDeclarationsResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List declarations; if (json.containsKey('declarations')) { declarations = jsonDecoder.decodeList( '$jsonPath.declarations', json['declarations'], (String jsonPath, Object? json) => ElementDeclaration.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'declarations', json); } List files; if (json.containsKey('files')) { files = jsonDecoder.decodeList( '$jsonPath.files', json['files'], (String jsonPath, Object? json) => clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString(jsonPath, json), ) ?? jsonDecoder.decodeString(jsonPath, json), ); } else { throw jsonDecoder.mismatch(jsonPath, 'files', json); } return SearchGetElementDeclarationsResult(declarations, files); } else { throw jsonDecoder.mismatch( jsonPath, 'search.getElementDeclarations result', json, ); } } factory SearchGetElementDeclarationsResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchGetElementDeclarationsResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['declarations'] = declarations .map( (ElementDeclaration value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['files'] = files .map( (String value) => clientUriConverter?.toClientFilePath(value) ?? value, ) .toList(); return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchGetElementDeclarationsResult && listEqual( declarations, other.declarations, (ElementDeclaration a, ElementDeclaration b) => a == b, ) && listEqual(files, other.files, (String a, String b) => a == b); @override int get hashCode => Object.hash(Object.hashAll(declarations), Object.hashAll(files)); } /// search.getTypeHierarchy params /// /// { /// "file": FilePath /// "offset": int /// "superOnly": optional bool /// } /// /// Clients may not extend, implement or mix-in this class. class SearchGetTypeHierarchyParams implements RequestParams { /// The file containing the declaration or reference to the type for which a /// hierarchy is being requested. String file; /// The offset of the name of the type within the file. int offset; /// True if the client is only requesting superclasses and interfaces /// hierarchy. bool? superOnly; SearchGetTypeHierarchyParams(this.file, this.offset, {this.superOnly}); factory SearchGetTypeHierarchyParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String file; if (json.containsKey('file')) { file = clientUriConverter?.fromClientFilePath( jsonDecoder.decodeString('$jsonPath.file', json['file']), ) ?? jsonDecoder.decodeString('$jsonPath.file', json['file']); } else { throw jsonDecoder.mismatch(jsonPath, 'file', json); } int offset; if (json.containsKey('offset')) { offset = jsonDecoder.decodeInt('$jsonPath.offset', json['offset']); } else { throw jsonDecoder.mismatch(jsonPath, 'offset', json); } bool? superOnly; if (json.containsKey('superOnly')) { superOnly = jsonDecoder.decodeBool( '$jsonPath.superOnly', json['superOnly'], ); } return SearchGetTypeHierarchyParams(file, offset, superOnly: superOnly); } else { throw jsonDecoder.mismatch( jsonPath, 'search.getTypeHierarchy params', json, ); } } factory SearchGetTypeHierarchyParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return SearchGetTypeHierarchyParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['file'] = clientUriConverter?.toClientFilePath(file) ?? file; result['offset'] = offset; var superOnly = this.superOnly; if (superOnly != null) { result['superOnly'] = superOnly; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'search.getTypeHierarchy', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchGetTypeHierarchyParams && file == other.file && offset == other.offset && superOnly == other.superOnly; @override int get hashCode => Object.hash(file, offset, superOnly); } /// search.getTypeHierarchy result /// /// { /// "hierarchyItems": optional List /// } /// /// Clients may not extend, implement or mix-in this class. class SearchGetTypeHierarchyResult implements ResponseResult { /// A list of the types in the requested hierarchy. The first element of the /// list is the item representing the type for which the hierarchy was /// requested. The index of other elements of the list is unspecified, but /// correspond to the integers used to reference supertype and subtype items /// within the items. /// /// This field will be absent if the code at the given file and offset does /// not represent a type, or if the file has not been sufficiently analyzed /// to allow a type hierarchy to be produced. List? hierarchyItems; SearchGetTypeHierarchyResult({this.hierarchyItems}); factory SearchGetTypeHierarchyResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List? hierarchyItems; if (json.containsKey('hierarchyItems')) { hierarchyItems = jsonDecoder.decodeList( '$jsonPath.hierarchyItems', json['hierarchyItems'], (String jsonPath, Object? json) => TypeHierarchyItem.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } return SearchGetTypeHierarchyResult(hierarchyItems: hierarchyItems); } else { throw jsonDecoder.mismatch( jsonPath, 'search.getTypeHierarchy result', json, ); } } factory SearchGetTypeHierarchyResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return SearchGetTypeHierarchyResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var hierarchyItems = this.hierarchyItems; if (hierarchyItems != null) { result['hierarchyItems'] = hierarchyItems .map( (TypeHierarchyItem value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchGetTypeHierarchyResult && listEqual( hierarchyItems, other.hierarchyItems, (TypeHierarchyItem a, TypeHierarchyItem b) => a == b, ); @override int get hashCode => Object.hashAll(hierarchyItems ?? []); } /// SearchResult /// /// { /// "location": Location /// "kind": SearchResultKind /// "isPotential": bool /// "path": List /// } /// /// Clients may not extend, implement or mix-in this class. class SearchResult implements HasToJson { /// The location of the code that matched the search criteria. Location location; /// The kind of element that was found or the kind of reference that was /// found. SearchResultKind kind; /// True if the result is a potential match but cannot be confirmed to be a /// match. For example, if all references to a method m defined in some class /// were requested, and a reference to a method m from an unknown class were /// found, it would be marked as being a potential match. bool isPotential; /// The elements that contain the result, starting with the most immediately /// enclosing ancestor and ending with the library. List path; SearchResult(this.location, this.kind, this.isPotential, this.path); factory SearchResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Location location; if (json.containsKey('location')) { location = Location.fromJson( jsonDecoder, '$jsonPath.location', json['location'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'location', json); } SearchResultKind kind; if (json.containsKey('kind')) { kind = SearchResultKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } bool isPotential; if (json.containsKey('isPotential')) { isPotential = jsonDecoder.decodeBool( '$jsonPath.isPotential', json['isPotential'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'isPotential', json); } List path; if (json.containsKey('path')) { path = jsonDecoder.decodeList( '$jsonPath.path', json['path'], (String jsonPath, Object? json) => Element.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'path', json); } return SearchResult(location, kind, isPotential, path); } else { throw jsonDecoder.mismatch(jsonPath, 'SearchResult', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['location'] = location.toJson( clientUriConverter: clientUriConverter, ); result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); result['isPotential'] = isPotential; result['path'] = path .map( (Element value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchResult && location == other.location && kind == other.kind && isPotential == other.isPotential && listEqual(path, other.path, (Element a, Element b) => a == b); @override int get hashCode => Object.hash(location, kind, isPotential, Object.hashAll(path)); } /// SearchResultKind /// /// enum { /// DECLARATION /// INVOCATION /// READ /// READ_WRITE /// REFERENCE /// UNKNOWN /// WRITE /// } /// /// Clients may not extend, implement or mix-in this class. enum SearchResultKind { /// The declaration of an element. DECLARATION, /// The invocation of a function or method. INVOCATION, /// A reference to a field, parameter or variable where it is being read. READ, /// A reference to a field, parameter or variable where it is being read and /// written. READ_WRITE, /// A reference to an element. REFERENCE, /// Some other kind of search result. UNKNOWN, /// A reference to a field, parameter or variable where it is being written. WRITE; factory SearchResultKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'SearchResultKind', json); } @override String toString() => 'SearchResultKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// search.results params /// /// { /// "id": SearchId /// "results": List /// "isLast": bool /// } /// /// Clients may not extend, implement or mix-in this class. class SearchResultsParams implements HasToJson { /// The id associated with the search. String id; /// The search results being reported. List results; /// True if this is that last set of results that will be returned for the /// indicated search. bool isLast; SearchResultsParams(this.id, this.results, this.isLast); factory SearchResultsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } List results; if (json.containsKey('results')) { results = jsonDecoder.decodeList( '$jsonPath.results', json['results'], (String jsonPath, Object? json) => SearchResult.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'results', json); } bool isLast; if (json.containsKey('isLast')) { isLast = jsonDecoder.decodeBool('$jsonPath.isLast', json['isLast']); } else { throw jsonDecoder.mismatch(jsonPath, 'isLast', json); } return SearchResultsParams(id, results, isLast); } else { throw jsonDecoder.mismatch(jsonPath, 'search.results params', json); } } factory SearchResultsParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return SearchResultsParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; result['results'] = results .map( (SearchResult value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); result['isLast'] = isLast; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'search.results', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is SearchResultsParams && id == other.id && listEqual( results, other.results, (SearchResult a, SearchResult b) => a == b, ) && isLast == other.isLast; @override int get hashCode => Object.hash(id, Object.hashAll(results), isLast); } /// server.cancelRequest params /// /// { /// "id": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerCancelRequestParams implements RequestParams { /// The id of the request that should be cancelled. String id; ServerCancelRequestParams(this.id); factory ServerCancelRequestParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String id; if (json.containsKey('id')) { id = jsonDecoder.decodeString('$jsonPath.id', json['id']); } else { throw jsonDecoder.mismatch(jsonPath, 'id', json); } return ServerCancelRequestParams(id); } else { throw jsonDecoder.mismatch(jsonPath, 'server.cancelRequest params', json); } } factory ServerCancelRequestParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ServerCancelRequestParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['id'] = id; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'server.cancelRequest', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerCancelRequestParams && id == other.id; @override int get hashCode => id.hashCode; } /// server.cancelRequest result /// /// Clients may not extend, implement or mix-in this class. class ServerCancelRequestResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ServerCancelRequestResult; @override int get hashCode => 183255719; } /// server.connected params /// /// { /// "version": String /// "pid": int /// } /// /// Clients may not extend, implement or mix-in this class. class ServerConnectedParams implements HasToJson { /// The version number of the analysis server. String version; /// The process id of the analysis server process. int pid; ServerConnectedParams(this.version, this.pid); factory ServerConnectedParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String version; if (json.containsKey('version')) { version = jsonDecoder.decodeString( '$jsonPath.version', json['version'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'version', json); } int pid; if (json.containsKey('pid')) { pid = jsonDecoder.decodeInt('$jsonPath.pid', json['pid']); } else { throw jsonDecoder.mismatch(jsonPath, 'pid', json); } return ServerConnectedParams(version, pid); } else { throw jsonDecoder.mismatch(jsonPath, 'server.connected params', json); } } factory ServerConnectedParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ServerConnectedParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['version'] = version; result['pid'] = pid; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'server.connected', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerConnectedParams && version == other.version && pid == other.pid; @override int get hashCode => Object.hash(version, pid); } /// server.error params /// /// { /// "isFatal": bool /// "message": String /// "stackTrace": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerErrorParams implements HasToJson { /// True if the error is a fatal error, meaning that the server will shutdown /// automatically after sending this notification. bool isFatal; /// The error message indicating what kind of error was encountered. String message; /// The stack trace associated with the generation of the error, used for /// debugging the server. String stackTrace; ServerErrorParams(this.isFatal, this.message, this.stackTrace); factory ServerErrorParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { bool isFatal; if (json.containsKey('isFatal')) { isFatal = jsonDecoder.decodeBool('$jsonPath.isFatal', json['isFatal']); } else { throw jsonDecoder.mismatch(jsonPath, 'isFatal', json); } String message; if (json.containsKey('message')) { message = jsonDecoder.decodeString( '$jsonPath.message', json['message'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'message', json); } String stackTrace; if (json.containsKey('stackTrace')) { stackTrace = jsonDecoder.decodeString( '$jsonPath.stackTrace', json['stackTrace'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'stackTrace', json); } return ServerErrorParams(isFatal, message, stackTrace); } else { throw jsonDecoder.mismatch(jsonPath, 'server.error params', json); } } factory ServerErrorParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ServerErrorParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['isFatal'] = isFatal; result['message'] = message; result['stackTrace'] = stackTrace; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'server.error', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerErrorParams && isFatal == other.isFatal && message == other.message && stackTrace == other.stackTrace; @override int get hashCode => Object.hash(isFatal, message, stackTrace); } /// server.getVersion params /// /// Clients may not extend, implement or mix-in this class. class ServerGetVersionParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'server.getVersion'); } @override bool operator ==(Object other) => other is ServerGetVersionParams; @override int get hashCode => 55877452; } /// server.getVersion result /// /// { /// "version": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerGetVersionResult implements ResponseResult { /// The version number of the analysis server. String version; ServerGetVersionResult(this.version); factory ServerGetVersionResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String version; if (json.containsKey('version')) { version = jsonDecoder.decodeString( '$jsonPath.version', json['version'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'version', json); } return ServerGetVersionResult(version); } else { throw jsonDecoder.mismatch(jsonPath, 'server.getVersion result', json); } } factory ServerGetVersionResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return ServerGetVersionResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['version'] = version; return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerGetVersionResult && version == other.version; @override int get hashCode => version.hashCode; } /// ServerLogEntry /// /// { /// "time": int /// "kind": ServerLogEntryKind /// "data": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerLogEntry implements HasToJson { /// The time (milliseconds since epoch) at which the server created this log /// entry. int time; /// The kind of the entry, used to determine how to interpret the "data" /// field. ServerLogEntryKind kind; /// The payload of the entry, the actual format is determined by the "kind" /// field. String data; ServerLogEntry(this.time, this.kind, this.data); factory ServerLogEntry.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { int time; if (json.containsKey('time')) { time = jsonDecoder.decodeInt('$jsonPath.time', json['time']); } else { throw jsonDecoder.mismatch(jsonPath, 'time', json); } ServerLogEntryKind kind; if (json.containsKey('kind')) { kind = ServerLogEntryKind.fromJson( jsonDecoder, '$jsonPath.kind', json['kind'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'kind', json); } String data; if (json.containsKey('data')) { data = jsonDecoder.decodeString('$jsonPath.data', json['data']); } else { throw jsonDecoder.mismatch(jsonPath, 'data', json); } return ServerLogEntry(time, kind, data); } else { throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntry', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['time'] = time; result['kind'] = kind.toJson(clientUriConverter: clientUriConverter); result['data'] = data; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerLogEntry && time == other.time && kind == other.kind && data == other.data; @override int get hashCode => Object.hash(time, kind, data); } /// ServerLogEntryKind /// /// enum { /// NOTIFICATION /// RAW /// REQUEST /// RESPONSE /// } /// /// Clients may not extend, implement or mix-in this class. enum ServerLogEntryKind { /// A notification from the server, such as "analysis.highlights". The "data" /// field contains a JSON object with abbreviated notification. NOTIFICATION, /// Arbitrary string, describing some event that happened in the server, e.g. /// starting a file analysis, and details which files were accessed. These /// entries are not structured, but provide context information about /// requests and notification, and can be related by "time" for further /// manual analysis. RAW, /// A request from the client, as the server views it, e.g. /// "edit.getAssists". The "data" field contains a JSON object with /// abbreviated request. REQUEST, /// Various counters and measurements related to execution of a request. The /// "data" field contains a JSON object with following fields: /// /// - "id" - the id of the request - copied from the request. /// - "method" - the method of the request, e.g. "edit.getAssists". /// - "clientRequestTime" - the time (milliseconds since epoch) at which the /// client made the request - copied from the request. /// - "serverRequestTime" - the time (milliseconds since epoch) at which the /// server received and decoded the JSON request. /// - "responseTime" - the time (milliseconds since epoch) at which the /// server created the response to be encoded into JSON and sent to the /// client. RESPONSE; factory ServerLogEntryKind.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntryKind', json); } @override String toString() => 'ServerLogEntryKind.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// server.log params /// /// { /// "entry": ServerLogEntry /// } /// /// Clients may not extend, implement or mix-in this class. class ServerLogParams implements HasToJson { ServerLogEntry entry; ServerLogParams(this.entry); factory ServerLogParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { ServerLogEntry entry; if (json.containsKey('entry')) { entry = ServerLogEntry.fromJson( jsonDecoder, '$jsonPath.entry', json['entry'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'entry', json); } return ServerLogParams(entry); } else { throw jsonDecoder.mismatch(jsonPath, 'server.log params', json); } } factory ServerLogParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ServerLogParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['entry'] = entry.toJson(clientUriConverter: clientUriConverter); return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'server.log', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerLogParams && entry == other.entry; @override int get hashCode => entry.hashCode; } /// server.openUrlRequest params /// /// { /// "url": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerOpenUrlRequestParams implements RequestParams { /// The URL to be opened. String url; ServerOpenUrlRequestParams(this.url); factory ServerOpenUrlRequestParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String url; if (json.containsKey('url')) { url = jsonDecoder.decodeString('$jsonPath.url', json['url']); } else { throw jsonDecoder.mismatch(jsonPath, 'url', json); } return ServerOpenUrlRequestParams(url); } else { throw jsonDecoder.mismatch( jsonPath, 'server.openUrlRequest params', json, ); } } factory ServerOpenUrlRequestParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ServerOpenUrlRequestParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['url'] = url; return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'server.openUrlRequest', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerOpenUrlRequestParams && url == other.url; @override int get hashCode => url.hashCode; } /// server.openUrlRequest result /// /// Clients may not extend, implement or mix-in this class. class ServerOpenUrlRequestResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ServerOpenUrlRequestResult; @override int get hashCode => 561630021; } /// server.pluginError params /// /// { /// "message": String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerPluginErrorParams implements HasToJson { /// The error message indicating what kind of error was encountered. String message; ServerPluginErrorParams(this.message); factory ServerPluginErrorParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String message; if (json.containsKey('message')) { message = jsonDecoder.decodeString( '$jsonPath.message', json['message'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'message', json); } return ServerPluginErrorParams(message); } else { throw jsonDecoder.mismatch(jsonPath, 'server.pluginError params', json); } } factory ServerPluginErrorParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ServerPluginErrorParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['message'] = message; return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'server.pluginError', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerPluginErrorParams && message == other.message; @override int get hashCode => message.hashCode; } /// ServerService /// /// enum { /// LOG /// STATUS /// } /// /// Clients may not extend, implement or mix-in this class. enum ServerService { LOG, STATUS; factory ServerService.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { if (json is String) { try { return values.byName(json); } catch (_) { // Fall through } } throw jsonDecoder.mismatch(jsonPath, 'ServerService', json); } @override String toString() => 'ServerService.$name'; String toJson({required ClientUriConverter? clientUriConverter}) => name; } /// server.setClientCapabilities params /// /// { /// "requests": List /// "supportsUris": optional bool /// "lspCapabilities": optional object /// } /// /// Clients may not extend, implement or mix-in this class. class ServerSetClientCapabilitiesParams implements RequestParams { /// The names of the requests that the server can safely send to the client. /// Only requests whose name is in the list will be sent. /// /// A request should only be included in the list if the client will /// unconditionally honor the request. /// /// The default, used before this request is received, is an empty list. /// /// The following is a list of the names of the requests that can be /// specified: /// /// - `openUrlRequest` /// - `showMessageRequest` List requests; /// True if the client supports the server sending URIs in place of file /// paths. /// /// In this mode, the server will use URIs in all protocol fields with the /// type `FilePath`. Returned URIs may be `file://` URIs or custom schemes. /// The client can fetch the file contents for URIs with custom schemes (and /// receive modification events) through the LSP protocol (see the "lsp" /// domain). /// /// LSP notifications are automatically enabled when the client sets this /// capability. bool? supportsUris; /// LSP capabilities of the client as defined by the Language Server Protocol /// specification. /// /// If custom LSP capabilities are to be used, the setClientCapabilities /// request should be called before any LSP requests are made to the server. /// /// If LSP capabilities are not provided or no setClientCapabilities request /// is made, a very basic set of capabilities will be assumed. Object? lspCapabilities; ServerSetClientCapabilitiesParams( this.requests, { this.supportsUris, this.lspCapabilities, }); factory ServerSetClientCapabilitiesParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List requests; if (json.containsKey('requests')) { requests = jsonDecoder.decodeList( '$jsonPath.requests', json['requests'], jsonDecoder.decodeString, ); } else { throw jsonDecoder.mismatch(jsonPath, 'requests', json); } bool? supportsUris; if (json.containsKey('supportsUris')) { supportsUris = jsonDecoder.decodeBool( '$jsonPath.supportsUris', json['supportsUris'], ); } Object? lspCapabilities; if (json.containsKey('lspCapabilities')) { lspCapabilities = json['lspCapabilities'] as Object; } return ServerSetClientCapabilitiesParams( requests, supportsUris: supportsUris, lspCapabilities: lspCapabilities, ); } else { throw jsonDecoder.mismatch( jsonPath, 'server.setClientCapabilities params', json, ); } } factory ServerSetClientCapabilitiesParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ServerSetClientCapabilitiesParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['requests'] = requests; var supportsUris = this.supportsUris; if (supportsUris != null) { result['supportsUris'] = supportsUris; } var lspCapabilities = this.lspCapabilities; if (lspCapabilities != null) { result['lspCapabilities'] = lspCapabilities; } return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'server.setClientCapabilities', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerSetClientCapabilitiesParams && listEqual(requests, other.requests, (String a, String b) => a == b) && supportsUris == other.supportsUris && lspCapabilities == other.lspCapabilities; @override int get hashCode => Object.hash(Object.hashAll(requests), supportsUris, lspCapabilities); } /// server.setClientCapabilities result /// /// Clients may not extend, implement or mix-in this class. class ServerSetClientCapabilitiesResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ServerSetClientCapabilitiesResult; @override int get hashCode => 806805916; } /// server.setSubscriptions params /// /// { /// "subscriptions": List /// } /// /// Clients may not extend, implement or mix-in this class. class ServerSetSubscriptionsParams implements RequestParams { /// A list of the services being subscribed to. List subscriptions; ServerSetSubscriptionsParams(this.subscriptions); factory ServerSetSubscriptionsParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { List subscriptions; if (json.containsKey('subscriptions')) { subscriptions = jsonDecoder.decodeList( '$jsonPath.subscriptions', json['subscriptions'], (String jsonPath, Object? json) => ServerService.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'subscriptions', json); } return ServerSetSubscriptionsParams(subscriptions); } else { throw jsonDecoder.mismatch( jsonPath, 'server.setSubscriptions params', json, ); } } factory ServerSetSubscriptionsParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ServerSetSubscriptionsParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['subscriptions'] = subscriptions .map( (ServerService value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'server.setSubscriptions', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerSetSubscriptionsParams && listEqual( subscriptions, other.subscriptions, (ServerService a, ServerService b) => a == b, ); @override int get hashCode => Object.hashAll(subscriptions); } /// server.setSubscriptions result /// /// Clients may not extend, implement or mix-in this class. class ServerSetSubscriptionsResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ServerSetSubscriptionsResult; @override int get hashCode => 748820900; } /// server.showMessageRequest params /// /// { /// "type": MessageType /// "message": String /// "actions": List /// } /// /// Clients may not extend, implement or mix-in this class. class ServerShowMessageRequestParams implements RequestParams { /// The type of the message. MessageType type; /// The message to be displayed. String message; /// The labels of the buttons by which the user can dismiss the message. List actions; ServerShowMessageRequestParams(this.type, this.message, this.actions); factory ServerShowMessageRequestParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { MessageType type; if (json.containsKey('type')) { type = MessageType.fromJson( jsonDecoder, '$jsonPath.type', json['type'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'type', json); } String message; if (json.containsKey('message')) { message = jsonDecoder.decodeString( '$jsonPath.message', json['message'], ); } else { throw jsonDecoder.mismatch(jsonPath, 'message', json); } List actions; if (json.containsKey('actions')) { actions = jsonDecoder.decodeList( '$jsonPath.actions', json['actions'], (String jsonPath, Object? json) => MessageAction.fromJson( jsonDecoder, jsonPath, json, clientUriConverter: clientUriConverter, ), ); } else { throw jsonDecoder.mismatch(jsonPath, 'actions', json); } return ServerShowMessageRequestParams(type, message, actions); } else { throw jsonDecoder.mismatch( jsonPath, 'server.showMessageRequest params', json, ); } } factory ServerShowMessageRequestParams.fromRequest( Request request, { required ClientUriConverter? clientUriConverter, }) { return ServerShowMessageRequestParams.fromJson( RequestDecoder(request), 'params', request.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['type'] = type.toJson(clientUriConverter: clientUriConverter); result['message'] = message; result['actions'] = actions .map( (MessageAction value) => value.toJson(clientUriConverter: clientUriConverter), ) .toList(); return result; } @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request( id, 'server.showMessageRequest', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerShowMessageRequestParams && type == other.type && message == other.message && listEqual( actions, other.actions, (MessageAction a, MessageAction b) => a == b, ); @override int get hashCode => Object.hash(type, message, Object.hashAll(actions)); } /// server.showMessageRequest result /// /// { /// "action": optional String /// } /// /// Clients may not extend, implement or mix-in this class. class ServerShowMessageRequestResult implements ResponseResult { /// The label of the action that was selected by the user. May be omitted or /// `null` if the user dismissed the message without clicking an action /// button. String? action; ServerShowMessageRequestResult({this.action}); factory ServerShowMessageRequestResult.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { String? action; if (json.containsKey('action')) { action = jsonDecoder.decodeString('$jsonPath.action', json['action']); } return ServerShowMessageRequestResult(action: action); } else { throw jsonDecoder.mismatch( jsonPath, 'server.showMessageRequest result', json, ); } } factory ServerShowMessageRequestResult.fromResponse( Response response, { required ClientUriConverter? clientUriConverter, }) { return ServerShowMessageRequestResult.fromJson( ResponseDecoder(REQUEST_ID_REFACTORING_KINDS.remove(response.id)), 'result', response.result, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var action = this.action; if (action != null) { result['action'] = action; } return result; } @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id, result: toJson(clientUriConverter: clientUriConverter)); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerShowMessageRequestResult && action == other.action; @override int get hashCode => action.hashCode; } /// server.shutdown params /// /// Clients may not extend, implement or mix-in this class. class ServerShutdownParams implements RequestParams { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Request toRequest( String id, { required ClientUriConverter? clientUriConverter, }) { return Request(id, 'server.shutdown'); } @override bool operator ==(Object other) => other is ServerShutdownParams; @override int get hashCode => 366630911; } /// server.shutdown result /// /// Clients may not extend, implement or mix-in this class. class ServerShutdownResult implements ResponseResult { @override Map toJson({ required ClientUriConverter? clientUriConverter, }) => {}; @override Response toResponse( String id, { required ClientUriConverter? clientUriConverter, }) { return Response(id); } @override bool operator ==(Object other) => other is ServerShutdownResult; @override int get hashCode => 193626532; } /// server.status params /// /// { /// "analysis": optional AnalysisStatus /// "pub": optional PubStatus /// } /// /// Clients may not extend, implement or mix-in this class. class ServerStatusParams implements HasToJson { /// The current status of analysis, including whether analysis is being /// performed and if so what is being analyzed. AnalysisStatus? analysis; /// The current status of pub execution, indicating whether we are currently /// running pub. /// /// Note: this status type is deprecated, and is no longer sent by the /// server. PubStatus? pub; ServerStatusParams({this.analysis, this.pub}); factory ServerStatusParams.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { AnalysisStatus? analysis; if (json.containsKey('analysis')) { analysis = AnalysisStatus.fromJson( jsonDecoder, '$jsonPath.analysis', json['analysis'], clientUriConverter: clientUriConverter, ); } PubStatus? pub; if (json.containsKey('pub')) { pub = PubStatus.fromJson( jsonDecoder, '$jsonPath.pub', json['pub'], clientUriConverter: clientUriConverter, ); } return ServerStatusParams(analysis: analysis, pub: pub); } else { throw jsonDecoder.mismatch(jsonPath, 'server.status params', json); } } factory ServerStatusParams.fromNotification( Notification notification, { required ClientUriConverter? clientUriConverter, }) { return ServerStatusParams.fromJson( ResponseDecoder(null), 'params', notification.params, clientUriConverter: clientUriConverter, ); } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; var analysis = this.analysis; if (analysis != null) { result['analysis'] = analysis.toJson( clientUriConverter: clientUriConverter, ); } var pub = this.pub; if (pub != null) { result['pub'] = pub.toJson(clientUriConverter: clientUriConverter); } return result; } Notification toNotification({ required ClientUriConverter? clientUriConverter, }) { return Notification( 'server.status', toJson(clientUriConverter: clientUriConverter), ); } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is ServerStatusParams && analysis == other.analysis && pub == other.pub; @override int get hashCode => Object.hash(analysis, pub); } /// TypeHierarchyItem /// /// { /// "classElement": Element /// "displayName": optional String /// "memberElement": optional Element /// "superclass": optional int /// "interfaces": List /// "mixins": List /// "subclasses": List /// } /// /// Clients may not extend, implement or mix-in this class. class TypeHierarchyItem implements HasToJson { /// The class element represented by this item. Element classElement; /// The name to be displayed for the class. This field will be omitted if the /// display name is the same as the name of the element. The display name is /// different if there is additional type information to be displayed, such /// as type arguments. String? displayName; /// The member in the class corresponding to the member on which the /// hierarchy was requested. This field will be omitted if the hierarchy was /// not requested for a member or if the class does not have a corresponding /// member. Element? memberElement; /// The index of the item representing the superclass of this class. This /// field will be omitted if this item represents the class Object. int? superclass; /// The indexes of the items representing the interfaces implemented by this /// class. The list will be empty if there are no implemented interfaces. List interfaces; /// The indexes of the items representing the mixins referenced by this /// class. The list will be empty if there are no classes mixed into this /// class. List mixins; /// The indexes of the items representing the subtypes of this class. The /// list will be empty if there are no subtypes or if this item represents a /// supertype of the pivot type. List subclasses; TypeHierarchyItem( this.classElement, { this.displayName, this.memberElement, this.superclass, List? interfaces, List? mixins, List? subclasses, }) : interfaces = interfaces ?? [], mixins = mixins ?? [], subclasses = subclasses ?? []; factory TypeHierarchyItem.fromJson( JsonDecoder jsonDecoder, String jsonPath, Object? json, { required ClientUriConverter? clientUriConverter, }) { json ??= {}; if (json is Map) { Element classElement; if (json.containsKey('classElement')) { classElement = Element.fromJson( jsonDecoder, '$jsonPath.classElement', json['classElement'], clientUriConverter: clientUriConverter, ); } else { throw jsonDecoder.mismatch(jsonPath, 'classElement', json); } String? displayName; if (json.containsKey('displayName')) { displayName = jsonDecoder.decodeString( '$jsonPath.displayName', json['displayName'], ); } Element? memberElement; if (json.containsKey('memberElement')) { memberElement = Element.fromJson( jsonDecoder, '$jsonPath.memberElement', json['memberElement'], clientUriConverter: clientUriConverter, ); } int? superclass; if (json.containsKey('superclass')) { superclass = jsonDecoder.decodeInt( '$jsonPath.superclass', json['superclass'], ); } List interfaces; if (json.containsKey('interfaces')) { interfaces = jsonDecoder.decodeList( '$jsonPath.interfaces', json['interfaces'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'interfaces', json); } List mixins; if (json.containsKey('mixins')) { mixins = jsonDecoder.decodeList( '$jsonPath.mixins', json['mixins'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'mixins', json); } List subclasses; if (json.containsKey('subclasses')) { subclasses = jsonDecoder.decodeList( '$jsonPath.subclasses', json['subclasses'], jsonDecoder.decodeInt, ); } else { throw jsonDecoder.mismatch(jsonPath, 'subclasses', json); } return TypeHierarchyItem( classElement, displayName: displayName, memberElement: memberElement, superclass: superclass, interfaces: interfaces, mixins: mixins, subclasses: subclasses, ); } else { throw jsonDecoder.mismatch(jsonPath, 'TypeHierarchyItem', json); } } @override Map toJson({ required ClientUriConverter? clientUriConverter, }) { var result = {}; result['classElement'] = classElement.toJson( clientUriConverter: clientUriConverter, ); var displayName = this.displayName; if (displayName != null) { result['displayName'] = displayName; } var memberElement = this.memberElement; if (memberElement != null) { result['memberElement'] = memberElement.toJson( clientUriConverter: clientUriConverter, ); } var superclass = this.superclass; if (superclass != null) { result['superclass'] = superclass; } result['interfaces'] = interfaces; result['mixins'] = mixins; result['subclasses'] = subclasses; return result; } @override String toString() => json.encode(toJson(clientUriConverter: null)); @override bool operator ==(Object other) => other is TypeHierarchyItem && classElement == other.classElement && displayName == other.displayName && memberElement == other.memberElement && superclass == other.superclass && listEqual(interfaces, other.interfaces, (int a, int b) => a == b) && listEqual(mixins, other.mixins, (int a, int b) => a == b) && listEqual(subclasses, other.subclasses, (int a, int b) => a == b); @override int get hashCode => Object.hash( classElement, displayName, memberElement, superclass, Object.hashAll(interfaces), Object.hashAll(mixins), Object.hashAll(subclasses), ); }