@zzzen/pyright-internal 1.2.0-dev.20260104 → 1.2.0-dev.20260111

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.
Files changed (107) hide show
  1. package/dist/analyzer/backgroundAnalysisProgram.d.ts +3 -3
  2. package/dist/analyzer/backgroundAnalysisProgram.js +18 -5
  3. package/dist/analyzer/backgroundAnalysisProgram.js.map +1 -1
  4. package/dist/analyzer/binder.d.ts +1 -0
  5. package/dist/analyzer/binder.js +22 -0
  6. package/dist/analyzer/binder.js.map +1 -1
  7. package/dist/analyzer/declaration.d.ts +1 -0
  8. package/dist/analyzer/declaration.js.map +1 -1
  9. package/dist/analyzer/docStringUtils.d.ts +1 -0
  10. package/dist/analyzer/docStringUtils.js +36 -0
  11. package/dist/analyzer/docStringUtils.js.map +1 -1
  12. package/dist/analyzer/importStatementUtils.d.ts +2 -1
  13. package/dist/analyzer/importStatementUtils.js +4 -3
  14. package/dist/analyzer/importStatementUtils.js.map +1 -1
  15. package/dist/analyzer/parseTreeUtils.js +2 -2
  16. package/dist/analyzer/parseTreeUtils.js.map +1 -1
  17. package/dist/analyzer/program.d.ts +5 -0
  18. package/dist/analyzer/program.js +39 -14
  19. package/dist/analyzer/program.js.map +1 -1
  20. package/dist/analyzer/pythonPathUtils.d.ts +1 -1
  21. package/dist/analyzer/service.d.ts +3 -2
  22. package/dist/analyzer/service.js +42 -12
  23. package/dist/analyzer/service.js.map +1 -1
  24. package/dist/analyzer/sourceMapper.d.ts +1 -1
  25. package/dist/analyzer/typeDocStringUtils.d.ts +4 -1
  26. package/dist/analyzer/typeDocStringUtils.js +9 -6
  27. package/dist/analyzer/typeDocStringUtils.js.map +1 -1
  28. package/dist/analyzer/typeEvaluator.js +16 -0
  29. package/dist/analyzer/typeEvaluator.js.map +1 -1
  30. package/dist/analyzer/types.d.ts +1 -1
  31. package/dist/backgroundAnalysisBase.d.ts +2 -0
  32. package/dist/backgroundAnalysisBase.js.map +1 -1
  33. package/dist/commands/dumpFileDebugInfoCommand.d.ts +0 -96
  34. package/dist/commands/dumpFileDebugInfoCommand.js +6 -966
  35. package/dist/commands/dumpFileDebugInfoCommand.js.map +1 -1
  36. package/dist/common/console.d.ts +16 -3
  37. package/dist/common/console.js +25 -4
  38. package/dist/common/console.js.map +1 -1
  39. package/dist/common/core.d.ts +2 -0
  40. package/dist/common/core.js +11 -0
  41. package/dist/common/core.js.map +1 -1
  42. package/dist/common/docStringService.d.ts +5 -2
  43. package/dist/common/docStringService.js +6 -2
  44. package/dist/common/docStringService.js.map +1 -1
  45. package/dist/common/languageInfoUtils.d.ts +114 -0
  46. package/dist/common/languageInfoUtils.js +1004 -0
  47. package/dist/common/languageInfoUtils.js.map +1 -0
  48. package/dist/common/logTracker.d.ts +6 -4
  49. package/dist/common/logTracker.js +9 -6
  50. package/dist/common/logTracker.js.map +1 -1
  51. package/dist/common/pathConsts.d.ts +1 -0
  52. package/dist/common/pathConsts.js +2 -1
  53. package/dist/common/pathConsts.js.map +1 -1
  54. package/dist/common/realFileSystem.js +16 -10
  55. package/dist/common/realFileSystem.js.map +1 -1
  56. package/dist/common/serviceProvider.d.ts +2 -0
  57. package/dist/common/serviceProvider.js +23 -1
  58. package/dist/common/serviceProvider.js.map +1 -1
  59. package/dist/common/serviceProviderExtensions.js +5 -0
  60. package/dist/common/serviceProviderExtensions.js.map +1 -1
  61. package/dist/common/uri/baseUri.d.ts +1 -1
  62. package/dist/common/uri/uri.d.ts +2 -50
  63. package/dist/common/uri/uri.js.map +1 -1
  64. package/dist/common/uri/uriInterface.d.ts +51 -0
  65. package/dist/common/uri/uriInterface.js +10 -0
  66. package/dist/common/uri/uriInterface.js.map +1 -0
  67. package/dist/languageServerBase.js +2 -2
  68. package/dist/languageServerBase.js.map +1 -1
  69. package/dist/localization/package.nls.cs.json +18 -18
  70. package/dist/localization/package.nls.de.json +18 -18
  71. package/dist/localization/package.nls.es.json +18 -18
  72. package/dist/localization/package.nls.fr.json +18 -18
  73. package/dist/localization/package.nls.it.json +18 -18
  74. package/dist/localization/package.nls.ja.json +18 -18
  75. package/dist/localization/package.nls.ko.json +18 -18
  76. package/dist/localization/package.nls.pl.json +18 -18
  77. package/dist/localization/package.nls.pt-br.json +18 -18
  78. package/dist/localization/package.nls.ru.json +18 -18
  79. package/dist/localization/package.nls.tr.json +18 -18
  80. package/dist/localization/package.nls.zh-cn.json +18 -18
  81. package/dist/localization/package.nls.zh-tw.json +18 -18
  82. package/dist/tests/completions.test.js +47 -0
  83. package/dist/tests/completions.test.js.map +1 -1
  84. package/dist/tests/fourSlashParser.test.js +259 -12
  85. package/dist/tests/fourSlashParser.test.js.map +1 -1
  86. package/dist/tests/fourslash/findDefinitions.typedDict.keys.fourslash.js +9 -0
  87. package/dist/tests/fourslash/findDefinitions.typedDict.keys.fourslash.js.map +1 -1
  88. package/dist/tests/harness/fourslash/fourSlashParser.js +484 -27
  89. package/dist/tests/harness/fourslash/fourSlashParser.js.map +1 -1
  90. package/dist/tests/harness/fourslash/fourSlashRawUtils.d.ts +12 -0
  91. package/dist/tests/harness/fourslash/fourSlashRawUtils.js +151 -0
  92. package/dist/tests/harness/fourslash/fourSlashRawUtils.js.map +1 -0
  93. package/dist/tests/harness/fourslash/fourSlashTypes.d.ts +73 -2
  94. package/dist/tests/harness/fourslash/fourSlashTypes.js +27 -1
  95. package/dist/tests/harness/fourslash/fourSlashTypes.js.map +1 -1
  96. package/dist/tests/harness/fourslash/testState.js +1 -1
  97. package/dist/tests/harness/fourslash/testState.js.map +1 -1
  98. package/dist/tests/harness/vfs/factory.js +3 -3
  99. package/dist/tests/harness/vfs/factory.js.map +1 -1
  100. package/dist/tests/languageServer.test.js +3 -3
  101. package/dist/tests/languageServer.test.js.map +1 -1
  102. package/dist/tests/lsp/languageServer.js +10 -1
  103. package/dist/tests/lsp/languageServer.js.map +1 -1
  104. package/dist/tests/lsp/languageServerTestUtils.d.ts +3 -1
  105. package/dist/tests/lsp/languageServerTestUtils.js +24 -2
  106. package/dist/tests/lsp/languageServerTestUtils.js.map +1 -1
  107. package/package.json +3 -3
