From 48e5a4e248a67d86bec4bbbb919b61f2ff17e798 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Sat, 26 Nov 2022 21:00:59 -0600 Subject: [PATCH] Always display plugin prefix in deprecated rule replacement rule name (#296) --- .../eslint-plugin-test/docs/rules/require-baz.md | 2 +- lib/rule-doc-notices.ts | 1 + lib/rule-link.ts | 12 +++++++----- lib/rule-list.ts | 1 + .../__snapshots__/option-url-rule-doc-test.ts.snap | 2 +- .../__snapshots__/rule-deprecation-test.ts.snap | 12 ++++++------ 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/docs/examples/eslint-plugin-test/docs/rules/require-baz.md b/docs/examples/eslint-plugin-test/docs/rules/require-baz.md index 14b1f121..c28bc4c4 100644 --- a/docs/examples/eslint-plugin-test/docs/rules/require-baz.md +++ b/docs/examples/eslint-plugin-test/docs/rules/require-baz.md @@ -1,6 +1,6 @@ # Require using baz (`test/require-baz`) -❌ This rule is deprecated. It was replaced by [`prefer-bar`](prefer-bar.md). +❌ This rule is deprecated. It was replaced by [`test/prefer-bar`](prefer-bar.md). 🚫 This rule is _disabled_ in the ⌨️ `typescript` config. diff --git a/lib/rule-doc-notices.ts b/lib/rule-doc-notices.ts index 86c30219..ea66637b 100644 --- a/lib/rule-doc-notices.ts +++ b/lib/rule-doc-notices.ts @@ -181,6 +181,7 @@ const RULE_NOTICES: { pathRuleDoc, urlCurrentPage, true, + true, urlRuleDoc ) ); diff --git a/lib/rule-link.ts b/lib/rule-link.ts index b8d932d0..538d7bda 100644 --- a/lib/rule-link.ts +++ b/lib/rule-link.ts @@ -68,10 +68,12 @@ export function getLinkToRule( pathRuleDoc: string, urlCurrentPage: string, includeBackticks: boolean, + includePrefix: boolean, urlRuleDoc?: string ) { - // Ignore plugin prefix if it's included in rule name. - // While we could display the prefix if we wanted, it definitely cannot be part of the link. + const ruleNameWithPluginPrefix = ruleName.startsWith(`${pluginPrefix}/`) + ? ruleName + : `${pluginPrefix}/${ruleName}`; const ruleNameWithoutPluginPrefix = ruleName.startsWith(`${pluginPrefix}/`) ? ruleName.slice(pluginPrefix.length + 1) : ruleName; @@ -83,7 +85,7 @@ export function getLinkToRule( urlCurrentPage, urlRuleDoc ); - return `[${includeBackticks ? '`' : ''}${ruleNameWithoutPluginPrefix}${ - includeBackticks ? '`' : '' - }](${urlToRule})`; + return `[${includeBackticks ? '`' : ''}${ + includePrefix ? ruleNameWithPluginPrefix : ruleNameWithoutPluginPrefix + }${includeBackticks ? '`' : ''}](${urlToRule})`; } diff --git a/lib/rule-list.ts b/lib/rule-list.ts index 541d4004..ad0ce3bb 100644 --- a/lib/rule-list.ts +++ b/lib/rule-list.ts @@ -136,6 +136,7 @@ function buildRuleRow( pathRuleDoc, pathRuleList, false, + false, urlRuleDoc ); }, diff --git a/test/lib/generate/__snapshots__/option-url-rule-doc-test.ts.snap b/test/lib/generate/__snapshots__/option-url-rule-doc-test.ts.snap index 21f77cb1..85569c6f 100644 --- a/test/lib/generate/__snapshots__/option-url-rule-doc-test.ts.snap +++ b/test/lib/generate/__snapshots__/option-url-rule-doc-test.ts.snap @@ -18,7 +18,7 @@ exports[`generate (--url-rule-doc) basic uses the right URLs 1`] = ` exports[`generate (--url-rule-doc) basic uses the right URLs 2`] = ` "# Description for no-foo (\`test/no-foo\`) -❌ This rule is deprecated. It was replaced by [\`no-bar\`](https://example.com/rule-docs/no-bar/). +❌ This rule is deprecated. It was replaced by [\`test/no-bar\`](https://example.com/rule-docs/no-bar/). " diff --git a/test/lib/generate/__snapshots__/rule-deprecation-test.ts.snap b/test/lib/generate/__snapshots__/rule-deprecation-test.ts.snap index 291de183..1c7d46f2 100644 --- a/test/lib/generate/__snapshots__/rule-deprecation-test.ts.snap +++ b/test/lib/generate/__snapshots__/rule-deprecation-test.ts.snap @@ -18,7 +18,7 @@ exports[`generate (deprecated rules) several deprecated rules updates the docume exports[`generate (deprecated rules) several deprecated rules updates the documentation 2`] = ` "# Description (\`test/no-foo\`) -❌ This rule is deprecated. It was replaced by [\`no-bar\`](../../docs/rules/no-bar.md). +❌ This rule is deprecated. It was replaced by [\`test/no-bar\`](../../docs/rules/no-bar.md). " @@ -65,7 +65,7 @@ exports[`generate (deprecated rules) using prefix ahead of replacement rule name exports[`generate (deprecated rules) using prefix ahead of replacement rule name uses correct replacement rule link 2`] = ` "# Description (\`test/no-foo\`) -❌ This rule is deprecated. It was replaced by [\`no-bar\`](../../docs/rules/no-bar.md). +❌ This rule is deprecated. It was replaced by [\`test/no-bar\`](../../docs/rules/no-bar.md). " @@ -94,7 +94,7 @@ exports[`generate (deprecated rules) with --path-rule-doc has the correct links, exports[`generate (deprecated rules) with --path-rule-doc has the correct links, especially replacement rule link 2`] = ` "# Description (\`test/category/no-foo\`) -❌ This rule is deprecated. It was replaced by [\`category/no-bar\`](../../../docs/category/no-bar/README.md). +❌ This rule is deprecated. It was replaced by [\`test/category/no-bar\`](../../../docs/category/no-bar/README.md). " @@ -103,7 +103,7 @@ exports[`generate (deprecated rules) with --path-rule-doc has the correct links, exports[`generate (deprecated rules) with --path-rule-doc has the correct links, especially replacement rule link 3`] = ` "# Description (\`test/category/no-bar\`) -❌ This rule is deprecated. It was replaced by [\`category/no-foo\`](../../../docs/category/no-foo/README.md). +❌ This rule is deprecated. It was replaced by [\`test/category/no-foo\`](../../../docs/category/no-foo/README.md). " @@ -125,7 +125,7 @@ exports[`generate (deprecated rules) with nested rule names has the correct link exports[`generate (deprecated rules) with nested rule names has the correct links, especially replacement rule link 2`] = ` "# Description (\`test/category/no-foo\`) -❌ This rule is deprecated. It was replaced by [\`category/no-bar\`](../../../docs/rules/category/no-bar.md). +❌ This rule is deprecated. It was replaced by [\`test/category/no-bar\`](../../../docs/rules/category/no-bar.md). " @@ -134,7 +134,7 @@ exports[`generate (deprecated rules) with nested rule names has the correct link exports[`generate (deprecated rules) with nested rule names has the correct links, especially replacement rule link 3`] = ` "# Description (\`test/category/no-bar\`) -❌ This rule is deprecated. It was replaced by [\`category/no-foo\`](../../../docs/rules/category/no-foo.md). +❌ This rule is deprecated. It was replaced by [\`test/category/no-foo\`](../../../docs/rules/category/no-foo.md). "