@volar/monaco 2.4.0-alpha.2 → 2.4.0-alpha.20

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/worker.d.ts CHANGED
@@ -1,84 +1,29 @@
1
- import { Language, LanguagePlugin, LanguageServicePlugin, ProjectContext, type LanguageServiceEnvironment } from '@volar/language-service';
1
+ import { CancellationToken, Language, LanguagePlugin, LanguageServicePlugin, ProjectContext, type LanguageService, type LanguageServiceEnvironment } from '@volar/language-service';
2
2
  import type * as monaco from 'monaco-types';
3
3
  import type * as ts from 'typescript';
4
- import type { URI } from 'vscode-uri';
4
+ import { URI } from 'vscode-uri';
5
5
  export * from '@volar/language-service';
6
- export * from './lib/ata.js';
7
- export declare function createSimpleWorkerService<T = {}>({ env, workerContext, languagePlugins, servicePlugins, extraApis, setup, }: {
6
+ /**
7
+ * @deprecated
8
+ * Use `createSimpleWorkerLanguageService` instead.
9
+ */
10
+ export declare const createSimpleWorkerService: typeof createSimpleWorkerLanguageService;
11
+ /**
12
+ * @deprecated
13
+ * Use `createTypeScriptWorkerLanguageService` instead.
14
+ */
15
+ export declare const createTypeScriptWorkerService: typeof createTypeScriptWorkerLanguageService;
16
+ export declare function createSimpleWorkerLanguageService({ env, workerContext, languagePlugins, languageServicePlugins, setup, }: {
8
17
  env: LanguageServiceEnvironment;
9
18
  workerContext: monaco.worker.IWorkerContext<any>;
10
- languagePlugins?: LanguagePlugin<URI>[];
11
- servicePlugins?: LanguageServicePlugin[];
12
- extraApis?: T;
19
+ languagePlugins: LanguagePlugin<URI>[];
20
+ languageServicePlugins: LanguageServicePlugin[];
13
21
  setup?(options: {
14
22
  language: Language<URI>;
15
23
  project: ProjectContext;
16
24
  }): void;
17
- }): {
18
- dispose: () => void;
19
- context: import("@volar/language-service").LanguageServiceContext;
20
- getCallHierarchyItems(uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyItem[] | undefined>;
21
- getCallHierarchyIncomingCalls(item: import("@volar/language-service").CallHierarchyItem, token: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyIncomingCall[]>;
22
- getCallHierarchyOutgoingCalls(item: import("@volar/language-service").CallHierarchyItem, token: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyOutgoingCall[]>;
23
- getSemanticTokenLegend: () => {
24
- tokenModifiers: string[];
25
- tokenTypes: string[];
26
- };
27
- getCommands: () => string[];
28
- getTriggerCharacters: () => string[];
29
- getAutoFormatTriggerCharacters: () => string[];
30
- getSignatureHelpTriggerCharacters: () => string[];
31
- getSignatureHelpRetriggerCharacters: () => string[];
32
- executeCommand(command: string, args: any[], token?: import("@volar/language-service").CancellationToken): any;
33
- getDocumentFormattingEdits: (uri: URI, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
34
- ch: string;
35
- position: import("@volar/language-service").Position;
36
- } | undefined, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").TextEdit[] | undefined>;
37
- getFoldingRanges: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
38
- getSelectionRanges: (uri: URI, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
39
- getLinkedEditingRanges: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
40
- getDocumentSymbols: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
41
- getDocumentColors: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
42
- getColorPresentations: (uri: URI, color: import("@volar/language-service").Color, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorPresentation[] | undefined>;
43
- getDiagnostics: (uri: URI, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
44
- getWorkspaceDiagnostics: (token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceDocumentDiagnosticReport[]>;
45
- getReferences: (uri: URI, position: import("@volar/language-service").Position, referenceContext: import("@volar/language-service").ReferenceContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Location[] | undefined>;
46
- getFileReferences: (uri: URI, token?: import("@volar/language-service").CancellationToken) => import("@volar/language-service/lib/types.js").NullableProviderResult<import("@volar/language-service").Location[]>;
47
- getDefinition: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
48
- getTypeDefinition: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
49
- getImplementations: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
50
- getRenameRange: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Range | {
51
- range: import("@volar/language-service").Range;
52
- placeholder: string;
53
- } | {
54
- message: string;
55
- } | undefined>;
56
- getRenameEdits: (uri: URI, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
57
- getFileRenameEdits: (oldUri: URI, newUri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
58
- getSemanticTokens: (uri: URI, range: import("@volar/language-service").Range | undefined, legend: import("@volar/language-service").SemanticTokensLegend, token?: import("@volar/language-service").CancellationToken, _reportProgress?: (tokens: import("@volar/language-service").SemanticTokens) => void) => Promise<import("@volar/language-service").SemanticTokens | undefined>;
59
- getHover: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
60
- getCompletionItems: (uri: URI, position: import("@volar/language-service").Position, completionContext?: import("@volar/language-service").CompletionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionList>;
61
- getCodeActions: (uri: URI, range: import("@volar/language-service").Range, codeActionContext: import("@volar/language-service").CodeActionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction[] | undefined>;
62
- getSignatureHelp: (uri: URI, position: import("@volar/language-service").Position, signatureHelpContext?: import("@volar/language-service").SignatureHelpContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SignatureHelp | undefined>;
63
- getCodeLenses: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
64
- getDocumentHighlights: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
65
- getDocumentLinks: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
66
- getWorkspaceSymbols: (query: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol[]>;
67
- getAutoInsertSnippet: (uri: URI, selection: import("@volar/language-service").Position, change: {
68
- rangeOffset: number;
69
- rangeLength: number;
70
- text: string;
71
- }, token?: import("@volar/language-service").CancellationToken) => Promise<string | undefined>;
72
- getDocumentDropEdits: (uri: URI, position: import("@volar/language-service").Position, dataTransfer: Map<string, import("@volar/language-service").DataTransferItem>, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentDropEdit | undefined>;
73
- getInlayHints: (uri: URI, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
74
- resolveCodeAction: (item: import("@volar/language-service").CodeAction, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction>;
75
- resolveCompletionItem: (item: import("@volar/language-service").CompletionItem, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionItem>;
76
- resolveCodeLens: (item: import("@volar/language-service").CodeLens, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens>;
77
- resolveDocumentLink: (item: import("@volar/language-service").DocumentLink, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink>;
78
- resolveInlayHint: (item: import("@volar/language-service").InlayHint, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint>;
79
- resolveWorkspaceSymbol: (symbol: import("@volar/language-service").WorkspaceSymbol, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol>;
80
- } & T;
81
- export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, servicePlugins, extraApis, setup, }: {
25
+ }): WorkerLanguageService;
26
+ export declare function createTypeScriptWorkerLanguageService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, languageServicePlugins, setup, }: {
82
27
  typescript: typeof import('typescript');
83
28
  compilerOptions: ts.CompilerOptions;
84
29
  env: LanguageServiceEnvironment;
@@ -87,74 +32,80 @@ export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts,
87
32
  asFileName(uri: URI): string;
88
33
  };
89
34
  workerContext: monaco.worker.IWorkerContext<any>;
90
- languagePlugins?: LanguagePlugin<URI>[];
91
- servicePlugins?: LanguageServicePlugin[];
92
- extraApis?: T;
35
+ languagePlugins: LanguagePlugin<URI>[];
36
+ languageServicePlugins: LanguageServicePlugin[];
93
37
  setup?(options: {
94
38
  language: Language<URI>;
95
39
  project: ProjectContext;
96
40
  }): void;
97
- }): {
98
- dispose: () => void;
99
- context: import("@volar/language-service").LanguageServiceContext;
100
- getCallHierarchyItems(uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyItem[] | undefined>;
101
- getCallHierarchyIncomingCalls(item: import("@volar/language-service").CallHierarchyItem, token: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyIncomingCall[]>;
102
- getCallHierarchyOutgoingCalls(item: import("@volar/language-service").CallHierarchyItem, token: import("@volar/language-service").CancellationToken): Promise<import("@volar/language-service").CallHierarchyOutgoingCall[]>;
103
- getSemanticTokenLegend: () => {
41
+ }): WorkerLanguageService;
42
+ export interface UriComponents {
43
+ scheme: string;
44
+ authority: string;
45
+ path: string;
46
+ query: string;
47
+ fragment: string;
48
+ }
49
+ export declare class WorkerLanguageService {
50
+ private languageService;
51
+ pendingRequests: Map<number, Set<(e: any) => any> | undefined>;
52
+ constructor(languageService: LanguageService);
53
+ getSemanticTokenLegend(): {
104
54
  tokenModifiers: string[];
105
55
  tokenTypes: string[];
106
56
  };
107
- getCommands: () => string[];
108
- getTriggerCharacters: () => string[];
109
- getAutoFormatTriggerCharacters: () => string[];
110
- getSignatureHelpTriggerCharacters: () => string[];
111
- getSignatureHelpRetriggerCharacters: () => string[];
112
- executeCommand(command: string, args: any[], token?: import("@volar/language-service").CancellationToken): any;
113
- getDocumentFormattingEdits: (uri: URI, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
114
- ch: string;
115
- position: import("@volar/language-service").Position;
116
- } | undefined, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").TextEdit[] | undefined>;
117
- getFoldingRanges: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
118
- getSelectionRanges: (uri: URI, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
119
- getLinkedEditingRanges: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
120
- getDocumentSymbols: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
121
- getDocumentColors: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
122
- getColorPresentations: (uri: URI, color: import("@volar/language-service").Color, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorPresentation[] | undefined>;
123
- getDiagnostics: (uri: URI, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
124
- getWorkspaceDiagnostics: (token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceDocumentDiagnosticReport[]>;
125
- getReferences: (uri: URI, position: import("@volar/language-service").Position, referenceContext: import("@volar/language-service").ReferenceContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Location[] | undefined>;
126
- getFileReferences: (uri: URI, token?: import("@volar/language-service").CancellationToken) => import("@volar/language-service/lib/types.js").NullableProviderResult<import("@volar/language-service").Location[]>;
127
- getDefinition: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
128
- getTypeDefinition: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
129
- getImplementations: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
130
- getRenameRange: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Range | {
57
+ getCommands(): string[];
58
+ getTriggerCharacters(): string[];
59
+ getAutoFormatTriggerCharacters(): string[];
60
+ getSignatureHelpTriggerCharacters(): string[];
61
+ getSignatureHelpRetriggerCharacters(): string[];
62
+ executeCommand(requestId: number, ...args: TrimToken<LanguageService['executeCommand']>): Promise<any>;
63
+ getDocumentFormattingEdits(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentFormattingEdits']>): Promise<import("@volar/language-service").TextEdit[] | undefined>;
64
+ getFoldingRanges(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getFoldingRanges']>): Promise<import("@volar/language-service").FoldingRange[] | undefined>;
65
+ getSelectionRanges(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getSelectionRanges']>): Promise<import("@volar/language-service").SelectionRange[] | undefined>;
66
+ getLinkedEditingRanges(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getLinkedEditingRanges']>): Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
67
+ getDocumentSymbols(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentSymbols']>): Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
68
+ getDocumentColors(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentColors']>): Promise<import("@volar/language-service").ColorInformation[] | undefined>;
69
+ getColorPresentations(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getColorPresentations']>): Promise<import("@volar/language-service").ColorPresentation[] | undefined>;
70
+ getDiagnostics(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDiagnostics']>): Promise<import("@volar/language-service").Diagnostic[]>;
71
+ getWorkspaceDiagnostics(requestId: number): Promise<import("@volar/language-service").WorkspaceDocumentDiagnosticReport[]>;
72
+ getReferences(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getReferences']>): Promise<import("@volar/language-service").Location[] | undefined>;
73
+ getFileReferences(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getFileReferences']>): Promise<import("@volar/language-service").Location[] | null | undefined>;
74
+ getDefinition(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDefinition']>): Promise<import("@volar/language-service").LocationLink[] | undefined>;
75
+ getTypeDefinition(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getTypeDefinition']>): Promise<import("@volar/language-service").LocationLink[] | undefined>;
76
+ getImplementations(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getImplementations']>): Promise<import("@volar/language-service").LocationLink[] | undefined>;
77
+ getRenameRange(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getRenameRange']>): Promise<import("@volar/language-service").Range | {
131
78
  range: import("@volar/language-service").Range;
132
79
  placeholder: string;
133
80
  } | {
134
81
  message: string;
135
82
  } | undefined>;
136
- getRenameEdits: (uri: URI, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
137
- getFileRenameEdits: (oldUri: URI, newUri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
138
- getSemanticTokens: (uri: URI, range: import("@volar/language-service").Range | undefined, legend: import("@volar/language-service").SemanticTokensLegend, token?: import("@volar/language-service").CancellationToken, _reportProgress?: (tokens: import("@volar/language-service").SemanticTokens) => void) => Promise<import("@volar/language-service").SemanticTokens | undefined>;
139
- getHover: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
140
- getCompletionItems: (uri: URI, position: import("@volar/language-service").Position, completionContext?: import("@volar/language-service").CompletionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionList>;
141
- getCodeActions: (uri: URI, range: import("@volar/language-service").Range, codeActionContext: import("@volar/language-service").CodeActionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction[] | undefined>;
142
- getSignatureHelp: (uri: URI, position: import("@volar/language-service").Position, signatureHelpContext?: import("@volar/language-service").SignatureHelpContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SignatureHelp | undefined>;
143
- getCodeLenses: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
144
- getDocumentHighlights: (uri: URI, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
145
- getDocumentLinks: (uri: URI, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
146
- getWorkspaceSymbols: (query: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol[]>;
147
- getAutoInsertSnippet: (uri: URI, selection: import("@volar/language-service").Position, change: {
148
- rangeOffset: number;
149
- rangeLength: number;
150
- text: string;
151
- }, token?: import("@volar/language-service").CancellationToken) => Promise<string | undefined>;
152
- getDocumentDropEdits: (uri: URI, position: import("@volar/language-service").Position, dataTransfer: Map<string, import("@volar/language-service").DataTransferItem>, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentDropEdit | undefined>;
153
- getInlayHints: (uri: URI, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
154
- resolveCodeAction: (item: import("@volar/language-service").CodeAction, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction>;
155
- resolveCompletionItem: (item: import("@volar/language-service").CompletionItem, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionItem>;
156
- resolveCodeLens: (item: import("@volar/language-service").CodeLens, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens>;
157
- resolveDocumentLink: (item: import("@volar/language-service").DocumentLink, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink>;
158
- resolveInlayHint: (item: import("@volar/language-service").InlayHint, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint>;
159
- resolveWorkspaceSymbol: (symbol: import("@volar/language-service").WorkspaceSymbol, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol>;
160
- } & T;
83
+ getRenameEdits(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getRenameEdits']>): Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
84
+ getFileRenameEdits(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getFileRenameEdits']>): Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
85
+ getSemanticTokens(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getSemanticTokens']>): Promise<import("@volar/language-service").SemanticTokens | undefined>;
86
+ getHover(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getHover']>): Promise<import("@volar/language-service").Hover | undefined>;
87
+ getCompletionItems(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getCompletionItems']>): Promise<import("@volar/language-service").CompletionList>;
88
+ getCodeActions(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getCodeActions']>): Promise<import("@volar/language-service").CodeAction[] | undefined>;
89
+ getSignatureHelp(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getSignatureHelp']>): Promise<import("@volar/language-service").SignatureHelp | undefined>;
90
+ getCodeLenses(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getCodeLenses']>): Promise<import("@volar/language-service").CodeLens[]>;
91
+ getDocumentHighlights(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentHighlights']>): Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
92
+ getDocumentLinks(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentLinks']>): Promise<import("@volar/language-service").DocumentLink[]>;
93
+ getWorkspaceSymbols(requestId: number, ...args: TrimToken<LanguageService['getWorkspaceSymbols']>): Promise<import("@volar/language-service").WorkspaceSymbol[]>;
94
+ getAutoInsertSnippet(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getAutoInsertSnippet']>): Promise<string | undefined>;
95
+ getDocumentDropEdits(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getDocumentDropEdits']>): Promise<import("@volar/language-service").DocumentDropEdit | undefined>;
96
+ getInlayHints(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getInlayHints']>): Promise<import("@volar/language-service").InlayHint[] | undefined>;
97
+ resolveCodeAction(requestId: number, ...args: TrimToken<LanguageService['resolveCodeAction']>): Promise<import("@volar/language-service").CodeAction>;
98
+ resolveCompletionItem(requestId: number, ...args: TrimToken<LanguageService['resolveCompletionItem']>): Promise<import("@volar/language-service").CompletionItem>;
99
+ resolveCodeLens(requestId: number, ...args: TrimToken<LanguageService['resolveCodeLens']>): Promise<import("@volar/language-service").CodeLens>;
100
+ resolveDocumentLink(requestId: number, ...args: TrimToken<LanguageService['resolveDocumentLink']>): Promise<import("@volar/language-service").DocumentLink>;
101
+ resolveInlayHint(requestId: number, ...args: TrimToken<LanguageService['resolveInlayHint']>): Promise<import("@volar/language-service").InlayHint>;
102
+ resolveWorkspaceSymbol(requestId: number, ...args: TrimToken<LanguageService['resolveWorkspaceSymbol']>): Promise<import("@volar/language-service").WorkspaceSymbol>;
103
+ getCallHierarchyItems(requestId: number, uri: UriComponents, ...restArgs: TrimURIAndToken<LanguageService['getCallHierarchyItems']>): Promise<import("@volar/language-service").CallHierarchyItem[] | undefined>;
104
+ getCallHierarchyIncomingCalls(requestId: number, ...args: TrimToken<LanguageService['getCallHierarchyIncomingCalls']>): Promise<import("@volar/language-service").CallHierarchyIncomingCall[]>;
105
+ getCallHierarchyOutgoingCalls(requestId: number, ...args: TrimToken<LanguageService['getCallHierarchyOutgoingCalls']>): Promise<import("@volar/language-service").CallHierarchyOutgoingCall[]>;
106
+ dispose(): void;
107
+ cancelRequest(requestId: number): void;
108
+ private withToken;
109
+ }
110
+ type TrimURIAndToken<T> = T extends ((...args: [uri: URI, ...infer U, token: CancellationToken]) => any) ? [...U] : never;
111
+ type TrimToken<T> = T extends ((...args: [...infer U, token: CancellationToken]) => any) ? [...U] : never;
package/worker.js CHANGED
@@ -1,9 +1,19 @@
1
- import { createLanguageService as _createLanguageService, createLanguage, createUriMap, } from '@volar/language-service';
1
+ import { createLanguage, createLanguageService, createUriMap, } from '@volar/language-service';
2
2
  import { createLanguageServiceHost, createSys, resolveFileLanguageId } from '@volar/typescript';
3
+ import { URI } from 'vscode-uri';
3
4
  export * from '@volar/language-service';
4
- export * from './lib/ata.js';
5
5
  const fsFileSnapshots = createUriMap();
6
- export function createSimpleWorkerService({ env, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
6
+ /**
7
+ * @deprecated
8
+ * Use `createSimpleWorkerLanguageService` instead.
9
+ */
10
+ export const createSimpleWorkerService = createSimpleWorkerLanguageService;
11
+ /**
12
+ * @deprecated
13
+ * Use `createTypeScriptWorkerLanguageService` instead.
14
+ */
15
+ export const createTypeScriptWorkerService = createTypeScriptWorkerLanguageService;
16
+ export function createSimpleWorkerLanguageService({ env, workerContext, languagePlugins, languageServicePlugins, setup, }) {
7
17
  const snapshots = new Map();
8
18
  const language = createLanguage(languagePlugins, createUriMap(false), uri => {
9
19
  const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
@@ -27,9 +37,9 @@ export function createSimpleWorkerService({ env, workerContext, languagePlugins
27
37
  });
28
38
  const project = {};
29
39
  setup?.({ language, project });
30
- return createWorkerService(language, servicePlugins, env, project, extraApis);
40
+ return new WorkerLanguageService(createLanguageService(language, languageServicePlugins, env, project));
31
41
  }
32
- export function createTypeScriptWorkerService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
42
+ export function createTypeScriptWorkerLanguageService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, languageServicePlugins, setup, }) {
33
43
  let projectVersion = 0;
34
44
  const modelSnapshot = new WeakMap();
35
45
  const modelVersions = new Map();
@@ -72,14 +82,13 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
72
82
  typescript: {
73
83
  configFileName: undefined,
74
84
  sys,
75
- asFileName: uriConverter.asFileName,
76
- asUri: uriConverter.asUri,
77
- ...createLanguageServiceHost(ts, sys, language, uriConverter.asUri, {
85
+ uriConverter,
86
+ ...createLanguageServiceHost(ts, sys, language, s => uriConverter.asUri(s), {
78
87
  getCurrentDirectory() {
79
88
  return sys.getCurrentDirectory();
80
89
  },
81
90
  getScriptFileNames() {
82
- return workerContext.getMirrorModels().map(model => uriConverter.asFileName(model.uri));
91
+ return workerContext.getMirrorModels().map(model => uriConverter.asFileName(URI.from(model.uri)));
83
92
  },
84
93
  getProjectVersion() {
85
94
  const models = workerContext.getMirrorModels();
@@ -106,7 +115,7 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
106
115
  },
107
116
  };
108
117
  setup?.({ language, project });
109
- return createWorkerService(language, servicePlugins, env, project, extraApis);
118
+ return new WorkerLanguageService(createLanguageService(language, languageServicePlugins, env, project));
110
119
  function getModelSnapshot(uri) {
111
120
  const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
112
121
  if (model) {
@@ -124,23 +133,179 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
124
133
  }
125
134
  }
126
135
  }
127
- function createWorkerService(language, servicePlugins, env, projectContext, extraApis = {}) {
128
- const languageService = _createLanguageService(language, servicePlugins, env, projectContext);
129
- class WorkerService {
130
- }
131
- ;
132
- for (const api in languageService) {
133
- const isFunction = typeof languageService[api] === 'function';
134
- if (isFunction) {
135
- WorkerService.prototype[api] = languageService[api];
136
- }
136
+ export class WorkerLanguageService {
137
+ constructor(languageService) {
138
+ this.languageService = languageService;
139
+ this.pendingRequests = new Map();
140
+ }
141
+ getSemanticTokenLegend() {
142
+ return this.languageService.semanticTokenLegend;
143
+ }
144
+ getCommands() {
145
+ return this.languageService.commands;
146
+ }
147
+ getTriggerCharacters() {
148
+ return this.languageService.triggerCharacters;
149
+ }
150
+ getAutoFormatTriggerCharacters() {
151
+ return this.languageService.autoFormatTriggerCharacters;
152
+ }
153
+ getSignatureHelpTriggerCharacters() {
154
+ return this.languageService.signatureHelpTriggerCharacters;
155
+ }
156
+ getSignatureHelpRetriggerCharacters() {
157
+ return this.languageService.signatureHelpRetriggerCharacters;
158
+ }
159
+ executeCommand(requestId, ...args) {
160
+ return this.withToken(requestId, token => this.languageService.executeCommand(...args, token));
161
+ }
162
+ getDocumentFormattingEdits(requestId, uri, ...restArgs) {
163
+ return this.withToken(requestId, token => this.languageService.getDocumentFormattingEdits(URI.from(uri), ...restArgs, token));
164
+ }
165
+ getFoldingRanges(requestId, uri, ...restArgs) {
166
+ return this.withToken(requestId, token => this.languageService.getFoldingRanges(URI.from(uri), ...restArgs, token));
167
+ }
168
+ getSelectionRanges(requestId, uri, ...restArgs) {
169
+ return this.withToken(requestId, token => this.languageService.getSelectionRanges(URI.from(uri), ...restArgs, token));
170
+ }
171
+ getLinkedEditingRanges(requestId, uri, ...restArgs) {
172
+ return this.withToken(requestId, token => this.languageService.getLinkedEditingRanges(URI.from(uri), ...restArgs, token));
173
+ }
174
+ getDocumentSymbols(requestId, uri, ...restArgs) {
175
+ return this.withToken(requestId, token => this.languageService.getDocumentSymbols(URI.from(uri), ...restArgs, token));
176
+ }
177
+ getDocumentColors(requestId, uri, ...restArgs) {
178
+ return this.withToken(requestId, token => this.languageService.getDocumentColors(URI.from(uri), ...restArgs, token));
179
+ }
180
+ getColorPresentations(requestId, uri, ...restArgs) {
181
+ return this.withToken(requestId, token => this.languageService.getColorPresentations(URI.from(uri), ...restArgs, token));
182
+ }
183
+ getDiagnostics(requestId, uri, ...restArgs) {
184
+ return this.withToken(requestId, token => this.languageService.getDiagnostics(URI.from(uri), ...restArgs, token));
185
+ }
186
+ getWorkspaceDiagnostics(requestId) {
187
+ return this.withToken(requestId, token => this.languageService.getWorkspaceDiagnostics(token));
188
+ }
189
+ getReferences(requestId, uri, ...restArgs) {
190
+ return this.withToken(requestId, token => this.languageService.getReferences(URI.from(uri), ...restArgs, token));
191
+ }
192
+ getFileReferences(requestId, uri, ...restArgs) {
193
+ return this.withToken(requestId, token => this.languageService.getFileReferences(URI.from(uri), ...restArgs, token));
194
+ }
195
+ getDefinition(requestId, uri, ...restArgs) {
196
+ return this.withToken(requestId, token => this.languageService.getDefinition(URI.from(uri), ...restArgs, token));
197
+ }
198
+ getTypeDefinition(requestId, uri, ...restArgs) {
199
+ return this.withToken(requestId, token => this.languageService.getTypeDefinition(URI.from(uri), ...restArgs, token));
200
+ }
201
+ getImplementations(requestId, uri, ...restArgs) {
202
+ return this.withToken(requestId, token => this.languageService.getImplementations(URI.from(uri), ...restArgs, token));
203
+ }
204
+ getRenameRange(requestId, uri, ...restArgs) {
205
+ return this.withToken(requestId, token => this.languageService.getRenameRange(URI.from(uri), ...restArgs, token));
206
+ }
207
+ getRenameEdits(requestId, uri, ...restArgs) {
208
+ return this.withToken(requestId, token => this.languageService.getRenameEdits(URI.from(uri), ...restArgs, token));
209
+ }
210
+ getFileRenameEdits(requestId, uri, ...restArgs) {
211
+ return this.withToken(requestId, token => this.languageService.getFileRenameEdits(URI.from(uri), ...restArgs, token));
137
212
  }
138
- for (const api in extraApis) {
139
- const isFunction = typeof extraApis[api] === 'function';
140
- if (isFunction) {
141
- WorkerService.prototype[api] = extraApis[api];
213
+ getSemanticTokens(requestId, uri, ...restArgs) {
214
+ return this.withToken(requestId, token => this.languageService.getSemanticTokens(URI.from(uri), ...restArgs, token));
215
+ }
216
+ getHover(requestId, uri, ...restArgs) {
217
+ return this.withToken(requestId, token => this.languageService.getHover(URI.from(uri), ...restArgs, token));
218
+ }
219
+ getCompletionItems(requestId, uri, ...restArgs) {
220
+ return this.withToken(requestId, token => this.languageService.getCompletionItems(URI.from(uri), ...restArgs, token));
221
+ }
222
+ getCodeActions(requestId, uri, ...restArgs) {
223
+ return this.withToken(requestId, token => this.languageService.getCodeActions(URI.from(uri), ...restArgs, token));
224
+ }
225
+ getSignatureHelp(requestId, uri, ...restArgs) {
226
+ return this.withToken(requestId, token => this.languageService.getSignatureHelp(URI.from(uri), ...restArgs, token));
227
+ }
228
+ getCodeLenses(requestId, uri, ...restArgs) {
229
+ return this.withToken(requestId, token => this.languageService.getCodeLenses(URI.from(uri), ...restArgs, token));
230
+ }
231
+ getDocumentHighlights(requestId, uri, ...restArgs) {
232
+ return this.withToken(requestId, token => this.languageService.getDocumentHighlights(URI.from(uri), ...restArgs, token));
233
+ }
234
+ getDocumentLinks(requestId, uri, ...restArgs) {
235
+ return this.withToken(requestId, token => this.languageService.getDocumentLinks(URI.from(uri), ...restArgs, token));
236
+ }
237
+ getWorkspaceSymbols(requestId, ...args) {
238
+ return this.withToken(requestId, token => this.languageService.getWorkspaceSymbols(...args, token));
239
+ }
240
+ getAutoInsertSnippet(requestId, uri, ...restArgs) {
241
+ return this.withToken(requestId, token => this.languageService.getAutoInsertSnippet(URI.from(uri), ...restArgs, token));
242
+ }
243
+ getDocumentDropEdits(requestId, uri, ...restArgs) {
244
+ return this.withToken(requestId, token => this.languageService.getDocumentDropEdits(URI.from(uri), ...restArgs, token));
245
+ }
246
+ getInlayHints(requestId, uri, ...restArgs) {
247
+ return this.withToken(requestId, token => this.languageService.getInlayHints(URI.from(uri), ...restArgs, token));
248
+ }
249
+ resolveCodeAction(requestId, ...args) {
250
+ return this.withToken(requestId, token => this.languageService.resolveCodeAction(...args, token));
251
+ }
252
+ resolveCompletionItem(requestId, ...args) {
253
+ return this.withToken(requestId, token => this.languageService.resolveCompletionItem(...args, token));
254
+ }
255
+ resolveCodeLens(requestId, ...args) {
256
+ return this.withToken(requestId, token => this.languageService.resolveCodeLens(...args, token));
257
+ }
258
+ resolveDocumentLink(requestId, ...args) {
259
+ return this.withToken(requestId, token => this.languageService.resolveDocumentLink(...args, token));
260
+ }
261
+ resolveInlayHint(requestId, ...args) {
262
+ return this.withToken(requestId, token => this.languageService.resolveInlayHint(...args, token));
263
+ }
264
+ resolveWorkspaceSymbol(requestId, ...args) {
265
+ return this.withToken(requestId, token => this.languageService.resolveWorkspaceSymbol(...args, token));
266
+ }
267
+ getCallHierarchyItems(requestId, uri, ...restArgs) {
268
+ return this.withToken(requestId, token => this.languageService.getCallHierarchyItems(URI.from(uri), ...restArgs, token));
269
+ }
270
+ getCallHierarchyIncomingCalls(requestId, ...args) {
271
+ return this.withToken(requestId, token => this.languageService.getCallHierarchyIncomingCalls(...args, token));
272
+ }
273
+ getCallHierarchyOutgoingCalls(requestId, ...args) {
274
+ return this.withToken(requestId, token => this.languageService.getCallHierarchyOutgoingCalls(...args, token));
275
+ }
276
+ dispose() {
277
+ this.languageService.dispose();
278
+ }
279
+ cancelRequest(requestId) {
280
+ this.pendingRequests.delete(requestId);
281
+ }
282
+ async withToken(requestId, fn) {
283
+ const { pendingRequests } = this;
284
+ const token = {
285
+ get isCancellationRequested() {
286
+ return !!pendingRequests.has(requestId);
287
+ },
288
+ onCancellationRequested(cb) {
289
+ let callbacks = pendingRequests.get(requestId);
290
+ if (!callbacks) {
291
+ callbacks = new Set();
292
+ pendingRequests.set(requestId, callbacks);
293
+ }
294
+ callbacks.add(cb);
295
+ return {
296
+ dispose() {
297
+ callbacks.delete(cb);
298
+ },
299
+ };
300
+ },
301
+ };
302
+ this.pendingRequests.set(requestId, undefined);
303
+ try {
304
+ return await fn(token);
305
+ }
306
+ finally {
307
+ this.pendingRequests.delete(requestId);
142
308
  }
143
309
  }
144
- return new WorkerService();
145
310
  }
146
311
  //# sourceMappingURL=worker.js.map
package/lib/ata.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import type { LanguageServiceEnvironment } from '@volar/language-service';
2
- import type { URI } from 'vscode-uri';
3
- export declare function activateAutomaticTypeAcquisition(env: LanguageServiceEnvironment, uriConverter: {
4
- asFileName(uri: URI): string;
5
- }, onFetch?: (path: string, content: string) => void): void;