@volar/language-core 1.0.0-rc.4 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { Mapping, SourceMapBase } from '@volar/source-map';
|
|
2
2
|
import { Teleport } from './sourceMaps';
|
|
3
|
-
import type { EmbeddedFile,
|
|
3
|
+
import type { EmbeddedFile, LanguageModule, SourceFile } from './types';
|
|
4
4
|
export declare function forEachEmbeddeds(input: EmbeddedFile[], cb: (embedded: EmbeddedFile) => void): void;
|
|
5
5
|
export type DocumentRegistry = ReturnType<typeof createDocumentRegistry>;
|
|
6
6
|
export declare function createDocumentRegistry(): {
|
|
7
|
-
get: (fileName: string) => [SourceFile,
|
|
7
|
+
get: (fileName: string) => [SourceFile, LanguageModule] | undefined;
|
|
8
8
|
delete: (fileName: string) => boolean;
|
|
9
9
|
has: (fileName: string) => boolean;
|
|
10
|
-
set: (fileName: string, vueFile: SourceFile, languageModule:
|
|
10
|
+
set: (fileName: string, vueFile: SourceFile, languageModule: LanguageModule) => [SourceFile, LanguageModule<SourceFile>];
|
|
11
11
|
getFileNames: () => string[];
|
|
12
|
-
getAll: () => [SourceFile,
|
|
12
|
+
getAll: () => [SourceFile, LanguageModule<SourceFile>][];
|
|
13
13
|
getTeleport: (fileName: string) => Teleport | undefined;
|
|
14
14
|
getAllEmbeddeds: () => Generator<{
|
|
15
|
-
|
|
15
|
+
sourceFile: SourceFile;
|
|
16
16
|
embedded: EmbeddedFile;
|
|
17
17
|
}, void, unknown>;
|
|
18
18
|
fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
|
|
@@ -28,7 +28,7 @@ export declare function createDocumentRegistry(): {
|
|
|
28
28
|
}, void, unknown>;
|
|
29
29
|
fromEmbeddedFile: (file: EmbeddedFile) => SourceFile | undefined;
|
|
30
30
|
fromEmbeddedFileName: (fileName: string) => {
|
|
31
|
-
|
|
31
|
+
sourceFile: SourceFile;
|
|
32
32
|
embedded: EmbeddedFile;
|
|
33
33
|
} | undefined;
|
|
34
34
|
getSourceMap: (file: SourceFile, mappings: Mapping<any>[]) => SourceMapBase<any>;
|
package/out/documentRegistry.js
CHANGED
|
@@ -29,7 +29,7 @@ function createDocumentRegistry() {
|
|
|
29
29
|
const map = new Map();
|
|
30
30
|
for (const [sourceFile] of all.value) {
|
|
31
31
|
forEachEmbeddeds(sourceFile.embeddeds, embedded => {
|
|
32
|
-
map.set(normalizePath(embedded.fileName), {
|
|
32
|
+
map.set(normalizePath(embedded.fileName), { sourceFile, embedded });
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
35
|
return map;
|
|
@@ -67,10 +67,10 @@ function createDocumentRegistry() {
|
|
|
67
67
|
}
|
|
68
68
|
const mapped = sourceMapsByFileName.value.get(normalizePath(fileName));
|
|
69
69
|
if (mapped) {
|
|
70
|
-
const sourceMap = getSourceMap(mapped.
|
|
70
|
+
const sourceMap = getSourceMap(mapped.sourceFile, mapped.embedded.mappings);
|
|
71
71
|
for (const vueRange of sourceMap.toSourceOffsets(offset)) {
|
|
72
72
|
yield {
|
|
73
|
-
fileName: mapped.
|
|
73
|
+
fileName: mapped.sourceFile.fileName,
|
|
74
74
|
offset: vueRange[0],
|
|
75
75
|
mapping: vueRange[1],
|
|
76
76
|
sourceMap,
|
package/out/languageContext.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
2
|
-
import {
|
|
2
|
+
import { LanguageModule, SourceFile, LanguageServiceHost } from './types';
|
|
3
3
|
export type EmbeddedLanguageContext = ReturnType<typeof createEmbeddedLanguageServiceHost>;
|
|
4
|
-
export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceHost, languageModules:
|
|
4
|
+
export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceHost, languageModules: LanguageModule[]): {
|
|
5
5
|
typescriptLanguageServiceHost: ts.LanguageServiceHost;
|
|
6
6
|
mapper: {
|
|
7
|
-
get: (fileName: string) => [SourceFile,
|
|
7
|
+
get: (fileName: string) => [SourceFile, LanguageModule<SourceFile>] | undefined;
|
|
8
8
|
delete: (fileName: string) => boolean;
|
|
9
9
|
has: (fileName: string) => boolean;
|
|
10
|
-
set: (fileName: string, vueFile: SourceFile, languageModule:
|
|
10
|
+
set: (fileName: string, vueFile: SourceFile, languageModule: LanguageModule<SourceFile>) => [SourceFile, LanguageModule<SourceFile>];
|
|
11
11
|
getFileNames: () => string[];
|
|
12
|
-
getAll: () => [SourceFile,
|
|
12
|
+
getAll: () => [SourceFile, LanguageModule<SourceFile>][];
|
|
13
13
|
getTeleport: (fileName: string) => import("./sourceMaps").Teleport | undefined;
|
|
14
14
|
getAllEmbeddeds: () => Generator<{
|
|
15
|
-
|
|
15
|
+
sourceFile: SourceFile;
|
|
16
16
|
embedded: import("./types").EmbeddedFile;
|
|
17
17
|
}, void, unknown>;
|
|
18
18
|
fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
|
|
@@ -28,7 +28,7 @@ export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceH
|
|
|
28
28
|
}, void, unknown>;
|
|
29
29
|
fromEmbeddedFile: (file: import("./types").EmbeddedFile) => SourceFile | undefined;
|
|
30
30
|
fromEmbeddedFileName: (fileName: string) => {
|
|
31
|
-
|
|
31
|
+
sourceFile: SourceFile;
|
|
32
32
|
embedded: import("./types").EmbeddedFile;
|
|
33
33
|
} | undefined;
|
|
34
34
|
getSourceMap: (file: SourceFile, mappings: import("@volar/source-map").Mapping<any>[]) => import("@volar/source-map").SourceMapBase<any>;
|
package/out/languageContext.js
CHANGED
|
@@ -227,7 +227,7 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
|
|
|
227
227
|
let version = (_c = (_b = (_a = ts.sys) === null || _a === void 0 ? void 0 : _a.createHash) === null || _b === void 0 ? void 0 : _b.call(_a, mapped.embedded.text)) !== null && _c !== void 0 ? _c : mapped.embedded.text;
|
|
228
228
|
if (host.isTsc) {
|
|
229
229
|
// fix https://github.com/johnsoncodehk/volar/issues/1082
|
|
230
|
-
version = host.getScriptVersion(mapped.
|
|
230
|
+
version = host.getScriptVersion(mapped.sourceFile.fileName) + ':' + version;
|
|
231
231
|
}
|
|
232
232
|
fileVersions.set(mapped.embedded.fileName, version);
|
|
233
233
|
return version;
|
package/out/types.d.ts
CHANGED
|
@@ -57,7 +57,7 @@ export interface EmbeddedFile {
|
|
|
57
57
|
teleportMappings?: Mapping<TeleportMappingData>[];
|
|
58
58
|
embeddeds: EmbeddedFile[];
|
|
59
59
|
}
|
|
60
|
-
export interface
|
|
60
|
+
export interface LanguageModule<T extends SourceFile = SourceFile> {
|
|
61
61
|
createSourceFile(fileName: string, snapshot: ts.IScriptSnapshot): T | undefined;
|
|
62
62
|
updateSourceFile(sourceFile: T, snapshot: ts.IScriptSnapshot): void;
|
|
63
63
|
proxyLanguageServiceHost?(host: LanguageServiceHost): Partial<LanguageServiceHost>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/language-core",
|
|
3
|
-
"version": "1.0.0
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"main": "out/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"directory": "packages/language-core"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@volar/source-map": "1.0.0
|
|
16
|
+
"@volar/source-map": "1.0.0",
|
|
17
17
|
"@vue/reactivity": "^3.2.38",
|
|
18
18
|
"muggle-string": "^0.1.0"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "5496c1ecc0ae6207d6fa7da745f047c44c32db81"
|
|
21
21
|
}
|