@effect/language-service 0.72.1 → 0.73.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/language-service",
3
- "version": "0.72.1",
3
+ "version": "0.73.1",
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
@@ -1967,7 +1967,7 @@ var createDiagnosticExecutor = fn("LSP.createCommentDirectivesProcessor")(
1967
1967
  const lineOverrides = {};
1968
1968
  const sectionOverrides = {};
1969
1969
  const skippedRules = [];
1970
- const regex = /@effect-diagnostics(-next-line)?((?:\s[a-zA-Z0-9/]+:(?:off|warning|error|message|suggestion|skip-file))+)?/gm;
1970
+ const regex = /@effect-diagnostics(-next-line)?((?:\s(?:[a-zA-Z0-9/]+|\*):(?:off|warning|error|message|suggestion|skip-file))+)?/gm;
1971
1971
  let match2;
1972
1972
  while ((match2 = regex.exec(sourceFile.text)) !== null) {
1973
1973
  const nextLineCaptureGroup = match2[1];
@@ -2016,8 +2016,10 @@ var createDiagnosticExecutor = fn("LSP.createCommentDirectivesProcessor")(
2016
2016
  const codeFixes = [];
2017
2017
  const ruleNameLowered = rule.name.toLowerCase();
2018
2018
  const defaultLevel = pluginOptions.diagnosticSeverity[ruleNameLowered] || rule.severity;
2019
- if (skippedRules.indexOf(ruleNameLowered) > -1) return { diagnostics: diagnostics2, codeFixes };
2020
- if (defaultLevel === "off" && (lineOverrides[ruleNameLowered] || sectionOverrides[ruleNameLowered] || []).length === 0) {
2019
+ if (skippedRules.indexOf(ruleNameLowered) > -1 || skippedRules.indexOf("*") > -1) {
2020
+ return { diagnostics: diagnostics2, codeFixes };
2021
+ }
2022
+ if (defaultLevel === "off" && (lineOverrides[ruleNameLowered] || sectionOverrides[ruleNameLowered] || lineOverrides["*"] || sectionOverrides["*"] || []).length === 0) {
2021
2023
  return { diagnostics: diagnostics2, codeFixes };
2022
2024
  }
2023
2025
  const fixByDisableNextLine = (node) => ({
@@ -2066,14 +2068,22 @@ var createDiagnosticExecutor = fn("LSP.createCommentDirectivesProcessor")(
2066
2068
  const unusedLineOverrides = new Set(lineOverrides[ruleNameLowered] || []);
2067
2069
  for (const emitted of applicableDiagnostics.slice(0)) {
2068
2070
  let newLevel = defaultLevel;
2069
- const lineOverride = (lineOverrides[ruleNameLowered] || []).find(
2071
+ const specificLineOverride = (lineOverrides[ruleNameLowered] || []).find(
2070
2072
  (_) => _.pos < emitted.range.pos && _.end >= emitted.range.end
2071
2073
  );
2074
+ const wildcardLineOverride = (lineOverrides["*"] || []).find(
2075
+ (_) => _.pos < emitted.range.pos && _.end >= emitted.range.end
2076
+ );
2077
+ const lineOverride = specificLineOverride && wildcardLineOverride ? specificLineOverride.pos >= wildcardLineOverride.pos ? specificLineOverride : wildcardLineOverride : specificLineOverride || wildcardLineOverride;
2072
2078
  if (lineOverride) {
2073
2079
  newLevel = lineOverride.level;
2074
2080
  unusedLineOverrides.delete(lineOverride);
2075
2081
  } else {
2076
- const sectionOverride = (sectionOverrides[ruleNameLowered] || []).find((_) => _.pos < emitted.range.pos);
2082
+ const specificSectionOverride = (sectionOverrides[ruleNameLowered] || []).find(
2083
+ (_) => _.pos < emitted.range.pos
2084
+ );
2085
+ const wildcardSectionOverride = (sectionOverrides["*"] || []).find((_) => _.pos < emitted.range.pos);
2086
+ const sectionOverride = specificSectionOverride && wildcardSectionOverride ? specificSectionOverride.pos >= wildcardSectionOverride.pos ? specificSectionOverride : wildcardSectionOverride : specificSectionOverride || wildcardSectionOverride;
2077
2087
  if (sectionOverride) newLevel = sectionOverride.level;
2078
2088
  }
2079
2089
  if (!(newLevel in levelToDiagnosticCategory)) continue;
@@ -2597,7 +2607,9 @@ function make2(ts, tsUtils, typeChecker, typeCheckerUtils, program) {
2597
2607
  const sourceFile = program.getSourceFile(fileName);
2598
2608
  if (!sourceFile) continue;
2599
2609
  const resolvedPackages = getEffectRelatedPackages(sourceFile);
2600
- for (const version of Object.keys(resolvedPackages["effect"])) {
2610
+ const effectPkgs = resolvedPackages["effect"];
2611
+ if (!effectPkgs) continue;
2612
+ for (const version of Object.keys(effectPkgs)) {
2601
2613
  if (String(version).startsWith("4")) return "v4";
2602
2614
  if (String(version).startsWith("3")) return "v3";
2603
2615
  }
@@ -3004,7 +3016,7 @@ function make2(ts, tsUtils, typeChecker, typeCheckerUtils, program) {
3004
3016
  fn("TypeParser.isEffectDataSourceFile")(function* (sourceFile) {
3005
3017
  const moduleSymbol = typeChecker.getSymbolAtLocation(sourceFile);
3006
3018
  if (!moduleSymbol) return yield* typeParserIssue("Node has no symbol", void 0, sourceFile);
3007
- const taggedEnumSymbol = typeChecker.tryGetMemberInModuleExports("TaggedEnum", moduleSymbol);
3019
+ const taggedEnumSymbol = typeChecker.tryGetMemberInModuleExports("TaggedEnum", moduleSymbol) || typeChecker.tryGetMemberInModuleExports("taggedEnum", moduleSymbol);
3008
3020
  if (!taggedEnumSymbol) return yield* typeParserIssue("TaggedEnum not found", void 0, sourceFile);
3009
3021
  const taggedErrorSymbol = typeChecker.tryGetMemberInModuleExports("TaggedError", moduleSymbol);
3010
3022
  if (!taggedErrorSymbol) return yield* typeParserIssue("TaggedError not found", void 0, sourceFile);