rumdl 0.0.135__tar.gz → 0.0.136__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 (427) hide show
  1. {rumdl-0.0.135 → rumdl-0.0.136}/CHANGELOG.md +4 -1
  2. {rumdl-0.0.135 → rumdl-0.0.136}/Cargo.lock +1 -1
  3. {rumdl-0.0.135 → rumdl-0.0.136}/Cargo.toml +1 -1
  4. {rumdl-0.0.135 → rumdl-0.0.136}/PKG-INFO +1 -1
  5. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md009_trailing_spaces.rs +85 -12
  6. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md013_line_length.rs +83 -47
  7. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md034_no_bare_urls.rs +5 -2
  8. {rumdl-0.0.135 → rumdl-0.0.136}/tests/comprehensive_output_format_tests.rs +3 -5
  9. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md009_test.rs +15 -5
  10. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md013_test.rs +4 -2
  11. {rumdl-0.0.135 → rumdl-0.0.136}/.config/nextest.toml +0 -0
  12. {rumdl-0.0.135 → rumdl-0.0.136}/.mise.toml +0 -0
  13. {rumdl-0.0.135 → rumdl-0.0.136}/.pre-commit-config.yaml +0 -0
  14. {rumdl-0.0.135 → rumdl-0.0.136}/.rumdl.toml +0 -0
  15. {rumdl-0.0.135 → rumdl-0.0.136}/.rustfmt.toml +0 -0
  16. {rumdl-0.0.135 → rumdl-0.0.136}/LICENSE +0 -0
  17. {rumdl-0.0.135 → rumdl-0.0.136}/MANIFEST.in +0 -0
  18. {rumdl-0.0.135 → rumdl-0.0.136}/Makefile +0 -0
  19. {rumdl-0.0.135 → rumdl-0.0.136}/README.md +0 -0
  20. {rumdl-0.0.135 → rumdl-0.0.136}/assets/logo.png +0 -0
  21. {rumdl-0.0.135 → rumdl-0.0.136}/benches/fix_performance.rs +0 -0
  22. {rumdl-0.0.135 → rumdl-0.0.136}/benches/range_performance.rs +0 -0
  23. {rumdl-0.0.135 → rumdl-0.0.136}/benches/range_utils_benchmark.rs +0 -0
  24. {rumdl-0.0.135 → rumdl-0.0.136}/benches/rule_performance.rs +0 -0
  25. {rumdl-0.0.135 → rumdl-0.0.136}/benches/simple_fix_bench.rs +0 -0
  26. {rumdl-0.0.135 → rumdl-0.0.136}/benchmark/bin/bench_lint_context.rs +0 -0
  27. {rumdl-0.0.135 → rumdl-0.0.136}/benchmark/bin/benchmark.rs +0 -0
  28. {rumdl-0.0.135 → rumdl-0.0.136}/benchmark/bin/benchmark_rule.rs +0 -0
  29. {rumdl-0.0.135 → rumdl-0.0.136}/benchmark/bin/file_parallel_benchmark.rs +0 -0
  30. {rumdl-0.0.135 → rumdl-0.0.136}/benchmark/bin/measure_code_span_performance.rs +0 -0
  31. {rumdl-0.0.135 → rumdl-0.0.136}/docs/RULES.md +0 -0
  32. {rumdl-0.0.135 → rumdl-0.0.136}/docs/global-settings.md +0 -0
  33. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md001.md +0 -0
  34. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md002.md +0 -0
  35. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md003.md +0 -0
  36. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md004.md +0 -0
  37. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md005.md +0 -0
  38. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md006.md +0 -0
  39. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md007.md +0 -0
  40. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md009.md +0 -0
  41. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md010.md +0 -0
  42. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md011.md +0 -0
  43. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md012.md +0 -0
  44. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md013.md +0 -0
  45. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md014.md +0 -0
  46. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md018.md +0 -0
  47. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md019.md +0 -0
  48. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md020.md +0 -0
  49. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md021.md +0 -0
  50. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md022.md +0 -0
  51. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md023.md +0 -0
  52. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md024.md +0 -0
  53. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md025.md +0 -0
  54. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md026.md +0 -0
  55. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md027.md +0 -0
  56. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md028.md +0 -0
  57. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md029.md +0 -0
  58. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md030.md +0 -0
  59. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md031.md +0 -0
  60. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md032.md +0 -0
  61. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md033.md +0 -0
  62. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md034.md +0 -0
  63. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md035.md +0 -0
  64. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md036.md +0 -0
  65. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md037.md +0 -0
  66. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md038.md +0 -0
  67. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md039.md +0 -0
  68. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md040.md +0 -0
  69. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md041.md +0 -0
  70. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md042.md +0 -0
  71. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md043.md +0 -0
  72. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md044.md +0 -0
  73. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md045.md +0 -0
  74. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md046.md +0 -0
  75. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md047.md +0 -0
  76. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md048.md +0 -0
  77. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md049.md +0 -0
  78. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md050.md +0 -0
  79. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md051.md +0 -0
  80. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md052.md +0 -0
  81. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md053.md +0 -0
  82. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md054.md +0 -0
  83. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md055.md +0 -0
  84. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md056.md +0 -0
  85. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md057.md +0 -0
  86. {rumdl-0.0.135 → rumdl-0.0.136}/docs/md058.md +0 -0
  87. {rumdl-0.0.135 → rumdl-0.0.136}/docs/vscode-extension.md +0 -0
  88. {rumdl-0.0.135 → rumdl-0.0.136}/parity_check.py +0 -0
  89. {rumdl-0.0.135 → rumdl-0.0.136}/pyproject.toml +0 -0
  90. {rumdl-0.0.135 → rumdl-0.0.136}/python/MANIFEST.in +0 -0
  91. {rumdl-0.0.135 → rumdl-0.0.136}/python/PYTHON-README.md +0 -0
  92. {rumdl-0.0.135 → rumdl-0.0.136}/python/rumdl/__init__.py +0 -0
  93. {rumdl-0.0.135 → rumdl-0.0.136}/python/rumdl/__main__.py +0 -0
  94. {rumdl-0.0.135 → rumdl-0.0.136}/python/rumdl/py.typed +0 -0
  95. {rumdl-0.0.135 → rumdl-0.0.136}/rumdl.toml.example +0 -0
  96. {rumdl-0.0.135 → rumdl-0.0.136}/rust-toolchain.toml +0 -0
  97. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/extract-changelog.sh +0 -0
  98. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/generate-downloads-table.sh +0 -0
  99. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/pre-release.sh +0 -0
  100. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/prepare-release.sh +0 -0
  101. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/setup-pre-commit.sh +0 -0
  102. {rumdl-0.0.135 → rumdl-0.0.136}/scripts/update-pre-commit-docs.sh +0 -0
  103. {rumdl-0.0.135 → rumdl-0.0.136}/src/config.rs +0 -0
  104. {rumdl-0.0.135 → rumdl-0.0.136}/src/exit_codes.rs +0 -0
  105. {rumdl-0.0.135 → rumdl-0.0.136}/src/inline_config.rs +0 -0
  106. {rumdl-0.0.135 → rumdl-0.0.136}/src/lib.rs +0 -0
  107. {rumdl-0.0.135 → rumdl-0.0.136}/src/lint_context.rs +0 -0
  108. {rumdl-0.0.135 → rumdl-0.0.136}/src/lsp/mod.rs +0 -0
  109. {rumdl-0.0.135 → rumdl-0.0.136}/src/lsp/server.rs +0 -0
  110. {rumdl-0.0.135 → rumdl-0.0.136}/src/lsp/types.rs +0 -0
  111. {rumdl-0.0.135 → rumdl-0.0.136}/src/main.rs +0 -0
  112. {rumdl-0.0.135 → rumdl-0.0.136}/src/markdownlint_config.rs +0 -0
  113. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/azure.rs +0 -0
  114. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/concise.rs +0 -0
  115. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/github.rs +0 -0
  116. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/gitlab.rs +0 -0
  117. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/grouped.rs +0 -0
  118. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/json.rs +0 -0
  119. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/json_lines.rs +0 -0
  120. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/junit.rs +0 -0
  121. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/mod.rs +0 -0
  122. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/pylint.rs +0 -0
  123. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/sarif.rs +0 -0
  124. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/formatters/text.rs +0 -0
  125. {rumdl-0.0.135 → rumdl-0.0.136}/src/output/mod.rs +0 -0
  126. {rumdl-0.0.135 → rumdl-0.0.136}/src/parallel.rs +0 -0
  127. {rumdl-0.0.135 → rumdl-0.0.136}/src/performance.rs +0 -0
  128. {rumdl-0.0.135 → rumdl-0.0.136}/src/profiling.rs +0 -0
  129. {rumdl-0.0.135 → rumdl-0.0.136}/src/python.rs +0 -0
  130. {rumdl-0.0.135 → rumdl-0.0.136}/src/rule.rs +0 -0
  131. {rumdl-0.0.135 → rumdl-0.0.136}/src/rule_config.rs +0 -0
  132. {rumdl-0.0.135 → rumdl-0.0.136}/src/rule_config_serde.rs +0 -0
  133. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/blockquote_utils.rs +0 -0
  134. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/code_block_utils.rs +0 -0
  135. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/code_fence_utils.rs +0 -0
  136. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/emphasis_style.rs +0 -0
  137. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/front_matter_utils.rs +0 -0
  138. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/heading_utils.rs +0 -0
  139. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/list_utils.rs +0 -0
  140. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md001_heading_increment.rs +0 -0
  141. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  142. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md002_first_heading_h1.rs +0 -0
  143. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md003_heading_style/md003_config.rs +0 -0
  144. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md003_heading_style.rs +0 -0
  145. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  146. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md004_unordered_list_style.rs +0 -0
  147. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md005_list_indent.rs +0 -0
  148. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md006_start_bullets.rs +0 -0
  149. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  150. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md007_ul_indent.rs +0 -0
  151. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  152. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  153. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md010_no_hard_tabs.rs +0 -0
  154. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md011_no_reversed_links.rs +0 -0
  155. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  156. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md012_no_multiple_blanks.rs +0 -0
  157. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md013_line_length/md013_config.rs +0 -0
  158. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  159. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md014_commands_show_output.rs +0 -0
  160. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md018_no_missing_space_atx.rs +0 -0
  161. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  162. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  163. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  164. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  165. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md022_blanks_around_headings.rs +0 -0
  166. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md023_heading_start_left.rs +0 -0
  167. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  168. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md024_no_duplicate_heading.rs +0 -0
  169. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md025_single_title/md025_config.rs +0 -0
  170. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md025_single_title.rs +0 -0
  171. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  172. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  173. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  174. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  175. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
  176. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md029_ordered_list_prefix.rs +0 -0
  177. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  178. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md030_list_marker_space.rs +0 -0
  179. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md031_blanks_around_fences.rs +0 -0
  180. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md032_blanks_around_lists.rs +0 -0
  181. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  182. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md033_no_inline_html.rs +0 -0
  183. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md035_hr_style/md035_config.rs +0 -0
  184. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md035_hr_style.rs +0 -0
  185. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  186. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  187. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  188. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md038_no_space_in_code.rs +0 -0
  189. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md039_no_space_in_links.rs +0 -0
  190. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md040_fenced_code_language.rs +0 -0
  191. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md041_first_line_heading.rs +0 -0
  192. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md042_no_empty_links.rs +0 -0
  193. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md043_required_headings.rs +0 -0
  194. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md044_proper_names/md044_config.rs +0 -0
  195. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md044_proper_names.rs +0 -0
  196. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
  197. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md045_no_alt_text.rs +0 -0
  198. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  199. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md046_code_block_style.rs +0 -0
  200. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md047_single_trailing_newline.rs +0 -0
  201. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  202. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md048_code_fence_style.rs +0 -0
  203. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  204. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md049_emphasis_style.rs +0 -0
  205. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md050_strong_style/md050_config.rs +0 -0
  206. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md050_strong_style.rs +0 -0
  207. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md051_link_fragments.rs +0 -0
  208. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md052_reference_links_images.rs +0 -0
  209. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  210. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  211. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md054_link_image_style.rs +0 -0
  212. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  213. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md055_table_pipe_style.rs +0 -0
  214. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md056_table_column_count.rs +0 -0
  215. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  216. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md057_existing_relative_links.rs +0 -0
  217. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/md058_blanks_around_tables.rs +0 -0
  218. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/mod.rs +0 -0
  219. {rumdl-0.0.135 → rumdl-0.0.136}/src/rules/strong_style.rs +0 -0
  220. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/anchor_styles/github.rs +0 -0
  221. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/anchor_styles/jekyll.rs +0 -0
  222. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/anchor_styles/kramdown.rs +0 -0
  223. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
  224. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/anchor_styles/mod.rs +0 -0
  225. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/ast_utils.rs +0 -0
  226. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/code_block_utils.rs +0 -0
  227. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/document_structure.rs +0 -0
  228. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/early_returns.rs +0 -0
  229. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/element_cache.rs +0 -0
  230. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/emphasis_utils.rs +0 -0
  231. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/fix_utils.rs +0 -0
  232. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/header_id_utils.rs +0 -0
  233. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/kramdown_utils.rs +0 -0
  234. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/line_ending.rs +0 -0
  235. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/markdown_elements.rs +0 -0
  236. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_admonitions.rs +0 -0
  237. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_common.rs +0 -0
  238. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_critic.rs +0 -0
  239. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_footnotes.rs +0 -0
  240. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_patterns.rs +0 -0
  241. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_snippets.rs +0 -0
  242. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_tabs.rs +0 -0
  243. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocs_test_utils.rs +0 -0
  244. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mkdocstrings_refs.rs +0 -0
  245. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/mod.rs +0 -0
  246. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/range_utils.rs +0 -0
  247. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/regex_cache.rs +0 -0
  248. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/skip_context.rs +0 -0
  249. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/string_interner.rs +0 -0
  250. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/table_utils.rs +0 -0
  251. {rumdl-0.0.135 → rumdl-0.0.136}/src/utils/text_reflow.rs +0 -0
  252. {rumdl-0.0.135 → rumdl-0.0.136}/src/vscode.rs +0 -0
  253. {rumdl-0.0.135 → rumdl-0.0.136}/tests/advanced_integration_tests.rs +0 -0
  254. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/additional_tests.rs +0 -0
  255. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/basic_tests.rs +0 -0
  256. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/comprehensive_tests.rs +0 -0
  257. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/extended_tests.rs +0 -0
  258. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/mod.rs +0 -0
  259. {rumdl-0.0.135 → rumdl-0.0.136}/tests/character_ranges/unicode_utils.rs +0 -0
  260. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_duplication_test.rs +0 -0
  261. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_explain_test.rs +0 -0
  262. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_flag_precedence_test.rs +0 -0
  263. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_integration_tests.rs +0 -0
  264. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_lsp_fix_consistency.rs +0 -0
  265. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cli_statistics_test.rs +0 -0
  266. {rumdl-0.0.135 → rumdl-0.0.136}/tests/common/cli_test_utils.rs +0 -0
  267. {rumdl-0.0.135 → rumdl-0.0.136}/tests/common/fixtures.rs +0 -0
  268. {rumdl-0.0.135 → rumdl-0.0.136}/tests/common/mod.rs +0 -0
  269. {rumdl-0.0.135 → rumdl-0.0.136}/tests/common/test_utils.rs +0 -0
  270. {rumdl-0.0.135 → rumdl-0.0.136}/tests/commonmark_compliance_tests.rs +0 -0
  271. {rumdl-0.0.135 → rumdl-0.0.136}/tests/comprehensive_integration_tests.rs +0 -0
  272. {rumdl-0.0.135 → rumdl-0.0.136}/tests/config_application_tests.rs +0 -0
  273. {rumdl-0.0.135 → rumdl-0.0.136}/tests/config_file_command_test.rs +0 -0
  274. {rumdl-0.0.135 → rumdl-0.0.136}/tests/config_tests.rs +0 -0
  275. {rumdl-0.0.135 → rumdl-0.0.136}/tests/config_upward_traversal_test.rs +0 -0
  276. {rumdl-0.0.135 → rumdl-0.0.136}/tests/configuration_inheritance_tests.rs +0 -0
  277. {rumdl-0.0.135 → rumdl-0.0.136}/tests/consistency_regression_tests.rs +0 -0
  278. {rumdl-0.0.135 → rumdl-0.0.136}/tests/cross_platform_compatibility_tests.rs +0 -0
  279. {rumdl-0.0.135 → rumdl-0.0.136}/tests/deeply_nested_lists_performance_test.rs +0 -0
  280. {rumdl-0.0.135 → rumdl-0.0.136}/tests/escaped_brackets_test.rs +0 -0
  281. {rumdl-0.0.135 → rumdl-0.0.136}/tests/final_confidence_assessment.rs +0 -0
  282. {rumdl-0.0.135 → rumdl-0.0.136}/tests/fixable_unfixable_config_test.rs +0 -0
  283. {rumdl-0.0.135 → rumdl-0.0.136}/tests/init_command_test.rs +0 -0
  284. {rumdl-0.0.135 → rumdl-0.0.136}/tests/init_tests.rs +0 -0
  285. {rumdl-0.0.135 → rumdl-0.0.136}/tests/inline_config_blocks_test.rs +0 -0
  286. {rumdl-0.0.135 → rumdl-0.0.136}/tests/inline_config_test.rs +0 -0
  287. {rumdl-0.0.135 → rumdl-0.0.136}/tests/integration_tests.rs +0 -0
  288. {rumdl-0.0.135 → rumdl-0.0.136}/tests/json_output_test.rs +0 -0
  289. {rumdl-0.0.135 → rumdl-0.0.136}/tests/kramdown_integration_test.rs +0 -0
  290. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lib.rs +0 -0
  291. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_editor_integration_tests.rs +0 -0
  292. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_formatting_tests.rs +0 -0
  293. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_initialization_options_test.rs +0 -0
  294. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_integration_tests.rs +0 -0
  295. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_memory_leak_tests.rs +0 -0
  296. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_mkdocs_flavor_test.rs +0 -0
  297. {rumdl-0.0.135 → rumdl-0.0.136}/tests/lsp_tests.rs +0 -0
  298. {rumdl-0.0.135 → rumdl-0.0.136}/tests/malformed_markdown_stress_tests.rs +0 -0
  299. {rumdl-0.0.135 → rumdl-0.0.136}/tests/markdownlint_cli_integration.rs +0 -0
  300. {rumdl-0.0.135 → rumdl-0.0.136}/tests/markdownlint_config_test.rs +0 -0
  301. {rumdl-0.0.135 → rumdl-0.0.136}/tests/markdownlintignore_test.rs +0 -0
  302. {rumdl-0.0.135 → rumdl-0.0.136}/tests/md013_reflow_integration_test.rs +0 -0
  303. {rumdl-0.0.135 → rumdl-0.0.136}/tests/md037_xxxx_regression_test.rs +0 -0
  304. {rumdl-0.0.135 → rumdl-0.0.136}/tests/md051_issue_39_regression_test.rs +0 -0
  305. {rumdl-0.0.135 → rumdl-0.0.136}/tests/nested_code_block_test.rs +0 -0
  306. {rumdl-0.0.135 → rumdl-0.0.136}/tests/output_format_integration_tests.rs +0 -0
  307. {rumdl-0.0.135 → rumdl-0.0.136}/tests/output_format_tests.rs +0 -0
  308. {rumdl-0.0.135 → rumdl-0.0.136}/tests/perf_check.rs +0 -0
  309. {rumdl-0.0.135 → rumdl-0.0.136}/tests/performance_validation_tests.rs +0 -0
  310. {rumdl-0.0.135 → rumdl-0.0.136}/tests/pyproject_config_tests.rs +0 -0
  311. {rumdl-0.0.135 → rumdl-0.0.136}/tests/python_bindings_test.rs +0 -0
  312. {rumdl-0.0.135 → rumdl-0.0.136}/tests/real_world_repository_tests.rs +0 -0
  313. {rumdl-0.0.135 → rumdl-0.0.136}/tests/regression_prevention_tests.rs +0 -0
  314. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/emphasis_edge_cases_test.rs +0 -0
  315. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/heading_edge_cases_test.rs +0 -0
  316. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/inline_content_edge_cases_test.rs +0 -0
  317. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/link_edge_cases_test.rs +0 -0
  318. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/list_rules_integration_test.rs +0 -0
  319. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md001_test.rs +0 -0
  320. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md001_unicode_test.rs +0 -0
  321. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md002_test.rs +0 -0
  322. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md003_test.rs +0 -0
  323. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md004_test.rs +0 -0
  324. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md005_dynamic_indent_test.rs +0 -0
  325. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md005_test.rs +0 -0
  326. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md005_unicode_test.rs +0 -0
  327. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md006_test.rs +0 -0
  328. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md006_unicode_test.rs +0 -0
  329. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md007_test.rs +0 -0
  330. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md010_test.rs +0 -0
  331. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md011_test.rs +0 -0
  332. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md012_test.rs +0 -0
  333. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md014_test.rs +0 -0
  334. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md018_test.rs +0 -0
  335. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md019_test.rs +0 -0
  336. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md020_test.rs +0 -0
  337. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md021_test.rs +0 -0
  338. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md022_test.rs +0 -0
  339. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md023_extended_test.rs +0 -0
  340. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md023_test.rs +0 -0
  341. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md024_test.rs +0 -0
  342. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md025_test.rs +0 -0
  343. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md026_kramdown_test.rs +0 -0
  344. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md026_test.rs +0 -0
  345. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md027_test.rs +0 -0
  346. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md028_md009_interaction_test.rs +0 -0
  347. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md028_test.rs +0 -0
  348. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_code_block_separation_test.rs +0 -0
  349. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_fix_test.rs +0 -0
  350. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_issue42_test.rs +0 -0
  351. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
  352. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
  353. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_test.rs +0 -0
  354. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md029_unicode_test.rs +0 -0
  355. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md030_test.rs +0 -0
  356. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md031_kramdown_test.rs +0 -0
  357. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md031_test.rs +0 -0
  358. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md032_test.rs +0 -0
  359. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md033_extended_test.rs +0 -0
  360. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md033_kramdown_test.rs +0 -0
  361. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md033_test.rs +0 -0
  362. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md034_ipv6_test.rs +0 -0
  363. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md034_test.rs +0 -0
  364. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md035_test.rs +0 -0
  365. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md036_test.rs +0 -0
  366. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md037_kramdown_test.rs +0 -0
  367. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md037_test.rs +0 -0
  368. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md038_nested_backticks_test.rs +0 -0
  369. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md038_test.rs +0 -0
  370. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md039_test.rs +0 -0
  371. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md040_test.rs +0 -0
  372. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md041_test.rs +0 -0
  373. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md042_test.rs +0 -0
  374. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md043_test.rs +0 -0
  375. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md044_test.rs +0 -0
  376. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md045_test.rs +0 -0
  377. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md046_test.rs +0 -0
  378. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md047_test.rs +0 -0
  379. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md048_test.rs +0 -0
  380. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md049_test.rs +0 -0
  381. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md050_test.rs +0 -0
  382. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_comprehensive_test.rs +0 -0
  383. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
  384. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_edge_cases_test.rs +0 -0
  385. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_issue_39_regression_test.rs +0 -0
  386. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
  387. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_property_based_test.rs +0 -0
  388. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_regression_prevention_test.rs +0 -0
  389. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_test.rs +0 -0
  390. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md051_unicode_security_test.rs +0 -0
  391. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md052_test.rs +0 -0
  392. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md053_additional_test.rs +0 -0
  393. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md053_proptest.rs +0 -0
  394. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md053_test.rs +0 -0
  395. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md054_test.rs +0 -0
  396. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md054_unicode_test.rs +0 -0
  397. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md055_test.rs +0 -0
  398. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md056_test.rs +0 -0
  399. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md057_test.rs +0 -0
  400. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md058_kramdown_test.rs +0 -0
  401. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/md058_test.rs +0 -0
  402. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/mkdocs_admonitions_test.rs +0 -0
  403. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
  404. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/mkdocs_extensions_test.rs +0 -0
  405. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/mkdocs_snippets_test.rs +0 -0
  406. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/mod.rs +0 -0
  407. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules/rule_interaction_test.rs +0 -0
  408. {rumdl-0.0.135 → rumdl-0.0.136}/tests/rules_mod_test.rs +0 -0
  409. {rumdl-0.0.135 → rumdl-0.0.136}/tests/skip_context_tests.rs +0 -0
  410. {rumdl-0.0.135 → rumdl-0.0.136}/tests/test_underscore_edge_cases.rs +0 -0
  411. {rumdl-0.0.135 → rumdl-0.0.136}/tests/thread_safety_tests.rs +0 -0
  412. {rumdl-0.0.135 → rumdl-0.0.136}/tests/unfixable_rules_test.rs +0 -0
  413. {rumdl-0.0.135 → rumdl-0.0.136}/tests/unicode_edge_case_tests.rs +0 -0
  414. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/blockquote_utils_test.rs +0 -0
  415. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/code_block_utils_extended_test.rs +0 -0
  416. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/code_block_utils_test.rs +0 -0
  417. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/core_utils_test.rs +0 -0
  418. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/front_matter_utils_test.rs +0 -0
  419. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/line_index_test.rs +0 -0
  420. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils/mod.rs +0 -0
  421. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils_markdown_edge_cases.rs +0 -0
  422. {rumdl-0.0.135 → rumdl-0.0.136}/tests/utils_tests.rs +0 -0
  423. {rumdl-0.0.135 → rumdl-0.0.136}/tests/vscode_extension_fixes.rs +0 -0
  424. {rumdl-0.0.135 → rumdl-0.0.136}/tests/vscode_test.rs +0 -0
  425. {rumdl-0.0.135 → rumdl-0.0.136}/tests/vscode_tests.rs +0 -0
  426. {rumdl-0.0.135 → rumdl-0.0.136}/tests/vscode_windows_comprehensive_test.rs +0 -0
  427. {rumdl-0.0.135 → rumdl-0.0.136}/tests/vscode_windows_test.rs +0 -0
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.0.136] - 2025-09-03
11
+
10
12
  ## [0.0.135] - 2025-09-03
