@volar/typescript 2.3.0 → 2.3.2

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/lib/common.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveFileLanguageId = void 0;
3
+ exports.resolveFileLanguageId = resolveFileLanguageId;
4
4
  function resolveFileLanguageId(path) {
5
5
  const ext = path.split('.').pop();
6
6
  switch (ext) {
@@ -15,5 +15,4 @@ function resolveFileLanguageId(path) {
15
15
  case 'json': return 'json';
16
16
  }
17
17
  }
18
- exports.resolveFileLanguageId = resolveFileLanguageId;
19
18
  //# sourceMappingURL=common.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decorateLanguageService = void 0;
3
+ exports.decorateLanguageService = decorateLanguageService;
4
4
  const language_core_1 = require("@volar/language-core");
5
5
  const dedupe_1 = require("./dedupe");
6
6
  const transform_1 = require("./transform");
@@ -47,7 +47,7 @@ function decorateLanguageService(language, languageService) {
47
47
  const edits = getFormattingEditsForDocument(targetScript.id, options);
48
48
  return edits
49
49
  .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
50
- .filter(utils_1.notEmpty);
50
+ .filter(edit => !!edit);
51
51
  }
52
52
  else {
53
53
  return getFormattingEditsForDocument(fileName, options);
@@ -66,7 +66,7 @@ function decorateLanguageService(language, languageService) {
66
66
  const edits = getFormattingEditsForRange(targetScript.id, generateStart, generateEnd, options);
67
67
  return edits
68
68
  .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
69
- .filter(utils_1.notEmpty);
69
+ .filter(edit => !!edit);
70
70
  }
71
71
  return [];
72
72
  }
@@ -86,7 +86,7 @@ function decorateLanguageService(language, languageService) {
86
86
  const edits = getFormattingEditsAfterKeystroke(targetScript.id, generatePosition, key, options);
87
87
  return edits
88
88
  .map(edit => (0, transform_1.transformTextChange)(sourceScript, language, serviceScript, edit, language_core_1.isFormattingEnabled)?.[1])
89
- .filter(utils_1.notEmpty);
89
+ .filter(edit => !!edit);
90
90
  }
91
91
  return [];
92
92
  }
@@ -112,7 +112,7 @@ function decorateLanguageService(language, languageService) {
112
112
  return {
113
113
  ranges: info.ranges
114
114
  .map(span => (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1.isLinkedEditingEnabled)?.[1])
115
- .filter(utils_1.notEmpty),
115
+ .filter(span => !!span),
116
116
  wordPattern: info.wordPattern,
117
117
  };
118
118
  }
@@ -165,7 +165,7 @@ function decorateLanguageService(language, languageService) {
165
165
  const from = (0, transform_1.transformCallHierarchyItem)(language, call.from, language_core_1.isCallHierarchyEnabled);
166
166
  const fromSpans = call.fromSpans
167
167
  .map(span => (0, transform_1.transformSpan)(language, call.from.file, span, language_core_1.isCallHierarchyEnabled)?.textSpan)
168
- .filter(utils_1.notEmpty);
168
+ .filter(span => !!span);
169
169
  return {
170
170
  from,
171
171
  fromSpans,
@@ -195,7 +195,7 @@ function decorateLanguageService(language, languageService) {
195
195
  .map(span => serviceScript
196
196
  ? (0, transform_1.transformTextSpan)(sourceScript, language, serviceScript, span, language_core_1.isCallHierarchyEnabled)?.[1]
197
197
  : span)
198
- .filter(utils_1.notEmpty);
198
+ .filter(span => !!span);
199
199
  return {
200
200
  to,
201
201
  fromSpans,
@@ -319,7 +319,7 @@ function decorateLanguageService(language, languageService) {
319
319
  };
320
320
  }
321
321
  })
322
- .filter(utils_1.notEmpty),
322
+ .filter(span => !!span),
323
323
  };
324
324
  });
325
325
  return resolved;
@@ -331,15 +331,16 @@ function decorateLanguageService(language, languageService) {
331
331
  return [];
332
332
  }
333
333
  if (serviceScript) {
334
- const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, typeof positionOrRange === 'number' ? positionOrRange : positionOrRange.pos, language_core_1.isCodeActionsEnabled);
335
- if (generatePosition !== undefined) {
336
- const por = typeof positionOrRange === 'number'
337
- ? generatePosition
338
- : {
339
- pos: generatePosition,
340
- end: generatePosition + positionOrRange.end - positionOrRange.pos,
341
- };
342
- return getApplicableRefactors(targetScript.id, por, preferences, triggerReason, kind, includeInteractiveActions);
334
+ if (typeof positionOrRange === 'number') {
335
+ const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);
336
+ if (generatePosition !== undefined) {
337
+ return getApplicableRefactors(targetScript.id, generatePosition, preferences, triggerReason, kind, includeInteractiveActions);
338
+ }
339
+ }
340
+ else {
341
+ for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {
342
+ return getApplicableRefactors(targetScript.id, { pos: generatedStart, end: generatedEnd }, preferences, triggerReason, kind, includeInteractiveActions);
343
+ }
343
344
  }
344
345
  return [];
345
346
  }
@@ -355,17 +356,16 @@ function decorateLanguageService(language, languageService) {
355
356
  return undefined;
356
357
  }
357
358
  if (serviceScript) {
358
- const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, typeof positionOrRange === 'number'
359
- ? positionOrRange
360
- : positionOrRange.pos, language_core_1.isCodeActionsEnabled);
361
- if (generatePosition !== undefined) {
362
- const por = typeof positionOrRange === 'number'
363
- ? generatePosition
364
- : {
365
- pos: generatePosition,
366
- end: generatePosition + positionOrRange.end - positionOrRange.pos,
367
- };
368
- edits = getEditsForRefactor(targetScript.id, formatOptions, por, refactorName, actionName, preferences);
359
+ if (typeof positionOrRange === 'number') {
360
+ const generatePosition = (0, transform_1.toGeneratedOffset)(language, serviceScript, sourceScript, positionOrRange, language_core_1.isCodeActionsEnabled);
361
+ if (generatePosition !== undefined) {
362
+ edits = getEditsForRefactor(targetScript.id, formatOptions, generatePosition, refactorName, actionName, preferences);
363
+ }
364
+ }
365
+ else {
366
+ for (const [generatedStart, generatedEnd] of (0, transform_1.toGeneratedRanges)(language, serviceScript, sourceScript, positionOrRange.pos, positionOrRange.end, language_core_1.isCodeActionsEnabled)) {
367
+ edits = getEditsForRefactor(targetScript.id, formatOptions, { pos: generatedStart, end: generatedEnd }, refactorName, actionName, preferences);
368
+ }
369
369
  }
370
370
  }
