@lvce-editor/extension-host-worker 8.19.0 → 8.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extension-api/index.js +90 -26
- package/dist/extension-api/parts/Diagnostic/Diagnostic.js +10 -0
- package/dist/extension-api/parts/DiagnosticProvider/DiagnosticProvider.js +0 -0
- package/dist/extension-api/parts/DiagnosticProviderRegistry/DiagnosticProviderRegistry.js +66 -0
- package/dist/extension-api/parts/DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/DiagnosticResult/DiagnosticResult.js +0 -0
- package/dist/extension-api/parts/DiagnosticTextDocument/DiagnosticTextDocument.js +0 -0
- package/dist/extension-api/parts/ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.js +4 -0
- package/dist/extension-api/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +3 -0
- package/dist/extension-api/parts/GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.js +4 -0
- package/dist/extension-api/parts/RegisterDiagnosticProvider/RegisterDiagnosticProvider.js +4 -0
- package/dist/extension-api/parts/RegisteredDiagnosticProvider/RegisteredDiagnosticProvider.js +0 -0
- package/dist/extension-api/parts/ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.js +4 -0
- package/dist/extensionHostWorkerMain.js +30 -4
- package/extension-api/dist/index.d.ts +2 -0
- package/extension-api/dist/index.js +1 -0
- package/extension-api/dist/parts/CommandMap/CommandMap.d.ts +2 -0
- package/extension-api/dist/parts/Diagnostic/Diagnostic.d.ts +9 -0
- package/extension-api/dist/parts/Diagnostic/Diagnostic.js +4 -0
- package/extension-api/dist/parts/DiagnosticProvider/DiagnosticProvider.d.ts +7 -0
- package/extension-api/dist/parts/DiagnosticProvider/DiagnosticProvider.js +1 -0
- package/extension-api/dist/parts/DiagnosticProviderRegistry/DiagnosticProviderRegistry.d.ts +12 -0
- package/extension-api/dist/parts/DiagnosticProviderRegistry/DiagnosticProviderRegistry.js +58 -0
- package/extension-api/dist/parts/DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/DiagnosticResult/DiagnosticResult.d.ts +11 -0
- package/extension-api/dist/parts/DiagnosticResult/DiagnosticResult.js +1 -0
- package/extension-api/dist/parts/DiagnosticTextDocument/DiagnosticTextDocument.d.ts +6 -0
- package/extension-api/dist/parts/DiagnosticTextDocument/DiagnosticTextDocument.js +1 -0
- package/extension-api/dist/parts/ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.d.ts +1 -0
- package/extension-api/dist/parts/ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.js +1 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +2 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +3 -0
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +2 -0
- package/extension-api/dist/parts/GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.d.ts +1 -0
- package/extension-api/dist/parts/GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/RegisterDiagnosticProvider/RegisterDiagnosticProvider.d.ts +1 -0
- package/extension-api/dist/parts/RegisterDiagnosticProvider/RegisterDiagnosticProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredDiagnosticProvider/RegisteredDiagnosticProvider.d.ts +7 -0
- package/extension-api/dist/parts/RegisteredDiagnosticProvider/RegisteredDiagnosticProvider.js +1 -0
- package/extension-api/dist/parts/ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.js +1 -0
- package/extension-api/package.json +1 -1
- package/extension-api/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1148,8 +1148,66 @@ var getCompletionProviderRegistrySnapshot = () => {
|
|
|
1148
1148
|
};
|
|
1149
1149
|
var resetCompletionProviderRegistry = registry.reset;
|
|
1150
1150
|
|
|
1151
|
-
// packages/extension-api/src/parts/
|
|
1151
|
+
// packages/extension-api/src/parts/DiagnosticProviderRegistry/DiagnosticProviderRegistry.ts
|
|
1152
|
+
var getType2 = (value) => {
|
|
1153
|
+
if (value === null) {
|
|
1154
|
+
return "null";
|
|
1155
|
+
}
|
|
1156
|
+
if (typeof value === "string") {
|
|
1157
|
+
return JSON.stringify(value);
|
|
1158
|
+
}
|
|
1159
|
+
if (Array.isArray(value)) {
|
|
1160
|
+
return "array";
|
|
1161
|
+
}
|
|
1162
|
+
return typeof value;
|
|
1163
|
+
};
|
|
1164
|
+
var validateDiagnosticResult = (diagnostics) => {
|
|
1165
|
+
if (!Array.isArray(diagnostics)) {
|
|
1166
|
+
throw new ExtensionApiError(`invalid diagnostic result: diagnostic must be of type array but is ${getType2(diagnostics)}`);
|
|
1167
|
+
}
|
|
1168
|
+
for (const item of diagnostics) {
|
|
1169
|
+
if (!item || typeof item !== "object" || Array.isArray(item)) {
|
|
1170
|
+
throw new ExtensionApiError(`invalid diagnostic result: expected diagnostic item to be of type object but was of type ${getType2(item)}`);
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
return diagnostics;
|
|
1174
|
+
};
|
|
1152
1175
|
var registry2 = createProviderRegistry({
|
|
1176
|
+
mapProvider(provider) {
|
|
1177
|
+
return {
|
|
1178
|
+
id: provider.id,
|
|
1179
|
+
languageId: provider.languageId,
|
|
1180
|
+
provideDiagnostics(textDocument, ...args) {
|
|
1181
|
+
return provider.provideDiagnostics(textDocument, ...args);
|
|
1182
|
+
}
|
|
1183
|
+
};
|
|
1184
|
+
},
|
|
1185
|
+
providerName: "diagnostic provider",
|
|
1186
|
+
requiredMethods: ["provideDiagnostics"],
|
|
1187
|
+
requireLanguageId: true
|
|
1188
|
+
});
|
|
1189
|
+
var hasDiagnosticProvider = registry2.hasProvider;
|
|
1190
|
+
var registerDiagnosticProvider = (provider) => {
|
|
1191
|
+
const registeredProvider = registry2.registerProvider(provider);
|
|
1192
|
+
return {
|
|
1193
|
+
dispose() {
|
|
1194
|
+
registry2.deleteProvider(registeredProvider.id);
|
|
1195
|
+
}
|
|
1196
|
+
};
|
|
1197
|
+
};
|
|
1198
|
+
var executeDiagnosticProvider = async (textDocument, ...args) => {
|
|
1199
|
+
return registry2.executeProviderByLanguageId(textDocument.languageId, "provideDiagnostics", [textDocument, ...args], validateDiagnosticResult);
|
|
1200
|
+
};
|
|
1201
|
+
var getDiagnosticProviders = registry2.getProviders;
|
|
1202
|
+
var getDiagnosticProviderRegistrySnapshot = () => {
|
|
1203
|
+
return {
|
|
1204
|
+
providers: registry2.getProviders()
|
|
1205
|
+
};
|
|
1206
|
+
};
|
|
1207
|
+
var resetDiagnosticProviderRegistry = registry2.reset;
|
|
1208
|
+
|
|
1209
|
+
// packages/extension-api/src/parts/FormattingProviderRegistry/FormattingProviderRegistry.ts
|
|
1210
|
+
var registry3 = createProviderRegistry({
|
|
1153
1211
|
mapProvider(provider) {
|
|
1154
1212
|
return {
|
|
1155
1213
|
format(textDocument, ...args) {
|
|
@@ -1163,25 +1221,25 @@ var registry2 = createProviderRegistry({
|
|
|
1163
1221
|
requiredMethods: ["format"],
|
|
1164
1222
|
requireLanguageId: true
|
|
1165
1223
|
});
|
|
1166
|
-
var hasFormattingProvider =
|
|
1224
|
+
var hasFormattingProvider = registry3.hasProvider;
|
|
1167
1225
|
var registerFormattingProvider = (provider) => {
|
|
1168
|
-
const registeredProvider =
|
|
1226
|
+
const registeredProvider = registry3.registerProvider(provider);
|
|
1169
1227
|
return {
|
|
1170
1228
|
dispose() {
|
|
1171
|
-
|
|
1229
|
+
registry3.deleteProvider(registeredProvider.id);
|
|
1172
1230
|
}
|
|
1173
1231
|
};
|
|
1174
1232
|
};
|
|
1175
1233
|
var executeFormattingProvider = async (textDocument, ...args) => {
|
|
1176
|
-
return
|
|
1234
|
+
return registry3.executeProviderByLanguageId(textDocument.languageId, "format", [textDocument, ...args]);
|
|
1177
1235
|
};
|
|
1178
|
-
var getFormattingProviders =
|
|
1236
|
+
var getFormattingProviders = registry3.getProviders;
|
|
1179
1237
|
var getFormattingProviderRegistrySnapshot = () => {
|
|
1180
1238
|
return {
|
|
1181
|
-
providers:
|
|
1239
|
+
providers: registry3.getProviders()
|
|
1182
1240
|
};
|
|
1183
1241
|
};
|
|
1184
|
-
var resetFormattingProviderRegistry =
|
|
1242
|
+
var resetFormattingProviderRegistry = registry3.reset;
|
|
1185
1243
|
|
|
1186
1244
|
// packages/extension-api/src/parts/Rpc/Rpc.ts
|
|
1187
1245
|
var rpc;
|
|
@@ -1201,7 +1259,7 @@ var notifyStatusBarChange = async (id2) => {
|
|
|
1201
1259
|
};
|
|
1202
1260
|
|
|
1203
1261
|
// packages/extension-api/src/parts/StatusBarItemProviderRegistry/StatusBarItemProviderRegistry.ts
|
|
1204
|
-
var
|
|
1262
|
+
var registry4 = createProviderRegistry({
|
|
1205
1263
|
mapProvider(provider) {
|
|
1206
1264
|
return {
|
|
1207
1265
|
getStatusBarItem() {
|
|
@@ -1219,13 +1277,13 @@ var getStatusBarItem = (provider) => {
|
|
|
1219
1277
|
var isStatusBarItem = (item) => {
|
|
1220
1278
|
return item !== void 0;
|
|
1221
1279
|
};
|
|
1222
|
-
var hasStatusBarItemProvider =
|
|
1280
|
+
var hasStatusBarItemProvider = registry4.hasProvider;
|
|
1223
1281
|
var registerStatusBarItemProvider = (provider) => {
|
|
1224
|
-
const registeredProvider =
|
|
1282
|
+
const registeredProvider = registry4.registerProvider(provider);
|
|
1225
1283
|
void notifyStatusBarChange(registeredProvider.id);
|
|
1226
1284
|
return {
|
|
1227
1285
|
dispose() {
|
|
1228
|
-
|
|
1286
|
+
registry4.deleteProvider(registeredProvider.id);
|
|
1229
1287
|
void notifyStatusBarChange(registeredProvider.id);
|
|
1230
1288
|
},
|
|
1231
1289
|
async refresh() {
|
|
@@ -1233,19 +1291,19 @@ var registerStatusBarItemProvider = (provider) => {
|
|
|
1233
1291
|
}
|
|
1234
1292
|
};
|
|
1235
1293
|
};
|
|
1236
|
-
var getStatusBarItemProviders =
|
|
1294
|
+
var getStatusBarItemProviders = registry4.getProviders;
|
|
1237
1295
|
var getStatusBarItems = () => {
|
|
1238
|
-
return
|
|
1296
|
+
return registry4.getProviders().map(getStatusBarItem).filter(isStatusBarItem);
|
|
1239
1297
|
};
|
|
1240
1298
|
var getStatusBarItemProviderRegistrySnapshot = () => {
|
|
1241
1299
|
return {
|
|
1242
|
-
providers:
|
|
1300
|
+
providers: registry4.getProviders()
|
|
1243
1301
|
};
|
|
1244
1302
|
};
|
|
1245
|
-
var resetStatusBarItemProviderRegistry =
|
|
1303
|
+
var resetStatusBarItemProviderRegistry = registry4.reset;
|
|
1246
1304
|
|
|
1247
1305
|
// packages/extension-api/src/parts/HoverProviderRegistry/HoverProviderRegistry.ts
|
|
1248
|
-
var
|
|
1306
|
+
var getType3 = (value) => {
|
|
1249
1307
|
if (value === null) {
|
|
1250
1308
|
return "null";
|
|
1251
1309
|
}
|
|
@@ -1262,11 +1320,11 @@ var validateHoverResult = (hover) => {
|
|
|
1262
1320
|
return void 0;
|
|
1263
1321
|
}
|
|
1264
1322
|
if (!hover || typeof hover !== "object" || Array.isArray(hover)) {
|
|
1265
|
-
throw new ExtensionApiError(`invalid hover result: hover must be of type object or undefined but is ${
|
|
1323
|
+
throw new ExtensionApiError(`invalid hover result: hover must be of type object or undefined but is ${getType3(hover)}`);
|
|
1266
1324
|
}
|
|
1267
1325
|
return hover;
|
|
1268
1326
|
};
|
|
1269
|
-
var
|
|
1327
|
+
var registry5 = createProviderRegistry({
|
|
1270
1328
|
mapProvider(provider) {
|
|
1271
1329
|
return {
|
|
1272
1330
|
id: provider.id,
|
|
@@ -1280,35 +1338,37 @@ var registry4 = createProviderRegistry({
|
|
|
1280
1338
|
requiredMethods: ["provideHover"],
|
|
1281
1339
|
requireLanguageId: true
|
|
1282
1340
|
});
|
|
1283
|
-
var hasHoverProvider =
|
|
1341
|
+
var hasHoverProvider = registry5.hasProvider;
|
|
1284
1342
|
var registerHoverProvider = (provider) => {
|
|
1285
|
-
const registeredProvider =
|
|
1343
|
+
const registeredProvider = registry5.registerProvider(provider);
|
|
1286
1344
|
return {
|
|
1287
1345
|
dispose() {
|
|
1288
|
-
|
|
1346
|
+
registry5.deleteProvider(registeredProvider.id);
|
|
1289
1347
|
}
|
|
1290
1348
|
};
|
|
1291
1349
|
};
|
|
1292
1350
|
var executeHoverProvider = async (textDocument, offset, ...args) => {
|
|
1293
|
-
return
|
|
1351
|
+
return registry5.executeProviderByLanguageId(textDocument.languageId, "provideHover", [textDocument, offset, ...args], validateHoverResult);
|
|
1294
1352
|
};
|
|
1295
|
-
var getHoverProviders =
|
|
1353
|
+
var getHoverProviders = registry5.getProviders;
|
|
1296
1354
|
var getHoverProviderRegistrySnapshot = () => {
|
|
1297
1355
|
return {
|
|
1298
|
-
providers:
|
|
1356
|
+
providers: registry5.getProviders()
|
|
1299
1357
|
};
|
|
1300
1358
|
};
|
|
1301
|
-
var resetHoverProviderRegistry =
|
|
1359
|
+
var resetHoverProviderRegistry = registry5.reset;
|
|
1302
1360
|
|
|
1303
1361
|
// packages/extension-api/src/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.ts
|
|
1304
1362
|
var commandMap = {
|
|
1305
1363
|
"ExtensionApi.executeCommand": executeCommand,
|
|
1306
1364
|
"ExtensionApi.executeCompletionProvider": executeCompletionProvider,
|
|
1365
|
+
"ExtensionApi.executeDiagnosticProvider": executeDiagnosticProvider,
|
|
1307
1366
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
1308
1367
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
1309
1368
|
"ExtensionApi.executeResolveCompletionItemProvider": executeResolveCompletionItemProvider,
|
|
1310
1369
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
1311
1370
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
1371
|
+
"ExtensionApi.getDiagnosticProviderRegistrySnapshot": getDiagnosticProviderRegistrySnapshot,
|
|
1312
1372
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
1313
1373
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
1314
1374
|
"ExtensionApi.getStatusBarItems": getStatusBarItems
|
|
@@ -1401,20 +1461,24 @@ export {
|
|
|
1401
1461
|
activate,
|
|
1402
1462
|
executeCommand2 as executeCommand,
|
|
1403
1463
|
executeCompletionProvider,
|
|
1464
|
+
executeDiagnosticProvider,
|
|
1404
1465
|
executeFormattingProvider,
|
|
1405
1466
|
executeHoverProvider,
|
|
1406
1467
|
executeResolveCompletionItemProvider,
|
|
1407
1468
|
getCompletionProviderRegistrySnapshot,
|
|
1469
|
+
getDiagnosticProviderRegistrySnapshot,
|
|
1408
1470
|
getFormattingProviderRegistrySnapshot,
|
|
1409
1471
|
getHoverProviderRegistrySnapshot,
|
|
1410
1472
|
getStatusBarItemProviderRegistrySnapshot,
|
|
1411
1473
|
handleExtensionManagementMessagePort2 as handleExtensionManagementMessagePort,
|
|
1412
1474
|
registerCommand,
|
|
1413
1475
|
registerCompletionProvider,
|
|
1476
|
+
registerDiagnosticProvider,
|
|
1414
1477
|
registerFormattingProvider,
|
|
1415
1478
|
registerHoverProvider,
|
|
1416
1479
|
registerStatusBarItemProvider,
|
|
1417
1480
|
resetCompletionProviderRegistry,
|
|
1481
|
+
resetDiagnosticProviderRegistry,
|
|
1418
1482
|
resetFormattingProviderRegistry,
|
|
1419
1483
|
resetHoverProviderRegistry,
|
|
1420
1484
|
resetStatusBarItemProviderRegistry,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { executeDiagnosticProvider } from "../ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.js";
|
|
2
|
+
import { getDiagnosticProviderRegistrySnapshot } from "../GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.js";
|
|
3
|
+
import { registerDiagnosticProvider } from "../RegisterDiagnosticProvider/RegisterDiagnosticProvider.js";
|
|
4
|
+
import { resetDiagnosticProviderRegistry } from "../ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.js";
|
|
5
|
+
export {
|
|
6
|
+
executeDiagnosticProvider,
|
|
7
|
+
getDiagnosticProviderRegistrySnapshot,
|
|
8
|
+
registerDiagnosticProvider,
|
|
9
|
+
resetDiagnosticProviderRegistry
|
|
10
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
import { createProviderRegistry } from "../ProviderRegistry/ProviderRegistry.js";
|
|
3
|
+
const getType = (value) => {
|
|
4
|
+
if (value === null) {
|
|
5
|
+
return "null";
|
|
6
|
+
}
|
|
7
|
+
if (typeof value === "string") {
|
|
8
|
+
return JSON.stringify(value);
|
|
9
|
+
}
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
return "array";
|
|
12
|
+
}
|
|
13
|
+
return typeof value;
|
|
14
|
+
};
|
|
15
|
+
const validateDiagnosticResult = (diagnostics) => {
|
|
16
|
+
if (!Array.isArray(diagnostics)) {
|
|
17
|
+
throw new ExtensionApiError(`invalid diagnostic result: diagnostic must be of type array but is ${getType(diagnostics)}`);
|
|
18
|
+
}
|
|
19
|
+
for (const item of diagnostics) {
|
|
20
|
+
if (!item || typeof item !== "object" || Array.isArray(item)) {
|
|
21
|
+
throw new ExtensionApiError(`invalid diagnostic result: expected diagnostic item to be of type object but was of type ${getType(item)}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return diagnostics;
|
|
25
|
+
};
|
|
26
|
+
const registry = createProviderRegistry({
|
|
27
|
+
mapProvider(provider) {
|
|
28
|
+
return {
|
|
29
|
+
id: provider.id,
|
|
30
|
+
languageId: provider.languageId,
|
|
31
|
+
provideDiagnostics(textDocument, ...args) {
|
|
32
|
+
return provider.provideDiagnostics(textDocument, ...args);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
providerName: "diagnostic provider",
|
|
37
|
+
requiredMethods: ["provideDiagnostics"],
|
|
38
|
+
requireLanguageId: true
|
|
39
|
+
});
|
|
40
|
+
const hasDiagnosticProvider = registry.hasProvider;
|
|
41
|
+
const registerDiagnosticProvider = (provider) => {
|
|
42
|
+
const registeredProvider = registry.registerProvider(provider);
|
|
43
|
+
return {
|
|
44
|
+
dispose() {
|
|
45
|
+
registry.deleteProvider(registeredProvider.id);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
const executeDiagnosticProvider = async (textDocument, ...args) => {
|
|
50
|
+
return registry.executeProviderByLanguageId(textDocument.languageId, "provideDiagnostics", [textDocument, ...args], validateDiagnosticResult);
|
|
51
|
+
};
|
|
52
|
+
const getDiagnosticProviders = registry.getProviders;
|
|
53
|
+
const getDiagnosticProviderRegistrySnapshot = () => {
|
|
54
|
+
return {
|
|
55
|
+
providers: registry.getProviders()
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
const resetDiagnosticProviderRegistry = registry.reset;
|
|
59
|
+
export {
|
|
60
|
+
executeDiagnosticProvider,
|
|
61
|
+
getDiagnosticProviderRegistrySnapshot,
|
|
62
|
+
getDiagnosticProviders,
|
|
63
|
+
hasDiagnosticProvider,
|
|
64
|
+
registerDiagnosticProvider,
|
|
65
|
+
resetDiagnosticProviderRegistry
|
|
66
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { executeCommand, getCommandRegistrySnapshot } from "../CommandRegistry/CommandRegistry.js";
|
|
2
2
|
import { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot } from "../Completion/Completion.js";
|
|
3
|
+
import { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot } from "../Diagnostic/Diagnostic.js";
|
|
3
4
|
import { executeFormattingProvider, getFormattingProviderRegistrySnapshot } from "../Formatting/Formatting.js";
|
|
4
5
|
import { getStatusBarItems } from "../GetStatusBarItems/GetStatusBarItems.js";
|
|
5
6
|
import { executeHoverProvider, getHoverProviderRegistrySnapshot } from "../Hover/Hover.js";
|
|
6
7
|
const commandMap = {
|
|
7
8
|
"ExtensionApi.executeCommand": executeCommand,
|
|
8
9
|
"ExtensionApi.executeCompletionProvider": executeCompletionProvider,
|
|
10
|
+
"ExtensionApi.executeDiagnosticProvider": executeDiagnosticProvider,
|
|
9
11
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
10
12
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
11
13
|
"ExtensionApi.executeResolveCompletionItemProvider": executeResolveCompletionItemProvider,
|
|
12
14
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
13
15
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
16
|
+
"ExtensionApi.getDiagnosticProviderRegistrySnapshot": getDiagnosticProviderRegistrySnapshot,
|
|
14
17
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
15
18
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
16
19
|
"ExtensionApi.getStatusBarItems": getStatusBarItems
|
|
File without changes
|
|
@@ -1991,7 +1991,7 @@ const {
|
|
|
1991
1991
|
const {
|
|
1992
1992
|
executeCompletionProvider,
|
|
1993
1993
|
executeresolveCompletionItemProvider,
|
|
1994
|
-
getProviders: getProviders$
|
|
1994
|
+
getProviders: getProviders$3,
|
|
1995
1995
|
registerCompletionProvider} = create$6({
|
|
1996
1996
|
additionalMethodNames: [
|
|
1997
1997
|
// @ts-ignore
|
|
@@ -2012,7 +2012,7 @@ const {
|
|
|
2012
2012
|
}
|
|
2013
2013
|
});
|
|
2014
2014
|
const getRegisteredCompletionProviderIds$1 = () => {
|
|
2015
|
-
return getProviders$
|
|
2015
|
+
return getProviders$3().map(provider => provider.id);
|
|
2016
2016
|
};
|
|
2017
2017
|
|
|
2018
2018
|
const state$9 = {
|
|
@@ -2236,8 +2236,8 @@ const {
|
|
|
2236
2236
|
|
|
2237
2237
|
const {
|
|
2238
2238
|
executeDiagnosticProvider,
|
|
2239
|
-
|
|
2240
|
-
} = create$6({
|
|
2239
|
+
getProviders: getProviders$2,
|
|
2240
|
+
registerDiagnosticProvider} = create$6({
|
|
2241
2241
|
name: 'Diagnostic',
|
|
2242
2242
|
resultShape: {
|
|
2243
2243
|
items: {
|
|
@@ -2246,6 +2246,9 @@ const {
|
|
|
2246
2246
|
type: Array$1
|
|
2247
2247
|
}
|
|
2248
2248
|
});
|
|
2249
|
+
const getRegisteredDiagnosticProviderIds$1 = () => {
|
|
2250
|
+
return getProviders$2().map(provider => provider.id);
|
|
2251
|
+
};
|
|
2249
2252
|
|
|
2250
2253
|
const RendererWorker = 1;
|
|
2251
2254
|
|
|
@@ -4255,6 +4258,12 @@ const getManifestHoverProviderIds = extension => {
|
|
|
4255
4258
|
}
|
|
4256
4259
|
return extension.hoverProviders.map(provider => provider.id).filter(id => typeof id === 'string');
|
|
4257
4260
|
};
|
|
4261
|
+
const getManifestDiagnosticProviderIds = extension => {
|
|
4262
|
+
if (!Array.isArray(extension.diagnosticProviders)) {
|
|
4263
|
+
return [];
|
|
4264
|
+
}
|
|
4265
|
+
return extension.diagnosticProviders.map(provider => provider.id).filter(id => typeof id === 'string');
|
|
4266
|
+
};
|
|
4258
4267
|
const assertUniqueIds = (ids, label) => {
|
|
4259
4268
|
const seen = new Set();
|
|
4260
4269
|
for (const id of ids) {
|
|
@@ -4280,6 +4289,10 @@ const getNewRegisteredHoverProviderIds = beforeHoverProviderIds => {
|
|
|
4280
4289
|
const before = new Set(beforeHoverProviderIds);
|
|
4281
4290
|
return getRegisteredHoverProviderIds$1().filter(providerId => !before.has(providerId));
|
|
4282
4291
|
};
|
|
4292
|
+
const getNewRegisteredDiagnosticProviderIds = beforeDiagnosticProviderIds => {
|
|
4293
|
+
const before = new Set(beforeDiagnosticProviderIds);
|
|
4294
|
+
return getRegisteredDiagnosticProviderIds$1().filter(providerId => !before.has(providerId));
|
|
4295
|
+
};
|
|
4283
4296
|
const getRegisteredCommandIds = () => {
|
|
4284
4297
|
return getRegisteredCommandIds$1();
|
|
4285
4298
|
};
|
|
@@ -4292,6 +4305,9 @@ const getRegisteredFormattingProviderIds = () => {
|
|
|
4292
4305
|
const getRegisteredHoverProviderIds = () => {
|
|
4293
4306
|
return getRegisteredHoverProviderIds$1();
|
|
4294
4307
|
};
|
|
4308
|
+
const getRegisteredDiagnosticProviderIds = () => {
|
|
4309
|
+
return getRegisteredDiagnosticProviderIds$1();
|
|
4310
|
+
};
|
|
4295
4311
|
const validateIsolatedExtensionContribution = (label, manifestIds, registeredIds) => {
|
|
4296
4312
|
assertUniqueIds(manifestIds, label);
|
|
4297
4313
|
const manifestIdSet = new Set(manifestIds);
|
|
@@ -4339,6 +4355,14 @@ const validateIsolatedExtensionHoverProviders = (extension, beforeHoverProviderI
|
|
|
4339
4355
|
const registeredHoverProviderIds = getNewRegisteredHoverProviderIds(beforeHoverProviderIds);
|
|
4340
4356
|
validateIsolatedExtensionContribution('hover provider', manifestHoverProviderIds, registeredHoverProviderIds);
|
|
4341
4357
|
};
|
|
4358
|
+
const validateIsolatedExtensionDiagnosticProviders = (extension, beforeDiagnosticProviderIds) => {
|
|
4359
|
+
if (!extension.isolated) {
|
|
4360
|
+
return;
|
|
4361
|
+
}
|
|
4362
|
+
const manifestDiagnosticProviderIds = getManifestDiagnosticProviderIds(extension);
|
|
4363
|
+
const registeredDiagnosticProviderIds = getNewRegisteredDiagnosticProviderIds(beforeDiagnosticProviderIds);
|
|
4364
|
+
validateIsolatedExtensionContribution('diagnostic provider', manifestDiagnosticProviderIds, registeredDiagnosticProviderIds);
|
|
4365
|
+
};
|
|
4342
4366
|
|
|
4343
4367
|
// TODO make activation timeout configurable or remove it.
|
|
4344
4368
|
// some extension might do workspace indexing which could take some time
|
|
@@ -4362,11 +4386,13 @@ const activateExtension2 = async (extensionId, extension, absolutePath) => {
|
|
|
4362
4386
|
const activate = module.main || module.activate;
|
|
4363
4387
|
const beforeCommandIds = getRegisteredCommandIds();
|
|
4364
4388
|
const beforeCompletionProviderIds = getRegisteredCompletionProviderIds();
|
|
4389
|
+
const beforeDiagnosticProviderIds = getRegisteredDiagnosticProviderIds();
|
|
4365
4390
|
const beforeFormattingProviderIds = getRegisteredFormattingProviderIds();
|
|
4366
4391
|
const beforeHoverProviderIds = getRegisteredHoverProviderIds();
|
|
4367
4392
|
await Promise.race([activate(extension), rejectAfterTimeout$1(activationTimeout$1, token)]);
|
|
4368
4393
|
validateIsolatedExtensionCommands(extension, beforeCommandIds);
|
|
4369
4394
|
validateIsolatedExtensionCompletionProviders(extension, beforeCompletionProviderIds);
|
|
4395
|
+
validateIsolatedExtensionDiagnosticProviders(extension, beforeDiagnosticProviderIds);
|
|
4370
4396
|
validateIsolatedExtensionFormattingProviders(extension, beforeFormattingProviderIds);
|
|
4371
4397
|
validateIsolatedExtensionHoverProviders(extension, beforeHoverProviderIds);
|
|
4372
4398
|
const endTime = performance.now();
|
|
@@ -3,6 +3,7 @@ export { executeCommand } from './parts/ExecuteCommand/ExecuteCommand.ts';
|
|
|
3
3
|
export { showQuickPick } from './parts/QuickPick/QuickPick.ts';
|
|
4
4
|
export { registerCommand } from './parts/CommandRegistry/CommandRegistry.ts';
|
|
5
5
|
export { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot, registerCompletionProvider, resetCompletionProviderRegistry, } from './parts/Completion/Completion.ts';
|
|
6
|
+
export { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot, registerDiagnosticProvider, resetDiagnosticProviderRegistry, } from './parts/Diagnostic/Diagnostic.ts';
|
|
6
7
|
export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, registerFormattingProvider, resetFormattingProviderRegistry, } from './parts/Formatting/Formatting.ts';
|
|
7
8
|
export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from './parts/Hover/Hover.ts';
|
|
8
9
|
export { getStatusBarItemProviderRegistrySnapshot, registerStatusBarItemProvider, resetStatusBarItemProviderRegistry, } from './parts/StatusBar/StatusBar.ts';
|
|
@@ -11,6 +12,7 @@ export type { Command } from './parts/Command/Command.ts';
|
|
|
11
12
|
export type { CommandCallback } from './parts/CommandCallback/CommandCallback.ts';
|
|
12
13
|
export type { CommandRegistrySnapshot } from './parts/CommandRegistrySnapshot/CommandRegistrySnapshot.ts';
|
|
13
14
|
export type { CompletionItem, CompletionProvider, CompletionProviderRegistrySnapshot, RegisteredCompletionProvider, } from './parts/Completion/Completion.ts';
|
|
15
|
+
export type { Diagnostic, DiagnosticProvider, DiagnosticProviderRegistrySnapshot, RegisteredDiagnosticProvider, } from './parts/Diagnostic/Diagnostic.ts';
|
|
14
16
|
export type { Disposable } from './parts/Disposable/Disposable.ts';
|
|
15
17
|
export type { FormattingEdit, FormattingProvider, FormattingProviderRegistrySnapshot, RegisteredFormattingProvider, } from './parts/Formatting/Formatting.ts';
|
|
16
18
|
export type { HandleExtensionManagementMessagePortOptions } from './parts/HandleExtensionManagementMessagePort/HandleExtensionManagementMessagePort.ts';
|
|
@@ -3,6 +3,7 @@ export { executeCommand } from "./parts/ExecuteCommand/ExecuteCommand.js";
|
|
|
3
3
|
export { showQuickPick } from "./parts/QuickPick/QuickPick.js";
|
|
4
4
|
export { registerCommand } from "./parts/CommandRegistry/CommandRegistry.js";
|
|
5
5
|
export { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot, registerCompletionProvider, resetCompletionProviderRegistry, } from "./parts/Completion/Completion.js";
|
|
6
|
+
export { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot, registerDiagnosticProvider, resetDiagnosticProviderRegistry, } from "./parts/Diagnostic/Diagnostic.js";
|
|
6
7
|
export { executeFormattingProvider, getFormattingProviderRegistrySnapshot, registerFormattingProvider, resetFormattingProviderRegistry, } from "./parts/Formatting/Formatting.js";
|
|
7
8
|
export { executeHoverProvider, getHoverProviderRegistrySnapshot, registerHoverProvider, resetHoverProviderRegistry } from "./parts/Hover/Hover.js";
|
|
8
9
|
export { getStatusBarItemProviderRegistrySnapshot, registerStatusBarItemProvider, resetStatusBarItemProviderRegistry, } from "./parts/StatusBar/StatusBar.js";
|
|
@@ -2,11 +2,13 @@ export declare const commandMap: {
|
|
|
2
2
|
initialize(type: string, port: MessagePort): Promise<void>;
|
|
3
3
|
'ExtensionApi.executeCommand': (id: string, ...args: readonly unknown[]) => Promise<unknown>;
|
|
4
4
|
'ExtensionApi.executeCompletionProvider': (textDocument: import("../CompletionTextDocument/CompletionTextDocument.ts").TextDocument, offset: number, ...args: readonly unknown[]) => Promise<readonly import("../CompletionItem/CompletionItem.ts").CompletionItem[]>;
|
|
5
|
+
'ExtensionApi.executeDiagnosticProvider': (textDocument: import("../DiagnosticTextDocument/DiagnosticTextDocument.ts").TextDocument, ...args: readonly unknown[]) => Promise<readonly import("../DiagnosticResult/DiagnosticResult.ts").Diagnostic[]>;
|
|
5
6
|
'ExtensionApi.executeFormattingProvider': (textDocument: import("../FormattingTextDocument/FormattingTextDocument.ts").TextDocument, ...args: readonly unknown[]) => Promise<readonly import("../FormattingEdit/FormattingEdit.ts").FormattingEdit[]>;
|
|
6
7
|
'ExtensionApi.executeHoverProvider': (textDocument: import("../HoverTextDocument/HoverTextDocument.ts").TextDocument, offset: number, ...args: readonly unknown[]) => Promise<import("../HoverResult/HoverResult.ts").HoverResult | undefined>;
|
|
7
8
|
'ExtensionApi.executeResolveCompletionItemProvider': (textDocument: import("../CompletionTextDocument/CompletionTextDocument.ts").TextDocument, offset: number, name: string, completionItem: import("../CompletionItem/CompletionItem.ts").CompletionItem, ...args: readonly unknown[]) => Promise<import("../CompletionItem/CompletionItem.ts").CompletionItem | undefined>;
|
|
8
9
|
'ExtensionApi.getCommandRegistrySnapshot': () => import("../CommandRegistrySnapshot/CommandRegistrySnapshot.ts").CommandRegistrySnapshot;
|
|
9
10
|
'ExtensionApi.getCompletionProviderRegistrySnapshot': () => import("../CompletionProviderRegistrySnapshot/CompletionProviderRegistrySnapshot.ts").CompletionProviderRegistrySnapshot;
|
|
11
|
+
'ExtensionApi.getDiagnosticProviderRegistrySnapshot': () => import("../DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.ts").DiagnosticProviderRegistrySnapshot;
|
|
10
12
|
'ExtensionApi.getFormattingProviderRegistrySnapshot': () => import("../FormattingProviderRegistrySnapshot/FormattingProviderRegistrySnapshot.ts").FormattingProviderRegistrySnapshot;
|
|
11
13
|
'ExtensionApi.getHoverProviderRegistrySnapshot': () => import("../HoverProviderRegistrySnapshot/HoverProviderRegistrySnapshot.ts").HoverProviderRegistrySnapshot;
|
|
12
14
|
'ExtensionApi.getStatusBarItems': () => readonly import("../StatusBarItem/StatusBarItem.ts").StatusBarItem[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { executeDiagnosticProvider } from '../ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.ts';
|
|
2
|
+
export { getDiagnosticProviderRegistrySnapshot } from '../GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.ts';
|
|
3
|
+
export { registerDiagnosticProvider } from '../RegisterDiagnosticProvider/RegisterDiagnosticProvider.ts';
|
|
4
|
+
export { resetDiagnosticProviderRegistry } from '../ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.ts';
|
|
5
|
+
export type { Diagnostic } from '../DiagnosticResult/DiagnosticResult.ts';
|
|
6
|
+
export type { DiagnosticProvider } from '../DiagnosticProvider/DiagnosticProvider.ts';
|
|
7
|
+
export type { DiagnosticProviderRegistrySnapshot } from '../DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.ts';
|
|
8
|
+
export type { RegisteredDiagnosticProvider } from '../RegisteredDiagnosticProvider/RegisteredDiagnosticProvider.ts';
|
|
9
|
+
export type { TextDocument } from '../DiagnosticTextDocument/DiagnosticTextDocument.ts';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { executeDiagnosticProvider } from "../ExecuteDiagnosticProvider/ExecuteDiagnosticProvider.js";
|
|
2
|
+
export { getDiagnosticProviderRegistrySnapshot } from "../GetDiagnosticProviderRegistrySnapshot/GetDiagnosticProviderRegistrySnapshot.js";
|
|
3
|
+
export { registerDiagnosticProvider } from "../RegisterDiagnosticProvider/RegisterDiagnosticProvider.js";
|
|
4
|
+
export { resetDiagnosticProviderRegistry } from "../ResetDiagnosticProviderRegistry/ResetDiagnosticProviderRegistry.js";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Diagnostic } from '../DiagnosticResult/DiagnosticResult.ts';
|
|
2
|
+
import type { TextDocument } from '../DiagnosticTextDocument/DiagnosticTextDocument.ts';
|
|
3
|
+
export interface DiagnosticProvider {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly languageId: string;
|
|
6
|
+
readonly provideDiagnostics: (textDocument: TextDocument, ...args: readonly unknown[]) => readonly Diagnostic[] | Promise<readonly Diagnostic[]>;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DiagnosticProvider } from '../DiagnosticProvider/DiagnosticProvider.ts';
|
|
2
|
+
import type { DiagnosticProviderRegistrySnapshot } from '../DiagnosticProviderRegistrySnapshot/DiagnosticProviderRegistrySnapshot.ts';
|
|
3
|
+
import type { Diagnostic } from '../DiagnosticResult/DiagnosticResult.ts';
|
|
4
|
+
import type { TextDocument } from '../DiagnosticTextDocument/DiagnosticTextDocument.ts';
|
|
5
|
+
import type { Disposable } from '../Disposable/Disposable.ts';
|
|
6
|
+
import type { RegisteredDiagnosticProvider } from '../RegisteredDiagnosticProvider/RegisteredDiagnosticProvider.ts';
|
|
7
|
+
export declare const hasDiagnosticProvider: (id: string) => boolean;
|
|
8
|
+
export declare const registerDiagnosticProvider: (provider: DiagnosticProvider) => Disposable;
|
|
9
|
+
export declare const executeDiagnosticProvider: (textDocument: TextDocument, ...args: readonly unknown[]) => Promise<readonly Diagnostic[]>;
|
|
10
|
+
export declare const getDiagnosticProviders: () => RegisteredDiagnosticProvider[];
|
|
11
|
+
export declare const getDiagnosticProviderRegistrySnapshot: () => DiagnosticProviderRegistrySnapshot;
|
|
12
|
+
export declare const resetDiagnosticProviderRegistry: () => void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
import { createProviderRegistry } from "../ProviderRegistry/ProviderRegistry.js";
|
|
3
|
+
const getType = (value) => {
|
|
4
|
+
if (value === null) {
|
|
5
|
+
return 'null';
|
|
6
|
+
}
|
|
7
|
+
if (typeof value === 'string') {
|
|
8
|
+
return JSON.stringify(value);
|
|
9
|
+
}
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
return 'array';
|
|
12
|
+
}
|
|
13
|
+
return typeof value;
|
|
14
|
+
};
|
|
15
|
+
const validateDiagnosticResult = (diagnostics) => {
|
|
16
|
+
if (!Array.isArray(diagnostics)) {
|
|
17
|
+
throw new ExtensionApiError(`invalid diagnostic result: diagnostic must be of type array but is ${getType(diagnostics)}`);
|
|
18
|
+
}
|
|
19
|
+
for (const item of diagnostics) {
|
|
20
|
+
if (!item || typeof item !== 'object' || Array.isArray(item)) {
|
|
21
|
+
throw new ExtensionApiError(`invalid diagnostic result: expected diagnostic item to be of type object but was of type ${getType(item)}`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return diagnostics;
|
|
25
|
+
};
|
|
26
|
+
const registry = createProviderRegistry({
|
|
27
|
+
mapProvider(provider) {
|
|
28
|
+
return {
|
|
29
|
+
id: provider.id,
|
|
30
|
+
languageId: provider.languageId,
|
|
31
|
+
provideDiagnostics(textDocument, ...args) {
|
|
32
|
+
return provider.provideDiagnostics(textDocument, ...args);
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
providerName: 'diagnostic provider',
|
|
37
|
+
requiredMethods: ['provideDiagnostics'],
|
|
38
|
+
requireLanguageId: true,
|
|
39
|
+
});
|
|
40
|
+
export const hasDiagnosticProvider = registry.hasProvider;
|
|
41
|
+
export const registerDiagnosticProvider = (provider) => {
|
|
42
|
+
const registeredProvider = registry.registerProvider(provider);
|
|
43
|
+
return {
|
|
44
|
+
dispose() {
|
|
45
|
+
registry.deleteProvider(registeredProvider.id);
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export const executeDiagnosticProvider = async (textDocument, ...args) => {
|
|
50
|
+
return registry.executeProviderByLanguageId(textDocument.languageId, 'provideDiagnostics', [textDocument, ...args], validateDiagnosticResult);
|
|
51
|
+
};
|
|
52
|
+
export const getDiagnosticProviders = registry.getProviders;
|
|
53
|
+
export const getDiagnosticProviderRegistrySnapshot = () => {
|
|
54
|
+
return {
|
|
55
|
+
providers: registry.getProviders(),
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export const resetDiagnosticProviderRegistry = registry.reset;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface Diagnostic {
|
|
2
|
+
readonly code?: number | string;
|
|
3
|
+
readonly columnIndex: number;
|
|
4
|
+
readonly endColumnIndex: number;
|
|
5
|
+
readonly endRowIndex: number;
|
|
6
|
+
readonly message: string;
|
|
7
|
+
readonly rowIndex: number;
|
|
8
|
+
readonly source?: string;
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly uri?: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|