rumdl 0.0.78__tar.gz → 0.0.79__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 (263) hide show
  1. {rumdl-0.0.78 → rumdl-0.0.79}/Cargo.lock +1 -1
  2. {rumdl-0.0.78 → rumdl-0.0.79}/Cargo.toml +1 -1
  3. {rumdl-0.0.78 → rumdl-0.0.79}/PKG-INFO +1 -1
  4. {rumdl-0.0.78 → rumdl-0.0.79}/src/config.rs +1 -1
  5. {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/server.rs +60 -14
  6. {rumdl-0.0.78 → rumdl-0.0.79}/src/main.rs +19 -43
  7. {rumdl-0.0.78 → rumdl-0.0.79}/.rumdl.toml +0 -0
  8. {rumdl-0.0.78 → rumdl-0.0.79}/MANIFEST.in +0 -0
  9. {rumdl-0.0.78 → rumdl-0.0.79}/Makefile +0 -0
  10. {rumdl-0.0.78 → rumdl-0.0.79}/README.md +0 -0
  11. {rumdl-0.0.78 → rumdl-0.0.79}/assets/logo.png +0 -0
  12. {rumdl-0.0.78 → rumdl-0.0.79}/benches/fix_performance.rs +0 -0
  13. {rumdl-0.0.78 → rumdl-0.0.79}/benches/range_performance.rs +0 -0
  14. {rumdl-0.0.78 → rumdl-0.0.79}/benches/range_utils_benchmark.rs +0 -0
  15. {rumdl-0.0.78 → rumdl-0.0.79}/benches/rule_performance.rs +0 -0
  16. {rumdl-0.0.78 → rumdl-0.0.79}/benches/simple_fix_bench.rs +0 -0
  17. {rumdl-0.0.78 → rumdl-0.0.79}/docs/RULES.md +0 -0
  18. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md001.md +0 -0
  19. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md002.md +0 -0
  20. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md003.md +0 -0
  21. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md004.md +0 -0
  22. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md005.md +0 -0
  23. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md006.md +0 -0
  24. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md007.md +0 -0
  25. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md009.md +0 -0
  26. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md010.md +0 -0
  27. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md011.md +0 -0
  28. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md012.md +0 -0
  29. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md013.md +0 -0
  30. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md014.md +0 -0
  31. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md018.md +0 -0
  32. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md019.md +0 -0
  33. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md020.md +0 -0
  34. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md021.md +0 -0
  35. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md022.md +0 -0
  36. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md023.md +0 -0
  37. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md024.md +0 -0
  38. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md025.md +0 -0
  39. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md026.md +0 -0
  40. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md027.md +0 -0
  41. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md028.md +0 -0
  42. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md029.md +0 -0
  43. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md030.md +0 -0
  44. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md031.md +0 -0
  45. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md032.md +0 -0
  46. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md033.md +0 -0
  47. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md034.md +0 -0
  48. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md035.md +0 -0
  49. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md036.md +0 -0
  50. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md037.md +0 -0
  51. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md038.md +0 -0
  52. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md039.md +0 -0
  53. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md040.md +0 -0
  54. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md041.md +0 -0
  55. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md042.md +0 -0
  56. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md043.md +0 -0
  57. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md044.md +0 -0
  58. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md045.md +0 -0
  59. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md046.md +0 -0
  60. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md047.md +0 -0
  61. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md048.md +0 -0
  62. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md049.md +0 -0
  63. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md050.md +0 -0
  64. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md051.md +0 -0
  65. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md052.md +0 -0
  66. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md053.md +0 -0
  67. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md054.md +0 -0
  68. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md055.md +0 -0
  69. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md056.md +0 -0
  70. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md057.md +0 -0
  71. {rumdl-0.0.78 → rumdl-0.0.79}/docs/md058.md +0 -0
  72. {rumdl-0.0.78 → rumdl-0.0.79}/issues/plan-rule-parity-with-markdownlint.md +0 -0
  73. {rumdl-0.0.78 → rumdl-0.0.79}/parity_check.py +0 -0
  74. {rumdl-0.0.78 → rumdl-0.0.79}/pyproject.toml +0 -0
  75. {rumdl-0.0.78 → rumdl-0.0.79}/python/MANIFEST.in +0 -0
  76. {rumdl-0.0.78 → rumdl-0.0.79}/python/PYTHON-README.md +0 -0
  77. {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/__init__.py +0 -0
  78. {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/__main__.py +0 -0
  79. {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/py.typed +0 -0
  80. {rumdl-0.0.78 → rumdl-0.0.79}/rumdl.toml.example +0 -0
  81. {rumdl-0.0.78 → rumdl-0.0.79}/src/init.rs +0 -0
  82. {rumdl-0.0.78 → rumdl-0.0.79}/src/lib.rs +0 -0
  83. {rumdl-0.0.78 → rumdl-0.0.79}/src/lint_context.rs +0 -0
  84. {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/mod.rs +0 -0
  85. {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/types.rs +0 -0
  86. {rumdl-0.0.78 → rumdl-0.0.79}/src/markdownlint_config.rs +0 -0
  87. {rumdl-0.0.78 → rumdl-0.0.79}/src/parallel.rs +0 -0
  88. {rumdl-0.0.78 → rumdl-0.0.79}/src/performance.rs +0 -0
  89. {rumdl-0.0.78 → rumdl-0.0.79}/src/profiling.rs +0 -0
  90. {rumdl-0.0.78 → rumdl-0.0.79}/src/python.rs +0 -0
  91. {rumdl-0.0.78 → rumdl-0.0.79}/src/rule.rs +0 -0
  92. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/blockquote_utils.rs +0 -0
  93. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/code_block_utils.rs +0 -0
  94. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/code_fence_utils.rs +0 -0
  95. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/emphasis_style.rs +0 -0
  96. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/front_matter_utils.rs +0 -0
  97. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/heading_utils.rs +0 -0
  98. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/list_utils.rs +0 -0
  99. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md001_heading_increment.rs +0 -0
  100. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md002_first_heading_h1.rs +0 -0
  101. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md003_heading_style.rs +0 -0
  102. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md004_unordered_list_style.rs +0 -0
  103. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md005_list_indent.rs +0 -0
  104. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md006_start_bullets.rs +0 -0
  105. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md007_ul_indent.rs +0 -0
  106. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md009_trailing_spaces.rs +0 -0
  107. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md010_no_hard_tabs.rs +0 -0
  108. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md011_no_reversed_links.rs +0 -0
  109. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md012_no_multiple_blanks.rs +0 -0
  110. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md013_line_length.rs +0 -0
  111. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md014_commands_show_output.rs +0 -0
  112. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md018_no_missing_space_atx.rs +0 -0
  113. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md019_no_multiple_space_atx.rs +0 -0
  114. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
  115. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
  116. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md022_blanks_around_headings.rs +0 -0
  117. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md023_heading_start_left.rs +0 -0
  118. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md024_no_duplicate_heading.rs +0 -0
  119. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md025_single_title.rs +0 -0
  120. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md026_no_trailing_punctuation.rs +0 -0
  121. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
  122. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md028_no_blanks_blockquote.rs +0 -0
  123. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md029_ordered_list_prefix.rs +0 -0
  124. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md030_list_marker_space.rs +0 -0
  125. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md031_blanks_around_fences.rs +0 -0
  126. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md032_blanks_around_lists.rs +0 -0
  127. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md033_no_inline_html.rs +0 -0
  128. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md034_no_bare_urls.rs +0 -0
  129. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md035_hr_style.rs +0 -0
  130. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md036_no_emphasis_only_first.rs +0 -0
  131. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md037_spaces_around_emphasis.rs +0 -0
  132. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md038_no_space_in_code.rs +0 -0
  133. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md039_no_space_in_links.rs +0 -0
  134. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md040_fenced_code_language.rs +0 -0
  135. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md041_first_line_heading.rs +0 -0
  136. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md042_no_empty_links.rs +0 -0
  137. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md043_required_headings.rs +0 -0
  138. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md044_proper_names.rs +0 -0
  139. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md045_no_alt_text.rs +0 -0
  140. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md046_code_block_style.rs +0 -0
  141. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md047_single_trailing_newline.rs +0 -0
  142. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md048_code_fence_style.rs +0 -0
  143. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md049_emphasis_style.rs +0 -0
  144. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md050_strong_style.rs +0 -0
  145. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md051_link_fragments.rs +0 -0
  146. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md052_reference_links_images.rs +0 -0
  147. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md053_link_image_reference_definitions.rs +0 -0
  148. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md054_link_image_style.rs +0 -0
  149. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md055_table_pipe_style.rs +0 -0
  150. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md056_table_column_count.rs +0 -0
  151. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md057_existing_relative_links.rs +0 -0
  152. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md058_blanks_around_tables.rs +0 -0
  153. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/mod.rs +0 -0
  154. {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/strong_style.rs +0 -0
  155. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/ast_utils.rs +0 -0
  156. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/code_block_utils.rs +0 -0
  157. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/document_structure.rs +0 -0
  158. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/early_returns.rs +0 -0
  159. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/element_cache.rs +0 -0
  160. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/markdown_elements.rs +0 -0
  161. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/mod.rs +0 -0
  162. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/range_utils.rs +0 -0
  163. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/regex_cache.rs +0 -0
  164. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/string_interner.rs +0 -0
  165. {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/table_utils.rs +0 -0
  166. {rumdl-0.0.78 → rumdl-0.0.79}/tests/advanced_integration_tests.rs +0 -0
  167. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/additional_tests.rs +0 -0
  168. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/basic_tests.rs +0 -0
  169. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/comprehensive_tests.rs +0 -0
  170. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/extended_tests.rs +0 -0
  171. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/mod.rs +0 -0
  172. {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/unicode_utils.rs +0 -0
  173. {rumdl-0.0.78 → rumdl-0.0.79}/tests/cli_duplication_test.rs +0 -0
  174. {rumdl-0.0.78 → rumdl-0.0.79}/tests/cli_integration_tests.rs +0 -0
  175. {rumdl-0.0.78 → rumdl-0.0.79}/tests/commonmark_compliance_tests.rs +0 -0
  176. {rumdl-0.0.78 → rumdl-0.0.79}/tests/comprehensive_integration_tests.rs +0 -0
  177. {rumdl-0.0.78 → rumdl-0.0.79}/tests/config_application_tests.rs +0 -0
  178. {rumdl-0.0.78 → rumdl-0.0.79}/tests/config_tests.rs +0 -0
  179. {rumdl-0.0.78 → rumdl-0.0.79}/tests/init_command_test.rs +0 -0
  180. {rumdl-0.0.78 → rumdl-0.0.79}/tests/init_tests.rs +0 -0
  181. {rumdl-0.0.78 → rumdl-0.0.79}/tests/integration_tests.rs +0 -0
  182. {rumdl-0.0.78 → rumdl-0.0.79}/tests/json_output_test.rs +0 -0
  183. {rumdl-0.0.78 → rumdl-0.0.79}/tests/lib.rs +0 -0
  184. {rumdl-0.0.78 → rumdl-0.0.79}/tests/lsp_integration_tests.rs +0 -0
  185. {rumdl-0.0.78 → rumdl-0.0.79}/tests/lsp_tests.rs +0 -0
  186. {rumdl-0.0.78 → rumdl-0.0.79}/tests/markdownlint_cli_integration.rs +0 -0
  187. {rumdl-0.0.78 → rumdl-0.0.79}/tests/markdownlint_config_test.rs +0 -0
  188. {rumdl-0.0.78 → rumdl-0.0.79}/tests/md030_edge_cases.md +0 -0
  189. {rumdl-0.0.78 → rumdl-0.0.79}/tests/output_format_tests.rs +0 -0
  190. {rumdl-0.0.78 → rumdl-0.0.79}/tests/perf_check.rs +0 -0
  191. {rumdl-0.0.78 → rumdl-0.0.79}/tests/pyproject_config_tests.rs +0 -0
  192. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md001_test.rs +0 -0
  193. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md001_unicode_test.rs +0 -0
  194. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md002_test.rs +0 -0
  195. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md003_test.rs +0 -0
  196. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md004_test.rs +0 -0
  197. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md005_test.rs +0 -0
  198. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md006_test.rs +0 -0
  199. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md006_unicode_test.rs +0 -0
  200. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md007_test.rs +0 -0
  201. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md009_test.rs +0 -0
  202. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md010_test.rs +0 -0
  203. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md011_test.rs +0 -0
  204. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md012_test.rs +0 -0
  205. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md013_test.rs +0 -0
  206. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md014_test.rs +0 -0
  207. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md018_test.rs +0 -0
  208. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md019_test.rs +0 -0
  209. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md020_test.rs +0 -0
  210. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md021_test.rs +0 -0
  211. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md022_test.rs +0 -0
  212. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md023_extended_test.rs +0 -0
  213. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md023_test.rs +0 -0
  214. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md024_test.rs +0 -0
  215. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md025_test.rs +0 -0
  216. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md026_test.rs +0 -0
  217. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md027_test.rs +0 -0
  218. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md028_test.rs +0 -0
  219. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md029_test.rs +0 -0
  220. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md030_test.rs +0 -0
  221. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md031_test.rs +0 -0
  222. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md032_test.rs +0 -0
  223. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md033_extended_test.rs +0 -0
  224. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md033_test.rs +0 -0
  225. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md034_test.rs +0 -0
  226. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md035_test.rs +0 -0
  227. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md036_test.rs +0 -0
  228. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md037_test.rs +0 -0
  229. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md038_test.rs +0 -0
  230. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md039_test.rs +0 -0
  231. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md040_test.rs +0 -0
  232. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md041_test.rs +0 -0
  233. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md042_test.rs +0 -0
  234. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md043_test.rs +0 -0
  235. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md044_test.rs +0 -0
  236. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md045_test.rs +0 -0
  237. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md046_test.rs +0 -0
  238. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md047_test.rs +0 -0
  239. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md048_test.rs +0 -0
  240. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md049_test.rs +0 -0
  241. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md050_test.rs +0 -0
  242. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md051_test.rs +0 -0
  243. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md052_test.rs +0 -0
  244. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_additional_test.rs +0 -0
  245. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_proptest.rs +0 -0
  246. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_test.rs +0 -0
  247. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md054_test.rs +0 -0
  248. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md054_unicode_test.rs +0 -0
  249. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md055_test.rs +0 -0
  250. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md056_test.rs +0 -0
  251. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md057_test.rs +0 -0
  252. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md058_test.rs +0 -0
  253. {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/mod.rs +0 -0
  254. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/blockquote_utils_test.rs +0 -0
  255. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/code_block_utils_extended_test.rs +0 -0
  256. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/code_block_utils_test.rs +0 -0
  257. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/core_utils_test.rs +0 -0
  258. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/front_matter_utils_test.rs +0 -0
  259. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/line_index_test.rs +0 -0
  260. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/mod.rs +0 -0
  261. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils_markdown_edge_cases.rs +0 -0
  262. {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils_tests.rs +0 -0
  263. {rumdl-0.0.78 → rumdl-0.0.79}/tests/vscode_extension_fixes.rs +0 -0
@@ -1783,7 +1783,7 @@ dependencies = [
1783
1783
 
1784
1784
  [[package]]
1785
1785
  name = "rumdl"
1786
- version = "0.0.78"
1786
+ version = "0.0.79"
1787
1787
  dependencies = [
1788
1788
  "anyhow",
1789
1789
  "assert_cmd",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rumdl"
3
- version = "0.0.78"
3
+ version = "0.0.79"
4
4
  edition = "2021"
5
5
  description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
6
6
  authors = ["Ruben J. Jongejan <ruben.jongejan@gmail.com>"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rumdl
3
- Version: 0.0.78
3
+ Version: 0.0.79
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -697,7 +697,7 @@ impl SourcedConfig {
697
697
  }
698
698
  }
699
699
 
700
- /// Load and merge configurations from files and CLI overrides.
700
+ /// Load and merge configurations from files and CLI overrides.
701
701
  pub fn load(
702
702
  config_path: Option<&str>,
703
703
  cli_overrides: Option<&SourcedGlobalConfig>,
@@ -119,6 +119,57 @@ impl RumdlLanguageServer {
119
119
  }
120
120
  }
121
121
  }
122
+
123
+ /// Load or reload rumdl configuration from files
124
+ async fn load_configuration(&self, notify_client: bool) {
125
+ let config_guard = self.config.read().await;
126
+ let explicit_config_path = config_guard.config_path.clone();
127
+ drop(config_guard);
128
+
129
+ // Use the same discovery logic as CLI but with LSP-specific error handling
130
+ match Self::load_config_for_lsp(explicit_config_path.as_deref()) {
131
+ Ok(sourced_config) => {
132
+ let loaded_files = sourced_config.loaded_files.clone();
133
+ *self.rumdl_config.write().await = sourced_config.into();
134
+
135
+ if !loaded_files.is_empty() {
136
+ let message = format!("Loaded rumdl config from: {}", loaded_files.join(", "));
137
+ log::info!("{}", message);
138
+ if notify_client {
139
+ self.client
140
+ .log_message(MessageType::INFO, &message)
141
+ .await;
142
+ }
143
+ } else {
144
+ log::info!("Using default rumdl configuration (no config files found)");
145
+ }
146
+ }
147
+ Err(e) => {
148
+ let message = format!("Failed to load rumdl config: {}", e);
149
+ log::warn!("{}", message);
150
+ if notify_client {
151
+ self.client
152
+ .log_message(MessageType::WARNING, &message)
153
+ .await;
154
+ }
155
+ // Use default configuration
156
+ *self.rumdl_config.write().await = crate::config::Config::default();
157
+ }
158
+ }
159
+ }
160
+
161
+ /// Reload rumdl configuration from files (with client notification)
162
+ async fn reload_configuration(&self) {
163
+ self.load_configuration(true).await;
164
+ }
165
+
166
+ /// Load configuration for LSP - similar to CLI loading but returns Result
167
+ fn load_config_for_lsp(
168
+ config_path: Option<&str>,
169
+ ) -> Result<crate::config::SourcedConfig, crate::config::ConfigError> {
170
+ // Use the same configuration loading as the CLI
171
+ crate::config::SourcedConfig::load_with_discovery(config_path, None, false)
172
+ }
122
173
  }
123
174
 
124
175
  #[tower_lsp::async_trait]
@@ -133,20 +184,8 @@ impl LanguageServer for RumdlLanguageServer {
133
184
  }
134
185
  }
135
186
 
136
- // Load rumdl configuration if specified
137
- let config_guard = self.config.read().await;
138
- if let Some(config_path) = &config_guard.config_path {
139
- match crate::config::SourcedConfig::load(Some(config_path), None) {
140
- Ok(sourced_config) => {
141
- *self.rumdl_config.write().await = sourced_config.into();
142
- log::info!("Loaded rumdl config from: {}", config_path);
143
- }
144
- Err(e) => {
145
- log::warn!("Failed to load config from {}: {}", config_path, e);
146
- }
147
- }
148
- }
149
- drop(config_guard);
187
+ // Load rumdl configuration with auto-discovery
188
+ self.load_configuration(false).await;
150
189
 
151
190
  Ok(InitializeResult {
152
191
  capabilities: ServerCapabilities {
@@ -186,6 +225,13 @@ impl LanguageServer for RumdlLanguageServer {
186
225
  .await;
187
226
  }
188
227
 
228
+ async fn did_change_workspace_folders(&self, _params: DidChangeWorkspaceFoldersParams) {
229
+ // Reload configuration when workspace folders change
230
+ self.reload_configuration().await;
231
+ }
232
+
233
+
234
+
189
235
  async fn shutdown(&self) -> JsonRpcResult<()> {
190
236
  log::info!("Shutting down rumdl Language Server");
191
237
  Ok(())
@@ -47,6 +47,21 @@ fn read_file_efficiently(path: &Path) -> Result<String, Box<dyn Error>> {
47
47
  }
48
48
  }
49
49
 
50
+ /// Utility function to load configuration with standard CLI error handling.
51
+ /// This eliminates duplication between different CLI commands that load configuration.
52
+ fn load_config_with_cli_error_handling(
53
+ config_path: Option<&str>,
54
+ no_config: bool,
55
+ ) -> rumdl_config::SourcedConfig {
56
+ match rumdl_config::SourcedConfig::load_with_discovery(config_path, None, no_config) {
57
+ Ok(config) => config,
58
+ Err(e) => {
59
+ eprintln!("{}: {}", "Config error".red().bold(), e);
60
+ std::process::exit(1);
61
+ }
62
+ }
63
+ }
64
+
50
65
  #[derive(Parser)]
51
66
  #[command(author, version, about, long_about = None)]
52
67
  struct Cli {
@@ -1100,17 +1115,7 @@ build-backend = \"setuptools.build_meta\"
1100
1115
  }
1101
1116
  // Handle 'config file' subcommand for showing config file path
1102
1117
  else if let Some(ConfigSubcommand::File) = subcmd {
1103
- let sourced = match rumdl_config::SourcedConfig::load_with_discovery(
1104
- cli.config.as_deref(),
1105
- None,
1106
- cli.no_config,
1107
- ) {
1108
- Ok(s) => s,
1109
- Err(e) => {
1110
- eprintln!("{}: {}", "Config error".red().bold(), e);
1111
- std::process::exit(1);
1112
- }
1113
- };
1118
+ let sourced = load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config);
1114
1119
 
1115
1120
  if sourced.loaded_files.is_empty() {
1116
1121
  if cli.no_config {
@@ -1143,17 +1148,7 @@ build-backend = \"setuptools.build_meta\"
1143
1148
  let sourced_reg = if *defaults {
1144
1149
  rumdl_config::SourcedConfig::default()
1145
1150
  } else {
1146
- match rumdl_config::SourcedConfig::load_with_discovery(
1147
- cli.config.as_deref(),
1148
- None,
1149
- cli.no_config,
1150
- ) {
1151
- Ok(s) => s,
1152
- Err(e) => {
1153
- eprintln!("{}: {}", "Config error".red().bold(), e);
1154
- std::process::exit(1);
1155
- }
1156
- }
1151
+ load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
1157
1152
  };
1158
1153
  let validation_warnings =
1159
1154
  rumdl_config::validate_config_sourced(&sourced_reg, &registry_reg);
@@ -1171,17 +1166,7 @@ build-backend = \"setuptools.build_meta\"
1171
1166
  rumdl_config::SourcedConfig::default()
1172
1167
  } else {
1173
1168
  // Reload config if not defaults (necessary because we exited early in 'get' case)
1174
- match rumdl_config::SourcedConfig::load_with_discovery(
1175
- cli.config.as_deref(),
1176
- None,
1177
- cli.no_config,
1178
- ) {
1179
- Ok(s) => s,
1180
- Err(e) => {
1181
- eprintln!("{}: {}", "Config error".red().bold(), e);
1182
- std::process::exit(1);
1183
- }
1184
- }
1169
+ load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
1185
1170
  };
1186
1171
 
1187
1172
  // If --output toml is set, print as valid TOML
@@ -1363,16 +1348,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs) {
1363
1348
 
1364
1349
  fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool) {
1365
1350
  // 1. Load sourced config (for provenance and validation)
1366
- let sourced =
1367
- match rumdl_config::SourcedConfig::load_with_discovery(global_config_path, None, no_config)
1368
- {
1369
- Ok(sourced) => sourced,
1370
- Err(e) => {
1371
- // Syntax error or type mismatch: fail and exit
1372
- eprintln!("{}: {}", "Config error".red().bold(), e);
1373
- std::process::exit(1);
1374
- }
1375
- };
1351
+ let sourced = load_config_with_cli_error_handling(global_config_path, no_config);
1376
1352
 
1377
1353
  // 2. Validate config (unknown keys/rules/options)
1378
1354
  let all_rules = rumdl::rules::all_rules(&rumdl_config::Config::default());
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
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