@lvce-editor/extension-host-worker 8.29.0 → 8.32.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 +182 -9
- package/dist/extension-api/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +24 -0
- package/dist/extension-api/parts/Preferences/Preferences.js +11 -0
- package/dist/extension-api/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.js +0 -0
- package/dist/extension-api/parts/SourceControl/SourceControl.js +30 -0
- package/dist/extension-api/parts/SourceControlProvider/SourceControlProvider.js +0 -0
- package/dist/extension-api/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +154 -0
- package/dist/extension-api/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.js +0 -0
- package/dist/extensionHostWorkerMain.js +373 -0
- package/extension-api/dist/index.d.ts +3 -0
- package/extension-api/dist/index.js +2 -0
- package/extension-api/dist/parts/CommandMap/CommandMap.d.ts +11 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +11 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +12 -0
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +11 -0
- package/extension-api/dist/parts/Preferences/Preferences.d.ts +2 -0
- package/extension-api/dist/parts/Preferences/Preferences.js +7 -0
- package/extension-api/dist/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.d.ts +13 -0
- package/extension-api/dist/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.js +1 -0
- package/extension-api/dist/parts/SourceControl/SourceControl.d.ts +4 -0
- package/extension-api/dist/parts/SourceControl/SourceControl.js +1 -0
- package/extension-api/dist/parts/SourceControlProvider/SourceControlProvider.d.ts +13 -0
- package/extension-api/dist/parts/SourceControlProvider/SourceControlProvider.js +1 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.d.ts +16 -0
- package/extension-api/dist/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js +139 -0
- package/extension-api/dist/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.d.ts +5 -0
- package/extension-api/dist/parts/SourceControlProviderRegistrySnapshot/SourceControlProviderRegistrySnapshot.js +1 -0
- package/extension-api/package.json +1 -1
- package/extension-api/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -2
|
@@ -1551,14 +1551,14 @@ var assertOptionalProviderMethod = (provider, providerName, providerId, methodNa
|
|
|
1551
1551
|
};
|
|
1552
1552
|
var createProviderRegistry = ({
|
|
1553
1553
|
mapProvider,
|
|
1554
|
-
optionalMethods = [],
|
|
1554
|
+
optionalMethods: optionalMethods2 = [],
|
|
1555
1555
|
providerName,
|
|
1556
1556
|
requiredMethods,
|
|
1557
1557
|
requireLanguageId = false
|
|
1558
1558
|
}) => {
|
|
1559
|
-
const
|
|
1559
|
+
const providers2 = /* @__PURE__ */ Object.create(null);
|
|
1560
1560
|
const hasProvider = (id2) => {
|
|
1561
|
-
return id2 in
|
|
1561
|
+
return id2 in providers2;
|
|
1562
1562
|
};
|
|
1563
1563
|
const registerProvider = (provider) => {
|
|
1564
1564
|
if (!provider) {
|
|
@@ -1575,21 +1575,21 @@ var createProviderRegistry = ({
|
|
|
1575
1575
|
for (const methodName of requiredMethods) {
|
|
1576
1576
|
assertProviderMethod(providerRecord, providerName, id2, methodName);
|
|
1577
1577
|
}
|
|
1578
|
-
for (const methodName of
|
|
1578
|
+
for (const methodName of optionalMethods2) {
|
|
1579
1579
|
assertOptionalProviderMethod(providerRecord, providerName, id2, methodName);
|
|
1580
1580
|
}
|
|
1581
1581
|
if (hasProvider(id2)) {
|
|
1582
1582
|
throw new ExtensionApiError(`${providerName} ${id2} is already registered`);
|
|
1583
1583
|
}
|
|
1584
1584
|
const registeredProvider = mapProvider(provider);
|
|
1585
|
-
|
|
1585
|
+
providers2[registeredProvider.id] = registeredProvider;
|
|
1586
1586
|
return registeredProvider;
|
|
1587
1587
|
};
|
|
1588
1588
|
const deleteProvider = (id2) => {
|
|
1589
|
-
delete
|
|
1589
|
+
delete providers2[id2];
|
|
1590
1590
|
};
|
|
1591
1591
|
const getProviders = () => {
|
|
1592
|
-
return Object.values(
|
|
1592
|
+
return Object.values(providers2);
|
|
1593
1593
|
};
|
|
1594
1594
|
const getProviderByLanguageId = (languageId) => {
|
|
1595
1595
|
return getProviders().find((provider) => {
|
|
@@ -1597,8 +1597,8 @@ var createProviderRegistry = ({
|
|
|
1597
1597
|
});
|
|
1598
1598
|
};
|
|
1599
1599
|
const reset = () => {
|
|
1600
|
-
for (const id2 of Object.keys(
|
|
1601
|
-
delete
|
|
1600
|
+
for (const id2 of Object.keys(providers2)) {
|
|
1601
|
+
delete providers2[id2];
|
|
1602
1602
|
}
|
|
1603
1603
|
};
|
|
1604
1604
|
const executeProviderByLanguageId = async (languageId, methodName, args, validateResult) => {
|
|
@@ -2003,6 +2003,146 @@ var resetOutputChannelRegistry = () => {
|
|
|
2003
2003
|
isActivated = false;
|
|
2004
2004
|
};
|
|
2005
2005
|
|
|
2006
|
+
// packages/extension-api/src/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.ts
|
|
2007
|
+
var providers = /* @__PURE__ */ Object.create(null);
|
|
2008
|
+
var optionalMethods = [
|
|
2009
|
+
"acceptInput",
|
|
2010
|
+
"add",
|
|
2011
|
+
"discard",
|
|
2012
|
+
"generateCommitMessage",
|
|
2013
|
+
"getFeatures",
|
|
2014
|
+
"getFileBefore",
|
|
2015
|
+
"getFileDecorations",
|
|
2016
|
+
"getGroups",
|
|
2017
|
+
"isActive"
|
|
2018
|
+
];
|
|
2019
|
+
var assertOptionalProviderMethod2 = (provider, providerId, methodName) => {
|
|
2020
|
+
if (provider[methodName] !== void 0 && typeof provider[methodName] !== "function") {
|
|
2021
|
+
throw new ExtensionApiError(`source control provider ${providerId} has invalid ${methodName} function`);
|
|
2022
|
+
}
|
|
2023
|
+
};
|
|
2024
|
+
var assertSourceControlProvider = (provider) => {
|
|
2025
|
+
if (!provider) {
|
|
2026
|
+
throw new ExtensionApiError("source control provider is not defined");
|
|
2027
|
+
}
|
|
2028
|
+
const providerRecord = provider;
|
|
2029
|
+
const { id: id2 } = providerRecord;
|
|
2030
|
+
if (typeof id2 !== "string" || id2.length === 0) {
|
|
2031
|
+
throw new ExtensionApiError("source control provider is missing id");
|
|
2032
|
+
}
|
|
2033
|
+
if (typeof providerRecord.getChangedFiles !== "function") {
|
|
2034
|
+
throw new ExtensionApiError(`source control provider ${id2} is missing getChangedFiles function`);
|
|
2035
|
+
}
|
|
2036
|
+
for (const methodName of optionalMethods) {
|
|
2037
|
+
assertOptionalProviderMethod2(providerRecord, id2, methodName);
|
|
2038
|
+
}
|
|
2039
|
+
if (id2 in providers) {
|
|
2040
|
+
throw new ExtensionApiError(`source control provider ${id2} is already registered`);
|
|
2041
|
+
}
|
|
2042
|
+
};
|
|
2043
|
+
var getProvider = (id2) => {
|
|
2044
|
+
const provider = providers[id2];
|
|
2045
|
+
if (!provider) {
|
|
2046
|
+
throw new ExtensionApiError(`source control provider ${id2} not found`);
|
|
2047
|
+
}
|
|
2048
|
+
return provider;
|
|
2049
|
+
};
|
|
2050
|
+
var mapSourceControlProvider = (provider) => {
|
|
2051
|
+
const registeredProvider = {
|
|
2052
|
+
getChangedFiles: () => provider.getChangedFiles(),
|
|
2053
|
+
id: provider.id
|
|
2054
|
+
};
|
|
2055
|
+
if (provider.acceptInput) {
|
|
2056
|
+
registeredProvider.acceptInput = (value) => provider.acceptInput(value);
|
|
2057
|
+
}
|
|
2058
|
+
if (provider.add) {
|
|
2059
|
+
registeredProvider.add = (path) => provider.add(path);
|
|
2060
|
+
}
|
|
2061
|
+
if (provider.discard) {
|
|
2062
|
+
registeredProvider.discard = (path) => provider.discard(path);
|
|
2063
|
+
}
|
|
2064
|
+
if (provider.generateCommitMessage) {
|
|
2065
|
+
registeredProvider.generateCommitMessage = () => provider.generateCommitMessage();
|
|
2066
|
+
}
|
|
2067
|
+
if (provider.getFeatures) {
|
|
2068
|
+
registeredProvider.getFeatures = () => provider.getFeatures();
|
|
2069
|
+
}
|
|
2070
|
+
if (provider.getFileBefore) {
|
|
2071
|
+
registeredProvider.getFileBefore = (uri) => provider.getFileBefore(uri);
|
|
2072
|
+
}
|
|
2073
|
+
if (provider.getFileDecorations) {
|
|
2074
|
+
registeredProvider.getFileDecorations = (uris) => provider.getFileDecorations(uris);
|
|
2075
|
+
}
|
|
2076
|
+
if (provider.getGroups) {
|
|
2077
|
+
registeredProvider.getGroups = (cwd) => provider.getGroups(cwd);
|
|
2078
|
+
}
|
|
2079
|
+
if (provider.isActive) {
|
|
2080
|
+
registeredProvider.isActive = (scheme, root) => provider.isActive(scheme, root);
|
|
2081
|
+
}
|
|
2082
|
+
return registeredProvider;
|
|
2083
|
+
};
|
|
2084
|
+
var registerSourceControlProvider = (provider) => {
|
|
2085
|
+
assertSourceControlProvider(provider);
|
|
2086
|
+
providers[provider.id] = mapSourceControlProvider(provider);
|
|
2087
|
+
return {
|
|
2088
|
+
dispose() {
|
|
2089
|
+
delete providers[provider.id];
|
|
2090
|
+
}
|
|
2091
|
+
};
|
|
2092
|
+
};
|
|
2093
|
+
var executeSourceControlAcceptInput = async (id2, value) => {
|
|
2094
|
+
return getProvider(id2).acceptInput?.(value);
|
|
2095
|
+
};
|
|
2096
|
+
var executeSourceControlAdd = async (id2, path) => {
|
|
2097
|
+
return getProvider(id2).add?.(path);
|
|
2098
|
+
};
|
|
2099
|
+
var executeSourceControlDiscard = async (id2, path) => {
|
|
2100
|
+
return getProvider(id2).discard?.(path);
|
|
2101
|
+
};
|
|
2102
|
+
var executeSourceControlGenerateCommitMessage = async (id2) => {
|
|
2103
|
+
return getProvider(id2).generateCommitMessage?.();
|
|
2104
|
+
};
|
|
2105
|
+
var executeSourceControlGetChangedFiles = async (id2) => {
|
|
2106
|
+
return getProvider(id2).getChangedFiles();
|
|
2107
|
+
};
|
|
2108
|
+
var executeSourceControlGetFeatures = async (id2) => {
|
|
2109
|
+
return getProvider(id2).getFeatures?.() ?? {};
|
|
2110
|
+
};
|
|
2111
|
+
var executeSourceControlGetFileBefore = async (id2, uri) => {
|
|
2112
|
+
return getProvider(id2).getFileBefore?.(uri);
|
|
2113
|
+
};
|
|
2114
|
+
var executeSourceControlGetFileDecorations = async (id2, uris) => {
|
|
2115
|
+
return getProvider(id2).getFileDecorations?.(uris) ?? [];
|
|
2116
|
+
};
|
|
2117
|
+
var executeSourceControlGetGroups = async (id2, cwd) => {
|
|
2118
|
+
const provider = getProvider(id2);
|
|
2119
|
+
if (provider.getGroups) {
|
|
2120
|
+
return provider.getGroups(cwd);
|
|
2121
|
+
}
|
|
2122
|
+
return [
|
|
2123
|
+
{
|
|
2124
|
+
id: "changes",
|
|
2125
|
+
items: await provider.getChangedFiles(),
|
|
2126
|
+
label: "Changes"
|
|
2127
|
+
}
|
|
2128
|
+
];
|
|
2129
|
+
};
|
|
2130
|
+
var executeSourceControlIsActive = async (id2, scheme, root) => {
|
|
2131
|
+
return Boolean(await getProvider(id2).isActive?.(scheme, root));
|
|
2132
|
+
};
|
|
2133
|
+
var getSourceControlProviderRegistrySnapshot = () => {
|
|
2134
|
+
return {
|
|
2135
|
+
providers: Object.values(providers).map((provider) => ({
|
|
2136
|
+
id: provider.id
|
|
2137
|
+
}))
|
|
2138
|
+
};
|
|
2139
|
+
};
|
|
2140
|
+
var resetSourceControlProviderRegistry = () => {
|
|
2141
|
+
for (const id2 of Object.keys(providers)) {
|
|
2142
|
+
delete providers[id2];
|
|
2143
|
+
}
|
|
2144
|
+
};
|
|
2145
|
+
|
|
2006
2146
|
// packages/extension-api/node_modules/@lvce-editor/virtual-dom-worker/dist/parts/PatchType/PatchType.js
|
|
2007
2147
|
var SetText = 1;
|
|
2008
2148
|
var Replace = 2;
|
|
@@ -2398,6 +2538,16 @@ var commandMap = {
|
|
|
2398
2538
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
2399
2539
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
2400
2540
|
"ExtensionApi.executeResolveCompletionItemProvider": executeResolveCompletionItemProvider,
|
|
2541
|
+
"ExtensionApi.executeSourceControlAcceptInput": executeSourceControlAcceptInput,
|
|
2542
|
+
"ExtensionApi.executeSourceControlAdd": executeSourceControlAdd,
|
|
2543
|
+
"ExtensionApi.executeSourceControlDiscard": executeSourceControlDiscard,
|
|
2544
|
+
"ExtensionApi.executeSourceControlGenerateCommitMessage": executeSourceControlGenerateCommitMessage,
|
|
2545
|
+
"ExtensionApi.executeSourceControlGetChangedFiles": executeSourceControlGetChangedFiles,
|
|
2546
|
+
"ExtensionApi.executeSourceControlGetFeatures": executeSourceControlGetFeatures,
|
|
2547
|
+
"ExtensionApi.executeSourceControlGetFileBefore": executeSourceControlGetFileBefore,
|
|
2548
|
+
"ExtensionApi.executeSourceControlGetFileDecorations": executeSourceControlGetFileDecorations,
|
|
2549
|
+
"ExtensionApi.executeSourceControlGetGroups": executeSourceControlGetGroups,
|
|
2550
|
+
"ExtensionApi.executeSourceControlIsActive": executeSourceControlIsActive,
|
|
2401
2551
|
"ExtensionApi.executeViewProvider": executeViewProvider,
|
|
2402
2552
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
2403
2553
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
@@ -2405,6 +2555,7 @@ var commandMap = {
|
|
|
2405
2555
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
2406
2556
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
2407
2557
|
"ExtensionApi.getOutputChannelRegistrySnapshot": getOutputChannelRegistrySnapshot,
|
|
2558
|
+
"ExtensionApi.getSourceControlProviderRegistrySnapshot": getSourceControlProviderRegistrySnapshot,
|
|
2408
2559
|
"ExtensionApi.getStatusBarItems": getStatusBarItems,
|
|
2409
2560
|
"ExtensionApi.getViewRegistrySnapshot": getViewRegistrySnapshot,
|
|
2410
2561
|
"ExtensionApi.saveViewInstanceState": saveViewInstanceState
|
|
@@ -2488,6 +2639,14 @@ var showQuickPick = async (options) => {
|
|
|
2488
2639
|
return ExtensionManagementWorker_exports.invoke("ExtensionHostQuickPick.showQuickPick", options);
|
|
2489
2640
|
};
|
|
2490
2641
|
|
|
2642
|
+
// packages/extension-api/src/parts/Preferences/Preferences.ts
|
|
2643
|
+
var getPreference = async (key) => {
|
|
2644
|
+
return ExtensionManagementWorker_exports.invoke("Extensions.getPreference", key);
|
|
2645
|
+
};
|
|
2646
|
+
var setPreference = async (key, value) => {
|
|
2647
|
+
await ExtensionManagementWorker_exports.invoke("Extensions.setPreference", key, value);
|
|
2648
|
+
};
|
|
2649
|
+
|
|
2491
2650
|
// packages/extension-api/src/parts/FileSystem/FileSystem.ts
|
|
2492
2651
|
var MemfsPrefix = "memfs://";
|
|
2493
2652
|
var isMemory = (uri) => {
|
|
@@ -2552,6 +2711,16 @@ export {
|
|
|
2552
2711
|
executeFormattingProvider,
|
|
2553
2712
|
executeHoverProvider,
|
|
2554
2713
|
executeResolveCompletionItemProvider,
|
|
2714
|
+
executeSourceControlAcceptInput,
|
|
2715
|
+
executeSourceControlAdd,
|
|
2716
|
+
executeSourceControlDiscard,
|
|
2717
|
+
executeSourceControlGenerateCommitMessage,
|
|
2718
|
+
executeSourceControlGetChangedFiles,
|
|
2719
|
+
executeSourceControlGetFeatures,
|
|
2720
|
+
executeSourceControlGetFileBefore,
|
|
2721
|
+
executeSourceControlGetFileDecorations,
|
|
2722
|
+
executeSourceControlGetGroups,
|
|
2723
|
+
executeSourceControlIsActive,
|
|
2555
2724
|
executeViewProvider,
|
|
2556
2725
|
exists2 as exists,
|
|
2557
2726
|
getCompletionProviderRegistrySnapshot,
|
|
@@ -2559,6 +2728,7 @@ export {
|
|
|
2559
2728
|
getFormattingProviderRegistrySnapshot,
|
|
2560
2729
|
getHoverProviderRegistrySnapshot,
|
|
2561
2730
|
getOutputChannelRegistrySnapshot,
|
|
2731
|
+
getPreference,
|
|
2562
2732
|
getStatusBarItemProviderRegistrySnapshot,
|
|
2563
2733
|
getViewRegistrySnapshot,
|
|
2564
2734
|
handleExtensionManagementMessagePort2 as handleExtensionManagementMessagePort,
|
|
@@ -2570,6 +2740,7 @@ export {
|
|
|
2570
2740
|
registerDiagnosticProvider,
|
|
2571
2741
|
registerFormattingProvider,
|
|
2572
2742
|
registerHoverProvider,
|
|
2743
|
+
registerSourceControlProvider,
|
|
2573
2744
|
registerStatusBarItemProvider,
|
|
2574
2745
|
registerView,
|
|
2575
2746
|
remove4 as remove,
|
|
@@ -2578,9 +2749,11 @@ export {
|
|
|
2578
2749
|
resetFormattingProviderRegistry,
|
|
2579
2750
|
resetHoverProviderRegistry,
|
|
2580
2751
|
resetOutputChannelRegistry,
|
|
2752
|
+
resetSourceControlProviderRegistry,
|
|
2581
2753
|
resetStatusBarItemProviderRegistry,
|
|
2582
2754
|
resetViewRegistry,
|
|
2583
2755
|
saveViewInstanceState,
|
|
2756
|
+
setPreference,
|
|
2584
2757
|
showQuickPick,
|
|
2585
2758
|
writeFile2 as writeFile
|
|
2586
2759
|
};
|
|
@@ -5,6 +5,19 @@ import { executeFormattingProvider, getFormattingProviderRegistrySnapshot } from
|
|
|
5
5
|
import { getStatusBarItems } from "../GetStatusBarItems/GetStatusBarItems.js";
|
|
6
6
|
import { executeHoverProvider, getHoverProviderRegistrySnapshot } from "../Hover/Hover.js";
|
|
7
7
|
import { getOutputChannelRegistrySnapshot } from "../OutputChannel/OutputChannel.js";
|
|
8
|
+
import {
|
|
9
|
+
executeSourceControlAcceptInput,
|
|
10
|
+
executeSourceControlAdd,
|
|
11
|
+
executeSourceControlDiscard,
|
|
12
|
+
executeSourceControlGenerateCommitMessage,
|
|
13
|
+
executeSourceControlGetChangedFiles,
|
|
14
|
+
executeSourceControlGetFeatures,
|
|
15
|
+
executeSourceControlGetFileBefore,
|
|
16
|
+
executeSourceControlGetFileDecorations,
|
|
17
|
+
executeSourceControlGetGroups,
|
|
18
|
+
executeSourceControlIsActive,
|
|
19
|
+
getSourceControlProviderRegistrySnapshot
|
|
20
|
+
} from "../SourceControl/SourceControl.js";
|
|
8
21
|
import {
|
|
9
22
|
createViewInstance,
|
|
10
23
|
dispatchViewEvent,
|
|
@@ -23,6 +36,16 @@ const commandMap = {
|
|
|
23
36
|
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
24
37
|
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
25
38
|
"ExtensionApi.executeResolveCompletionItemProvider": executeResolveCompletionItemProvider,
|
|
39
|
+
"ExtensionApi.executeSourceControlAcceptInput": executeSourceControlAcceptInput,
|
|
40
|
+
"ExtensionApi.executeSourceControlAdd": executeSourceControlAdd,
|
|
41
|
+
"ExtensionApi.executeSourceControlDiscard": executeSourceControlDiscard,
|
|
42
|
+
"ExtensionApi.executeSourceControlGenerateCommitMessage": executeSourceControlGenerateCommitMessage,
|
|
43
|
+
"ExtensionApi.executeSourceControlGetChangedFiles": executeSourceControlGetChangedFiles,
|
|
44
|
+
"ExtensionApi.executeSourceControlGetFeatures": executeSourceControlGetFeatures,
|
|
45
|
+
"ExtensionApi.executeSourceControlGetFileBefore": executeSourceControlGetFileBefore,
|
|
46
|
+
"ExtensionApi.executeSourceControlGetFileDecorations": executeSourceControlGetFileDecorations,
|
|
47
|
+
"ExtensionApi.executeSourceControlGetGroups": executeSourceControlGetGroups,
|
|
48
|
+
"ExtensionApi.executeSourceControlIsActive": executeSourceControlIsActive,
|
|
26
49
|
"ExtensionApi.executeViewProvider": executeViewProvider,
|
|
27
50
|
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
28
51
|
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
@@ -30,6 +53,7 @@ const commandMap = {
|
|
|
30
53
|
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
31
54
|
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
32
55
|
"ExtensionApi.getOutputChannelRegistrySnapshot": getOutputChannelRegistrySnapshot,
|
|
56
|
+
"ExtensionApi.getSourceControlProviderRegistrySnapshot": getSourceControlProviderRegistrySnapshot,
|
|
33
57
|
"ExtensionApi.getStatusBarItems": getStatusBarItems,
|
|
34
58
|
"ExtensionApi.getViewRegistrySnapshot": getViewRegistrySnapshot,
|
|
35
59
|
"ExtensionApi.saveViewInstanceState": saveViewInstanceState
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ExtensionManagementWorker } from "@lvce-editor/rpc-registry";
|
|
2
|
+
const getPreference = async (key) => {
|
|
3
|
+
return ExtensionManagementWorker.invoke("Extensions.getPreference", key);
|
|
4
|
+
};
|
|
5
|
+
const setPreference = async (key, value) => {
|
|
6
|
+
await ExtensionManagementWorker.invoke("Extensions.setPreference", key, value);
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
getPreference,
|
|
10
|
+
setPreference
|
|
11
|
+
};
|
package/dist/extension-api/parts/RegisteredSourceControlProvider/RegisteredSourceControlProvider.js
ADDED
|
File without changes
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
executeSourceControlAcceptInput,
|
|
3
|
+
executeSourceControlAdd,
|
|
4
|
+
executeSourceControlDiscard,
|
|
5
|
+
executeSourceControlGenerateCommitMessage,
|
|
6
|
+
executeSourceControlGetChangedFiles,
|
|
7
|
+
executeSourceControlGetFeatures,
|
|
8
|
+
executeSourceControlGetFileBefore,
|
|
9
|
+
executeSourceControlGetFileDecorations,
|
|
10
|
+
executeSourceControlGetGroups,
|
|
11
|
+
executeSourceControlIsActive,
|
|
12
|
+
getSourceControlProviderRegistrySnapshot,
|
|
13
|
+
registerSourceControlProvider,
|
|
14
|
+
resetSourceControlProviderRegistry
|
|
15
|
+
} from "../SourceControlProviderRegistry/SourceControlProviderRegistry.js";
|
|
16
|
+
export {
|
|
17
|
+
executeSourceControlAcceptInput,
|
|
18
|
+
executeSourceControlAdd,
|
|
19
|
+
executeSourceControlDiscard,
|
|
20
|
+
executeSourceControlGenerateCommitMessage,
|
|
21
|
+
executeSourceControlGetChangedFiles,
|
|
22
|
+
executeSourceControlGetFeatures,
|
|
23
|
+
executeSourceControlGetFileBefore,
|
|
24
|
+
executeSourceControlGetFileDecorations,
|
|
25
|
+
executeSourceControlGetGroups,
|
|
26
|
+
executeSourceControlIsActive,
|
|
27
|
+
getSourceControlProviderRegistrySnapshot,
|
|
28
|
+
registerSourceControlProvider,
|
|
29
|
+
resetSourceControlProviderRegistry
|
|
30
|
+
};
|
|
File without changes
|
package/dist/extension-api/parts/SourceControlProviderRegistry/SourceControlProviderRegistry.js
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
const providers = /* @__PURE__ */ Object.create(null);
|
|
3
|
+
const optionalMethods = [
|
|
4
|
+
"acceptInput",
|
|
5
|
+
"add",
|
|
6
|
+
"discard",
|
|
7
|
+
"generateCommitMessage",
|
|
8
|
+
"getFeatures",
|
|
9
|
+
"getFileBefore",
|
|
10
|
+
"getFileDecorations",
|
|
11
|
+
"getGroups",
|
|
12
|
+
"isActive"
|
|
13
|
+
];
|
|
14
|
+
const assertOptionalProviderMethod = (provider, providerId, methodName) => {
|
|
15
|
+
if (provider[methodName] !== void 0 && typeof provider[methodName] !== "function") {
|
|
16
|
+
throw new ExtensionApiError(`source control provider ${providerId} has invalid ${methodName} function`);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
const assertSourceControlProvider = (provider) => {
|
|
20
|
+
if (!provider) {
|
|
21
|
+
throw new ExtensionApiError("source control provider is not defined");
|
|
22
|
+
}
|
|
23
|
+
const providerRecord = provider;
|
|
24
|
+
const { id } = providerRecord;
|
|
25
|
+
if (typeof id !== "string" || id.length === 0) {
|
|
26
|
+
throw new ExtensionApiError("source control provider is missing id");
|
|
27
|
+
}
|
|
28
|
+
if (typeof providerRecord.getChangedFiles !== "function") {
|
|
29
|
+
throw new ExtensionApiError(`source control provider ${id} is missing getChangedFiles function`);
|
|
30
|
+
}
|
|
31
|
+
for (const methodName of optionalMethods) {
|
|
32
|
+
assertOptionalProviderMethod(providerRecord, id, methodName);
|
|
33
|
+
}
|
|
34
|
+
if (id in providers) {
|
|
35
|
+
throw new ExtensionApiError(`source control provider ${id} is already registered`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const getProvider = (id) => {
|
|
39
|
+
const provider = providers[id];
|
|
40
|
+
if (!provider) {
|
|
41
|
+
throw new ExtensionApiError(`source control provider ${id} not found`);
|
|
42
|
+
}
|
|
43
|
+
return provider;
|
|
44
|
+
};
|
|
45
|
+
const mapSourceControlProvider = (provider) => {
|
|
46
|
+
const registeredProvider = {
|
|
47
|
+
getChangedFiles: () => provider.getChangedFiles(),
|
|
48
|
+
id: provider.id
|
|
49
|
+
};
|
|
50
|
+
if (provider.acceptInput) {
|
|
51
|
+
registeredProvider.acceptInput = (value) => provider.acceptInput(value);
|
|
52
|
+
}
|
|
53
|
+
if (provider.add) {
|
|
54
|
+
registeredProvider.add = (path) => provider.add(path);
|
|
55
|
+
}
|
|
56
|
+
if (provider.discard) {
|
|
57
|
+
registeredProvider.discard = (path) => provider.discard(path);
|
|
58
|
+
}
|
|
59
|
+
if (provider.generateCommitMessage) {
|
|
60
|
+
registeredProvider.generateCommitMessage = () => provider.generateCommitMessage();
|
|
61
|
+
}
|
|
62
|
+
if (provider.getFeatures) {
|
|
63
|
+
registeredProvider.getFeatures = () => provider.getFeatures();
|
|
64
|
+
}
|
|
65
|
+
if (provider.getFileBefore) {
|
|
66
|
+
registeredProvider.getFileBefore = (uri) => provider.getFileBefore(uri);
|
|
67
|
+
}
|
|
68
|
+
if (provider.getFileDecorations) {
|
|
69
|
+
registeredProvider.getFileDecorations = (uris) => provider.getFileDecorations(uris);
|
|
70
|
+
}
|
|
71
|
+
if (provider.getGroups) {
|
|
72
|
+
registeredProvider.getGroups = (cwd) => provider.getGroups(cwd);
|
|
73
|
+
}
|
|
74
|
+
if (provider.isActive) {
|
|
75
|
+
registeredProvider.isActive = (scheme, root) => provider.isActive(scheme, root);
|
|
76
|
+
}
|
|
77
|
+
return registeredProvider;
|
|
78
|
+
};
|
|
79
|
+
const registerSourceControlProvider = (provider) => {
|
|
80
|
+
assertSourceControlProvider(provider);
|
|
81
|
+
providers[provider.id] = mapSourceControlProvider(provider);
|
|
82
|
+
return {
|
|
83
|
+
dispose() {
|
|
84
|
+
delete providers[provider.id];
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
const executeSourceControlAcceptInput = async (id, value) => {
|
|
89
|
+
return getProvider(id).acceptInput?.(value);
|
|
90
|
+
};
|
|
91
|
+
const executeSourceControlAdd = async (id, path) => {
|
|
92
|
+
return getProvider(id).add?.(path);
|
|
93
|
+
};
|
|
94
|
+
const executeSourceControlDiscard = async (id, path) => {
|
|
95
|
+
return getProvider(id).discard?.(path);
|
|
96
|
+
};
|
|
97
|
+
const executeSourceControlGenerateCommitMessage = async (id) => {
|
|
98
|
+
return getProvider(id).generateCommitMessage?.();
|
|
99
|
+
};
|
|
100
|
+
const executeSourceControlGetChangedFiles = async (id) => {
|
|
101
|
+
return getProvider(id).getChangedFiles();
|
|
102
|
+
};
|
|
103
|
+
const executeSourceControlGetFeatures = async (id) => {
|
|
104
|
+
return getProvider(id).getFeatures?.() ?? {};
|
|
105
|
+
};
|
|
106
|
+
const executeSourceControlGetFileBefore = async (id, uri) => {
|
|
107
|
+
return getProvider(id).getFileBefore?.(uri);
|
|
108
|
+
};
|
|
109
|
+
const executeSourceControlGetFileDecorations = async (id, uris) => {
|
|
110
|
+
return getProvider(id).getFileDecorations?.(uris) ?? [];
|
|
111
|
+
};
|
|
112
|
+
const executeSourceControlGetGroups = async (id, cwd) => {
|
|
113
|
+
const provider = getProvider(id);
|
|
114
|
+
if (provider.getGroups) {
|
|
115
|
+
return provider.getGroups(cwd);
|
|
116
|
+
}
|
|
117
|
+
return [
|
|
118
|
+
{
|
|
119
|
+
id: "changes",
|
|
120
|
+
items: await provider.getChangedFiles(),
|
|
121
|
+
label: "Changes"
|
|
122
|
+
}
|
|
123
|
+
];
|
|
124
|
+
};
|
|
125
|
+
const executeSourceControlIsActive = async (id, scheme, root) => {
|
|
126
|
+
return Boolean(await getProvider(id).isActive?.(scheme, root));
|
|
127
|
+
};
|
|
128
|
+
const getSourceControlProviderRegistrySnapshot = () => {
|
|
129
|
+
return {
|
|
130
|
+
providers: Object.values(providers).map((provider) => ({
|
|
131
|
+
id: provider.id
|
|
132
|
+
}))
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
const resetSourceControlProviderRegistry = () => {
|
|
136
|
+
for (const id of Object.keys(providers)) {
|
|
137
|
+
delete providers[id];
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
export {
|
|
141
|
+
executeSourceControlAcceptInput,
|
|
142
|
+
executeSourceControlAdd,
|
|
143
|
+
executeSourceControlDiscard,
|
|
144
|
+
executeSourceControlGenerateCommitMessage,
|
|
145
|
+
executeSourceControlGetChangedFiles,
|
|
146
|
+
executeSourceControlGetFeatures,
|
|
147
|
+
executeSourceControlGetFileBefore,
|
|
148
|
+
executeSourceControlGetFileDecorations,
|
|
149
|
+
executeSourceControlGetGroups,
|
|
150
|
+
executeSourceControlIsActive,
|
|
151
|
+
getSourceControlProviderRegistrySnapshot,
|
|
152
|
+
registerSourceControlProvider,
|
|
153
|
+
resetSourceControlProviderRegistry
|
|
154
|
+
};
|