@@ -38,6 +38,7 @@ const assert_1 = __importDefault(require("assert"));
38
38
  const pathUtils_1 = require("../common/pathUtils");
39
39
  const stringUtils_1 = require("../common/stringUtils");
40
40
  const fourSlashParser_1 = require("./harness/fourslash/fourSlashParser");
41
+ const fourSlashRawUtils_1 = require("./harness/fourslash/fourSlashRawUtils");
41
42
  const host = __importStar(require("./harness/testHost"));
42
43
  const factory = __importStar(require("./harness/vfs/factory"));
43
44
  const uriUtils_1 = require("../common/uri/uriUtils");
@@ -111,7 +112,7 @@ test('Range', () => {
111
112
  pass`;
112
113
  const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
113
114
  assert_1.default.equal(data.files[0].content, content);
114
- assert_1.default.deepEqual(data.ranges, [
115
+ assert_1.default.deepEqual(stripRanges(data.ranges), [
115
116
  { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), pos: 13, end: 17, marker: undefined },
116
117
  ]);
117
118
  });
@@ -125,8 +126,8 @@ test('Marker', () => {
125
126
  const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
126
127
  assert_1.default.equal(data.files[0].content, content);
127
128
  const marker = { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), position: 13 };
128
- assert_1.default.deepEqual(data.markers, [marker]);
129
- assert_1.default.deepEqual(data.markerPositions.get('marker1'), marker);
129
+ assert_1.default.deepEqual(stripMarkers(data.markers), [marker]);
130
+ assert_1.default.deepEqual(stripMarker(data.markerPositions.get('marker1')), marker);
130
131
  });
131
132
  test('MarkerWithData', () => {
132
133
  // embedded json data
@@ -138,7 +139,7 @@ test('MarkerWithData', () => {
138
139
  pass`;
139
140
  const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
140
141
  assert_1.default.equal(data.files[0].content, content);
141
- assert_1.default.deepEqual(data.markers, [
142
+ assert_1.default.deepEqual(stripMarkers(data.markers), [
142
143
  { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), position: 13, data: { data1: '1', data2: '2' } },
143
144
  ]);
144
145
  assert_1.default.equal(data.markerPositions.size, 0);
@@ -159,8 +160,8 @@ test('MarkerWithDataAndName', () => {
159
160
  position: 13,
160
161
  data: { name: 'marker1', data1: '1', data2: '2' },
161
162
  };
162
- assert_1.default.deepEqual(data.markers, [marker]);
163
- assert_1.default.deepEqual(data.markerPositions.get(marker.data.name), marker);
163
+ assert_1.default.deepEqual(stripMarkers(data.markers), [marker]);
164
+ assert_1.default.deepEqual(stripMarker(data.markerPositions.get(marker.data.name)), marker);
164
165
  });
165
166
  test('RangeWithMarker', () => {
166
167
  // range can have 1 marker in it
@@ -173,9 +174,11 @@ test('RangeWithMarker', () => {
173
174
  const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
174
175
  assert_1.default.equal(data.files[0].content, content);
175
176
  const marker = { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), position: 13 };
176
- assert_1.default.deepEqual(data.markers, [marker]);
177
- assert_1.default.deepEqual(data.markerPositions.get('marker1'), marker);
178
- assert_1.default.deepEqual(data.ranges, [{ fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), pos: 13, end: 17, marker }]);
177
+ assert_1.default.deepEqual(stripMarkers(data.markers), [marker]);
178
+ assert_1.default.deepEqual(stripMarker(data.markerPositions.get('marker1')), marker);
179
+ assert_1.default.deepEqual(stripRanges(data.ranges), [
180
+ { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), pos: 13, end: 17, marker },
181
+ ]);
179
182
  });
180
183
  test('RangeWithMarkerAndJsonData', () => {
181
184
  // range can have 1 marker in it
@@ -193,9 +196,11 @@ test('RangeWithMarkerAndJsonData', () => {
193
196
  position: 13,
194
197
  data: { name: 'marker1', data1: '1', data2: '2' },
195
198
  };
196
- assert_1.default.deepEqual(data.markers, [marker]);
197
- assert_1.default.deepEqual(data.markerPositions.get(marker.data.name), marker);
198
- assert_1.default.deepEqual(data.ranges, [{ fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), pos: 13, end: 17, marker }]);
199
+ assert_1.default.deepEqual(stripMarkers(data.markers), [marker]);
200
+ assert_1.default.deepEqual(stripMarker(data.markerPositions.get(marker.data.name)), marker);
201
+ assert_1.default.deepEqual(stripRanges(data.ranges), [
202
+ { fileName: 'test.py', fileUri: uriUtils_1.UriEx.file('test.py'), pos: 13, end: 17, marker },
203
+ ]);
199
204
  });
200
205
  test('Multiple Files', () => {
201
206
  // range can have 1 marker in it
@@ -289,6 +294,219 @@ test('fourSlashWithFileSystem', () => {
289
294
  assert_1.default.equal(fs.readFileSync(file.fileUri, 'utf8'), getContent((0, pathUtils_1.getBaseFileName)(file.fileName, '.py', false)));
290
295
  }
291
296
  });
297
+ test('RawTokensLossless', () => {
298
+ const code = '// @filename: a.py\r\n////a/*m*/b\r\n';
299
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
300
+ assert_1.default.equal(data.rawText, code);
301
+ (0, assert_1.default)(data.rawText);
302
+ (0, assert_1.default)(data.rawTokens);
303
+ const reconstructed = data.rawTokens.map((t) => data.rawText.slice(t.start, t.end)).join('');
304
+ assert_1.default.equal(reconstructed, code);
305
+ assert_1.default.equal(data.rawTokens[0].start, 0);
306
+ assert_1.default.equal(data.rawTokens[data.rawTokens.length - 1].end, code.length);
307
+ for (let i = 0; i < data.rawTokens.length - 1; i++) {
308
+ assert_1.default.equal(data.rawTokens[i].end, data.rawTokens[i + 1].start);
309
+ }
310
+ const twoSlash = data.rawTokens.find((t) => t.kind === "twoSlashPrefix" /* RawTokenKind.TwoSlashPrefix */);
311
+ (0, assert_1.default)(twoSlash);
312
+ assert_1.default.equal(data.rawText.slice(twoSlash.start, twoSlash.end), '//');
313
+ const fourSlash = data.rawTokens.find((t) => t.kind === "fourSlashPrefix" /* RawTokenKind.FourSlashPrefix */);
314
+ (0, assert_1.default)(fourSlash);
315
+ assert_1.default.equal(data.rawText.slice(fourSlash.start, fourSlash.end), '////');
316
+ const cr = data.rawTokens.find((t) => t.kind === "newlineCR" /* RawTokenKind.NewLineCR */);
317
+ const lf = data.rawTokens.find((t) => t.kind === "newlineLF" /* RawTokenKind.NewLineLF */);
318
+ (0, assert_1.default)(cr);
319
+ (0, assert_1.default)(lf);
320
+ assert_1.default.equal(data.rawText.slice(cr.start, cr.end), '\r');
321
+ assert_1.default.equal(data.rawText.slice(lf.start, lf.end), '\n');
322
+ });
323
+ test('RawTokensTraceCoversAllKinds', () => {
324
+ const code = '// @pythonversion:\t3.12 \r\n' + '////\t[|ab/*m*/cd{| "x": 1 |}ef|]\r\n';
325
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
326
+ assert_1.default.equal(data.rawText, code);
327
+ (0, assert_1.default)(data.rawText);
328
+ (0, assert_1.default)(data.rawTokens);
329
+ const trace = data.rawTokens.map((t) => [t.kind, data.rawText.slice(t.start, t.end)]);
330
+ const expectedTrace = [
331
+ // Directive line.
332
+ ["twoSlashPrefix" /* RawTokenKind.TwoSlashPrefix */, '//'],
333
+ ["whitespace" /* RawTokenKind.Whitespace */, ' '],
334
+ ["directiveAt" /* RawTokenKind.DirectiveAt */, '@'],
335
+ ["directiveName" /* RawTokenKind.DirectiveName */, 'pythonversion'],
336
+ ["directiveColon" /* RawTokenKind.DirectiveColon */, ':'],
337
+ ["whitespace" /* RawTokenKind.Whitespace */, '\t'],
338
+ ["directiveValue" /* RawTokenKind.DirectiveValue */, '3.12'],
339
+ ["whitespace" /* RawTokenKind.Whitespace */, ' '],
340
+ ["newlineCR" /* RawTokenKind.NewLineCR */, '\r'],
341
+ ["newlineLF" /* RawTokenKind.NewLineLF */, '\n'],
342
+ // Four-slash content line.
343
+ ["fourSlashPrefix" /* RawTokenKind.FourSlashPrefix */, '////'],
344
+ ["whitespace" /* RawTokenKind.Whitespace */, '\t'],
345
+ ["rangeStart" /* RawTokenKind.RangeStart */, '[|'],
346
+ ["text" /* RawTokenKind.Text */, 'ab'],
347
+ ["markerStart" /* RawTokenKind.MarkerStart */, '/*'],
348
+ ["markerName" /* RawTokenKind.MarkerName */, 'm'],
349
+ ["markerEnd" /* RawTokenKind.MarkerEnd */, '*/'],
350
+ ["text" /* RawTokenKind.Text */, 'cd'],
351
+ ["objectMarkerStart" /* RawTokenKind.ObjectMarkerStart */, '{|'],
352
+ ["objectMarkerText" /* RawTokenKind.ObjectMarkerText */, ' "x": 1 '],
353
+ ["objectMarkerEnd" /* RawTokenKind.ObjectMarkerEnd */, '|}'],
354
+ ["text" /* RawTokenKind.Text */, 'ef'],
355
+ ["rangeEnd" /* RawTokenKind.RangeEnd */, '|]'],
356
+ ["newlineCR" /* RawTokenKind.NewLineCR */, '\r'],
357
+ ["newlineLF" /* RawTokenKind.NewLineLF */, '\n'],
358
+ ];
359
+ assert_1.default.deepEqual(trace, expectedTrace);
360
+ const allKinds = [
361
+ "whitespace" /* RawTokenKind.Whitespace */,
362
+ "newlineCR" /* RawTokenKind.NewLineCR */,
363
+ "newlineLF" /* RawTokenKind.NewLineLF */,
364
+ "text" /* RawTokenKind.Text */,
365
+ "twoSlashPrefix" /* RawTokenKind.TwoSlashPrefix */,
366
+ "fourSlashPrefix" /* RawTokenKind.FourSlashPrefix */,
367
+ "directiveAt" /* RawTokenKind.DirectiveAt */,
368
+ "directiveName" /* RawTokenKind.DirectiveName */,
369
+ "directiveColon" /* RawTokenKind.DirectiveColon */,
370
+ "directiveValue" /* RawTokenKind.DirectiveValue */,
371
+ "rangeStart" /* RawTokenKind.RangeStart */,
372
+ "rangeEnd" /* RawTokenKind.RangeEnd */,
373
+ "markerStart" /* RawTokenKind.MarkerStart */,
374
+ "markerName" /* RawTokenKind.MarkerName */,
375
+ "markerEnd" /* RawTokenKind.MarkerEnd */,
376
+ "objectMarkerStart" /* RawTokenKind.ObjectMarkerStart */,
377
+ "objectMarkerText" /* RawTokenKind.ObjectMarkerText */,
378
+ "objectMarkerEnd" /* RawTokenKind.ObjectMarkerEnd */,
379
+ ];
380
+ const seen = new Set(data.rawTokens.map((t) => t.kind));
381
+ const missing = allKinds.filter((k) => !seen.has(k));
382
+ assert_1.default.deepEqual(missing, [], `Missing raw token kinds: ${missing.join(', ')}\n\nTrace:\n${trace
383
+ .map(([k, s]) => `${k}: ${JSON.stringify(s)}`)
384
+ .join('\n')}`);
385
+ });
386
+ test('RawDataTokenRangesForMarkerRangeAndDirective', () => {
387
+ const code = '// @pythonversion: 3.12\n' + '////class A:\n' + '//// [|/*marker1*/pass|]\n';
388
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
389
+ (0, assert_1.default)(data.rawText);
390
+ (0, assert_1.default)(data.rawTokens);
391
+ const directive = data.globalOptionsRawData?.pythonversion;
392
+ (0, assert_1.default)(directive);
393
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, directive.prefix), '//');
394
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, directive.name), '@pythonversion');
395
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, directive.colon), ':');
396
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, directive.value), '3.12');
397
+ assert_1.default.equal(data.ranges.length, 1);
398
+ const range = data.ranges[0];
399
+ (0, assert_1.default)(range.rawData);
400
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, range.rawData.open), '[|');
401
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, range.rawData.close), '|]');
402
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, range.rawData.full), '[|/*marker1*/pass|]');
403
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, range.rawData.selected), '/*marker1*/pass');
404
+ assert_1.default.equal(data.markers.length, 1);
405
+ const marker = data.markers[0];
406
+ (0, assert_1.default)(marker.rawData);
407
+ assert_1.default.equal(marker.rawData.kind, 'slashStar');
408
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, marker.rawData.full), '/*marker1*/');
409
+ assert_1.default.equal(sliceByTokenRange(data.rawText, data.rawTokens, marker.rawData.name), 'marker1');
410
+ });
411
+ test('StrictRawToContentMapping', () => {
412
+ const code = '////class A:\r\n//// /*marker1*/pass\r\n';
413
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
414
+ const file = data.files[0];
415
+ const rawOffsetPass = code.indexOf('pass');
416
+ (0, assert_1.default)(rawOffsetPass >= 0);
417
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetPass), file.content.indexOf('pass'));
418
+ const rawOffsetMarker = code.indexOf('/*marker1*/');
419
+ (0, assert_1.default)(rawOffsetMarker >= 0);
420
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetMarker), undefined);
421
+ const rawOffsetCr = code.indexOf('\r');
422
+ (0, assert_1.default)(rawOffsetCr >= 0);
423
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetCr), undefined);
424
+ const passContentOffset = file.content.indexOf('pass');
425
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertContentOffsetToRawOffset)(file, passContentOffset), rawOffsetPass);
426
+ const rawOffsetAfterPass = rawOffsetPass + 'pass'.length;
427
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetAfterPass), file.content.length);
428
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertContentOffsetToRawOffset)(file, file.content.length), rawOffsetAfterPass);
429
+ });
430
+ test('StrictRawToContentMapping_UnmappedPrefixesAndRangeDelimiters', () => {
431
+ const code = '////[|a|]\n';
432
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
433
+ const file = data.files[0];
434
+ // Raw offsets inside the four-slash prefix are unmapped.
435
+ const rawOffsetInPrefix = code.indexOf('////') + 2;
436
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetInPrefix), undefined);
437
+ // Range delimiter tokens are metacharacters and are unmapped.
438
+ const rawOffsetRangeStart = code.indexOf('[|');
439
+ (0, assert_1.default)(rawOffsetRangeStart >= 0);
440
+ // The start of a stripped delimiter can coincide with a mapped segment boundary.
441
+ // Strictness means the bytes *inside* the delimiter are unmapped.
442
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetRangeStart + 1), undefined);
443
+ const rawOffsetRangeEnd = code.indexOf('|]');
444
+ (0, assert_1.default)(rawOffsetRangeEnd >= 0);
445
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetRangeEnd), file.content.length);
446
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetRangeEnd + 1), undefined);
447
+ // Content inside the range should map.
448
+ const rawOffsetA = code.indexOf('a');
449
+ (0, assert_1.default)(rawOffsetA >= 0);
450
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetA), file.content.indexOf('a'));
451
+ });
452
+ test('StrictRawToContentMapping_LfMapsButCrDoesNot', () => {
453
+ const code = '////a\r\n////b\r\n';
454
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
455
+ const file = data.files[0];
456
+ assert_1.default.equal(file.content, 'a\nb');
457
+ const rawOffsetCr = code.indexOf('\r');
458
+ const rawOffsetLf = code.indexOf('\n');
459
+ (0, assert_1.default)(rawOffsetCr >= 0);
460
+ (0, assert_1.default)(rawOffsetLf >= 0);
461
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetCr), undefined);
462
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetLf), file.content.indexOf('\n'));
463
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertContentOffsetToRawOffset)(file, file.content.indexOf('\n')), rawOffsetLf);
464
+ });
465
+ test('InvalidSlashStarMarkerIsTreatedAsComment', () => {
466
+ const code = '////a/*bad-marker*/b\n';
467
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
468
+ const file = data.files[0];
469
+ assert_1.default.equal(data.markers.length, 0);
470
+ assert_1.default.equal(file.content, 'a/*bad-marker*/b');
471
+ const rawOffsetCommentStart = code.indexOf('/*');
472
+ (0, assert_1.default)(rawOffsetCommentStart >= 0);
473
+ assert_1.default.equal((0, fourSlashRawUtils_1.tryConvertRawOffsetToContentOffset)(file, rawOffsetCommentStart), file.content.indexOf('/*'));
474
+ });
475
+ test('UnterminatedRangeThrows', () => {
476
+ const code = '////[|a\n';
477
+ assert_1.default.throws(() => (0, fourSlashParser_1.parseTestData)('.', code, 'test.py'), (e) => e instanceof Error && e.message.includes('Unterminated range.'));
478
+ });
479
+ test('GetOwningFileAtRawOffset', () => {
480
+ const code = '// @filename: A.py\n' + '////class A: pass\n' + '\n' + '// @filename: B.py\n' + '////class B: pass\n';
481
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
482
+ assert_1.default.equal(data.files.length, 2);
483
+ const bRawOffset = code.indexOf('class B');
484
+ (0, assert_1.default)(bRawOffset >= 0);
485
+ const owningFile = (0, fourSlashRawUtils_1.getFileAtRawOffset)(data, bRawOffset);
486
+ (0, assert_1.default)(owningFile);
487
+ assert_1.default.equal((0, pathUtils_1.getBaseFileName)(owningFile.fileName, '.py', false), 'B');
488
+ });
489
+ test('GetOwningFileAtRawOffset_Boundaries', () => {
490
+ const code = '// @filename: A.py\n' + '////class A: pass\n' + '// @filename: B.py\n' + '////class B: pass\n';
491
+ const data = (0, fourSlashParser_1.parseTestData)('.', code, 'test.py');
492
+ assert_1.default.equal(data.files.length, 2);
493
+ // The newline token at the end of A's four-slash line is still owned by file A.
494
+ const aLineEndLf = code.indexOf('////class A: pass') + '////class A: pass'.length;
495
+ assert_1.default.equal(code[aLineEndLf], '\n');
496
+ const fileAtALineLf = (0, fourSlashRawUtils_1.getFileAtRawOffset)(data, aLineEndLf);
497
+ (0, assert_1.default)(fileAtALineLf);
498
+ assert_1.default.equal((0, pathUtils_1.getBaseFileName)(fileAtALineLf.fileName, '.py', false), 'A');
499
+ // The @filename directive line is not part of any file's tokenRanges.
500
+ const bDirectiveOffset = code.indexOf('// @filename: B.py');
501
+ (0, assert_1.default)(bDirectiveOffset >= 0);
502
+ assert_1.default.equal((0, fourSlashRawUtils_1.getFileAtRawOffset)(data, bDirectiveOffset), undefined);
503
+ // The first four-slash line after the directive is owned by file B.
504
+ const bContentOffset = code.indexOf('////class B');
505
+ (0, assert_1.default)(bContentOffset >= 0);
506
+ const fileAtBLine = (0, fourSlashRawUtils_1.getFileAtRawOffset)(data, bContentOffset);
507
+ (0, assert_1.default)(fileAtBLine);
508
+ assert_1.default.equal((0, pathUtils_1.getBaseFileName)(fileAtBLine.fileName, '.py', false), 'B');
509
+ });
292
510
  function getContent(className) {
293
511
  return `class ${className}:
294
512
  pass`;
@@ -296,4 +514,33 @@ function getContent(className) {
296
514
  function assertOptions(actual, expected, message) {
297
515
  assert_1.default.deepEqual(Object.entries(actual).sort((x, y) => (0, stringUtils_1.compareStringsCaseSensitive)(x[0], y[0])), expected, message);
298
516
  }
517
+ function stripMarker(marker) {
518
+ const base = {
519
+ fileName: marker.fileName,
520
+ fileUri: marker.fileUri,
521
+ position: marker.position,
522
+ };
523
+ // Preserve legacy shape: omit `data` when undefined.
524
+ return marker.data !== undefined ? { ...base, data: marker.data } : base;
525
+ }
526
+ function stripMarkers(markers) {
527
+ return markers.map((m) => stripMarker(m));
528
+ }
529
+ function stripRanges(ranges) {
530
+ return ranges.map((r) => ({
531
+ fileName: r.fileName,
532
+ fileUri: r.fileUri,
533
+ pos: r.pos,
534
+ end: r.end,
535
+ marker: r.marker ? stripMarker(r.marker) : undefined,
536
+ }));
537
+ }
538
+ function sliceByTokenRange(rawText, rawTokens, tokenRange) {
539
+ if (tokenRange.startToken === tokenRange.endToken) {
540
+ return '';
541
+ }
542
+ const start = rawTokens[tokenRange.startToken].start;
543
+ const end = rawTokens[tokenRange.endToken - 1].end;
544
+ return rawText.slice(start, end);
545
+ }
299
546
  //# sourceMappingURL=fourSlashParser.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fourSlashParser.test.js","sourceRoot":"","sources":["../../../../../src/tests/fourSlashParser.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fourSlashParser.test.js","sourceRoot":"","sources":["../../../../../src/tests/fourSlashParser.test.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  //// post: Post = {'author': {[|/*marker2*/'name'|]}}
30
30
  //// profile: Profile = {[|/*marker3*/'views'|]: 100}
31
31
  //// author: Author = {'name': 'Robert', [|/*marker4*/'age'|]: 67}
32
+ //// author2: Author = Author([|/*marker8*/name|]='Robert', age=67)
32
33
  ////
33
34
  //// def foo(item: Post | Author) -> None:
34
35
  //// ...
@@ -90,6 +91,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
90
91
  return { path: r.fileName, range: helper.convertPositionRange(r) };
91
92
  }),
92
93
  },
94
+ marker8: {
95
+ definitions: rangeMap
96
+ .get('name')
97
+ .filter((r) => !r.marker)
98
+ .map((r) => {
99
+ return { path: r.fileName, range: helper.convertPositionRange(r) };
100
+ }),
101
+ },
93
102
  }, 'preferSource');
94
103
  }
95
104
  //# sourceMappingURL=findDefinitions.typedDict.keys.fourslash.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"findDefinitions.typedDict.keys.fourslash.js","sourceRoot":"","sources":["../../../../../../src/tests/fourslash/findDefinitions.typedDict.keys.fourslash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findDefinitions.typedDict.keys.fourslash.js","sourceRoot":"","sources":["../../../../../../src/tests/fourslash/findDefinitions.typedDict.keys.fourslash.ts"],"names":[],"mappings":"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"}