371
371
  else {
@@ -465,16 +465,9 @@ function decorateLanguageService(language, languageService) {
465
465
  const result = getEncodedSemanticClassifications(targetScript.id, { start, length: end - start }, format);
466
466
  const spans = [];
467
467
  for (let i = 0; i < result.spans.length; i += 3) {
468
- for (const sourceStart of (0, transform_1.toSourceOffsets)(sourceScript, language, serviceScript, result.spans[i], language_core_1.isSemanticTokensEnabled)) {
469
- for (const sourceEnd of (0, transform_1.toSourceOffsets)(sourceScript, language, serviceScript, result.spans[i] + result.spans[i + 1], language_core_1.isSemanticTokensEnabled)) {
470
- if (sourceStart[0] === sourceEnd[0] && sourceEnd[1] >= sourceStart[1]) {
471
- spans.push(sourceStart[1], sourceEnd[1] - sourceStart[1], result.spans[i + 2]);
472
- break;
473
- }
474
- }
475
- if (spans.length) {
476
- break;
477
- }
468
+ for (const [_, sourceStart, sourceEnd] of (0, transform_1.toSourceRanges)(sourceScript, language, serviceScript, result.spans[i], result.spans[i] + result.spans[i + 1], language_core_1.isSemanticTokensEnabled)) {
469
+ spans.push(sourceStart, sourceEnd - sourceStart, result.spans[i + 2]);
470
+ break;
478
471
  }
479
472
  }
480
473
  result.spans = spans;
@@ -492,7 +485,7 @@ function decorateLanguageService(language, languageService) {
492
485
  }
493
486
  return getSyntacticDiagnostics(targetScript?.id ?? fileName)
494
487
  .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))
495
- .filter(utils_1.notEmpty)
488
+ .filter(d => !!d)
496
489
  .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript);
497
490
  };
498
491
  languageService.getSemanticDiagnostics = filePath => {
@@ -503,7 +496,7 @@ function decorateLanguageService(language, languageService) {
503
496
  }
504
497
  return getSemanticDiagnostics(targetScript?.id ?? fileName)
505
498
  .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))
506
- .filter(utils_1.notEmpty)
499
+ .filter(d => !!d)
507
500
  .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);
508
501
  };
509
502
  languageService.getSuggestionDiagnostics = filePath => {
@@ -514,7 +507,7 @@ function decorateLanguageService(language, languageService) {
514
507
  }
515
508
  return getSuggestionDiagnostics(targetScript?.id ?? fileName)
516
509
  .map(d => (0, transform_1.transformDiagnostic)(language, d, languageService.getProgram(), false))
517
- .filter(utils_1.notEmpty)
510
+ .filter(d => !!d)
518
511
  .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);
519
512
  };
520
513
  languageService.getDefinitionAndBoundSpan = (filePath, position) => {
@@ -526,15 +519,15 @@ function decorateLanguageService(language, languageService) {
526
519
  });
527
520
  const textSpan = unresolved
528
521
  .map(s => (0, transform_1.transformSpan)(language, fileName, s.textSpan, language_core_1.isDefinitionEnabled)?.textSpan)
529
- .filter(utils_1.notEmpty)[0];
522
+ .filter(s => !!s)[0];
530
523
  if (!textSpan) {
531
524
  return;
532
525
  }
533
526
  const definitions = unresolved
534
527
  .map(s => s.definitions
535
528
  ?.map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
536
- .filter(utils_1.notEmpty))
537
- .filter(utils_1.notEmpty)
529
+ .filter(s => !!s)
530
+ ?? [])
538
531
  .flat();
539
532
  return {
540
533
  textSpan,
@@ -558,7 +551,7 @@ function decorateLanguageService(language, languageService) {
558
551
  definition,
559
552
  references: symbol.references
560
553
  .map(r => (0, transform_1.transformDocumentSpan)(language, r, language_core_1.isReferencesEnabled))
561
- .filter(utils_1.notEmpty),
554
+ .filter(r => !!r),
562
555
  };
563
556
  });
564
557
  return resolved;
@@ -573,7 +566,7 @@ function decorateLanguageService(language, languageService) {
573
566
  const resolved = unresolved
574
567
  .flat()
575
568
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isDefinitionEnabled, s.fileName !== fileName))
576
- .filter(utils_1.notEmpty);
569
+ .filter(s => !!s);
577
570
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
578
571
  };
579
572
  languageService.getTypeDefinitionAtPosition = (filePath, position) => {
@@ -586,7 +579,7 @@ function decorateLanguageService(language, languageService) {
586
579
  const resolved = unresolved
587
580
  .flat()
588
581
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isTypeDefinitionEnabled))
589
- .filter(utils_1.notEmpty);
582
+ .filter(s => !!s);
590
583
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
591
584
  };
592
585
  languageService.getImplementationAtPosition = (filePath, position) => {
@@ -599,7 +592,7 @@ function decorateLanguageService(language, languageService) {
599
592
  const resolved = unresolved
600
593
  .flat()
601
594
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isImplementationEnabled))
602
- .filter(utils_1.notEmpty);
595
+ .filter(s => !!s);
603
596
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
604
597
  };
605
598
  languageService.findRenameLocations = (filePath, position, findInStrings, findInComments, preferences) => {
@@ -612,7 +605,7 @@ function decorateLanguageService(language, languageService) {
612
605
  const resolved = unresolved
613
606
  .flat()
614
607
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isRenameEnabled))
615
- .filter(utils_1.notEmpty);
608
+ .filter(s => !!s);
616
609
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
617
610
  };
