@volar/monaco 2.4.0-alpha.6 → 2.4.0-alpha.8

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
@@ -35,7 +35,7 @@ self.onmessage = () => {
35
35
  languagePlugins: [
36
36
  // ...
37
37
  ],
38
- servicePlugins: [
38
+ languageServicePlugins: [
39
39
  // ...
40
40
  ],
41
41
  });
@@ -49,36 +49,34 @@ self.onmessage = () => {
49
49
  import * as worker from 'monaco-editor-core/esm/vs/editor/editor.worker';
50
50
  import type * as monaco from 'monaco-editor-core';
51
51
  -import { createSimpleWorkerService, ServiceEnvironment } from '@volar/monaco/worker';
52
- +import {
53
- + createTypeScriptWorkerService,
54
- + ServiceEnvironment,
55
- +} from '@volar/monaco/worker';
52
+ +import { createTypeScriptWorkerService, ServiceEnvironment } from '@volar/monaco/worker';
56
53
  +import * as ts from 'typescript';
57
- +import { create as createTypeScriptService } from 'volar-service-typescript';
54
+ +import { create as createTypeScriptPlugins } from 'volar-service-typescript';
55
+ +import { URI } from 'vscode-uri';
58
56
 
59
57
  self.onmessage = () => {
60
58
  worker.initialize((ctx: monaco.worker.IWorkerContext) => {
61
59
  const env: ServiceEnvironment = {
62
60
  workspaceFolder: 'file:///',
63
- + typescript: {
64
- + uriToFileName: uri => uri.substring('file://'.length),
65
- + fileNameToUri: fileName => 'file://' + fileName,
66
- + },
67
61
  };
68
62
  - return createSimpleWorkerService({
69
63
  + return createTypeScriptWorkerService({
70
64
  + typescript: ts,
71
65
  + compilerOptions: {
72
66
  + // ...
67
+ + },
68
+ + uriConverter: {
69
+ + asFileName: uri => uri.fsPath,
70
+ + asUri: fileName => URI.file(fileName),
73
71
  + },
74
72
  workerContext: ctx,
75
73
  env,
76
74
  languagePlugins: [
77
75
  // ...
78
76
  ],
79
- servicePlugins: [
77
+ languageServicePlugins: [
80
78
  // ...
81
- + createTypeScriptService(ts),
79
+ + ...createTypeScriptPlugins(ts),
82
80
  ],
83
81
  });
84
82
  });
@@ -90,11 +88,8 @@ self.onmessage = () => {
90
88
  ```diff
91
89
  import * as worker from 'monaco-editor-core/esm/vs/editor/editor.worker';
92
90
  import type * as monaco from 'monaco-editor-core';
93
- import {
94
- createTypeScriptWorkerService,
95
- ServiceEnvironment,
96
- + activateAutomaticTypeAcquisition,
97
- } from '@volar/monaco/worker';
91
+ import { createTypeScriptWorkerService, ServiceEnvironment } from '@volar/monaco/worker';
92
+ +import { createNpmFileSystem } from '@volar/jsdelivr';
98
93
  import * as ts from 'typescript';
99
94
  import { create as createTypeScriptService } from 'volar-service-typescript';
100
95
 
@@ -107,7 +102,7 @@ self.onmessage = () => {
107
102
  fileNameToUri: fileName => 'file://' + fileName,
108
103
  },
109
104
  };
110
- + activateAutomaticTypeAcquisition(env);
105
+ + env.fs = createNpmFileSystem();
111
106
  return createTypeScriptWorkerService({
112
107
  typescript: ts,
113
108
  compilerOptions: {
@@ -118,7 +113,7 @@ self.onmessage = () => {
118
113
  languagePlugins: [
119
114
  // ...
120
115
  ],
121
- servicePlugins: [
116
+ languageServicePlugins: [
122
117
  // ...
123
118
  createTypeScriptService(ts),
124
119
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/monaco",
3
- "version": "2.4.0-alpha.6",
3
+ "version": "2.4.0-alpha.8",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "files": [
@@ -13,14 +13,13 @@
13
13
  "directory": "packages/monaco"
14
14
  },
15
15
  "dependencies": {
16
- "@volar/language-service": "2.4.0-alpha.6",
17
- "@volar/typescript": "2.4.0-alpha.6",
16
+ "@volar/language-service": "2.4.0-alpha.8",
17
+ "@volar/typescript": "2.4.0-alpha.8",
18
18
  "monaco-languageserver-types": "^0.3.4",
19
19
  "monaco-types": "^0.1.0",
20
20
  "vscode-uri": "^3.0.8"
21
21
  },
22
22
  "devDependencies": {
23
23
  "monaco-editor-core": "latest"
24
- },
25
- "gitHead": "7e6c0b8fb66d09037b3540bbac2c4d976b1110ce"
24
+ }
26
25
  }
package/worker.d.ts CHANGED
@@ -3,12 +3,11 @@ import type * as monaco from 'monaco-types';
3
3
  import type * as ts from 'typescript';
4
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
+ export declare function createSimpleWorkerService<T = {}>({ env, workerContext, languagePlugins, languageServicePlugins, extraApis, setup, }: {
8
7
  env: LanguageServiceEnvironment;
9
8
  workerContext: monaco.worker.IWorkerContext<any>;
10
- languagePlugins?: LanguagePlugin<URI>[];
11
- servicePlugins?: LanguageServicePlugin[];
9
+ languagePlugins: LanguagePlugin<URI>[];
10
+ languageServicePlugins: LanguageServicePlugin[];
12
11
  extraApis?: T;
13
12
  setup?(options: {
14
13
  language: Language<URI>;
@@ -30,47 +29,47 @@ export declare function createSimpleWorkerService<T = {}>({ env, workerContext,
30
29
  getSignatureHelpTriggerCharacters: () => string[];
31
30
  getSignatureHelpRetriggerCharacters: () => string[];
32
31
  executeCommand(command: string, args: any[], token?: import("@volar/language-service").CancellationToken): any;
33
- getDocumentFormattingEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
32
+ getDocumentFormattingEdits: (_uri: URI | import("@volar/language-service").UriComponents, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
34
33
  ch: string;
35
34
  position: import("@volar/language-service").Position;
36
35
  } | undefined, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").TextEdit[] | undefined>;
37
- getFoldingRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
38
- getSelectionRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
39
- getLinkedEditingRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
40
- getDocumentSymbols: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
41
- getDocumentColors: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
42
- getColorPresentations: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
36
+ getFoldingRanges: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
37
+ getSelectionRanges: (_uri: URI | import("@volar/language-service").UriComponents, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
38
+ getLinkedEditingRanges: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
39
+ getDocumentSymbols: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
40
+ getDocumentColors: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
41
+ getColorPresentations: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
42
+ getDiagnostics: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
44
43
  getWorkspaceDiagnostics: (token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceDocumentDiagnosticReport[]>;
45
- getReferences: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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>;
44
+ getReferences: (_uri: URI | import("@volar/language-service").UriComponents, 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
45
  getFileReferences: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => import("@volar/language-service/lib/types.js").NullableProviderResult<import("@volar/language-service").Location[]>;
47
- getDefinition: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
48
- getTypeDefinition: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
49
- getImplementations: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
46
+ getDefinition: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
47
+ getTypeDefinition: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
48
+ getImplementations: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
50
49
  getRenameRange: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Range | {
51
50
  range: import("@volar/language-service").Range;
52
51
  placeholder: string;
53
52
  } | {
54
53
  message: string;
55
54
  } | undefined>;
56
- getRenameEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
55
+ getRenameEdits: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
57
56
  getFileRenameEdits: (_oldUri: URI | import("@volar/language-service/lib/types.js").UriComponents, _newUri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
58
- getSemanticTokens: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
60
- getCompletionItems: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
64
- getDocumentHighlights: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
65
- getDocumentLinks: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
57
+ getSemanticTokens: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
58
+ getHover: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
59
+ getCompletionItems: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, completionContext?: import("@volar/language-service").CompletionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionList>;
60
+ getCodeActions: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
61
+ getSignatureHelp: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
62
+ getCodeLenses: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
63
+ getDocumentHighlights: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
64
+ getDocumentLinks: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
66
65
  getWorkspaceSymbols: (query: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol[]>;
67
- getAutoInsertSnippet: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, selection: import("@volar/language-service").Position, change: {
66
+ getAutoInsertSnippet: (_uri: URI | import("@volar/language-service").UriComponents, selection: import("@volar/language-service").Position, change: {
68
67
  rangeOffset: number;
69
68
  rangeLength: number;
70
69
  text: string;
71
70
  }, token?: import("@volar/language-service").CancellationToken) => Promise<string | undefined>;
72
71
  getDocumentDropEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
72
+ getInlayHints: (_uri: URI | import("@volar/language-service").UriComponents, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
74
73
  resolveCodeAction: (item: import("@volar/language-service").CodeAction, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction>;
75
74
  resolveCompletionItem: (item: import("@volar/language-service").CompletionItem, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionItem>;
76
75
  resolveCodeLens: (item: import("@volar/language-service").CodeLens, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens>;
@@ -78,7 +77,7 @@ export declare function createSimpleWorkerService<T = {}>({ env, workerContext,
78
77
  resolveInlayHint: (item: import("@volar/language-service").InlayHint, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint>;
79
78
  resolveWorkspaceSymbol: (symbol: import("@volar/language-service").WorkspaceSymbol, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol>;
80
79
  } & T;
81
- export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, servicePlugins, extraApis, setup, }: {
80
+ export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, languageServicePlugins, extraApis, setup, }: {
82
81
  typescript: typeof import('typescript');
83
82
  compilerOptions: ts.CompilerOptions;
84
83
  env: LanguageServiceEnvironment;
@@ -87,8 +86,8 @@ export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts,
87
86
  asFileName(uri: URI): string;
88
87
  };
89
88
  workerContext: monaco.worker.IWorkerContext<any>;
90
- languagePlugins?: LanguagePlugin<URI>[];
91
- servicePlugins?: LanguageServicePlugin[];
89
+ languagePlugins: LanguagePlugin<URI>[];
90
+ languageServicePlugins: LanguageServicePlugin[];
92
91
  extraApis?: T;
93
92
  setup?(options: {
94
93
  language: Language<URI>;
@@ -110,47 +109,47 @@ export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts,
110
109
  getSignatureHelpTriggerCharacters: () => string[];
111
110
  getSignatureHelpRetriggerCharacters: () => string[];
112
111
  executeCommand(command: string, args: any[], token?: import("@volar/language-service").CancellationToken): any;
113
- getDocumentFormattingEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
112
+ getDocumentFormattingEdits: (_uri: URI | import("@volar/language-service").UriComponents, options: import("@volar/language-service").FormattingOptions, range: import("@volar/language-service").Range | undefined, onTypeParams: {
114
113
  ch: string;
115
114
  position: import("@volar/language-service").Position;
116
115
  } | undefined, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").TextEdit[] | undefined>;
117
- getFoldingRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
118
- getSelectionRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
119
- getLinkedEditingRanges: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
120
- getDocumentSymbols: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
121
- getDocumentColors: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
122
- getColorPresentations: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
116
+ getFoldingRanges: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").FoldingRange[] | undefined>;
117
+ getSelectionRanges: (_uri: URI | import("@volar/language-service").UriComponents, positions: import("@volar/language-service").Position[], token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").SelectionRange[] | undefined>;
118
+ getLinkedEditingRanges: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LinkedEditingRanges | undefined>;
119
+ getDocumentSymbols: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentSymbol[] | undefined>;
120
+ getDocumentColors: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").ColorInformation[] | undefined>;
121
+ getColorPresentations: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
122
+ getDiagnostics: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken, response?: (result: import("@volar/language-service").Diagnostic[]) => void) => Promise<import("@volar/language-service").Diagnostic[]>;
124
123
  getWorkspaceDiagnostics: (token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceDocumentDiagnosticReport[]>;
125
- getReferences: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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>;
124
+ getReferences: (_uri: URI | import("@volar/language-service").UriComponents, 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
125
  getFileReferences: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => import("@volar/language-service/lib/types.js").NullableProviderResult<import("@volar/language-service").Location[]>;
127
- getDefinition: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
128
- getTypeDefinition: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
129
- getImplementations: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
126
+ getDefinition: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
127
+ getTypeDefinition: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
128
+ getImplementations: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").LocationLink[] | undefined>;
130
129
  getRenameRange: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Range | {
131
130
  range: import("@volar/language-service").Range;
132
131
  placeholder: string;
133
132
  } | {
134
133
  message: string;
135
134
  } | undefined>;
136
- getRenameEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
135
+ getRenameEdits: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, newName: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
137
136
  getFileRenameEdits: (_oldUri: URI | import("@volar/language-service/lib/types.js").UriComponents, _newUri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceEdit | undefined>;
138
- getSemanticTokens: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
140
- getCompletionItems: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
144
- getDocumentHighlights: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
145
- getDocumentLinks: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
137
+ getSemanticTokens: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
138
+ getHover: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").Hover | undefined>;
139
+ getCompletionItems: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, completionContext?: import("@volar/language-service").CompletionContext, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionList>;
140
+ getCodeActions: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
141
+ getSignatureHelp: (_uri: URI | import("@volar/language-service").UriComponents, 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>;
142
+ getCodeLenses: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens[]>;
143
+ getDocumentHighlights: (_uri: URI | import("@volar/language-service").UriComponents, position: import("@volar/language-service").Position, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentHighlight[] | undefined>;
144
+ getDocumentLinks: (_uri: URI | import("@volar/language-service").UriComponents, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").DocumentLink[]>;
146
145
  getWorkspaceSymbols: (query: string, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol[]>;
147
- getAutoInsertSnippet: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, selection: import("@volar/language-service").Position, change: {
146
+ getAutoInsertSnippet: (_uri: URI | import("@volar/language-service").UriComponents, selection: import("@volar/language-service").Position, change: {
148
147
  rangeOffset: number;
149
148
  rangeLength: number;
150
149
  text: string;
151
150
  }, token?: import("@volar/language-service").CancellationToken) => Promise<string | undefined>;
152
151
  getDocumentDropEdits: (_uri: URI | import("@volar/language-service/lib/types.js").UriComponents, 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 | import("@volar/language-service/lib/types.js").UriComponents, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
152
+ getInlayHints: (_uri: URI | import("@volar/language-service").UriComponents, range: import("@volar/language-service").Range, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint[] | undefined>;
154
153
  resolveCodeAction: (item: import("@volar/language-service").CodeAction, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeAction>;
155
154
  resolveCompletionItem: (item: import("@volar/language-service").CompletionItem, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CompletionItem>;
156
155
  resolveCodeLens: (item: import("@volar/language-service").CodeLens, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").CodeLens>;
package/worker.js CHANGED
@@ -2,9 +2,8 @@ import { createLanguageService as _createLanguageService, createLanguage, create
2
2
  import { createLanguageServiceHost, createSys, resolveFileLanguageId } from '@volar/typescript';
3
3
  import { URI } from 'vscode-uri';
4
4
  export * from '@volar/language-service';
5
- export * from './lib/ata.js';
6
5
  const fsFileSnapshots = createUriMap();
7
- export function createSimpleWorkerService({ env, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
6
+ export function createSimpleWorkerService({ env, workerContext, languagePlugins, languageServicePlugins, extraApis = {}, setup, }) {
8
7
  const snapshots = new Map();
9
8
  const language = createLanguage(languagePlugins, createUriMap(false), uri => {
10
9
  const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
@@ -28,9 +27,9 @@ export function createSimpleWorkerService({ env, workerContext, languagePlugins
28
27
  });
29
28
  const project = {};
30
29
  setup?.({ language, project });
31
- return createWorkerService(language, servicePlugins, env, project, extraApis);
30
+ return createWorkerService(language, languageServicePlugins, env, project, extraApis);
32
31
  }
33
- export function createTypeScriptWorkerService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
32
+ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, languageServicePlugins, extraApis = {}, setup, }) {
34
33
  let projectVersion = 0;
35
34
  const modelSnapshot = new WeakMap();
36
35
  const modelVersions = new Map();
@@ -107,7 +106,7 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
107
106
  },
108
107
  };
109
108
  setup?.({ language, project });
110
- return createWorkerService(language, servicePlugins, env, project, extraApis);
109
+ return createWorkerService(language, languageServicePlugins, env, project, extraApis);
111
110
  function getModelSnapshot(uri) {
112
111
  const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
113
112
  if (model) {
package/lib/ata.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { FileSystem } from '@volar/language-service';
2
- import type { URI } from 'vscode-uri';
3
- export declare function createJsDelivrNpmFileSystem(getCdnPath?: (uri: URI) => string | undefined, getPackageVersion?: (pkgName: string) => string | undefined, onFetch?: (path: string, content: string) => void): FileSystem;
package/lib/ata.js DELETED
@@ -1,216 +0,0 @@
1
- const textCache = new Map();
2
- const jsonCache = new Map();
3
- export function createJsDelivrNpmFileSystem(getCdnPath = (uri) => {
4
- if (uri.path === '/node_modules') {
5
- return '';
6
- }
7
- else if (uri.path.startsWith('/node_modules/')) {
8
- return uri.path.slice('/node_modules'.length);
9
- }
10
- }, getPackageVersion, onFetch) {
11
- const fetchResults = new Map();
12
- const flatResults = new Map();
13
- return {
14
- async stat(uri) {
15
- const path = getCdnPath(uri);
16
- if (path === undefined) {
17
- return;
18
- }
19
- if (path === '') {
20
- return {
21
- type: 2,
22
- size: -1,
23
- ctime: -1,
24
- mtime: -1,
25
- };
26
- }
27
- return await _stat(path);
28
- },
29
- async readFile(uri) {
30
- const path = getCdnPath(uri);
31
- if (path === undefined) {
32
- return;
33
- }
34
- return await _readFile(path);
35
- },
36
- readDirectory(uri) {
37
- const path = getCdnPath(uri);
38
- if (path === undefined) {
39
- return [];
40
- }
41
- return _readDirectory(path);
42
- },
43
- };
44
- async function _stat(path) {
45
- const resolved = resolvePackageName(path);
46
- if (!resolved || !await isValidPackageName(resolved[1])) {
47
- return;
48
- }
49
- if (!flatResults.has(resolved[0])) {
50
- flatResults.set(resolved[0], flat(resolved[1], resolved[2]));
51
- }
52
- const flatResult = await flatResults.get(resolved[0]);
53
- const filePath = path.slice(resolved[0].length);
54
- const file = flatResult.find(file => file.name === filePath);
55
- if (file) {
56
- return {
57
- type: 1,
58
- ctime: new Date(file.time).valueOf(),
59
- mtime: new Date(file.time).valueOf(),
60
- size: file.size,
61
- };
62
- }
63
- else if (flatResult.some(file => file.name.startsWith(filePath + '/'))) {
64
- return {
65
- type: 2,
66
- ctime: -1,
67
- mtime: -1,
68
- size: -1,
69
- };
70
- }
71
- }
72
- async function _readDirectory(path) {
73
- const resolved = resolvePackageName(path);
74
- if (!resolved || !await isValidPackageName(resolved[1])) {
75
- return [];
76
- }
77
- if (!flatResults.has(resolved[0])) {
78
- flatResults.set(resolved[0], flat(resolved[1], resolved[2]));
79
- }
80
- const flatResult = await flatResults.get(resolved[0]);
81
- const dirPath = path.slice(resolved[0].length);
82
- const files = flatResult
83
- .filter(f => f.name.substring(0, f.name.lastIndexOf('/')) === dirPath)
84
- .map(f => f.name.slice(dirPath.length + 1));
85
- const dirs = flatResult
86
- .filter(f => f.name.startsWith(dirPath + '/') && f.name.substring(dirPath.length + 1).split('/').length >= 2)
87
- .map(f => f.name.slice(dirPath.length + 1).split('/')[0]);
88
- return [
89
- ...files.map(f => [f, 1]),
90
- ...[...new Set(dirs)].map(f => [f, 2]),
91
- ];
92
- }
93
- async function _readFile(path) {
94
- const resolved = resolvePackageName(path);
95
- if (!resolved || !await isValidPackageName(resolved[1])) {
96
- return;
97
- }
98
- if (!fetchResults.has(path)) {
99
- fetchResults.set(path, (async () => {
100
- if ((await _stat(path))?.type !== 1) {
101
- return;
102
- }
103
- const text = await fetchText(`https://cdn.jsdelivr.net/npm/${path}`);
104
- if (text !== undefined) {
105
- onFetch?.(path, text);
106
- }
107
- return text;
108
- })());
109
- }
110
- return await fetchResults.get(path);
111
- }
112
- async function flat(pkgName, version) {
113
- version ??= 'latest';
114
- // resolve latest tag
115
- if (version === 'latest') {
116
- const data = await fetchJson(`https://data.jsdelivr.com/v1/package/resolve/npm/${pkgName}@${version}`);
117
- if (!data?.version) {
118
- return [];
119
- }
120
- version = data.version;
121
- }
122
- const flat = await fetchJson(`https://data.jsdelivr.com/v1/package/npm/${pkgName}@${version}/flat`);
123
- if (!flat) {
124
- return [];
125
- }
126
- return flat.files;
127
- }
128
- async function isValidPackageName(pkgName) {
129
- // ignore @aaa/node_modules
130
- if (pkgName.endsWith('/node_modules')) {
131
- return false;
132
- }
133
- // hard code for known invalid package
134
- if (pkgName.startsWith('@typescript/') || pkgName.startsWith('@types/typescript__')) {
135
- return false;
136
- }
137
- // don't check @types if original package already having types
138
- if (pkgName.startsWith('@types/')) {
139
- let originalPkgName = pkgName.slice('@types/'.length);
140
- if (originalPkgName.indexOf('__') >= 0) {
141
- originalPkgName = '@' + originalPkgName.replace('__', '/');
142
- }
143
- const packageJson = await _readFile(`${originalPkgName}/package.json`);
144
- if (packageJson) {
145
- const packageJsonObj = JSON.parse(packageJson);
146
- if (packageJsonObj.types || packageJsonObj.typings) {
147
- return false;
148
- }
149
- const indexDts = await _stat(`${originalPkgName}/index.d.ts`);
150
- if (indexDts?.type === 1) {
151
- return false;
152
- }
153
- }
154
- }
155
- return true;
156
- }
157
- /**
158
- * @example
159
- * "a/b/c" -> "a"
160
- * "@a/b/c" -> "@a/b"
161
- * "@a/b@1.2.3/c" -> "@a/b@1.2.3"
162
- */
163
- function resolvePackageName(path) {
164
- const parts = path.split('/');
165
- let modName = parts[0];
166
- if (modName.startsWith('@')) {
167
- if (!parts[1]) {
168
- return;
169
- }
170
- modName += '/' + parts[1];
171
- }
172
- let pkgName = modName;
173
- let version;
174
- if (modName.lastIndexOf('@') >= 1) {
175
- pkgName = modName.substring(0, modName.lastIndexOf('@'));
176
- version = modName.substring(modName.lastIndexOf('@') + 1);
177
- }
178
- if (!version && getPackageVersion) {
179
- getPackageVersion?.(pkgName);
180
- }
181
- return [modName, pkgName, version];
182
- }
183
- }
184
- async function fetchText(url) {
185
- if (!textCache.has(url)) {
186
- textCache.set(url, (async () => {
187
- try {
188
- const res = await fetch(url);
189
- if (res.status === 200) {
190
- return await res.text();
191
- }
192
- }
193
- catch {
194
- // ignore
195
- }
196
- })());
197
- }
198
- return await textCache.get(url);
199
- }
200
- async function fetchJson(url) {
201
- if (!jsonCache.has(url)) {
202
- jsonCache.set(url, (async () => {
203
- try {
204
- const res = await fetch(url);
205
- if (res.status === 200) {
206
- return await res.json();
207
- }
208
- }
209
- catch {
210
- // ignore
211
- }
212
- })());
213
- }
214
- return await jsonCache.get(url);
215
- }
216
- //# sourceMappingURL=ata.js.map