blob: e361cd6e86cc01621b06a68cb941fc3c298f3c36 [file] [log] [blame]
// Copyright (c) 2025, 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.
String _uriToStringWithoutEndingSlash(Uri uri) {
String result = uri.toString();
if (result.endsWith('/')) return result.substring(0, result.length - 1);
return result;
}
class LegacyMessages {
static Map<String, dynamic> getAssists(
int id,
Uri file,
int offset, {
int length = 0,
}) {
return {
'id': '$id',
'method': 'edit.getAssists',
'params': {'file': '$file', 'offset': offset, 'length': length},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> getFixes(int id, Uri file, int offset) {
return {
'id': '$id',
'method': 'edit.getFixes',
'params': {'file': '$file', 'offset': offset},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> getFlutterSetSubscriptions(
int id,
List<Uri> files,
) {
return {
'id': '$id',
'method': 'flutter.setSubscriptions',
'params': {
'subscriptions': {
'OUTLINE': [...files.map(_uriToStringWithoutEndingSlash)],
},
// no 'clientRequestTime' on this one it seems.
},
};
}
static Map<String, dynamic> getHover(int id, Uri file, int offset) {
return {
'id': '$id',
'method': 'analysis.getHover',
'params': {'file': '$file', 'offset': offset},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> getSuggestions2(int id, Uri file, int offset) {
return {
'id': '$id',
'method': 'completion.getSuggestions2',
'params': {
'file': '$file',
'offset': offset,
'maxResults': 100,
'completionCaseMatchingMode': 'FIRST_CHAR',
'completionMode': 'BASIC',
'invocationCount': 1,
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> getVersion(int id) {
return {
'id': '$id',
'method': 'server.getVersion',
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> setAnalysisRoots(int id, List<Uri> includes) {
return {
'id': '$id',
'method': 'analysis.setAnalysisRoots',
'params': {
'included': [...includes.map(_uriToStringWithoutEndingSlash)],
'excluded': [],
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> setClientCapabilities(int id) {
return {
'id': '$id',
'method': 'server.setClientCapabilities',
'params': {
'requests': ['openUrlRequest', 'showMessageRequest'],
'supportsUris': true,
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> setPriorityFiles(int id, List<Uri> files) {
return {
'id': '$id',
'method': 'analysis.setPriorityFiles',
'params': {
'files': [...files.map(_uriToStringWithoutEndingSlash)],
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> setSubscriptionsStatus(int id) {
return {
'id': '$id',
'method': 'server.setSubscriptions',
'params': {
'subscriptions': ['STATUS'],
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> updateContent(
int id,
Uri file,
String newContent,
) {
return {
'id': '$id',
'method': 'analysis.updateContent',
'params': {
'files': {
'$file': {'type': 'add', 'content': newContent},
},
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
static Map<String, dynamic> updateOptions(int id) {
return {
'id': '$id',
'method': 'analysis.updateOptions',
'params': {
'options': {
'enableAsync': true,
'enableDeferredLoading': true,
'enableEnums': true,
'enableNullAwareOperators': true,
'generateDart2jsHints': false,
'generateHints': true,
'generateLints': false,
},
},
'clientRequestTime': DateTime.now().millisecondsSinceEpoch,
};
}
}