@volar/language-core 1.0.0-beta.1 → 1.0.0-beta.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/out/documentRegistry.d.ts +9 -19
- package/out/documentRegistry.js +7 -15
- package/out/languageContext.d.ts +7 -17
- package/out/languageContext.js +3 -3
- package/out/sourceMaps.d.ts +2 -7
- package/out/sourceMaps.js +10 -9
- package/out/types.d.ts +13 -9
- package/out/types.js +6 -0
- package/package.json +5 -5
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { EmbeddedFile, EmbeddedLanguageModule, DocumentCapabilities, PositionCapabilities, SourceFile } from './types';
|
|
2
|
-
import { Teleport } from './sourceMaps';
|
|
3
1
|
import { Mapping, SourceMapBase } from '@volar/source-map';
|
|
2
|
+
import { Teleport } from './sourceMaps';
|
|
3
|
+
import type { EmbeddedFile, EmbeddedLanguageModule, 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(): {
|
|
@@ -15,25 +15,16 @@ export declare function createDocumentRegistry(): {
|
|
|
15
15
|
vueFile: SourceFile;
|
|
16
16
|
embedded: EmbeddedFile;
|
|
17
17
|
}, void, unknown>;
|
|
18
|
-
fromEmbeddedLocation: (fileName: string,
|
|
18
|
+
fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
|
|
19
19
|
fileName: string;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
mapped: {
|
|
25
|
-
vueFile: SourceFile;
|
|
26
|
-
embedded: EmbeddedFile;
|
|
27
|
-
};
|
|
28
|
-
data: any;
|
|
20
|
+
offset: number;
|
|
21
|
+
mapping: Mapping<any>;
|
|
22
|
+
sourceMap: SourceMapBase<any>;
|
|
29
23
|
} | {
|
|
30
24
|
fileName: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
35
|
-
mapped?: undefined;
|
|
36
|
-
data?: undefined;
|
|
25
|
+
offset: number;
|
|
26
|
+
mapping?: undefined;
|
|
27
|
+
sourceMap?: undefined;
|
|
37
28
|
}, void, unknown>;
|
|
38
29
|
fromEmbeddedFile: (file: EmbeddedFile) => SourceFile | undefined;
|
|
39
30
|
fromEmbeddedFileName: (fileName: string) => {
|
|
@@ -41,6 +32,5 @@ export declare function createDocumentRegistry(): {
|
|
|
41
32
|
embedded: EmbeddedFile;
|
|
42
33
|
} | undefined;
|
|
43
34
|
getSourceMap: (file: SourceFile, mappings: Mapping<any>[]) => SourceMapBase<any>;
|
|
44
|
-
getTeleportSourceMap: (file: SourceFile, mappings: Mapping<any>[]) => Teleport;
|
|
45
35
|
onSourceFileUpdated(file: SourceFile): void;
|
|
46
36
|
};
|
package/out/documentRegistry.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
2
|
exports.createDocumentRegistry = exports.forEachEmbeddeds = void 0;
|
|
3
|
+
const source_map_1 = require("@volar/source-map");
|
|
3
4
|
const reactivity_1 = require("@vue/reactivity");
|
|
4
5
|
const sourceMaps_1 = require("./sourceMaps");
|
|
5
|
-
const source_map_1 = require("@volar/source-map");
|
|
6
6
|
function forEachEmbeddeds(input, cb) {
|
|
7
7
|
for (const child of input) {
|
|
8
8
|
if (child) {
|
|
@@ -61,33 +61,26 @@ function createDocumentRegistry() {
|
|
|
61
61
|
yield sourceMap[1];
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
|
-
fromEmbeddedLocation: function* (fileName,
|
|
64
|
+
fromEmbeddedLocation: function* (fileName, offset) {
|
|
65
65
|
if (fileName.endsWith('/__VLS_types.ts')) { // TODO: monkey fix
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
if (end === undefined)
|
|
69
|
-
end = start;
|
|
70
68
|
const mapped = sourceMapsByFileName.value.get(normalizePath(fileName));
|
|
71
69
|
if (mapped) {
|
|
72
|
-
if (sourceMapFilter && !sourceMapFilter(mapped.embedded.capabilities))
|
|
73
|
-
return;
|
|
74
70
|
const sourceMap = getSourceMap(mapped.vueFile, mapped.embedded.mappings);
|
|
75
|
-
for (const vueRange of sourceMap.
|
|
71
|
+
for (const vueRange of sourceMap.toSourceOffsets(offset)) {
|
|
76
72
|
yield {
|
|
77
73
|
fileName: mapped.vueFile.fileName,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
offset: vueRange[0],
|
|
75
|
+
mapping: vueRange[1],
|
|
76
|
+
sourceMap,
|
|
81
77
|
};
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
else {
|
|
85
81
|
yield {
|
|
86
82
|
fileName,
|
|
87
|
-
|
|
88
|
-
start,
|
|
89
|
-
end,
|
|
90
|
-
},
|
|
83
|
+
offset,
|
|
91
84
|
};
|
|
92
85
|
}
|
|
93
86
|
},
|
|
@@ -98,7 +91,6 @@ function createDocumentRegistry() {
|
|
|
98
91
|
return sourceMapsByFileName.value.get(normalizePath(fileName));
|
|
99
92
|
},
|
|
100
93
|
getSourceMap,
|
|
101
|
-
getTeleportSourceMap: getTeleport,
|
|
102
94
|
// TODO: unuse this
|
|
103
95
|
onSourceFileUpdated(file) {
|
|
104
96
|
_sourceMaps.delete(file);
|
package/out/languageContext.d.ts
CHANGED
|
@@ -15,25 +15,16 @@ export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceH
|
|
|
15
15
|
vueFile: SourceFile;
|
|
16
16
|
embedded: import("./types").EmbeddedFile;
|
|
17
17
|
}, void, unknown>;
|
|
18
|
-
fromEmbeddedLocation: (fileName: string,
|
|
18
|
+
fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
|
|
19
19
|
fileName: string;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
mapped: {
|
|
25
|
-
vueFile: SourceFile;
|
|
26
|
-
embedded: import("./types").EmbeddedFile;
|
|
27
|
-
};
|
|
28
|
-
data: any;
|
|
20
|
+
offset: number;
|
|
21
|
+
mapping: import("@volar/source-map").Mapping<any>;
|
|
22
|
+
sourceMap: import("@volar/source-map").SourceMapBase<any>;
|
|
29
23
|
} | {
|
|
30
24
|
fileName: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
35
|
-
mapped?: undefined;
|
|
36
|
-
data?: undefined;
|
|
25
|
+
offset: number;
|
|
26
|
+
mapping?: undefined;
|
|
27
|
+
sourceMap?: undefined;
|
|
37
28
|
}, void, unknown>;
|
|
38
29
|
fromEmbeddedFile: (file: import("./types").EmbeddedFile) => SourceFile | undefined;
|
|
39
30
|
fromEmbeddedFileName: (fileName: string) => {
|
|
@@ -41,7 +32,6 @@ export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceH
|
|
|
41
32
|
embedded: import("./types").EmbeddedFile;
|
|
42
33
|
} | undefined;
|
|
43
34
|
getSourceMap: (file: SourceFile, mappings: import("@volar/source-map").Mapping<any>[]) => import("@volar/source-map").SourceMapBase<any>;
|
|
44
|
-
getTeleportSourceMap: (file: SourceFile, mappings: import("@volar/source-map").Mapping<any>[]) => import("./sourceMaps").Teleport;
|
|
45
35
|
onSourceFileUpdated(file: SourceFile): void;
|
|
46
36
|
};
|
|
47
37
|
};
|
package/out/languageContext.js
CHANGED
|
@@ -175,7 +175,7 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
|
|
|
175
175
|
const newScripts = {};
|
|
176
176
|
if (!tsFileUpdated) {
|
|
177
177
|
(0, documentRegistry_1.forEachEmbeddeds)(sourceFile.embeddeds, embedded => {
|
|
178
|
-
if (embedded.
|
|
178
|
+
if (embedded.kind) {
|
|
179
179
|
oldScripts[embedded.fileName] = embedded.text;
|
|
180
180
|
}
|
|
181
181
|
});
|
|
@@ -184,7 +184,7 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
|
|
|
184
184
|
documentRegistry.onSourceFileUpdated(sourceFile);
|
|
185
185
|
if (!tsFileUpdated) {
|
|
186
186
|
(0, documentRegistry_1.forEachEmbeddeds)(sourceFile.embeddeds, embedded => {
|
|
187
|
-
if (embedded.
|
|
187
|
+
if (embedded.kind) {
|
|
188
188
|
newScripts[embedded.fileName] = embedded.text;
|
|
189
189
|
}
|
|
190
190
|
});
|
|
@@ -202,7 +202,7 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
|
|
|
202
202
|
function getScriptFileNames() {
|
|
203
203
|
const tsFileNames = new Set();
|
|
204
204
|
for (const mapped of documentRegistry.getAllEmbeddeds()) {
|
|
205
|
-
if (mapped.embedded.
|
|
205
|
+
if (mapped.embedded.kind) {
|
|
206
206
|
tsFileNames.add(mapped.embedded.fileName); // virtual .ts
|
|
207
207
|
}
|
|
208
208
|
}
|
package/out/sourceMaps.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import * as SourceMaps from '@volar/source-map';
|
|
2
|
-
import {
|
|
3
|
-
export declare class EmbeddedFileSourceMap extends SourceMaps.SourceMapBase<PositionCapabilities> {
|
|
4
|
-
}
|
|
2
|
+
import { TeleportCapabilities, TeleportMappingData } from './types';
|
|
5
3
|
export declare class Teleport extends SourceMaps.SourceMapBase<TeleportMappingData> {
|
|
6
|
-
findTeleports(start: number,
|
|
7
|
-
start: number;
|
|
8
|
-
end: number;
|
|
9
|
-
}, TeleportCapabilities], void, unknown>;
|
|
4
|
+
findTeleports(start: number, filter?: (data: TeleportCapabilities) => boolean): Generator<number, void, unknown>;
|
|
10
5
|
}
|
package/out/sourceMaps.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
-
exports.Teleport =
|
|
2
|
+
exports.Teleport = void 0;
|
|
3
3
|
const SourceMaps = require("@volar/source-map");
|
|
4
|
-
class EmbeddedFileSourceMap extends SourceMaps.SourceMapBase {
|
|
5
|
-
}
|
|
6
|
-
exports.EmbeddedFileSourceMap = EmbeddedFileSourceMap;
|
|
7
4
|
class Teleport extends SourceMaps.SourceMapBase {
|
|
8
|
-
*findTeleports(start,
|
|
9
|
-
for (const
|
|
10
|
-
|
|
5
|
+
*findTeleports(start, filter) {
|
|
6
|
+
for (const mapped of this.toGeneratedOffsets(start)) {
|
|
7
|
+
if (!filter || filter(mapped[1].data.toSourceCapabilities)) {
|
|
8
|
+
yield mapped[0];
|
|
9
|
+
}
|
|
11
10
|
}
|
|
12
|
-
for (const
|
|
13
|
-
|
|
11
|
+
for (const mapped of this.toSourceOffsets(start)) {
|
|
12
|
+
if (!filter || filter(mapped[1].data.toGenedCapabilities)) {
|
|
13
|
+
yield mapped[0];
|
|
14
|
+
}
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
}
|
package/out/types.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { Mapping } from '@volar/source-map';
|
|
2
2
|
import type * as ts from 'typescript/lib/tsserverlibrary';
|
|
3
3
|
export interface DocumentCapabilities {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
diagnostic?: boolean;
|
|
5
|
+
foldingRange?: boolean;
|
|
6
|
+
documentFormatting?: boolean | {
|
|
7
7
|
initialIndentBracket?: [string, string];
|
|
8
8
|
};
|
|
9
9
|
documentSymbol?: boolean;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
codeAction?: boolean;
|
|
11
|
+
inlayHint?: boolean;
|
|
12
12
|
}
|
|
13
13
|
export interface PositionCapabilities {
|
|
14
14
|
hover?: boolean;
|
|
15
15
|
references?: boolean;
|
|
16
|
-
|
|
16
|
+
definition?: boolean;
|
|
17
17
|
rename?: boolean | {
|
|
18
18
|
normalize?(newName: string): string;
|
|
19
|
-
apply?(
|
|
19
|
+
apply?(newName: string): string;
|
|
20
20
|
};
|
|
21
21
|
completion?: boolean | {
|
|
22
22
|
additional: boolean;
|
|
@@ -28,7 +28,7 @@ export interface PositionCapabilities {
|
|
|
28
28
|
}
|
|
29
29
|
export interface TeleportCapabilities {
|
|
30
30
|
references?: boolean;
|
|
31
|
-
|
|
31
|
+
definition?: boolean;
|
|
32
32
|
rename?: boolean;
|
|
33
33
|
}
|
|
34
34
|
export interface TeleportMappingData {
|
|
@@ -44,10 +44,14 @@ export interface SourceFile {
|
|
|
44
44
|
text: string;
|
|
45
45
|
embeddeds: EmbeddedFile[];
|
|
46
46
|
}
|
|
47
|
+
export declare enum EmbeddedFileKind {
|
|
48
|
+
TextFile = 0,
|
|
49
|
+
TypeScriptHostFile = 1
|
|
50
|
+
}
|
|
47
51
|
export interface EmbeddedFile {
|
|
48
52
|
fileName: string;
|
|
49
53
|
text: string;
|
|
50
|
-
|
|
54
|
+
kind: EmbeddedFileKind;
|
|
51
55
|
capabilities: DocumentCapabilities;
|
|
52
56
|
mappings: Mapping<PositionCapabilities>[];
|
|
53
57
|
teleportMappings?: Mapping<TeleportMappingData>[];
|
package/out/types.js
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
|
+
exports.EmbeddedFileKind = void 0;
|
|
3
|
+
var EmbeddedFileKind;
|
|
4
|
+
(function (EmbeddedFileKind) {
|
|
5
|
+
EmbeddedFileKind[EmbeddedFileKind["TextFile"] = 0] = "TextFile";
|
|
6
|
+
EmbeddedFileKind[EmbeddedFileKind["TypeScriptHostFile"] = 1] = "TypeScriptHostFile";
|
|
7
|
+
})(EmbeddedFileKind = exports.EmbeddedFileKind || (exports.EmbeddedFileKind = {}));
|
|
2
8
|
//# sourceMappingURL=types.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volar/language-core",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.3",
|
|
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/
|
|
17
|
-
"@
|
|
18
|
-
"
|
|
16
|
+
"@volar/source-map": "1.0.0-beta.3",
|
|
17
|
+
"@vue/reactivity": "^3.2.38",
|
|
18
|
+
"muggle-string": "^0.1.0"
|
|
19
19
|
},
|
|
20
|
-
"gitHead": "
|
|
20
|
+
"gitHead": "b7242f995970b4eedfcf068619497eb845e9ac73"
|
|
21
21
|
}
|