@volar/typescript 2.2.0 → 2.2.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.
@@ -316,7 +316,10 @@ function decorateLanguageService(language, languageService) {
316
316
  const [serviceScript, sourceScript, map] = (0, utils_1.getServiceScript)(language, fileName);
317
317
  if (serviceScript) {
318
318
  let failed;
319
- for (const generateOffset of (0, transform_1.forEachGeneratedOffset)(sourceScript, map, position, language_core_1.isRenameEnabled)) {
319
+ for (const [generateOffset, mapping] of (0, transform_1.toGeneratedOffsets)(sourceScript, map, position)) {
320
+ if (!(0, language_core_1.isRenameEnabled)(mapping.data)) {
321
+ continue;
322
+ }
320
323
  const info = getRenameInfo(fileName, generateOffset, options);
321
324
  if (info.canRename) {
322
325
  const span = (0, transform_1.transformTextSpan)(sourceScript, map, info.triggerSpan, language_core_1.isRenameEnabled);
@@ -529,44 +532,37 @@ function decorateLanguageService(language, languageService) {
529
532
  const fileName = filePath.replace(windowsPathReg, '/');
530
533
  const [serviceScript, sourceScript, map] = (0, utils_1.getServiceScript)(language, fileName);
531
534
  if (serviceScript) {
532
- let mainResult;
533
- let additionalResults = [];
534
- let isAdditional;
535
- const generatedOffset = (0, transform_1.toGeneratedOffset)(sourceScript, map, position, data => {
536
- if (!(0, language_core_1.isCompletionEnabled)(data)) {
537
- return false;
538
- }
539
- isAdditional = typeof data.completion === 'object' && data.completion.isAdditional;
540
- if (!isAdditional && mainResult) {
541
- return false;
535
+ const results = [];
536
+ for (const [generatedOffset, mapping] of (0, transform_1.toGeneratedOffsets)(sourceScript, map, position)) {
537
+ if (!(0, language_core_1.isCompletionEnabled)(mapping.data)) {
538
+ continue;
542
539
  }
543
- return true;
544
- });
545
- if (generatedOffset !== undefined) {
546
540
  const result = getCompletionsAtPosition(fileName, generatedOffset, options, formattingSettings);
547
- if (result) {
548
- for (const entry of result.entries) {
549
- entry.replacementSpan = entry.replacementSpan && (0, transform_1.transformTextSpan)(sourceScript, map, entry.replacementSpan, language_core_1.isCompletionEnabled);
550
- }
551
- result.optionalReplacementSpan = result.optionalReplacementSpan && (0, transform_1.transformTextSpan)(sourceScript, map, result.optionalReplacementSpan, language_core_1.isCompletionEnabled);
552
- if (isAdditional) {
553
- additionalResults.push(result);
554
- }
555
- else {
556
- mainResult = result;
557
- }
541
+ if (!result || !result.entries.length) {
542
+ continue;
543
+ }
544
+ if (typeof mapping.data.completion === 'object' && mapping.data.completion.onlyImport) {
545
+ result.entries = result.entries.filter(entry => !!entry.sourceDisplay);
546
+ }
547
+ for (const entry of result.entries) {
548
+ entry.replacementSpan = entry.replacementSpan && (0, transform_1.transformTextSpan)(sourceScript, map, entry.replacementSpan, language_core_1.isCompletionEnabled);
549
+ }
550
+ result.optionalReplacementSpan = result.optionalReplacementSpan
551
+ && (0, transform_1.transformTextSpan)(sourceScript, map, result.optionalReplacementSpan, language_core_1.isCompletionEnabled);
552
+ const isAdditional = typeof mapping.data.completion === 'object' && mapping.data.completion.isAdditional;
553
+ if (isAdditional) {
554
+ results.push(result);
555
+ }
556
+ else {
557
+ results.splice(0, 0, result);
558
558
  }
559
559
  }
560
- if (!mainResult && additionalResults.length) {
561
- mainResult = additionalResults.shift();
562
- }
563
- if (mainResult) {
560
+ if (results.length) {
564
561
  return {
565
- ...mainResult,
566
- entries: [
567
- ...mainResult.entries,
568
- ...additionalResults.map(additionalResult => additionalResult.entries).flat(),
569
- ],
562
+ ...results[0],
563
+ entries: results
564
+ .map(additionalResult => additionalResult.entries)
565
+ .flat(),
570
566
  };
571
567
  }
572
568
  }
@@ -13,4 +13,4 @@ export declare function transformTextChange(sourceScript: SourceScript, map: Sou
13
13
  export declare function transformTextSpan(sourceScript: SourceScript, map: SourceMap<CodeInformation>, textSpan: ts.TextSpan, filter: (data: CodeInformation) => boolean): ts.TextSpan | undefined;
14
14
  export declare function toSourceOffset(sourceScript: SourceScript, map: SourceMap, position: number, filter: (data: CodeInformation) => boolean): number | undefined;
15
15
  export declare function toGeneratedOffset(sourceScript: SourceScript, map: SourceMap, position: number, filter: (data: CodeInformation) => boolean): number | undefined;
16
- export declare function forEachGeneratedOffset(sourceScript: SourceScript, map: SourceMap, position: number, filter: (data: CodeInformation) => boolean): Generator<number, void, unknown>;
16
+ export declare function toGeneratedOffsets(sourceScript: SourceScript, map: SourceMap<CodeInformation>, position: number): Generator<readonly [number, import("@volar/language-core").Mapping<CodeInformation>], void, unknown>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.forEachGeneratedOffset = exports.toGeneratedOffset = exports.toSourceOffset = exports.transformTextSpan = exports.transformTextChange = exports.transformSpan = exports.transformDocumentSpan = exports.transformFileTextChanges = exports.fillSourceFileText = exports.transformDiagnostic = exports.transformCallHierarchyItem = void 0;
3
+ exports.toGeneratedOffsets = exports.toGeneratedOffset = exports.toSourceOffset = exports.transformTextSpan = exports.transformTextChange = exports.transformSpan = exports.transformDocumentSpan = exports.transformFileTextChanges = exports.fillSourceFileText = exports.transformDiagnostic = exports.transformCallHierarchyItem = void 0;
4
4
  const language_core_1 = require("@volar/language-core");
5
5
  const utils_1 = require("./utils");
6
6
  const transformedDiagnostics = new WeakMap();
@@ -172,12 +172,10 @@ function toGeneratedOffset(sourceScript, map, position, filter) {
172
172
  }
173
173
  }
174
174
  exports.toGeneratedOffset = toGeneratedOffset;
175
- function* forEachGeneratedOffset(sourceScript, map, position, filter) {
175
+ function* toGeneratedOffsets(sourceScript, map, position) {
176
176
  for (const [generateOffset, mapping] of map.getGeneratedOffsets(position)) {
177
- if (filter(mapping.data)) {
178
- yield generateOffset + sourceScript.snapshot.getLength();
179
- }
177
+ yield [generateOffset + sourceScript.snapshot.getLength(), mapping];
180
178
  }
181
179
  }
182
- exports.forEachGeneratedOffset = forEachGeneratedOffset;
180
+ exports.toGeneratedOffsets = toGeneratedOffsets;
183
181
  //# sourceMappingURL=transform.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volar/typescript",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -12,13 +12,13 @@
12
12
  "directory": "packages/typescript"
13
13
  },
14
14
  "dependencies": {
15
- "@volar/language-core": "2.2.0",
15
+ "@volar/language-core": "2.2.1",
16
16
  "path-browserify": "^1.0.1"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "latest",
20
20
  "@types/path-browserify": "latest",
21
- "@volar/language-service": "2.2.0"
21
+ "@volar/language-service": "2.2.1"
22
22
  },
23
- "gitHead": "c6e8d2765bbd2ec4a37374fd3a3a31c02661e8b3"
23
+ "gitHead": "629f686bda694077b236a0bcd0304437bb2eabf5"
24
24
  }