rumdl 0.0.167__tar.gz → 0.0.169__tar.gz

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.

Potentially problematic release.


This version of rumdl might be problematic. Click here for more details.

Files changed (470) hide show
  1. {rumdl-0.0.167 → rumdl-0.0.169}/.pre-commit-config.yaml +19 -2
  2. {rumdl-0.0.167 → rumdl-0.0.169}/CHANGELOG.md +207 -0
  3. {rumdl-0.0.167 → rumdl-0.0.169}/Cargo.lock +1 -1
  4. {rumdl-0.0.167 → rumdl-0.0.169}/Cargo.toml +1 -21
  5. {rumdl-0.0.167 → rumdl-0.0.169}/Makefile +3 -0
  6. {rumdl-0.0.167 → rumdl-0.0.169}/PKG-INFO +1 -1
  7. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md013.md +5 -1
  8. rumdl-0.0.169/examples/profile_quadratic.rs +75 -0
  9. {rumdl-0.0.167 → rumdl-0.0.169}/rumdl.schema.json +73 -70
  10. rumdl-0.0.169/scripts/verify-release-ready.sh +99 -0
  11. {rumdl-0.0.167 → rumdl-0.0.169}/src/config.rs +55 -0
  12. {rumdl-0.0.167 → rumdl-0.0.169}/src/file_processor.rs +43 -7
  13. {rumdl-0.0.167 → rumdl-0.0.169}/src/filtered_lines.rs +3 -2
  14. {rumdl-0.0.167 → rumdl-0.0.169}/src/lib.rs +11 -32
  15. {rumdl-0.0.167 → rumdl-0.0.169}/src/lint_context.rs +693 -370
  16. {rumdl-0.0.167 → rumdl-0.0.169}/src/lsp/server.rs +43 -62
  17. {rumdl-0.0.167 → rumdl-0.0.169}/src/lsp/types.rs +245 -4
  18. {rumdl-0.0.167 → rumdl-0.0.169}/src/main.rs +18 -1
  19. {rumdl-0.0.167 → rumdl-0.0.169}/src/rule.rs +0 -5
  20. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md002_first_heading_h1.rs +1 -2
  21. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md006_start_bullets.rs +2 -4
  22. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md009_trailing_spaces.rs +2 -2
  23. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md010_no_hard_tabs.rs +3 -3
  24. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md011_no_reversed_links.rs +144 -36
  25. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md012_no_multiple_blanks/md012_config.rs +4 -1
  26. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md012_no_multiple_blanks.rs +63 -98
  27. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md013_line_length.rs +430 -44
  28. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md014_commands_show_output.rs +3 -3
  29. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md018_no_missing_space_atx.rs +63 -0
  30. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md026_no_trailing_punctuation.rs +2 -2
  31. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md031_blanks_around_fences.rs +3 -3
  32. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md032_blanks_around_lists.rs +2 -2
  33. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md033_no_inline_html.rs +160 -26
  34. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md034_no_bare_urls.rs +5 -25
  35. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md035_hr_style.rs +3 -3
  36. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md037_spaces_around_emphasis.rs +4 -20
  37. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md038_no_space_in_code.rs +39 -0
  38. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md040_fenced_code_language.rs +70 -5
  39. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md041_first_line_heading.rs +4 -0
  40. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md044_proper_names.rs +1 -2
  41. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md046_code_block_style.rs +149 -82
  42. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md048_code_fence_style.rs +2 -2
  43. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md049_emphasis_style.rs +3 -20
  44. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md050_strong_style.rs +2 -2
  45. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md051_link_fragments.rs +52 -1
  46. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md052_reference_links_images.rs +97 -30
  47. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md055_table_pipe_style.rs +6 -6
  48. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md056_table_column_count.rs +4 -4
  49. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md057_existing_relative_links.rs +1 -2
  50. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md058_blanks_around_tables.rs +5 -6
  51. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/jinja_utils.rs +19 -0
  52. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocstrings_refs.rs +61 -1
  53. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/regex_cache.rs +1 -0
  54. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/skip_context.rs +36 -0
  55. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/table_utils.rs +19 -3
  56. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/text_reflow.rs +152 -17
  57. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/extended_tests.rs +3 -6
  58. {rumdl-0.0.167 → rumdl-0.0.169}/tests/code_block_blockquote_edge_cases.rs +6 -7
  59. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md033_edge_cases_test.rs +23 -8
  60. rumdl-0.0.169/tests/rules/md011_test.rs +196 -0
  61. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md033_blockquote_test.rs +5 -8
  62. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md033_kramdown_test.rs +9 -14
  63. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md033_test.rs +29 -38
  64. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md052_test.rs +3 -9
  65. rumdl-0.0.169/tests/sentence_per_line_test.rs +208 -0
  66. rumdl-0.0.167/tests/rules/md011_test.rs +0 -56
  67. rumdl-0.0.167/tests/sentence_per_line_test.rs +0 -109
  68. {rumdl-0.0.167 → rumdl-0.0.169}/.config/nextest.toml +0 -0
  69. {rumdl-0.0.167 → rumdl-0.0.169}/.mise.toml +0 -0
  70. {rumdl-0.0.167 → rumdl-0.0.169}/.rumdl.toml +0 -0
  71. {rumdl-0.0.167 → rumdl-0.0.169}/.rustfmt.toml +0 -0
  72. {rumdl-0.0.167 → rumdl-0.0.169}/CONTRIBUTING.md +0 -0
  73. {rumdl-0.0.167 → rumdl-0.0.169}/LICENSE +0 -0
  74. {rumdl-0.0.167 → rumdl-0.0.169}/MANIFEST.in +0 -0
  75. {rumdl-0.0.167 → rumdl-0.0.169}/README.md +0 -0
  76. {rumdl-0.0.167 → rumdl-0.0.169}/assets/logo.png +0 -0
  77. {rumdl-0.0.167 → rumdl-0.0.169}/benches/fix_performance.rs +0 -0
  78. {rumdl-0.0.167 → rumdl-0.0.169}/benches/range_performance.rs +0 -0
  79. {rumdl-0.0.167 → rumdl-0.0.169}/benches/range_utils_benchmark.rs +0 -0
  80. {rumdl-0.0.167 → rumdl-0.0.169}/benches/rule_performance.rs +0 -0
  81. {rumdl-0.0.167 → rumdl-0.0.169}/benches/simple_fix_bench.rs +0 -0
  82. {rumdl-0.0.167 → rumdl-0.0.169}/benchmark/bin/bench_lint_context.rs +0 -0
  83. {rumdl-0.0.167 → rumdl-0.0.169}/benchmark/bin/benchmark.rs +0 -0
  84. {rumdl-0.0.167 → rumdl-0.0.169}/benchmark/bin/benchmark_rule.rs +0 -0
  85. {rumdl-0.0.167 → rumdl-0.0.169}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  86. {rumdl-0.0.167 → rumdl-0.0.169}/benchmark/bin/measure_code_span_performance.rs +0 -0
  87. {rumdl-0.0.167 → rumdl-0.0.169}/cliff.toml +0 -0
  88. {rumdl-0.0.167 → rumdl-0.0.169}/docs/RULES.md +0 -0
  89. {rumdl-0.0.167 → rumdl-0.0.169}/docs/global-settings.md +0 -0
  90. {rumdl-0.0.167 → rumdl-0.0.169}/docs/inline-configuration.md +0 -0
  91. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md001.md +0 -0
  92. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md002.md +0 -0
  93. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md003.md +0 -0
  94. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md004.md +0 -0
  95. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md005.md +0 -0
  96. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md006.md +0 -0
  97. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md007.md +0 -0
  98. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md009.md +0 -0
  99. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md010.md +0 -0
  100. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md011.md +0 -0
  101. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md012.md +0 -0
  102. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md014.md +0 -0
  103. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md018.md +0 -0
  104. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md019.md +0 -0
  105. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md020.md +0 -0
  106. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md021.md +0 -0
  107. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md022.md +0 -0
  108. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md023.md +0 -0
  109. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md024.md +0 -0
  110. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md025.md +0 -0
  111. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md026.md +0 -0
  112. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md027.md +0 -0
  113. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md028.md +0 -0
  114. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md029.md +0 -0
  115. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md030.md +0 -0
  116. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md031.md +0 -0
  117. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md032.md +0 -0
  118. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md033.md +0 -0
  119. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md034.md +0 -0
  120. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md035.md +0 -0
  121. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md036.md +0 -0
  122. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md037.md +0 -0
  123. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md038.md +0 -0
  124. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md039.md +0 -0
  125. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md040.md +0 -0
  126. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md041.md +0 -0
  127. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md042.md +0 -0
  128. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md043.md +0 -0
  129. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md044.md +0 -0
  130. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md045.md +0 -0
  131. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md046.md +0 -0
  132. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md047.md +0 -0
  133. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md048.md +0 -0
  134. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md049.md +0 -0
  135. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md050.md +0 -0
  136. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md051.md +0 -0
  137. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md052.md +0 -0
  138. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md053.md +0 -0
  139. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md054.md +0 -0
  140. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md055.md +0 -0
  141. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md056.md +0 -0
  142. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md057.md +0 -0
  143. {rumdl-0.0.167 → rumdl-0.0.169}/docs/md058.md +0 -0
  144. {rumdl-0.0.167 → rumdl-0.0.169}/docs/vscode-extension.md +0 -0
  145. {rumdl-0.0.167 → rumdl-0.0.169}/pyproject.toml +0 -0
  146. {rumdl-0.0.167 → rumdl-0.0.169}/rumdl/__init__.py +0 -0
  147. {rumdl-0.0.167 → rumdl-0.0.169}/rumdl/__main__.py +0 -0
  148. {rumdl-0.0.167 → rumdl-0.0.169}/rumdl/py.typed +0 -0
  149. {rumdl-0.0.167 → rumdl-0.0.169}/rumdl.toml.example +0 -0
  150. {rumdl-0.0.167 → rumdl-0.0.169}/rust-toolchain.toml +0 -0
  151. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/extract-changelog.sh +0 -0
  152. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/generate-downloads-table.sh +0 -0
  153. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/pre-release.sh +0 -0
  154. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/prepare-release.sh +0 -0
  155. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/setup-pre-commit.sh +0 -0
  156. {rumdl-0.0.167 → rumdl-0.0.169}/scripts/update-pre-commit-docs.sh +0 -0
  157. {rumdl-0.0.167 → rumdl-0.0.169}/src/cache.rs +0 -0
  158. {rumdl-0.0.167 → rumdl-0.0.169}/src/exit_codes.rs +0 -0
  159. {rumdl-0.0.167 → rumdl-0.0.169}/src/fix_coordinator.rs +0 -0
  160. {rumdl-0.0.167 → rumdl-0.0.169}/src/formatter.rs +0 -0
  161. {rumdl-0.0.167 → rumdl-0.0.169}/src/inline_config.rs +0 -0
  162. {rumdl-0.0.167 → rumdl-0.0.169}/src/lsp/mod.rs +0 -0
  163. {rumdl-0.0.167 → rumdl-0.0.169}/src/markdownlint_config.rs +0 -0
  164. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/azure.rs +0 -0
  165. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/concise.rs +0 -0
  166. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/github.rs +0 -0
  167. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/gitlab.rs +0 -0
  168. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/grouped.rs +0 -0
  169. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/json.rs +0 -0
  170. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/json_lines.rs +0 -0
  171. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/junit.rs +0 -0
  172. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/mod.rs +0 -0
  173. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/pylint.rs +0 -0
  174. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/sarif.rs +0 -0
  175. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/formatters/text.rs +0 -0
  176. {rumdl-0.0.167 → rumdl-0.0.169}/src/output/mod.rs +0 -0
  177. {rumdl-0.0.167 → rumdl-0.0.169}/src/parallel.rs +0 -0
  178. {rumdl-0.0.167 → rumdl-0.0.169}/src/performance.rs +0 -0
  179. {rumdl-0.0.167 → rumdl-0.0.169}/src/profiling.rs +0 -0
  180. {rumdl-0.0.167 → rumdl-0.0.169}/src/rule_config.rs +0 -0
  181. {rumdl-0.0.167 → rumdl-0.0.169}/src/rule_config_serde.rs +0 -0
  182. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/blockquote_utils.rs +0 -0
  183. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/code_block_utils.rs +0 -0
  184. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/code_fence_utils.rs +0 -0
  185. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/emphasis_style.rs +0 -0
  186. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/front_matter_utils.rs +0 -0
  187. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/heading_utils.rs +0 -0
  188. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/list_utils.rs +0 -0
  189. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md001_heading_increment.rs +0 -0
  190. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  191. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md003_heading_style/md003_config.rs +0 -0
  192. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md003_heading_style.rs +0 -0
  193. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  194. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md004_unordered_list_style.rs +0 -0
  195. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md005_list_indent.rs +0 -0
  196. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  197. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md007_ul_indent.rs +0 -0
  198. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  199. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  200. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md013_line_length/md013_config.rs +0 -0
  201. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  202. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  203. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  204. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  205. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  206. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md022_blanks_around_headings.rs +0 -0
  207. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md023_heading_start_left.rs +0 -0
  208. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  209. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md024_no_duplicate_heading.rs +0 -0
  210. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md025_single_title/md025_config.rs +0 -0
  211. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md025_single_title.rs +0 -0
  212. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  213. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  214. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  215. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  216. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md029_ordered_list_prefix.rs +0 -0
  217. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  218. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md030_list_marker_space.rs +0 -0
  219. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  220. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md035_hr_style/md035_config.rs +0 -0
  221. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  222. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  223. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md039_no_space_in_links.rs +0 -0
  224. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md042_no_empty_links.rs +0 -0
  225. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md043_required_headings.rs +0 -0
  226. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md044_proper_names/md044_config.rs +0 -0
  227. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  228. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md045_no_alt_text.rs +0 -0
  229. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  230. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md047_single_trailing_newline.rs +0 -0
  231. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  232. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  233. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md050_strong_style/md050_config.rs +0 -0
  234. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  235. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  236. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md054_link_image_style.rs +0 -0
  237. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  238. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  239. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/mod.rs +0 -0
  240. {rumdl-0.0.167 → rumdl-0.0.169}/src/rules/strong_style.rs +0 -0
  241. {rumdl-0.0.167 → rumdl-0.0.169}/src/stdin_processor.rs +0 -0
  242. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/anchor_styles/github.rs +0 -0
  243. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/anchor_styles/jekyll.rs +0 -0
  244. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/anchor_styles/kramdown.rs +0 -0
  245. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  246. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/anchor_styles/mod.rs +0 -0
  247. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/ast_utils.rs +0 -0
  248. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/code_block_utils.rs +0 -0
  249. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/document_structure.rs +0 -0
  250. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/early_returns.rs +0 -0
  251. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/element_cache.rs +0 -0
  252. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/emphasis_utils.rs +0 -0
  253. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/fix_utils.rs +0 -0
  254. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/header_id_utils.rs +0 -0
  255. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/kramdown_utils.rs +0 -0
  256. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/line_ending.rs +0 -0
  257. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/markdown_elements.rs +0 -0
  258. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_admonitions.rs +0 -0
  259. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_common.rs +0 -0
  260. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_critic.rs +0 -0
  261. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_footnotes.rs +0 -0
  262. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_patterns.rs +0 -0
  263. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_snippets.rs +0 -0
  264. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_tabs.rs +0 -0
  265. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mkdocs_test_utils.rs +0 -0
  266. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/mod.rs +0 -0
  267. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/range_utils.rs +0 -0
  268. {rumdl-0.0.167 → rumdl-0.0.169}/src/utils/string_interner.rs +0 -0
  269. {rumdl-0.0.167 → rumdl-0.0.169}/src/vscode.rs +0 -0
  270. {rumdl-0.0.167 → rumdl-0.0.169}/src/watch.rs +0 -0
  271. {rumdl-0.0.167 → rumdl-0.0.169}/tests/advanced_integration_tests.rs +0 -0
  272. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/additional_tests.rs +0 -0
  273. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/basic_tests.rs +0 -0
  274. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/comprehensive_tests.rs +0 -0
  275. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/mod.rs +0 -0
  276. {rumdl-0.0.167 → rumdl-0.0.169}/tests/character_ranges/unicode_utils.rs +0 -0
  277. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_duplication_test.rs +0 -0
  278. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_explain_test.rs +0 -0
  279. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_flag_precedence_test.rs +0 -0
  280. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_integration_tests.rs +0 -0
  281. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_lsp_fix_consistency.rs +0 -0
  282. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cli_statistics_test.rs +0 -0
  283. {rumdl-0.0.167 → rumdl-0.0.169}/tests/common/cli_test_utils.rs +0 -0
  284. {rumdl-0.0.167 → rumdl-0.0.169}/tests/common/fixtures.rs +0 -0
  285. {rumdl-0.0.167 → rumdl-0.0.169}/tests/common/mod.rs +0 -0
  286. {rumdl-0.0.167 → rumdl-0.0.169}/tests/common/test_utils.rs +0 -0
  287. {rumdl-0.0.167 → rumdl-0.0.169}/tests/commonmark_compliance_tests.rs +0 -0
  288. {rumdl-0.0.167 → rumdl-0.0.169}/tests/comprehensive_integration_tests.rs +0 -0
  289. {rumdl-0.0.167 → rumdl-0.0.169}/tests/comprehensive_output_format_tests.rs +0 -0
  290. {rumdl-0.0.167 → rumdl-0.0.169}/tests/config_application_tests.rs +0 -0
  291. {rumdl-0.0.167 → rumdl-0.0.169}/tests/config_file_command_test.rs +0 -0
  292. {rumdl-0.0.167 → rumdl-0.0.169}/tests/config_tests.rs +0 -0
  293. {rumdl-0.0.167 → rumdl-0.0.169}/tests/config_upward_traversal_test.rs +0 -0
  294. {rumdl-0.0.167 → rumdl-0.0.169}/tests/configuration_inheritance_tests.rs +0 -0
  295. {rumdl-0.0.167 → rumdl-0.0.169}/tests/consistency_regression_tests.rs +0 -0
  296. {rumdl-0.0.167 → rumdl-0.0.169}/tests/crlf_line_endings_test.rs +0 -0
  297. {rumdl-0.0.167 → rumdl-0.0.169}/tests/cross_platform_compatibility_tests.rs +0 -0
  298. {rumdl-0.0.167 → rumdl-0.0.169}/tests/deeply_nested_lists_performance_test.rs +0 -0
  299. {rumdl-0.0.167 → rumdl-0.0.169}/tests/escaped_brackets_test.rs +0 -0
  300. {rumdl-0.0.167 → rumdl-0.0.169}/tests/exclude_with_explicit_paths_test.rs +0 -0
  301. {rumdl-0.0.167 → rumdl-0.0.169}/tests/final_confidence_assessment.rs +0 -0
  302. {rumdl-0.0.167 → rumdl-0.0.169}/tests/fix_counting_test.rs +0 -0
  303. {rumdl-0.0.167 → rumdl-0.0.169}/tests/fix_performance_baseline_test.rs +0 -0
  304. {rumdl-0.0.167 → rumdl-0.0.169}/tests/fixable_unfixable_config_test.rs +0 -0
  305. {rumdl-0.0.167 → rumdl-0.0.169}/tests/html_comments_test.rs +0 -0
  306. {rumdl-0.0.167 → rumdl-0.0.169}/tests/init_command_test.rs +0 -0
  307. {rumdl-0.0.167 → rumdl-0.0.169}/tests/init_tests.rs +0 -0
  308. {rumdl-0.0.167 → rumdl-0.0.169}/tests/inline_config_blocks_test.rs +0 -0
  309. {rumdl-0.0.167 → rumdl-0.0.169}/tests/inline_config_test.rs +0 -0
  310. {rumdl-0.0.167 → rumdl-0.0.169}/tests/integration_tests.rs +0 -0
  311. {rumdl-0.0.167 → rumdl-0.0.169}/tests/json_output_test.rs +0 -0
  312. {rumdl-0.0.167 → rumdl-0.0.169}/tests/kramdown_integration_test.rs +0 -0
  313. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lib.rs +0 -0
  314. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_editor_integration_tests.rs +0 -0
  315. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_formatting_tests.rs +0 -0
  316. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_initialization_options_test.rs +0 -0
  317. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_integration_tests.rs +0 -0
  318. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_memory_leak_tests.rs +0 -0
  319. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_mkdocs_flavor_test.rs +0 -0
  320. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_tests.rs +0 -0
  321. {rumdl-0.0.167 → rumdl-0.0.169}/tests/lsp_unopened_document_test.rs +0 -0
  322. {rumdl-0.0.167 → rumdl-0.0.169}/tests/malformed_markdown_stress_tests.rs +0 -0
  323. {rumdl-0.0.167 → rumdl-0.0.169}/tests/markdownlint_cli_integration.rs +0 -0
  324. {rumdl-0.0.167 → rumdl-0.0.169}/tests/markdownlint_config_test.rs +0 -0
  325. {rumdl-0.0.167 → rumdl-0.0.169}/tests/markdownlintignore_test.rs +0 -0
  326. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md009_md013_integration_test.rs +0 -0
  327. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md009_md013_order_test.rs +0 -0
  328. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md013_hard_breaks_test.rs +0 -0
  329. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md013_reflow_integration_test.rs +0 -0
  330. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md013_reflow_nested_lists_test.rs +0 -0
  331. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md032_edge_cases_test.rs +0 -0
  332. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md032_ordered_list_bug_test.rs +0 -0
  333. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md037_xxxx_regression_test.rs +0 -0
  334. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md038_false_positive_test.rs +0 -0
  335. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md051_issue_39_regression_test.rs +0 -0
  336. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md051_readme_bug_test.rs +0 -0
  337. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md051_toc_bug_test.rs +0 -0
  338. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md052_literal_brackets_test.rs +0 -0
  339. {rumdl-0.0.167 → rumdl-0.0.169}/tests/md054_code_span_test.rs +0 -0
  340. {rumdl-0.0.167 → rumdl-0.0.169}/tests/mkdocs_anchor_edge_cases_test.rs +0 -0
  341. {rumdl-0.0.167 → rumdl-0.0.169}/tests/mkdocs_anchor_test.rs +0 -0
  342. {rumdl-0.0.167 → rumdl-0.0.169}/tests/nested_code_block_test.rs +0 -0
  343. {rumdl-0.0.167 → rumdl-0.0.169}/tests/output_format_integration_tests.rs +0 -0
  344. {rumdl-0.0.167 → rumdl-0.0.169}/tests/output_format_tests.rs +0 -0
  345. {rumdl-0.0.167 → rumdl-0.0.169}/tests/per_file_ignores_integration_test.rs +0 -0
  346. {rumdl-0.0.167 → rumdl-0.0.169}/tests/perf_check.rs +0 -0
  347. {rumdl-0.0.167 → rumdl-0.0.169}/tests/performance_validation_tests.rs +0 -0
  348. {rumdl-0.0.167 → rumdl-0.0.169}/tests/pyproject_config_tests.rs +0 -0
  349. {rumdl-0.0.167 → rumdl-0.0.169}/tests/real_world_repository_tests.rs +0 -0
  350. {rumdl-0.0.167 → rumdl-0.0.169}/tests/regression_prevention_tests.rs +0 -0
  351. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  352. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/heading_edge_cases_test.rs +0 -0
  353. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  354. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/link_edge_cases_test.rs +0 -0
  355. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/list_rules_integration_test.rs +0 -0
  356. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md001_test.rs +0 -0
  357. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md001_unicode_test.rs +0 -0
  358. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md002_test.rs +0 -0
  359. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md003_test.rs +0 -0
  360. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md004_test.rs +0 -0
  361. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md005_dynamic_indent_test.rs +0 -0
  362. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md005_test.rs +0 -0
  363. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md005_unicode_test.rs +0 -0
  364. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md006_test.rs +0 -0
  365. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md006_unicode_test.rs +0 -0
  366. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md007_test.rs +0 -0
  367. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md009_test.rs +0 -0
  368. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md010_test.rs +0 -0
  369. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md012_test.rs +0 -0
  370. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md013_test.rs +0 -0
  371. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md014_test.rs +0 -0
  372. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md018_test.rs +0 -0
  373. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md019_test.rs +0 -0
  374. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md020_test.rs +0 -0
  375. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md021_test.rs +0 -0
  376. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md022_test.rs +0 -0
  377. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md023_extended_test.rs +0 -0
  378. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md023_test.rs +0 -0
  379. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md024_test.rs +0 -0
  380. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md025_test.rs +0 -0
  381. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md026_kramdown_test.rs +0 -0
  382. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md026_test.rs +0 -0
  383. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md027_test.rs +0 -0
  384. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md028_md009_interaction_test.rs +0 -0
  385. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md028_test.rs +0 -0
  386. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_code_block_separation_test.rs +0 -0
  387. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_fix_test.rs +0 -0
  388. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_issue42_test.rs +0 -0
  389. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
  390. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_nested_list_continuation_test.rs +0 -0
  391. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  392. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_test.rs +0 -0
  393. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md029_unicode_test.rs +0 -0
  394. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md030_test.rs +0 -0
  395. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md031_kramdown_test.rs +0 -0
  396. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md031_test.rs +0 -0
  397. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md032_test.rs +0 -0
  398. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md033_extended_test.rs +0 -0
  399. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md034_ipv6_test.rs +0 -0
  400. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md034_test.rs +0 -0
  401. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md035_test.rs +0 -0
  402. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md036_test.rs +0 -0
  403. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md037_kramdown_test.rs +0 -0
  404. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md037_test.rs +0 -0
  405. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md038_nested_backticks_test.rs +0 -0
  406. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md038_test.rs +0 -0
  407. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md039_test.rs +0 -0
  408. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md040_test.rs +0 -0
  409. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md041_test.rs +0 -0
  410. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md042_test.rs +0 -0
  411. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md043_test.rs +0 -0
  412. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md044_test.rs +0 -0
  413. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md045_test.rs +0 -0
  414. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md046_test.rs +0 -0
  415. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md047_test.rs +0 -0
  416. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md048_test.rs +0 -0
  417. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md049_test.rs +0 -0
  418. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md050_test.rs +0 -0
  419. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_comprehensive_test.rs +0 -0
  420. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  421. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_edge_cases_test.rs +0 -0
  422. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  423. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  424. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_property_based_test.rs +0 -0
  425. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_regression_prevention_test.rs +0 -0
  426. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_test.rs +0 -0
  427. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md051_unicode_security_test.rs +0 -0
  428. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md053_additional_test.rs +0 -0
  429. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md053_proptest.rs +0 -0
  430. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md053_test.rs +0 -0
  431. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md054_test.rs +0 -0
  432. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md054_unicode_test.rs +0 -0
  433. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md055_test.rs +0 -0
  434. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md056_test.rs +0 -0
  435. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md057_test.rs +0 -0
  436. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md058_kramdown_test.rs +0 -0
  437. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/md058_test.rs +0 -0
  438. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/mkdocs_admonitions_test.rs +0 -0
  439. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
  440. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/mkdocs_extensions_test.rs +0 -0
  441. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/mkdocs_snippets_test.rs +0 -0
  442. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/mod.rs +0 -0
  443. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules/rule_interaction_test.rs +0 -0
  444. {rumdl-0.0.167 → rumdl-0.0.169}/tests/rules_mod_test.rs +0 -0
  445. {rumdl-0.0.167 → rumdl-0.0.169}/tests/schema_validation_test.rs +0 -0
  446. {rumdl-0.0.167 → rumdl-0.0.169}/tests/skip_context_tests.rs +0 -0
  447. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_ast_code_block_issue.rs +0 -0
  448. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_gfm_vs_default_parsing.rs +0 -0
  449. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_lint_context_flow.rs +0 -0
  450. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_list_ast_structure.rs +0 -0
  451. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_multiline_ast.rs +0 -0
  452. {rumdl-0.0.167 → rumdl-0.0.169}/tests/test_underscore_edge_cases.rs +0 -0
  453. {rumdl-0.0.167 → rumdl-0.0.169}/tests/thread_safety_tests.rs +0 -0
  454. {rumdl-0.0.167 → rumdl-0.0.169}/tests/unfixable_rules_test.rs +0 -0
  455. {rumdl-0.0.167 → rumdl-0.0.169}/tests/unicode_edge_case_tests.rs +0 -0
  456. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utf8_boundary_tests.rs +0 -0
  457. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/blockquote_utils_test.rs +0 -0
  458. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/code_block_utils_extended_test.rs +0 -0
  459. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/code_block_utils_test.rs +0 -0
  460. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/core_utils_test.rs +0 -0
  461. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/front_matter_utils_test.rs +0 -0
  462. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/line_index_test.rs +0 -0
  463. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils/mod.rs +0 -0
  464. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils_markdown_edge_cases.rs +0 -0
  465. {rumdl-0.0.167 → rumdl-0.0.169}/tests/utils_tests.rs +0 -0
  466. {rumdl-0.0.167 → rumdl-0.0.169}/tests/vscode_extension_fixes.rs +0 -0
  467. {rumdl-0.0.167 → rumdl-0.0.169}/tests/vscode_test.rs +0 -0
  468. {rumdl-0.0.167 → rumdl-0.0.169}/tests/vscode_tests.rs +0 -0
  469. {rumdl-0.0.167 → rumdl-0.0.169}/tests/vscode_windows_comprehensive_test.rs +0 -0
  470. {rumdl-0.0.167 → rumdl-0.0.169}/tests/vscode_windows_test.rs +0 -0