618
611
  languageService.getReferencesAtPosition = (filePath, position) => {
@@ -625,7 +618,7 @@ function decorateLanguageService(language, languageService) {
625
618
  const resolved = unresolved
626
619
  .flat()
627
620
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
628
- .filter(utils_1.notEmpty);
621
+ .filter(s => !!s);
629
622
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
630
623
  };
631
624
  languageService.getCompletionsAtPosition = (filePath, position, options, formattingSettings) => {
@@ -740,7 +733,7 @@ function decorateLanguageService(language, languageService) {
740
733
  const unresolved = getFileReferences(fileName);
741
734
  const resolved = unresolved
742
735
  .map(s => (0, transform_1.transformDocumentSpan)(language, s, language_core_1.isReferencesEnabled))
743
- .filter(utils_1.notEmpty);
736
+ .filter(s => !!s);
744
737
  return (0, dedupe_1.dedupeDocumentSpans)(resolved);
745
738
  };
746
739
  function linkedCodeFeatureWorker(fileName, position, filter, worker, getLinkedCodes) {
@@ -784,7 +777,6 @@ function decorateLanguageService(language, languageService) {
784
777
  }
785
778
  }
786
779
  }
787
- exports.decorateLanguageService = decorateLanguageService;
788
780
  function displayPartsToString(displayParts) {
789
781
  if (displayParts) {
790
782
  return displayParts.map(displayPart => displayPart.text).join('');
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.searchExternalFiles = exports.decorateLanguageServiceHost = void 0;
3
+ exports.decorateLanguageServiceHost = decorateLanguageServiceHost;
4
+ exports.searchExternalFiles = searchExternalFiles;
4
5
  const resolveModuleName_1 = require("../resolveModuleName");
5
6
  function decorateLanguageServiceHost(ts, language, languageServiceHost) {
6
7
  const pluginExtensions = language.plugins
@@ -119,7 +120,6 @@ function decorateLanguageServiceHost(ts, language, languageServiceHost) {
119
120
  return script[1];
120
121
  }
121
122
  }
122
- exports.decorateLanguageServiceHost = decorateLanguageServiceHost;
123
123
  function searchExternalFiles(ts, project, exts) {
124
124
  if (project.projectKind !== ts.server.ProjectKind.Configured) {
125
125
  return [];
@@ -138,5 +138,4 @@ function searchExternalFiles(ts, project, exts) {
138
138
  const parsed = ts.parseJsonSourceFileConfigFileContent(config, parseHost, project.getCurrentDirectory());
139
139
  return parsed.fileNames;
140
140
  }
141
- exports.searchExternalFiles = searchExternalFiles;
142
141
  //# sourceMappingURL=decorateLanguageServiceHost.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.decorateProgram = void 0;
3
+ exports.decorateProgram = decorateProgram;
4
4
  const transform_1 = require("./transform");
5
5
  const utils_1 = require("./utils");
6
6
  function decorateProgram(language, program) {
@@ -19,21 +19,21 @@ function decorateProgram(language, program) {
19
19
  ...result,
20
20
  diagnostics: result.diagnostics
21
21
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
22
- .filter(utils_1.notEmpty),
22
+ .filter(d => !!d),
23
23
  };
24
24
  };
25
25
  program.getSyntacticDiagnostics = (sourceFile, cancellationToken) => {
26
26
  if (!sourceFile) {
27
27
  return getSyntacticDiagnostics(undefined, cancellationToken)
28
28
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
29
- .filter(utils_1.notEmpty);
29
+ .filter(d => !!d);
30
30
  }
31
31
  else {
32
32
  const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);
33
33
  const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;
34
34
  return getSyntacticDiagnostics(actualSourceFile, cancellationToken)
35
35
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
36
- .filter(utils_1.notEmpty)
36
+ .filter(d => !!d)
37
37
  .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);
38
38
  }
39
39
  };
@@ -41,35 +41,35 @@ function decorateProgram(language, program) {
41
41
  if (!sourceFile) {
42
42
  return getSemanticDiagnostics(undefined, cancellationToken)
43
43
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
44
- .filter(utils_1.notEmpty);
44
+ .filter(d => !!d);
45
45
  }
46
46
  else {
47
47
  const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);
48
48
  const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;
49
49
  return getSemanticDiagnostics(actualSourceFile, cancellationToken)
50
50
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
51
- .filter(utils_1.notEmpty)
51
+ .filter(d => !!d)
52
52
  .filter(d => !serviceScript || !d.file || language.scripts.get(d.file.fileName) === sourceScript);
53
53
  }
54
54
  };
55
55
  program.getGlobalDiagnostics = cancellationToken => {
56
56
  return getGlobalDiagnostics(cancellationToken)
57
57
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
58
- .filter(utils_1.notEmpty);
58
+ .filter(d => !!d);
59
59
  };
60
60
  // @ts-ignore
61
61
  program.getBindAndCheckDiagnostics = (sourceFile, cancellationToken) => {
62
62
  if (!sourceFile) {
63
63
  return getBindAndCheckDiagnostics(undefined, cancellationToken)
64
64
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
65
- .filter(utils_1.notEmpty);
65
+ .filter(d => !!d);
66
66
  }
67
67
  else {
68
68
  const [serviceScript, targetScript, sourceScript] = (0, utils_1.getServiceScript)(language, sourceFile.fileName);
69
69
  const actualSourceFile = targetScript ? program.getSourceFile(targetScript.id) : sourceFile;
70
70
  return getBindAndCheckDiagnostics(actualSourceFile, cancellationToken)
71
71
  .map(d => (0, transform_1.transformDiagnostic)(language, d, program, true))
72
- .filter(utils_1.notEmpty)
72
+ .filter(d => !!d)
73
73
  .filter(d => !serviceScript || language.scripts.get(d.file.fileName) === sourceScript);
74
74
  }
75
75
  };
@@ -82,5 +82,4 @@ function decorateProgram(language, program) {
82
82
  return sourceFile;
83
83
  };
84
84
  }
85
- exports.decorateProgram = decorateProgram;
86
85
  //# sourceMappingURL=decorateProgram.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dedupeDocumentSpans = void 0;
3
+ exports.dedupeDocumentSpans = dedupeDocumentSpans;
4
4
  function dedupeDocumentSpans(items) {
5
5
  return dedupe(items, item => [
6
6
  item.fileName,
@@ -8,7 +8,6 @@ function dedupeDocumentSpans(items) {
8
8
  item.textSpan.length,
9
9
  ].join(':'));
10
10
  }
11
- exports.dedupeDocumentSpans = dedupeDocumentSpans;
12
11
  function dedupe(items, getKey) {
13
12
  const map = new Map();
14
13
  for (const item of items.reverse()) {
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.proxyCreateProgram = void 0;
3
+ exports.proxyCreateProgram = proxyCreateProgram;
4
4
  const language_core_1 = require("@volar/language-core");
5
5
  const resolveModuleName_1 = require("../resolveModuleName");
6
6
  const decorateProgram_1 = require("./decorateProgram");
@@ -163,7 +163,6 @@ function proxyCreateProgram(ts, original, getLanguagePlugins) {
163
163
  },
164
164
  });
165
165
  }
166
- exports.proxyCreateProgram = proxyCreateProgram;
167
166
  function assert(condition, message) {
168
167
  if (!condition) {
169
168
  console.error(message);
@@ -13,7 +13,9 @@ export declare function transformSpan(language: Language<string>, fileName: stri
13
13
  export declare function transformTextChange(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textChange: ts.TextChange, filter: (data: CodeInformation) => boolean): [string, ts.TextChange] | undefined;
14
14
  export declare function transformTextSpan(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, textSpan: ts.TextSpan, filter: (data: CodeInformation) => boolean): [string, ts.TextSpan] | undefined;
15
15
  export declare function toSourceOffset(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): [fileName: string, offset: number] | undefined;
16
+ export declare function toSourceRanges(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, start: number, end: number, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, start: number, end: number]>;
16
17
  export declare function toSourceOffsets(sourceScript: SourceScript<string> | undefined, language: Language<string>, serviceScript: TypeScriptServiceScript, position: number, filter: (data: CodeInformation) => boolean): Generator<[fileName: string, offset: number]>;
18
+ export declare function toGeneratedRanges(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, start: number, end: number, filter: (data: CodeInformation) => boolean): Generator<readonly [number, number], void, unknown>;
17
19
  export declare function toGeneratedOffset(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, position: number, filter: (data: CodeInformation) => boolean): number | undefined;
18
20
  export declare function toGeneratedOffsets(language: Language, serviceScript: TypeScriptServiceScript, sourceScript: SourceScript<string>, position: number, filter: (data: CodeInformation) => boolean): Generator<readonly [number, import("@volar/language-core").Mapping<CodeInformation>], void, unknown>;
19
21
  export declare function getMappingOffset(language: Language, serviceScript: TypeScriptServiceScript): number;
@@ -1,6 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMappingOffset = exports.toGeneratedOffsets = exports.toGeneratedOffset = exports.toSourceOffsets = exports.toSourceOffset = exports.transformTextSpan = exports.transformTextChange = exports.transformSpan = exports.transformDocumentSpan = exports.transformFileTextChanges = exports.fillSourceFileText = exports.transformDiagnostic = exports.transformCallHierarchyItem = void 0;
3
+ exports.transformCallHierarchyItem = transformCallHierarchyItem;
4
+ exports.transformDiagnostic = transformDiagnostic;
5
+ exports.fillSourceFileText = fillSourceFileText;
6
+ exports.transformFileTextChanges = transformFileTextChanges;
7
+ exports.transformDocumentSpan = transformDocumentSpan;
8
+ exports.transformSpan = transformSpan;
9
+ exports.transformTextChange = transformTextChange;
10
+ exports.transformTextSpan = transformTextSpan;
11
+ exports.toSourceOffset = toSourceOffset;
12
+ exports.toSourceRanges = toSourceRanges;
13
+ exports.toSourceOffsets = toSourceOffsets;
14
+ exports.toGeneratedRanges = toGeneratedRanges;
15
+ exports.toGeneratedOffset = toGeneratedOffset;
16
+ exports.toGeneratedOffsets = toGeneratedOffsets;
17
+ exports.getMappingOffset = getMappingOffset;
4
18
  const language_core_1 = require("@volar/language-core");
5
19
  const utils_1 = require("./utils");
6
20
  const transformedDiagnostics = new WeakMap();
@@ -15,7 +29,6 @@ function transformCallHierarchyItem(language, item, filter) {
15
29
  selectionSpan: selectionSpan?.textSpan ?? { start: 0, length: 0 },
16
30
  };
17
31
  }
18
- exports.transformCallHierarchyItem = transformCallHierarchyItem;
19
32
  function transformDiagnostic(language, diagnostic, program, isTsc) {
20
33
  if (!transformedDiagnostics.has(diagnostic)) {
21
34
  transformedDiagnostics.set(diagnostic, undefined);
@@ -23,7 +36,7 @@ function transformDiagnostic(language, diagnostic, program, isTsc) {
23
36
  if (relatedInformation) {
24
37
  diagnostic.relatedInformation = relatedInformation
25
38
  .map(d => transformDiagnostic(language, d, program, isTsc))
26
- .filter(utils_1.notEmpty);
39
+ .filter(d => !!d);
27
40
  }
28
41
  if (diagnostic.file !== undefined
29
42
  && diagnostic.start !== undefined
@@ -61,7 +74,6 @@ function transformDiagnostic(language, diagnostic, program, isTsc) {
61
74
  }
62
75
  return transformedDiagnostics.get(diagnostic);
63
76
  }
64
- exports.transformDiagnostic = transformDiagnostic;
65
77
  // fix https://github.com/vuejs/language-tools/issues/4099 without `incremental`
66
78
  function fillSourceFileText(language, sourceFile) {
67
79
  if (transformedSourceFile.has(sourceFile)) {
@@ -75,7 +87,6 @@ function fillSourceFileText(language, sourceFile) {
75
87
  + sourceFile.text.substring(sourceScript.snapshot.getLength());
76
88
  }
77
89
  }
78
- exports.fillSourceFileText = fillSourceFileText;
79
90
  function transformFileTextChanges(language, changes, filter) {
80
91
  const changesPerFile = {};
81
92
  const newFiles = new Set();
@@ -109,7 +120,6 @@ function transformFileTextChanges(language, changes, filter) {
109
120
  }
110
121
  return result;
111
122
  }
112
- exports.transformFileTextChanges = transformFileTextChanges;
113
123
  function transformDocumentSpan(language, documentSpan, filter, shouldFallback) {
114
124
  let textSpan = transformSpan(language, documentSpan.fileName, documentSpan.textSpan, filter);
115
125
  if (!textSpan && shouldFallback) {
@@ -134,7 +144,6 @@ function transformDocumentSpan(language, documentSpan, filter, shouldFallback) {
134
144
  originalContextSpan: originalContextSpan?.textSpan,
135
145
  };
136
146
  }
137
- exports.transformDocumentSpan = transformDocumentSpan;
138
147
  function transformSpan(language, fileName, textSpan, filter) {
139
148
  if (!fileName || !textSpan) {
140
149
  return;
@@ -156,7 +165,6 @@ function transformSpan(language, fileName, textSpan, filter) {
156
165
  };
157
166
  }
158
167
  }
159
- exports.transformSpan = transformSpan;
160
168
  function transformTextChange(sourceScript, language, serviceScript, textChange, filter) {
161
169
  const [sourceSpanFileName, sourceSpan] = transformTextSpan(sourceScript, language, serviceScript, textChange.span, filter) ?? [];
162
170
  if (sourceSpan && sourceSpanFileName) {
@@ -167,64 +175,77 @@ function transformTextChange(sourceScript, language, serviceScript, textChange,
167
175
  }
168
176
  return undefined;
169
177
  }
170
- exports.transformTextChange = transformTextChange;
171
178
  function transformTextSpan(sourceScript, language, serviceScript, textSpan, filter) {
172
179
  const start = textSpan.start;
173
180
  const end = textSpan.start + textSpan.length;
174
- for (const sourceStart of toSourceOffsets(sourceScript, language, serviceScript, start, filter)) {
175
- for (const sourceEnd of toSourceOffsets(sourceScript, language, serviceScript, end, filter)) {
176
- if (sourceStart[0] === sourceEnd[0]
177
- && sourceEnd[1] >= sourceStart[1]) {
178
- return [sourceStart[0], {
179
- start: sourceStart[1],
180
- length: sourceEnd[1] - sourceStart[1],
181
- }];
182
- }
183
- }
181
+ for (const [fileName, sourceStart, sourceEnd] of toSourceRanges(sourceScript, language, serviceScript, start, end, filter)) {
182
+ return [fileName, {
183
+ start: sourceStart,
184
+ length: sourceEnd - sourceStart,
185
+ }];
184
186
  }
185
187
  }
186
- exports.transformTextSpan = transformTextSpan;
187
188
  function toSourceOffset(sourceScript, language, serviceScript, position, filter) {
188
189
  for (const source of toSourceOffsets(sourceScript, language, serviceScript, position, filter)) {
189
190
  return source;
190
191
  }
191
192
  }
192
- exports.toSourceOffset = toSourceOffset;
193
+ function* toSourceRanges(sourceScript, language, serviceScript, start, end, filter) {
194
+ if (sourceScript) {
195
+ const map = language.maps.get(serviceScript.code, sourceScript);
196
+ for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) {
197
+ yield [sourceScript.id, sourceStart, sourceEnd];
198
+ }
199
+ }
200
+ else {
201
+ for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {
202
+ for (const [sourceStart, sourceEnd] of map.toSourceRange(start - getMappingOffset(language, serviceScript), end - getMappingOffset(language, serviceScript), true, filter)) {
203
+ yield [sourceScript.id, sourceStart, sourceEnd];
204
+ }
205
+ }
206
+ }
207
+ }
193
208
  function* toSourceOffsets(sourceScript, language, serviceScript, position, filter) {
194
209
  if (sourceScript) {
195
210
  const map = language.maps.get(serviceScript.code, sourceScript);
196
- for (const [sourceOffset, mapping] of map.getSourceOffsets(position - getMappingOffset(language, serviceScript))) {
211
+ for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {
197
212
  if (filter(mapping.data)) {
198
213
  yield [sourceScript.id, sourceOffset];
199
214
  }
200
215
  }
201
216
  }
202
217
  else {
203
- for (const [fileName, _snapshot, map] of language.maps.forEach(serviceScript.code)) {
204
- for (const [sourceOffset, mapping] of map.getSourceOffsets(position - getMappingOffset(language, serviceScript))) {
218
+ for (const [sourceScript, map] of language.maps.forEach(serviceScript.code)) {
219
+ for (const [sourceOffset, mapping] of map.toSourceLocation(position - getMappingOffset(language, serviceScript))) {
205
220
  if (filter(mapping.data)) {
206
- yield [fileName, sourceOffset];
221
+ yield [sourceScript.id, sourceOffset];
207
222
  }
208
223
  }
209
224
  }
210
225
  }
211
226
  }
212
- exports.toSourceOffsets = toSourceOffsets;
227
+ function* toGeneratedRanges(language, serviceScript, sourceScript, start, end, filter) {
228
+ const map = language.maps.get(serviceScript.code, sourceScript);
229
+ for (const [generateStart, generateEnd] of map.toGeneratedRange(start, end, true, filter)) {
230
+ yield [
231
+ generateStart + getMappingOffset(language, serviceScript),
232
+ generateEnd + getMappingOffset(language, serviceScript),
233
+ ];
234
+ }
235
+ }
213
236
  function toGeneratedOffset(language, serviceScript, sourceScript, position, filter) {
214
237
  for (const [generateOffset] of toGeneratedOffsets(language, serviceScript, sourceScript, position, filter)) {
215
238
  return generateOffset;
216
239
  }
217
240
  }
218
- exports.toGeneratedOffset = toGeneratedOffset;
219
241
  function* toGeneratedOffsets(language, serviceScript, sourceScript, position, filter) {
220
242
  const map = language.maps.get(serviceScript.code, sourceScript);
221
- for (const [generateOffset, mapping] of map.getGeneratedOffsets(position)) {
243
+ for (const [generateOffset, mapping] of map.toGeneratedLocation(position)) {
222
244
  if (filter(mapping.data)) {
223
245
  yield [generateOffset + getMappingOffset(language, serviceScript), mapping];
224
246
  }
225
247
  }
226
248
  }
227
- exports.toGeneratedOffsets = toGeneratedOffsets;
228
249
  function getMappingOffset(language, serviceScript) {
229
250
  if (serviceScript.preventLeadingOffset) {
230
251
  return 0;
@@ -232,5 +253,4 @@ function getMappingOffset(language, serviceScript) {
232
253
  const sourceScript = language.scripts.fromVirtualCode(serviceScript.code);
233
254
  return sourceScript.snapshot.getLength();
234
255
  }
235
- exports.getMappingOffset = getMappingOffset;
236
256
  //# sourceMappingURL=transform.js.map
@@ -1,3 +1,2 @@
1
1
  import type { Language, SourceScript, TypeScriptServiceScript } from '@volar/language-core';
2
- export declare function notEmpty<T>(value: T | null | undefined): value is T;
3
2
  export declare function getServiceScript(language: Language<string>, fileName: string): [serviceScript: TypeScriptServiceScript, targetScript: SourceScript<string>, sourceScript: SourceScript<string>] | [serviceScript: undefined, sourceScript: SourceScript<string>, sourceScript: SourceScript<string>] | [serviceScript: undefined, sourceScript: undefined, targetScript: undefined];
package/lib/node/utils.js CHANGED
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getServiceScript = exports.notEmpty = void 0;
4
- function notEmpty(value) {
5
- return value !== null && value !== undefined;
6
- }
7
- exports.notEmpty = notEmpty;
3
+ exports.getServiceScript = getServiceScript;
8
4
  function getServiceScript(language, fileName) {
9
5
  const sourceScript = language.scripts.get(fileName);
10
6
  if (sourceScript?.targetIds.size) {
@@ -29,5 +25,4 @@ function getServiceScript(language, fileName) {
29
25
  }
30
26
  return [undefined, undefined, undefined];
31
27
  }
32
- exports.getServiceScript = getServiceScript;
33
28
  //# sourceMappingURL=utils.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createLanguageServiceHost = void 0;
3
+ exports.createLanguageServiceHost = createLanguageServiceHost;
4
4
  const language_core_1 = require("@volar/language-core");
5
5
  const path = require("path-browserify");
6
6
  const resolveModuleName_1 = require("../resolveModuleName");
@@ -249,7 +249,6 @@ function createLanguageServiceHost(ts, sys, language, asScrpitId, projectHost) {
249
249
  return '';
250
250
  }
251
251
  }
252
- exports.createLanguageServiceHost = createLanguageServiceHost;
253
252
  function setEquals(a, b) {
254
253
  if (a.size !== b.size) {
255
254
  return false;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSys = void 0;
3
+ exports.createSys = createSys;
4
4
  const path = require("path-browserify");
5
5
  const utilities_1 = require("../typescript/utilities");
6
6
  const vscode_uri_1 = require("vscode-uri");
@@ -368,5 +368,4 @@ function createSys(sys, env, workspaceFolder, uriConverter) {
368
368
  return caseSensitive ? fileName : fileName.toLowerCase();
369
369
  }
370
370
  }
371
- exports.createSys = createSys;
372
371
  //# sourceMappingURL=createSys.js.map
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAsyncLanguageServicePlugin = void 0;
3
+ exports.createAsyncLanguageServicePlugin = createAsyncLanguageServicePlugin;
4
4
  const language_core_1 = require("@volar/language-core");
5
5
  const common_1 = require("../common");
6
6
  const decorateLanguageService_1 = require("../node/decorateLanguageService");
@@ -71,14 +71,16 @@ function createAsyncLanguageServicePlugin(extensions, scriptKind, create) {
71
71
  (0, decorateLanguageService_1.decorateLanguageService)(language, info.languageService);
72
72
  (0, decorateLanguageServiceHost_1.decorateLanguageServiceHost)(ts, language, info.languageServiceHost);
73
73
  setup?.(language);
74
- info.project.markAsDirty();
74
+ if ('markAsDirty' in info.project && typeof info.project.markAsDirty === 'function') {
75
+ info.project.markAsDirty();
76
+ }
75
77
  initialized = true;
76
78
  });
77
79
  }
78
80
  return info.languageService;
79
81
  },
80
82
  getExternalFiles(project, updateLevel = 0) {
81
- if (updateLevel >= (1)
83
+ if (updateLevel >= 1
82
84
  || !createLanguageServicePlugin_1.externalFiles.has(project)) {
83
85
  const oldFiles = createLanguageServicePlugin_1.externalFiles.get(project);
84
86
  const newFiles = extensions.length ? (0, decorateLanguageServiceHost_1.searchExternalFiles)(ts, project, extensions) : [];
@@ -93,5 +95,4 @@ function createAsyncLanguageServicePlugin(extensions, scriptKind, create) {
93
95
  return pluginModule;
94
96
  };
95
97
  }
96
- exports.createAsyncLanguageServicePlugin = createAsyncLanguageServicePlugin;
97
98
  //# sourceMappingURL=createAsyncLanguageServicePlugin.js.map
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.arrayItemsEqual = exports.createLanguageServicePlugin = exports.decoratedLanguageServiceHosts = exports.decoratedLanguageServices = exports.projectExternalFileExtensions = exports.externalFiles = void 0;
3
+ exports.decoratedLanguageServiceHosts = exports.decoratedLanguageServices = exports.projectExternalFileExtensions = exports.externalFiles = void 0;
4
+ exports.createLanguageServicePlugin = createLanguageServicePlugin;
5
+ exports.arrayItemsEqual = arrayItemsEqual;
4
6
  const language_core_1 = require("@volar/language-core");
5
7
  const common_1 = require("../common");
6
8
  const decorateLanguageService_1 = require("../node/decorateLanguageService");
@@ -50,7 +52,7 @@ function createLanguageServicePlugin(create) {
50
52
  return info.languageService;
51
53
  },
52
54
  getExternalFiles(project, updateLevel = 0) {
53
- if (updateLevel >= (1)
55
+ if (updateLevel >= 1
54
56
  || !exports.externalFiles.has(project)) {
55
57
  const oldFiles = exports.externalFiles.get(project);
56
58
  const extensions = exports.projectExternalFileExtensions.get(project);
@@ -66,7 +68,6 @@ function createLanguageServicePlugin(create) {
66
68
  return pluginModule;
67
69
  };
68
70
  }
69
- exports.createLanguageServicePlugin = createLanguageServicePlugin;
70
71
  function arrayItemsEqual(a, b) {
71
72
  if (a.length !== b.length) {
72
73
  return false;
@@ -79,5 +80,4 @@ function arrayItemsEqual(a, b) {
79
80
  }
80
81
  return true;
81
82
  }
82
- exports.arrayItemsEqual = arrayItemsEqual;
83
83
  //# sourceMappingURL=createLanguageServicePlugin.js.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runTsc = exports.getLanguagePlugins = void 0;
3
+ exports.getLanguagePlugins = void 0;
4
+ exports.runTsc = runTsc;
4
5
  const fs = require("fs");
5
6
  let getLanguagePlugins = () => [];
6
7
  exports.getLanguagePlugins = getLanguagePlugins;
@@ -37,7 +38,6 @@ function runTsc(tscPath, extensions, _getLanguagePlugins) {
37
38
  delete require.cache[tscPath];
38
39
  }
39
40
  }
40
- exports.runTsc = runTsc;
41
41
  function replace(text, ...[search, replace]) {
42
42
  const before = text;
43
43
  text = text.replace(search, replace);
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createResolveModuleName = void 0;
3
+ exports.createResolveModuleName = createResolveModuleName;
4
4
  function createResolveModuleName(ts, host, languagePlugins, getSourceScript) {
5
5
  const toSourceFileInfo = new Map();
6
6
  const moduleResolutionHost = {
@@ -87,5 +87,4 @@ function createResolveModuleName(ts, host, languagePlugins, getSourceScript) {
87
87
  return false;
88
88
  }
89
89
  }
90
- exports.createResolveModuleName = createResolveModuleName;
91
90
  //# sourceMappingURL=resolveModuleName.js.map
@@ -1,7 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.startsWith = exports.createGetCanonicalFileName = exports.stringContains = exports.endsWith = exports.getStringComparer = exports.compareStringsCaseSensitive = exports.equateStringsCaseSensitive = exports.equateStringsCaseInsensitive = exports.last = exports.lastOrUndefined = exports.sort = exports.some = exports.flatMap = exports.flatten = exports.map = exports.indexOfAnyCharCode = exports.findIndex = exports.every = void 0;
4
- require("./corePublic");
3
+ exports.every = every;
4
+ exports.findIndex = findIndex;
5
+ exports.indexOfAnyCharCode = indexOfAnyCharCode;
6
+ exports.map = map;
7
+ exports.flatten = flatten;
8
+ exports.flatMap = flatMap;
9
+ exports.some = some;
10
+ exports.sort = sort;
11
+ exports.lastOrUndefined = lastOrUndefined;
12
+ exports.last = last;
13
+ exports.equateStringsCaseInsensitive = equateStringsCaseInsensitive;
14
+ exports.equateStringsCaseSensitive = equateStringsCaseSensitive;
15
+ exports.compareStringsCaseSensitive = compareStringsCaseSensitive;
16
+ exports.getStringComparer = getStringComparer;
17
+ exports.endsWith = endsWith;
18
+ exports.stringContains = stringContains;
19
+ exports.createGetCanonicalFileName = createGetCanonicalFileName;
20
+ exports.startsWith = startsWith;
5
21
  const emptyArray = [];
6
22
  /**
7
23
  * Iterates through `array` by index and performs the callback on each element of array until the callback
@@ -18,7 +34,6 @@ function every(array, callback) {
18
34
  }
19
35
  return true;
20
36
  }
21
- exports.every = every;
22
37
  /** Works like Array.prototype.findIndex, returning `-1` if no element satisfying the predicate is found. */
23
38
  function findIndex(array, predicate, startIndex) {
24
39
  if (array === undefined) {
@@ -31,7 +46,6 @@ function findIndex(array, predicate, startIndex) {
31
46
  }
32
47
  return -1;
33
48
  }
34
- exports.findIndex = findIndex;
35
49
  function contains(array, value, equalityComparer = equateValues) {
36
50
  if (array) {
37
51
  for (const v of array) {
@@ -50,7 +64,6 @@ function indexOfAnyCharCode(text, charCodes, start) {
50
64
  }
51
65
  return -1;
52
66
  }
53
- exports.indexOfAnyCharCode = indexOfAnyCharCode;
54
67
  function map(array, f) {
55
68
  let result;
56
69
  if (array) {
@@ -61,7 +74,6 @@ function map(array, f) {
61
74
  }
62
75
  return result;
63
76
  }
64
- exports.map = map;
65
77
  /**
66
78
  * Flattens an array containing a mix of array or non-array elements.
67
79
  *
@@ -81,7 +93,6 @@ function flatten(array) {
81
93
  }
82
94
  return result;
83
95
  }
84
- exports.flatten = flatten;
85
96
  /**
86
97
  * Maps an array. If the mapped value is an array, it is spread into the result.
87
98
  *
@@ -105,7 +116,6 @@ function flatMap(array, mapfn) {
105
116
  }
106
117
  return result || emptyArray;
107
118
  }
108
- exports.flatMap = flatMap;
109
119
  function some(array, predicate) {
110
120
  if (array) {
111
121
  if (predicate) {
@@ -121,7 +131,6 @@ function some(array, predicate) {
121
131
  }
122
132
  return false;
123
133
  }
124
- exports.some = some;
125
134
  // function append<T>(to: T[] | undefined, value: T): T[];
126
135
  // function append<T>(to: T[] | undefined, value: T | undefined): T[] | undefined;
127
136
  // function append<T>(to: Push<T>, value: T | undefined): void;
@@ -164,19 +173,16 @@ function addRange(to, from, start, end) {
164
173
  function sort(array, comparer) {
165
174
  return (array.length === 0 ? array : array.slice().sort(comparer));
166
175
  }
167
- exports.sort = sort;
168
176
  /**
169
177
  * Returns the last element of an array if non-empty, `undefined` otherwise.
170
178
  */
171
179
  function lastOrUndefined(array) {
172
180
  return array === undefined || array.length === 0 ? undefined : array[array.length - 1];
173
181
  }
174
- exports.lastOrUndefined = lastOrUndefined;
175
182
  function last(array) {
176
183
  // Debug.assert(array.length !== 0);
177
184
  return array[array.length - 1];
178
185
  }
179
- exports.last = last;
180
186
  /**
181
187
  * Tests whether a value is an array.
182
188
  */
@@ -247,7 +253,6 @@ function equateStringsCaseInsensitive(a, b) {
247
253
  && b !== undefined
248
254
  && a.toUpperCase() === b.toUpperCase();
249
255
  }
250
- exports.equateStringsCaseInsensitive = equateStringsCaseInsensitive;
251
256
  /**
252
257
  * Compare the equality of two strings using a case-sensitive ordinal comparison.
253
258
  *
@@ -257,7 +262,6 @@ exports.equateStringsCaseInsensitive = equateStringsCaseInsensitive;
257
262
  function equateStringsCaseSensitive(a, b) {
258
263
  return equateValues(a, b);
259
264
  }
260
- exports.equateStringsCaseSensitive = equateStringsCaseSensitive;
261
265
  function compareComparableValues(a, b) {
262
266
  return a === b ? 0 /* Comparison.EqualTo */ :
263
267
  a === undefined ? -1 /* Comparison.LessThan */ :
@@ -304,26 +308,20 @@ function compareStringsCaseInsensitive(a, b) {
304
308
  function compareStringsCaseSensitive(a, b) {
305
309
  return compareComparableValues(a, b);
306
310
  }
307
- exports.compareStringsCaseSensitive = compareStringsCaseSensitive;
308
311
  function getStringComparer(ignoreCase) {
309
312
  return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive;
310
313
  }
311
- exports.getStringComparer = getStringComparer;
312
314
  function endsWith(str, suffix) {
313
315
  const expectedPos = str.length - suffix.length;
314
316
  return expectedPos >= 0 && str.indexOf(suffix, expectedPos) === expectedPos;
315
317
  }
316
- exports.endsWith = endsWith;
317
318
  function stringContains(str, substring) {
318
319
  return str.indexOf(substring) !== -1;
319
320
  }
320
- exports.stringContains = stringContains;
321
321
  function createGetCanonicalFileName(useCaseSensitiveFileNames) {
322
322
  return useCaseSensitiveFileNames ? identity : toFileNameLowerCase;
323
323
  }
324
- exports.createGetCanonicalFileName = createGetCanonicalFileName;
325
324
  function startsWith(str, prefix) {
326
325
  return str.lastIndexOf(prefix, 0) === 0;
327
326
  }
328
- exports.startsWith = startsWith;
329
327
  //# sourceMappingURL=core.js.map
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.containsPath = exports.removeTrailingDirectorySeparator = exports.normalizePath = exports.getNormalizedPathComponents = exports.combinePaths = exports.getDirectoryPath = exports.fileExtensionIsOneOf = exports.hasExtension = exports.isRootedDiskPath = exports.directorySeparator = void 0;
3
+ exports.directorySeparator = void 0;
4
+ exports.isRootedDiskPath = isRootedDiskPath;
5
+ exports.hasExtension = hasExtension;
6
+ exports.fileExtensionIsOneOf = fileExtensionIsOneOf;
7
+ exports.getDirectoryPath = getDirectoryPath;
8
+ exports.combinePaths = combinePaths;
9
+ exports.getNormalizedPathComponents = getNormalizedPathComponents;
10
+ exports.normalizePath = normalizePath;
11
+ exports.removeTrailingDirectorySeparator = removeTrailingDirectorySeparator;
12
+ exports.containsPath = containsPath;
4
13
  const core_1 = require("./core");
5
- require("./types");
6
14
  /**
7
15
  * Internally, we represent paths as strings with '/' as the directory separator.
8
16
  * When we make system calls (eg: LanguageServiceHost.getDirectory()),
@@ -26,11 +34,9 @@ function isAnyDirectorySeparator(charCode) {
26
34
  function isRootedDiskPath(path) {
27
35
  return getEncodedRootLength(path) > 0;
28
36
  }
29
- exports.isRootedDiskPath = isRootedDiskPath;
30
37
  function hasExtension(fileName) {
31
38
  return (0, core_1.stringContains)(getBaseFileName(fileName), ".");
32
39
  }
33
- exports.hasExtension = hasExtension;
34
40
  function fileExtensionIs(path, extension) {
35
41
  return path.length > extension.length && (0, core_1.endsWith)(path, extension);
36
42
  }
@@ -42,7 +48,6 @@ function fileExtensionIsOneOf(path, extensions) {
42
48
  }
43
49
  return false;
44
50
  }
45
- exports.fileExtensionIsOneOf = fileExtensionIsOneOf;
46
51
  /**
47
52
  * Determines whether a path has a trailing separator (`/` or `\\`).
48
53
  */
@@ -171,7 +176,6 @@ function getDirectoryPath(path) {
171
176
  path = removeTrailingDirectorySeparator(path);
172
177
  return path.slice(0, Math.max(rootLength, path.lastIndexOf(exports.directorySeparator)));
173
178
  }
174
- exports.getDirectoryPath = getDirectoryPath;
175
179
  function getBaseFileName(path, extensions, ignoreCase) {
176
180
  path = normalizeSlashes(path);
177
181
  // if the path provided is itself the root, then it has not file name.
@@ -357,7 +361,6 @@ function combinePaths(path, ...paths) {
357
361
  }
358
362
  return path;
359
363
  }
360
- exports.combinePaths = combinePaths;
361
364
  /**
362
365
  * Parse a path into an array containing a root component (at index 0) and zero or more path
363
366
  * components (at indices > 0). The result is normalized.
@@ -371,7 +374,6 @@ exports.combinePaths = combinePaths;
371
374
  function getNormalizedPathComponents(path, currentDirectory) {
372
375
  return reducePathComponents(getPathComponents(path, currentDirectory));
373
376
  }
374
- exports.getNormalizedPathComponents = getNormalizedPathComponents;
375
377
  function normalizePath(path) {
376
378
  path = normalizeSlashes(path);
377
379
  // Most paths don't require normalization
@@ -390,14 +392,12 @@ function normalizePath(path) {
390
392
  const normalized = getPathFromPathComponents(reducePathComponents(getPathComponents(path)));
391
393
  return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized;
392
394
  }
393
- exports.normalizePath = normalizePath;
394
395
  function removeTrailingDirectorySeparator(path) {
395
396
  if (hasTrailingDirectorySeparator(path)) {
396
397
  return path.substr(0, path.length - 1);
397
398
  }
398
399
  return path;
399
400
  }
400
- exports.removeTrailingDirectorySeparator = removeTrailingDirectorySeparator;
401
401
  function ensureTrailingDirectorySeparator(path) {
402
402
  if (!hasTrailingDirectorySeparator(path)) {
403
403
  return path + exports.directorySeparator;
@@ -435,5 +435,4 @@ function containsPath(parent, child, currentDirectory, ignoreCase) {
435
435
  }
436
436
  return true;
437
437
  }
438
- exports.containsPath = containsPath;
439
438
  //# sourceMappingURL=path.js.map
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.matchFiles = void 0;
3
+ exports.matchFiles = matchFiles;
4
4
  const core_1 = require("./core");
5
5
  const path_1 = require("./path");
6
- require("./types");
7
6
  // KLUDGE: Don't assume one 'node_modules' links to another. More likely a single directory inside the node_modules is the symlink.
8
7
  // ALso, don't assume that an `@foo` directory is linked. More likely the contents of that are linked.
9
8
  // Reserved characters, forces escaping of any non-word (or digit), non-whitespace character.
@@ -212,7 +211,6 @@ function matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNa
212
211
  }
213
212
  }
214
213
  }
215
- exports.matchFiles = matchFiles;
216
214
  /**
217
215
  * Computes the unique non-wildcard base paths amongst the provided include patterns.
218
216
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/typescript",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -12,14 +12,14 @@
12
12
  "directory": "packages/typescript"
13
13
  },
14
14
  "dependencies": {
15
- "@volar/language-core": "2.3.0",
15
+ "@volar/language-core": "2.3.2",
16
16
  "path-browserify": "^1.0.1",
17
17
  "vscode-uri": "^3.0.8"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/node": "latest",
21
21
  "@types/path-browserify": "latest",
22
- "@volar/language-service": "2.3.0"
22
+ "@volar/language-service": "2.3.2"
23
23
  },
24
- "gitHead": "4f6488605e22e0f76ea877460848a443fd3e8762"
24
+ "gitHead": "d07e7d7c4176eec4905e7a629ae6f278d1c72b48"
25
25
  }