@volar/source-map 0.29.5 → 0.30.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.
package/out/index.d.ts CHANGED
@@ -40,19 +40,7 @@ export declare enum Mode {
40
40
  * 123456 -> abcdef
41
41
  * ^^ ^ ^
42
42
  */
43
- Expand = 2,
44
- /**
45
- * @case1
46
- * 123456 -> abcdef
47
- * ^ ^ ^ ^
48
- * @case2
49
- * 123456 -> abcdef
50
- * ^^ ^ ^
51
- * @case3
52
- * 123456 -> abcdef
53
- * ^^ NOT_MATCH
54
- */
55
- Overlap = 3
43
+ Expand = 2
56
44
  }
57
45
  export declare type MappingBase = {
58
46
  mode: Mode;
@@ -66,32 +54,26 @@ export declare type Mapping<T> = MappingBase & {
66
54
  export declare class SourceMapBase<Data = undefined> {
67
55
  mappings: Mapping<Data>[];
68
56
  constructor(_mappings?: Mapping<Data>[]);
69
- private cache;
70
- getSourceRange(start: number, end?: number, filter?: (data: Data) => boolean): {
71
- data: Data;
57
+ getSourceRange(start: number, end?: number, filter?: (data: Data) => boolean): [{
72
58
  start: number;
73
59
  end: number;
74
- } | undefined;
75
- getMappedRange(start: number, end?: number, filter?: (data: Data) => boolean): {
76
- data: Data;
60
+ }, Data] | undefined;
61
+ getMappedRange(start: number, end?: number, filter?: (data: Data) => boolean): [{
77
62
  start: number;
78
63
  end: number;
79
- } | undefined;
80
- getSourceRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<{
81
- data: Data;
64
+ }, Data] | undefined;
65
+ getSourceRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<[{
82
66
  start: number;
83
67
  end: number;
84
- }, void, unknown>;
85
- getMappedRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<{
86
- data: Data;
68
+ }, Data], void, unknown>;
69
+ getMappedRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<[{
87
70
  start: number;
88
71
  end: number;
89
- }, void, unknown>;
90
- protected getRanges(startOffset: number, endOffset: number, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<{
91
- data: Data;
72
+ }, Data], void, unknown>;
73
+ protected getRanges(startOffset: number, endOffset: number, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<[{
92
74
  start: number;
93
75
  end: number;
94
- }, void, unknown>;
76
+ }, Data], void, unknown>;
95
77
  private getRange;
96
78
  }
97
79
  export declare class SourceMap<Data = undefined> extends SourceMapBase<Data> {
@@ -99,29 +81,24 @@ export declare class SourceMap<Data = undefined> extends SourceMapBase<Data> {
99
81
  mappedDocument: TextDocument;
100
82
  _mappings?: Mapping<Data>[] | undefined;
101
83
  constructor(sourceDocument: TextDocument, mappedDocument: TextDocument, _mappings?: Mapping<Data>[] | undefined);
102
- getSourceRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): {
103
- data: Data;
84
+ getSourceRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): [{
104
85
  start: T;
105
86
  end: T;
106
- } | undefined;
107
- getMappedRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): {
108
- data: Data;
87
+ }, Data] | undefined;
88
+ getMappedRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): [{
109
89
  start: T;
110
90
  end: T;
111
- } | undefined;
112
- getSourceRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<{
113
- data: Data;
91
+ }, Data] | undefined;
92
+ getSourceRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<[{
114
93
  start: T;
115
94
  end: T;
116
- }, void, unknown>;
117
- getMappedRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<{
118
- data: Data;
95
+ }, Data], void, unknown>;
96
+ getMappedRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<[{
119
97
  start: T;
120
98
  end: T;
121
- }, void, unknown>;
122
- protected getRanges<T extends number | vscode.Position>(start: T, end: T, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<{
123
- data: Data;
99
+ }, Data], void, unknown>;
100
+ protected getRanges<T extends number | vscode.Position>(start: T, end: T, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<[{
124
101
  start: T;
125
102
  end: T;
126
- }, void, unknown>;
103
+ }, Data], void, unknown>;
127
104
  }
package/out/index.js CHANGED
@@ -39,22 +39,9 @@ var Mode;
39
39
  * ^^ ^ ^
40
40
  */
41
41
  Mode[Mode["Expand"] = 2] = "Expand";
42
- /**
43
- * @case1
44
- * 123456 -> abcdef
45
- * ^ ^ ^ ^
46
- * @case2
47
- * 123456 -> abcdef
48
- * ^^ ^ ^
49
- * @case3
50
- * 123456 -> abcdef
51
- * ^^ NOT_MATCH
52
- */
53
- Mode[Mode["Overlap"] = 3] = "Overlap";
54
42
  })(Mode = exports.Mode || (exports.Mode = {}));
55
43
  class SourceMapBase {
56
44
  constructor(_mappings) {
57
- this.cache = new Map();
58
45
  this.mappings = _mappings !== null && _mappings !== void 0 ? _mappings : [];
59
46
  }
60
47
  getSourceRange(start, end, filter) {
@@ -74,35 +61,18 @@ class SourceMapBase {
74
61
  return this.getRanges(start, end !== null && end !== void 0 ? end : start, true, filter);
75
62
  }
76
63
  *getRanges(startOffset, endOffset, sourceToTarget, filter) {
77
- const key = startOffset + ':' + endOffset + ':' + sourceToTarget;
78
- let result = this.cache.get(key);
79
- if (!result) {
80
- result = {
81
- index: 0,
82
- mapeds: [],
83
- };
84
- this.cache.set(key, result);
85
- }
86
- for (const maped of result.mapeds) {
87
- if (!filter || filter(maped.data)) {
88
- yield getMaped(maped);
89
- }
90
- }
91
- while (result.index < this.mappings.length) {
92
- const mapping = this.mappings[result.index++];
64
+ for (const mapping of this.mappings) {
65
+ if (filter && !filter(mapping.data))
66
+ continue;
93
67
  const maped = this.getRange(startOffset, endOffset, sourceToTarget, mapping.mode, mapping.sourceRange, mapping.mappedRange, mapping.data);
94
68
  if (maped) {
95
- result.mapeds.push(maped);
96
- if (!filter || filter(maped.data))
97
- yield getMaped(maped);
69
+ yield getMaped(maped);
98
70
  }
99
71
  else if (mapping.additional) {
100
72
  for (const other of mapping.additional) {
101
73
  const maped = this.getRange(startOffset, endOffset, sourceToTarget, other.mode, other.sourceRange, other.mappedRange, mapping.data);
102
74
  if (maped) {
103
- result.mapeds.push(maped);
104
- if (!filter || filter(maped.data))
105
- yield getMaped(maped);
75
+ yield getMaped(maped);
106
76
  break; // only return first match additional range
107
77
  }
108
78
  }
@@ -119,47 +89,30 @@ class SourceMapBase {
119
89
  if (start === mapedFromRange.start && end === mapedFromRange.end) {
120
90
  const _start = mapedToRange.start;
121
91
  const _end = mapedToRange.end;
122
- return {
123
- data: data,
124
- start: Math.min(_start, _end),
125
- end: Math.max(_start, _end),
126
- };
92
+ return [{
93
+ start: Math.min(_start, _end),
94
+ end: Math.max(_start, _end),
95
+ }, data];
127
96
  }
128
97
  }
129
98
  else if (mode === Mode.Offset) {
130
99
  if (start >= mapedFromRange.start && end <= mapedFromRange.end) {
131
100
  const _start = mapedToRange.start + start - mapedFromRange.start;
132
101
  const _end = mapedToRange.end + end - mapedFromRange.end;
133
- return {
134
- data: data,
135
- start: Math.min(_start, _end),
136
- end: Math.max(_start, _end),
137
- };
102
+ return [{
103
+ start: Math.min(_start, _end),
104
+ end: Math.max(_start, _end),
105
+ }, data];
138
106
  }
139
107
  }
140
108
  else if (mode === Mode.Expand) {
141
109
  if (start >= mapedFromRange.start && end <= mapedFromRange.end) {
142
110
  const _start = mapedToRange.start;
143
111
  const _end = mapedToRange.end;
144
- return {
145
- data: data,
146
- start: Math.min(_start, _end),
147
- end: Math.max(_start, _end),
148
- };
149
- }
150
- }
151
- else if (mode === Mode.Overlap) {
152
- if ((start >= mapedFromRange.start && start <= mapedFromRange.end)
153
- || (end >= mapedFromRange.start && end <= mapedFromRange.end)
154
- || (mapedFromRange.start >= start && mapedFromRange.start <= end)
155
- || (mapedFromRange.end >= start && mapedFromRange.end <= end)) {
156
- const _start = mapedToRange.start;
157
- const _end = mapedToRange.end;
158
- return {
159
- data: data,
160
- start: Math.min(_start, _end),
161
- end: Math.max(_start, _end),
162
- };
112
+ return [{
113
+ start: Math.min(_start, _end),
114
+ end: Math.max(_start, _end),
115
+ }, data];
163
116
  }
164
117
  }
165
118
  }
@@ -202,11 +155,10 @@ class SourceMap extends SourceMapBase {
202
155
  if (startIsNumber) {
203
156
  return maped;
204
157
  }
205
- return {
206
- data: maped.data,
207
- start: toDoc.positionAt(maped.start),
208
- end: toDoc.positionAt(maped.end),
209
- };
158
+ return [{
159
+ start: toDoc.positionAt(maped[0].start),
160
+ end: toDoc.positionAt(maped[0].end),
161
+ }, maped[1]];
210
162
  }
211
163
  }
212
164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/source-map",
3
- "version": "0.29.5",
3
+ "version": "0.30.0",
4
4
  "main": "out/index.js",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -13,7 +13,7 @@
13
13
  "directory": "packages/source-map"
14
14
  },
15
15
  "dependencies": {
16
- "@volar/shared": "0.29.5"
16
+ "@volar/shared": "0.30.0"
17
17
  },
18
- "gitHead": "17b50db7dbcee55457fa55127ad93a3806111abd"
18
+ "gitHead": "9623a12f9468cd8c82b17e73e991394584df5cf1"
19
19
  }