rumdl 0.0.168__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 (469) hide show
  1. {rumdl-0.0.168 → rumdl-0.0.169}/CHANGELOG.md +86 -0
  2. {rumdl-0.0.168 → rumdl-0.0.169}/Cargo.lock +1 -1
  3. {rumdl-0.0.168 → rumdl-0.0.169}/Cargo.toml +1 -21
  4. {rumdl-0.0.168 → rumdl-0.0.169}/Makefile +3 -0
  5. {rumdl-0.0.168 → rumdl-0.0.169}/PKG-INFO +1 -1
  6. rumdl-0.0.169/examples/profile_quadratic.rs +75 -0
  7. {rumdl-0.0.168 → rumdl-0.0.169}/src/config.rs +55 -0
  8. {rumdl-0.0.168 → rumdl-0.0.169}/src/file_processor.rs +11 -2
  9. {rumdl-0.0.168 → rumdl-0.0.169}/src/filtered_lines.rs +3 -2
  10. {rumdl-0.0.168 → rumdl-0.0.169}/src/lib.rs +11 -32
  11. {rumdl-0.0.168 → rumdl-0.0.169}/src/lint_context.rs +656 -356
  12. {rumdl-0.0.168 → rumdl-0.0.169}/src/rule.rs +0 -5
  13. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md002_first_heading_h1.rs +1 -2
  14. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md006_start_bullets.rs +2 -4
  15. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md009_trailing_spaces.rs +2 -2
  16. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md010_no_hard_tabs.rs +3 -3
  17. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md011_no_reversed_links.rs +133 -26
  18. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md012_no_multiple_blanks.rs +2 -2
  19. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md013_line_length.rs +267 -30
  20. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md014_commands_show_output.rs +3 -3
  21. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md026_no_trailing_punctuation.rs +2 -2
  22. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md031_blanks_around_fences.rs +3 -3
  23. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md032_blanks_around_lists.rs +2 -2
  24. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md033_no_inline_html.rs +15 -0
  25. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md034_no_bare_urls.rs +5 -25
  26. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md035_hr_style.rs +3 -3
  27. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md037_spaces_around_emphasis.rs +4 -20
  28. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md038_no_space_in_code.rs +39 -0
  29. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md040_fenced_code_language.rs +70 -5
  30. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md041_first_line_heading.rs +4 -0
  31. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md044_proper_names.rs +1 -2
  32. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md046_code_block_style.rs +149 -82
  33. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md048_code_fence_style.rs +2 -2
  34. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md049_emphasis_style.rs +3 -20
  35. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md050_strong_style.rs +2 -2
  36. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md051_link_fragments.rs +52 -1
  37. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md055_table_pipe_style.rs +6 -6
  38. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md056_table_column_count.rs +4 -4
  39. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md057_existing_relative_links.rs +1 -2
  40. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md058_blanks_around_tables.rs +5 -6
  41. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/jinja_utils.rs +19 -0
  42. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocstrings_refs.rs +61 -1
  43. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/skip_context.rs +36 -0
  44. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/table_utils.rs +19 -3
  45. rumdl-0.0.169/tests/rules/md011_test.rs +196 -0
  46. rumdl-0.0.168/tests/rules/md011_test.rs +0 -56
  47. {rumdl-0.0.168 → rumdl-0.0.169}/.config/nextest.toml +0 -0
  48. {rumdl-0.0.168 → rumdl-0.0.169}/.mise.toml +0 -0
  49. {rumdl-0.0.168 → rumdl-0.0.169}/.pre-commit-config.yaml +0 -0
  50. {rumdl-0.0.168 → rumdl-0.0.169}/.rumdl.toml +0 -0
  51. {rumdl-0.0.168 → rumdl-0.0.169}/.rustfmt.toml +0 -0
  52. {rumdl-0.0.168 → rumdl-0.0.169}/CONTRIBUTING.md +0 -0
  53. {rumdl-0.0.168 → rumdl-0.0.169}/LICENSE +0 -0
  54. {rumdl-0.0.168 → rumdl-0.0.169}/MANIFEST.in +0 -0
  55. {rumdl-0.0.168 → rumdl-0.0.169}/README.md +0 -0
  56. {rumdl-0.0.168 → rumdl-0.0.169}/assets/logo.png +0 -0
  57. {rumdl-0.0.168 → rumdl-0.0.169}/benches/fix_performance.rs +0 -0
  58. {rumdl-0.0.168 → rumdl-0.0.169}/benches/range_performance.rs +0 -0
  59. {rumdl-0.0.168 → rumdl-0.0.169}/benches/range_utils_benchmark.rs +0 -0
  60. {rumdl-0.0.168 → rumdl-0.0.169}/benches/rule_performance.rs +0 -0
  61. {rumdl-0.0.168 → rumdl-0.0.169}/benches/simple_fix_bench.rs +0 -0
  62. {rumdl-0.0.168 → rumdl-0.0.169}/benchmark/bin/bench_lint_context.rs +0 -0
  63. {rumdl-0.0.168 → rumdl-0.0.169}/benchmark/bin/benchmark.rs +0 -0
  64. {rumdl-0.0.168 → rumdl-0.0.169}/benchmark/bin/benchmark_rule.rs +0 -0
  65. {rumdl-0.0.168 → rumdl-0.0.169}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  66. {rumdl-0.0.168 → rumdl-0.0.169}/benchmark/bin/measure_code_span_performance.rs +0 -0
  67. {rumdl-0.0.168 → rumdl-0.0.169}/cliff.toml +0 -0
  68. {rumdl-0.0.168 → rumdl-0.0.169}/docs/RULES.md +0 -0
  69. {rumdl-0.0.168 → rumdl-0.0.169}/docs/global-settings.md +0 -0
  70. {rumdl-0.0.168 → rumdl-0.0.169}/docs/inline-configuration.md +0 -0
  71. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md001.md +0 -0
  72. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md002.md +0 -0
  73. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md003.md +0 -0
  74. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md004.md +0 -0
  75. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md005.md +0 -0
  76. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md006.md +0 -0
  77. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md007.md +0 -0
  78. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md009.md +0 -0
  79. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md010.md +0 -0
  80. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md011.md +0 -0
  81. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md012.md +0 -0
  82. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md013.md +0 -0
  83. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md014.md +0 -0
  84. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md018.md +0 -0
  85. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md019.md +0 -0
  86. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md020.md +0 -0
  87. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md021.md +0 -0
  88. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md022.md +0 -0
  89. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md023.md +0 -0
  90. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md024.md +0 -0
  91. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md025.md +0 -0
  92. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md026.md +0 -0
  93. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md027.md +0 -0
  94. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md028.md +0 -0
  95. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md029.md +0 -0
  96. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md030.md +0 -0
  97. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md031.md +0 -0
  98. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md032.md +0 -0
  99. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md033.md +0 -0
  100. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md034.md +0 -0
  101. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md035.md +0 -0
  102. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md036.md +0 -0
  103. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md037.md +0 -0
  104. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md038.md +0 -0
  105. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md039.md +0 -0
  106. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md040.md +0 -0
  107. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md041.md +0 -0
  108. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md042.md +0 -0
  109. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md043.md +0 -0
  110. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md044.md +0 -0
  111. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md045.md +0 -0
  112. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md046.md +0 -0
  113. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md047.md +0 -0
  114. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md048.md +0 -0
  115. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md049.md +0 -0
  116. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md050.md +0 -0
  117. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md051.md +0 -0
  118. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md052.md +0 -0
  119. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md053.md +0 -0
  120. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md054.md +0 -0
  121. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md055.md +0 -0
  122. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md056.md +0 -0
  123. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md057.md +0 -0
  124. {rumdl-0.0.168 → rumdl-0.0.169}/docs/md058.md +0 -0
  125. {rumdl-0.0.168 → rumdl-0.0.169}/docs/vscode-extension.md +0 -0
  126. {rumdl-0.0.168 → rumdl-0.0.169}/pyproject.toml +0 -0
  127. {rumdl-0.0.168 → rumdl-0.0.169}/rumdl/__init__.py +0 -0
  128. {rumdl-0.0.168 → rumdl-0.0.169}/rumdl/__main__.py +0 -0
  129. {rumdl-0.0.168 → rumdl-0.0.169}/rumdl/py.typed +0 -0
  130. {rumdl-0.0.168 → rumdl-0.0.169}/rumdl.schema.json +0 -0
  131. {rumdl-0.0.168 → rumdl-0.0.169}/rumdl.toml.example +0 -0
  132. {rumdl-0.0.168 → rumdl-0.0.169}/rust-toolchain.toml +0 -0
  133. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/extract-changelog.sh +0 -0
  134. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/generate-downloads-table.sh +0 -0
  135. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/pre-release.sh +0 -0
  136. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/prepare-release.sh +0 -0
  137. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/setup-pre-commit.sh +0 -0
  138. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/update-pre-commit-docs.sh +0 -0
  139. {rumdl-0.0.168 → rumdl-0.0.169}/scripts/verify-release-ready.sh +0 -0
  140. {rumdl-0.0.168 → rumdl-0.0.169}/src/cache.rs +0 -0
  141. {rumdl-0.0.168 → rumdl-0.0.169}/src/exit_codes.rs +0 -0
  142. {rumdl-0.0.168 → rumdl-0.0.169}/src/fix_coordinator.rs +0 -0
  143. {rumdl-0.0.168 → rumdl-0.0.169}/src/formatter.rs +0 -0
  144. {rumdl-0.0.168 → rumdl-0.0.169}/src/inline_config.rs +0 -0
  145. {rumdl-0.0.168 → rumdl-0.0.169}/src/lsp/mod.rs +0 -0
  146. {rumdl-0.0.168 → rumdl-0.0.169}/src/lsp/server.rs +0 -0
  147. {rumdl-0.0.168 → rumdl-0.0.169}/src/lsp/types.rs +0 -0
  148. {rumdl-0.0.168 → rumdl-0.0.169}/src/main.rs +0 -0
  149. {rumdl-0.0.168 → rumdl-0.0.169}/src/markdownlint_config.rs +0 -0
  150. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/azure.rs +0 -0
  151. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/concise.rs +0 -0
  152. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/github.rs +0 -0
  153. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/gitlab.rs +0 -0
  154. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/grouped.rs +0 -0
  155. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/json.rs +0 -0
  156. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/json_lines.rs +0 -0
  157. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/junit.rs +0 -0
  158. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/mod.rs +0 -0
  159. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/pylint.rs +0 -0
  160. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/sarif.rs +0 -0
  161. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/formatters/text.rs +0 -0
  162. {rumdl-0.0.168 → rumdl-0.0.169}/src/output/mod.rs +0 -0
  163. {rumdl-0.0.168 → rumdl-0.0.169}/src/parallel.rs +0 -0
  164. {rumdl-0.0.168 → rumdl-0.0.169}/src/performance.rs +0 -0
  165. {rumdl-0.0.168 → rumdl-0.0.169}/src/profiling.rs +0 -0
  166. {rumdl-0.0.168 → rumdl-0.0.169}/src/rule_config.rs +0 -0
  167. {rumdl-0.0.168 → rumdl-0.0.169}/src/rule_config_serde.rs +0 -0
  168. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/blockquote_utils.rs +0 -0
  169. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/code_block_utils.rs +0 -0
  170. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/code_fence_utils.rs +0 -0
  171. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/emphasis_style.rs +0 -0
  172. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/front_matter_utils.rs +0 -0
  173. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/heading_utils.rs +0 -0
  174. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/list_utils.rs +0 -0
  175. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md001_heading_increment.rs +0 -0
  176. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  177. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md003_heading_style/md003_config.rs +0 -0
  178. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md003_heading_style.rs +0 -0
  179. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  180. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md004_unordered_list_style.rs +0 -0
  181. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md005_list_indent.rs +0 -0
  182. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  183. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md007_ul_indent.rs +0 -0
  184. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  185. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  186. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  187. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md013_line_length/md013_config.rs +0 -0
  188. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  189. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md018_no_missing_space_atx.rs +0 -0
  190. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  191. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  192. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  193. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  194. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md022_blanks_around_headings.rs +0 -0
  195. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md023_heading_start_left.rs +0 -0
  196. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  197. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md024_no_duplicate_heading.rs +0 -0
  198. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md025_single_title/md025_config.rs +0 -0
  199. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md025_single_title.rs +0 -0
  200. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  201. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  202. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  203. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  204. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md029_ordered_list_prefix.rs +0 -0
  205. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  206. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md030_list_marker_space.rs +0 -0
  207. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  208. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md035_hr_style/md035_config.rs +0 -0
  209. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  210. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  211. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md039_no_space_in_links.rs +0 -0
  212. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md042_no_empty_links.rs +0 -0
  213. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md043_required_headings.rs +0 -0
  214. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md044_proper_names/md044_config.rs +0 -0
  215. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  216. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md045_no_alt_text.rs +0 -0
  217. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  218. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md047_single_trailing_newline.rs +0 -0
  219. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  220. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  221. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md050_strong_style/md050_config.rs +0 -0
  222. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md052_reference_links_images.rs +0 -0
  223. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  224. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  225. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md054_link_image_style.rs +0 -0
  226. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  227. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  228. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/mod.rs +0 -0
  229. {rumdl-0.0.168 → rumdl-0.0.169}/src/rules/strong_style.rs +0 -0
  230. {rumdl-0.0.168 → rumdl-0.0.169}/src/stdin_processor.rs +0 -0
  231. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/anchor_styles/github.rs +0 -0
  232. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/anchor_styles/jekyll.rs +0 -0
  233. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/anchor_styles/kramdown.rs +0 -0
  234. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  235. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/anchor_styles/mod.rs +0 -0
  236. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/ast_utils.rs +0 -0
  237. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/code_block_utils.rs +0 -0
  238. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/document_structure.rs +0 -0
  239. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/early_returns.rs +0 -0
  240. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/element_cache.rs +0 -0
  241. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/emphasis_utils.rs +0 -0
  242. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/fix_utils.rs +0 -0
  243. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/header_id_utils.rs +0 -0
  244. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/kramdown_utils.rs +0 -0
  245. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/line_ending.rs +0 -0
  246. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/markdown_elements.rs +0 -0
  247. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_admonitions.rs +0 -0
  248. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_common.rs +0 -0
  249. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_critic.rs +0 -0
  250. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_footnotes.rs +0 -0
  251. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_patterns.rs +0 -0
  252. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_snippets.rs +0 -0
  253. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_tabs.rs +0 -0
  254. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mkdocs_test_utils.rs +0 -0
  255. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/mod.rs +0 -0
  256. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/range_utils.rs +0 -0
  257. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/regex_cache.rs +0 -0
  258. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/string_interner.rs +0 -0
  259. {rumdl-0.0.168 → rumdl-0.0.169}/src/utils/text_reflow.rs +0 -0
  260. {rumdl-0.0.168 → rumdl-0.0.169}/src/vscode.rs +0 -0
  261. {rumdl-0.0.168 → rumdl-0.0.169}/src/watch.rs +0 -0
  262. {rumdl-0.0.168 → rumdl-0.0.169}/tests/advanced_integration_tests.rs +0 -0
  263. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/additional_tests.rs +0 -0
  264. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/basic_tests.rs +0 -0
  265. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/comprehensive_tests.rs +0 -0
  266. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/extended_tests.rs +0 -0
  267. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/mod.rs +0 -0
  268. {rumdl-0.0.168 → rumdl-0.0.169}/tests/character_ranges/unicode_utils.rs +0 -0
  269. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_duplication_test.rs +0 -0
  270. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_explain_test.rs +0 -0
  271. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_flag_precedence_test.rs +0 -0
  272. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_integration_tests.rs +0 -0
  273. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_lsp_fix_consistency.rs +0 -0
  274. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cli_statistics_test.rs +0 -0
  275. {rumdl-0.0.168 → rumdl-0.0.169}/tests/code_block_blockquote_edge_cases.rs +0 -0
  276. {rumdl-0.0.168 → rumdl-0.0.169}/tests/common/cli_test_utils.rs +0 -0
  277. {rumdl-0.0.168 → rumdl-0.0.169}/tests/common/fixtures.rs +0 -0
  278. {rumdl-0.0.168 → rumdl-0.0.169}/tests/common/mod.rs +0 -0
  279. {rumdl-0.0.168 → rumdl-0.0.169}/tests/common/test_utils.rs +0 -0
  280. {rumdl-0.0.168 → rumdl-0.0.169}/tests/commonmark_compliance_tests.rs +0 -0
  281. {rumdl-0.0.168 → rumdl-0.0.169}/tests/comprehensive_integration_tests.rs +0 -0
  282. {rumdl-0.0.168 → rumdl-0.0.169}/tests/comprehensive_output_format_tests.rs +0 -0
  283. {rumdl-0.0.168 → rumdl-0.0.169}/tests/config_application_tests.rs +0 -0
  284. {rumdl-0.0.168 → rumdl-0.0.169}/tests/config_file_command_test.rs +0 -0
  285. {rumdl-0.0.168 → rumdl-0.0.169}/tests/config_tests.rs +0 -0
  286. {rumdl-0.0.168 → rumdl-0.0.169}/tests/config_upward_traversal_test.rs +0 -0
  287. {rumdl-0.0.168 → rumdl-0.0.169}/tests/configuration_inheritance_tests.rs +0 -0
  288. {rumdl-0.0.168 → rumdl-0.0.169}/tests/consistency_regression_tests.rs +0 -0
  289. {rumdl-0.0.168 → rumdl-0.0.169}/tests/crlf_line_endings_test.rs +0 -0
  290. {rumdl-0.0.168 → rumdl-0.0.169}/tests/cross_platform_compatibility_tests.rs +0 -0
  291. {rumdl-0.0.168 → rumdl-0.0.169}/tests/deeply_nested_lists_performance_test.rs +0 -0
  292. {rumdl-0.0.168 → rumdl-0.0.169}/tests/escaped_brackets_test.rs +0 -0
  293. {rumdl-0.0.168 → rumdl-0.0.169}/tests/exclude_with_explicit_paths_test.rs +0 -0
  294. {rumdl-0.0.168 → rumdl-0.0.169}/tests/final_confidence_assessment.rs +0 -0
  295. {rumdl-0.0.168 → rumdl-0.0.169}/tests/fix_counting_test.rs +0 -0
  296. {rumdl-0.0.168 → rumdl-0.0.169}/tests/fix_performance_baseline_test.rs +0 -0
  297. {rumdl-0.0.168 → rumdl-0.0.169}/tests/fixable_unfixable_config_test.rs +0 -0
  298. {rumdl-0.0.168 → rumdl-0.0.169}/tests/html_comments_test.rs +0 -0
  299. {rumdl-0.0.168 → rumdl-0.0.169}/tests/init_command_test.rs +0 -0
  300. {rumdl-0.0.168 → rumdl-0.0.169}/tests/init_tests.rs +0 -0
  301. {rumdl-0.0.168 → rumdl-0.0.169}/tests/inline_config_blocks_test.rs +0 -0
  302. {rumdl-0.0.168 → rumdl-0.0.169}/tests/inline_config_test.rs +0 -0
  303. {rumdl-0.0.168 → rumdl-0.0.169}/tests/integration_tests.rs +0 -0
  304. {rumdl-0.0.168 → rumdl-0.0.169}/tests/json_output_test.rs +0 -0
  305. {rumdl-0.0.168 → rumdl-0.0.169}/tests/kramdown_integration_test.rs +0 -0
  306. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lib.rs +0 -0
  307. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_editor_integration_tests.rs +0 -0
  308. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_formatting_tests.rs +0 -0
  309. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_initialization_options_test.rs +0 -0
  310. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_integration_tests.rs +0 -0
  311. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_memory_leak_tests.rs +0 -0
  312. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_mkdocs_flavor_test.rs +0 -0
  313. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_tests.rs +0 -0
  314. {rumdl-0.0.168 → rumdl-0.0.169}/tests/lsp_unopened_document_test.rs +0 -0
  315. {rumdl-0.0.168 → rumdl-0.0.169}/tests/malformed_markdown_stress_tests.rs +0 -0
  316. {rumdl-0.0.168 → rumdl-0.0.169}/tests/markdownlint_cli_integration.rs +0 -0
  317. {rumdl-0.0.168 → rumdl-0.0.169}/tests/markdownlint_config_test.rs +0 -0
  318. {rumdl-0.0.168 → rumdl-0.0.169}/tests/markdownlintignore_test.rs +0 -0
  319. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md009_md013_integration_test.rs +0 -0
  320. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md009_md013_order_test.rs +0 -0
  321. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md013_hard_breaks_test.rs +0 -0
  322. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md013_reflow_integration_test.rs +0 -0
  323. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md013_reflow_nested_lists_test.rs +0 -0
  324. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md032_edge_cases_test.rs +0 -0
  325. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md032_ordered_list_bug_test.rs +0 -0
  326. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md033_edge_cases_test.rs +0 -0
  327. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md037_xxxx_regression_test.rs +0 -0
  328. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md038_false_positive_test.rs +0 -0
  329. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md051_issue_39_regression_test.rs +0 -0
  330. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md051_readme_bug_test.rs +0 -0
  331. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md051_toc_bug_test.rs +0 -0
  332. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md052_literal_brackets_test.rs +0 -0
  333. {rumdl-0.0.168 → rumdl-0.0.169}/tests/md054_code_span_test.rs +0 -0
  334. {rumdl-0.0.168 → rumdl-0.0.169}/tests/mkdocs_anchor_edge_cases_test.rs +0 -0
  335. {rumdl-0.0.168 → rumdl-0.0.169}/tests/mkdocs_anchor_test.rs +0 -0
  336. {rumdl-0.0.168 → rumdl-0.0.169}/tests/nested_code_block_test.rs +0 -0
  337. {rumdl-0.0.168 → rumdl-0.0.169}/tests/output_format_integration_tests.rs +0 -0
  338. {rumdl-0.0.168 → rumdl-0.0.169}/tests/output_format_tests.rs +0 -0
  339. {rumdl-0.0.168 → rumdl-0.0.169}/tests/per_file_ignores_integration_test.rs +0 -0
  340. {rumdl-0.0.168 → rumdl-0.0.169}/tests/perf_check.rs +0 -0
  341. {rumdl-0.0.168 → rumdl-0.0.169}/tests/performance_validation_tests.rs +0 -0
  342. {rumdl-0.0.168 → rumdl-0.0.169}/tests/pyproject_config_tests.rs +0 -0
  343. {rumdl-0.0.168 → rumdl-0.0.169}/tests/real_world_repository_tests.rs +0 -0
  344. {rumdl-0.0.168 → rumdl-0.0.169}/tests/regression_prevention_tests.rs +0 -0
  345. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  346. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/heading_edge_cases_test.rs +0 -0
  347. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  348. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/link_edge_cases_test.rs +0 -0
  349. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/list_rules_integration_test.rs +0 -0
  350. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md001_test.rs +0 -0
  351. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md001_unicode_test.rs +0 -0
  352. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md002_test.rs +0 -0
  353. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md003_test.rs +0 -0
  354. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md004_test.rs +0 -0
  355. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md005_dynamic_indent_test.rs +0 -0
  356. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md005_test.rs +0 -0
  357. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md005_unicode_test.rs +0 -0
  358. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md006_test.rs +0 -0
  359. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md006_unicode_test.rs +0 -0
  360. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md007_test.rs +0 -0
  361. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md009_test.rs +0 -0
  362. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md010_test.rs +0 -0
  363. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md012_test.rs +0 -0
  364. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md013_test.rs +0 -0
  365. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md014_test.rs +0 -0
  366. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md018_test.rs +0 -0
  367. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md019_test.rs +0 -0
  368. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md020_test.rs +0 -0
  369. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md021_test.rs +0 -0
  370. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md022_test.rs +0 -0
  371. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md023_extended_test.rs +0 -0
  372. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md023_test.rs +0 -0
  373. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md024_test.rs +0 -0
  374. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md025_test.rs +0 -0
  375. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md026_kramdown_test.rs +0 -0
  376. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md026_test.rs +0 -0
  377. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md027_test.rs +0 -0
  378. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md028_md009_interaction_test.rs +0 -0
  379. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md028_test.rs +0 -0
  380. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_code_block_separation_test.rs +0 -0
  381. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_fix_test.rs +0 -0
  382. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_issue42_test.rs +0 -0
  383. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
  384. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_nested_list_continuation_test.rs +0 -0
  385. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  386. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_test.rs +0 -0
  387. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md029_unicode_test.rs +0 -0
  388. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md030_test.rs +0 -0
  389. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md031_kramdown_test.rs +0 -0
  390. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md031_test.rs +0 -0
  391. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md032_test.rs +0 -0
  392. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md033_blockquote_test.rs +0 -0
  393. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md033_extended_test.rs +0 -0
  394. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md033_kramdown_test.rs +0 -0
  395. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md033_test.rs +0 -0
  396. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md034_ipv6_test.rs +0 -0
  397. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md034_test.rs +0 -0
  398. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md035_test.rs +0 -0
  399. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md036_test.rs +0 -0
  400. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md037_kramdown_test.rs +0 -0
  401. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md037_test.rs +0 -0
  402. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md038_nested_backticks_test.rs +0 -0
  403. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md038_test.rs +0 -0
  404. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md039_test.rs +0 -0
  405. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md040_test.rs +0 -0
  406. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md041_test.rs +0 -0
  407. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md042_test.rs +0 -0
  408. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md043_test.rs +0 -0
  409. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md044_test.rs +0 -0
  410. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md045_test.rs +0 -0
  411. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md046_test.rs +0 -0
  412. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md047_test.rs +0 -0
  413. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md048_test.rs +0 -0
  414. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md049_test.rs +0 -0
  415. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md050_test.rs +0 -0
  416. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_comprehensive_test.rs +0 -0
  417. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  418. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_edge_cases_test.rs +0 -0
  419. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  420. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  421. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_property_based_test.rs +0 -0
  422. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_regression_prevention_test.rs +0 -0
  423. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_test.rs +0 -0
  424. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md051_unicode_security_test.rs +0 -0
  425. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md052_test.rs +0 -0
  426. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md053_additional_test.rs +0 -0
  427. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md053_proptest.rs +0 -0
  428. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md053_test.rs +0 -0
  429. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md054_test.rs +0 -0
  430. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md054_unicode_test.rs +0 -0
  431. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md055_test.rs +0 -0
  432. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md056_test.rs +0 -0
  433. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md057_test.rs +0 -0
  434. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md058_kramdown_test.rs +0 -0
  435. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/md058_test.rs +0 -0
  436. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/mkdocs_admonitions_test.rs +0 -0
  437. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
  438. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/mkdocs_extensions_test.rs +0 -0
  439. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/mkdocs_snippets_test.rs +0 -0
  440. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/mod.rs +0 -0
  441. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules/rule_interaction_test.rs +0 -0
  442. {rumdl-0.0.168 → rumdl-0.0.169}/tests/rules_mod_test.rs +0 -0
  443. {rumdl-0.0.168 → rumdl-0.0.169}/tests/schema_validation_test.rs +0 -0
  444. {rumdl-0.0.168 → rumdl-0.0.169}/tests/sentence_per_line_test.rs +0 -0
  445. {rumdl-0.0.168 → rumdl-0.0.169}/tests/skip_context_tests.rs +0 -0
  446. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_ast_code_block_issue.rs +0 -0
  447. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_gfm_vs_default_parsing.rs +0 -0
  448. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_lint_context_flow.rs +0 -0
  449. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_list_ast_structure.rs +0 -0
  450. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_multiline_ast.rs +0 -0
  451. {rumdl-0.0.168 → rumdl-0.0.169}/tests/test_underscore_edge_cases.rs +0 -0
  452. {rumdl-0.0.168 → rumdl-0.0.169}/tests/thread_safety_tests.rs +0 -0
  453. {rumdl-0.0.168 → rumdl-0.0.169}/tests/unfixable_rules_test.rs +0 -0
  454. {rumdl-0.0.168 → rumdl-0.0.169}/tests/unicode_edge_case_tests.rs +0 -0
  455. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utf8_boundary_tests.rs +0 -0
  456. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/blockquote_utils_test.rs +0 -0
  457. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/code_block_utils_extended_test.rs +0 -0
  458. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/code_block_utils_test.rs +0 -0
  459. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/core_utils_test.rs +0 -0
  460. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/front_matter_utils_test.rs +0 -0
  461. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/line_index_test.rs +0 -0
  462. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils/mod.rs +0 -0
  463. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils_markdown_edge_cases.rs +0 -0
  464. {rumdl-0.0.168 → rumdl-0.0.169}/tests/utils_tests.rs +0 -0
  465. {rumdl-0.0.168 → rumdl-0.0.169}/tests/vscode_extension_fixes.rs +0 -0
  466. {rumdl-0.0.168 → rumdl-0.0.169}/tests/vscode_test.rs +0 -0
  467. {rumdl-0.0.168 → rumdl-0.0.169}/tests/vscode_tests.rs +0 -0
  468. {rumdl-0.0.168 → rumdl-0.0.169}/tests/vscode_windows_comprehensive_test.rs +0 -0
  469. {rumdl-0.0.168 → rumdl-0.0.169}/tests/vscode_windows_test.rs +0 -0
