@typespec/compiler 1.5.0-dev.1 → 1.5.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/manifest.js +2 -2
- package/dist/src/server/compile-service.d.ts +6 -6
- package/dist/src/server/compile-service.d.ts.map +1 -1
- package/dist/src/server/compile-service.js +46 -36
- package/dist/src/server/compile-service.js.map +1 -1
- package/dist/src/server/constants.d.ts +5 -4
- package/dist/src/server/constants.d.ts.map +1 -1
- package/dist/src/server/constants.js +5 -4
- package/dist/src/server/constants.js.map +1 -1
- package/dist/src/server/diagnostics.d.ts.map +1 -1
- package/dist/src/server/diagnostics.js +23 -8
- package/dist/src/server/diagnostics.js.map +1 -1
- package/dist/src/server/file-service.d.ts +4 -1
- package/dist/src/server/file-service.d.ts.map +1 -1
- package/dist/src/server/file-service.js +30 -0
- package/dist/src/server/file-service.js.map +1 -1
- package/dist/src/server/server-compile-manager.d.ts +55 -0
- package/dist/src/server/server-compile-manager.d.ts.map +1 -0
- package/dist/src/server/server-compile-manager.js +269 -0
- package/dist/src/server/server-compile-manager.js.map +1 -0
- package/dist/src/server/server.js +1 -0
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/serverlib.d.ts.map +1 -1
- package/dist/src/server/serverlib.js +103 -30
- package/dist/src/server/serverlib.js.map +1 -1
- package/dist/src/server/types.d.ts +7 -3
- package/dist/src/server/types.d.ts.map +1 -1
- package/dist/src/server/types.js.map +1 -1
- package/dist/src/server/update-manager.d.ts +23 -4
- package/dist/src/server/update-manager.d.ts.map +1 -1
- package/dist/src/server/update-manager.js +110 -18
- package/dist/src/server/update-manager.js.map +1 -1
- package/dist/src/testing/test-server-host.d.ts.map +1 -1
- package/dist/src/testing/test-server-host.js +15 -1
- package/dist/src/testing/test-server-host.js.map +1 -1
- package/dist/src/testing/tester.d.ts.map +1 -1
- package/dist/src/testing/tester.js +1 -1
- package/dist/src/testing/tester.js.map +1 -1
- package/package.json +1 -1
package/dist/manifest.js
CHANGED
|
@@ -5,7 +5,9 @@ import type { CompilerHost, TypeSpecScriptNode } from "../core/types.js";
|
|
|
5
5
|
import { ClientConfigProvider } from "./client-config-provider.js";
|
|
6
6
|
import { FileService } from "./file-service.js";
|
|
7
7
|
import { FileSystemCache } from "./file-system-cache.js";
|
|
8
|
+
import { ServerCompileOptions } from "./server-compile-manager.js";
|
|
8
9
|
import { CompileResult, ServerHost, ServerLog } from "./types.js";
|
|
10
|
+
import { UpdateManger, UpdateType } from "./update-manager.js";
|
|
9
11
|
/**
|
|
10
12
|
* Service managing compilation/caching of different TypeSpec projects
|
|
11
13
|
*/
|
|
@@ -19,10 +21,7 @@ export interface CompileService {
|
|
|
19
21
|
* @param document The document to compile. This is not necessarily the entrypoint, compile will try to guess which entrypoint to compile to include this one.
|
|
20
22
|
* @returns the compiled result or undefined if compilation was aborted.
|
|
21
23
|
*/
|
|
22
|
-
compile(document: TextDocument | TextDocumentIdentifier, additionalOptions
|
|
23
|
-
bypassCache?: boolean;
|
|
24
|
-
trackAction?: boolean;
|
|
25
|
-
}): Promise<CompileResult | undefined>;
|
|
24
|
+
compile(document: TextDocument | TextDocumentIdentifier, additionalOptions: CompilerOptions | undefined, serverCompileOptions: ServerCompileOptions): Promise<CompileResult | undefined>;
|
|
26
25
|
/**
|
|
27
26
|
* Load the AST for the given document.
|
|
28
27
|
* @param document The document to load the AST for.
|
|
@@ -33,7 +32,7 @@ export interface CompileService {
|
|
|
33
32
|
* It will recompile after a debounce timer so we don't recompile on every keystroke.
|
|
34
33
|
* @param document Document that changed.
|
|
35
34
|
*/
|
|
36
|
-
notifyChange(document: TextDocument): void;
|
|
35
|
+
notifyChange(document: TextDocument | TextDocumentIdentifier, updateType: UpdateType): void;
|
|
37
36
|
on(event: "compileEnd", listener: (result: CompileResult) => void): void;
|
|
38
37
|
getMainFileForDocument(path: string): Promise<string>;
|
|
39
38
|
}
|
|
@@ -42,8 +41,9 @@ export interface CompileServiceOptions {
|
|
|
42
41
|
readonly fileService: FileService;
|
|
43
42
|
readonly serverHost: ServerHost;
|
|
44
43
|
readonly compilerHost: CompilerHost;
|
|
44
|
+
readonly updateManager: UpdateManger;
|
|
45
45
|
readonly log: (log: ServerLog) => void;
|
|
46
46
|
readonly clientConfigsProvider?: ClientConfigProvider;
|
|
47
47
|
}
|
|
48
|
-
export declare function createCompileService({ compilerHost, serverHost, fileService, fileSystemCache, log, clientConfigsProvider, }: CompileServiceOptions): CompileService;
|
|
48
|
+
export declare function createCompileService({ compilerHost, serverHost, fileService, fileSystemCache, updateManager, log, clientConfigsProvider, }: CompileServiceOptions): CompileService;
|
|
49
49
|
//# sourceMappingURL=compile-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-service.d.ts","sourceRoot":"","sources":["../../../src/server/compile-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAalE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"compile-service.d.ts","sourceRoot":"","sources":["../../../src/server/compile-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAalE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EACV,YAAY,EAEZ,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAGL,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;OAQG;IACH,OAAO,CACL,QAAQ,EAAE,YAAY,GAAG,sBAAsB,EAC/C,iBAAiB,EAAE,eAAe,GAAG,SAAS,EAC9C,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAEtC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAExF;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE5F,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAEzE,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;CACvD;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,UAAU,EACV,WAAW,EACX,eAAe,EACf,aAAa,EACb,GAAG,EACH,qBAAqB,GACtB,EAAE,qBAAqB,GAAG,cAAc,CAwTxC"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
1
|
import { DiagnosticSeverity, Range } from "vscode-languageserver";
|
|
2
|
-
import { defaultConfig, findTypeSpecConfigPath, loadTypeSpecConfigFile, } from "../config/config-loader.js";
|
|
2
|
+
import { defaultConfig, findTypeSpecConfigPath, loadTypeSpecConfigFile, TypeSpecConfigFilename, } from "../config/config-loader.js";
|
|
3
3
|
import { resolveOptionsFromConfig } from "../config/config-to-options.js";
|
|
4
|
-
import { compilerAssert } from "../core/diagnostics.js";
|
|
5
4
|
import { builtInLinterRule_UnusedTemplateParameter } from "../core/linter-rules/unused-template-parameter.rule.js";
|
|
6
5
|
import { builtInLinterRule_UnusedUsing } from "../core/linter-rules/unused-using.rule.js";
|
|
7
6
|
import { builtInLinterLibraryName } from "../core/linter.js";
|
|
8
7
|
import { formatDiagnostic } from "../core/logger/console-sink.js";
|
|
9
8
|
import { parse } from "../core/parser.js";
|
|
10
|
-
import { getDirectoryPath, joinPaths } from "../core/path-utils.js";
|
|
11
|
-
import { compile as compileProgram } from "../core/program.js";
|
|
9
|
+
import { getBaseFileName, getDirectoryPath, joinPaths } from "../core/path-utils.js";
|
|
12
10
|
import { doIO, loadFile } from "../utils/io.js";
|
|
13
|
-
import { resolveTspMain } from "../utils/misc.js";
|
|
11
|
+
import { distinctArray, resolveTspMain } from "../utils/misc.js";
|
|
14
12
|
import { getLocationInYamlScript } from "../yaml/diagnostics.js";
|
|
15
13
|
import { parseYaml } from "../yaml/parser.js";
|
|
16
14
|
import { serverOptions } from "./constants.js";
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
export function createCompileService({ compilerHost, serverHost, fileService, fileSystemCache, log, clientConfigsProvider, }) {
|
|
20
|
-
const oldPrograms = new Map();
|
|
15
|
+
import { ServerCompileManager, } from "./server-compile-manager.js";
|
|
16
|
+
export function createCompileService({ compilerHost, serverHost, fileService, fileSystemCache, updateManager, log, clientConfigsProvider, }) {
|
|
21
17
|
const eventListeners = new Map();
|
|
22
|
-
const
|
|
18
|
+
const compileManager = new ServerCompileManager(updateManager, compilerHost, log);
|
|
23
19
|
let configFilePath;
|
|
24
20
|
return { compile, getScript, on, notifyChange, getMainFileForDocument };
|
|
25
21
|
function on(event, listener) {
|
|
@@ -28,11 +24,11 @@ export function createCompileService({ compilerHost, serverHost, fileService, fi
|
|
|
28
24
|
function notify(event, ...args) {
|
|
29
25
|
const listener = eventListeners.get(event);
|
|
30
26
|
if (listener) {
|
|
31
|
-
listener(...args);
|
|
27
|
+
void listener(...args);
|
|
32
28
|
}
|
|
33
29
|
}
|
|
34
|
-
function notifyChange(document) {
|
|
35
|
-
|
|
30
|
+
function notifyChange(document, updateType) {
|
|
31
|
+
updateManager.scheduleUpdate(document, updateType);
|
|
36
32
|
}
|
|
37
33
|
/**
|
|
38
34
|
* Compile the given document.
|
|
@@ -43,9 +39,16 @@ export function createCompileService({ compilerHost, serverHost, fileService, fi
|
|
|
43
39
|
* @param document The document to compile. tsp file that is open or not opened in workspace.
|
|
44
40
|
* @returns see {@link CompileResult} for more details.
|
|
45
41
|
*/
|
|
46
|
-
async function compile(document, additionalOptions,
|
|
42
|
+
async function compile(document, additionalOptions, serverCompileOptions) {
|
|
47
43
|
const path = await fileService.getPath(document);
|
|
44
|
+
const pathBaseName = getBaseFileName(path);
|
|
45
|
+
if (!path.endsWith(".tsp") && pathBaseName !== TypeSpecConfigFilename) {
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
48
|
const mainFile = await getMainFileForDocument(path);
|
|
49
|
+
if (!mainFile.endsWith(".tsp")) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
49
52
|
const config = await getConfig(mainFile);
|
|
50
53
|
configFilePath = config.filename;
|
|
51
54
|
log({ level: "debug", message: `config resolved`, detail: config });
|
|
@@ -61,8 +64,21 @@ export function createCompileService({ compilerHost, serverHost, fileService, fi
|
|
|
61
64
|
// otherwise, obtain the `typespec.lsp.emit` configuration from clientConfigsProvider
|
|
62
65
|
if (additionalOptions?.emit === undefined) {
|
|
63
66
|
const configEmits = clientConfigsProvider?.config?.lsp?.emit;
|
|
67
|
+
const CONFIG_DEFAULTS = "<config:defaults>";
|
|
64
68
|
if (configEmits) {
|
|
65
|
-
|
|
69
|
+
if (configEmits.find((e) => e === CONFIG_DEFAULTS)) {
|
|
70
|
+
// keep the emits in tspconfig only when user configs "<config:defaults>", and append other emits from vscode settings if there is any
|
|
71
|
+
options.emit = distinctArray([...(options.emit ?? []), ...configEmits.filter((e) => e !== CONFIG_DEFAULTS)], (s) => s);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// use the configured emits if no "<config:defaults>" is found
|
|
75
|
+
options.emit = configEmits;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
// by default, exclude emits from compile which are not useful in most case but may cause perf issue
|
|
80
|
+
// User can set ['<config:defaults>'] to opt-in
|
|
81
|
+
options.emit = [];
|
|
66
82
|
}
|
|
67
83
|
}
|
|
68
84
|
// add linter rule for unused using if user didn't configure it explicitly
|
|
@@ -81,43 +97,37 @@ export function createCompileService({ compilerHost, serverHost, fileService, fi
|
|
|
81
97
|
options.linterRuleSet.enable ??= {};
|
|
82
98
|
options.linterRuleSet.enable[unusedTemplateParameterRule] = true;
|
|
83
99
|
}
|
|
84
|
-
|
|
85
|
-
|
|
100
|
+
const isCancelledOrOutOfDate = () => {
|
|
101
|
+
return serverCompileOptions.isCancelled?.() || !fileService.upToDate(document);
|
|
102
|
+
};
|
|
103
|
+
if (isCancelledOrOutOfDate()) {
|
|
86
104
|
return undefined;
|
|
87
105
|
}
|
|
88
|
-
let
|
|
106
|
+
let tracker;
|
|
89
107
|
try {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
logSink: {
|
|
94
|
-
log: compilerHost.logSink.log,
|
|
95
|
-
getPath: compilerHost.logSink.getPath,
|
|
96
|
-
trackAction: (message, finalMessage, action) => trackActionFunc(serverHost.log, message, finalMessage, action),
|
|
97
|
-
},
|
|
98
|
-
}
|
|
99
|
-
: compilerHost, mainFile, options, runOptions?.bypassCache ? undefined : oldPrograms.get(mainFile));
|
|
100
|
-
oldPrograms.set(mainFile, program);
|
|
101
|
-
if (!fileService.upToDate(document)) {
|
|
108
|
+
tracker = await compileManager.compile(mainFile, options, serverCompileOptions);
|
|
109
|
+
let program = await tracker.getCompileResult();
|
|
110
|
+
if (isCancelledOrOutOfDate()) {
|
|
102
111
|
return undefined;
|
|
103
112
|
}
|
|
104
|
-
if (mainFile !== path &&
|
|
113
|
+
if (mainFile !== path &&
|
|
114
|
+
!program.sourceFiles.has(path) &&
|
|
115
|
+
pathBaseName !== TypeSpecConfigFilename) {
|
|
105
116
|
// If the file that changed wasn't imported by anything from the main
|
|
106
117
|
// file, retry using the file itself as the main file.
|
|
107
118
|
log({
|
|
108
119
|
level: "debug",
|
|
109
120
|
message: `target file was not included in compiling, try to compile ${path} as main file directly`,
|
|
110
121
|
});
|
|
111
|
-
|
|
112
|
-
|
|
122
|
+
tracker = await compileManager.compile(path, options, serverCompileOptions);
|
|
123
|
+
program = await tracker.getCompileResult();
|
|
113
124
|
}
|
|
114
|
-
if (
|
|
125
|
+
if (isCancelledOrOutOfDate()) {
|
|
115
126
|
return undefined;
|
|
116
127
|
}
|
|
117
128
|
const doc = "version" in document ? document : serverHost.getOpenDocumentByURL(document.uri);
|
|
118
129
|
const script = program.sourceFiles.get(path);
|
|
119
|
-
|
|
120
|
-
const result = { program, document: doc, script, optionsFromConfig };
|
|
130
|
+
const result = { program, document: doc, script, optionsFromConfig, tracker };
|
|
121
131
|
notify("compileEnd", result);
|
|
122
132
|
return result;
|
|
123
133
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile-service.js","sourceRoot":"","sources":["../../../src/server/compile-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAA0B,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compile-service.js","sourceRoot":"","sources":["../../../src/server/compile-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CompilerOptions } from "../core/options.js";
|
|
2
2
|
export declare const serverOptions: CompilerOptions;
|
|
3
|
-
/**
|
|
4
|
-
* Time in milliseconds to wait after a file change before recompiling.
|
|
5
|
-
*/
|
|
6
|
-
export declare const UPDATE_DEBOUNCE_TIME = 200;
|
|
7
3
|
export declare const Commands: {
|
|
8
4
|
APPLY_CODE_FIX: string;
|
|
9
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Environment variables to enable some logging when needed
|
|
8
|
+
*/
|
|
9
|
+
export declare const ENABLE_SERVER_COMPILE_LOGGING = "ENABLE_SERVER_COMPILE_LOGGING";
|
|
10
|
+
export declare const ENABLE_UPDATE_MANAGER_LOGGING = "ENABLE_UPDATE_MANAGER_LOGGING";
|
|
10
11
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/server/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,aAAa,EAAE,eAO3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/server/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,eAAO,MAAM,aAAa,EAAE,eAO3B,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAC7E,eAAO,MAAM,6BAA6B,kCAAkC,CAAC"}
|
|
@@ -6,11 +6,12 @@ export const serverOptions = {
|
|
|
6
6
|
docs: true,
|
|
7
7
|
},
|
|
8
8
|
};
|
|
9
|
-
/**
|
|
10
|
-
* Time in milliseconds to wait after a file change before recompiling.
|
|
11
|
-
*/
|
|
12
|
-
export const UPDATE_DEBOUNCE_TIME = 200;
|
|
13
9
|
export const Commands = {
|
|
14
10
|
APPLY_CODE_FIX: "typespec.applyCodeFix",
|
|
15
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Environment variables to enable some logging when needed
|
|
14
|
+
*/
|
|
15
|
+
export const ENABLE_SERVER_COMPILE_LOGGING = "ENABLE_SERVER_COMPILE_LOGGING";
|
|
16
|
+
export const ENABLE_UPDATE_MANAGER_LOGGING = "ENABLE_UPDATE_MANAGER_LOGGING";
|
|
16
17
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/server/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/server/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,MAAM,EAAE,IAAI;IACZ,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;KACX;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc,EAAE,uBAAuB;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,+BAA+B,CAAC;AAC7E,MAAM,CAAC,MAAM,6BAA6B,GAAG,+BAA+B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/server/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,IAAI,YAAY,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAOvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,kJAAkJ;AAClJ,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/server/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,UAAU,IAAI,YAAY,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAOvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,kJAAkJ;AAClJ,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,UAAU,GACrB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,CA0DhC"}
|
|
@@ -4,7 +4,7 @@ import { getTypeName } from "../core/helpers/type-name-utils.js";
|
|
|
4
4
|
import { isDefined } from "../utils/misc.js";
|
|
5
5
|
/** Convert TypeSpec Diagnostic to Lsp diagnostic. Each TypeSpec diagnostic could produce multiple lsp ones when it involve multiple locations. */
|
|
6
6
|
export function convertDiagnosticToLsp(fileService, program, document, diagnostic) {
|
|
7
|
-
const root = getVSLocation(getSourceLocation(diagnostic.target, { locateId: true }), document);
|
|
7
|
+
const root = getVSLocation(fileService, getSourceLocation(diagnostic.target, { locateId: true }), document);
|
|
8
8
|
if (root === undefined || !fileService.upToDate(root.document))
|
|
9
9
|
return [];
|
|
10
10
|
const instantiationNodes = getDiagnosticTemplateInstantitationTrace(diagnostic.target);
|
|
@@ -12,7 +12,7 @@ export function convertDiagnosticToLsp(fileService, program, document, diagnosti
|
|
|
12
12
|
const relatedDiagnostics = [];
|
|
13
13
|
if (instantiationNodes.length > 0) {
|
|
14
14
|
const items = instantiationNodes
|
|
15
|
-
.map((node) => getVSLocationWithTypeInfo(program, node, document))
|
|
15
|
+
.map((node) => getVSLocationWithTypeInfo(program, fileService, node, document))
|
|
16
16
|
.filter(isDefined);
|
|
17
17
|
for (const location of items) {
|
|
18
18
|
relatedInformation.push({
|
|
@@ -61,9 +61,24 @@ function createLspDiagnostic(diag) {
|
|
|
61
61
|
...diag,
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
function getDocumentForLocation(location, currentDocument) {
|
|
64
|
+
function getDocumentForLocation(fileService, location, currentDocument) {
|
|
65
65
|
if (location?.file) {
|
|
66
|
-
|
|
66
|
+
const doc = location.file.document;
|
|
67
|
+
if (doc) {
|
|
68
|
+
return doc;
|
|
69
|
+
}
|
|
70
|
+
// Since we are using cache between compilations, it's possible that when the result is used as cache, the file is actually opened or closed,
|
|
71
|
+
// so need to do some handling for the open case here. No special handling for the closed case which will just be ignored by client
|
|
72
|
+
const opened = fileService.getOpenDocument(location.file.path);
|
|
73
|
+
if (opened) {
|
|
74
|
+
// the doc is opened now and return it if it's not out-of-date
|
|
75
|
+
// compared to when it was first opened.
|
|
76
|
+
const initVersion = fileService.getOpenDocumentInitVersion(opened.uri);
|
|
77
|
+
if (opened.version === initVersion) {
|
|
78
|
+
return opened;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return undefined;
|
|
67
82
|
}
|
|
68
83
|
else {
|
|
69
84
|
// https://github.com/microsoft/language-server-protocol/issues/256
|
|
@@ -74,10 +89,10 @@ function getDocumentForLocation(location, currentDocument) {
|
|
|
74
89
|
return currentDocument;
|
|
75
90
|
}
|
|
76
91
|
}
|
|
77
|
-
function getVSLocation(location, currentDocument) {
|
|
92
|
+
function getVSLocation(fileService, location, currentDocument) {
|
|
78
93
|
if (location === undefined)
|
|
79
94
|
return undefined;
|
|
80
|
-
const document = getDocumentForLocation(location, currentDocument);
|
|
95
|
+
const document = getDocumentForLocation(fileService, location, currentDocument);
|
|
81
96
|
if (!document) {
|
|
82
97
|
return undefined;
|
|
83
98
|
}
|
|
@@ -85,8 +100,8 @@ function getVSLocation(location, currentDocument) {
|
|
|
85
100
|
const end = document.positionAt(location?.end ?? 0);
|
|
86
101
|
return { range: { start, end }, document };
|
|
87
102
|
}
|
|
88
|
-
function getVSLocationWithTypeInfo(program, node, document) {
|
|
89
|
-
const location = getVSLocation(getSourceLocation(node, { locateId: true }), document);
|
|
103
|
+
function getVSLocationWithTypeInfo(program, fileService, node, document) {
|
|
104
|
+
const location = getVSLocation(fileService, getSourceLocation(node, { locateId: true }), document);
|
|
90
105
|
if (location === undefined)
|
|
91
106
|
return undefined;
|
|
92
107
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/server/diagnostics.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EACL,wCAAwC,EACxC,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAIjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI7C,kJAAkJ;AAClJ,MAAM,UAAU,sBAAsB,CACpC,WAAwB,EACxB,OAAgB,EAChB,QAAsB,EACtB,UAAsB;IAEtB,MAAM,IAAI,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/server/diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TextDocumentIdentifier } from "vscode-languageserver";
|
|
1
|
+
import { TextDocumentChangeEvent, TextDocumentIdentifier } from "vscode-languageserver";
|
|
2
2
|
import { TextDocument } from "vscode-languageserver-textdocument";
|
|
3
3
|
import { ServerHost } from "./types.js";
|
|
4
4
|
/**
|
|
@@ -10,6 +10,9 @@ export interface FileService {
|
|
|
10
10
|
getPath(document: TextDocument | TextDocumentIdentifier): Promise<string>;
|
|
11
11
|
getOpenDocument(path: string): TextDocument | undefined;
|
|
12
12
|
getURL(path: string): string;
|
|
13
|
+
getOpenDocumentInitVersion(uri: string): number | undefined;
|
|
14
|
+
notifyDocumentOpened(arg: TextDocumentChangeEvent<TextDocument>): void;
|
|
15
|
+
notifyDocumentClosed(arg: TextDocumentChangeEvent<TextDocument>): void;
|
|
13
16
|
}
|
|
14
17
|
export interface FileServiceOptions {
|
|
15
18
|
serverHost: ServerHost;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-service.d.ts","sourceRoot":"","sources":["../../../src/server/file-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-service.d.ts","sourceRoot":"","sources":["../../../src/server/file-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAe,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,GAAG,OAAO,CAAC;IACnE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5D,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IACvE,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,GAAG,WAAW,CAuFjF"}
|
|
@@ -7,12 +7,17 @@ export function createFileService({ serverHost }) {
|
|
|
7
7
|
// URL is used as a key into the opened documents and so we must reproduce
|
|
8
8
|
// it exactly.
|
|
9
9
|
const pathToURLMap = new Map();
|
|
10
|
+
/** Track the init version when a doc is opened so that we can distinguish whether the doc is opened or changed */
|
|
11
|
+
const documentsOpenedInitVersion = new Map();
|
|
10
12
|
return {
|
|
11
13
|
upToDate,
|
|
12
14
|
fileURLToRealPath,
|
|
13
15
|
getPath,
|
|
14
16
|
getURL,
|
|
15
17
|
getOpenDocument,
|
|
18
|
+
getOpenDocumentInitVersion,
|
|
19
|
+
notifyDocumentOpened,
|
|
20
|
+
notifyDocumentClosed,
|
|
16
21
|
};
|
|
17
22
|
/**
|
|
18
23
|
* Determine if the given document is the latest version.
|
|
@@ -47,6 +52,31 @@ export function createFileService({ serverHost }) {
|
|
|
47
52
|
const url = getURL(path);
|
|
48
53
|
return url ? serverHost.getOpenDocumentByURL(url) : undefined;
|
|
49
54
|
}
|
|
55
|
+
function getOpenDocumentInitVersion(uri) {
|
|
56
|
+
return documentsOpenedInitVersion.get(uri) ?? undefined;
|
|
57
|
+
}
|
|
58
|
+
function notifyDocumentOpened(arg) {
|
|
59
|
+
if (documentsOpenedInitVersion.has(arg.document.uri)) {
|
|
60
|
+
// not expected, log something for troubleshooting
|
|
61
|
+
serverHost.log({
|
|
62
|
+
level: "debug",
|
|
63
|
+
message: "Document already opened",
|
|
64
|
+
detail: arg.document.uri,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
documentsOpenedInitVersion.set(arg.document.uri, arg.document.version);
|
|
68
|
+
}
|
|
69
|
+
function notifyDocumentClosed(arg) {
|
|
70
|
+
if (!documentsOpenedInitVersion.has(arg.document.uri)) {
|
|
71
|
+
// not expected, log something for troubleshooting
|
|
72
|
+
serverHost.log({
|
|
73
|
+
level: "debug",
|
|
74
|
+
message: "Document already closed",
|
|
75
|
+
detail: arg.document.uri,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
documentsOpenedInitVersion.delete(arg.document.uri);
|
|
79
|
+
}
|
|
50
80
|
}
|
|
51
81
|
function isUntitled(pathOrUrl) {
|
|
52
82
|
return pathOrUrl.startsWith("untitled:");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-service.js","sourceRoot":"","sources":["../../../src/server/file-service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"file-service.js","sourceRoot":"","sources":["../../../src/server/file-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { CompilerHost, CompilerOptions, Program, ServerLog } from "../index.js";
|
|
2
|
+
import { UpdateManger } from "./update-manager.js";
|
|
3
|
+
/**
|
|
4
|
+
* core: linter and emitter will be set to [] when trigger compilation
|
|
5
|
+
* full: compile as it is
|
|
6
|
+
*/
|
|
7
|
+
export type ServerCompileMode = "core" | "full";
|
|
8
|
+
export interface ServerCompileOptions {
|
|
9
|
+
skipCache?: boolean;
|
|
10
|
+
skipOldProgramFromCache?: boolean;
|
|
11
|
+
/** Make this non-optional on purpose so that the caller needs to determine the correct mode to compile explicitly */
|
|
12
|
+
mode: ServerCompileMode;
|
|
13
|
+
/** A simple func to check if the compilation is cancelled. After compiler supports cancellation, we may want to change to use it */
|
|
14
|
+
isCancelled?: () => boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* This class purely manages compilations triggered and the caches used underneath. It doesn't have or care about any extra knowledge beyond compile itself.
|
|
18
|
+
* Instead compiler service would have more knowledge about the lsp scenarios to provide higher level service. It will be responsible to make sure compilation request
|
|
19
|
+
* is built properly (i.e. figure out the correct entrypoint file, double check whether compilation result covers given document, and so on) and then trigger the actual
|
|
20
|
+
* compilation with proper options through this class.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ServerCompileManager {
|
|
23
|
+
private updateManager;
|
|
24
|
+
private compilerHost;
|
|
25
|
+
private log;
|
|
26
|
+
private trackerCache;
|
|
27
|
+
private compileId;
|
|
28
|
+
private logDebug;
|
|
29
|
+
constructor(updateManager: UpdateManger, compilerHost: CompilerHost, log: (log: ServerLog) => void);
|
|
30
|
+
compile(mainFile: string, compileOptions: CompilerOptions | undefined, serverCompileOptions: ServerCompileOptions): Promise<CompileTracker>;
|
|
31
|
+
}
|
|
32
|
+
export declare class CompileTracker {
|
|
33
|
+
private id;
|
|
34
|
+
private updateManager;
|
|
35
|
+
private entrypoint;
|
|
36
|
+
private compileResultPromise;
|
|
37
|
+
private version;
|
|
38
|
+
private startTime;
|
|
39
|
+
private mode;
|
|
40
|
+
private logs;
|
|
41
|
+
private endTime;
|
|
42
|
+
static compile(id: number, updateManager: UpdateManger, host: CompilerHost, mainFile: string, options: CompilerOptions | undefined, mode: ServerCompileMode, oldProgram: Program | undefined, log: (msg: string) => void): CompileTracker;
|
|
43
|
+
private constructor();
|
|
44
|
+
getCompileId(): number;
|
|
45
|
+
getEntryPoint(): string;
|
|
46
|
+
getCompileResult(): Promise<Program>;
|
|
47
|
+
getVersion(): number;
|
|
48
|
+
getStartTime(): Date;
|
|
49
|
+
getEndTime(): Date | undefined;
|
|
50
|
+
isCompleted(): boolean;
|
|
51
|
+
isUpToDate(): boolean;
|
|
52
|
+
getMode(): ServerCompileMode;
|
|
53
|
+
getLogs(): ServerLog[];
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=server-compile-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-compile-manager.d.ts","sourceRoot":"","sources":["../../../src/server/server-compile-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EACZ,eAAe,EAGf,OAAO,EACP,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,qHAAqH;IACrH,IAAI,EAAE,iBAAiB,CAAC;IACxB,oIAAoI;IACpI,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAwB;gBAG9B,aAAa,EAAE,YAAY,EAC3B,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI;IASjC,OAAO,CACX,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,eAAe,YAAK,EACpC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO,CAAC,cAAc,CAAC;CAwD3B;AAuID,qBAAa,cAAc;IAqDvB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,IAAI;IA3Dd,OAAO,CAAC,OAAO,CAAmB;IAElC,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,YAAY,EAC3B,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,YAAK,EAC7B,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,OAAO,GAAG,SAAS,EAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;IAyC5B,OAAO;IA4BP,YAAY;IAIZ,aAAa;IAIP,gBAAgB;IAItB,UAAU;IAIV,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,IAAI,GAAG,SAAS;IAI9B,WAAW,IAAI,OAAO;IAItB,UAAU,IAAI,OAAO;IAIrB,OAAO,IAAI,iBAAiB;IAI5B,OAAO,IAAI,SAAS,EAAE;CAGvB"}
|