@lvce-editor/extension-host-worker 8.58.0 → 8.60.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 +112 -35
- package/dist/extension-api/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +5 -0
- package/dist/extension-api/parts/FileSystemProvider/FileSystemProvider.js +0 -0
- package/dist/extension-api/parts/FileSystemProviderRegistry/FileSystemProviderRegistry.js +56 -0
- package/dist/extension-api/parts/FileSystemProviderRegistrySnapshot/FileSystemProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/RegisteredFileSystemProvider/RegisteredFileSystemProvider.js +0 -0
- package/dist/extension-api/parts/SourceControl/SourceControl.js +2 -0
- package/dist/extension-api/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +19 -0
- package/dist/extensionHostWorkerMain.js +70 -20
- package/extension-api/dist/index.d.ts +5 -1
- package/extension-api/dist/index.js +2 -1
- package/extension-api/dist/parts/CommandMap/CommandMap.d.ts +3 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +3 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +5 -1
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +3 -0
- package/extension-api/dist/parts/FileSystemProvider/FileSystemProvider.d.ts +4 -0
- package/extension-api/dist/parts/FileSystemProvider/FileSystemProvider.js +1 -0
- package/extension-api/dist/parts/FileSystemProviderRegistry/FileSystemProviderRegistry.d.ts +7 -0
- package/extension-api/dist/parts/FileSystemProviderRegistry/FileSystemProviderRegistry.js +50 -0
- package/extension-api/dist/parts/FileSystemProviderRegistrySnapshot/FileSystemProviderRegistrySnapshot.d.ts +5 -0
- package/extension-api/dist/parts/FileSystemProviderRegistrySnapshot/FileSystemProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/RegisteredFileSystemProvider/RegisteredFileSystemProvider.d.ts +4 -0
- package/extension-api/dist/parts/RegisteredFileSystemProvider/RegisteredFileSystemProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.d.ts +1 -0
- package/extension-api/dist/parts/ShowQuickPickOptions/ShowQuickPickOptions.d.ts +1 -0
- package/extension-api/dist/parts/SourceControl/SourceControl.d.ts +1 -1
- package/extension-api/dist/parts/SourceControl/SourceControl.js +1 -1
- package/extension-api/dist/parts/SourceControlProvider/SourceControlProvider.d.ts +1 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +18 -0
- package/extension-api/package.json +1 -1
- package/extension-api/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1573,9 +1573,9 @@ var createProviderRegistry = ({
|
|
|
1573
1573
|
requiredMethods,
|
|
1574
1574
|
requireLanguageId = false
|
|
1575
1575
|
}) => {
|
|
1576
|
-
const
|
|
1576
|
+
const providers4 = /* @__PURE__ */ Object.create(null);
|
|
1577
1577
|
const hasProvider = (id2) => {
|
|
1578
|
-
return id2 in
|
|
1578
|
+
return id2 in providers4;
|
|
1579
1579
|
};
|
|
1580
1580
|
const registerProvider2 = (provider) => {
|
|
1581
1581
|
if (!provider) {
|
|
@@ -1599,14 +1599,14 @@ var createProviderRegistry = ({
|
|
|
1599
1599
|
throw new ExtensionApiError(`${providerName} ${id2} is already registered`);
|
|
1600
1600
|
}
|
|
1601
1601
|
const registeredProvider = mapProvider(provider);
|
|
1602
|
-
|
|
1602
|
+
providers4[registeredProvider.id] = registeredProvider;
|
|
1603
1603
|
return registeredProvider;
|
|
1604
1604
|
};
|
|
1605
1605
|
const deleteProvider = (id2) => {
|
|
1606
|
-
delete
|
|
1606
|
+
delete providers4[id2];
|
|
1607
1607
|
};
|
|
1608
1608
|
const getProviders = () => {
|
|
1609
|
-
return Object.values(
|
|
1609
|
+
return Object.values(providers4);
|
|
1610
1610
|
};
|
|
1611
1611
|
const getProviderByLanguageId = (languageId) => {
|
|
1612
1612
|
return getProviders().find((provider) => {
|
|
@@ -1614,8 +1614,8 @@ var createProviderRegistry = ({
|
|
|
1614
1614
|
});
|
|
1615
1615
|
};
|
|
1616
1616
|
const reset = () => {
|
|
1617
|
-
for (const id2 of Object.keys(
|
|
1618
|
-
delete
|
|
1617
|
+
for (const id2 of Object.keys(providers4)) {
|
|
1618
|
+
delete providers4[id2];
|
|
1619
1619
|
}
|
|
1620
1620
|
};
|
|
1621
1621
|
const executeProviderByLanguageId = async (languageId, methodName, args, validateResult) => {
|
|
@@ -1798,6 +1798,57 @@ var getDiagnosticProviderRegistrySnapshot = () => {
|
|
|
1798
1798
|
};
|
|
1799
1799
|
var resetDiagnosticProviderRegistry = registry2.reset;
|
|
1800
1800
|
|
|
1801
|
+
// packages/extension-api/src/parts/FileSystemProviderRegistry/FileSystemProviderRegistry.ts
|
|
1802
|
+
var providers = /* @__PURE__ */ Object.create(null);
|
|
1803
|
+
var assertFileSystemProvider = (provider) => {
|
|
1804
|
+
if (!provider) {
|
|
1805
|
+
throw new ExtensionApiError("file system provider is not defined");
|
|
1806
|
+
}
|
|
1807
|
+
if (typeof provider.id !== "string" || provider.id.length === 0) {
|
|
1808
|
+
throw new ExtensionApiError("file system provider is missing id");
|
|
1809
|
+
}
|
|
1810
|
+
if (typeof provider.readFile !== "function") {
|
|
1811
|
+
throw new ExtensionApiError(`file system provider ${provider.id} is missing readFile function`);
|
|
1812
|
+
}
|
|
1813
|
+
if (provider.id in providers) {
|
|
1814
|
+
throw new ExtensionApiError(`file system provider ${provider.id} is already registered`);
|
|
1815
|
+
}
|
|
1816
|
+
};
|
|
1817
|
+
var getProvider = (id2) => {
|
|
1818
|
+
const provider = providers[id2];
|
|
1819
|
+
if (!provider) {
|
|
1820
|
+
throw new ExtensionApiError(`file system provider ${id2} not found`);
|
|
1821
|
+
}
|
|
1822
|
+
return provider;
|
|
1823
|
+
};
|
|
1824
|
+
var executeFileSystemProviderReadFile = async (id2, uri) => {
|
|
1825
|
+
return getProvider(id2).readFile(uri);
|
|
1826
|
+
};
|
|
1827
|
+
var getFileSystemProviderRegistrySnapshot = () => {
|
|
1828
|
+
return {
|
|
1829
|
+
providers: Object.values(providers).map((provider) => ({
|
|
1830
|
+
id: provider.id
|
|
1831
|
+
}))
|
|
1832
|
+
};
|
|
1833
|
+
};
|
|
1834
|
+
var registerFileSystemProvider = (provider) => {
|
|
1835
|
+
assertFileSystemProvider(provider);
|
|
1836
|
+
providers[provider.id] = {
|
|
1837
|
+
id: provider.id,
|
|
1838
|
+
readFile: (uri) => provider.readFile(uri)
|
|
1839
|
+
};
|
|
1840
|
+
return {
|
|
1841
|
+
dispose() {
|
|
1842
|
+
delete providers[provider.id];
|
|
1843
|
+
}
|
|
1844
|
+
};
|
|
1845
|
+
};
|
|
1846
|
+
var resetFileSystemProviderRegistry = () => {
|
|
1847
|
+
for (const id2 of Object.keys(providers)) {
|
|
1848
|
+
delete providers[id2];
|
|
1849
|
+
}
|
|
1850
|
+
};
|
|
1851
|
+
|
|
1801
1852
|
// packages/extension-api/src/parts/FormattingProviderRegistry/FormattingProviderRegistry.ts
|
|
1802
1853
|
var registry3 = createProviderRegistry({
|
|
1803
1854
|
mapProvider(provider) {
|
|
@@ -1947,9 +1998,9 @@ var getHoverProviderRegistrySnapshot = () => {
|
|
|
1947
1998
|
var resetHoverProviderRegistry = registry5.reset;
|
|
1948
1999
|
|
|
1949
2000
|
// packages/extension-api/src/parts/LanguageProvider/LanguageProvider.ts
|
|
1950
|
-
var
|
|
1951
|
-
var
|
|
1952
|
-
return
|
|
2001
|
+
var providers2 = /* @__PURE__ */ Object.create(null);
|
|
2002
|
+
var getProvider2 = (kind, languageId) => {
|
|
2003
|
+
return providers2[kind]?.find((provider) => provider.languageId === languageId);
|
|
1953
2004
|
};
|
|
1954
2005
|
var registerProvider = (kind, provider, requiredMethods) => {
|
|
1955
2006
|
if (!provider || typeof provider !== "object") {
|
|
@@ -1966,7 +2017,7 @@ var registerProvider = (kind, provider, requiredMethods) => {
|
|
|
1966
2017
|
throw new ExtensionApiError(`${kind} provider ${provider.id} is missing ${methodName} function`);
|
|
1967
2018
|
}
|
|
1968
2019
|
}
|
|
1969
|
-
const kindProviders =
|
|
2020
|
+
const kindProviders = providers2[kind] ||= [];
|
|
1970
2021
|
if (kindProviders.some((registeredProvider) => registeredProvider.id === provider.id)) {
|
|
1971
2022
|
throw new ExtensionApiError(`${kind} provider ${provider.id} is already registered`);
|
|
1972
2023
|
}
|
|
@@ -1981,7 +2032,7 @@ var registerProvider = (kind, provider, requiredMethods) => {
|
|
|
1981
2032
|
};
|
|
1982
2033
|
};
|
|
1983
2034
|
var executeLanguageProvider = async (kind, methodName, textDocument, ...args) => {
|
|
1984
|
-
const provider =
|
|
2035
|
+
const provider = getProvider2(kind, textDocument.languageId);
|
|
1985
2036
|
if (!provider) {
|
|
1986
2037
|
throw new ExtensionApiError(`No ${kind} provider found for ${textDocument.languageId}`);
|
|
1987
2038
|
}
|
|
@@ -1992,7 +2043,7 @@ var executeLanguageProvider = async (kind, methodName, textDocument, ...args) =>
|
|
|
1992
2043
|
return method(textDocument, ...args);
|
|
1993
2044
|
};
|
|
1994
2045
|
var executeOrganizeImportsProvider = async (textDocument) => {
|
|
1995
|
-
const provider =
|
|
2046
|
+
const provider = getProvider2("code action", textDocument.languageId);
|
|
1996
2047
|
if (!provider) {
|
|
1997
2048
|
throw new ExtensionApiError(`No code action provider found for ${textDocument.languageId}`);
|
|
1998
2049
|
}
|
|
@@ -2019,8 +2070,8 @@ var registerSelectionProvider = (provider) => registerProvider("selection", prov
|
|
|
2019
2070
|
var registerTabCompletionProvider = (provider) => registerProvider("tab completion", provider, ["provideTabCompletion"]);
|
|
2020
2071
|
var registerTypeDefinitionProvider = (provider) => registerProvider("type definition", provider, ["provideTypeDefinition"]);
|
|
2021
2072
|
var resetLanguageProviderRegistry = () => {
|
|
2022
|
-
for (const kind of Object.keys(
|
|
2023
|
-
delete
|
|
2073
|
+
for (const kind of Object.keys(providers2)) {
|
|
2074
|
+
delete providers2[kind];
|
|
2024
2075
|
}
|
|
2025
2076
|
};
|
|
2026
2077
|
|
|
@@ -2145,7 +2196,7 @@ var resetOutputChannelRegistry = () => {
|
|
|
2145
2196
|
};
|
|
2146
2197
|
|
|
2147
2198
|
// packages/extension-api/src/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.ts
|
|
2148
|
-
var
|
|
2199
|
+
var providers3 = /* @__PURE__ */ Object.create(null);
|
|
2149
2200
|
var optionalMethods = [
|
|
2150
2201
|
"acceptInput",
|
|
2151
2202
|
"add",
|
|
@@ -2154,6 +2205,7 @@ var optionalMethods = [
|
|
|
2154
2205
|
"getBadgeCount",
|
|
2155
2206
|
"getFeatures",
|
|
2156
2207
|
"getFileBefore",
|
|
2208
|
+
"getFileBeforeUri",
|
|
2157
2209
|
"getFileDecorations",
|
|
2158
2210
|
"getGroups",
|
|
2159
2211
|
"isActive"
|
|
@@ -2178,12 +2230,12 @@ var assertSourceControlProvider = (provider) => {
|
|
|
2178
2230
|
for (const methodName of optionalMethods) {
|
|
2179
2231
|
assertOptionalProviderMethod2(providerRecord, id2, methodName);
|
|
2180
2232
|
}
|
|
2181
|
-
if (id2 in
|
|
2233
|
+
if (id2 in providers3) {
|
|
2182
2234
|
throw new ExtensionApiError(`source control provider ${id2} is already registered`);
|
|
2183
2235
|
}
|
|
2184
2236
|
};
|
|
2185
|
-
var
|
|
2186
|
-
const provider =
|
|
2237
|
+
var getProvider3 = (id2) => {
|
|
2238
|
+
const provider = providers3[id2];
|
|
2187
2239
|
if (!provider) {
|
|
2188
2240
|
throw new ExtensionApiError(`source control provider ${id2} not found`);
|
|
2189
2241
|
}
|
|
@@ -2215,6 +2267,9 @@ var mapSourceControlProvider = (provider) => {
|
|
|
2215
2267
|
if (provider.getFileBefore) {
|
|
2216
2268
|
registeredProvider.getFileBefore = (uri) => provider.getFileBefore(uri);
|
|
2217
2269
|
}
|
|
2270
|
+
if (provider.getFileBeforeUri) {
|
|
2271
|
+
registeredProvider.getFileBeforeUri = (uri) => provider.getFileBeforeUri(uri);
|
|
2272
|
+
}
|
|
2218
2273
|
if (provider.getFileDecorations) {
|
|
2219
2274
|
registeredProvider.getFileDecorations = (uris) => provider.getFileDecorations(uris);
|
|
2220
2275
|
}
|
|
@@ -2228,30 +2283,30 @@ var mapSourceControlProvider = (provider) => {
|
|
|
2228
2283
|
};
|
|
2229
2284
|
var registerSourceControlProvider = (provider) => {
|
|
2230
2285
|
assertSourceControlProvider(provider);
|
|
2231
|
-
|
|
2286
|
+
providers3[provider.id] = mapSourceControlProvider(provider);
|
|
2232
2287
|
return {
|
|
2233
2288
|
dispose() {
|
|
2234
|
-
delete
|
|
2289
|
+
delete providers3[provider.id];
|
|
2235
2290
|
}
|
|
2236
2291
|
};
|
|
2237
2292
|
};
|
|
2238
2293
|
var executeSourceControlAcceptInput = async (id2, value) => {
|
|
2239
|
-
return
|
|
2294
|
+
return getProvider3(id2).acceptInput?.(value);
|
|
2240
2295
|
};
|
|
2241
2296
|
var executeSourceControlAdd = async (id2, path) => {
|
|
2242
|
-
return
|
|
2297
|
+
return getProvider3(id2).add?.(path);
|
|
2243
2298
|
};
|
|
2244
2299
|
var executeSourceControlDiscard = async (id2, path) => {
|
|
2245
|
-
return
|
|
2300
|
+
return getProvider3(id2).discard?.(path);
|
|
2246
2301
|
};
|
|
2247
2302
|
var executeSourceControlGenerateCommitMessage = async (id2) => {
|
|
2248
|
-
return
|
|
2303
|
+
return getProvider3(id2).generateCommitMessage?.();
|
|
2249
2304
|
};
|
|
2250
2305
|
var executeSourceControlGetChangedFiles = async (id2) => {
|
|
2251
|
-
return
|
|
2306
|
+
return getProvider3(id2).getChangedFiles();
|
|
2252
2307
|
};
|
|
2253
2308
|
var executeSourceControlGetBadgeCount = async (id2) => {
|
|
2254
|
-
const provider =
|
|
2309
|
+
const provider = getProvider3(id2);
|
|
2255
2310
|
if (provider.getBadgeCount) {
|
|
2256
2311
|
return provider.getBadgeCount();
|
|
2257
2312
|
}
|
|
@@ -2259,16 +2314,30 @@ var executeSourceControlGetBadgeCount = async (id2) => {
|
|
|
2259
2314
|
return files.length;
|
|
2260
2315
|
};
|
|
2261
2316
|
var executeSourceControlGetFeatures = async (id2) => {
|
|
2262
|
-
return
|
|
2317
|
+
return getProvider3(id2).getFeatures?.() ?? {};
|
|
2263
2318
|
};
|
|
2264
2319
|
var executeSourceControlGetFileBefore = async (id2, uri) => {
|
|
2265
|
-
return
|
|
2320
|
+
return getProvider3(id2).getFileBefore?.(uri);
|
|
2321
|
+
};
|
|
2322
|
+
var executeSourceControlGetFileBeforeUri = async (id2, uri) => {
|
|
2323
|
+
const provider = getProvider3(id2);
|
|
2324
|
+
if (provider.getFileBeforeUri) {
|
|
2325
|
+
return provider.getFileBeforeUri(uri);
|
|
2326
|
+
}
|
|
2327
|
+
const content = await provider.getFileBefore?.(uri);
|
|
2328
|
+
if (content === void 0) {
|
|
2329
|
+
return "data://";
|
|
2330
|
+
}
|
|
2331
|
+
if (typeof content !== "string") {
|
|
2332
|
+
throw new ExtensionApiError(`source control provider ${id2} returned an invalid getFileBefore result`);
|
|
2333
|
+
}
|
|
2334
|
+
return `data://${content}`;
|
|
2266
2335
|
};
|
|
2267
2336
|
var executeSourceControlGetFileDecorations = async (id2, uris) => {
|
|
2268
|
-
return
|
|
2337
|
+
return getProvider3(id2).getFileDecorations?.(uris) ?? [];
|
|
2269
2338
|
};
|
|
2270
2339
|
var executeSourceControlGetGroups = async (id2, cwd) => {
|
|
2271
|
-
const provider =
|
|
2340
|
+
const provider = getProvider3(id2);
|
|
2272
2341
|
if (provider.getGroups) {
|
|
2273
2342
|
return provider.getGroups(cwd);
|
|
2274
2343
|
}
|
|
@@ -2281,18 +2350,18 @@ var executeSourceControlGetGroups = async (id2, cwd) => {
|
|
|
2281
2350
|
];
|
|
2282
2351
|
};
|
|
2283
2352
|
var executeSourceControlIsActive = async (id2, scheme, root) => {
|
|
2284
|
-
return Boolean(await
|
|
2353
|
+
return Boolean(await getProvider3(id2).isActive?.(scheme, root));
|
|
2285
2354
|
};
|
|
2286
2355
|
var getSourceControlProviderRegistrySnapshot = () => {
|
|
2287
2356
|
return {
|
|
2288
|
-
providers: Object.values(
|
|
2357
|
+
providers: Object.values(providers3).map((provider) => ({
|
|
2289
2358
|
id: provider.id
|
|
2290
2359
|
}))
|
|
2291
2360
|
};
|
|
2292
2361
|
};
|
|
2293
2362
|
var resetSourceControlProviderRegistry = () => {
|
|
2294
|
-
for (const id2 of Object.keys(
|
|
2295
|
-
delete
|
|
2363
|
+
for (const id2 of Object.keys(providers3)) {
|
|
2364
|
+
delete providers3[id2];
|
|
2296
2365
|
}
|
|
2297
2366
|
};
|
|
2298
2367
|
|
|
@@ -3115,6 +3184,7 @@ var commandMap = {
|
|
|
3115
3184
|
"ExtensionApi.executeCommand": executeCommand,
|
|
3116
3185
|
"ExtensionApi.executeCompletionProvider": executeCompletionProvider,
|
|
3117
3186
|
"ExtensionApi.executeDiagnosticProvider": executeDiagnosticProvider,
|
|
3187
|
+
"ExtensionApi.executeFileSystemProviderReadFile": executeFileSystemProviderReadFile,
|
|
3118
3188
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
3119
3189
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
3120
3190
|
"ExtensionApi.executeLanguageProvider": executeLanguageProvider,
|
|
@@ -3128,6 +3198,7 @@ var commandMap = {
|
|
|
3128
3198
|
"ExtensionApi.executeSourceControlGetChangedFiles": executeSourceControlGetChangedFiles,
|
|
3129
3199
|
"ExtensionApi.executeSourceControlGetFeatures": executeSourceControlGetFeatures,
|
|
3130
3200
|
"ExtensionApi.executeSourceControlGetFileBefore": executeSourceControlGetFileBefore,
|
|
3201
|
+
"ExtensionApi.executeSourceControlGetFileBeforeUri": executeSourceControlGetFileBeforeUri,
|
|
3131
3202
|
"ExtensionApi.executeSourceControlGetFileDecorations": executeSourceControlGetFileDecorations,
|
|
3132
3203
|
"ExtensionApi.executeSourceControlGetGroups": executeSourceControlGetGroups,
|
|
3133
3204
|
"ExtensionApi.executeSourceControlIsActive": executeSourceControlIsActive,
|
|
@@ -3135,6 +3206,7 @@ var commandMap = {
|
|
|
3135
3206
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
3136
3207
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
3137
3208
|
"ExtensionApi.getDiagnosticProviderRegistrySnapshot": getDiagnosticProviderRegistrySnapshot,
|
|
3209
|
+
"ExtensionApi.getFileSystemProviderRegistrySnapshot": getFileSystemProviderRegistrySnapshot,
|
|
3138
3210
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
3139
3211
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
3140
3212
|
"ExtensionApi.getLanguageServerRegistrySnapshot": getLanguageServerRegistrySnapshot,
|
|
@@ -3510,6 +3582,7 @@ export {
|
|
|
3510
3582
|
executeCommand2 as executeCommand,
|
|
3511
3583
|
executeCompletionProvider,
|
|
3512
3584
|
executeDiagnosticProvider,
|
|
3585
|
+
executeFileSystemProviderReadFile,
|
|
3513
3586
|
executeFormattingProvider,
|
|
3514
3587
|
executeHoverProvider,
|
|
3515
3588
|
executeResolveCompletionItemProvider,
|
|
@@ -3521,6 +3594,7 @@ export {
|
|
|
3521
3594
|
executeSourceControlGetChangedFiles,
|
|
3522
3595
|
executeSourceControlGetFeatures,
|
|
3523
3596
|
executeSourceControlGetFileBefore,
|
|
3597
|
+
executeSourceControlGetFileBeforeUri,
|
|
3524
3598
|
executeSourceControlGetFileDecorations,
|
|
3525
3599
|
executeSourceControlGetGroups,
|
|
3526
3600
|
executeSourceControlIsActive,
|
|
@@ -3529,6 +3603,7 @@ export {
|
|
|
3529
3603
|
getAccessToken,
|
|
3530
3604
|
getCompletionProviderRegistrySnapshot,
|
|
3531
3605
|
getDiagnosticProviderRegistrySnapshot,
|
|
3606
|
+
getFileSystemProviderRegistrySnapshot,
|
|
3532
3607
|
getFormattingProviderRegistrySnapshot,
|
|
3533
3608
|
getHoverProviderRegistrySnapshot,
|
|
3534
3609
|
getLanguageServerRegistrySnapshot,
|
|
@@ -3553,6 +3628,7 @@ export {
|
|
|
3553
3628
|
registerCompletionProvider,
|
|
3554
3629
|
registerDefinitionProvider,
|
|
3555
3630
|
registerDiagnosticProvider,
|
|
3631
|
+
registerFileSystemProvider,
|
|
3556
3632
|
registerFormattingProvider,
|
|
3557
3633
|
registerHoverProvider,
|
|
3558
3634
|
registerImplementationProvider,
|
|
@@ -3569,6 +3645,7 @@ export {
|
|
|
3569
3645
|
renderViewInstance,
|
|
3570
3646
|
resetCompletionProviderRegistry,
|
|
3571
3647
|
resetDiagnosticProviderRegistry,
|
|
3648
|
+
resetFileSystemProviderRegistry,
|
|
3572
3649
|
resetFormattingProviderRegistry,
|
|
3573
3650
|
resetHoverProviderRegistry,
|
|
3574
3651
|
resetLanguageProviderRegistry,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { executeCommand, getCommandRegistrySnapshot } from "../CommandRegistry/CommandRegistry.js";
|
|
2
2
|
import { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot } from "../Completion/Completion.js";
|
|
3
3
|
import { executeDiagnosticProvider, getDiagnosticProviderRegistrySnapshot } from "../Diagnostic/Diagnostic.js";
|
|
4
|
+
import { executeFileSystemProviderReadFile, getFileSystemProviderRegistrySnapshot } from "../FileSystemProviderRegistry/FileSystemProviderRegistry.js";
|
|
4
5
|
import { executeFormattingProvider, getFormattingProviderRegistrySnapshot } from "../Formatting/Formatting.js";
|
|
5
6
|
import { getStatusBarItems } from "../GetStatusBarItems/GetStatusBarItems.js";
|
|
6
7
|
import { executeHoverProvider, getHoverProviderRegistrySnapshot } from "../Hover/Hover.js";
|
|
@@ -16,6 +17,7 @@ import {
|
|
|
16
17
|
executeSourceControlGetChangedFiles,
|
|
17
18
|
executeSourceControlGetFeatures,
|
|
18
19
|
executeSourceControlGetFileBefore,
|
|
20
|
+
executeSourceControlGetFileBeforeUri,
|
|
19
21
|
executeSourceControlGetFileDecorations,
|
|
20
22
|
executeSourceControlGetGroups,
|
|
21
23
|
executeSourceControlIsActive,
|
|
@@ -40,6 +42,7 @@ const commandMap = {
|
|
|
40
42
|
"ExtensionApi.executeCommand": executeCommand,
|
|
41
43
|
"ExtensionApi.executeCompletionProvider": executeCompletionProvider,
|
|
42
44
|
"ExtensionApi.executeDiagnosticProvider": executeDiagnosticProvider,
|
|
45
|
+
"ExtensionApi.executeFileSystemProviderReadFile": executeFileSystemProviderReadFile,
|
|
43
46
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
44
47
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
45
48
|
"ExtensionApi.executeLanguageProvider": executeLanguageProvider,
|
|
@@ -53,6 +56,7 @@ const commandMap = {
|
|
|
53
56
|
"ExtensionApi.executeSourceControlGetChangedFiles": executeSourceControlGetChangedFiles,
|
|
54
57
|
"ExtensionApi.executeSourceControlGetFeatures": executeSourceControlGetFeatures,
|
|
55
58
|
"ExtensionApi.executeSourceControlGetFileBefore": executeSourceControlGetFileBefore,
|
|
59
|
+
"ExtensionApi.executeSourceControlGetFileBeforeUri": executeSourceControlGetFileBeforeUri,
|
|
56
60
|
"ExtensionApi.executeSourceControlGetFileDecorations": executeSourceControlGetFileDecorations,
|
|
57
61
|
"ExtensionApi.executeSourceControlGetGroups": executeSourceControlGetGroups,
|
|
58
62
|
"ExtensionApi.executeSourceControlIsActive": executeSourceControlIsActive,
|
|
@@ -60,6 +64,7 @@ const commandMap = {
|
|
|
60
64
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
61
65
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
62
66
|
"ExtensionApi.getDiagnosticProviderRegistrySnapshot": getDiagnosticProviderRegistrySnapshot,
|
|
67
|
+
"ExtensionApi.getFileSystemProviderRegistrySnapshot": getFileSystemProviderRegistrySnapshot,
|
|
63
68
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
64
69
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
65
70
|
"ExtensionApi.getLanguageServerRegistrySnapshot": getLanguageServerRegistrySnapshot,
|
|
File without changes
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
const providers = /* @__PURE__ */ Object.create(null);
|
|
3
|
+
const assertFileSystemProvider = (provider) => {
|
|
4
|
+
if (!provider) {
|
|
5
|
+
throw new ExtensionApiError("file system provider is not defined");
|
|
6
|
+
}
|
|
7
|
+
if (typeof provider.id !== "string" || provider.id.length === 0) {
|
|
8
|
+
throw new ExtensionApiError("file system provider is missing id");
|
|
9
|
+
}
|
|
10
|
+
if (typeof provider.readFile !== "function") {
|
|
11
|
+
throw new ExtensionApiError(`file system provider ${provider.id} is missing readFile function`);
|
|
12
|
+
}
|
|
13
|
+
if (provider.id in providers) {
|
|
14
|
+
throw new ExtensionApiError(`file system provider ${provider.id} is already registered`);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const getProvider = (id) => {
|
|
18
|
+
const provider = providers[id];
|
|
19
|
+
if (!provider) {
|
|
20
|
+
throw new ExtensionApiError(`file system provider ${id} not found`);
|
|
21
|
+
}
|
|
22
|
+
return provider;
|
|
23
|
+
};
|
|
24
|
+
const executeFileSystemProviderReadFile = async (id, uri) => {
|
|
25
|
+
return getProvider(id).readFile(uri);
|
|
26
|
+
};
|
|
27
|
+
const getFileSystemProviderRegistrySnapshot = () => {
|
|
28
|
+
return {
|
|
29
|
+
providers: Object.values(providers).map((provider) => ({
|
|
30
|
+
id: provider.id
|
|
31
|
+
}))
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
const registerFileSystemProvider = (provider) => {
|
|
35
|
+
assertFileSystemProvider(provider);
|
|
36
|
+
providers[provider.id] = {
|
|
37
|
+
id: provider.id,
|
|
38
|
+
readFile: (uri) => provider.readFile(uri)
|
|
39
|
+
};
|
|
40
|
+
return {
|
|
41
|
+
dispose() {
|
|
42
|
+
delete providers[provider.id];
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
const resetFileSystemProviderRegistry = () => {
|
|
47
|
+
for (const id of Object.keys(providers)) {
|
|
48
|
+
delete providers[id];
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
export {
|
|
52
|
+
executeFileSystemProviderReadFile,
|
|
53
|
+
getFileSystemProviderRegistrySnapshot,
|
|
54
|
+
registerFileSystemProvider,
|
|
55
|
+
resetFileSystemProviderRegistry
|
|
56
|
+
};
|
|
File without changes
|
|
File without changes
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
executeSourceControlGetChangedFiles,
|
|
8
8
|
executeSourceControlGetFeatures,
|
|
9
9
|
executeSourceControlGetFileBefore,
|
|
10
|
+
executeSourceControlGetFileBeforeUri,
|
|
10
11
|
executeSourceControlGetFileDecorations,
|
|
11
12
|
executeSourceControlGetGroups,
|
|
12
13
|
executeSourceControlIsActive,
|
|
@@ -23,6 +24,7 @@ export {
|
|
|
23
24
|
executeSourceControlGetChangedFiles,
|
|
24
25
|
executeSourceControlGetFeatures,
|
|
25
26
|
executeSourceControlGetFileBefore,
|
|
27
|
+
executeSourceControlGetFileBeforeUri,
|
|
26
28
|
executeSourceControlGetFileDecorations,
|
|
27
29
|
executeSourceControlGetGroups,
|
|
28
30
|
executeSourceControlIsActive,
|
package/dist/extension-api/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js
CHANGED
|
@@ -8,6 +8,7 @@ const optionalMethods = [
|
|
|
8
8
|
"getBadgeCount",
|
|
9
9
|
"getFeatures",
|
|
10
10
|
"getFileBefore",
|
|
11
|
+
"getFileBeforeUri",
|
|
11
12
|
"getFileDecorations",
|
|
12
13
|
"getGroups",
|
|
13
14
|
"isActive"
|
|
@@ -69,6 +70,9 @@ const mapSourceControlProvider = (provider) => {
|
|
|
69
70
|
if (provider.getFileBefore) {
|
|
70
71
|
registeredProvider.getFileBefore = (uri) => provider.getFileBefore(uri);
|
|
71
72
|
}
|
|
73
|
+
if (provider.getFileBeforeUri) {
|
|
74
|
+
registeredProvider.getFileBeforeUri = (uri) => provider.getFileBeforeUri(uri);
|
|
75
|
+
}
|
|
72
76
|
if (provider.getFileDecorations) {
|
|
73
77
|
registeredProvider.getFileDecorations = (uris) => provider.getFileDecorations(uris);
|
|
74
78
|
}
|
|
@@ -118,6 +122,20 @@ const executeSourceControlGetFeatures = async (id) => {
|
|
|
118
122
|
const executeSourceControlGetFileBefore = async (id, uri) => {
|
|
119
123
|
return getProvider(id).getFileBefore?.(uri);
|
|
120
124
|
};
|
|
125
|
+
const executeSourceControlGetFileBeforeUri = async (id, uri) => {
|
|
126
|
+
const provider = getProvider(id);
|
|
127
|
+
if (provider.getFileBeforeUri) {
|
|
128
|
+
return provider.getFileBeforeUri(uri);
|
|
129
|
+
}
|
|
130
|
+
const content = await provider.getFileBefore?.(uri);
|
|
131
|
+
if (content === void 0) {
|
|
132
|
+
return "data://";
|
|
133
|
+
}
|
|
134
|
+
if (typeof content !== "string") {
|
|
135
|
+
throw new ExtensionApiError(`source control provider ${id} returned an invalid getFileBefore result`);
|
|
136
|
+
}
|
|
137
|
+
return `data://${content}`;
|
|
138
|
+
};
|
|
121
139
|
const executeSourceControlGetFileDecorations = async (id, uris) => {
|
|
122
140
|
return getProvider(id).getFileDecorations?.(uris) ?? [];
|
|
123
141
|
};
|
|
@@ -158,6 +176,7 @@ export {
|
|
|
158
176
|
executeSourceControlGetChangedFiles,
|
|
159
177
|
executeSourceControlGetFeatures,
|
|
160
178
|
executeSourceControlGetFileBefore,
|
|
179
|
+
executeSourceControlGetFileBeforeUri,
|
|
161
180
|
executeSourceControlGetFileDecorations,
|
|
162
181
|
executeSourceControlGetGroups,
|
|
163
182
|
executeSourceControlIsActive,
|