@@ -7,6 +7,92 @@ 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
+
10
96
  ## [0.0.168] - 2025-10-28
11
97
 
12
98
  ### Added
@@ -1983,7 +1983,7 @@ dependencies = [
1983
1983
 
1984
1984
  [[package]]
1985
1985
  name = "rumdl"
1986
- version = "0.0.168"
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.168"
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.168
3
+ Version: 0.0.169
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -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
+ }
@@ -27,6 +27,12 @@ pub enum MarkdownFlavor {
27
27
  /// MkDocs flavor with auto-reference support
28
28
  #[serde(rename = "mkdocs")]
29
29
  MkDocs,
30
+ /// MDX flavor with JSX and ESM support (.mdx files)
31
+ #[serde(rename = "mdx")]
32
+ MDX,
33
+ /// Quarto/RMarkdown flavor for scientific publishing (.qmd, .Rmd files)
34
+ #[serde(rename = "quarto")]
35
+ Quarto,
30
36
  // Future flavors can be added here when they have actual implementation differences
31
37
  // Planned: GFM (GitHub Flavored Markdown) - for GitHub-specific features like tables, strikethrough
32
38
  // Planned: CommonMark - for strict CommonMark compliance
@@ -37,6 +43,8 @@ impl fmt::Display for MarkdownFlavor {
37
43
  match self {
38
44
  MarkdownFlavor::Standard => write!(f, "standard"),
39
45
  MarkdownFlavor::MkDocs => write!(f, "mkdocs"),
46
+ MarkdownFlavor::MDX => write!(f, "mdx"),
47
+ MarkdownFlavor::Quarto => write!(f, "quarto"),
40
48
  }
41
49
  }
42
50
  }