11
13
 
12
14
  ## [0.0.134] - 2025-09-02
@@ -560,7 +562,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
560
562
 
561
563
  - Initial implementation of remaining rules for markdownlint parity
562
564
 
563
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.135...HEAD
565
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.136...HEAD
566
+ [0.0.136]: https://github.com/rvben/rumdl/compare/v0.0.135...v0.0.136
564
567
  [0.0.135]: https://github.com/rvben/rumdl/compare/v0.0.134...v0.0.135
565
568
  [0.0.134]: https://github.com/rvben/rumdl/compare/v0.0.133...v0.0.134
566
569
  [0.0.133]: https://github.com/rvben/rumdl/compare/v0.0.132...v0.0.133
@@ -1632,7 +1632,7 @@ checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
1632
1632
 
1633
1633
  [[package]]
1634
1634
  name = "rumdl"
1635
- version = "0.0.135"
1635
+ version = "0.0.136"
1636
1636
  dependencies = [
1637
1637
  "anyhow",
1638
1638
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.135"
3
+ version = "0.0.136"
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)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.135
3
+ Version: 0.0.136
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -153,7 +153,10 @@ impl Rule for MD009TrailingSpaces {
153
153
  trimmed.len() + 1,
154
154
  trailing_spaces,
155
155
  ),
