@lvce-editor/api 9.22.0 → 9.23.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/README.md CHANGED
@@ -30,12 +30,13 @@ import { getUserDataDir } from '@lvce-editor/api'
30
30
  const userDataDir = await getUserDataDir()
31
31
  ```
32
32
 
33
- Electron extensions can create an off-screen web contents view. It stays hidden for the lifetime of the handle, and disposing the handle destroys its web contents.
33
+ Electron extensions can create a web contents view, hide it from the editor window, and continue using its web contents. Disposing the handle destroys its web contents.
34
34
 
35
35
  ```ts
36
36
  import { createElectronWebContentsView } from '@lvce-editor/api'
37
37
 
38
38
  const view = await createElectronWebContentsView({ url: 'https://example.com' })
39
+ await view.hide()
39
40
  const title = await view.executeJavaScript<string>('document.title')
40
41
  await view.dispose()
41
42
  ```
package/dist/index.d.ts CHANGED
@@ -23,8 +23,8 @@ export { focusNextTab, focusPreviousTab } from './parts/MainArea/MainArea.ts';
23
23
  export { openProcessExplorer } from './parts/ProcessExplorer/ProcessExplorer.ts';
24
24
  export { openDebugConsole, openOutputView, openProblemsView, type OpenDebugConsoleOptions, type OpenOutputViewOptions, type OpenProblemsViewOptions, } from './parts/Panel/Panel.ts';
25
25
  export { getLanguageServerRegistrySnapshot, registerLanguageServer, resetLanguageServerRegistry } from './parts/LanguageServer/LanguageServer.ts';
26
- export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from './parts/LanguageProvider/LanguageProvider.ts';
27
- export type { LanguageProvider } from './parts/LanguageProvider/LanguageProvider.ts';
26
+ export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerDocumentSymbolProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from './parts/LanguageProvider/LanguageProvider.ts';
27
+ export type { DocumentSymbol, DocumentSymbolProvider, DocumentSymbolTextDocument, LanguageProvider, } from './parts/LanguageProvider/LanguageProvider.ts';
28
28
  export { executeSourceControlAcceptInput, executeSourceControlAdd, executeSourceControlDiscard, executeSourceControlGenerateCommitMessage, executeSourceControlGetBadgeCount, executeSourceControlGetChangedFiles, executeSourceControlGetFeatures, executeSourceControlGetFileBefore, executeSourceControlGetFileBeforeUri, executeSourceControlGetFileDecorations, executeSourceControlGetGroups, executeSourceControlIsActive, registerSourceControlProvider, resetSourceControlProviderRegistry, } from './parts/SourceControl/SourceControl.ts';
29
29
  export { createViewInstance, dispatchViewEvent, disposeViewInstance, executeViewProvider, getViewRegistrySnapshot, renderViewInstance, registerView, resetViewRegistry, saveViewInstanceState, setViewInstanceActive, } from './parts/ViewRegistry/ViewRegistry.ts';
30
30
  export { createOutputChannel, getOutputChannelLogs, getOutputChannelRegistrySnapshot, resetOutputChannelRegistry, } from './parts/OutputChannel/OutputChannel.ts';
package/dist/index.js CHANGED
@@ -23,7 +23,7 @@ export { focusNextTab, focusPreviousTab } from "./parts/MainArea/MainArea.js";
23
23
  export { openProcessExplorer } from "./parts/ProcessExplorer/ProcessExplorer.js";
24
24
  export { openDebugConsole, openOutputView, openProblemsView, } from "./parts/Panel/Panel.js";
25
25
  export { getLanguageServerRegistrySnapshot, registerLanguageServer, resetLanguageServerRegistry } from "./parts/LanguageServer/LanguageServer.js";
26
- export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from "./parts/LanguageProvider/LanguageProvider.js";
26
+ export { registerBraceCompletionProvider, registerClosingTagProvider, registerCodeActionsProvider, registerCommentProvider, registerDefinitionProvider, registerDocumentSymbolProvider, registerImplementationProvider, registerReferenceProvider, registerRenameProvider, registerSelectionProvider, registerTabCompletionProvider, registerTypeDefinitionProvider, resetLanguageProviderRegistry, } from "./parts/LanguageProvider/LanguageProvider.js";
27
27
  export { executeSourceControlAcceptInput, executeSourceControlAdd, executeSourceControlDiscard, executeSourceControlGenerateCommitMessage, executeSourceControlGetBadgeCount, executeSourceControlGetChangedFiles, executeSourceControlGetFeatures, executeSourceControlGetFileBefore, executeSourceControlGetFileBeforeUri, executeSourceControlGetFileDecorations, executeSourceControlGetGroups, executeSourceControlIsActive, registerSourceControlProvider, resetSourceControlProviderRegistry, } from "./parts/SourceControl/SourceControl.js";
28
28
  export { createViewInstance, dispatchViewEvent, disposeViewInstance, executeViewProvider, getViewRegistrySnapshot, renderViewInstance, registerView, resetViewRegistry, saveViewInstanceState, setViewInstanceActive, } from "./parts/ViewRegistry/ViewRegistry.js";
29
29
  export { createOutputChannel, getOutputChannelLogs, getOutputChannelRegistrySnapshot, resetOutputChannelRegistry, } from "./parts/OutputChannel/OutputChannel.js";
@@ -12,6 +12,7 @@ export interface ElectronWebContentsView {
12
12
  readonly dispose: () => Promise<void>;
13
13
  readonly executeJavaScript: <T = unknown>(code: string, userGesture?: boolean) => Promise<T>;
14
14
  readonly getStats: () => Promise<ElectronWebContentsViewStats>;
15
+ readonly hide: () => Promise<void>;
15
16
  readonly loadUrl: (url: string) => Promise<void>;
16
17
  readonly reload: () => Promise<void>;
17
18
  }
@@ -54,6 +54,9 @@ export const createElectronWebContentsView = async ({ url } = {}) => {
54
54
  async getStats() {
55
55
  return (await rpc.invoke('ElectronWebContentsView.getStats', id));
56
56
  },
57
+ async hide() {
58
+ await rpc.invoke('ElectronWebContentsView.hide', id);
59
+ },
57
60
  loadUrl,
58
61
  async reload() {
59
62
  await rpc.invoke('ElectronWebContentsView.reload', id);
@@ -4,6 +4,25 @@ export interface LanguageProvider {
4
4
  readonly languageId: string;
5
5
  readonly [key: string]: unknown;
6
6
  }
7
+ export interface DocumentSymbol {
8
+ readonly children?: readonly DocumentSymbol[];
9
+ readonly detail?: string;
10
+ readonly endOffset: number;
11
+ readonly kind: number | string;
12
+ readonly name: string;
13
+ readonly selectionEndOffset: number;
14
+ readonly selectionStartOffset: number;
15
+ readonly startOffset: number;
16
+ }
17
+ export interface DocumentSymbolTextDocument {
18
+ readonly documentId?: number;
19
+ readonly languageId: string;
20
+ readonly text: string;
21
+ readonly uri: string;
22
+ }
23
+ export interface DocumentSymbolProvider extends LanguageProvider {
24
+ readonly provideDocumentSymbols: (textDocument: DocumentSymbolTextDocument) => Promise<readonly DocumentSymbol[]> | readonly DocumentSymbol[];
25
+ }
7
26
  export declare const executeLanguageProvider: (kind: string, methodName: string, textDocument: {
8
27
  readonly languageId: string;
9
28
  }, ...args: readonly unknown[]) => Promise<unknown>;
@@ -15,6 +34,7 @@ export declare const registerClosingTagProvider: (provider: LanguageProvider) =>
15
34
  export declare const registerCodeActionsProvider: (provider: LanguageProvider) => Disposable;
16
35
  export declare const registerCommentProvider: (provider: LanguageProvider) => Disposable;
17
36
  export declare const registerDefinitionProvider: (provider: LanguageProvider) => Disposable;
37
+ export declare const registerDocumentSymbolProvider: (provider: DocumentSymbolProvider) => Disposable;
18
38
  export declare const registerImplementationProvider: (provider: LanguageProvider) => Disposable;
19
39
  export declare const registerReferenceProvider: (provider: LanguageProvider) => Disposable;
20
40
  export declare const registerRenameProvider: (provider: LanguageProvider) => Disposable;
@@ -66,6 +66,7 @@ export const registerClosingTagProvider = (provider) => registerProvider('closin
66
66
  export const registerCodeActionsProvider = (provider) => registerProvider('code action', provider, ['provideCodeActions']);
67
67
  export const registerCommentProvider = (provider) => registerProvider('comment', provider, ['provideComment']);
68
68
  export const registerDefinitionProvider = (provider) => registerProvider('definition', provider, ['provideDefinition']);
69
+ export const registerDocumentSymbolProvider = (provider) => registerProvider('document symbol', provider, ['provideDocumentSymbols']);
69
70
  export const registerImplementationProvider = (provider) => registerProvider('implementation', provider, ['provideImplementations']);
70
71
  export const registerReferenceProvider = (provider) => registerProvider('reference', provider, ['provideReferences']);
71
72
  export const registerRenameProvider = (provider) => registerProvider('rename', provider, ['provideRename']);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lvce-editor/api",
3
- "version": "9.22.0",
3
+ "version": "9.23.0",
4
4
  "description": "Tree-shakeable extension API for Lvce Editor extensions.",
5
5
  "keywords": [
6
6
  "lvce-editor",