rumdl 0.0.86__tar.gz → 0.0.87__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 (319) hide show
  1. {rumdl-0.0.86 → rumdl-0.0.87}/CHANGELOG.md +4 -1
  2. {rumdl-0.0.86 → rumdl-0.0.87}/Cargo.lock +35 -39
  3. {rumdl-0.0.86 → rumdl-0.0.87}/Cargo.toml +1 -1
  4. {rumdl-0.0.86 → rumdl-0.0.87}/PKG-INFO +1 -1
  5. {rumdl-0.0.86 → rumdl-0.0.87}/src/main.rs +115 -0
  6. {rumdl-0.0.86 → rumdl-0.0.87}/src/vscode.rs +85 -6
  7. rumdl-0.0.87/tests/vscode_test.rs +85 -0
  8. rumdl-0.0.86/tests/vscode_test.rs +0 -38
  9. {rumdl-0.0.86 → rumdl-0.0.87}/.config/nextest.toml +0 -0
  10. {rumdl-0.0.86 → rumdl-0.0.87}/.mise.toml +0 -0
  11. {rumdl-0.0.86 → rumdl-0.0.87}/.rumdl.toml +0 -0
  12. {rumdl-0.0.86 → rumdl-0.0.87}/MANIFEST.in +0 -0
  13. {rumdl-0.0.86 → rumdl-0.0.87}/Makefile +0 -0
  14. {rumdl-0.0.86 → rumdl-0.0.87}/README.md +0 -0
  15. {rumdl-0.0.86 → rumdl-0.0.87}/assets/logo.png +0 -0
  16. {rumdl-0.0.86 → rumdl-0.0.87}/benches/fix_performance.rs +0 -0
  17. {rumdl-0.0.86 → rumdl-0.0.87}/benches/range_performance.rs +0 -0
  18. {rumdl-0.0.86 → rumdl-0.0.87}/benches/range_utils_benchmark.rs +0 -0
  19. {rumdl-0.0.86 → rumdl-0.0.87}/benches/rule_performance.rs +0 -0
  20. {rumdl-0.0.86 → rumdl-0.0.87}/benches/simple_fix_bench.rs +0 -0
  21. {rumdl-0.0.86 → rumdl-0.0.87}/docs/RULES.md +0 -0
  22. {rumdl-0.0.86 → rumdl-0.0.87}/docs/global-settings.md +0 -0
  23. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md001.md +0 -0
  24. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md002.md +0 -0
  25. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md003.md +0 -0
  26. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md004.md +0 -0
  27. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md005.md +0 -0
  28. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md006.md +0 -0
  29. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md007.md +0 -0
  30. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md009.md +0 -0
  31. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md010.md +0 -0
  32. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md011.md +0 -0
  33. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md012.md +0 -0
  34. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md013.md +0 -0
  35. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md014.md +0 -0
  36. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md018.md +0 -0
  37. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md019.md +0 -0
  38. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md020.md +0 -0
  39. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md021.md +0 -0
  40. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md022.md +0 -0
  41. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md023.md +0 -0
  42. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md024.md +0 -0
  43. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md025.md +0 -0
  44. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md026.md +0 -0
  45. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md027.md +0 -0
  46. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md028.md +0 -0
  47. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md029.md +0 -0
  48. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md030.md +0 -0
  49. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md031.md +0 -0
  50. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md032.md +0 -0
  51. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md033.md +0 -0
  52. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md034.md +0 -0
  53. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md035.md +0 -0
  54. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md036.md +0 -0
  55. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md037.md +0 -0
  56. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md038.md +0 -0
  57. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md039.md +0 -0
  58. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md040.md +0 -0
  59. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md041.md +0 -0
  60. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md042.md +0 -0
  61. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md043.md +0 -0
  62. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md044.md +0 -0
  63. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md045.md +0 -0
  64. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md046.md +0 -0
  65. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md047.md +0 -0
  66. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md048.md +0 -0
  67. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md049.md +0 -0
  68. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md050.md +0 -0
  69. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md051.md +0 -0
  70. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md052.md +0 -0
  71. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md053.md +0 -0
  72. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md054.md +0 -0
  73. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md055.md +0 -0
  74. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md056.md +0 -0
  75. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md057.md +0 -0
  76. {rumdl-0.0.86 → rumdl-0.0.87}/docs/md058.md +0 -0
  77. {rumdl-0.0.86 → rumdl-0.0.87}/docs/vscode-extension.md +0 -0
  78. {rumdl-0.0.86 → rumdl-0.0.87}/issues/plan-rule-parity-with-markdownlint.md +0 -0
  79. {rumdl-0.0.86 → rumdl-0.0.87}/parity_check.py +0 -0
  80. {rumdl-0.0.86 → rumdl-0.0.87}/pyproject.toml +0 -0
  81. {rumdl-0.0.86 → rumdl-0.0.87}/python/MANIFEST.in +0 -0
  82. {rumdl-0.0.86 → rumdl-0.0.87}/python/PYTHON-README.md +0 -0
  83. {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/__init__.py +0 -0
  84. {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/__main__.py +0 -0
  85. {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/py.typed +0 -0
  86. {rumdl-0.0.86 → rumdl-0.0.87}/rumdl.toml.example +0 -0
  87. {rumdl-0.0.86 → rumdl-0.0.87}/rust-toolchain.toml +0 -0
  88. {rumdl-0.0.86 → rumdl-0.0.87}/scripts/extract-changelog.sh +0 -0
  89. {rumdl-0.0.86 → rumdl-0.0.87}/scripts/prepare-release.sh +0 -0
  90. {rumdl-0.0.86 → rumdl-0.0.87}/src/config.rs +0 -0
  91. {rumdl-0.0.86 → rumdl-0.0.87}/src/init.rs +0 -0
  92. {rumdl-0.0.86 → rumdl-0.0.87}/src/inline_config.rs +0 -0
  93. {rumdl-0.0.86 → rumdl-0.0.87}/src/lib.rs +0 -0
  94. {rumdl-0.0.86 → rumdl-0.0.87}/src/lint_context.rs +0 -0
  95. {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/mod.rs +0 -0
  96. {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/server.rs +0 -0
  97. {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/types.rs +0 -0
  98. {rumdl-0.0.86 → rumdl-0.0.87}/src/markdownlint_config.rs +0 -0
  99. {rumdl-0.0.86 → rumdl-0.0.87}/src/parallel.rs +0 -0
  100. {rumdl-0.0.86 → rumdl-0.0.87}/src/performance.rs +0 -0
  101. {rumdl-0.0.86 → rumdl-0.0.87}/src/profiling.rs +0 -0
  102. {rumdl-0.0.86 → rumdl-0.0.87}/src/python.rs +0 -0
  103. {rumdl-0.0.86 → rumdl-0.0.87}/src/rule.rs +0 -0
  104. {rumdl-0.0.86 → rumdl-0.0.87}/src/rule_config.rs +0 -0
  105. {rumdl-0.0.86 → rumdl-0.0.87}/src/rule_config_serde.rs +0 -0
  106. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/blockquote_utils.rs +0 -0
  107. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/code_block_utils.rs +0 -0
  108. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/code_fence_utils.rs +0 -0
  109. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/emphasis_style.rs +0 -0
  110. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/front_matter_utils.rs +0 -0
  111. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/heading_utils.rs +0 -0
  112. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/list_utils.rs +0 -0
  113. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md001_heading_increment.rs +0 -0
  114. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
  115. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md002_first_heading_h1.rs +0 -0
  116. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md003_heading_style/md003_config.rs +0 -0
  117. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md003_heading_style.rs +0 -0
  118. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
  119. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md004_unordered_list_style.rs +0 -0
  120. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md005_list_indent.rs +0 -0
  121. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md006_start_bullets.rs +0 -0
  122. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md007_ul_indent/md007_config.rs +0 -0
  123. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md007_ul_indent.rs +0 -0
  124. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
  125. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md009_trailing_spaces.rs +0 -0
  126. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
  127. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md010_no_hard_tabs.rs +0 -0
  128. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md011_no_reversed_links.rs +0 -0
  129. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
  130. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md012_no_multiple_blanks.rs +0 -0
  131. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md013_line_length/md013_config.rs +0 -0
  132. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md013_line_length.rs +0 -0
  133. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
  134. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md014_commands_show_output.rs +0 -0
  135. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md018_no_missing_space_atx.rs +0 -0
  136. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  137. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  138. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  139. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
  140. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md022_blanks_around_headings.rs +0 -0
  141. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md023_heading_start_left.rs +0 -0
  142. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
  143. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md024_no_duplicate_heading.rs +0 -0
  144. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md025_single_title/md025_config.rs +0 -0
  145. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md025_single_title.rs +0 -0
  146. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
  147. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  148. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  149. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  150. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md029_ordered_list_prefix.rs +0 -0
  151. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
  152. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md030_list_marker_space.rs +0 -0
  153. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md031_blanks_around_fences.rs +0 -0
  154. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md032_blanks_around_lists.rs +0 -0
  155. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
  156. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md033_no_inline_html.rs +0 -0
  157. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md034_no_bare_urls.rs +0 -0
  158. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md035_hr_style/md035_config.rs +0 -0
  159. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md035_hr_style.rs +0 -0
  160. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
  161. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  162. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  163. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md038_no_space_in_code.rs +0 -0
  164. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md039_no_space_in_links.rs +0 -0
  165. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md040_fenced_code_language.rs +0 -0
  166. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md041_first_line_heading.rs +0 -0
  167. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md042_no_empty_links.rs +0 -0
  168. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md043_required_headings.rs +0 -0
  169. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md044_proper_names/md044_config.rs +0 -0
  170. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md044_proper_names.rs +0 -0
  171. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md045_no_alt_text.rs +0 -0
  172. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md046_code_block_style/md046_config.rs +0 -0
  173. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md046_code_block_style.rs +0 -0
  174. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md047_single_trailing_newline.rs +0 -0
  175. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
  176. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md048_code_fence_style.rs +0 -0
  177. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
  178. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md049_emphasis_style.rs +0 -0
  179. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md050_strong_style/md050_config.rs +0 -0
  180. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md050_strong_style.rs +0 -0
  181. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md051_link_fragments.rs +0 -0
  182. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md052_reference_links_images.rs +0 -0
  183. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  184. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md054_link_image_style/md054_config.rs +0 -0
  185. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md054_link_image_style.rs +0 -0
  186. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
  187. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md055_table_pipe_style.rs +0 -0
  188. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md056_table_column_count.rs +0 -0
  189. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
  190. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md057_existing_relative_links.rs +0 -0
  191. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md058_blanks_around_tables.rs +0 -0
  192. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/mod.rs +0 -0
  193. {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/strong_style.rs +0 -0
  194. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/ast_utils.rs +0 -0
  195. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/code_block_utils.rs +0 -0
  196. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/document_structure.rs +0 -0
  197. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/early_returns.rs +0 -0
  198. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/element_cache.rs +0 -0
  199. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/fix_utils.rs +0 -0
  200. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/markdown_elements.rs +0 -0
  201. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/mod.rs +0 -0
  202. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/range_utils.rs +0 -0
  203. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/regex_cache.rs +0 -0
  204. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/string_interner.rs +0 -0
  205. {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/table_utils.rs +0 -0
  206. {rumdl-0.0.86 → rumdl-0.0.87}/tests/advanced_integration_tests.rs +0 -0
  207. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/additional_tests.rs +0 -0
  208. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/basic_tests.rs +0 -0
  209. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/comprehensive_tests.rs +0 -0
  210. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/extended_tests.rs +0 -0
  211. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/mod.rs +0 -0
  212. {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/unicode_utils.rs +0 -0
  213. {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_duplication_test.rs +0 -0
  214. {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_integration_tests.rs +0 -0
  215. {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_lsp_fix_consistency.rs +0 -0
  216. {rumdl-0.0.86 → rumdl-0.0.87}/tests/commonmark_compliance_tests.rs +0 -0
  217. {rumdl-0.0.86 → rumdl-0.0.87}/tests/comprehensive_integration_tests.rs +0 -0
  218. {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_application_tests.rs +0 -0
  219. {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_file_command_test.rs +0 -0
  220. {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_tests.rs +0 -0
  221. {rumdl-0.0.86 → rumdl-0.0.87}/tests/configuration_inheritance_tests.rs +0 -0
  222. {rumdl-0.0.86 → rumdl-0.0.87}/tests/consistency_regression_tests.rs +0 -0
  223. {rumdl-0.0.86 → rumdl-0.0.87}/tests/cross_platform_compatibility_tests.rs +0 -0
  224. {rumdl-0.0.86 → rumdl-0.0.87}/tests/final_confidence_assessment.rs +0 -0
  225. {rumdl-0.0.86 → rumdl-0.0.87}/tests/init_command_test.rs +0 -0
  226. {rumdl-0.0.86 → rumdl-0.0.87}/tests/init_tests.rs +0 -0
  227. {rumdl-0.0.86 → rumdl-0.0.87}/tests/inline_config_test.rs +0 -0
  228. {rumdl-0.0.86 → rumdl-0.0.87}/tests/integration_tests.rs +0 -0
  229. {rumdl-0.0.86 → rumdl-0.0.87}/tests/json_output_test.rs +0 -0
  230. {rumdl-0.0.86 → rumdl-0.0.87}/tests/lib.rs +0 -0
  231. {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_editor_integration_tests.rs +0 -0
  232. {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_integration_tests.rs +0 -0
  233. {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_memory_leak_tests.rs +0 -0
  234. {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_tests.rs +0 -0
  235. {rumdl-0.0.86 → rumdl-0.0.87}/tests/malformed_markdown_stress_tests.rs +0 -0
  236. {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlint_cli_integration.rs +0 -0
  237. {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlint_config_test.rs +0 -0
  238. {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlintignore_test.rs +0 -0
  239. {rumdl-0.0.86 → rumdl-0.0.87}/tests/md030_edge_cases.md +0 -0
  240. {rumdl-0.0.86 → rumdl-0.0.87}/tests/output_format_tests.rs +0 -0
  241. {rumdl-0.0.86 → rumdl-0.0.87}/tests/perf_check.rs +0 -0
  242. {rumdl-0.0.86 → rumdl-0.0.87}/tests/performance_validation_tests.rs +0 -0
  243. {rumdl-0.0.86 → rumdl-0.0.87}/tests/pyproject_config_tests.rs +0 -0
  244. {rumdl-0.0.86 → rumdl-0.0.87}/tests/real_world_repository_tests.rs +0 -0
  245. {rumdl-0.0.86 → rumdl-0.0.87}/tests/regression_prevention_tests.rs +0 -0
  246. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md001_test.rs +0 -0
  247. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md001_unicode_test.rs +0 -0
  248. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md002_test.rs +0 -0
  249. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md003_test.rs +0 -0
  250. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md004_test.rs +0 -0
  251. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md005_test.rs +0 -0
  252. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md006_test.rs +0 -0
  253. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md006_unicode_test.rs +0 -0
  254. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md007_test.rs +0 -0
  255. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md009_test.rs +0 -0
  256. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md010_test.rs +0 -0
  257. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md011_test.rs +0 -0
  258. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md012_test.rs +0 -0
  259. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md013_test.rs +0 -0
  260. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md014_test.rs +0 -0
  261. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md018_test.rs +0 -0
  262. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md019_test.rs +0 -0
  263. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md020_test.rs +0 -0
  264. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md021_test.rs +0 -0
  265. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md022_test.rs +0 -0
  266. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md023_extended_test.rs +0 -0
  267. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md023_test.rs +0 -0
  268. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md024_test.rs +0 -0
  269. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md025_test.rs +0 -0
  270. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md026_test.rs +0 -0
  271. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md027_test.rs +0 -0
  272. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md028_test.rs +0 -0
  273. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md029_test.rs +0 -0
  274. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md030_test.rs +0 -0
  275. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md031_test.rs +0 -0
  276. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md032_test.rs +0 -0
  277. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md033_extended_test.rs +0 -0
  278. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md033_test.rs +0 -0
  279. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md034_test.rs +0 -0
  280. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md035_test.rs +0 -0
  281. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md036_test.rs +0 -0
  282. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md037_test.rs +0 -0
  283. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md038_test.rs +0 -0
  284. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md039_test.rs +0 -0
  285. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md040_test.rs +0 -0
  286. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md041_test.rs +0 -0
  287. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md042_test.rs +0 -0
  288. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md043_test.rs +0 -0
  289. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md044_test.rs +0 -0
  290. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md045_test.rs +0 -0
  291. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md046_test.rs +0 -0
  292. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md047_test.rs +0 -0
  293. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md048_test.rs +0 -0
  294. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md049_test.rs +0 -0
  295. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md050_test.rs +0 -0
  296. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md051_test.rs +0 -0
  297. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md052_test.rs +0 -0
  298. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_additional_test.rs +0 -0
  299. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_proptest.rs +0 -0
  300. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_test.rs +0 -0
  301. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md054_test.rs +0 -0
  302. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md054_unicode_test.rs +0 -0
  303. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md055_test.rs +0 -0
  304. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md056_test.rs +0 -0
  305. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md057_test.rs +0 -0
  306. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md058_test.rs +0 -0
  307. {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/mod.rs +0 -0
  308. {rumdl-0.0.86 → rumdl-0.0.87}/tests/thread_safety_tests.rs +0 -0
  309. {rumdl-0.0.86 → rumdl-0.0.87}/tests/unicode_edge_case_tests.rs +0 -0
  310. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/blockquote_utils_test.rs +0 -0
  311. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/code_block_utils_extended_test.rs +0 -0
  312. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/code_block_utils_test.rs +0 -0
  313. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/core_utils_test.rs +0 -0
  314. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/front_matter_utils_test.rs +0 -0
  315. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/line_index_test.rs +0 -0
  316. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/mod.rs +0 -0
  317. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils_markdown_edge_cases.rs +0 -0
  318. {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils_tests.rs +0 -0
  319. {rumdl-0.0.86 → rumdl-0.0.87}/tests/vscode_extension_fixes.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.87] - 2025-06-16
11
+
10
12
  ## [0.0.86] - 2025-06-14
11
13
 
12
14
  ## [0.0.85] - 2025-06-11
@@ -59,7 +61,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
59
61
  ### Added
60
62
  - Initial implementation of remaining rules for markdownlint parity
61
63
 
62
- [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.86...HEAD
64
+ [Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.87...HEAD
65
+ [0.0.87]: https://github.com/rvben/rumdl/compare/v0.0.86...v0.0.87
63
66
  [0.0.86]: https://github.com/rvben/rumdl/compare/v0.0.85...v0.0.86
64
67
  [0.0.85]: https://github.com/rvben/rumdl/compare/v0.0.84...v0.0.85
65
68
  [0.0.84]: https://github.com/rvben/rumdl/compare/v0.0.83...v0.0.84
@@ -244,9 +244,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
244
244
 
245
245
  [[package]]
246
246
  name = "cc"
247
- version = "1.2.26"
247
+ version = "1.2.27"
248
248
  source = "registry+https://github.com/rust-lang/crates.io-index"
249
- checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac"
249
+ checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc"
250
250
  dependencies = [
251
251
  "shlex",
252
252
  ]
@@ -789,7 +789,7 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
789
789
  dependencies = [
790
790
  "cfg-if",
791
791
  "libc",
792
- "wasi 0.11.0+wasi-snapshot-preview1",
792
+ "wasi 0.11.1+wasi-snapshot-preview1",
793
793
  ]
794
794
 
795
795
  [[package]]
@@ -871,9 +871,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
871
871
 
872
872
  [[package]]
873
873
  name = "hermit-abi"
874
- version = "0.5.1"
874
+ version = "0.5.2"
875
875
  source = "registry+https://github.com/rust-lang/crates.io-index"
876
- checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08"
876
+ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
877
877
 
878
878
  [[package]]
879
879
  name = "httparse"
@@ -1100,9 +1100,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
1100
1100
 
1101
1101
  [[package]]
1102
1102
  name = "jiff"
1103
- version = "0.2.14"
1103
+ version = "0.2.15"
1104
1104
  source = "registry+https://github.com/rust-lang/crates.io-index"
1105
- checksum = "a194df1107f33c79f4f93d02c80798520551949d59dfad22b6157048a88cca93"
1105
+ checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49"
1106
1106
  dependencies = [
1107
1107
  "jiff-static",
1108
1108
  "log",
@@ -1113,9 +1113,9 @@ dependencies = [
1113
1113
 
1114
1114
  [[package]]
1115
1115
  name = "jiff-static"
1116
- version = "0.2.14"
1116
+ version = "0.2.15"
1117
1117
  source = "registry+https://github.com/rust-lang/crates.io-index"
1118
- checksum = "6c6e1db7ed32c6c71b759497fae34bf7933636f75a251b9e736555da426f6442"
1118
+ checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4"
1119
1119
  dependencies = [
1120
1120
  "proc-macro2",
1121
1121
  "quote",
@@ -1151,9 +1151,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
1151
1151
 
1152
1152
  [[package]]
1153
1153
  name = "libc"
1154
- version = "0.2.172"
1154
+ version = "0.2.173"
1155
1155
  source = "registry+https://github.com/rust-lang/crates.io-index"
1156
- checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
1156
+ checksum = "d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb"
1157
1157
 
1158
1158
  [[package]]
1159
1159
  name = "linux-raw-sys"
@@ -1207,9 +1207,9 @@ dependencies = [
1207
1207
 
1208
1208
  [[package]]
1209
1209
  name = "memchr"
1210
- version = "2.7.4"
1210
+ version = "2.7.5"
1211
1211
  source = "registry+https://github.com/rust-lang/crates.io-index"
1212
- checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
1212
+ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
1213
1213
 
1214
1214
  [[package]]
1215
1215
  name = "memmap2"
@@ -1245,7 +1245,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1245
1245
  checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
1246
1246
  dependencies = [
1247
1247
  "libc",
1248
- "wasi 0.11.0+wasi-snapshot-preview1",
1248
+ "wasi 0.11.1+wasi-snapshot-preview1",
1249
1249
  "windows-sys 0.59.0",
1250
1250
  ]
1251
1251
 
@@ -1354,9 +1354,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
1354
1354
 
1355
1355
  [[package]]
1356
1356
  name = "pest"
1357
- version = "2.8.0"
1357
+ version = "2.8.1"
1358
1358
  source = "registry+https://github.com/rust-lang/crates.io-index"
1359
- checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6"
1359
+ checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323"
1360
1360
  dependencies = [
1361
1361
  "memchr",
1362
1362
  "thiserror 2.0.12",
@@ -1365,9 +1365,9 @@ dependencies = [
1365
1365
 
1366
1366
  [[package]]
1367
1367
  name = "pest_derive"
1368
- version = "2.8.0"
1368
+ version = "2.8.1"
1369
1369
  source = "registry+https://github.com/rust-lang/crates.io-index"
1370
- checksum = "d725d9cfd79e87dccc9341a2ef39d1b6f6353d68c4b33c177febbe1a402c97c5"
1370
+ checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc"
1371
1371
  dependencies = [
1372
1372
  "pest",
1373
1373
  "pest_generator",
@@ -1375,9 +1375,9 @@ dependencies = [
1375
1375
 
1376
1376
  [[package]]
1377
1377
  name = "pest_generator"
1378
- version = "2.8.0"
1378
+ version = "2.8.1"
1379
1379
  source = "registry+https://github.com/rust-lang/crates.io-index"
1380
- checksum = "db7d01726be8ab66ab32f9df467ae8b1148906685bbe75c82d1e65d7f5b3f841"
1380
+ checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966"
1381
1381
  dependencies = [
1382
1382
  "pest",
1383
1383
  "pest_meta",
@@ -1388,11 +1388,10 @@ dependencies = [
1388
1388
 
1389
1389
  [[package]]
1390
1390
  name = "pest_meta"
1391
- version = "2.8.0"
1391
+ version = "2.8.1"
1392
1392
  source = "registry+https://github.com/rust-lang/crates.io-index"
1393
- checksum = "7f9f832470494906d1fca5329f8ab5791cc60beb230c74815dff541cbd2b5ca0"
1393
+ checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5"
1394
1394
  dependencies = [
1395
- "once_cell",
1396
1395
  "pest",
1397
1396
  "sha2",
1398
1397
  ]
@@ -1703,9 +1702,9 @@ dependencies = [
1703
1702
 
1704
1703
  [[package]]
1705
1704
  name = "redox_syscall"
1706
- version = "0.5.12"
1705
+ version = "0.5.13"
1707
1706
  source = "registry+https://github.com/rust-lang/crates.io-index"
1708
- checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af"
1707
+ checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6"
1709
1708
  dependencies = [
1710
1709
  "bitflags 2.9.1",
1711
1710
  ]
@@ -1753,7 +1752,7 @@ dependencies = [
1753
1752
 
1754
1753
  [[package]]
1755
1754
  name = "rumdl"
1756
- version = "0.0.86"
1755
+ version = "0.0.87"
1757
1756
  dependencies = [
1758
1757
  "anyhow",
1759
1758
  "assert_cmd",
@@ -1982,12 +1981,9 @@ dependencies = [
1982
1981
 
1983
1982
  [[package]]
1984
1983
  name = "slab"
1985
- version = "0.4.9"
1984
+ version = "0.4.10"
1986
1985
  source = "registry+https://github.com/rust-lang/crates.io-index"
1987
- checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
1988
- dependencies = [
1989
- "autocfg",
1990
- ]
1986
+ checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d"
1991
1987
 
1992
1988
  [[package]]
1993
1989
  name = "smallvec"
@@ -2019,9 +2015,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
2019
2015
 
2020
2016
  [[package]]
2021
2017
  name = "syn"
2022
- version = "2.0.102"
2018
+ version = "2.0.103"
2023
2019
  source = "registry+https://github.com/rust-lang/crates.io-index"
2024
- checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462"
2020
+ checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8"
2025
2021
  dependencies = [
2026
2022
  "proc-macro2",
2027
2023
  "quote",
@@ -2464,9 +2460,9 @@ dependencies = [
2464
2460
 
2465
2461
  [[package]]
2466
2462
  name = "wasi"
2467
- version = "0.11.0+wasi-snapshot-preview1"
2463
+ version = "0.11.1+wasi-snapshot-preview1"
2468
2464
  source = "registry+https://github.com/rust-lang/crates.io-index"
2469
- checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
2465
+ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
2470
2466
 
2471
2467
  [[package]]
2472
2468
  name = "wasi"
@@ -2601,9 +2597,9 @@ dependencies = [
2601
2597
 
2602
2598
  [[package]]
2603
2599
  name = "windows-link"
2604
- version = "0.1.1"
2600
+ version = "0.1.3"
2605
2601
  source = "registry+https://github.com/rust-lang/crates.io-index"
2606
- checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
2602
+ checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a"
2607
2603
 
2608
2604
  [[package]]
2609
2605
  name = "windows-result"
@@ -2707,9 +2703,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
2707
2703
 
2708
2704
  [[package]]
2709
2705
  name = "winnow"
2710
- version = "0.7.10"
2706
+ version = "0.7.11"
2711
2707
  source = "registry+https://github.com/rust-lang/crates.io-index"
2712
- checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec"
2708
+ checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd"
2713
2709
  dependencies = [
2714
2710
  "memchr",
2715
2711
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.86"
3
+ version = "0.0.87"
4
4
  edition = "2021"
5
5
  rust-version = "1.87.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.86
3
+ Version: 0.0.87
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -830,6 +830,118 @@ fn format_toml_value(val: &toml::Value) -> String {
830
830
  }
831
831
  }
832
832
 
833
+ /// Offer to install the VS Code extension during init
834
+ fn offer_vscode_extension_install() {
835
+ use rumdl::vscode::VsCodeExtension;
836
+
837
+ // Check if we're in an integrated terminal
838
+ if let Some((cmd, editor_name)) = VsCodeExtension::current_editor_from_env() {
839
+ println!("\nDetected you're using {}.", editor_name.green());
840
+ println!("Would you like to install the rumdl extension? [Y/n]");
841
+ print!("> ");
842
+ io::stdout().flush().unwrap();
843
+
844
+ let mut answer = String::new();
845
+ io::stdin().read_line(&mut answer).unwrap();
846
+
847
+ if answer.trim().is_empty() || answer.trim().eq_ignore_ascii_case("y") {
848
+ match VsCodeExtension::with_command(cmd) {
849
+ Ok(vscode) => {
850
+ if let Err(e) = vscode.install(false) {
851
+ eprintln!("{}: {}", "Error".red().bold(), e);
852
+ }
853
+ }
854
+ Err(e) => {
855
+ eprintln!("{}: {}", "Error".red().bold(), e);
856
+ }
857
+ }
858
+ }
859
+ } else {
860
+ // Check for available editors
861
+ let available_editors = VsCodeExtension::find_all_editors();
862
+
863
+ match available_editors.len() {
864
+ 0 => {
865
+ // No editors found, skip silently
866
+ }
867
+ 1 => {
868
+ // Single editor found
869
+ let (cmd, editor_name) = available_editors[0];
870
+ println!("\n{} detected.", editor_name.green());
871
+ println!("Would you like to install the rumdl extension for real-time linting? [y/N]");
872
+ print!("> ");
873
+ io::stdout().flush().unwrap();
874
+
875
+ let mut answer = String::new();
876
+ io::stdin().read_line(&mut answer).unwrap();
877
+
878
+ if answer.trim().eq_ignore_ascii_case("y") {
879
+ match VsCodeExtension::with_command(cmd) {
880
+ Ok(vscode) => {
881
+ if let Err(e) = vscode.install(false) {
882
+ eprintln!("{}: {}", "Error".red().bold(), e);
883
+ }
884
+ }
885
+ Err(e) => {
886
+ eprintln!("{}: {}", "Error".red().bold(), e);
887
+ }
888
+ }
889
+ }
890
+ }
891
+ _ => {
892
+ // Multiple editors found
893
+ println!("\nMultiple VS Code-compatible editors found:");
894
+ for (i, (_, editor_name)) in available_editors.iter().enumerate() {
895
+ println!(" {}. {}", i + 1, editor_name);
896
+ }
897
+ println!("\nInstall the rumdl extension? [1-{}/a=all/n=none]:", available_editors.len());
898
+ print!("> ");
899
+ io::stdout().flush().unwrap();
900
+
901
+ let mut answer = String::new();
902
+ io::stdin().read_line(&mut answer).unwrap();
903
+ let answer = answer.trim().to_lowercase();
904
+
905
+ if answer == "a" || answer == "all" {
906
+ // Install in all editors
907
+ for (cmd, editor_name) in &available_editors {
908
+ println!("\nInstalling for {}...", editor_name);
909
+ match VsCodeExtension::with_command(cmd) {
910
+ Ok(vscode) => {
911
+ if let Err(e) = vscode.install(false) {
912
+ eprintln!("{}: {}", "Error".red().bold(), e);
913
+ }
914
+ }
915
+ Err(e) => {
916
+ eprintln!("{}: {}", "Error".red().bold(), e);
917
+ }
918
+ }
919
+ }
920
+ } else if let Ok(num) = answer.parse::<usize>() {
921
+ if num > 0 && num <= available_editors.len() {
922
+ let (cmd, editor_name) = available_editors[num - 1];
923
+ println!("\nInstalling for {}...", editor_name);
924
+ match VsCodeExtension::with_command(cmd) {
925
+ Ok(vscode) => {
926
+ if let Err(e) = vscode.install(false) {
927
+ eprintln!("{}: {}", "Error".red().bold(), e);
928
+ }
929
+ }
930
+ Err(e) => {
931
+ eprintln!("{}: {}", "Error".red().bold(), e);
932
+ }
933
+ }
934
+ }
935
+ }
936
+ }
937
+ }
938
+ }
939
+
940
+ println!("\nSetup complete! You can now:");
941
+ println!(" • Run {} to lint your Markdown files", "rumdl check .".cyan());
942
+ println!(" • Open your editor to see real-time linting");
943
+ }
944
+
833
945
  fn main() -> Result<(), Box<dyn Error>> {
834
946
  let cli = Cli::parse();
835
947
 
@@ -926,6 +1038,9 @@ build-backend = \"setuptools.build_meta\"
926
1038
  match rumdl_config::create_default_config(".rumdl.toml") {
927
1039
  Ok(_) => {
928
1040
  println!("Created default configuration file: .rumdl.toml");
1041
+
1042
+ // Offer to install VS Code extension
1043
+ offer_vscode_extension_install();
929
1044
  }
930
1045
  Err(e) => {
931
1046
  eprintln!(
@@ -14,16 +14,49 @@ impl VsCodeExtension {
14
14
  Ok(Self { code_command })
15
15
  }
16
16
 
17
+ /// Create a VsCodeExtension with a specific command
18
+ pub fn with_command(command: &str) -> Result<Self, String> {
19
+ if Self::command_exists(command) {
20
+ Ok(Self {
21
+ code_command: command.to_string(),
22
+ })
23
+ } else {
24
+ Err(format!("Command '{}' not found or not working", command))
25
+ }
26
+ }
27
+
28
+ /// Check if a command exists and works
29
+ fn command_exists(cmd: &str) -> bool {
30
+ Command::new("which").arg(cmd).output().is_ok()
31
+ && Command::new(cmd)
32
+ .arg("--version")
33
+ .output()
34
+ .map(|output| output.status.success())
35
+ .unwrap_or(false)
36
+ }
37
+
17
38
  fn find_code_command() -> Result<String, String> {
39
+ // First, check if we're in an integrated terminal
40
+ if let Ok(term_program) = std::env::var("TERM_PROGRAM") {
41
+ let preferred_cmd = match term_program.to_lowercase().as_str() {
42
+ "vscode" => "code",
43
+ "cursor" => "cursor",
44
+ "windsurf" => "windsurf",
45
+ _ => "",
46
+ };
47
+
48
+ // Verify the preferred command exists and works
49
+ if !preferred_cmd.is_empty() && Self::command_exists(preferred_cmd) {
50
+ return Ok(preferred_cmd.to_string());
51
+ }
52
+ }
53
+
54
+ // Fallback to finding the first available command
18
55
  let commands = ["code", "cursor", "windsurf"];
19
56
 
20
57
  for cmd in &commands {
21
- if Command::new("which").arg(cmd).output().is_ok() {
22
- if let Ok(output) = Command::new(cmd).arg("--version").output() {
23
- if output.status.success() {
24
- return Ok(cmd.to_string());
25
- }
26
- }
58
+ if Self::command_exists(cmd) {
59
+ return Ok(cmd.to_string());
27
60
  }
28
61
  }
29
62
 
@@ -33,6 +66,52 @@ impl VsCodeExtension {
33
66
  ))
34
67
  }
35
68
 
69
+ /// Find all available VS Code-compatible editors
70
+ pub fn find_all_editors() -> Vec<(&'static str, &'static str)> {
71
+ let editors = [
72
+ ("code", "VS Code"),
73
+ ("cursor", "Cursor"),
74
+ ("windsurf", "Windsurf"),
75
+ ];
76
+
77
+ editors
78
+ .into_iter()
79
+ .filter(|(cmd, _)| Self::command_exists(cmd))
80
+ .collect()
81
+ }
82
+
83
+ /// Get the current editor from TERM_PROGRAM if available
84
+ pub fn current_editor_from_env() -> Option<(&'static str, &'static str)> {
85
+ if let Ok(term_program) = std::env::var("TERM_PROGRAM") {
86
+ match term_program.to_lowercase().as_str() {
87
+ "vscode" => {
88
+ if Self::command_exists("code") {
89
+ Some(("code", "VS Code"))
90
+ } else {
91
+ None
92
+ }
93
+ }
94
+ "cursor" => {
95
+ if Self::command_exists("cursor") {
96
+ Some(("cursor", "Cursor"))
97
+ } else {
98
+ None
99
+ }
100
+ }
101
+ "windsurf" => {
102
+ if Self::command_exists("windsurf") {
103
+ Some(("windsurf", "Windsurf"))
104
+ } else {
105
+ None
106
+ }
107
+ }
108
+ _ => None,
109
+ }
110
+ } else {
111
+ None
112
+ }
113
+ }
114
+
36
115
  pub fn install(&self, force: bool) -> Result<(), String> {
37
116
  if !force && self.is_installed()? {
38
117
  println!("{}", "✓ Rumdl VS Code extension is already installed".green());
@@ -0,0 +1,85 @@
1
+ #[cfg(test)]
2
+ mod vscode_tests {
3
+ use rumdl::vscode::VsCodeExtension;
4
+
5
+ #[test]
6
+ fn test_extension_constants() {
7
+ // Test that the extension ID is correct
8
+ assert_eq!(rumdl::vscode::EXTENSION_ID, "rvben.rumdl");
9
+ assert_eq!(rumdl::vscode::EXTENSION_NAME, "rumdl - Markdown Linter");
10
+ }
11
+
12
+ #[test]
13
+ fn test_vscode_extension_creation() {
14
+ // This test might fail if VS Code is not installed, which is fine
15
+ match VsCodeExtension::new() {
16
+ Ok(_) => {
17
+ // VS Code is installed, extension should be created successfully
18
+ assert!(true);
19
+ }
20
+ Err(e) => {
21
+ // VS Code is not installed, check error message
22
+ assert!(e.contains("VS Code (or compatible editor) not found"));
23
+ }
24
+ }
25
+ }
26
+
27
+ #[test]
28
+ fn test_handle_vscode_command_status() {
29
+ // Test status command - should not fail even if VS Code is not installed
30
+ match rumdl::vscode::handle_vscode_command(false, true) {
31
+ Ok(_) => assert!(true),
32
+ Err(e) => {
33
+ // Only acceptable error is VS Code not found
34
+ assert!(e.contains("VS Code (or compatible editor) not found"));
35
+ }
36
+ }
37
+ }
38
+
39
+ #[test]
40
+ fn test_find_all_editors() {
41
+ // Test that find_all_editors returns a list
42
+ let editors = VsCodeExtension::find_all_editors();
43
+ // We can't assert specific editors exist, but we can check the type
44
+ assert!(editors.is_empty() || editors.iter().all(|(cmd, name)| !cmd.is_empty() && !name.is_empty()));
45
+ }
46
+
47
+ #[test]
48
+ fn test_current_editor_from_env() {
49
+ // Save current TERM_PROGRAM if any
50
+ let original = std::env::var("TERM_PROGRAM").ok();
51
+
52
+ // Test with VS Code
53
+ std::env::set_var("TERM_PROGRAM", "vscode");
54
+ let _result = VsCodeExtension::current_editor_from_env();
55
+ // Result depends on whether VS Code is actually installed
56
+
57
+ // Test with unknown terminal
58
+ std::env::set_var("TERM_PROGRAM", "unknown");
59
+ assert!(VsCodeExtension::current_editor_from_env().is_none());
60
+
61
+ // Restore original
62
+ match original {
63
+ Some(val) => std::env::set_var("TERM_PROGRAM", val),
64
+ None => std::env::remove_var("TERM_PROGRAM"),
65
+ }
66
+ }
67
+
68
+ #[test]
69
+ fn test_with_command() {
70
+ // Test with a command that should exist on all systems
71
+ match VsCodeExtension::with_command("sh") {
72
+ Ok(_) => assert!(true),
73
+ Err(e) => {
74
+ // On Windows, sh might not exist
75
+ assert!(e.contains("not found") || e.contains("not working"));
76
+ }
77
+ }
78
+
79
+ // Test with a command that definitely doesn't exist
80
+ match VsCodeExtension::with_command("this_command_does_not_exist") {
81
+ Ok(_) => panic!("Should not succeed with non-existent command"),
82
+ Err(e) => assert!(e.contains("not found") || e.contains("not working")),
83
+ }
84
+ }
85
+ }
@@ -1,38 +0,0 @@
1
- #[cfg(test)]
2
- mod vscode_tests {
3
- use rumdl::vscode::VsCodeExtension;
4
-
5
- #[test]
6
- fn test_extension_constants() {
7
- // Test that the extension ID is correct
8
- assert_eq!(rumdl::vscode::EXTENSION_ID, "rvben.rumdl");
9
- assert_eq!(rumdl::vscode::EXTENSION_NAME, "rumdl - Markdown Linter");
10
- }
11
-
12
- #[test]
13
- fn test_vscode_extension_creation() {
14
- // This test might fail if VS Code is not installed, which is fine
15
- match VsCodeExtension::new() {
16
- Ok(_) => {
17
- // VS Code is installed, extension should be created successfully
18
- assert!(true);
19
- }
20
- Err(e) => {
21
- // VS Code is not installed, check error message
22
- assert!(e.contains("VS Code (or compatible editor) not found"));
23
- }
24
- }
25
- }
26
-
27
- #[test]
28
- fn test_handle_vscode_command_status() {
29
- // Test status command - should not fail even if VS Code is not installed
30
- match rumdl::vscode::handle_vscode_command(true, false) {
31
- Ok(_) => assert!(true),
32
- Err(e) => {
33
- // Only acceptable error is VS Code not found
34
- assert!(e.contains("VS Code (or compatible editor) not found"));
35
- }
36
- }
37
- }
38
- }
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