@@ -48,6 +56,8 @@ impl FromStr for MarkdownFlavor {
48
56
  match s.to_lowercase().as_str() {
49
57
  "standard" | "" | "none" => Ok(MarkdownFlavor::Standard),
50
58
  "mkdocs" => Ok(MarkdownFlavor::MkDocs),
59
+ "mdx" => Ok(MarkdownFlavor::MDX),
60
+ "quarto" | "qmd" | "rmd" | "rmarkdown" => Ok(MarkdownFlavor::Quarto),
51
61
  // Accept but warn about unimplemented flavors
52
62
  "gfm" | "github" => {
53
63
  eprintln!("Warning: GFM flavor not yet implemented, using standard");
@@ -62,6 +72,51 @@ impl FromStr for MarkdownFlavor {
62
72
  }
63
73
  }
64
74
 
75
+ impl MarkdownFlavor {
76
+ /// Detect flavor from file extension
77
+ pub fn from_extension(ext: &str) -> Self {
78
+ match ext.to_lowercase().as_str() {
79
+ "mdx" => Self::MDX,
80
+ "qmd" => Self::Quarto,
81
+ "rmd" => Self::Quarto,
82
+ _ => Self::Standard,
83
+ }
84
+ }
85
+
86
+ /// Detect flavor from file path
87
+ pub fn from_path(path: &std::path::Path) -> Self {
88
+ path.extension()
89
+ .and_then(|e| e.to_str())
90
+ .map(Self::from_extension)
91
+ .unwrap_or(Self::Standard)
92
+ }
93
+
94
+ /// Check if this flavor supports ESM imports/exports (MDX-specific)
95
+ pub fn supports_esm_blocks(self) -> bool {
96
+ matches!(self, Self::MDX)
97
+ }
98
+
99
+ /// Check if this flavor supports JSX components (MDX-specific)
100
+ pub fn supports_jsx(self) -> bool {
101
+ matches!(self, Self::MDX)
102
+ }
103
+
104
+ /// Check if this flavor supports auto-references (MkDocs-specific)
105
+ pub fn supports_auto_references(self) -> bool {
106
+ matches!(self, Self::MkDocs)
107
+ }
108
+
109
+ /// Get a human-readable name for this flavor
110
+ pub fn name(self) -> &'static str {
111
+ match self {
112
+ Self::Standard => "Standard",
113
+ Self::MkDocs => "MkDocs",
114
+ Self::MDX => "MDX",
115
+ Self::Quarto => "Quarto",
116
+ }
117
+ }
118
+ }
119
+
65
120
  lazy_static! {
66
121
  // Map common markdownlint config keys to rumdl rule names
67
122
  static ref MARKDOWNLINT_KEY_MAP: HashMap<&'static str, &'static str> = {
@@ -717,8 +717,17 @@ pub fn process_file_inner(
717
717
  rules.to_vec()
718
718
  };
719
719
 
720
- // Use the standard lint function with the configured flavor
721
- let warnings_result = rumdl_lib::lint(&content, &filtered_rules, verbose, config.markdown_flavor());
720
+ // Determine flavor: use file extension if config uses Standard, otherwise use config flavor
721
+ let flavor = if config.markdown_flavor() == rumdl_lib::config::MarkdownFlavor::Standard {
722
+ // Auto-detect from file extension for .mdx, .qmd, .Rmd files
723
+ rumdl_lib::config::MarkdownFlavor::from_path(Path::new(file_path))
724
+ } else {
725
+ // Use explicitly configured flavor
726
+ config.markdown_flavor()
727
+ };
728
+
729
+ // Use the standard lint function with the determined flavor
730
+ let warnings_result = rumdl_lib::lint(&content, &filtered_rules, verbose, flavor);
722
731
 
723
732
  // Clear the environment variable after processing
724
733
  unsafe {
@@ -131,6 +131,7 @@ pub struct FilteredLinesIter<'a> {
131
131
  ctx: &'a LintContext<'a>,
132
132
  config: LineFilterConfig,
133
133
  current_index: usize,
134
+ content_lines: Vec<&'a str>,
134
135
  }
135
136
 
136
137
  impl<'a> FilteredLinesIter<'a> {
@@ -140,6 +141,7 @@ impl<'a> FilteredLinesIter<'a> {
140
141
  ctx,
141
142
  config,
142
143
  current_index: 0,
144
+ content_lines: ctx.content.lines().collect(),
143
145
  }
144
146
  }
145
147
  }
@@ -149,7 +151,6 @@ impl<'a> Iterator for FilteredLinesIter<'a> {
149
151
 
150
152
  fn next(&mut self) -> Option<Self::Item> {
151
153
  let lines = &self.ctx.lines;
152
- let content_lines: Vec<&str> = self.ctx.content.lines().collect();
153
154
 
154
155
  while self.current_index < lines.len() {
155
156
  let idx = self.current_index;
@@ -161,7 +162,7 @@ impl<'a> Iterator for FilteredLinesIter<'a> {
161
162
  }
162
163
 
163
164
  // Get the actual line content from the document
164
- let line_content = content_lines.get(idx).copied().unwrap_or("");
165
+ let line_content = self.content_lines.get(idx).copied().unwrap_or("");
165
166
 
166
167
  // Return the filtered line with 1-indexed line number
167
168
  return Some(FilteredLine {
@@ -149,35 +149,15 @@ pub fn lint(
149
149
  let _total_rules = rules.len();
150
150
  let _applicable_count = applicable_rules.len();
151
151
 
152
- // Parse AST once for rules that can benefit from it
153
- let ast_rules_count = applicable_rules.iter().filter(|rule| rule.uses_ast()).count();
154
- let ast = if ast_rules_count > 0 {
155
- Some(crate::utils::ast_utils::get_cached_ast(content))
156
- } else {
157
- None
158
- };
159
-
160
- // Parse LintContext once (migration step) with the provided flavor
152
+ // Parse LintContext once with the provided flavor
161
153
  let lint_ctx = crate::lint_context::LintContext::new(content, flavor);
162
154
 
155
+ let profile_rules = std::env::var("RUMDL_PROFILE_RULES").is_ok();
156
+
163
157
  for rule in applicable_rules {
164
158
  let _rule_start = Instant::now();
165
159
 
166
- // Try optimized paths in order of preference
167
- let result = if rule.uses_ast() {
168
- if let Some(ref ast_ref) = ast {
169
- // 1. AST-based path
170
- rule.as_maybe_ast()
171
- .and_then(|ext| ext.check_with_ast_opt(&lint_ctx, ast_ref))
172
- .unwrap_or_else(|| rule.check_with_ast(&lint_ctx, ast_ref))
173
- } else {
174
- // Fallback to regular check if no AST
175
- rule.check(&lint_ctx)
176
- }
177
- } else {
178
- // 2. Regular check path
179
- rule.check(&lint_ctx)
180
- };
160
+ let result = rule.check(&lint_ctx);
181
161
 
182
162
  match result {
183
163
  Ok(rule_warnings) => {
@@ -209,12 +189,14 @@ pub fn lint(
209
189
  }
210
190
  }
211
191
 
192
+ let rule_duration = _rule_start.elapsed();
193
+ if profile_rules {
194
+ eprintln!("[RULE] {:6} {:?}", rule.name(), rule_duration);
195
+ }
196
+
212
197
  #[cfg(not(test))]
213
- if _verbose {
214
- let rule_duration = _rule_start.elapsed();
215
- if rule_duration.as_millis() > 500 {
216
- log::debug!("Rule {} took {:?}", rule.name(), rule_duration);
217
- }
198
+ if _verbose && rule_duration.as_millis() > 500 {
199
+ log::debug!("Rule {} took {:?}", rule.name(), rule_duration);
218
200
  }
219
201
  }
220
202
 
@@ -224,9 +206,6 @@ pub fn lint(
224
206
  if skipped_rules > 0 {
225
207
  log::debug!("Skipped {skipped_rules} of {_total_rules} rules based on content analysis");
226
208
  }
227
- if ast.is_some() {
228
- log::debug!("Used shared AST for {ast_rules_count} rules");
229
- }
230
209
  }
231
210
 
232
211
  Ok(warnings)