From 2df2ed90719092a7d5ef3a6303659250bbc94051 Mon Sep 17 00:00:00 2001 From: LarytheLord Date: Wed, 25 Feb 2026 19:19:54 +0530 Subject: [PATCH 1/2] fix: detect MD indented code blocks in rule 17 --- .../017a-Suggest-code-over-25-lines.yml | 1 + .../017b-Warn-code-over-35-lines.yml | 1 + tests/data/manifest.yml | 142 +++++++++++++++++- 3 files changed, 142 insertions(+), 2 deletions(-) diff --git a/styles/Canonical/017a-Suggest-code-over-25-lines.yml b/styles/Canonical/017a-Suggest-code-over-25-lines.yml index 8a16b71..43c3706 100644 --- a/styles/Canonical/017a-Suggest-code-over-25-lines.yml +++ b/styles/Canonical/017a-Suggest-code-over-25-lines.yml @@ -7,5 +7,6 @@ nonword: true tokens: - '``` ?({(code-block|code|sourcecode)})?[^{}\n]*\n((:[^\n]+:[^\n]*\n)+\n?)?(?!```)[^:\n][^\n]*\n(\n|(?!```)[^:\n][^\n]*\n){25,}```' - '::: ?({(code-block|code|sourcecode)})?[^{}\n]*\n((:[^\n]+:[^\n]*\n)+\n?)?(?!:::)[^:\n][^\n]*\n(\n|(?!:::)[^:\n][^\n]*\n){25,}:::' + - '(^|\n)( {4}[^\n]+\n(( {4}[^\n]+)?\n){24,} {4}[^\n]+\n)' - '::\n\n(( {3}[^\n]+)?\n){25,} {3}[^\n]+\n' - '\.\. (code-block|code|sourcecode)::( [^\n]+)?\n(( {3,12}:[^\n:]*:[^\n]*\n)*)?\n(( {3}[^\n]+)?\n){25,} {3}[^\n]+\n' diff --git a/styles/Canonical/017b-Warn-code-over-35-lines.yml b/styles/Canonical/017b-Warn-code-over-35-lines.yml index c5a33b6..c71f85c 100644 --- a/styles/Canonical/017b-Warn-code-over-35-lines.yml +++ b/styles/Canonical/017b-Warn-code-over-35-lines.yml @@ -7,5 +7,6 @@ nonword: true tokens: - '``` ?({(code-block|code|sourcecode)})?[^{}\n]*\n((:[^\n]+:[^\n]*\n)+\n?)?(?!```)[^:\n][^\n]*\n(\n|(?!```)[^:\n][^\n]*\n){35,}```' - '::: ?({(code-block|code|sourcecode)})?[^{}\n]*\n((:[^\n]+:[^\n]*\n)+\n?){0.1}(?!:::)[^:\n][^\n]*\n(\n|(?!:::)[^:\n][^\n]*\n){35,}:::' + - '(^|\n)( {4}[^\n]+\n(( {4}[^\n]+)?\n){34,} {4}[^\n]+\n)' - '::\n\n(( {3}[^\n]+)?\n){35,} {3}[^\n]+\n' - '\.\. (code-block|code|sourcecode)::( [^\n]+)?\n(( {3,12}:[^\n:]*:[^\n]*\n)*)?\n(( {3}[^\n]+)?\n){35,} {3}[^\n]+\n' diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index ef7abc8..c92c39b 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -589,7 +589,7 @@ rules: Line 26 ``` - This text is outside the code block. + This text is outside the code block. expect: triggers: - |- # |- because we don't want the newline at the end. @@ -686,7 +686,7 @@ rules: Line 26 ``` - This text is outside the code block. + This text is outside the code block. expect: triggers: - |- # |- because we don't want the newline at the end. @@ -719,6 +719,65 @@ rules: Line 26 ``` severity: suggestion + - id: long-code-suggestion-md-indented + filetypes: [md] + content: |2 + Line 01 of 26 + Line 02 + Line 03 + Line 04 + Line 05 + Line 06 + Line 07 + Line 08 + Line 09 + Line 10 + Line 11 + Line 12 + Line 13 + Line 14 + Line 15 + Line 16 + Line 17 + Line 18 + Line 19 + Line 20 + Line 21 + Line 22 + Line 23 + Line 24 + Line 25 + Line 26 + expect: + triggers: + - |2- + Line 01 of 26 + Line 02 + Line 03 + Line 04 + Line 05 + Line 06 + Line 07 + Line 08 + Line 09 + Line 10 + Line 11 + Line 12 + Line 13 + Line 14 + Line 15 + Line 16 + Line 17 + Line 18 + Line 19 + Line 20 + Line 21 + Line 22 + Line 23 + Line 24 + Line 25 + Line 26 + severity: suggestion - id: long-code-suggestion-myst filetypes: [md] content: | @@ -1403,6 +1462,85 @@ rules: Line 36 ``` severity: warning + - id: long-code-warning-md-indented + filetypes: [md] + content: |2 + Line 01 of 36 + Line 02 + Line 03 + Line 04 + Line 05 + Line 06 + Line 07 + Line 08 + Line 09 + Line 10 + Line 11 + Line 12 + Line 13 + Line 14 + Line 15 + Line 16 + Line 17 + Line 18 + Line 19 + Line 20 + Line 21 + Line 22 + Line 23 + Line 24 + Line 25 + Line 26 + Line 27 + Line 28 + Line 29 + Line 30 + Line 31 + Line 32 + Line 33 + Line 34 + Line 35 + Line 36 + expect: + triggers: + - |2- + Line 01 of 36 + Line 02 + Line 03 + Line 04 + Line 05 + Line 06 + Line 07 + Line 08 + Line 09 + Line 10 + Line 11 + Line 12 + Line 13 + Line 14 + Line 15 + Line 16 + Line 17 + Line 18 + Line 19 + Line 20 + Line 21 + Line 22 + Line 23 + Line 24 + Line 25 + Line 26 + Line 27 + Line 28 + Line 29 + Line 30 + Line 31 + Line 32 + Line 33 + Line 34 + Line 35 + Line 36 + severity: warning - id: long-code-warning-myst filetypes: [md] content: | From f23dd45814e0a4a5300a0b1285bef35e7f227ca9 Mon Sep 17 00:00:00 2001 From: LarytheLord Date: Fri, 27 Feb 2026 11:06:59 +0530 Subject: [PATCH 2/2] test: preserve trailing newline in md indented code fixtures --- tests/data/manifest.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/data/manifest.yml b/tests/data/manifest.yml index c92c39b..9db99d7 100644 --- a/tests/data/manifest.yml +++ b/tests/data/manifest.yml @@ -750,7 +750,7 @@ rules: Line 26 expect: triggers: - - |2- + - |2 Line 01 of 26 Line 02 Line 03 @@ -1503,7 +1503,7 @@ rules: Line 36 expect: triggers: - - |2- + - |2 Line 01 of 36 Line 02 Line 03