@lvce-editor/extension-host-worker 8.16.0 → 8.18.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 +1422 -0
- package/dist/extension-api/parts/Activation/Activation.js +13 -0
- package/dist/extension-api/parts/AssertCompletionProvider/AssertCompletionProvider.js +25 -0
- package/dist/extension-api/parts/AssertFormattingProvider/AssertFormattingProvider.js +22 -0
- package/dist/extension-api/parts/AssertStatusBarItemProvider/AssertStatusBarItemProvider.js +19 -0
- package/dist/extension-api/parts/Command/Command.js +0 -0
- package/dist/extension-api/parts/CommandCallback/CommandCallback.js +0 -0
- package/dist/extension-api/parts/CommandMap/CommandMap.js +14 -0
- package/dist/extension-api/parts/CommandRegistry/CommandRegistry.js +53 -0
- package/dist/extension-api/parts/CommandRegistrySnapshot/CommandRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/Completion/Completion.js +11 -0
- package/dist/extension-api/parts/CompletionItem/CompletionItem.js +0 -0
- package/dist/extension-api/parts/CompletionProvider/CompletionProvider.js +0 -0
- package/dist/extension-api/parts/CompletionProviderRegistry/CompletionProviderRegistry.js +78 -0
- package/dist/extension-api/parts/CompletionProviderRegistrySnapshot/CompletionProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/CompletionProviderState/CompletionProviderState.js +10 -0
- package/dist/extension-api/parts/CompletionTextDocument/CompletionTextDocument.js +0 -0
- package/dist/extension-api/parts/Disposable/Disposable.js +0 -0
- package/dist/extension-api/parts/ExecuteCommand/ExecuteCommand.js +7 -0
- package/dist/extension-api/parts/ExecuteCompletionProvider/ExecuteCompletionProvider.js +5 -0
- package/dist/extension-api/parts/ExecuteFormattingProvider/ExecuteFormattingProvider.js +4 -0
- package/dist/extension-api/parts/ExecuteHoverProvider/ExecuteHoverProvider.js +4 -0
- package/dist/extension-api/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +20 -0
- package/dist/extension-api/parts/ExtensionApiError/ExtensionApiError.js +9 -0
- package/dist/extension-api/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.js +15 -0
- package/dist/extension-api/parts/ExtensionApiWorkerHandleMessagePort/ExtensionApiWorkerHandleMessagePort.js +21 -0
- package/dist/extension-api/parts/ExtensionApiWorkerListen/ExtensionApiWorkerListen.js +11 -0
- package/dist/extension-api/parts/Formatting/Formatting.js +10 -0
- package/dist/extension-api/parts/FormattingEdit/FormattingEdit.js +0 -0
- package/dist/extension-api/parts/FormattingProvider/FormattingProvider.js +0 -0
- package/dist/extension-api/parts/FormattingProviderRegistry/FormattingProviderRegistry.js +42 -0
- package/dist/extension-api/parts/FormattingProviderRegistrySnapshot/FormattingProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/FormattingProviderState/FormattingProviderState.js +10 -0
- package/dist/extension-api/parts/FormattingTextDocument/FormattingTextDocument.js +0 -0
- package/dist/extension-api/parts/GetCompletionProviderRegistrySnapshot/GetCompletionProviderRegistrySnapshot.js +4 -0
- package/dist/extension-api/parts/GetFormattingProviderRegistrySnapshot/GetFormattingProviderRegistrySnapshot.js +4 -0
- package/dist/extension-api/parts/GetHoverProviderRegistrySnapshot/GetHoverProviderRegistrySnapshot.js +4 -0
- package/dist/extension-api/parts/GetStatusBarItemProviderRegistrySnapshot/GetStatusBarItemProviderRegistrySnapshot.js +4 -0
- package/dist/extension-api/parts/GetStatusBarItems/GetStatusBarItems.js +4 -0
- package/dist/extension-api/parts/HandleExtensionManagementMessagePort/HandleExtensionManagementMessagePort.js +17 -0
- package/dist/extension-api/parts/Hover/Hover.js +10 -0
- package/dist/extension-api/parts/HoverProvider/HoverProvider.js +0 -0
- package/dist/extension-api/parts/HoverProviderRegistry/HoverProviderRegistry.js +64 -0
- package/dist/extension-api/parts/HoverProviderRegistrySnapshot/HoverProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/HoverResult/HoverResult.js +0 -0
- package/dist/extension-api/parts/HoverTextDocument/HoverTextDocument.js +0 -0
- package/dist/extension-api/parts/NotifyStatusBarChange/NotifyStatusBarChange.js +7 -0
- package/dist/extension-api/parts/ProviderRegistry/ProviderRegistry.js +95 -0
- package/dist/extension-api/parts/QuickPick/QuickPick.js +7 -0
- package/dist/extension-api/parts/QuickPickItem/QuickPickItem.js +0 -0
- package/dist/extension-api/parts/RegisterCompletionProvider/RegisterCompletionProvider.js +4 -0
- package/dist/extension-api/parts/RegisterFormattingProvider/RegisterFormattingProvider.js +4 -0
- package/dist/extension-api/parts/RegisterHoverProvider/RegisterHoverProvider.js +4 -0
- package/dist/extension-api/parts/RegisterStatusBarItemProvider/RegisterStatusBarItemProvider.js +4 -0
- package/dist/extension-api/parts/RegisteredCommand/RegisteredCommand.js +0 -0
- package/dist/extension-api/parts/RegisteredCompletionProvider/RegisteredCompletionProvider.js +0 -0
- package/dist/extension-api/parts/RegisteredFormattingProvider/RegisteredFormattingProvider.js +0 -0
- package/dist/extension-api/parts/RegisteredHoverProvider/RegisteredHoverProvider.js +0 -0
- package/dist/extension-api/parts/RegisteredStatusBarItemProvider/RegisteredStatusBarItemProvider.js +0 -0
- package/dist/extension-api/parts/ResetCompletionProviderRegistry/ResetCompletionProviderRegistry.js +4 -0
- package/dist/extension-api/parts/ResetFormattingProviderRegistry/ResetFormattingProviderRegistry.js +4 -0
- package/dist/extension-api/parts/ResetHoverProviderRegistry/ResetHoverProviderRegistry.js +4 -0
- package/dist/extension-api/parts/ResetStatusBarItemProviderRegistry/ResetStatusBarItemProviderRegistry.js +4 -0
- package/dist/extension-api/parts/Rpc/Rpc.js +14 -0
- package/dist/extension-api/parts/ShowQuickPickOptions/ShowQuickPickOptions.js +0 -0
- package/dist/extension-api/parts/StatusBar/StatusBar.js +8 -0
- package/dist/extension-api/parts/StatusBarItem/StatusBarItem.js +0 -0
- package/dist/extension-api/parts/StatusBarItemProvider/StatusBarItemProvider.js +0 -0
- package/dist/extension-api/parts/StatusBarItemProviderHandle/StatusBarItemProviderHandle.js +0 -0
- package/dist/extension-api/parts/StatusBarItemProviderRegistry/StatusBarItemProviderRegistry.js +52 -0
- package/dist/extension-api/parts/StatusBarItemProviderRegistrySnapshot/StatusBarItemProviderRegistrySnapshot.js +0 -0
- package/dist/extension-api/parts/StatusBarItemProviderState/StatusBarItemProviderState.js +10 -0
- package/dist/extensionHostWorkerMain.js +1412 -1235
- package/extension-api/LICENSE +21 -0
- package/extension-api/README.md +23 -0
- package/extension-api/dist/index.d.ts +20 -0
- package/extension-api/dist/index.js +9 -0
- package/extension-api/dist/parts/Activation/Activation.d.ts +1 -0
- package/extension-api/dist/parts/Activation/Activation.js +10 -0
- package/extension-api/dist/parts/AssertCompletionProvider/AssertCompletionProvider.d.ts +2 -0
- package/extension-api/dist/parts/AssertCompletionProvider/AssertCompletionProvider.js +22 -0
- package/extension-api/dist/parts/AssertFormattingProvider/AssertFormattingProvider.d.ts +2 -0
- package/extension-api/dist/parts/AssertFormattingProvider/AssertFormattingProvider.js +19 -0
- package/extension-api/dist/parts/AssertStatusBarItemProvider/AssertStatusBarItemProvider.d.ts +2 -0
- package/extension-api/dist/parts/AssertStatusBarItemProvider/AssertStatusBarItemProvider.js +16 -0
- package/extension-api/dist/parts/Command/Command.d.ts +5 -0
- package/extension-api/dist/parts/Command/Command.js +1 -0
- package/extension-api/dist/parts/CommandCallback/CommandCallback.d.ts +1 -0
- package/extension-api/dist/parts/CommandCallback/CommandCallback.js +1 -0
- package/extension-api/dist/parts/CommandMap/CommandMap.d.ts +13 -0
- package/extension-api/dist/parts/CommandMap/CommandMap.js +11 -0
- package/extension-api/dist/parts/CommandRegistry/CommandRegistry.d.ts +7 -0
- package/extension-api/dist/parts/CommandRegistry/CommandRegistry.js +47 -0
- package/extension-api/dist/parts/CommandRegistrySnapshot/CommandRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/CommandRegistrySnapshot/CommandRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/Completion/Completion.d.ts +9 -0
- package/extension-api/dist/parts/Completion/Completion.js +4 -0
- package/extension-api/dist/parts/CompletionItem/CompletionItem.d.ts +3 -0
- package/extension-api/dist/parts/CompletionItem/CompletionItem.js +1 -0
- package/extension-api/dist/parts/CompletionProvider/CompletionProvider.d.ts +8 -0
- package/extension-api/dist/parts/CompletionProvider/CompletionProvider.js +1 -0
- package/extension-api/dist/parts/CompletionProviderRegistry/CompletionProviderRegistry.d.ts +13 -0
- package/extension-api/dist/parts/CompletionProviderRegistry/CompletionProviderRegistry.js +66 -0
- package/extension-api/dist/parts/CompletionProviderRegistrySnapshot/CompletionProviderRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/CompletionProviderRegistrySnapshot/CompletionProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/CompletionProviderState/CompletionProviderState.d.ts +1 -0
- package/extension-api/dist/parts/CompletionProviderState/CompletionProviderState.js +1 -0
- package/extension-api/dist/parts/CompletionTextDocument/CompletionTextDocument.d.ts +6 -0
- package/extension-api/dist/parts/CompletionTextDocument/CompletionTextDocument.js +1 -0
- package/extension-api/dist/parts/Disposable/Disposable.d.ts +3 -0
- package/extension-api/dist/parts/Disposable/Disposable.js +1 -0
- package/extension-api/dist/parts/ExecuteCommand/ExecuteCommand.d.ts +1 -0
- package/extension-api/dist/parts/ExecuteCommand/ExecuteCommand.js +4 -0
- package/extension-api/dist/parts/ExecuteCompletionProvider/ExecuteCompletionProvider.d.ts +1 -0
- package/extension-api/dist/parts/ExecuteCompletionProvider/ExecuteCompletionProvider.js +1 -0
- package/extension-api/dist/parts/ExecuteFormattingProvider/ExecuteFormattingProvider.d.ts +1 -0
- package/extension-api/dist/parts/ExecuteFormattingProvider/ExecuteFormattingProvider.js +1 -0
- package/extension-api/dist/parts/ExecuteHoverProvider/ExecuteHoverProvider.d.ts +1 -0
- package/extension-api/dist/parts/ExecuteHoverProvider/ExecuteHoverProvider.js +1 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.d.ts +12 -0
- package/extension-api/dist/parts/ExtensionApiCommandMap/ExtensionApiCommandMap.js +17 -0
- package/extension-api/dist/parts/ExtensionApiError/ExtensionApiError.d.ts +3 -0
- package/extension-api/dist/parts/ExtensionApiError/ExtensionApiError.js +6 -0
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.d.ts +14 -0
- package/extension-api/dist/parts/ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.js +12 -0
- package/extension-api/dist/parts/ExtensionApiWorkerHandleMessagePort/ExtensionApiWorkerHandleMessagePort.d.ts +1 -0
- package/extension-api/dist/parts/ExtensionApiWorkerHandleMessagePort/ExtensionApiWorkerHandleMessagePort.js +18 -0
- package/extension-api/dist/parts/ExtensionApiWorkerListen/ExtensionApiWorkerListen.d.ts +2 -0
- package/extension-api/dist/parts/ExtensionApiWorkerListen/ExtensionApiWorkerListen.js +8 -0
- package/extension-api/dist/parts/Formatting/Formatting.d.ts +9 -0
- package/extension-api/dist/parts/Formatting/Formatting.js +4 -0
- package/extension-api/dist/parts/FormattingEdit/FormattingEdit.d.ts +5 -0
- package/extension-api/dist/parts/FormattingEdit/FormattingEdit.js +1 -0
- package/extension-api/dist/parts/FormattingProvider/FormattingProvider.d.ts +7 -0
- package/extension-api/dist/parts/FormattingProvider/FormattingProvider.js +1 -0
- package/extension-api/dist/parts/FormattingProviderRegistry/FormattingProviderRegistry.d.ts +12 -0
- package/extension-api/dist/parts/FormattingProviderRegistry/FormattingProviderRegistry.js +34 -0
- package/extension-api/dist/parts/FormattingProviderRegistrySnapshot/FormattingProviderRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/FormattingProviderRegistrySnapshot/FormattingProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/FormattingProviderState/FormattingProviderState.d.ts +1 -0
- package/extension-api/dist/parts/FormattingProviderState/FormattingProviderState.js +1 -0
- package/extension-api/dist/parts/FormattingTextDocument/FormattingTextDocument.d.ts +6 -0
- package/extension-api/dist/parts/FormattingTextDocument/FormattingTextDocument.js +1 -0
- package/extension-api/dist/parts/GetCompletionProviderRegistrySnapshot/GetCompletionProviderRegistrySnapshot.d.ts +1 -0
- package/extension-api/dist/parts/GetCompletionProviderRegistrySnapshot/GetCompletionProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/GetFormattingProviderRegistrySnapshot/GetFormattingProviderRegistrySnapshot.d.ts +1 -0
- package/extension-api/dist/parts/GetFormattingProviderRegistrySnapshot/GetFormattingProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/GetHoverProviderRegistrySnapshot/GetHoverProviderRegistrySnapshot.d.ts +1 -0
- package/extension-api/dist/parts/GetHoverProviderRegistrySnapshot/GetHoverProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/GetStatusBarItemProviderRegistrySnapshot/GetStatusBarItemProviderRegistrySnapshot.d.ts +1 -0
- package/extension-api/dist/parts/GetStatusBarItemProviderRegistrySnapshot/GetStatusBarItemProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/GetStatusBarItems/GetStatusBarItems.d.ts +1 -0
- package/extension-api/dist/parts/GetStatusBarItems/GetStatusBarItems.js +1 -0
- package/extension-api/dist/parts/HandleExtensionManagementMessagePort/HandleExtensionManagementMessagePort.d.ts +9 -0
- package/extension-api/dist/parts/HandleExtensionManagementMessagePort/HandleExtensionManagementMessagePort.js +10 -0
- package/extension-api/dist/parts/Hover/Hover.d.ts +9 -0
- package/extension-api/dist/parts/Hover/Hover.js +4 -0
- package/extension-api/dist/parts/HoverProvider/HoverProvider.d.ts +7 -0
- package/extension-api/dist/parts/HoverProvider/HoverProvider.js +1 -0
- package/extension-api/dist/parts/HoverProviderRegistry/HoverProviderRegistry.d.ts +12 -0
- package/extension-api/dist/parts/HoverProviderRegistry/HoverProviderRegistry.js +56 -0
- package/extension-api/dist/parts/HoverProviderRegistrySnapshot/HoverProviderRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/HoverProviderRegistrySnapshot/HoverProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/HoverResult/HoverResult.d.ts +6 -0
- package/extension-api/dist/parts/HoverResult/HoverResult.js +1 -0
- package/extension-api/dist/parts/HoverTextDocument/HoverTextDocument.d.ts +6 -0
- package/extension-api/dist/parts/HoverTextDocument/HoverTextDocument.js +1 -0
- package/extension-api/dist/parts/NotifyStatusBarChange/NotifyStatusBarChange.d.ts +1 -0
- package/extension-api/dist/parts/NotifyStatusBarChange/NotifyStatusBarChange.js +4 -0
- package/extension-api/dist/parts/ProviderRegistry/ProviderRegistry.d.ts +21 -0
- package/extension-api/dist/parts/ProviderRegistry/ProviderRegistry.js +86 -0
- package/extension-api/dist/parts/QuickPick/QuickPick.d.ts +2 -0
- package/extension-api/dist/parts/QuickPick/QuickPick.js +4 -0
- package/extension-api/dist/parts/QuickPickItem/QuickPickItem.d.ts +5 -0
- package/extension-api/dist/parts/QuickPickItem/QuickPickItem.js +1 -0
- package/extension-api/dist/parts/RegisterCompletionProvider/RegisterCompletionProvider.d.ts +1 -0
- package/extension-api/dist/parts/RegisterCompletionProvider/RegisterCompletionProvider.js +1 -0
- package/extension-api/dist/parts/RegisterFormattingProvider/RegisterFormattingProvider.d.ts +1 -0
- package/extension-api/dist/parts/RegisterFormattingProvider/RegisterFormattingProvider.js +1 -0
- package/extension-api/dist/parts/RegisterHoverProvider/RegisterHoverProvider.d.ts +1 -0
- package/extension-api/dist/parts/RegisterHoverProvider/RegisterHoverProvider.js +1 -0
- package/extension-api/dist/parts/RegisterStatusBarItemProvider/RegisterStatusBarItemProvider.d.ts +1 -0
- package/extension-api/dist/parts/RegisterStatusBarItemProvider/RegisterStatusBarItemProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredCommand/RegisteredCommand.d.ts +4 -0
- package/extension-api/dist/parts/RegisteredCommand/RegisteredCommand.js +1 -0
- package/extension-api/dist/parts/RegisteredCompletionProvider/RegisteredCompletionProvider.d.ts +8 -0
- package/extension-api/dist/parts/RegisteredCompletionProvider/RegisteredCompletionProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredFormattingProvider/RegisteredFormattingProvider.d.ts +7 -0
- package/extension-api/dist/parts/RegisteredFormattingProvider/RegisteredFormattingProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredHoverProvider/RegisteredHoverProvider.d.ts +7 -0
- package/extension-api/dist/parts/RegisteredHoverProvider/RegisteredHoverProvider.js +1 -0
- package/extension-api/dist/parts/RegisteredStatusBarItemProvider/RegisteredStatusBarItemProvider.d.ts +5 -0
- package/extension-api/dist/parts/RegisteredStatusBarItemProvider/RegisteredStatusBarItemProvider.js +1 -0
- package/extension-api/dist/parts/ResetCompletionProviderRegistry/ResetCompletionProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/ResetCompletionProviderRegistry/ResetCompletionProviderRegistry.js +1 -0
- package/extension-api/dist/parts/ResetFormattingProviderRegistry/ResetFormattingProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/ResetFormattingProviderRegistry/ResetFormattingProviderRegistry.js +1 -0
- package/extension-api/dist/parts/ResetHoverProviderRegistry/ResetHoverProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/ResetHoverProviderRegistry/ResetHoverProviderRegistry.js +1 -0
- package/extension-api/dist/parts/ResetStatusBarItemProviderRegistry/ResetStatusBarItemProviderRegistry.d.ts +1 -0
- package/extension-api/dist/parts/ResetStatusBarItemProviderRegistry/ResetStatusBarItemProviderRegistry.js +1 -0
- package/extension-api/dist/parts/Rpc/Rpc.d.ts +3 -0
- package/extension-api/dist/parts/Rpc/Rpc.js +10 -0
- package/extension-api/dist/parts/ShowQuickPickOptions/ShowQuickPickOptions.d.ts +5 -0
- package/extension-api/dist/parts/ShowQuickPickOptions/ShowQuickPickOptions.js +1 -0
- package/extension-api/dist/parts/StatusBar/StatusBar.d.ts +8 -0
- package/extension-api/dist/parts/StatusBar/StatusBar.js +3 -0
- package/extension-api/dist/parts/StatusBarItem/StatusBarItem.d.ts +7 -0
- package/extension-api/dist/parts/StatusBarItem/StatusBarItem.js +1 -0
- package/extension-api/dist/parts/StatusBarItemProvider/StatusBarItemProvider.d.ts +5 -0
- package/extension-api/dist/parts/StatusBarItemProvider/StatusBarItemProvider.js +1 -0
- package/extension-api/dist/parts/StatusBarItemProviderHandle/StatusBarItemProviderHandle.d.ts +4 -0
- package/extension-api/dist/parts/StatusBarItemProviderHandle/StatusBarItemProviderHandle.js +1 -0
- package/extension-api/dist/parts/StatusBarItemProviderRegistry/StatusBarItemProviderRegistry.d.ts +11 -0
- package/extension-api/dist/parts/StatusBarItemProviderRegistry/StatusBarItemProviderRegistry.js +44 -0
- package/extension-api/dist/parts/StatusBarItemProviderRegistrySnapshot/StatusBarItemProviderRegistrySnapshot.d.ts +4 -0
- package/extension-api/dist/parts/StatusBarItemProviderRegistrySnapshot/StatusBarItemProviderRegistrySnapshot.js +1 -0
- package/extension-api/dist/parts/StatusBarItemProviderState/StatusBarItemProviderState.d.ts +1 -0
- package/extension-api/dist/parts/StatusBarItemProviderState/StatusBarItemProviderState.js +1 -0
- package/extension-api/package.json +32 -0
- package/extension-api/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { listen } from "../ExtensionApiWorkerListen/ExtensionApiWorkerListen.js";
|
|
2
|
+
import * as Rpc from "../Rpc/Rpc.js";
|
|
3
|
+
let rpcPromise;
|
|
4
|
+
const activate = async () => {
|
|
5
|
+
if (!rpcPromise) {
|
|
6
|
+
rpcPromise = listen();
|
|
7
|
+
}
|
|
8
|
+
const rpc = await rpcPromise;
|
|
9
|
+
Rpc.set(rpc);
|
|
10
|
+
};
|
|
11
|
+
export {
|
|
12
|
+
activate
|
|
13
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { hasCompletionProvider } from "../CompletionProviderState/CompletionProviderState.js";
|
|
2
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
3
|
+
const assertCompletionProvider = (provider) => {
|
|
4
|
+
if (!provider) {
|
|
5
|
+
throw new ExtensionApiError("completion provider is not defined");
|
|
6
|
+
}
|
|
7
|
+
if (!provider.id) {
|
|
8
|
+
throw new ExtensionApiError("completion provider is missing id");
|
|
9
|
+
}
|
|
10
|
+
if (!provider.languageId) {
|
|
11
|
+
throw new ExtensionApiError(`completion provider ${provider.id} is missing languageId`);
|
|
12
|
+
}
|
|
13
|
+
if (typeof provider.provideCompletions !== "function") {
|
|
14
|
+
throw new ExtensionApiError(`completion provider ${provider.id} is missing provideCompletions function`);
|
|
15
|
+
}
|
|
16
|
+
if (provider.resolveCompletionItem !== void 0 && typeof provider.resolveCompletionItem !== "function") {
|
|
17
|
+
throw new ExtensionApiError(`completion provider ${provider.id} has invalid resolveCompletionItem function`);
|
|
18
|
+
}
|
|
19
|
+
if (hasCompletionProvider(provider.id)) {
|
|
20
|
+
throw new ExtensionApiError(`completion provider ${provider.id} is already registered`);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
assertCompletionProvider
|
|
25
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
import { hasFormattingProvider } from "../FormattingProviderState/FormattingProviderState.js";
|
|
3
|
+
const assertFormattingProvider = (provider) => {
|
|
4
|
+
if (!provider) {
|
|
5
|
+
throw new ExtensionApiError("formatting provider is not defined");
|
|
6
|
+
}
|
|
7
|
+
if (typeof provider.id !== "string" || provider.id.length === 0) {
|
|
8
|
+
throw new ExtensionApiError("formatting provider is missing id");
|
|
9
|
+
}
|
|
10
|
+
if (typeof provider.languageId !== "string" || provider.languageId.length === 0) {
|
|
11
|
+
throw new ExtensionApiError(`formatting provider ${provider.id} is missing languageId`);
|
|
12
|
+
}
|
|
13
|
+
if (typeof provider.format !== "function") {
|
|
14
|
+
throw new ExtensionApiError(`formatting provider ${provider.id} is missing format function`);
|
|
15
|
+
}
|
|
16
|
+
if (hasFormattingProvider(provider.id)) {
|
|
17
|
+
throw new ExtensionApiError(`formatting provider ${provider.id} is already registered`);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
assertFormattingProvider
|
|
22
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
import { hasStatusBarItemProvider } from "../StatusBarItemProviderState/StatusBarItemProviderState.js";
|
|
3
|
+
const assertStatusBarItemProvider = (provider) => {
|
|
4
|
+
if (!provider) {
|
|
5
|
+
throw new ExtensionApiError("status bar item provider is not defined");
|
|
6
|
+
}
|
|
7
|
+
if (typeof provider.id !== "string" || provider.id.length === 0) {
|
|
8
|
+
throw new ExtensionApiError("status bar item provider is missing id");
|
|
9
|
+
}
|
|
10
|
+
if (typeof provider.getStatusBarItem !== "function") {
|
|
11
|
+
throw new ExtensionApiError(`status bar item provider ${provider.id} is missing getStatusBarItem function`);
|
|
12
|
+
}
|
|
13
|
+
if (hasStatusBarItemProvider(provider.id)) {
|
|
14
|
+
throw new ExtensionApiError(`status bar item provider ${provider.id} is already registered`);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
assertStatusBarItemProvider
|
|
19
|
+
};
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { commandMap as extensionApiCommandMap } from "../ExtensionApiCommandMap/ExtensionApiCommandMap.js";
|
|
2
|
+
import { handleExtensionManagementMessagePort } from "../ExtensionApiWorkerHandleMessagePort/ExtensionApiWorkerHandleMessagePort.js";
|
|
3
|
+
const commandMap = {
|
|
4
|
+
...extensionApiCommandMap,
|
|
5
|
+
async initialize(type, port) {
|
|
6
|
+
if (type !== "message-port") {
|
|
7
|
+
throw new Error(`unsupported initialize type ${type}`);
|
|
8
|
+
}
|
|
9
|
+
await handleExtensionManagementMessagePort(port);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export {
|
|
13
|
+
commandMap
|
|
14
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ExtensionApiError } from "../ExtensionApiError/ExtensionApiError.js";
|
|
2
|
+
const commands = /* @__PURE__ */ Object.create(null);
|
|
3
|
+
const assertCommand = (command) => {
|
|
4
|
+
if (!command) {
|
|
5
|
+
throw new ExtensionApiError("command is not defined");
|
|
6
|
+
}
|
|
7
|
+
if (typeof command.id !== "string" || command.id.length === 0) {
|
|
8
|
+
throw new ExtensionApiError("command is missing id");
|
|
9
|
+
}
|
|
10
|
+
if (typeof command.execute !== "function") {
|
|
11
|
+
throw new ExtensionApiError(`command ${command.id} is missing execute function`);
|
|
12
|
+
}
|
|
13
|
+
if (command.id in commands) {
|
|
14
|
+
throw new ExtensionApiError(`command ${command.id} is already registered`);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const registerCommand = (command) => {
|
|
18
|
+
assertCommand(command);
|
|
19
|
+
commands[command.id] = {
|
|
20
|
+
execute(...args) {
|
|
21
|
+
return command.execute(...args);
|
|
22
|
+
},
|
|
23
|
+
id: command.id
|
|
24
|
+
};
|
|
25
|
+
return {
|
|
26
|
+
dispose() {
|
|
27
|
+
delete commands[command.id];
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const getCommandRegistrySnapshot = () => {
|
|
32
|
+
return {
|
|
33
|
+
commands: Object.values(commands)
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
const executeCommand = async (id, ...args) => {
|
|
37
|
+
const command = commands[id];
|
|
38
|
+
if (!command) {
|
|
39
|
+
throw new ExtensionApiError(`command ${id} not found`);
|
|
40
|
+
}
|
|
41
|
+
return command.execute(...args);
|
|
42
|
+
};
|
|
43
|
+
const resetCommandRegistry = () => {
|
|
44
|
+
for (const id of Object.keys(commands)) {
|
|
45
|
+
delete commands[id];
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
export {
|
|
49
|
+
executeCommand,
|
|
50
|
+
getCommandRegistrySnapshot,
|
|
51
|
+
registerCommand,
|
|
52
|
+
resetCommandRegistry
|
|
53
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { executeCompletionProvider, executeResolveCompletionItemProvider } from "../ExecuteCompletionProvider/ExecuteCompletionProvider.js";
|
|
2
|
+
import { getCompletionProviderRegistrySnapshot } from "../GetCompletionProviderRegistrySnapshot/GetCompletionProviderRegistrySnapshot.js";
|
|
3
|
+
import { registerCompletionProvider } from "../RegisterCompletionProvider/RegisterCompletionProvider.js";
|
|
4
|
+
import { resetCompletionProviderRegistry } from "../ResetCompletionProviderRegistry/ResetCompletionProviderRegistry.js";
|
|
5
|
+
export {
|
|
6
|
+
executeCompletionProvider,
|
|
7
|
+
executeResolveCompletionItemProvider,
|
|
8
|
+
getCompletionProviderRegistrySnapshot,
|
|
9
|
+
registerCompletionProvider,
|
|
10
|
+
resetCompletionProviderRegistry
|
|
11
|
+
};
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
return typeof value;
|
|
11
|
+
};
|
|
12
|
+
const validateCompletionResult = (completion) => {
|
|
13
|
+
if (!Array.isArray(completion)) {
|
|
14
|
+
throw new ExtensionApiError(`invalid completion result: completion must be of type array but is ${getType(completion)}`);
|
|
15
|
+
}
|
|
16
|
+
for (const item of completion) {
|
|
17
|
+
if (!item || typeof item !== "object" || Array.isArray(item)) {
|
|
18
|
+
throw new ExtensionApiError(`invalid completion result: expected completion item to be of type object but was of type ${getType(item)}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return completion;
|
|
22
|
+
};
|
|
23
|
+
const registry = createProviderRegistry({
|
|
24
|
+
mapProvider(provider) {
|
|
25
|
+
return {
|
|
26
|
+
id: provider.id,
|
|
27
|
+
languageId: provider.languageId,
|
|
28
|
+
provideCompletions(textDocument, offset, ...args) {
|
|
29
|
+
return provider.provideCompletions(textDocument, offset, ...args);
|
|
30
|
+
},
|
|
31
|
+
resolveCompletionItem: provider.resolveCompletionItem ? (textDocument, offset, name, completionItem, ...args) => provider.resolveCompletionItem?.(textDocument, offset, name, completionItem, ...args) : void 0
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
optionalMethods: ["resolveCompletionItem"],
|
|
35
|
+
providerName: "completion provider",
|
|
36
|
+
requiredMethods: ["provideCompletions"],
|
|
37
|
+
requireLanguageId: true
|
|
38
|
+
});
|
|
39
|
+
const hasCompletionProvider = registry.hasProvider;
|
|
40
|
+
const registerCompletionProvider = (provider) => {
|
|
41
|
+
const registeredProvider = registry.registerProvider(provider);
|
|
42
|
+
return {
|
|
43
|
+
dispose() {
|
|
44
|
+
registry.deleteProvider(registeredProvider.id);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
const executeCompletionProvider = async (textDocument, offset, ...args) => {
|
|
49
|
+
return registry.executeProviderByLanguageId(
|
|
50
|
+
textDocument.languageId,
|
|
51
|
+
"provideCompletions",
|
|
52
|
+
[textDocument, offset, ...args],
|
|
53
|
+
validateCompletionResult
|
|
54
|
+
);
|
|
55
|
+
};
|
|
56
|
+
const executeResolveCompletionItemProvider = async (textDocument, offset, name, completionItem, ...args) => {
|
|
57
|
+
const provider = registry.getProviderByLanguageId(textDocument.languageId);
|
|
58
|
+
if (!provider) {
|
|
59
|
+
throw new ExtensionApiError(`No completion provider found for ${textDocument.languageId}`);
|
|
60
|
+
}
|
|
61
|
+
return provider.resolveCompletionItem?.(textDocument, offset, name, completionItem, ...args);
|
|
62
|
+
};
|
|
63
|
+
const getCompletionProviders = registry.getProviders;
|
|
64
|
+
const getCompletionProviderRegistrySnapshot = () => {
|
|
65
|
+
return {
|
|
66
|
+
providers: registry.getProviders()
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
const resetCompletionProviderRegistry = registry.reset;
|
|
70
|
+
export {
|
|
71
|
+
executeCompletionProvider,
|
|
72
|
+
executeResolveCompletionItemProvider,
|
|
73
|
+
getCompletionProviderRegistrySnapshot,
|
|
74
|
+
getCompletionProviders,
|
|
75
|
+
hasCompletionProvider,
|
|
76
|
+
registerCompletionProvider,
|
|
77
|
+
resetCompletionProviderRegistry
|
|
78
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getCompletionProviders,
|
|
3
|
+
hasCompletionProvider,
|
|
4
|
+
resetCompletionProviderRegistry
|
|
5
|
+
} from "../CompletionProviderRegistry/CompletionProviderRegistry.js";
|
|
6
|
+
export {
|
|
7
|
+
resetCompletionProviderRegistry as clearCompletionProviders,
|
|
8
|
+
getCompletionProviders,
|
|
9
|
+
hasCompletionProvider
|
|
10
|
+
};
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { executeCommand, getCommandRegistrySnapshot } from "../CommandRegistry/CommandRegistry.js";
|
|
2
|
+
import { executeCompletionProvider, executeResolveCompletionItemProvider, getCompletionProviderRegistrySnapshot } from "../Completion/Completion.js";
|
|
3
|
+
import { executeFormattingProvider, getFormattingProviderRegistrySnapshot } from "../Formatting/Formatting.js";
|
|
4
|
+
import { getStatusBarItems } from "../GetStatusBarItems/GetStatusBarItems.js";
|
|
5
|
+
import { executeHoverProvider, getHoverProviderRegistrySnapshot } from "../Hover/Hover.js";
|
|
6
|
+
const commandMap = {
|
|
7
|
+
"ExtensionApi.executeCommand": executeCommand,
|
|
8
|
+
"ExtensionApi.executeCompletionProvider": executeCompletionProvider,
|
|
9
|
+
"ExtensionApi.executeFormattingProvider": executeFormattingProvider,
|
|
10
|
+
"ExtensionApi.executeHoverProvider": executeHoverProvider,
|
|
11
|
+
"ExtensionApi.executeResolveCompletionItemProvider": executeResolveCompletionItemProvider,
|
|
12
|
+
"ExtensionApi.getCommandRegistrySnapshot": getCommandRegistrySnapshot,
|
|
13
|
+
"ExtensionApi.getCompletionProviderRegistrySnapshot": getCompletionProviderRegistrySnapshot,
|
|
14
|
+
"ExtensionApi.getFormattingProviderRegistrySnapshot": getFormattingProviderRegistrySnapshot,
|
|
15
|
+
"ExtensionApi.getHoverProviderRegistrySnapshot": getHoverProviderRegistrySnapshot,
|
|
16
|
+
"ExtensionApi.getStatusBarItems": getStatusBarItems
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
commandMap
|
|
20
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { commandMap as extensionApiCommandMap } from "../ExtensionApiCommandMap/ExtensionApiCommandMap.js";
|
|
2
|
+
import { handleExtensionManagementMessagePort } from "../ExtensionApiWorkerHandleMessagePort/ExtensionApiWorkerHandleMessagePort.js";
|
|
3
|
+
const commandMap = {
|
|
4
|
+
...extensionApiCommandMap,
|
|
5
|
+
"HandleMessagePort.handleExtensionManagementMessagePort": handleExtensionManagementMessagePort,
|
|
6
|
+
async initialize(type, port) {
|
|
7
|
+
if (type !== "message-port") {
|
|
8
|
+
throw new Error(`unsupported initialize type ${type}`);
|
|
9
|
+
}
|
|
10
|
+
await handleExtensionManagementMessagePort(port);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
export {
|
|
14
|
+
commandMap
|
|
15
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { PlainMessagePortRpc } from "@lvce-editor/rpc";
|
|
2
|
+
import * as ExtensionApiCommandMap from "../ExtensionApiCommandMap/ExtensionApiCommandMap.js";
|
|
3
|
+
const commandMap = {
|
|
4
|
+
...ExtensionApiCommandMap.commandMap,
|
|
5
|
+
async initialize(type, port) {
|
|
6
|
+
if (type !== "message-port") {
|
|
7
|
+
throw new Error(`unsupported initialize type ${type}`);
|
|
8
|
+
}
|
|
9
|
+
await handleExtensionManagementMessagePort(port);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
const handleExtensionManagementMessagePort = async (port) => {
|
|
13
|
+
await PlainMessagePortRpc.create({
|
|
14
|
+
commandMap,
|
|
15
|
+
isMessagePortOpen: true,
|
|
16
|
+
messagePort: port
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
handleExtensionManagementMessagePort
|
|
21
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { WebWorkerRpcClient } from "@lvce-editor/rpc";
|
|
2
|
+
import * as ExtensionApiWorkerCommandMap from "../ExtensionApiWorkerCommandMap/ExtensionApiWorkerCommandMap.js";
|
|
3
|
+
const listen = async () => {
|
|
4
|
+
const rpc = WebWorkerRpcClient.create({
|
|
5
|
+
commandMap: ExtensionApiWorkerCommandMap.commandMap
|
|
6
|
+
});
|
|
7
|
+
return rpc;
|
|
8
|
+
};
|
|
9
|
+
export {
|
|
10
|
+
listen
|
|
11
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { executeFormattingProvider } from "../ExecuteFormattingProvider/ExecuteFormattingProvider.js";
|
|
2
|
+
import { getFormattingProviderRegistrySnapshot } from "../GetFormattingProviderRegistrySnapshot/GetFormattingProviderRegistrySnapshot.js";
|
|
3
|
+
import { registerFormattingProvider } from "../RegisterFormattingProvider/RegisterFormattingProvider.js";
|
|
4
|
+
import { resetFormattingProviderRegistry } from "../ResetFormattingProviderRegistry/ResetFormattingProviderRegistry.js";
|
|
5
|
+
export {
|
|
6
|
+
executeFormattingProvider,
|
|
7
|
+
getFormattingProviderRegistrySnapshot,
|
|
8
|
+
registerFormattingProvider,
|
|
9
|
+
resetFormattingProviderRegistry
|
|
10
|
+
};
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createProviderRegistry } from "../ProviderRegistry/ProviderRegistry.js";
|
|
2
|
+
const registry = createProviderRegistry({
|
|
3
|
+
mapProvider(provider) {
|
|
4
|
+
return {
|
|
5
|
+
format(textDocument, ...args) {
|
|
6
|
+
return provider.format(textDocument, ...args);
|
|
7
|
+
},
|
|
8
|
+
id: provider.id,
|
|
9
|
+
languageId: provider.languageId
|
|
10
|
+
};
|
|
11
|
+
},
|
|
12
|
+
providerName: "formatting provider",
|
|
13
|
+
requiredMethods: ["format"],
|
|
14
|
+
requireLanguageId: true
|
|
15
|
+
});
|
|
16
|
+
const hasFormattingProvider = registry.hasProvider;
|
|
17
|
+
const registerFormattingProvider = (provider) => {
|
|
18
|
+
const registeredProvider = registry.registerProvider(provider);
|
|
19
|
+
return {
|
|
20
|
+
dispose() {
|
|
21
|
+
registry.deleteProvider(registeredProvider.id);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
const executeFormattingProvider = async (textDocument, ...args) => {
|
|
26
|
+
return registry.executeProviderByLanguageId(textDocument.languageId, "format", [textDocument, ...args]);
|
|
27
|
+
};
|
|
28
|
+
const getFormattingProviders = registry.getProviders;
|
|
29
|
+
const getFormattingProviderRegistrySnapshot = () => {
|
|
30
|
+
return {
|
|
31
|
+
providers: registry.getProviders()
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
const resetFormattingProviderRegistry = registry.reset;
|
|
35
|
+
export {
|
|
36
|
+
executeFormattingProvider,
|
|
37
|
+
getFormattingProviderRegistrySnapshot,
|
|
38
|
+
getFormattingProviders,
|
|
39
|
+
hasFormattingProvider,
|
|
40
|
+
registerFormattingProvider,
|
|
41
|
+
resetFormattingProviderRegistry
|
|
42
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getFormattingProviders,
|
|
3
|
+
hasFormattingProvider,
|
|
4
|
+
resetFormattingProviderRegistry
|
|
5
|
+
} from "../FormattingProviderRegistry/FormattingProviderRegistry.js";
|
|
6
|
+
export {
|
|
7
|
+
resetFormattingProviderRegistry as clearFormattingProviders,
|
|
8
|
+
getFormattingProviders,
|
|
9
|
+
hasFormattingProvider
|
|
10
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { commandMap as extensionApiCommandMap } from "../CommandMap/CommandMap.js";
|
|
2
|
+
const handleExtensionManagementMessagePort = async ({
|
|
3
|
+
commandMap,
|
|
4
|
+
createMessagePortRpcClient,
|
|
5
|
+
port
|
|
6
|
+
}) => {
|
|
7
|
+
await createMessagePortRpcClient({
|
|
8
|
+
commandMap: {
|
|
9
|
+
...extensionApiCommandMap,
|
|
10
|
+
...commandMap
|
|
11
|
+
},
|
|
12
|
+
messagePort: port
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
export {
|
|
16
|
+
handleExtensionManagementMessagePort
|
|
17
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { executeHoverProvider } from "../ExecuteHoverProvider/ExecuteHoverProvider.js";
|
|
2
|
+
import { getHoverProviderRegistrySnapshot } from "../GetHoverProviderRegistrySnapshot/GetHoverProviderRegistrySnapshot.js";
|
|
3
|
+
import { registerHoverProvider } from "../RegisterHoverProvider/RegisterHoverProvider.js";
|
|
4
|
+
import { resetHoverProviderRegistry } from "../ResetHoverProviderRegistry/ResetHoverProviderRegistry.js";
|
|
5
|
+
export {
|
|
6
|
+
executeHoverProvider,
|
|
7
|
+
getHoverProviderRegistrySnapshot,
|
|
8
|
+
registerHoverProvider,
|
|
9
|
+
resetHoverProviderRegistry
|
|
10
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,64 @@
|
|
|
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 validateHoverResult = (hover) => {
|
|
16
|
+
if (hover === void 0) {
|
|
17
|
+
return void 0;
|
|
18
|
+
}
|
|
19
|
+
if (!hover || typeof hover !== "object" || Array.isArray(hover)) {
|
|
20
|
+
throw new ExtensionApiError(`invalid hover result: hover must be of type object or undefined but is ${getType(hover)}`);
|
|
21
|
+
}
|
|
22
|
+
return hover;
|
|
23
|
+
};
|
|
24
|
+
const registry = createProviderRegistry({
|
|
25
|
+
mapProvider(provider) {
|
|
26
|
+
return {
|
|
27
|
+
id: provider.id,
|
|
28
|
+
languageId: provider.languageId,
|
|
29
|
+
provideHover(textDocument, offset, ...args) {
|
|
30
|
+
return provider.provideHover(textDocument, offset, ...args);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
providerName: "hover provider",
|
|
35
|
+
requiredMethods: ["provideHover"],
|
|
36
|
+
requireLanguageId: true
|
|
37
|
+
});
|
|
38
|
+
const hasHoverProvider = registry.hasProvider;
|
|
39
|
+
const registerHoverProvider = (provider) => {
|
|
40
|
+
const registeredProvider = registry.registerProvider(provider);
|
|
41
|
+
return {
|
|
42
|
+
dispose() {
|
|
43
|
+
registry.deleteProvider(registeredProvider.id);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
const executeHoverProvider = async (textDocument, offset, ...args) => {
|
|
48
|
+
return registry.executeProviderByLanguageId(textDocument.languageId, "provideHover", [textDocument, offset, ...args], validateHoverResult);
|
|
49
|
+
};
|
|
50
|
+
const getHoverProviders = registry.getProviders;
|
|
51
|
+
const getHoverProviderRegistrySnapshot = () => {
|
|
52
|
+
return {
|
|
53
|
+
providers: registry.getProviders()
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
const resetHoverProviderRegistry = registry.reset;
|
|
57
|
+
export {
|
|
58
|
+
executeHoverProvider,
|
|
59
|
+
getHoverProviderRegistrySnapshot,
|
|
60
|
+
getHoverProviders,
|
|
61
|
+
hasHoverProvider,
|
|
62
|
+
registerHoverProvider,
|
|
63
|
+
resetHoverProviderRegistry
|
|
64
|
+
};
|
package/dist/extension-api/parts/HoverProviderRegistrySnapshot/HoverProviderRegistrySnapshot.js
ADDED
|
File without changes
|
|
File without changes
|
|
File without changes
|