@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.
@@ -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, start: number, end?: number, filter?: ((data: PositionCapabilities) => boolean) | undefined, sourceMapFilter?: ((sourceMap: DocumentCapabilities) => boolean) | undefined) => Generator<{
18
+ fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
19
19
  fileName: string;
20
- range: {
21
- start: number;
22
- end: number;
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
- range: {
32
- start: number;
33
- end: number;
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
  };
@@ -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, start, end, filter, sourceMapFilter) {
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.getSourceRanges(start, end, filter)) {
71
+ for (const vueRange of sourceMap.toSourceOffsets(offset)) {
76
72
  yield {
77
73
  fileName: mapped.vueFile.fileName,
78
- range: vueRange[0],
79
- mapped: mapped,
80
- data: vueRange[1],
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
- range: {
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);
@@ -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, start: number, end?: number | undefined, filter?: ((data: import("./types").PositionCapabilities) => boolean) | undefined, sourceMapFilter?: ((sourceMap: import("./types").DocumentCapabilities) => boolean) | undefined) => Generator<{
18
+ fromEmbeddedLocation: (fileName: string, offset: number) => Generator<{
19
19
  fileName: string;
20
- range: {
21
- start: number;
22
- end: number;
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
- range: {
32
- start: number;
33
- end: number;
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
  };
@@ -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.isTsHostFile) {
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.isTsHostFile) {
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.isTsHostFile) {
205
+ if (mapped.embedded.kind) {
206
206
  tsFileNames.add(mapped.embedded.fileName); // virtual .ts
207
207
  }
208
208
  }
@@ -1,10 +1,5 @@
1
1
  import * as SourceMaps from '@volar/source-map';
2
- import { PositionCapabilities, TeleportMappingData, TeleportCapabilities } from './types';
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, end?: number, filter?: (data: TeleportCapabilities) => boolean): Generator<readonly [{
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 = exports.EmbeddedFileSourceMap = void 0;
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, end, filter) {
9
- for (const [teleRange, data] of this.getMappedRanges(start, end, filter ? data => filter(data.toGenedCapabilities) : undefined)) {
10
- yield [teleRange, data.toGenedCapabilities];
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 [teleRange, data] of this.getSourceRanges(start, end, filter ? data => filter(data.toGenedCapabilities) : undefined)) {
13
- yield [teleRange, data.toGenedCapabilities];
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
- diagnostics?: boolean;
5
- foldingRanges?: boolean;
6
- formatting?: boolean | {
4
+ diagnostic?: boolean;
5
+ foldingRange?: boolean;
6
+ documentFormatting?: boolean | {
7
7
  initialIndentBracket?: [string, string];
8
8
  };
9
9
  documentSymbol?: boolean;
10
- codeActions?: boolean;
11
- inlayHints?: boolean;
10
+ codeAction?: boolean;
11
+ inlayHint?: boolean;
12
12
  }
13
13
  export interface PositionCapabilities {
14
14
  hover?: boolean;
15
15
  references?: boolean;
16
- definitions?: boolean;
16
+ definition?: boolean;
17
17
  rename?: boolean | {
18
18
  normalize?(newName: string): string;
19
- apply?(oldName: string, newName: string): string;
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
- definitions?: boolean;
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
- isTsHostFile: boolean;
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.1",
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/code-gen": "1.0.0-beta.1",
17
- "@volar/source-map": "1.0.0-beta.1",
18
- "@vue/reactivity": "^3.2.38"
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": "3421929c584e8fafd772b2386c12ffe9b48355f2"
20
+ "gitHead": "b7242f995970b4eedfcf068619497eb845e9ac73"
21
21
  }