@@ -44,6 +44,14 @@ repos:
44
44
  pass_filenames: false
45
45
  stages: [pre-commit]
46
46
 
47
+ - id: cargo-lock-check
48
+ name: check Cargo.lock is up-to-date
49
+ entry: cargo check --locked
50
+ language: system
51
+ files: ^(Cargo\.(toml|lock)|.*\.rs)$
52
+ pass_filenames: false
53
+ stages: [pre-commit]
54
+
47
55
  # General file quality checks
48
56
  - repo: https://github.com/pre-commit/pre-commit-hooks
49
57
  rev: v4.6.0
@@ -60,12 +68,12 @@ repos:
60
68
  - id: mixed-line-ending
61
69
  args: [--fix=lf]
62
70
 
63
- # Markdown linting using rumdl itself (local binary)
71
+ # Markdown linting using rumdl itself (cargo run)
64
72
  - repo: local
65
73
  hooks:
66
74
  - id: rumdl
67
75
  name: rumdl check
68
- entry: ./target/release/rumdl check
76
+ entry: cargo run --quiet -- check
69
77
  language: system
70
78
  files: \.md$
71
79
  exclude: ^(test_tmp|benchmark/test-data|docs/temp|CHANGELOG\.md)
@@ -101,3 +109,12 @@ repos:
101
109
  pass_filenames: false
102
110
  stages: [pre-push]
103
111
  verbose: true
112
+
113
+ - id: cargo-lock-check-push
114
+ name: verify Cargo.lock is committed and up-to-date
115
+ entry: cargo check --locked
116
+ language: system
117
+ files: ^(Cargo\.(toml|lock)|.*\.rs)$
118
+ pass_filenames: false
119
+ stages: [pre-push]
120
+ verbose: true
@@ -7,6 +7,213 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.169] - 2025-10-30
11
+
12
+ ### Performance
13
+
14
+ **MASSIVE PERFORMANCE IMPROVEMENTS**: This release delivers 7-53x faster linting through systematic elimination of O(n²) bottlenecks and algorithmic optimizations. rumdl is now 16-29x faster than markdownlint-cli2 on real-world repositories.
15
+
16
+ - **Fix catastrophic O(n²) bottleneck in FilteredLinesIter** ⭐ THE GAME CHANGER
17
+ - Eliminated `content.lines().collect()` from inside Iterator::next() method
18
+ - Single-file optimization delivered 7,600x speedup for affected rules
19
+ - MD011: 6.00s → 0.785ms (7,644x faster)
20
+ - MD012: 5.95s → 1.643ms (3,621x faster)
21
+ - Impact: Stress test (10k lines): 9,987ms → 187ms (53x faster)
22
+ - Impact: Rust Book (478 files): 2,646ms → 269ms (9.8x faster)
23
+ - Impact: PyO3 (76 files): 2,004ms → 262ms (7.6x faster)
24
+
25
+ - **Pre-compute LintContext data structures to eliminate redundant work**
26
+ - LineIndex: Eliminated 46× content cloning across all rules
27
+ - Jinja template ranges: Pre-computed once instead of O(n×m) scanning
28
+ - Table blocks: Computed once instead of 4× independent scans per document
29
+ - HTML comment ranges: Pre-computed with 50-70x speedup
30
+ - Code block line mapping: Optimized with binary search instead of linear scan
31
+ - Autodoc blocks (MkDocs): Pre-computed to avoid O(n²) scaling
32
+
33
+ - **Optimize link and image parsing with binary search**
34
+ - Replaced linear search with binary search for code span checks
35
+ - Faster link/image parsing across all reference-based rules
36
+
37
+ - **Replace regex with byte-level parsing for better performance**
38
+ - List detection: Manual byte scanning instead of regex
39
+ - Blockquote prefix: Byte-level parsing instead of regex
40
+ - Line info parsing: Eliminated redundant blockquote prefix parsing
41
+
42
+ - **Streaming parser architecture**
43
+ - Replaced AST parsing with pulldown-cmark streaming for lower memory overhead
44
+ - Better scalability for very large documents
45
+
46
+ - **MD046 optimization**
47
+ - Pre-compute list/tab contexts
48
+ - Use ctx.code_blocks instead of independent detection
49
+
50
+ ### Benchmarks
51
+
52
+ **vs Previous Version (v0.0.168):**
53
+ - Rust Book (478 files): 2,646ms → 269ms (9.8x faster)
54
+ - Stress Test (10,514 lines): 9,987ms → 187ms (53.4x faster)
55
+ - PyO3 (76 files): 2,004ms → 262ms (7.6x faster)
56
+
57
+ **vs markdownlint-cli2 (industry standard):**
58
+ - Rust Book: 10.3s vs 0.35s (29.4x faster)
59
+ - PyO3: 4.4s vs 0.26s (16.9x faster)
60
+
61
+ **Current Performance:**
62
+ - 0.7ms per file (Rust Book)
63
+ - 6.3x parallelization efficiency
64
+ - Zero O(n²) algorithmic bottlenecks remaining
65
+
66
+ ### Added
67
+
68
+ - **MDX and Quarto flavor support**
69
+ - New flavors: `MarkdownFlavor::MDX` and `MarkdownFlavor::Quarto`
70
+ - JSX component handling: Skip linting inside JSX elements
71
+ - ESM import/export support: Ignore JavaScript import/export statements
72
+ - Quarto code chunk support: Recognize `{r}`, `{python}` chunk delimiters
73
+ - Essential for modern React-based documentation and data science workflows
74
+
75
+ ### Fixed
76
+
77
+ - **MD011: Intelligent URL vs text detection in reversed links**
78
+ - Smarter classification of link components as URL or text
79
+ - Reduces false positives in edge cases like `(Generic<T>)[link]`
80
+ - Correctly handles `(http://url)[text]` vs `(text)[#anchor]`
81
+ - Improved heuristics for ambiguous single-word patterns
82
+
83
+ - **MD013: Preserve HTML blocks in list items during reflow**
84
+ - HTML blocks inside list items are now preserved during auto-fix
85
+ - Prevents broken indentation and tag structure
86
+ - Better handling of complex nested content
87
+
88
+ ### Changed
89
+
90
+ - Architecture improvements for pre-computation pattern
91
+ - LintContext now owns shared data structures
92
+ - Rules consume pre-computed data instead of duplicating work
93
+ - Consistent binary search APIs for range lookups
94
+ - Foundation for future optimizations
95
+
96
+ ## [0.0.168] - 2025-10-28
97
+
98
+ ### Added
99
+
100
+ - **CLI: Support for Quarto (.qmd) and RMarkdown (.rmd/.Rmd) files**
101
+ - Added support for `.qmd` (Quarto), `.rmd` and `.Rmd` (RMarkdown) file extensions
102
+ - Enables markdown linting for data science and scientific documentation workflows
103
+ - Particularly useful for Jupyter-based publishing and reproducible research documents
104
+
105
+ - **LSP: will_save_wait_until for proper auto-fix on save**
106
+ - Implemented LSP `textDocument/willSaveWaitUntil` capability
107
+ - Provides proper auto-fix on save support in compatible editors
108
+ - More reliable than `textDocument/didSave` approach
109
+ - Ensures fixes are applied before file is actually saved to disk
110
+
111
+ - **MD033: LSP Quick Fix to remove HTML tags while keeping content**
112
+ - New code action removes HTML opening and closing tags while preserving inner content
113
+ - Helps convert inline HTML to plain text when needed
114
+ - Available through editor Quick Fix menu (Ctrl+. or Cmd+.)
115
+
116
+ ### Fixed
117
+
118
+ - **MD013: Skip auto-fix for list items containing HTML tags**
119
+ - Prevents broken auto-fix when HTML tags are present in list items
120
+ - HTML structure (indentation, tag hierarchy) is now preserved
121
+ - Errors are still reported but no destructive fix is applied
122
+ - Pragmatic solution until full HTML-aware reflow is implemented
123
+ - Fixes issues where tags like `</details>` were split or indentation was lost
124
+
125
+ - **MD013: Fix incorrect sentence splitting after abbreviations in sentence-per-line mode**
126
+ - No longer incorrectly splits sentences after common abbreviations (e.g., etc., i.e., Dr., Mr.)
127
+ - Improved sentence detection algorithm for better accuracy
128
+ - Prevents unwanted line breaks in the middle of sentences
129
+
130
+ - **MD013: Prevent autolinks from being parsed as HTML tags**
131
+ - Autolinks like `<https://example.com>` are no longer treated as HTML
132
+ - Fixes false positives in HTML detection that could skip auto-fix unnecessarily
133
+ - Properly distinguishes between markdown autolinks and actual HTML tags
134
+
135
+ - **MD013: Prevent content duplication in sentence-per-line reflow**
136
+ - Fixed bug where content could be duplicated during paragraph reflow
137
+ - Ensures each sentence appears exactly once in reflowed output
138
+ - Improves reliability of auto-fix in sentence-per-line mode
139
+
140
+ - **MD013: Improve sentence-per-line error messages and highlighting**
141
+ - Better error messages that clearly indicate sentence-per-line violations
142
+ - More accurate highlighting of problematic text
143
+ - Helps users understand what needs to be fixed
144
+
145
+ - **MD013: Skip template directives at paragraph start in sentence-per-line mode**
146
+ - Template directives (like `{{ variable }}`) at start of paragraphs no longer cause issues
147
+ - Prevents false positives in templated markdown files
148
+ - Improves compatibility with static site generators and template engines
149
+
150
+ - **MD013: Treat template directives as paragraph boundaries**
151
+ - Template directives now properly separate paragraphs during reflow
152
+ - Prevents template syntax from being joined with regular content
153
+ - Better handling of mixed template and markdown content
154
+
155
+ - **MD013: Join single-sentence paragraphs in sentence-per-line mode**
156
+ - Single-sentence paragraphs that span multiple lines are now properly joined
157
+ - Fixes issues where short paragraphs were incorrectly flagged
158
+ - Improves consistency of sentence-per-line formatting
159
+
160
+ - **MD013: Handle multiple spaces and multi-line paragraphs in sentence-per-line mode**
161
+ - Better handling of paragraphs with inconsistent spacing
162
+ - Multi-line paragraphs are now correctly reflowed
163
+ - Fixes edge cases in whitespace handling
164
+
165
+ - **MD052: Preserve backtick-wrapped patterns with dots in MkDocs mode**
166
+ - Backtick-wrapped references like `` `[foo.bar]` `` now preserve dots in slugs
167
+ - Matches MkDocs behavior of treating code-wrapped text literally
168
+ - Prevents false positives for code examples in documentation
169
+
170
+ - **MD052: Support Pandoc citations and inline footnotes in RMarkdown/Quarto**
171
+ - Recognizes Pandoc citation syntax: `[@citation]`, `@citation`, `[-@citation]`
172
+ - Recognizes inline footnote syntax: `^[footnote text]`
173
+ - No longer treats these as reference-style links
174
+ - Essential for academic and scientific writing in RMarkdown and Quarto
175
+
176
+ - **MD033: Only report opening HTML tags, not closing tags**
177
+ - MD033 violations now only report the opening tag of an HTML element
178
+ - Reduces noise in linting output (one violation per element vs two)
179
+ - Closing tags like `</div>` are no longer separately reported
180
+ - Makes HTML-related warnings clearer and less redundant
181
+
182
+ - **MD018: Skip CSS selectors and JS code inside HTML blocks**
183
+ - CSS selectors like `#slide-1` inside `<style>` tags no longer trigger MD018
184
+ - JavaScript code inside `<script>` tags is properly ignored
185
+ - Prevents false positives for Quarto and RMarkdown files with embedded HTML/CSS/JS
186
+ - Particularly important for interactive documents and custom styling
187
+
188
+ - **MD012: Enforce exactly 1 newline at EOF and clean LSP logging**
189
+ - Files now must end with exactly one newline character (not zero, not two)
190
+ - Aligns with POSIX standard and common editor behavior
191
+ - Improved LSP logging with less noise
192
+
193
+ - **CI: Use cargo run instead of release binary in rumdl pre-commit hook**
194
+ - Pre-commit hooks now use `cargo run` for more reliable execution
195
+ - Prevents issues with stale release binaries during development
196
+ - Better integration with cargo workflow
197
+
198
+ - **Schema: Allow root-level rule sections like [MD013] in config validation**
199
+ - Configuration schema now correctly allows `[MD013]` style sections
200
+ - Fixes false validation errors for valid TOML config
201
+ - Better compatibility with common configuration patterns
202
+
203
+ ### Changed
204
+
205
+ - **Refactor: Detect HTML blocks before parsing headings**
206
+ - Reordered LintContext initialization to detect HTML blocks first
207
+ - Headings are no longer detected inside HTML blocks (like `<style>` or `<script>`)
208
+ - Architectural improvement that prevents multiple false positives
209
+ - Benefits MD018 and other heading-related rules
210
+ - More correct parsing aligned with markdown specifications
211
+
212
+ - **Refactor: Use filtered_lines() for front-matter handling in MD011 and MD012**
213
+ - Improved front-matter handling using consistent filtered_lines API
214
+ - Better code reuse and maintainability
215
+ - More reliable front-matter detection across rules
216
+
10
217
  ## [0.0.167] - 2025-10-24
