@volar/source-map 0.29.0 → 0.29.1

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
@@ -67,27 +67,27 @@ export declare class SourceMapBase<Data = undefined> {
67
67
  mappings: Mapping<Data>[];
68
68
  constructor(_mappings?: Mapping<Data>[]);
69
69
  private cache;
70
- getSourceRange(start: number, end?: number): {
70
+ getSourceRange(start: number, end?: number, filter?: (data: Data) => boolean): {
71
71
  data: Data;
72
72
  start: number;
73
73
  end: number;
74
74
  } | undefined;
75
- getMappedRange(start: number, end?: number): {
75
+ getMappedRange(start: number, end?: number, filter?: (data: Data) => boolean): {
76
76
  data: Data;
77
77
  start: number;
78
78
  end: number;
79
79
  } | undefined;
80
- getSourceRanges(start: number, end?: number): Generator<{
80
+ getSourceRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<{
81
81
  data: Data;
82
82
  start: number;
83
83
  end: number;
84
84
  }, void, unknown>;
85
- getMappedRanges(start: number, end?: number): Generator<{
85
+ getMappedRanges(start: number, end?: number, filter?: (data: Data) => boolean): Generator<{
86
86
  data: Data;
87
87
  start: number;
88
88
  end: number;
89
89
  }, void, unknown>;
90
- protected getRanges(startOffset: number, endOffset: number, sourceToTarget: boolean): Generator<{
90
+ protected getRanges(startOffset: number, endOffset: number, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<{
91
91
  data: Data;
92
92
  start: number;
93
93
  end: number;
@@ -99,27 +99,27 @@ export declare class SourceMap<Data = undefined> extends SourceMapBase<Data> {
99
99
  mappedDocument: TextDocument;
100
100
  _mappings?: Mapping<Data>[] | undefined;
101
101
  constructor(sourceDocument: TextDocument, mappedDocument: TextDocument, _mappings?: Mapping<Data>[] | undefined);
102
- getSourceRange<T extends number | vscode.Position>(start: T, end?: T): {
102
+ getSourceRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): {
103
103
  data: Data;
104
104
  start: T;
105
105
  end: T;
106
106
  } | undefined;
107
- getMappedRange<T extends number | vscode.Position>(start: T, end?: T): {
107
+ getMappedRange<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): {
108
108
  data: Data;
109
109
  start: T;
110
110
  end: T;
111
111
  } | undefined;
112
- getSourceRanges<T extends number | vscode.Position>(start: T, end?: T): Generator<{
112
+ getSourceRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<{
113
113
  data: Data;
114
114
  start: T;
115
115
  end: T;
116
116
  }, void, unknown>;
117
- getMappedRanges<T extends number | vscode.Position>(start: T, end?: T): Generator<{
117
+ getMappedRanges<T extends number | vscode.Position>(start: T, end?: T, filter?: (data: Data) => boolean): Generator<{
118
118
  data: Data;
119
119
  start: T;
120
120
  end: T;
121
121
  }, void, unknown>;
122
- protected getRanges<T extends number | vscode.Position>(start: T, end: T, sourceToTarget: boolean): Generator<{
122
+ protected getRanges<T extends number | vscode.Position>(start: T, end: T, sourceToTarget: boolean, filter?: (data: Data) => boolean): Generator<{
123
123
  data: Data;
124
124
  start: T;
125
125
  end: T;
package/out/index.js CHANGED
@@ -57,23 +57,23 @@ class SourceMapBase {
57
57
  this.cache = new Map();
58
58
  this.mappings = _mappings !== null && _mappings !== void 0 ? _mappings : [];
59
59
  }
60
- getSourceRange(start, end) {
61
- for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, false)) {
60
+ getSourceRange(start, end, filter) {
61
+ for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, false, filter)) {
62
62
  return maped;
63
63
  }
64
64
  }
65
- getMappedRange(start, end) {
66
- for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, true)) {
65
+ getMappedRange(start, end, filter) {
66
+ for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, true, filter)) {
67
67
  return maped;
68
68
  }
69
69
  }
70
- getSourceRanges(start, end) {
71
- return this.getRanges(start, end !== null && end !== void 0 ? end : start, false);
70
+ getSourceRanges(start, end, filter) {
71
+ return this.getRanges(start, end !== null && end !== void 0 ? end : start, false, filter);
72
72
  }
73
- getMappedRanges(start, end) {
74
- return this.getRanges(start, end !== null && end !== void 0 ? end : start, true);
73
+ getMappedRanges(start, end, filter) {
74
+ return this.getRanges(start, end !== null && end !== void 0 ? end : start, true, filter);
75
75
  }
76
- *getRanges(startOffset, endOffset, sourceToTarget) {
76
+ *getRanges(startOffset, endOffset, sourceToTarget, filter) {
77
77
  const key = startOffset + ':' + endOffset + ':' + sourceToTarget;
78
78
  let result = this.cache.get(key);
79
79
  if (!result) {
@@ -84,21 +84,25 @@ class SourceMapBase {
84
84
  this.cache.set(key, result);
85
85
  }
86
86
  for (const maped of result.mapeds) {
87
- yield getMaped(maped);
87
+ if (!filter || filter(maped.data)) {
88
+ yield getMaped(maped);
89
+ }
88
90
  }
89
91
  while (result.index < this.mappings.length) {
90
92
  const mapping = this.mappings[result.index++];
91
93
  const maped = this.getRange(startOffset, endOffset, sourceToTarget, mapping.mode, mapping.sourceRange, mapping.mappedRange, mapping.data);
92
94
  if (maped) {
93
95
  result.mapeds.push(maped);
94
- yield getMaped(maped);
96
+ if (!filter || filter(maped.data))
97
+ yield getMaped(maped);
95
98
  }
96
99
  else if (mapping.additional) {
97
100
  for (const other of mapping.additional) {
98
101
  const maped = this.getRange(startOffset, endOffset, sourceToTarget, other.mode, other.sourceRange, other.mappedRange, mapping.data);
99
102
  if (maped) {
100
103
  result.mapeds.push(maped);
101
- yield getMaped(maped);
104
+ if (!filter || filter(maped.data))
105
+ yield getMaped(maped);
102
106
  break; // only return first match additional range
103
107
  }
104
108
  }
@@ -168,30 +172,30 @@ class SourceMap extends SourceMapBase {
168
172
  this.mappedDocument = mappedDocument;
169
173
  this._mappings = _mappings;
170
174
  }
171
- getSourceRange(start, end) {
172
- for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, false)) {
175
+ getSourceRange(start, end, filter) {
176
+ for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, false, filter)) {
173
177
  return maped;
174
178
  }
175
179
  }
176
- getMappedRange(start, end) {
177
- for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, true)) {
180
+ getMappedRange(start, end, filter) {
181
+ for (const maped of this.getRanges(start, end !== null && end !== void 0 ? end : start, true, filter)) {
178
182
  return maped;
179
183
  }
180
184
  }
181
- getSourceRanges(start, end) {
182
- return this.getRanges(start, end !== null && end !== void 0 ? end : start, false);
185
+ getSourceRanges(start, end, filter) {
186
+ return this.getRanges(start, end !== null && end !== void 0 ? end : start, false, filter);
183
187
  }
184
- getMappedRanges(start, end) {
185
- return this.getRanges(start, end !== null && end !== void 0 ? end : start, true);
188
+ getMappedRanges(start, end, filter) {
189
+ return this.getRanges(start, end !== null && end !== void 0 ? end : start, true, filter);
186
190
  }
187
- *getRanges(start, end, sourceToTarget) {
191
+ *getRanges(start, end, sourceToTarget, filter) {
188
192
  const startIsNumber = typeof start === 'number';
189
193
  const endIsNumber = typeof end === 'number';
190
194
  const toDoc = sourceToTarget ? this.mappedDocument : this.sourceDocument;
191
195
  const fromDoc = sourceToTarget ? this.sourceDocument : this.mappedDocument;
192
196
  const startOffset = startIsNumber ? start : fromDoc.offsetAt(start);
193
197
  const endOffset = endIsNumber ? end : fromDoc.offsetAt(end);
194
- for (const maped of super.getRanges(startOffset, endOffset, sourceToTarget)) {
198
+ for (const maped of super.getRanges(startOffset, endOffset, sourceToTarget, filter)) {
195
199
  yield getMaped(maped);
196
200
  }
197
201
  function getMaped(maped) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/source-map",
3
- "version": "0.29.0",
3
+ "version": "0.29.1",
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.0"
16
+ "@volar/shared": "0.29.1"
17
17
  },
18
- "gitHead": "3a2f1db33d92410455811bc119041e800de115ab"
18
+ "gitHead": "0add24cc5057e9c01e8d2b16cf5888309b6a16d5"
19
19
  }