rumdl 0.0.105__tar.gz → 0.0.107__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.105 → rumdl-0.0.107}/CHANGELOG.md +33 -1
- {rumdl-0.0.105 → rumdl-0.0.107}/Cargo.lock +11 -11
- {rumdl-0.0.105 → rumdl-0.0.107}/Cargo.toml +28 -1
- {rumdl-0.0.105 → rumdl-0.0.107}/PKG-INFO +1 -1
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md036.md +16 -13
- {rumdl-0.0.105 → rumdl-0.0.107}/src/config.rs +40 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/lib.rs +11 -2
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md011_no_reversed_links.rs +53 -6
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md029_ordered_list_prefix.rs +125 -147
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md036_no_emphasis_only_first.rs +64 -99
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md046_code_block_style.rs +130 -1
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md052_reference_links_images.rs +77 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/vscode.rs +31 -6
- rumdl-0.0.107/tests/cli_duplication_test.rs +58 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/init_tests.rs +27 -50
- rumdl-0.0.107/tests/integration_tests.rs +29 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/emphasis_edge_cases_test.rs +2 -5
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md029_test.rs +71 -3
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md036_test.rs +19 -23
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md046_test.rs +123 -0
- rumdl-0.0.107/tests/vscode_windows_comprehensive_test.rs +263 -0
- rumdl-0.0.107/tests/vscode_windows_test.rs +113 -0
- rumdl-0.0.105/src/init.rs +0 -337
- rumdl-0.0.105/tests/cli_duplication_test.rs +0 -39
- rumdl-0.0.105/tests/integration_tests.rs +0 -18
- {rumdl-0.0.105 → rumdl-0.0.107}/.config/nextest.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/.mise.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/.rumdl.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/.rustfmt.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/LICENSE +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/MANIFEST.in +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/Makefile +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/README.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/assets/logo.png +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/benches/range_performance.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.105/src → rumdl-0.0.107/benchmark}/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.105/src → rumdl-0.0.107/benchmark}/bin/benchmark.rs +0 -0
- {rumdl-0.0.105/src → rumdl-0.0.107/benchmark}/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.105/src → rumdl-0.0.107/benchmark}/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.105/src → rumdl-0.0.107/benchmark}/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/RULES.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/global-settings.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md001.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md002.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md003.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md004.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md005.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md006.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md007.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md009.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md010.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md011.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md012.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md013.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md014.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md018.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md019.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md020.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md021.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md022.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md023.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md024.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md025.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md026.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md027.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md028.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md029.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md030.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md031.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md032.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md033.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md034.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md035.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md037.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md038.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md039.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md040.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md041.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md042.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md043.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md044.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md045.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md046.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md047.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md048.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md049.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md050.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md051.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md052.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md053.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md054.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md055.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md056.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md057.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/md058.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/parity_check.py +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/pyproject.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/python/MANIFEST.in +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/rumdl.toml.example +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/rust-toolchain.toml +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/exit_codes.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/inline_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/lint_context.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/lsp/server.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/lsp/types.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/main.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/output/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/parallel.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/performance.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/profiling.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/python.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rule.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rule_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/config_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/lib.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/perf_check.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md051_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.105 → rumdl-0.0.107}/tests/vscode_tests.rs +0 -0
|
@@ -7,8 +7,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.107] - 2025-08-06
|
|
11
|
+
|
|
12
|
+
## [0.0.106] - 2025-08-05
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
- Moved benchmark binaries from Python package distribution
|
|
16
|
+
- Benchmark tools are now in `benchmark/bin/` directory
|
|
17
|
+
- Added `build-benchmarks` feature flag to explicitly build benchmarks
|
|
18
|
+
- Python package now only includes the main `rumdl` binary
|
|
19
|
+
- Significantly reduced installed package size
|
|
20
|
+
|
|
10
21
|
## [0.0.105] - 2025-08-05
|
|
11
22
|
|
|
23
|
+
## [0.0.105] - 2025-08-05
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- MD029: Fixed list continuation detection to properly handle variable marker widths (fixes #16)
|
|
27
|
+
- List items with double-digit markers (e.g., "10. ") now correctly require 4+ spaces for continuation
|
|
28
|
+
- List items with triple-digit markers (e.g., "100. ") now correctly require 5+ spaces for continuation
|
|
29
|
+
- List items with any number of digits now correctly calculate required continuation indentation
|
|
30
|
+
- MD027: Improved tab handling and added bounds checking for range calculations
|
|
31
|
+
- Installation: Improved update experience for Cursor/Windsurf editors
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
- `--update` flag to check for newer versions and update if available
|
|
35
|
+
- Version checking with update notifications
|
|
36
|
+
- Marketplace-aware installation for VS Code forks
|
|
37
|
+
- Comprehensive tests for MD029 with large number markers (triple and quadruple digits)
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- Clarified `--force` flag behavior in help text
|
|
41
|
+
|
|
12
42
|
## [0.0.104] - 2025-08-02
|
|
13
43
|
|
|
14
44
|
### Added
|
|
@@ -261,7 +291,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
261
291
|
|
|
262
292
|
- Initial implementation of remaining rules for markdownlint parity
|
|
263
293
|
|
|
264
|
-
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.
|
|
294
|
+
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.107...HEAD
|
|
295
|
+
[0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
|
|
296
|
+
[0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
|
|
265
297
|
[0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
|
|
266
298
|
[0.0.104]: https://github.com/rvben/rumdl/compare/v0.0.103...v0.0.104
|
|
267
299
|
[0.0.102]: https://github.com/rvben/rumdl/compare/v0.0.101...v0.0.102
|
|
@@ -49,9 +49,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
|
|
|
49
49
|
|
|
50
50
|
[[package]]
|
|
51
51
|
name = "anstream"
|
|
52
|
-
version = "0.6.
|
|
52
|
+
version = "0.6.20"
|
|
53
53
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
54
|
-
checksum = "
|
|
54
|
+
checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192"
|
|
55
55
|
dependencies = [
|
|
56
56
|
"anstyle",
|
|
57
57
|
"anstyle-parse",
|
|
@@ -79,22 +79,22 @@ dependencies = [
|
|
|
79
79
|
|
|
80
80
|
[[package]]
|
|
81
81
|
name = "anstyle-query"
|
|
82
|
-
version = "1.1.
|
|
82
|
+
version = "1.1.4"
|
|
83
83
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
84
|
-
checksum = "
|
|
84
|
+
checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2"
|
|
85
85
|
dependencies = [
|
|
86
|
-
"windows-sys 0.
|
|
86
|
+
"windows-sys 0.60.2",
|
|
87
87
|
]
|
|
88
88
|
|
|
89
89
|
[[package]]
|
|
90
90
|
name = "anstyle-wincon"
|
|
91
|
-
version = "3.0.
|
|
91
|
+
version = "3.0.10"
|
|
92
92
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
93
|
-
checksum = "
|
|
93
|
+
checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a"
|
|
94
94
|
dependencies = [
|
|
95
95
|
"anstyle",
|
|
96
96
|
"once_cell_polyfill",
|
|
97
|
-
"windows-sys 0.
|
|
97
|
+
"windows-sys 0.60.2",
|
|
98
98
|
]
|
|
99
99
|
|
|
100
100
|
[[package]]
|
|
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1493
1493
|
|
|
1494
1494
|
[[package]]
|
|
1495
1495
|
name = "rumdl"
|
|
1496
|
-
version = "0.0.
|
|
1496
|
+
version = "0.0.107"
|
|
1497
1497
|
dependencies = [
|
|
1498
1498
|
"anyhow",
|
|
1499
1499
|
"assert_cmd",
|
|
@@ -2527,9 +2527,9 @@ dependencies = [
|
|
|
2527
2527
|
|
|
2528
2528
|
[[package]]
|
|
2529
2529
|
name = "zerovec"
|
|
2530
|
-
version = "0.11.
|
|
2530
|
+
version = "0.11.4"
|
|
2531
2531
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2532
|
-
checksum = "
|
|
2532
|
+
checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
|
|
2533
2533
|
dependencies = [
|
|
2534
2534
|
"yoke",
|
|
2535
2535
|
"zerofrom",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "rumdl"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.107"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
rust-version = "1.88.0"
|
|
6
6
|
description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
|
|
@@ -22,6 +22,32 @@ crate-type = ["cdylib", "rlib"]
|
|
|
22
22
|
name = "rumdl"
|
|
23
23
|
path = "src/main.rs"
|
|
24
24
|
|
|
25
|
+
# Benchmark binaries - only built when explicitly requested
|
|
26
|
+
[[bin]]
|
|
27
|
+
name = "benchmark"
|
|
28
|
+
path = "benchmark/bin/benchmark.rs"
|
|
29
|
+
required-features = ["build-benchmarks"]
|
|
30
|
+
|
|
31
|
+
[[bin]]
|
|
32
|
+
name = "bench_lint_context"
|
|
33
|
+
path = "benchmark/bin/bench_lint_context.rs"
|
|
34
|
+
required-features = ["build-benchmarks"]
|
|
35
|
+
|
|
36
|
+
[[bin]]
|
|
37
|
+
name = "benchmark_rule"
|
|
38
|
+
path = "benchmark/bin/benchmark_rule.rs"
|
|
39
|
+
required-features = ["build-benchmarks"]
|
|
40
|
+
|
|
41
|
+
[[bin]]
|
|
42
|
+
name = "file_parallel_benchmark"
|
|
43
|
+
path = "benchmark/bin/file_parallel_benchmark.rs"
|
|
44
|
+
required-features = ["build-benchmarks"]
|
|
45
|
+
|
|
46
|
+
[[bin]]
|
|
47
|
+
name = "measure_code_span_performance"
|
|
48
|
+
path = "benchmark/bin/measure_code_span_performance.rs"
|
|
49
|
+
required-features = ["build-benchmarks"]
|
|
50
|
+
|
|
25
51
|
[[bench]]
|
|
26
52
|
name = "rule_performance"
|
|
27
53
|
harness = false
|
|
@@ -93,6 +119,7 @@ parallel = ["rayon"]
|
|
|
93
119
|
profiling = []
|
|
94
120
|
python = ["pyo3"]
|
|
95
121
|
structure_preprocessing = []
|
|
122
|
+
build-benchmarks = []
|
|
96
123
|
|
|
97
124
|
[dev-dependencies]
|
|
98
125
|
assert_cmd = "2.0.17"
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# MD036 - Use real headings, not just bold text
|
|
2
2
|
|
|
3
|
+
> **Note:** This rule does not provide automatic fixes because it cannot reliably determine user intent. Bold text on its own line has many legitimate uses (image captions, labels, warnings, etc.).
|
|
4
|
+
|
|
3
5
|
## What this rule does
|
|
4
6
|
|
|
5
|
-
Detects when bold or italic text is used as a standalone heading
|
|
7
|
+
Detects when bold or italic text is used as a standalone heading.
|
|
6
8
|
|
|
7
9
|
## Why this matters
|
|
8
10
|
|
|
@@ -43,9 +45,9 @@ Using emphasis as headings:
|
|
|
43
45
|
**Configuration:**
|
|
44
46
|
```
|
|
45
47
|
|
|
46
|
-
### 🔧
|
|
48
|
+
### 🔧 Manual Fix Required
|
|
47
49
|
|
|
48
|
-
|
|
50
|
+
These should be manually converted to proper headings:
|
|
49
51
|
|
|
50
52
|
```markdown
|
|
51
53
|
## This looks like a heading
|
|
@@ -57,28 +59,29 @@ Converted to proper headings:
|
|
|
57
59
|
## Configuration
|
|
58
60
|
```
|
|
59
61
|
|
|
62
|
+
**Note:** rumdl will detect these issues but won't automatically fix them. You need to manually decide if the emphasized text should be a heading.
|
|
63
|
+
|
|
60
64
|
<!-- rumdl-enable MD036 -->
|
|
61
65
|
|
|
62
66
|
## Configuration
|
|
63
67
|
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
```toml
|
|
69
|
+
# .rumdl.toml
|
|
70
|
+
[MD036]
|
|
71
|
+
punctuation = ".,;:!?" # Configure punctuation checking
|
|
67
72
|
```
|
|
68
73
|
|
|
69
74
|
### Options
|
|
70
75
|
|
|
71
|
-
- `punctuation`: String of punctuation marks
|
|
72
|
-
- Set to `""` to
|
|
76
|
+
- `punctuation`: String of punctuation marks that, when found at the end of emphasized text, prevent it from being flagged (default: `".,;:!?"`)
|
|
77
|
+
- Set to `""` to flag all emphasized lines regardless of punctuation
|
|
73
78
|
- Customize to remove only specific marks
|
|
74
79
|
|
|
75
80
|
## Automatic fixes
|
|
76
81
|
|
|
77
|
-
This rule
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
- Choose appropriate heading level (## for bold, # for italic)
|
|
81
|
-
- Preserve common labels like "Table of Contents" as-is
|
|
82
|
+
This rule does **not** provide automatic fixes. Converting bold or italic text to headings is too risky as it can corrupt documents. For example, bold text is often used for image captions, labels, or other legitimate emphasis that should not be converted to headings.
|
|
83
|
+
|
|
84
|
+
Users should manually review each warning and decide whether the emphasized text should be converted to a heading.
|
|
82
85
|
|
|
83
86
|
## Learn more
|
|
84
87
|
|
|
@@ -862,6 +862,46 @@ local_time = 07:32:00
|
|
|
862
862
|
// Note: local_date and local_time might not be parsed by the current implementation
|
|
863
863
|
}
|
|
864
864
|
}
|
|
865
|
+
|
|
866
|
+
#[test]
|
|
867
|
+
fn test_default_config_passes_validation() {
|
|
868
|
+
use crate::rules;
|
|
869
|
+
|
|
870
|
+
let temp_dir = tempdir().unwrap();
|
|
871
|
+
let config_path = temp_dir.path().join(".rumdl.toml");
|
|
872
|
+
let config_path_str = config_path.to_str().unwrap();
|
|
873
|
+
|
|
874
|
+
// Create the default config using the same function that `rumdl init` uses
|
|
875
|
+
create_default_config(config_path_str).unwrap();
|
|
876
|
+
|
|
877
|
+
// Load it back as a SourcedConfig
|
|
878
|
+
let sourced =
|
|
879
|
+
SourcedConfig::load(Some(config_path_str), None).expect("Default config should load successfully");
|
|
880
|
+
|
|
881
|
+
// Create the rule registry
|
|
882
|
+
let all_rules = rules::all_rules(&Config::default());
|
|
883
|
+
let registry = RuleRegistry::from_rules(&all_rules);
|
|
884
|
+
|
|
885
|
+
// Validate the config
|
|
886
|
+
let warnings = validate_config_sourced(&sourced, ®istry);
|
|
887
|
+
|
|
888
|
+
// The default config should have no warnings
|
|
889
|
+
if !warnings.is_empty() {
|
|
890
|
+
for warning in &warnings {
|
|
891
|
+
eprintln!("Config validation warning: {}", warning.message);
|
|
892
|
+
if let Some(rule) = &warning.rule {
|
|
893
|
+
eprintln!(" Rule: {rule}");
|
|
894
|
+
}
|
|
895
|
+
if let Some(key) = &warning.key {
|
|
896
|
+
eprintln!(" Key: {key}");
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
assert!(
|
|
901
|
+
warnings.is_empty(),
|
|
902
|
+
"Default config from rumdl init should pass validation without warnings"
|
|
903
|
+
);
|
|
904
|
+
}
|
|
865
905
|
}
|
|
866
906
|
|
|
867
907
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
pub mod config;
|
|
2
2
|
pub mod exit_codes;
|
|
3
|
-
pub mod init;
|
|
4
3
|
pub mod inline_config;
|
|
5
4
|
pub mod lint_context;
|
|
6
5
|
pub mod lsp;
|
|
@@ -190,8 +189,18 @@ pub fn lint(content: &str, rules: &[Box<dyn Rule>], _verbose: bool) -> LintResul
|
|
|
190
189
|
let filtered_warnings: Vec<_> = rule_warnings
|
|
191
190
|
.into_iter()
|
|
192
191
|
.filter(|warning| {
|
|
192
|
+
// Use the warning's rule_name if available, otherwise use the rule's name
|
|
193
|
+
let rule_name_to_check = warning.rule_name.unwrap_or(rule.name());
|
|
194
|
+
|
|
195
|
+
// Extract the base rule name for sub-rules like "MD029-style" -> "MD029"
|
|
196
|
+
let base_rule_name = if let Some(dash_pos) = rule_name_to_check.find('-') {
|
|
197
|
+
&rule_name_to_check[..dash_pos]
|
|
198
|
+
} else {
|
|
199
|
+
rule_name_to_check
|
|
200
|
+
};
|
|
201
|
+
|
|
193
202
|
!inline_config.is_rule_disabled(
|
|
194
|
-
|
|
203
|
+
base_rule_name,
|
|
195
204
|
warning.line, // Already 1-indexed
|
|
196
205
|
)
|
|
197
206
|
})
|
|
@@ -204,18 +204,18 @@ impl Rule for MD011NoReversedLinks {
|
|
|
204
204
|
let mut byte_pos = 0;
|
|
205
205
|
|
|
206
206
|
for (line_num, line) in content.lines().enumerate() {
|
|
207
|
-
// Skip if this line is in a code block
|
|
208
|
-
if ctx.is_in_code_block_or_span(byte_pos) {
|
|
209
|
-
byte_pos += line.len() + 1;
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
207
|
// Part 1: Check for existing perfectly formed reversed links
|
|
214
208
|
for cap in REVERSED_LINK_CHECK_REGEX.captures_iter(line) {
|
|
215
209
|
let match_obj = cap.get(0).unwrap();
|
|
216
210
|
let match_start = match_obj.start();
|
|
217
211
|
let match_end = match_obj.end();
|
|
218
212
|
|
|
213
|
+
// Check if this specific match is within a code block or inline code span
|
|
214
|
+
let match_byte_pos = byte_pos + match_start;
|
|
215
|
+
if ctx.is_in_code_block_or_span(match_byte_pos) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
219
|
// Check if the match contains escaped brackets or parentheses
|
|
220
220
|
let match_text = match_obj.as_str();
|
|
221
221
|
|
|
@@ -277,6 +277,12 @@ impl Rule for MD011NoReversedLinks {
|
|
|
277
277
|
// Part 2: Check for malformed link attempts where user intent is clear
|
|
278
278
|
let malformed_attempts = self.detect_malformed_link_attempts(line);
|
|
279
279
|
for (start, len, url, text) in malformed_attempts {
|
|
280
|
+
// Check if this specific match is within a code block or inline code span
|
|
281
|
+
let match_byte_pos = byte_pos + start;
|
|
282
|
+
if ctx.is_in_code_block_or_span(match_byte_pos) {
|
|
283
|
+
continue;
|
|
284
|
+
}
|
|
285
|
+
|
|
280
286
|
// Calculate precise character range for the malformed syntax
|
|
281
287
|
let (start_line, start_col, end_line, end_col) = calculate_match_range(line_num + 1, line, start, len);
|
|
282
288
|
|
|
@@ -593,4 +599,45 @@ But this (https://example.com)[reversed link] should be flagged."#;
|
|
|
593
599
|
let result = rule.check(&ctx).unwrap();
|
|
594
600
|
assert_eq!(result.len(), 1, "Should still flag URLs with nested parentheses");
|
|
595
601
|
}
|
|
602
|
+
|
|
603
|
+
#[test]
|
|
604
|
+
fn test_inline_code_patterns() {
|
|
605
|
+
// Test for issue #19 - MD011 should not flag patterns inside inline code
|
|
606
|
+
let rule = MD011NoReversedLinks;
|
|
607
|
+
|
|
608
|
+
// Test the exact case from issue #19
|
|
609
|
+
let content = "I find `inspect.stack()[1].frame` a lot easier to understand (or at least guess about) at a glance than `inspect.stack()[1][0]`.";
|
|
610
|
+
let ctx = LintContext::new(content);
|
|
611
|
+
let result = rule.check(&ctx).unwrap();
|
|
612
|
+
assert_eq!(result.len(), 0, "Should not flag ()[1] patterns inside inline code");
|
|
613
|
+
|
|
614
|
+
// Test other patterns that might look like reversed links in code
|
|
615
|
+
let content = "Use `array()[0]` or `func()[1]` to access elements.";
|
|
616
|
+
let ctx = LintContext::new(content);
|
|
617
|
+
let result = rule.check(&ctx).unwrap();
|
|
618
|
+
assert_eq!(result.len(), 0, "Should not flag array access patterns in inline code");
|
|
619
|
+
|
|
620
|
+
// Test that actual reversed links outside code are still caught
|
|
621
|
+
let content = "Check out (https://example.com)[this link] and use `array()[1]`.";
|
|
622
|
+
let ctx = LintContext::new(content);
|
|
623
|
+
let result = rule.check(&ctx).unwrap();
|
|
624
|
+
assert_eq!(result.len(), 1, "Should flag actual reversed link but not code pattern");
|
|
625
|
+
assert!(result[0].message.contains("Reversed link syntax"));
|
|
626
|
+
|
|
627
|
+
// Test mixed scenario with code blocks
|
|
628
|
+
let content = r#"
|
|
629
|
+
Here's some code: `func()[1]` and `other()[2]`.
|
|
630
|
+
|
|
631
|
+
But this is wrong: (https://example.com)[Click here]
|
|
632
|
+
|
|
633
|
+
```python
|
|
634
|
+
# This should not be flagged
|
|
635
|
+
result = inspect.stack()[1]
|
|
636
|
+
```
|
|
637
|
+
"#;
|
|
638
|
+
let ctx = LintContext::new(content);
|
|
639
|
+
let result = rule.check(&ctx).unwrap();
|
|
640
|
+
assert_eq!(result.len(), 1, "Should only flag the actual reversed link");
|
|
641
|
+
assert_eq!(result[0].line, 4, "Should flag the reversed link on line 4");
|
|
642
|
+
}
|
|
596
643
|
}
|