rumdl 0.0.94__tar.gz → 0.0.95__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.94 → rumdl-0.0.95}/CHANGELOG.md +16 -1
- {rumdl-0.0.94 → rumdl-0.0.95}/Cargo.lock +18 -18
- {rumdl-0.0.94 → rumdl-0.0.95}/Cargo.toml +1 -1
- {rumdl-0.0.94 → rumdl-0.0.95}/PKG-INFO +11 -1
- {rumdl-0.0.94 → rumdl-0.0.95}/README.md +10 -0
- rumdl-0.0.95/src/exit_codes.rs +34 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/lib.rs +1 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/main.rs +31 -31
- {rumdl-0.0.94 → rumdl-0.0.95}/.config/nextest.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/.mise.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/.rumdl.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/.rustfmt.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/LICENSE +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/MANIFEST.in +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/Makefile +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/assets/logo.png +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/benches/range_performance.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/RULES.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/global-settings.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md001.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md002.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md003.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md004.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md005.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md006.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md007.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md009.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md010.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md011.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md012.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md013.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md014.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md018.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md019.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md020.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md021.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md022.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md023.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md024.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md025.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md026.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md027.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md028.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md029.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md030.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md031.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md032.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md033.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md034.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md035.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md036.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md037.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md038.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md039.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md040.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md041.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md042.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md043.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md044.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md045.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md046.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md047.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md048.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md049.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md050.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md051.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md052.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md053.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md054.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md055.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md056.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md057.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/md058.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/parity_check.py +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/pyproject.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/python/MANIFEST.in +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/rumdl.toml.example +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/rust-toolchain.toml +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/bin/benchmark.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/init.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/inline_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/lint_context.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/lsp/server.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/lsp/types.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/output/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/parallel.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/performance.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/profiling.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/python.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rule.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rule_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/src/vscode.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/config_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/init_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/lib.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/perf_check.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md051_unicode_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.94 → rumdl-0.0.95}/tests/vscode_tests.rs +0 -0
|
@@ -7,8 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.95] - 2025-07-15
|
|
11
|
+
|
|
10
12
|
## [0.0.94] - 2025-07-04
|
|
11
13
|
|
|
14
|
+
### Performance Improvements
|
|
15
|
+
- Implemented lazy code span loading - 3.8x speedup for 94% of rules that don't use code spans
|
|
16
|
+
- MD013: 34.5% faster check operations through aggressive early returns
|
|
17
|
+
- MD038: 14% faster by leveraging lazy code span loading
|
|
18
|
+
- MD044: 93.5% faster with global regex caching
|
|
19
|
+
- MD047: 8.3% faster using pre-computed line data
|
|
20
|
+
- MD053: 39.7% faster by leveraging pre-parsed reference definitions
|
|
21
|
+
- Overall LintContext creation improved by 11.7%
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- MD053: Fixed escaped character handling in reference definitions
|
|
25
|
+
|
|
12
26
|
## [0.0.93] - 2025-07-03
|
|
13
27
|
|
|
14
28
|
## [0.0.92] - 2025-07-02
|
|
@@ -135,7 +149,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
135
149
|
|
|
136
150
|
- Initial implementation of remaining rules for markdownlint parity
|
|
137
151
|
|
|
138
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
152
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.95...HEAD
|
|
153
|
+
[0.0.95]: https://github.com/rvben/rumdl/compare/v0.0.94...v0.0.95
|
|
139
154
|
[0.0.94]: https://github.com/rvben/rumdl/compare/v0.0.93...v0.0.94
|
|
140
155
|
[0.0.93]: https://github.com/rvben/rumdl/compare/v0.0.92...v0.0.93
|
|
141
156
|
[0.0.92]: https://github.com/rvben/rumdl/compare/v0.0.91...v0.0.92
|
|
@@ -220,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
220
220
|
|
|
221
221
|
[[package]]
|
|
222
222
|
name = "cc"
|
|
223
|
-
version = "1.2.
|
|
223
|
+
version = "1.2.29"
|
|
224
224
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
225
|
-
checksum = "
|
|
225
|
+
checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362"
|
|
226
226
|
dependencies = [
|
|
227
227
|
"shlex",
|
|
228
228
|
]
|
|
@@ -277,9 +277,9 @@ dependencies = [
|
|
|
277
277
|
|
|
278
278
|
[[package]]
|
|
279
279
|
name = "clap"
|
|
280
|
-
version = "4.5.
|
|
280
|
+
version = "4.5.41"
|
|
281
281
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
282
|
-
checksum = "
|
|
282
|
+
checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9"
|
|
283
283
|
dependencies = [
|
|
284
284
|
"clap_builder",
|
|
285
285
|
"clap_derive",
|
|
@@ -287,9 +287,9 @@ dependencies = [
|
|
|
287
287
|
|
|
288
288
|
[[package]]
|
|
289
289
|
name = "clap_builder"
|
|
290
|
-
version = "4.5.
|
|
290
|
+
version = "4.5.41"
|
|
291
291
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
292
|
-
checksum = "
|
|
292
|
+
checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d"
|
|
293
293
|
dependencies = [
|
|
294
294
|
"anstream",
|
|
295
295
|
"anstyle",
|
|
@@ -299,9 +299,9 @@ dependencies = [
|
|
|
299
299
|
|
|
300
300
|
[[package]]
|
|
301
301
|
name = "clap_derive"
|
|
302
|
-
version = "4.5.
|
|
302
|
+
version = "4.5.41"
|
|
303
303
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
304
|
-
checksum = "
|
|
304
|
+
checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491"
|
|
305
305
|
dependencies = [
|
|
306
306
|
"heck",
|
|
307
307
|
"proc-macro2",
|
|
@@ -1004,9 +1004,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
|
|
|
1004
1004
|
|
|
1005
1005
|
[[package]]
|
|
1006
1006
|
name = "memmap2"
|
|
1007
|
-
version = "0.9.
|
|
1007
|
+
version = "0.9.7"
|
|
1008
1008
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1009
|
-
checksum = "
|
|
1009
|
+
checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28"
|
|
1010
1010
|
dependencies = [
|
|
1011
1011
|
"libc",
|
|
1012
1012
|
]
|
|
@@ -1465,7 +1465,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1465
1465
|
|
|
1466
1466
|
[[package]]
|
|
1467
1467
|
name = "rumdl"
|
|
1468
|
-
version = "0.0.
|
|
1468
|
+
version = "0.0.95"
|
|
1469
1469
|
dependencies = [
|
|
1470
1470
|
"anyhow",
|
|
1471
1471
|
"assert_cmd",
|
|
@@ -1522,15 +1522,15 @@ checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f"
|
|
|
1522
1522
|
|
|
1523
1523
|
[[package]]
|
|
1524
1524
|
name = "rustix"
|
|
1525
|
-
version = "1.0.
|
|
1525
|
+
version = "1.0.8"
|
|
1526
1526
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1527
|
-
checksum = "
|
|
1527
|
+
checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8"
|
|
1528
1528
|
dependencies = [
|
|
1529
1529
|
"bitflags 2.9.1",
|
|
1530
1530
|
"errno",
|
|
1531
1531
|
"libc",
|
|
1532
1532
|
"linux-raw-sys",
|
|
1533
|
-
"windows-sys 0.
|
|
1533
|
+
"windows-sys 0.60.2",
|
|
1534
1534
|
]
|
|
1535
1535
|
|
|
1536
1536
|
[[package]]
|
|
@@ -1796,9 +1796,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
|
|
1796
1796
|
|
|
1797
1797
|
[[package]]
|
|
1798
1798
|
name = "tokio"
|
|
1799
|
-
version = "1.46.
|
|
1799
|
+
version = "1.46.1"
|
|
1800
1800
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1801
|
-
checksum = "
|
|
1801
|
+
checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17"
|
|
1802
1802
|
dependencies = [
|
|
1803
1803
|
"backtrace",
|
|
1804
1804
|
"bytes",
|
|
@@ -2394,9 +2394,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
|
|
|
2394
2394
|
|
|
2395
2395
|
[[package]]
|
|
2396
2396
|
name = "winnow"
|
|
2397
|
-
version = "0.7.
|
|
2397
|
+
version = "0.7.12"
|
|
2398
2398
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2399
|
-
checksum = "
|
|
2399
|
+
checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95"
|
|
2400
2400
|
dependencies = [
|
|
2401
2401
|
"memchr",
|
|
2402
2402
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rumdl
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.95
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -375,6 +375,16 @@ These options are available for all commands:
|
|
|
375
375
|
- `--config <file>`: Path to configuration file
|
|
376
376
|
- `--no-config`: Ignore all configuration files and use built-in defaults
|
|
377
377
|
|
|
378
|
+
### Exit Codes
|
|
379
|
+
|
|
380
|
+
rumdl uses exit codes following Ruff's convention for easy CI/CD integration:
|
|
381
|
+
|
|
382
|
+
- `0`: Success - no issues found
|
|
383
|
+
- `1`: Linting violations found
|
|
384
|
+
- `2`: Tool error (configuration error, file access error, invalid arguments, etc.)
|
|
385
|
+
|
|
386
|
+
This allows scripts and CI/CD systems to distinguish between "the tool found problems in your files" (exit 1) and "the tool couldn't run properly" (exit 2).
|
|
387
|
+
|
|
378
388
|
### Usage Examples
|
|
379
389
|
|
|
380
390
|
```bash
|
|
@@ -344,6 +344,16 @@ These options are available for all commands:
|
|
|
344
344
|
- `--config <file>`: Path to configuration file
|
|
345
345
|
- `--no-config`: Ignore all configuration files and use built-in defaults
|
|
346
346
|
|
|
347
|
+
### Exit Codes
|
|
348
|
+
|
|
349
|
+
rumdl uses exit codes following Ruff's convention for easy CI/CD integration:
|
|
350
|
+
|
|
351
|
+
- `0`: Success - no issues found
|
|
352
|
+
- `1`: Linting violations found
|
|
353
|
+
- `2`: Tool error (configuration error, file access error, invalid arguments, etc.)
|
|
354
|
+
|
|
355
|
+
This allows scripts and CI/CD systems to distinguish between "the tool found problems in your files" (exit 1) and "the tool couldn't run properly" (exit 2).
|
|
356
|
+
|
|
347
357
|
### Usage Examples
|
|
348
358
|
|
|
349
359
|
```bash
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/// Exit codes for rumdl, following Ruff's convention
|
|
2
|
+
///
|
|
3
|
+
/// These exit codes allow users and CI/CD systems to distinguish between
|
|
4
|
+
/// different types of failures.
|
|
5
|
+
pub mod exit_codes {
|
|
6
|
+
/// Success - No issues found or all issues were fixed
|
|
7
|
+
pub const SUCCESS: i32 = 0;
|
|
8
|
+
|
|
9
|
+
/// Linting issues found - One or more Markdown violations detected
|
|
10
|
+
pub const VIOLATIONS_FOUND: i32 = 1;
|
|
11
|
+
|
|
12
|
+
/// Tool error - Configuration error, file access error, or internal error
|
|
13
|
+
pub const TOOL_ERROR: i32 = 2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/// Helper functions for consistent exit behavior
|
|
17
|
+
pub mod exit {
|
|
18
|
+
use super::exit_codes;
|
|
19
|
+
|
|
20
|
+
/// Exit with success code (0)
|
|
21
|
+
pub fn success() -> ! {
|
|
22
|
+
std::process::exit(exit_codes::SUCCESS);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/// Exit with violations found code (1)
|
|
26
|
+
pub fn violations_found() -> ! {
|
|
27
|
+
std::process::exit(exit_codes::VIOLATIONS_FOUND);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/// Exit with tool error code (2)
|
|
31
|
+
pub fn tool_error() -> ! {
|
|
32
|
+
std::process::exit(exit_codes::TOOL_ERROR);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -9,12 +9,12 @@ use std::error::Error;
|
|
|
9
9
|
use std::fs;
|
|
10
10
|
use std::io::{self, Read, Write};
|
|
11
11
|
use std::path::Path;
|
|
12
|
-
use std::process;
|
|
13
12
|
use std::str::FromStr;
|
|
14
13
|
use std::sync::Arc;
|
|
15
14
|
use std::time::Instant;
|
|
16
15
|
|
|
17
16
|
use rumdl::config as rumdl_config;
|
|
17
|
+
use rumdl::exit_codes::exit;
|
|
18
18
|
use rumdl::lint_context::LintContext;
|
|
19
19
|
use rumdl::rule::Rule;
|
|
20
20
|
use rumdl::rules::code_block_utils::CodeBlockStyle;
|
|
@@ -84,7 +84,7 @@ fn load_config_with_cli_error_handling_with_dir(
|
|
|
84
84
|
Ok(config) => config,
|
|
85
85
|
Err(e) => {
|
|
86
86
|
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
87
|
-
|
|
87
|
+
exit::tool_error();
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -990,13 +990,13 @@ fn main() -> Result<(), Box<dyn Error>> {
|
|
|
990
990
|
"Error".red().bold(),
|
|
991
991
|
e
|
|
992
992
|
);
|
|
993
|
-
|
|
993
|
+
exit::tool_error();
|
|
994
994
|
}
|
|
995
995
|
}
|
|
996
996
|
}
|
|
997
997
|
Err(e) => {
|
|
998
998
|
eprintln!("{}: Failed to read pyproject.toml: {}", "Error".red().bold(), e);
|
|
999
|
-
|
|
999
|
+
exit::tool_error();
|
|
1000
1000
|
}
|
|
1001
1001
|
}
|
|
1002
1002
|
} else {
|
|
@@ -1017,7 +1017,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1017
1017
|
}
|
|
1018
1018
|
Err(e) => {
|
|
1019
1019
|
eprintln!("{}: Failed to create pyproject.toml: {}", "Error".red().bold(), e);
|
|
1020
|
-
|
|
1020
|
+
exit::tool_error();
|
|
1021
1021
|
}
|
|
1022
1022
|
}
|
|
1023
1023
|
}
|
|
@@ -1033,7 +1033,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1033
1033
|
}
|
|
1034
1034
|
Err(e) => {
|
|
1035
1035
|
eprintln!("{}: Failed to create config file: {}", "Error".red().bold(), e);
|
|
1036
|
-
|
|
1036
|
+
exit::tool_error();
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
1039
|
}
|
|
@@ -1116,7 +1116,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1116
1116
|
);
|
|
1117
1117
|
} else {
|
|
1118
1118
|
eprintln!("Rule '{rule_query}' not found.");
|
|
1119
|
-
|
|
1119
|
+
exit::tool_error();
|
|
1120
1120
|
}
|
|
1121
1121
|
} else {
|
|
1122
1122
|
println!("Available rules:");
|
|
@@ -1145,7 +1145,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1145
1145
|
Ok(s) => s,
|
|
1146
1146
|
Err(e) => {
|
|
1147
1147
|
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1148
|
-
|
|
1148
|
+
exit::tool_error();
|
|
1149
1149
|
}
|
|
1150
1150
|
};
|
|
1151
1151
|
// 2. Convert to final Config once
|
|
@@ -1233,7 +1233,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1233
1233
|
// Successfully handled 'get', exit the command processing
|
|
1234
1234
|
} else {
|
|
1235
1235
|
eprintln!("Unknown global key: {field_part}");
|
|
1236
|
-
|
|
1236
|
+
exit::tool_error();
|
|
1237
1237
|
}
|
|
1238
1238
|
}
|
|
1239
1239
|
// Handle RULE keys (MDxxx.field)
|
|
@@ -1276,12 +1276,12 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1276
1276
|
}
|
|
1277
1277
|
}
|
|
1278
1278
|
eprintln!("Unknown config key: {normalized_rule_name}.{normalized_field}");
|
|
1279
|
-
|
|
1279
|
+
exit::tool_error();
|
|
1280
1280
|
}
|
|
1281
1281
|
}
|
|
1282
1282
|
} else {
|
|
1283
1283
|
eprintln!("Key must be in the form global.key or MDxxx.key");
|
|
1284
|
-
|
|
1284
|
+
exit::tool_error();
|
|
1285
1285
|
}
|
|
1286
1286
|
}
|
|
1287
1287
|
// Handle 'config file' subcommand for showing config file path
|
|
@@ -1374,7 +1374,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1374
1374
|
Ok(s) => println!("{s}"),
|
|
1375
1375
|
Err(e) => {
|
|
1376
1376
|
eprintln!("Failed to serialize config to TOML: {e}");
|
|
1377
|
-
|
|
1377
|
+
exit::tool_error();
|
|
1378
1378
|
}
|
|
1379
1379
|
}
|
|
1380
1380
|
} else {
|
|
@@ -1383,7 +1383,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1383
1383
|
Ok(s) => println!("{s}"),
|
|
1384
1384
|
Err(e) => {
|
|
1385
1385
|
eprintln!("Failed to serialize config to TOML: {e}");
|
|
1386
|
-
|
|
1386
|
+
exit::tool_error();
|
|
1387
1387
|
}
|
|
1388
1388
|
}
|
|
1389
1389
|
}
|
|
@@ -1413,7 +1413,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1413
1413
|
// TCP mode for debugging
|
|
1414
1414
|
if let Err(e) = rumdl::lsp::start_tcp_server(*port).await {
|
|
1415
1415
|
eprintln!("Failed to start LSP server on port {port}: {e}");
|
|
1416
|
-
|
|
1416
|
+
exit::tool_error();
|
|
1417
1417
|
}
|
|
1418
1418
|
} else {
|
|
1419
1419
|
// Standard LSP mode over stdio (default behavior)
|
|
@@ -1421,7 +1421,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1421
1421
|
let _ = stdio; // Suppress unused variable warning
|
|
1422
1422
|
if let Err(e) = rumdl::lsp::start_server().await {
|
|
1423
1423
|
eprintln!("Failed to start LSP server: {e}");
|
|
1424
|
-
|
|
1424
|
+
exit::tool_error();
|
|
1425
1425
|
}
|
|
1426
1426
|
}
|
|
1427
1427
|
});
|
|
@@ -1439,7 +1439,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1439
1439
|
Ok(config) => config,
|
|
1440
1440
|
Err(e) => {
|
|
1441
1441
|
eprintln!("{}: {}", "Import error".red().bold(), e);
|
|
1442
|
-
|
|
1442
|
+
exit::tool_error();
|
|
1443
1443
|
}
|
|
1444
1444
|
};
|
|
1445
1445
|
|
|
@@ -1620,7 +1620,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1620
1620
|
|
|
1621
1621
|
serde_json::to_string_pretty(&json_config).unwrap_or_else(|e| {
|
|
1622
1622
|
eprintln!("{}: Failed to serialize to JSON: {}", "Error".red().bold(), e);
|
|
1623
|
-
|
|
1623
|
+
exit::tool_error();
|
|
1624
1624
|
})
|
|
1625
1625
|
}
|
|
1626
1626
|
_ => {
|
|
@@ -1629,7 +1629,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1629
1629
|
"Error".red().bold(),
|
|
1630
1630
|
format
|
|
1631
1631
|
);
|
|
1632
|
-
|
|
1632
|
+
exit::tool_error();
|
|
1633
1633
|
}
|
|
1634
1634
|
};
|
|
1635
1635
|
|
|
@@ -1646,7 +1646,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1646
1646
|
|
|
1647
1647
|
if Path::new(output_path).exists() {
|
|
1648
1648
|
eprintln!("{}: Output file '{}' already exists", "Error".red().bold(), output_path);
|
|
1649
|
-
|
|
1649
|
+
exit::tool_error();
|
|
1650
1650
|
}
|
|
1651
1651
|
|
|
1652
1652
|
match fs::write(output_path, output_content) {
|
|
@@ -1656,7 +1656,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1656
1656
|
}
|
|
1657
1657
|
Err(e) => {
|
|
1658
1658
|
eprintln!("{}: Failed to write to '{}': {}", "Error".red().bold(), output_path, e);
|
|
1659
|
-
|
|
1659
|
+
exit::tool_error();
|
|
1660
1660
|
}
|
|
1661
1661
|
}
|
|
1662
1662
|
}
|
|
@@ -1667,7 +1667,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1667
1667
|
Ok(_) => {}
|
|
1668
1668
|
Err(e) => {
|
|
1669
1669
|
eprintln!("{}: {}", "Error".red().bold(), e);
|
|
1670
|
-
|
|
1670
|
+
exit::tool_error();
|
|
1671
1671
|
}
|
|
1672
1672
|
}
|
|
1673
1673
|
}
|
|
@@ -1707,14 +1707,14 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1707
1707
|
"{}: No files or directories specified. Please provide at least one path to lint.",
|
|
1708
1708
|
"Error".red().bold()
|
|
1709
1709
|
);
|
|
1710
|
-
|
|
1710
|
+
exit::tool_error();
|
|
1711
1711
|
}
|
|
1712
1712
|
}
|
|
1713
1713
|
}
|
|
1714
1714
|
});
|
|
1715
1715
|
if let Err(e) = result {
|
|
1716
1716
|
eprintln!("[rumdl panic handler] Uncaught panic: {e:?}");
|
|
1717
|
-
|
|
1717
|
+
exit::tool_error();
|
|
1718
1718
|
} else {
|
|
1719
1719
|
Ok(())
|
|
1720
1720
|
}
|
|
@@ -1745,7 +1745,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs, config: &rumdl_confi
|
|
|
1745
1745
|
Ok(fmt) => fmt,
|
|
1746
1746
|
Err(e) => {
|
|
1747
1747
|
eprintln!("{}: {}", "Error".red().bold(), e);
|
|
1748
|
-
|
|
1748
|
+
exit::tool_error();
|
|
1749
1749
|
}
|
|
1750
1750
|
};
|
|
1751
1751
|
|
|
@@ -1755,7 +1755,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs, config: &rumdl_confi
|
|
|
1755
1755
|
if !args.silent {
|
|
1756
1756
|
eprintln!("Error reading from stdin: {e}");
|
|
1757
1757
|
}
|
|
1758
|
-
|
|
1758
|
+
exit::violations_found();
|
|
1759
1759
|
}
|
|
1760
1760
|
|
|
1761
1761
|
// Create a lint context for the stdin content
|
|
@@ -1828,7 +1828,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs, config: &rumdl_confi
|
|
|
1828
1828
|
|
|
1829
1829
|
// Exit with error code if issues found
|
|
1830
1830
|
if has_issues {
|
|
1831
|
-
|
|
1831
|
+
exit::violations_found();
|
|
1832
1832
|
}
|
|
1833
1833
|
}
|
|
1834
1834
|
|
|
@@ -1888,7 +1888,7 @@ fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool
|
|
|
1888
1888
|
Ok(fmt) => fmt,
|
|
1889
1889
|
Err(e) => {
|
|
1890
1890
|
eprintln!("{}: {}", "Error".red().bold(), e);
|
|
1891
|
-
|
|
1891
|
+
exit::tool_error();
|
|
1892
1892
|
}
|
|
1893
1893
|
};
|
|
1894
1894
|
|
|
@@ -1908,7 +1908,7 @@ fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool
|
|
|
1908
1908
|
if !args.silent {
|
|
1909
1909
|
eprintln!("{}: Failed to find markdown files: {}", "Error".red().bold(), e);
|
|
1910
1910
|
}
|
|
1911
|
-
|
|
1911
|
+
exit::tool_error();
|
|
1912
1912
|
}
|
|
1913
1913
|
};
|
|
1914
1914
|
if file_paths.is_empty() {
|
|
@@ -1967,7 +1967,7 @@ fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool
|
|
|
1967
1967
|
|
|
1968
1968
|
// Exit with appropriate code
|
|
1969
1969
|
if has_issues {
|
|
1970
|
-
|
|
1970
|
+
exit::violations_found();
|
|
1971
1971
|
}
|
|
1972
1972
|
return;
|
|
1973
1973
|
}
|
|
@@ -2124,7 +2124,7 @@ fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool
|
|
|
2124
2124
|
|
|
2125
2125
|
// Exit with non-zero status if issues were found
|
|
2126
2126
|
if has_issues {
|
|
2127
|
-
|
|
2127
|
+
exit::violations_found();
|
|
2128
2128
|
}
|
|
2129
2129
|
}
|
|
2130
2130
|
|
|
@@ -2267,7 +2267,7 @@ fn handle_explain_command(rule_query: &str) {
|
|
|
2267
2267
|
} else {
|
|
2268
2268
|
eprintln!("{}: Rule '{}' not found.", "Error".red().bold(), rule_query);
|
|
2269
2269
|
eprintln!("\nUse 'rumdl rule' to see all available rules.");
|
|
2270
|
-
|
|
2270
|
+
exit::tool_error();
|
|
2271
2271
|
}
|
|
2272
2272
|
}
|
|
2273
2273
|
|
|
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
|