11
218
 
12
219
  ### Added
@@ -1983,7 +1983,7 @@ dependencies = [
1983
1983
 
1984
1984
  [[package]]
1985
1985
  name = "rumdl"
1986
- version = "0.0.167"
1986
+ version = "0.0.169"
1987
1987
  dependencies = [
1988
1988
  "anyhow",
1989
1989
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.167"
3
+ version = "0.0.169"
4
4
  edition = "2024"
5
5
  rust-version = "1.89.0"
6
6
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
@@ -22,26 +22,6 @@ crate-type = ["rlib"]
22
22
  name = "rumdl"
23
23
  path = "src/main.rs"
24
24
 
25
- [[bench]]
26
- name = "rule_performance"
27
- harness = false
28
-
29
- [[bench]]
30
- name = "fix_performance"
31
- harness = false
32
-
33
- [[bench]]
34
- name = "range_performance"
35
- harness = false
36
-
37
- [[bench]]
38
- name = "simple_fix_bench"
39
- harness = false
40
-
41
- [[bench]]
42
- name = "range_utils_benchmark"
43
- harness = false
44
-
45
25
  [profile.release]
46
26
  lto = true # Enable Link-Time Optimization
47
27
  strip = true # Strip symbols from binary
@@ -115,6 +115,9 @@ fmt:
115
115
  cargo fix --allow-dirty --allow-staged
116
116
 
117
117
  lint:
118
+ CARGO_INCREMENTAL=1 cargo clippy --workspace --lib --bins --tests -- -D warnings -D clippy::uninlined_format_args
119
+
120
+ lint-all:
118
121
  CARGO_INCREMENTAL=1 cargo clippy --all-targets --all-features -- -D warnings -D clippy::uninlined_format_args
119
122
 
120
123
  lint-fast:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.167
3
+ Version: 0.0.169
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -212,7 +212,11 @@ When `line-length` is set to `0`, no line length warnings will be reported for a
212
212
  - Sentence-per-line workflows where line length is not a concern
213
213
  - Documentation where long lines (e.g., URLs, technical terms) are unavoidable and acceptable
214
214
 
215
- **Note**: With `line-length: 0`, reflow still works (using a very large effective line length), so you can still use `sentence-per-line` mode for automatic formatting without any line length warnings.
215
+ **Note**: With `line-length: 0` and `reflow-mode: "sentence-per-line"`, rumdl will:
216
+
217
+ - Split multiple sentences that share a line into separate lines
218
+ - Join single sentences that span multiple lines into one line (since there's no length constraint)
219
+ - Provide consistent "one sentence = one line" formatting throughout your document
216
220
 
217
221
  ### Example with automatic reflow
218
222
 
@@ -0,0 +1,75 @@
1
+ fn main() {
2
+ unsafe {
3
+ std::env::set_var("RUMDL_PROFILE_QUADRATIC", "1");
4
+ }
5
+
6
+ let sep = "=".repeat(80);
7
+ println!("{}", sep);
8
+ println!("PROFILING EACH OPERATION AT DIFFERENT SCALES");
9
+ println!("{}", sep);
10
+
11
+ let sizes = vec![
12
+ (1_000, "1K lines"),
13
+ (5_000, "5K lines"),
14
+ (10_000, "10K lines"),
15
+ (25_000, "25K lines"),
16
+ (50_000, "50K lines"),
17
+ ];
18
+
19
+ for (target_lines, label) in sizes {
20
+ let content = create_content(target_lines);
21
+ let actual_lines = content.lines().count();
22
+
23
+ let dash_line = "-".repeat(80);
24
+ println!("\n{}", dash_line);
25
+ println!("{} ({} KB, {} lines)", label, content.len() / 1024, actual_lines);
26
+ println!("{}", dash_line);
27
+
28
+ // Run once to see timings
29
+ let _ = rumdl_lib::lint_context::LintContext::new(&content, rumdl_lib::config::MarkdownFlavor::Standard);
30
+ println!();
31
+ }
32
+ }
33
+
34
+ fn create_content(target_lines: usize) -> String {
35
+ let patterns = vec![
36
+ "# Main Heading\n\n",
37
+ "## Section Heading\n\n",
38
+ "### Subsection\n\n",
39
+ "This is a paragraph with `inline code`, **bold text**, and [a link](https://example.com). It contains multiple sentences to make it realistic. Some more text here with *emphasis* and `more code`.\n\n",
40
+ "- List item 1 with `code` and [link](https://example.com)\n",
41
+ "- List item 2 with **bold** and *emphasis*\n",
42
+ " - Nested item with `more code`\n",
43
+ " - Another nested item\n",
44
+ "- List item 3\n\n",
45
+ "1. First numbered item with `code`\n",
46
+ "2. Second item with [reference link][ref1]\n",
47
+ "3. Third item with **bold text**\n\n",
48
+ "> Blockquote with `code` and [a link](https://example.com)\n",
49
+ "> Second line of blockquote with **bold**\n",
50
+ "> > Nested blockquote with *emphasis*\n\n",
51
+ "```rust\nfn example() {\n println!(\"Hello, world!\");\n let x = 42;\n}\n```\n\n",
52
+ "```python\ndef example():\n print('Hello, world!')\n x = 42\n```\n\n",
53
+ "| Header 1 | Header 2 with `code` | Header 3 |\n",
54
+ "|----------|---------------------|----------|\n",
55
+ "| Cell 1 with `code` | Cell 2 | Cell 3 with [link](https://example.com) |\n",
56
+ "| Cell 4 | Cell 5 with **bold** | Cell 6 |\n\n",
57
+ "<!-- This is a comment -->\n\n",
58
+ "[ref1]: https://example1.com\n",
59
+ "[ref2]: https://example2.com \"Title\"\n\n",
60
+ "\n",
61
+ ];
62
+
63
+ let mut content = String::new();
64
+ let mut line_count = 0;
65
+ let mut pattern_idx = 0;
66
+
67
+ while line_count < target_lines {
68
+ let pattern = patterns[pattern_idx % patterns.len()];
69
+ content.push_str(pattern);
70
+ line_count += pattern.lines().count();
71
+ pattern_idx += 1;
72
+ }
73
+
74
+ content
75
+ }
@@ -1,107 +1,73 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Config",
4
- "description": "rumdl configuration for linting Markdown files. Rules can be configured individually using [MD###] sections with rule-specific options.",
5
- "type": "object",
6
- "properties": {
7
- "global": {
8
- "description": "Global configuration options",
9
- "default": {
10
- "disable": [],
11
- "enable": [],
12
- "exclude": [],
13
- "fixable": [],
14
- "flavor": "standard",
15
- "force_exclude": false,
16
- "include": [],
17
- "line_length": 80,
18
- "respect_gitignore": true,
19
- "unfixable": []
20
- },
21
- "allOf": [
22
- {
23
- "$ref": "#/definitions/GlobalConfig"
24
- }
25
- ]
26
- },
27
- "per-file-ignores": {
28
- "description": "Per-file rule ignores: maps file patterns to lists of rules to ignore Example: { \"README.md\": [\"MD033\"], \"docs/**/*.md\": [\"MD013\"] }",
29
- "default": {},
30
- "type": "object",
31
- "additionalProperties": {
32
- "type": "array",
33
- "items": {
34
- "type": "string"
35
- }
36
- }
37
- }
3
+ "additionalProperties": {
4
+ "$ref": "#/definitions/RuleConfig"
38
5
  },
39
6
  "definitions": {
40
7
  "GlobalConfig": {
41
8
  "description": "Global configuration options",
42
- "type": "object",
43
9
  "properties": {
44
10
  "disable": {
45
- "description": "Disabled rules",
46
11
  "default": [],
47
- "type": "array",
12
+ "description": "Disabled rules",
48
13
  "items": {
49
14
  "type": "string"
50
- }
15
+ },
16
+ "type": "array"
51
17
  },
52
18
  "enable": {
53
- "description": "Enabled rules",
54
19
  "default": [],
55
- "type": "array",
20
+ "description": "Enabled rules",
56
21
  "items": {
57
22
  "type": "string"
58
- }
23
+ },
24
+ "type": "array"
59
25
  },
60
26
  "exclude": {
61
- "description": "Files to exclude",
62
27
  "default": [],
63
- "type": "array",
28
+ "description": "Files to exclude",
64
29
  "items": {
65
30
  "type": "string"
66
- }
31
+ },
32
+ "type": "array"
67
33
  },
68
34
  "fixable": {
69
- "description": "Rules that are allowed to be fixed when --fix is used If specified, only these rules will be fixed",
70
35
  "default": [],
71
- "type": "array",
36
+ "description": "Rules that are allowed to be fixed when --fix is used If specified, only these rules will be fixed",
72
37
  "items": {
73
38
  "type": "string"
74
- }
39
+ },
40
+ "type": "array"
75
41
  },
76
42
  "flavor": {
77
- "description": "Markdown flavor/dialect to use (mkdocs, gfm, commonmark, etc.) When set, adjusts parsing and validation rules for that specific Markdown variant",
78
- "default": "standard",
79
43
  "allOf": [
80
44
  {
81
45
  "$ref": "#/definitions/MarkdownFlavor"
82
46
  }
83
- ]
47
+ ],
48
+ "default": "standard",
49
+ "description": "Markdown flavor/dialect to use (mkdocs, gfm, commonmark, etc.) When set, adjusts parsing and validation rules for that specific Markdown variant"
84
50
  },
85
51
  "force_exclude": {
86
- "description": "[DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths. This option is deprecated as of v0.0.156 and has no effect. Exclude patterns are now always respected, even for explicitly provided files. This prevents duplication between rumdl config and tool configs like pre-commit.",
87
52
  "default": false,
88
53
  "deprecated": true,
54
+ "description": "[DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths. This option is deprecated as of v0.0.156 and has no effect. Exclude patterns are now always respected, even for explicitly provided files. This prevents duplication between rumdl config and tool configs like pre-commit.",
89
55
  "type": "boolean"
90
56
  },
91
57
  "include": {
92
- "description": "Files to include",
93
58
  "default": [],
94
- "type": "array",
59
+ "description": "Files to include",
95
60
  "items": {
96
61
  "type": "string"
97
- }
62
+ },
63
+ "type": "array"
98
64
  },
99
65
  "line_length": {
100
- "description": "Global line length setting (used by MD013 and other rules if not overridden)",
101
66
  "default": 80,
102
- "type": "integer",
67
+ "description": "Global line length setting (used by MD013 and other rules if not overridden)",
103
68
  "format": "uint64",
104
- "minimum": 0.0
69
+ "minimum": 0.0,
70
+ "type": "integer"
105
71
  },
106
72
  "output_format": {
107
73
  "description": "Output format for linting results (e.g., \"text\", \"json\", \"pylint\", etc.)",
@@ -111,43 +77,80 @@
111
77
  ]
112
78
  },
113
79
  "respect_gitignore": {
114
- "description": "Respect .gitignore files when scanning directories",
115
80
  "default": true,
81
+ "description": "Respect .gitignore files when scanning directories",
116
82
  "type": "boolean"
117
83
  },
118
84
  "unfixable": {
119
- "description": "Rules that should never be fixed, even when --fix is used Takes precedence over fixable",
120
85
  "default": [],
121
- "type": "array",
86
+ "description": "Rules that should never be fixed, even when --fix is used Takes precedence over fixable",
122
87
  "items": {
123
88
  "type": "string"
124
- }
89
+ },
90
+ "type": "array"
125
91
  }
126
- }
92
+ },
93
+ "type": "object"
127
94
  },
128
95
  "MarkdownFlavor": {
129
96
  "description": "Markdown flavor/dialect enumeration",
130
97
  "oneOf": [
131
98
  {
132
99
  "description": "Standard Markdown without flavor-specific adjustments",
133
- "type": "string",
134
100
  "enum": [
135
101
  "standard"
136
- ]
102
+ ],
103
+ "type": "string"
137
104
  },
138
105
  {
139
106
  "description": "MkDocs flavor with auto-reference support",
140
- "type": "string",
141
107
  "enum": [
142
108
  "mkdocs"
143
- ]
109
+ ],
110
+ "type": "string"
144
111
  }
