@volar/language-core 1.0.13 → 1.0.14

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,7 +1,7 @@
1
1
  import { Mapping, SourceMapBase } from '@volar/source-map';
2
2
  import { Teleport } from './sourceMaps';
3
3
  import type { EmbeddedFile, LanguageModule, SourceFile } from './types';
4
- export declare function forEachEmbeddeds(input: EmbeddedFile[], cb: (embedded: EmbeddedFile) => void): void;
4
+ export declare function forEachEmbeddeds(file: EmbeddedFile, cb: (embedded: EmbeddedFile) => void): void;
5
5
  export type DocumentRegistry = ReturnType<typeof createDocumentRegistry>;
6
6
  export declare function createDocumentRegistry(): {
7
7
  get: (fileName: string) => [SourceFile, LanguageModule] | undefined;
@@ -15,7 +15,7 @@ export declare function createDocumentRegistry(): {
15
15
  sourceFile: SourceFile;
16
16
  embedded: EmbeddedFile;
17
17
  }, void, unknown>;
18
- fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
18
+ fromEmbeddedLocation: (fileName: string, offset: number, baseOnRight?: boolean) => Generator<{
19
19
  fileName: string;
20
20
  offset: number;
21
21
  mapping: Mapping<any>;
@@ -3,12 +3,10 @@ exports.createDocumentRegistry = exports.forEachEmbeddeds = void 0;
3
3
  const source_map_1 = require("@volar/source-map");
4
4
  const reactivity_1 = require("@vue/reactivity");
5
5
  const sourceMaps_1 = require("./sourceMaps");
6
- function forEachEmbeddeds(input, cb) {
7
- for (const child of input) {
8
- if (child) {
9
- cb(child);
10
- }
11
- forEachEmbeddeds(child.embeddeds, cb);
6
+ function forEachEmbeddeds(file, cb) {
7
+ cb(file);
8
+ for (const child of file.embeddeds) {
9
+ forEachEmbeddeds(child, cb);
12
10
  }
13
11
  }
14
12
  exports.forEachEmbeddeds = forEachEmbeddeds;
@@ -19,7 +17,7 @@ function createDocumentRegistry() {
19
17
  const embeddedDocumentsMap = (0, reactivity_1.computed)(() => {
20
18
  const map = new WeakMap();
21
19
  for (const [sourceFile] of all.value) {
22
- forEachEmbeddeds(sourceFile.embeddeds, embedded => {
20
+ forEachEmbeddeds(sourceFile, embedded => {
23
21
  map.set(embedded, sourceFile);
24
22
  });
25
23
  }
@@ -28,7 +26,7 @@ function createDocumentRegistry() {
28
26
  const sourceMapsByFileName = (0, reactivity_1.computed)(() => {
29
27
  const map = new Map();
30
28
  for (const [sourceFile] of all.value) {
31
- forEachEmbeddeds(sourceFile.embeddeds, embedded => {
29
+ forEachEmbeddeds(sourceFile, embedded => {
32
30
  map.set(normalizePath(embedded.fileName), { sourceFile, embedded });
33
31
  });
34
32
  }
@@ -38,7 +36,7 @@ function createDocumentRegistry() {
38
36
  const map = new Map();
39
37
  for (const key in files) {
40
38
  const [sourceFile] = files[key];
41
- forEachEmbeddeds(sourceFile.embeddeds, embedded => {
39
+ forEachEmbeddeds(sourceFile, embedded => {
42
40
  if (embedded.teleportMappings) {
43
41
  map.set(normalizePath(embedded.fileName), getTeleport(sourceFile, embedded.teleportMappings));
44
42
  }
@@ -61,14 +59,14 @@ function createDocumentRegistry() {
61
59
  yield sourceMap[1];
62
60
  }
63
61
  },
64
- fromEmbeddedLocation: function* (fileName, offset) {
62
+ fromEmbeddedLocation: function* (fileName, offset, baseOnRight = false) {
65
63
  if (fileName.endsWith('/__VLS_types.ts')) { // TODO: monkey fix
66
64
  return;
67
65
  }
68
66
  const mapped = sourceMapsByFileName.value.get(normalizePath(fileName));
69
67
  if (mapped) {
70
68
  const sourceMap = getSourceMap(mapped.sourceFile, mapped.embedded.mappings);
71
- for (const vueRange of sourceMap.toSourceOffsets(offset)) {
69
+ for (const vueRange of sourceMap.toSourceOffsets(offset, baseOnRight)) {
72
70
  yield {
73
71
  fileName: mapped.sourceFile.fileName,
74
72
  offset: vueRange[0],
@@ -15,7 +15,7 @@ export declare function createEmbeddedLanguageServiceHost(host: LanguageServiceH
15
15
  sourceFile: SourceFile;
16
16
  embedded: import("./types").EmbeddedFile;
17
17
  }, void, unknown>;
18
- fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
18
+ fromEmbeddedLocation: (fileName: string, offset: number, baseOnRight?: boolean) => Generator<{
19
19
  fileName: string;
20
20
  offset: number;
21
21
  mapping: import("@volar/source-map").Mapping<any>;
@@ -173,13 +173,13 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
173
173
  }
174
174
  }
175
175
  for (const [sourceFile, languageModule, snapshot] of sourceFilesToUpdate) {
176
- (0, documentRegistry_1.forEachEmbeddeds)(sourceFile.embeddeds, embedded => {
176
+ (0, documentRegistry_1.forEachEmbeddeds)(sourceFile, embedded => {
177
177
  fileVersions.delete(embedded.fileName);
178
178
  });
179
179
  const oldScripts = {};
180
180
  const newScripts = {};
181
181
  if (!tsFileUpdated) {
182
- (0, documentRegistry_1.forEachEmbeddeds)(sourceFile.embeddeds, embedded => {
182
+ (0, documentRegistry_1.forEachEmbeddeds)(sourceFile, embedded => {
183
183
  if (embedded.kind) {
184
184
  oldScripts[embedded.fileName] = embedded.text;
185
185
  }
@@ -188,7 +188,7 @@ function createEmbeddedLanguageServiceHost(host, languageModules) {
188
188
  languageModule.updateSourceFile(sourceFile, snapshot);
189
189
  documentRegistry.onSourceFileUpdated(sourceFile);
190
190
  if (!tsFileUpdated) {
191
- (0, documentRegistry_1.forEachEmbeddeds)(sourceFile.embeddeds, embedded => {
191
+ (0, documentRegistry_1.forEachEmbeddeds)(sourceFile, embedded => {
192
192
  if (embedded.kind) {
193
193
  newScripts[embedded.fileName] = embedded.text;
194
194
  }
package/out/types.d.ts CHANGED
@@ -40,10 +40,7 @@ export interface TextRange {
40
40
  start: number;
41
41
  end: number;
42
42
  }
43
- export interface SourceFile {
44
- fileName: string;
45
- text: string;
46
- embeddeds: EmbeddedFile[];
43
+ export interface SourceFile extends EmbeddedFile {
47
44
  }
48
45
  export declare enum EmbeddedFileKind {
49
46
  TextFile = 0,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/language-core",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
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.13",
16
+ "@volar/source-map": "1.0.14",
17
17
  "@vue/reactivity": "^3.2.45",
18
18
  "muggle-string": "^0.1.0"
19
19
  },
20
- "gitHead": "cba2eba187b2d82e1d45dd86b3edeab0ca7caad6"
20
+ "gitHead": "ce4d48b37db784400e15fe08282edc836e24d4cd"
21
21
  }