@effect/language-service 0.58.2 → 0.58.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/language-service",
3
- "version": "0.58.2",
3
+ "version": "0.58.4",
4
4
  "description": "A Language-Service Plugin to Refactor and Diagnostic effect-ts projects",
5
5
  "main": "index.cjs",
6
6
  "bin": {
package/transform.js CHANGED
@@ -1798,6 +1798,9 @@ function makeTypeScriptUtils(ts) {
1798
1798
  }
1799
1799
  return node;
1800
1800
  }
1801
+ function isDeclarationKind(kind) {
1802
+ return kind === ts.SyntaxKind.ArrowFunction || kind === ts.SyntaxKind.BindingElement || kind === ts.SyntaxKind.ClassDeclaration || kind === ts.SyntaxKind.ClassExpression || kind === ts.SyntaxKind.ClassStaticBlockDeclaration || kind === ts.SyntaxKind.Constructor || kind === ts.SyntaxKind.EnumDeclaration || kind === ts.SyntaxKind.EnumMember || kind === ts.SyntaxKind.ExportSpecifier || kind === ts.SyntaxKind.FunctionDeclaration || kind === ts.SyntaxKind.FunctionExpression || kind === ts.SyntaxKind.GetAccessor || kind === ts.SyntaxKind.ImportClause || kind === ts.SyntaxKind.ImportEqualsDeclaration || kind === ts.SyntaxKind.ImportSpecifier || kind === ts.SyntaxKind.InterfaceDeclaration || kind === ts.SyntaxKind.JsxAttribute || kind === ts.SyntaxKind.MethodDeclaration || kind === ts.SyntaxKind.MethodSignature || kind === ts.SyntaxKind.ModuleDeclaration || kind === ts.SyntaxKind.NamespaceExportDeclaration || kind === ts.SyntaxKind.NamespaceImport || kind === ts.SyntaxKind.NamespaceExport || kind === ts.SyntaxKind.Parameter || kind === ts.SyntaxKind.PropertyAssignment || kind === ts.SyntaxKind.PropertyDeclaration || kind === ts.SyntaxKind.PropertySignature || kind === ts.SyntaxKind.SetAccessor || kind === ts.SyntaxKind.ShorthandPropertyAssignment || kind === ts.SyntaxKind.TypeAliasDeclaration || kind === ts.SyntaxKind.TypeParameter || kind === ts.SyntaxKind.VariableDeclaration || kind === ts.SyntaxKind.JSDocTypedefTag || kind === ts.SyntaxKind.JSDocCallbackTag || kind === ts.SyntaxKind.JSDocPropertyTag || kind === ts.SyntaxKind.NamedTupleMember;
1803
+ }
1801
1804
  return {
1802
1805
  findNodeAtPositionIncludingTrivia,
1803
1806
  parsePackageContentNameAndVersionFromScope,
@@ -1820,7 +1823,8 @@ function makeTypeScriptUtils(ts) {
1820
1823
  parseAccessedExpressionForCompletion,
1821
1824
  getSourceFileOfNode,
1822
1825
  isOuterExpression,
1823
- skipOuterExpressions
1826
+ skipOuterExpressions,
1827
+ isDeclarationKind
1824
1828
  };
1825
1829
  }
1826
1830
 
@@ -2572,7 +2576,16 @@ function make2(ts, tsUtils, typeChecker, typeCheckerUtils, program) {
2572
2576
  const moduleSymbol = typeChecker.getSymbolAtLocation(sourceFile);
2573
2577
  if (!moduleSymbol) continue;
2574
2578
  const memberSymbol = typeChecker.tryGetMemberInModuleExports(memberName, moduleSymbol);
2575
- if (memberSymbol && memberSymbol === symbol3) result.push({ memberSymbol, moduleSymbol, sourceFile });
2579
+ if (memberSymbol) {
2580
+ if (memberSymbol === symbol3) {
2581
+ result.push({ memberSymbol, moduleSymbol, sourceFile });
2582
+ } else if (memberSymbol.flags & ts.SymbolFlags.Alias) {
2583
+ const aliased = typeChecker.getAliasedSymbol(memberSymbol);
2584
+ if (aliased === symbol3) {
2585
+ result.push({ memberSymbol, moduleSymbol, sourceFile });
2586
+ }
2587
+ }
2588
+ }
2576
2589
  }
2577
2590
  if (result.length > 0) {
2578
2591
  return result;
@@ -5585,18 +5598,12 @@ var annotate = createCodegen({
5585
5598
  for (const variableDeclaration of variableDeclarations) {
5586
5599
  if (!variableDeclaration.initializer) continue;
5587
5600
  const initializerType = typeChecker.getTypeAtLocation(variableDeclaration.initializer);
5601
+ const enclosingNode = ts.findAncestor(variableDeclaration, (_) => tsUtils.isDeclarationKind(_.kind)) || sourceFile;
5588
5602
  const initializerTypeNode = fromNullable(typeCheckerUtils.typeToSimplifiedTypeNode(
5589
5603
  initializerType,
5590
- node,
5591
- ts.NodeBuilderFlags.NoTruncation
5604
+ enclosingNode,
5605
+ ts.NodeBuilderFlags.NoTruncation | ts.NodeBuilderFlags.IgnoreErrors
5592
5606
  )).pipe(
5593
- orElse(
5594
- () => fromNullable(typeCheckerUtils.typeToSimplifiedTypeNode(
5595
- initializerType,
5596
- void 0,
5597
- ts.NodeBuilderFlags.NoTruncation
5598
- ))
5599
- ),
5600
5607
  getOrUndefined
5601
5608
  );
5602
5609
  if (!initializerTypeNode) continue;