145
112
  ]
146
113
  },
147
114
  "RuleConfig": {
115
+ "additionalProperties": true,
148
116
  "description": "Represents a rule-specific configuration",
149
- "type": "object",
150
- "additionalProperties": true
117
+ "type": "object"
118
+ }
119
+ },
120
+ "description": "rumdl configuration for linting Markdown files. Rules can be configured individually using [MD###] sections with rule-specific options.",
121
+ "properties": {
122
+ "global": {
123
+ "allOf": [
124
+ {
125
+ "$ref": "#/definitions/GlobalConfig"
126
+ }
127
+ ],
128
+ "default": {
129
+ "disable": [],
130
+ "enable": [],
131
+ "exclude": [],
132
+ "fixable": [],
133
+ "flavor": "standard",
134
+ "force_exclude": false,
135
+ "include": [],
136
+ "line_length": 80,
137
+ "respect_gitignore": true,
138
+ "unfixable": []
139
+ },
140
+ "description": "Global configuration options"
141
+ },
142
+ "per-file-ignores": {
143
+ "additionalProperties": {
144
+ "items": {
145
+ "type": "string"
146
+ },
147
+ "type": "array"
148
+ },
149
+ "default": {},
150
+ "description": "Per-file rule ignores: maps file patterns to lists of rules to ignore Example: { \"README.md\": [\"MD033\"], \"docs/**/*.md\": [\"MD013\"] }",
151
+ "type": "object"
151
152
  }
152
- }
153
+ },
154
+ "title": "Config",
155
+ "type": "object"
153
156
  }