@volar/monaco 2.4.0-alpha.0 → 2.4.0-alpha.2
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/package.json +4 -4
- package/worker.d.ts +11 -3
- package/worker.js +44 -39
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/monaco",
|
|
3
|
-
"version": "2.4.0-alpha.
|
|
3
|
+
"version": "2.4.0-alpha.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"directory": "packages/monaco"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@volar/language-service": "2.4.0-alpha.
|
|
17
|
-
"@volar/typescript": "2.4.0-alpha.
|
|
16
|
+
"@volar/language-service": "2.4.0-alpha.2",
|
|
17
|
+
"@volar/typescript": "2.4.0-alpha.2",
|
|
18
18
|
"monaco-languageserver-types": "^0.3.4",
|
|
19
19
|
"monaco-types": "^0.1.0",
|
|
20
20
|
"vscode-uri": "^3.0.8"
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"monaco-editor-core": "latest"
|
|
24
24
|
},
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "62914047f925b79391fee6e4f697705b77641baf"
|
|
26
26
|
}
|
package/worker.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { LanguagePlugin, LanguageServicePlugin, type LanguageServiceEnvironment } from '@volar/language-service';
|
|
1
|
+
import { Language, LanguagePlugin, LanguageServicePlugin, ProjectContext, type LanguageServiceEnvironment } from '@volar/language-service';
|
|
2
2
|
import type * as monaco from 'monaco-types';
|
|
3
3
|
import type * as ts from 'typescript';
|
|
4
4
|
import type { URI } from 'vscode-uri';
|
|
5
5
|
export * from '@volar/language-service';
|
|
6
6
|
export * from './lib/ata.js';
|
|
7
|
-
export declare function createSimpleWorkerService<T = {}>({ env, workerContext, languagePlugins, servicePlugins, extraApis, }: {
|
|
7
|
+
export declare function createSimpleWorkerService<T = {}>({ env, workerContext, languagePlugins, servicePlugins, extraApis, setup, }: {
|
|
8
8
|
env: LanguageServiceEnvironment;
|
|
9
9
|
workerContext: monaco.worker.IWorkerContext<any>;
|
|
10
10
|
languagePlugins?: LanguagePlugin<URI>[];
|
|
11
11
|
servicePlugins?: LanguageServicePlugin[];
|
|
12
12
|
extraApis?: T;
|
|
13
|
+
setup?(options: {
|
|
14
|
+
language: Language<URI>;
|
|
15
|
+
project: ProjectContext;
|
|
16
|
+
}): void;
|
|
13
17
|
}): {
|
|
14
18
|
dispose: () => void;
|
|
15
19
|
context: import("@volar/language-service").LanguageServiceContext;
|
|
@@ -74,7 +78,7 @@ export declare function createSimpleWorkerService<T = {}>({ env, workerContext,
|
|
|
74
78
|
resolveInlayHint: (item: import("@volar/language-service").InlayHint, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").InlayHint>;
|
|
75
79
|
resolveWorkspaceSymbol: (symbol: import("@volar/language-service").WorkspaceSymbol, token?: import("@volar/language-service").CancellationToken) => Promise<import("@volar/language-service").WorkspaceSymbol>;
|
|
76
80
|
} & T;
|
|
77
|
-
export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, servicePlugins, extraApis, }: {
|
|
81
|
+
export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins, servicePlugins, extraApis, setup, }: {
|
|
78
82
|
typescript: typeof import('typescript');
|
|
79
83
|
compilerOptions: ts.CompilerOptions;
|
|
80
84
|
env: LanguageServiceEnvironment;
|
|
@@ -86,6 +90,10 @@ export declare function createTypeScriptWorkerService<T = {}>({ typescript: ts,
|
|
|
86
90
|
languagePlugins?: LanguagePlugin<URI>[];
|
|
87
91
|
servicePlugins?: LanguageServicePlugin[];
|
|
88
92
|
extraApis?: T;
|
|
93
|
+
setup?(options: {
|
|
94
|
+
language: Language<URI>;
|
|
95
|
+
project: ProjectContext;
|
|
96
|
+
}): void;
|
|
89
97
|
}): {
|
|
90
98
|
dispose: () => void;
|
|
91
99
|
context: import("@volar/language-service").LanguageServiceContext;
|
package/worker.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createLanguageServiceHost, createSys, resolveFileLanguageId } from '@vo
|
|
|
3
3
|
export * from '@volar/language-service';
|
|
4
4
|
export * from './lib/ata.js';
|
|
5
5
|
const fsFileSnapshots = createUriMap();
|
|
6
|
-
export function createSimpleWorkerService({ env, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, }) {
|
|
6
|
+
export function createSimpleWorkerService({ env, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
|
|
7
7
|
const snapshots = new Map();
|
|
8
8
|
const language = createLanguage(languagePlugins, createUriMap(false), uri => {
|
|
9
9
|
const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
|
|
@@ -25,9 +25,11 @@ export function createSimpleWorkerService({ env, workerContext, languagePlugins
|
|
|
25
25
|
language.scripts.delete(uri);
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
-
|
|
28
|
+
const project = {};
|
|
29
|
+
setup?.({ language, project });
|
|
30
|
+
return createWorkerService(language, servicePlugins, env, project, extraApis);
|
|
29
31
|
}
|
|
30
|
-
export function createTypeScriptWorkerService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, }) {
|
|
32
|
+
export function createTypeScriptWorkerService({ typescript: ts, compilerOptions, env, uriConverter, workerContext, languagePlugins = [], servicePlugins = [], extraApis = {}, setup, }) {
|
|
31
33
|
let projectVersion = 0;
|
|
32
34
|
const modelSnapshot = new WeakMap();
|
|
33
35
|
const modelVersions = new Map();
|
|
@@ -66,42 +68,45 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
|
|
|
66
68
|
language.scripts.delete(uri);
|
|
67
69
|
}
|
|
68
70
|
});
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
71
|
+
const project = {
|
|
72
|
+
typescript: {
|
|
73
|
+
configFileName: undefined,
|
|
74
|
+
sys,
|
|
75
|
+
asFileName: uriConverter.asFileName,
|
|
76
|
+
asUri: uriConverter.asUri,
|
|
77
|
+
...createLanguageServiceHost(ts, sys, language, uriConverter.asUri, {
|
|
78
|
+
getCurrentDirectory() {
|
|
79
|
+
return sys.getCurrentDirectory();
|
|
80
|
+
},
|
|
81
|
+
getScriptFileNames() {
|
|
82
|
+
return workerContext.getMirrorModels().map(model => uriConverter.asFileName(model.uri));
|
|
83
|
+
},
|
|
84
|
+
getProjectVersion() {
|
|
85
|
+
const models = workerContext.getMirrorModels();
|
|
86
|
+
if (modelVersions.size === workerContext.getMirrorModels().length) {
|
|
87
|
+
if (models.every(model => modelVersions.get(model) === model.version)) {
|
|
88
|
+
return projectVersion.toString();
|
|
89
|
+
}
|
|
86
90
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
},
|
|
102
|
-
}
|
|
91
|
+
modelVersions.clear();
|
|
92
|
+
for (const model of workerContext.getMirrorModels()) {
|
|
93
|
+
modelVersions.set(model, model.version);
|
|
94
|
+
}
|
|
95
|
+
projectVersion++;
|
|
96
|
+
return projectVersion.toString();
|
|
97
|
+
},
|
|
98
|
+
getScriptSnapshot(fileName) {
|
|
99
|
+
const uri = uriConverter.asUri(fileName);
|
|
100
|
+
return getModelSnapshot(uri);
|
|
101
|
+
},
|
|
102
|
+
getCompilationSettings() {
|
|
103
|
+
return compilerOptions;
|
|
104
|
+
},
|
|
105
|
+
}),
|
|
106
|
+
},
|
|
103
107
|
};
|
|
104
|
-
|
|
108
|
+
setup?.({ language, project });
|
|
109
|
+
return createWorkerService(language, servicePlugins, env, project, extraApis);
|
|
105
110
|
function getModelSnapshot(uri) {
|
|
106
111
|
const model = workerContext.getMirrorModels().find(model => model.uri.toString() === uri.toString());
|
|
107
112
|
if (model) {
|
|
@@ -119,8 +124,8 @@ export function createTypeScriptWorkerService({ typescript: ts, compilerOptions,
|
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
}
|
|
122
|
-
function createWorkerService(language, servicePlugins, env, extraApis = {}) {
|
|
123
|
-
const languageService = _createLanguageService(language, servicePlugins, env);
|
|
127
|
+
function createWorkerService(language, servicePlugins, env, projectContext, extraApis = {}) {
|
|
128
|
+
const languageService = _createLanguageService(language, servicePlugins, env, projectContext);
|
|
124
129
|
class WorkerService {
|
|
125
130
|
}
|
|
126
131
|
;
|