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.
- {rumdl-0.0.86 → rumdl-0.0.87}/CHANGELOG.md +4 -1
- {rumdl-0.0.86 → rumdl-0.0.87}/Cargo.lock +35 -39
- {rumdl-0.0.86 → rumdl-0.0.87}/Cargo.toml +1 -1
- {rumdl-0.0.86 → rumdl-0.0.87}/PKG-INFO +1 -1
- {rumdl-0.0.86 → rumdl-0.0.87}/src/main.rs +115 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/vscode.rs +85 -6
- rumdl-0.0.87/tests/vscode_test.rs +85 -0
- rumdl-0.0.86/tests/vscode_test.rs +0 -38
- {rumdl-0.0.86 → rumdl-0.0.87}/.config/nextest.toml +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/.mise.toml +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/.rumdl.toml +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/MANIFEST.in +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/Makefile +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/README.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/assets/logo.png +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/benches/range_performance.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/RULES.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/global-settings.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md001.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md002.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md003.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md004.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md005.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md006.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md007.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md009.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md010.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md011.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md012.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md013.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md014.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md018.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md019.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md020.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md021.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md022.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md023.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md024.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md025.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md026.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md027.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md028.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md029.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md030.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md031.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md032.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md033.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md034.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md035.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md036.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md037.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md038.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md039.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md040.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md041.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md042.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md043.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md044.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md045.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md046.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md047.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md048.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md049.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md050.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md051.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md052.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md053.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md054.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md055.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md056.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md057.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/md058.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/issues/plan-rule-parity-with-markdownlint.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/parity_check.py +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/pyproject.toml +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/python/MANIFEST.in +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/rumdl.toml.example +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/rust-toolchain.toml +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/init.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/inline_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/lib.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/lint_context.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/server.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/lsp/types.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/parallel.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/performance.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/profiling.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/python.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rule.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rule_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/config_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/init_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/lib.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/md030_edge_cases.md +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/perf_check.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.86 → rumdl-0.0.87}/tests/utils_tests.rs +0 -0
- {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.
|
|
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.
|
|
247
|
+
version = "1.2.27"
|
|
248
248
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
249
|
-
checksum = "
|
|
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.
|
|
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.
|
|
874
|
+
version = "0.5.2"
|
|
875
875
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
876
|
-
checksum = "
|
|
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.
|
|
1103
|
+
version = "0.2.15"
|
|
1104
1104
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1105
|
-
checksum = "
|
|
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.
|
|
1116
|
+
version = "0.2.15"
|
|
1117
1117
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1118
|
-
checksum = "
|
|
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.
|
|
1154
|
+
version = "0.2.173"
|
|
1155
1155
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1156
|
-
checksum = "
|
|
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.
|
|
1210
|
+
version = "2.7.5"
|
|
1211
1211
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1212
|
-
checksum = "
|
|
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.
|
|
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.
|
|
1357
|
+
version = "2.8.1"
|
|
1358
1358
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1359
|
-
checksum = "
|
|
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.
|
|
1368
|
+
version = "2.8.1"
|
|
1369
1369
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1370
|
-
checksum = "
|
|
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.
|
|
1378
|
+
version = "2.8.1"
|
|
1379
1379
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1380
|
-
checksum = "
|
|
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.
|
|
1391
|
+
version = "2.8.1"
|
|
1392
1392
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1393
|
-
checksum = "
|
|
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.
|
|
1705
|
+
version = "0.5.13"
|
|
1707
1706
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1708
|
-
checksum = "
|
|
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.
|
|
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.
|
|
1984
|
+
version = "0.4.10"
|
|
1986
1985
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1987
|
-
checksum = "
|
|
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.
|
|
2018
|
+
version = "2.0.103"
|
|
2023
2019
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2024
|
-
checksum = "
|
|
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.
|
|
2463
|
+
version = "0.11.1+wasi-snapshot-preview1"
|
|
2468
2464
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2469
|
-
checksum = "
|
|
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.
|
|
2600
|
+
version = "0.1.3"
|
|
2605
2601
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2606
|
-
checksum = "
|
|
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.
|
|
2706
|
+
version = "0.7.11"
|
|
2711
2707
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2712
|
-
checksum = "
|
|
2708
|
+
checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd"
|
|
2713
2709
|
dependencies = [
|
|
2714
2710
|
"memchr",
|
|
2715
2711
|
]
|
|
@@ -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
|
|
22
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|