156
- replacement: if !self.config.strict && !is_truly_last_line && trailing_spaces > 0 {
156
+ replacement: if !self.config.strict
157
+ && !is_truly_last_line
158
+ && trailing_spaces == self.config.br_spaces
159
+ {
157
160
  " ".repeat(self.config.br_spaces)
158
161
  } else {
159
162
  String::new()
@@ -236,11 +239,15 @@ impl Rule for MD009TrailingSpaces {
236
239
  false
237
240
  };
238
241
 
239
- // In non-strict mode, preserve line breaks by normalizing to br_spaces
242
+ // In non-strict mode, preserve line breaks ONLY if they have exactly br_spaces
240
243
  // BUT: Never preserve trailing spaces in headings or empty blockquotes as they serve no purpose
241
- if !self.config.strict && !is_truly_last_line && trailing_spaces > 0 && !is_heading && !is_empty_blockquote
244
+ if !self.config.strict
245
+ && !is_truly_last_line
246
+ && trailing_spaces == self.config.br_spaces
247
+ && !is_heading
248
+ && !is_empty_blockquote
242
249
  {
243
- // Optimize for common case of 2 spaces
250
+ // Preserve the exact number of spaces for hard line breaks
244
251
  match self.config.br_spaces {
245
252
  0 => {}
246
253
  1 => result.push(' '),
@@ -330,7 +337,10 @@ mod tests {
330
337
  let content = "Line with spaces \nAnother line \nClean line";
331
338
  let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
332
339
  let fixed = rule.fix(&ctx).unwrap();
333
- assert_eq!(fixed, "Line with spaces \nAnother line \nClean line");
340
+ // Line 1: 3 spaces -> removed (doesn't match br_spaces=2)
341
+ // Line 2: 2 spaces -> kept (matches br_spaces=2)
342
+ // Line 3: no spaces -> unchanged
343
+ assert_eq!(fixed, "Line with spaces\nAnother line \nClean line");
334
344
  }
335
345
 
336
346
  #[test]
@@ -366,19 +376,19 @@ mod tests {
366
376
  let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
367
377
  let result = rule.check(&ctx).unwrap();
368
378
  // br_spaces=2, so lines with exactly 2 spaces are OK
369
- // Line 2 has 3 spaces (will be normalized to 2)
379
+ // Line 2 has 3 spaces (should be removed, not normalized)
370
380
  // Line 3 has 1 space and is last line without newline (will be removed)
371
381
  assert_eq!(result.len(), 2);
372
382
  assert_eq!(result[0].line, 2);
373
383
  assert_eq!(result[1].line, 3);
374
384
 
375
385
  let fixed = rule.fix(&ctx).unwrap();
376
- // Line 1: keeps 2 spaces
377
- // Line 2: normalized from 3 to 2 spaces
386
+ // Line 1: keeps 2 spaces (exact match with br_spaces)
387
+ // Line 2: removes all 3 spaces (doesn't match br_spaces)
378
388
  // Line 3: last line without newline, spaces removed
379
389
  assert_eq!(
380
390
  fixed,
381
- "Line with two spaces \nLine with three spaces \nLine with one space"
391
+ "Line with two spaces \nLine with three spaces\nLine with one space"
382
392
  );
383
393
  }
384
394
 
@@ -586,14 +596,16 @@ mod tests {
586
596
  let content = "> > Nested \n> > \n> Normal ";
587
597
  let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
588
598
  let result = rule.check(&ctx).unwrap();
589
- // Line 2 has empty blockquote, line 3 is last line without newline
599
+ // Line 2 has empty blockquote with 3 spaces, line 3 is last line without newline
590
600
  assert_eq!(result.len(), 2);
591
601
  assert_eq!(result[0].line, 2);
592
602
  assert_eq!(result[1].line, 3);
593
603
 
594
604
  let fixed = rule.fix(&ctx).unwrap();
595
- // The fix adds a single space after empty blockquote markers
596
- assert_eq!(fixed, "> > Nested \n> > \n> Normal");
605
+ // Line 1: Keeps 2 spaces (exact match with br_spaces)
606
+ // Line 2: Empty blockquote with 3 spaces -> removes all (doesn't match br_spaces)
607
+ // Line 3: Last line without newline -> removes all spaces
608
+ assert_eq!(fixed, "> > Nested \n> >\n> Normal");
597
609
  }
598
610
 
599
611
  #[test]
@@ -608,4 +620,65 @@ mod tests {
608
620
  assert_eq!(result.len(), 1);
609
621
  assert_eq!(result[0].line, 2);
610
622
  }
623
+
624
+ #[test]
625
+ fn test_issue_80_no_space_normalization() {
626
+ // Test for GitHub issue #80 - MD009 should not add spaces when removing trailing spaces
627
+ let rule = MD009TrailingSpaces::new(2, false); // br_spaces=2
628
+
629
+ // Test that 1 trailing space is removed, not normalized to 2
630
+ let content = "Line with one space \nNext line";
631
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
632
+ let result = rule.check(&ctx).unwrap();
633
+ assert_eq!(result.len(), 1);
634
+ assert_eq!(result[0].line, 1);
635
+ assert_eq!(result[0].message, "Trailing space found");
636
+
637
+ let fixed = rule.fix(&ctx).unwrap();
638
+ assert_eq!(fixed, "Line with one space\nNext line");
639
+
640
+ // Test that 3 trailing spaces are removed, not normalized to 2
641
+ let content = "Line with three spaces \nNext line";
642
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
643
+ let result = rule.check(&ctx).unwrap();
644
+ assert_eq!(result.len(), 1);
645
+ assert_eq!(result[0].line, 1);
646
+ assert_eq!(result[0].message, "3 trailing spaces found");
647
+
648
+ let fixed = rule.fix(&ctx).unwrap();
649
+ assert_eq!(fixed, "Line with three spaces\nNext line");
650
+
651
+ // Test that exactly 2 trailing spaces are preserved
652
+ let content = "Line with two spaces \nNext line";
653
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
654
+ let result = rule.check(&ctx).unwrap();
655
+ assert_eq!(result.len(), 0); // Should not flag lines with exact br_spaces
656
+
657
+ let fixed = rule.fix(&ctx).unwrap();
658
+ assert_eq!(fixed, "Line with two spaces \nNext line");
659
+ }
660
+
661
+ #[test]
662
+ fn test_different_br_spaces_values() {
663
+ // Test with br_spaces=0 (no trailing spaces allowed)
664
+ let rule = MD009TrailingSpaces::new(0, false);
665
+ let content = "Line with one space \nLine with two spaces ";
666
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
667
+ let result = rule.check(&ctx).unwrap();
668
+ assert_eq!(result.len(), 2); // Both lines should be flagged
669
+
670
+ let fixed = rule.fix(&ctx).unwrap();
671
+ assert_eq!(fixed, "Line with one space\nLine with two spaces");
672
+
673
+ // Test with br_spaces=1 (exactly 1 trailing space for line breaks)
674
+ let rule = MD009TrailingSpaces::new(1, false);
675
+ let content = "Line with one space \nLine with two spaces ";
676
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
677
+ let result = rule.check(&ctx).unwrap();
678
+ assert_eq!(result.len(), 1); // Only line 2 should be flagged
679
+ assert_eq!(result[0].line, 2);
680
+
681
+ let fixed = rule.fix(&ctx).unwrap();
682
+ assert_eq!(fixed, "Line with one space \nLine with two spaces");
683
+ }
611
684
  }
@@ -8,6 +8,7 @@ use crate::utils::range_utils::calculate_excess_range;
8
8
  use crate::utils::regex_cache::{
9
9
  IMAGE_REF_PATTERN, INLINE_LINK_REGEX as MARKDOWN_LINK_PATTERN, LINK_REF_PATTERN, URL_IN_TEXT, URL_PATTERN,
10
10
  };
11
+ use crate::utils::table_utils::TableUtils;
11
12
  use toml;
12
13
 
13
14
  pub mod md013_config;
@@ -36,24 +37,6 @@ impl MD013LineLength {
36
37
  Self { config }
37
38
  }
38
39
 
39
- fn is_in_table(lines: &[&str], current_line: usize) -> bool {
40
- // Check if current line is part of a table
41
- let current = lines[current_line].trim();
42
- if current.starts_with('|') || current.starts_with("|-") {
43
- return true;
44
- }
45
-
46
- // Check if line is between table markers
47
- if current_line > 0 && current_line + 1 < lines.len() {
48
- let prev = lines[current_line - 1].trim();
49
- let next = lines[current_line + 1].trim();
50
- if (prev.starts_with('|') || prev.starts_with("|-")) && (next.starts_with('|') || next.starts_with("|-")) {
51
- return true;
52
- }
53
- }
54
- false
55
- }
56
-
57
40
  fn should_ignore_line(
58
41
  &self,
59
42
  line: &str,
@@ -203,24 +186,21 @@ impl Rule for MD013LineLength {
203
186
  // Create a quick lookup set for heading lines
204
187
  let heading_lines_set: std::collections::HashSet<usize> = structure.heading_lines.iter().cloned().collect();
205
188
 
206
- // Pre-compute table lines using the same logic as is_in_table function
189
+ // Use TableUtils to find all table blocks in the document
190
+ let table_blocks = TableUtils::find_table_blocks(content, ctx);
191
+
192
+ // Pre-compute table lines from the table blocks
207
193
  let table_lines_set: std::collections::HashSet<usize> = {
208
194
  let mut table_lines = std::collections::HashSet::new();
209
195
 
210
- for (i, _line) in lines.iter().enumerate() {
211
- let line_number = i + 1;
212
-
213
- // Quick check if in code block using pre-computed blocks from context or structure
214
- let in_code = if !ctx.code_blocks.is_empty() {
215
- ctx.code_blocks
216
- .iter()
217
- .any(|(start, end)| *start <= line_number && line_number <= *end)
218
- } else {
219
- structure.is_in_code_block(line_number)
220
- };
221
-
222
- if !in_code && Self::is_in_table(&lines, i) {
223
- table_lines.insert(line_number);
196
+ for table in &table_blocks {
197
+ // Add header line
198
+ table_lines.insert(table.header_line + 1); // Convert 0-indexed to 1-indexed
199
+ // Add delimiter line
200
+ table_lines.insert(table.delimiter_line + 1);
201
+ // Add all content lines
202
+ for &line in &table.content_lines {
203
+ table_lines.insert(line + 1); // Convert 0-indexed to 1-indexed
224
204
  }
225
205
  }
226
206
  table_lines
@@ -393,7 +373,8 @@ impl MD013LineLength {
393
373
  }
394
374
 
395
375
  // Skip tables (they have complex formatting)
396
- if Self::is_in_table(&[line], 0) {
376
+ // Check if line looks like a table row
377
+ if TableUtils::is_potential_table_row(line) {
397
378
  return true;
398
379
  }
399
380
 
@@ -568,19 +549,6 @@ mod tests {
568
549
  assert_eq!(result.len(), 0);
569
550
  }
570
551
 
571
- #[test]
572
- fn test_table_detection() {
573
- let lines = vec![
574
- "| Column 1 | Column 2 |",
575
- "|----------|----------|",
576
- "| Value 1 | Value 2 |",
577
- ];
578
-
579
- assert!(MD013LineLength::is_in_table(&lines, 0));
580
- assert!(MD013LineLength::is_in_table(&lines, 1));
581
- assert!(MD013LineLength::is_in_table(&lines, 2));
582
- }
583
-
584
552
  #[test]
585
553
  fn test_table_checked_when_enabled() {
586
554
  let rule = MD013LineLength::new(30, false, true, false, false);
@@ -591,6 +559,74 @@ mod tests {
591
559
  assert_eq!(result.len(), 2); // Both table lines exceed limit
592
560
  }
593
561
 
562
+ #[test]
563
+ fn test_issue_78_tables_after_fenced_code_blocks() {
564
+ // Test for GitHub issue #78 - tables with tables=false after fenced code blocks
565
+ let rule = MD013LineLength::new(20, false, false, false, false); // tables=false
566
+ let content = r#"# heading
567
+
568
+ ```plain
569
+ some code block longer than 20 chars length
570
+ ```
571
+
572
+ this is a very long line
573
+
574
+ | column A | column B |
575
+ | -------- | -------- |
576
+ | `var` | `val` |
577
+ | value 1 | value 2 |
578
+
579
+ correct length line"#;
580
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
581
+ let result = rule.check(&ctx).unwrap();
582
+
583
+ // Should only flag line 7 ("this is a very long line"), not the table lines
584
+ assert_eq!(result.len(), 1, "Should only flag 1 line (the non-table long line)");
585
+ assert_eq!(result[0].line, 7, "Should flag line 7");
586
+ assert!(result[0].message.contains("24 exceeds 20"));
587
+ }
588
+
589
+ #[test]
590
+ fn test_issue_78_tables_with_inline_code() {
591
+ // Test that tables with inline code (backticks) are properly detected as tables
592
+ let rule = MD013LineLength::new(20, false, false, false, false); // tables=false
593
+ let content = r#"| column A | column B |
594
+ | -------- | -------- |
595
+ | `var with very long name` | `val exceeding limit` |
596
+ | value 1 | value 2 |
597
+
598
+ This line exceeds limit"#;
599
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
600
+ let result = rule.check(&ctx).unwrap();
601
+
602
+ // Should only flag the last line, not the table lines
603
+ assert_eq!(result.len(), 1, "Should only flag the non-table line");
604
+ assert_eq!(result[0].line, 6, "Should flag line 6");
605
+ }
606
+
607
+ #[test]
608
+ fn test_issue_78_indented_code_blocks() {
609
+ // Test with indented code blocks instead of fenced
610
+ let rule = MD013LineLength::new(20, false, false, false, false); // tables=false
611
+ let content = r#"# heading
612
+
613
+ some code block longer than 20 chars length
614
+
615
+ this is a very long line
616
+
617
+ | column A | column B |
618
+ | -------- | -------- |
619
+ | value 1 | value 2 |
620
+
621
+ correct length line"#;
622
+ let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
623
+ let result = rule.check(&ctx).unwrap();
624
+
625
+ // Should only flag line 5 ("this is a very long line"), not the table lines
626
+ assert_eq!(result.len(), 1, "Should only flag 1 line (the non-table long line)");
627
+ assert_eq!(result[0].line, 5, "Should flag line 5");
628
+ }
629
+
594
630
  #[test]
595
631
  fn test_url_exemption() {
596
632
  let rule = MD013LineLength::new(30, false, false, false, false);
@@ -769,9 +769,12 @@ mod tests {
769
769
  );
770
770
 
771
771
  // Performance assertion - should complete reasonably fast
772
+ // Note: In debug builds this may take longer, so we use a higher threshold
773
+ let max_duration_ms = if cfg!(debug_assertions) { 1000 } else { 100 };
772
774
  assert!(
773
- avg_check_duration.as_millis() < 100,
774
- "MD034 check should complete in under 100ms, took {}ms",
775
+ avg_check_duration.as_millis() < max_duration_ms,
776
+ "MD034 check should complete in under {}ms, took {}ms",
777
+ max_duration_ms,
775
778
  avg_check_duration.as_millis()
776
779
  );
777
780
 
@@ -250,11 +250,9 @@ fn test_output_format_with_fix_mode() {
250
250
 
251
251
  // Verify the file was actually fixed
252
252
  let fixed_content = fs::read_to_string(&test_file).unwrap();
253
- // In non-strict mode, MD009 normalizes trailing spaces to 2 spaces (for line breaks)
254
- assert!(
255
- fixed_content.contains(" \n"),
256
- "Trailing spaces should be normalized to 2 spaces"
257
- );
253
+ // MD009 removes trailing spaces that don't match br_spaces (default 2)
254
+ // Since the content had 3 spaces, they should be removed
255
+ assert!(!fixed_content.contains(" "), "Trailing spaces (3) should be removed");
258
256
  assert!(
259
257
  fixed_content.contains("\n\n"),
260
258
  "Blank line should be added after heading"
@@ -77,9 +77,13 @@ fn test_md009_fix() {
77
77
  let content = "Line with spaces \nAnother line \nNo spaces\n \n```\nCode \n```\n";
78
78
  let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard);
79
79
  let result = rule.fix(&ctx).unwrap();
80
+ // Default br_spaces=2, so only lines with exactly 2 spaces are preserved
81
+ // Line 1: 3 spaces -> removed
82
+ // Line 2: 2 spaces -> preserved
83
+ // Line 4: 2 spaces (empty line) -> removed
80
84
  assert_eq!(
81
85
  result,
82
- "Line with spaces \nAnother line \nNo spaces\n\n```\nCode \n```\n"
86
+ "Line with spaces\nAnother line \nNo spaces\n\n```\nCode \n```\n"
83
87
  );
84
88
  }
85
89
 
@@ -157,9 +161,11 @@ fn test_md009_fix_preserves_line_breaks() {
157
161
  let content = "Line with one space \nLine with two \nLine with three \nLine with four \n";
158
162
  let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard);
159
163
  let result = rule.fix(&ctx).unwrap();
164
+ // Only lines with exactly 2 spaces (br_spaces) are preserved
165
+ // Lines with 1, 3, or 4 spaces have them removed
160
166
  assert_eq!(
161
167
  result,
162
- "Line with one space \nLine with two \nLine with three \nLine with four \n"
168
+ "Line with one space\nLine with two \nLine with three\nLine with four\n"
163
169
  );
164
170
  }
165
171
 
@@ -297,7 +303,9 @@ fn test_md009_fix_with_crlf() {
297
303
  let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard);
298
304
  let result = rule.fix(&ctx).unwrap();
299
305
  // The fix normalizes to \n line endings
300
- assert_eq!(result, "Line one \nLine two \n");
306
+ // Line 1: 2 spaces -> preserved (matches br_spaces=2)
307
+ // Line 2: 3 spaces -> removed (doesn't match br_spaces=2)
308
+ assert_eq!(result, "Line one \nLine two\n");
301
309
  }
302
310
 
303
311
  #[test]
@@ -317,10 +325,12 @@ fn test_md009_fix_complex_document() {
317
325
  "# Title \n\nParagraph \n\n- List \n - Nested \n\n```\ncode \n```\n\n> Quote \n> \n\nEnd ";
318
326
  let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard);
319
327
  let result = rule.fix(&ctx).unwrap();
320
- // Headings should have all trailing spaces removed, regular text preserves 2 spaces for line breaks
328
+ // Headings should have all trailing spaces removed
329
+ // Lines with exactly 2 spaces are preserved
330
+ // Lines with 3 spaces are removed
321
331
  assert_eq!(
322
332
  result,
323
- "# Title\n\nParagraph \n\n- List \n - Nested \n\n```\ncode \n```\n\n> Quote \n>\n\nEnd" // Empty blockquote line trailing spaces removed
333
+ "# Title\n\nParagraph \n\n- List\n - Nested \n\n```\ncode \n```\n\n> Quote\n>\n\nEnd" // Empty blockquote line trailing spaces removed
324
334
  );
325
335
  }
326
336
 
@@ -346,13 +346,15 @@ fn test_code_blocks_configurable() {
346
346
 
347
347
  #[test]
348
348
  fn test_tables_configurable() {
349
- let content = "| This is a very long table cell | Another very long table cell that exceeds limit |";
349
+ // Use a proper table with header and delimiter
350
+ let content = "| This is a very long table cell | Another very long table cell that exceeds limit |\n|----------------------------------|---------------------------------------------------|";
350
351
  let ctx = LintContext::new(content, rumdl_lib::config::MarkdownFlavor::Standard);
351
352
 
352
353
  // With tables = true (check tables - include in line length checking)
353
354
  let rule_check = MD013LineLength::new(50, true, true, true, false);
354
355
  let result_check = rule_check.check(&ctx).unwrap();
355
- assert_eq!(result_check.len(), 1);
356
+ // Both lines exceed 50 characters
357
+ assert_eq!(result_check.len(), 2);
356
358
 
357
359
  // With tables = false (skip tables - exclude from line length checking)
358
360
  let rule_skip = MD013LineLength::new(50, true, false, true, false);
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes