rumdl 0.0.156__tar.gz → 0.0.158__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.156 → rumdl-0.0.158}/CHANGELOG.md +234 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/Cargo.lock +54 -1
- {rumdl-0.0.156 → rumdl-0.0.158}/Cargo.toml +2 -1
- {rumdl-0.0.156 → rumdl-0.0.158}/PKG-INFO +1 -1
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md042.md +28 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/config.rs +67 -44
- rumdl-0.0.158/src/file_processor.rs +794 -0
- rumdl-0.0.158/src/formatter.rs +407 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/lib.rs +8 -8
- {rumdl-0.0.156 → rumdl-0.0.158}/src/lsp/server.rs +69 -3
- rumdl-0.0.158/src/main.rs +1394 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/code_block_utils.rs +16 -22
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md009_trailing_spaces.rs +3 -3
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md010_no_hard_tabs.rs +3 -5
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md011_no_reversed_links.rs +12 -14
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md012_no_multiple_blanks.rs +2 -1
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md022_blanks_around_headings.rs +9 -10
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md026_no_trailing_punctuation.rs +12 -17
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md032_blanks_around_lists.rs +6 -5
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md034_no_bare_urls.rs +26 -18
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md037_spaces_around_emphasis.rs +9 -12
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md042_no_empty_links.rs +150 -18
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md046_code_block_style.rs +2 -2
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md047_single_trailing_newline.rs +15 -66
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md049_emphasis_style.rs +5 -9
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md050_strong_style.rs +4 -9
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md057_existing_relative_links.rs +6 -17
- rumdl-0.0.158/src/stdin_processor.rs +212 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/code_block_utils.rs +31 -7
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_patterns.rs +33 -5
- {rumdl-0.0.156 → rumdl-0.0.158}/src/vscode.rs +78 -66
- rumdl-0.0.158/src/watch.rs +489 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_integration_tests.rs +38 -53
- rumdl-0.0.158/tests/code_block_blockquote_edge_cases.rs +243 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/config_tests.rs +15 -32
- rumdl-0.0.158/tests/crlf_line_endings_test.rs +350 -0
- rumdl-0.0.158/tests/exclude_with_explicit_paths_test.rs +225 -0
- rumdl-0.0.158/tests/mkdocs_anchor_edge_cases_test.rs +338 -0
- rumdl-0.0.158/tests/mkdocs_anchor_test.rs +115 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/link_edge_cases_test.rs +18 -8
- rumdl-0.0.158/tests/rules/md033_blockquote_test.rs +282 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md034_test.rs +69 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md042_test.rs +91 -15
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_comprehensive_test.rs +3 -2
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/mod.rs +1 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/vscode_test.rs +2 -24
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/vscode_tests.rs +20 -82
- rumdl-0.0.156/src/main.rs +0 -3474
- {rumdl-0.0.156 → rumdl-0.0.158}/.config/nextest.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/.mise.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/.rumdl.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/.rustfmt.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/LICENSE +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/MANIFEST.in +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/Makefile +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/README.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/assets/logo.png +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benches/range_performance.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/LINTCONTEXT_OPTIMIZATION_PLAN.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/LINTCONTEXT_OPTIMIZATION_SUMMARY.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/LINTCONTEXT_PERFORMANCE_ANALYSIS.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/PHASE_2_OPTIMIZATION_COMPLETE.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/PHASE_3_OPTIMIZATION_COMPLETE.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/RULES.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/global-settings.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/inline-configuration.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md001.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md002.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md003.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md004.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md005.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md006.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md007.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md009.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md010.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md011.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md012.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md013.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md014.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md018.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md019.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md020.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md021.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md022.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md023.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md024.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md025.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md026.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md027.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md028.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md029.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md030.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md031.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md032.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md033.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md034.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md035.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md036.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md037.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md038.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md039.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md040.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md041.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md043.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md044.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md045.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md046.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md047.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md048.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md049.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md050.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md051.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md052.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md053.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md054.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md055.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md056.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md057.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/md058.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/parity_check.py +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/pyproject.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rumdl/__init__.py +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rumdl/__main__.py +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rumdl/py.typed +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rumdl.schema.json +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rumdl.toml.example +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/rust-toolchain.toml +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/generate-downloads-table.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/pre-release.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/exit_codes.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/fix_coordinator.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/inline_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/lint_context.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/lsp/types.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/output/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/parallel.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/performance.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/profiling.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rule.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rule_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/anchor_styles/github.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/anchor_styles/jekyll.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/anchor_styles/kramdown.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/anchor_styles/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/header_id_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/jinja_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/kramdown_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/line_ending.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_admonitions.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_common.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_critic.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_footnotes.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_snippets.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_tabs.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocs_test_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mkdocstrings_refs.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/skip_context.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/common/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/config_upward_traversal_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/fix_counting_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/fix_performance_baseline_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/fixable_unfixable_config_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/init_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/kramdown_integration_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lib.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_formatting_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_initialization_options_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_mkdocs_flavor_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/lsp_unopened_document_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md009_md013_integration_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md009_md013_order_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md013_hard_breaks_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md032_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md032_ordered_list_bug_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md033_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md037_xxxx_regression_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md038_false_positive_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md051_readme_bug_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md051_toc_bug_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md052_literal_brackets_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/md054_code_span_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/per_file_ignores_integration_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/perf_check.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md005_dynamic_indent_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md026_kramdown_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md028_md009_interaction_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_code_block_separation_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_fix_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_issue42_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md031_kramdown_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md033_kramdown_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md037_kramdown_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_property_based_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_regression_prevention_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md051_unicode_security_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md058_kramdown_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/mkdocs_admonitions_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/mkdocs_extensions_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/mkdocs_snippets_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules/rule_interaction_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/sentence_per_line_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/skip_context_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_ast_code_block_issue.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_gfm_vs_default_parsing.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_lint_context_flow.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_list_ast_structure.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_multiline_ast.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/test_underscore_edge_cases.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/unfixable_rules_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utf8_boundary_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.156 → rumdl-0.0.158}/tests/vscode_windows_test.rs +0 -0
|
@@ -7,6 +7,240 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.0.158] - 2025-10-14
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **CRLF Line Ending Support**: Fixed byte position calculations in multiple rules for Windows-style line endings
|
|
15
|
+
- Fixed MD034, MD046, MD057 byte position calculations
|
|
16
|
+
- Fixed MD037, MD049, MD011 byte position calculations
|
|
17
|
+
- Fixed MD050, MD037, MD010, MD026 byte position calculations
|
|
18
|
+
- Fixed code_block_utils byte position calculation in `is_in_code_span`
|
|
19
|
+
- All rules now correctly handle CRLF line endings in fixes and diagnostics
|
|
20
|
+
|
|
21
|
+
- **Test Stability**: Fixed flaky tests with dependency injection pattern
|
|
22
|
+
- Eliminated race conditions from parallel test execution
|
|
23
|
+
- Tests no longer modify global environment variables
|
|
24
|
+
- Added `serial_test` crate for unavoidable global operations
|
|
25
|
+
- All 1731 tests now pass reliably in parallel execution
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **Code Architecture**: Major refactoring to improve maintainability
|
|
30
|
+
- Extracted `formatter` module (397 lines) - output formatting logic
|
|
31
|
+
- Extracted `watch` module (491 lines) - watch mode functionality
|
|
32
|
+
- Extracted `file_processor` module (792 lines) - file processing logic
|
|
33
|
+
- Extracted `stdin_processor` module (212 lines) - stdin handling
|
|
34
|
+
- main.rs reduced from 3268 to 1394 lines (57% reduction)
|
|
35
|
+
- Improved code organization and testability
|
|
36
|
+
|
|
37
|
+
- **Line Ending Handling**: Refactored line ending preservation
|
|
38
|
+
- Line ending detection and normalization now at I/O boundaries
|
|
39
|
+
- Internal code always works with consistent LF line endings
|
|
40
|
+
- More efficient: 1 normalization per file instead of per-rule
|
|
41
|
+
- Cleaner separation of concerns
|
|
42
|
+
- Simplified MD047, MD012, MD022 to always use LF internally
|
|
43
|
+
- Removed unnecessary line ending detection from rules
|
|
44
|
+
- Added comprehensive end-to-end CRLF tests
|
|
45
|
+
|
|
46
|
+
### Removed
|
|
47
|
+
|
|
48
|
+
- **Legacy Fix Implementation**: Removed deprecated fix wrapper functions
|
|
49
|
+
- Removed `apply_fixes()` wrapper
|
|
50
|
+
- Removed `apply_fixes_stdin_coordinated()` wrapper
|
|
51
|
+
- Removed `apply_fixes_stdin()` legacy implementation
|
|
52
|
+
- Removed `RUMDL_NO_FIX_COORDINATOR` environment variable
|
|
53
|
+
- Fix Coordinator is now the only fix strategy (3 weeks stable, ~75% faster)
|
|
54
|
+
|
|
55
|
+
## [0.0.157] - 2025-10-13
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
|
|
59
|
+
- **Removed legacy fix implementation** - Removed old single-pass fix implementation and `RUMDL_NO_FIX_COORDINATOR` environment variable. Fix Coordinator is now the only fix strategy, providing ~75% faster fixes with better coverage.
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- **MD042**: Full support for MkDocs paragraph anchors (#100)
|
|
64
|
+
- Recognize Python-Markdown `attr_list` extension syntax: `[](){ #anchor }`
|
|
65
|
+
- Support for both anchor IDs (`#id`) and CSS classes (`.class`)
|
|
66
|
+
- Support optional colon syntax: `[](){: #anchor }`
|
|
67
|
+
- UTF-8 boundary validation and DoS prevention (500 char limit)
|
|
68
|
+
- 28 comprehensive tests covering edge cases
|
|
69
|
+
- Complete documentation with links to official Python-Markdown specs
|
|
70
|
+
- References: [attr_list](https://python-markdown.github.io/extensions/attr_list/), [mkdocs-autorefs](https://mkdocstrings.github.io/autorefs/)
|
|
71
|
+
|
|
72
|
+
- **MD042**: Smart URL detection in empty links (#104)
|
|
73
|
+
- When link text looks like a URL (e.g., `[https://example.com]()`), use it as the destination
|
|
74
|
+
- Supports http://, https://, ftp://, ftps:// protocols
|
|
75
|
+
- More intelligent fixes than placeholder URLs
|
|
76
|
+
|
|
77
|
+
- **Always respect exclude patterns by default** (#99)
|
|
78
|
+
- Exclude patterns now always respected, even for explicitly provided files
|
|
79
|
+
- Matches behavior of ESLint, Pylint, Mypy
|
|
80
|
+
- Added `--no-exclude` flag to disable all exclusions when needed
|
|
81
|
+
- LSP support for exclude patterns
|
|
82
|
+
- Shows warnings with actionable hints when excluding files
|
|
83
|
+
|
|
84
|
+
- **Hidden directory scanning** (#102)
|
|
85
|
+
- Now scans hidden directories (like `.documentation`) by default
|
|
86
|
+
- More thorough markdown file discovery
|
|
87
|
+
|
|
88
|
+
### Fixed
|
|
89
|
+
|
|
90
|
+
- **MD033**: Code blocks in blockquotes false positives (#105)
|
|
91
|
+
- Fixed incorrect flagging of HTML tags inside fenced code blocks within blockquotes
|
|
92
|
+
- Properly strips blockquote markers before detecting fence markers
|
|
93
|
+
- 25 new tests covering nested blockquotes and edge cases
|
|
94
|
+
|
|
95
|
+
- **MD034**: Empty link construct false positives (#104)
|
|
96
|
+
- Fixed incorrect flagging of URLs in `[url]()` and `[url][]` patterns
|
|
97
|
+
- Prevents text corruption during formatting
|
|
98
|
+
- Added patterns to properly exclude empty link constructs
|
|
99
|
+
|
|
100
|
+
- **MD042**: Improved fix quality
|
|
101
|
+
- Removed "useless" placeholder fixes that just create new problems
|
|
102
|
+
- Only provides fixes when we have enough information for valid links
|
|
103
|
+
- No longer auto-fixes `[]()` or `[text]()` with placeholders
|
|
104
|
+
|
|
105
|
+
### Changed
|
|
106
|
+
|
|
107
|
+
- **BREAKING**: Exclude patterns now always respected by default
|
|
108
|
+
- Previously: `--force-exclude` flag needed to respect excludes for explicit files
|
|
109
|
+
- Now: Excludes always respected by default
|
|
110
|
+
- Migration: Use `--no-exclude` flag if you need the old behavior
|
|
111
|
+
|
|
112
|
+
## [0.0.156] - 2025-10-08
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
|
|
116
|
+
- **Build**: Removed feature-gated benchmark binaries that were causing unnecessary reinstalls
|
|
117
|
+
- Benchmark binaries now only built when explicitly requested
|
|
118
|
+
- Reduces package size and installation time
|
|
119
|
+
|
|
120
|
+
## [0.0.155] - 2025-10-08
|
|
121
|
+
|
|
122
|
+
### Fixed
|
|
123
|
+
|
|
124
|
+
- **PyPI Package**: Fixed package structure by removing unused cdylib and dependencies
|
|
125
|
+
- Removed unnecessary C dynamic library configuration
|
|
126
|
+
- Cleaner Python package distribution
|
|
127
|
+
|
|
128
|
+
## [0.0.154] - 2025-10-08
|
|
129
|
+
|
|
130
|
+
### Fixed
|
|
131
|
+
|
|
132
|
+
- **MD013**: Implemented segment-based reflow to preserve hard breaks
|
|
133
|
+
- Properly handles double-space line breaks
|
|
134
|
+
- Integration tests updated for new behavior
|
|
135
|
+
|
|
136
|
+
### Performance
|
|
137
|
+
|
|
138
|
+
- **MD034**: Reuse buffers to reduce per-line allocations
|
|
139
|
+
- **MD005**: Eliminate LineIndex creation overhead
|
|
140
|
+
- **MD030**: Eliminate O(n²) complexity by caching line collection
|
|
141
|
+
|
|
142
|
+
### Documentation
|
|
143
|
+
|
|
144
|
+
- Organized LintContext optimization documentation
|
|
145
|
+
|
|
146
|
+
## [0.0.153] - 2025-10-07
|
|
147
|
+
|
|
148
|
+
### Performance
|
|
149
|
+
|
|
150
|
+
- **Major optimization**: 54 rules now use LintContext character frequency caching
|
|
151
|
+
- Significant performance improvement across the board
|
|
152
|
+
- Reduced redundant scanning of document content
|
|
153
|
+
|
|
154
|
+
- **MD051**: Optimized link fragment validation
|
|
155
|
+
- Faster processing of heading anchors and fragments
|
|
156
|
+
|
|
157
|
+
### Fixed
|
|
158
|
+
|
|
159
|
+
- **MD013**: Improved nested list handling in reflow mode
|
|
160
|
+
- Better preservation of list structure during reformatting
|
|
161
|
+
|
|
162
|
+
## [0.0.152] - 2025-10-06
|
|
163
|
+
|
|
164
|
+
### Fixed
|
|
165
|
+
|
|
166
|
+
- **MD013**: Multi-paragraph list reflow improvements and refactoring
|
|
167
|
+
- Better handling of complex list structures
|
|
168
|
+
- More reliable paragraph detection within lists
|
|
169
|
+
|
|
170
|
+
## [0.0.151] - 2025-10-05
|
|
171
|
+
|
|
172
|
+
### Fixed
|
|
173
|
+
|
|
174
|
+
- **MD007**: Fixed tab indentation and cascade behavior
|
|
175
|
+
- Properly handles tabs in list indentation
|
|
176
|
+
- Correct cascade behavior matching markdownlint
|
|
177
|
+
|
|
178
|
+
## [0.0.150] - 2025-10-04
|
|
179
|
+
|
|
180
|
+
### Fixed
|
|
181
|
+
|
|
182
|
+
- **MD007**: Multiple fixes for list indentation
|
|
183
|
+
- Correct blockquote list handling
|
|
184
|
+
- Fixed text-aligned indentation to match markdownlint cascade behavior
|
|
185
|
+
- Updated test expectations for cascade behavior
|
|
186
|
+
|
|
187
|
+
## [0.0.149] - 2025-10-03
|
|
188
|
+
|
|
189
|
+
### Added
|
|
190
|
+
|
|
191
|
+
- **Configuration**: JSON Schema for rumdl.toml configuration (#89)
|
|
192
|
+
- IDE autocomplete and validation support
|
|
193
|
+
- Better configuration documentation
|
|
194
|
+
|
|
195
|
+
- **Configuration**: Per-file rule ignores (#92)
|
|
196
|
+
- Glob pattern support for ignoring rules on specific files
|
|
197
|
+
- Example: `[per-file-ignores] "docs/*.md" = ["MD013"]`
|
|
198
|
+
|
|
199
|
+
## [0.0.148] - 2025-10-02
|
|
200
|
+
|
|
201
|
+
### Fixed
|
|
202
|
+
|
|
203
|
+
- **MD042**: Display improvements
|
|
204
|
+
- Show exact source text in error messages
|
|
205
|
+
- Correct display of shorthand reference links
|
|
206
|
+
|
|
207
|
+
- **MkDocs**: Strip backticks from MkDocs auto-references (#97)
|
|
208
|
+
- Prevents false positives on `` [`module.Class`][] `` patterns
|
|
209
|
+
|
|
210
|
+
## [0.0.147] - 2025-10-01
|
|
211
|
+
|
|
212
|
+
### Added
|
|
213
|
+
|
|
214
|
+
- **MkDocs**: Added mkdocstrings support (#94)
|
|
215
|
+
- Recognizes mkdocstrings YAML options
|
|
216
|
+
- Multiple rules migrated to use LintContext for better MkDocs handling
|
|
217
|
+
|
|
218
|
+
### Fixed
|
|
219
|
+
|
|
220
|
+
- **MD041**: Removed auto-fix capability (#93)
|
|
221
|
+
- Auto-fixing front-heading violations was unreliable
|
|
222
|
+
- Now only reports issues without attempting fixes
|
|
223
|
+
|
|
224
|
+
- **MD026**: Corrected documentation to match implementation (#95)
|
|
225
|
+
- Documentation now accurately reflects punctuation handling
|
|
226
|
+
|
|
227
|
+
- **Jinja2**: Added Jinja2 template support (#96)
|
|
228
|
+
- Prevents false positives in template syntax
|
|
229
|
+
- Better support for MkDocs projects using Jinja2
|
|
230
|
+
|
|
231
|
+
- **MD013**: Prevent false positives for already-reflowed content
|
|
232
|
+
- Smarter detection of intentional line breaks
|
|
233
|
+
|
|
234
|
+
- **MD034**: Properly excludes URLs/emails in code spans and HTML
|
|
235
|
+
- No more false positives on inline code URLs
|
|
236
|
+
|
|
237
|
+
- **MD054**: Fixed column indexing bug
|
|
238
|
+
- Correct error position reporting
|
|
239
|
+
|
|
240
|
+
- **MD033 & MD032**: Resolved false positives (#90, #91)
|
|
241
|
+
- More accurate HTML tag detection
|
|
242
|
+
- Better handling of code blocks
|
|
243
|
+
|
|
10
244
|
## [0.0.146] - 2025-09-24
|
|
11
245
|
|
|
12
246
|
### Added
|
|
@@ -586,6 +586,7 @@ checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876"
|
|
|
586
586
|
dependencies = [
|
|
587
587
|
"futures-channel",
|
|
588
588
|
"futures-core",
|
|
589
|
+
"futures-executor",
|
|
589
590
|
"futures-io",
|
|
590
591
|
"futures-sink",
|
|
591
592
|
"futures-task",
|
|
@@ -608,6 +609,17 @@ version = "0.3.31"
|
|
|
608
609
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
609
610
|
checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e"
|
|
610
611
|
|
|
612
|
+
[[package]]
|
|
613
|
+
name = "futures-executor"
|
|
614
|
+
version = "0.3.31"
|
|
615
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
616
|
+
checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f"
|
|
617
|
+
dependencies = [
|
|
618
|
+
"futures-core",
|
|
619
|
+
"futures-task",
|
|
620
|
+
"futures-util",
|
|
621
|
+
]
|
|
622
|
+
|
|
611
623
|
[[package]]
|
|
612
624
|
name = "futures-io"
|
|
613
625
|
version = "0.3.31"
|
|
@@ -1566,7 +1578,7 @@ checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
|
|
|
1566
1578
|
|
|
1567
1579
|
[[package]]
|
|
1568
1580
|
name = "rumdl"
|
|
1569
|
-
version = "0.0.
|
|
1581
|
+
version = "0.0.158"
|
|
1570
1582
|
dependencies = [
|
|
1571
1583
|
"anyhow",
|
|
1572
1584
|
"assert_cmd",
|
|
@@ -1600,6 +1612,7 @@ dependencies = [
|
|
|
1600
1612
|
"serde",
|
|
1601
1613
|
"serde_json",
|
|
1602
1614
|
"serde_yaml",
|
|
1615
|
+
"serial_test",
|
|
1603
1616
|
"strsim",
|
|
1604
1617
|
"tempfile",
|
|
1605
1618
|
"thiserror",
|
|
@@ -1669,6 +1682,15 @@ dependencies = [
|
|
|
1669
1682
|
"winapi-util",
|
|
1670
1683
|
]
|
|
1671
1684
|
|
|
1685
|
+
[[package]]
|
|
1686
|
+
name = "scc"
|
|
1687
|
+
version = "2.4.0"
|
|
1688
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1689
|
+
checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc"
|
|
1690
|
+
dependencies = [
|
|
1691
|
+
"sdd",
|
|
1692
|
+
]
|
|
1693
|
+
|
|
1672
1694
|
[[package]]
|
|
1673
1695
|
name = "schemars"
|
|
1674
1696
|
version = "0.8.22"
|
|
@@ -1699,6 +1721,12 @@ version = "1.2.0"
|
|
|
1699
1721
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1700
1722
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
|
1701
1723
|
|
|
1724
|
+
[[package]]
|
|
1725
|
+
name = "sdd"
|
|
1726
|
+
version = "3.0.10"
|
|
1727
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1728
|
+
checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca"
|
|
1729
|
+
|
|
1702
1730
|
[[package]]
|
|
1703
1731
|
name = "serde"
|
|
1704
1732
|
version = "1.0.226"
|
|
@@ -1786,6 +1814,31 @@ dependencies = [
|
|
|
1786
1814
|
"unsafe-libyaml",
|
|
1787
1815
|
]
|
|
1788
1816
|
|
|
1817
|
+
[[package]]
|
|
1818
|
+
name = "serial_test"
|
|
1819
|
+
version = "3.2.0"
|
|
1820
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1821
|
+
checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9"
|
|
1822
|
+
dependencies = [
|
|
1823
|
+
"futures",
|
|
1824
|
+
"log",
|
|
1825
|
+
"once_cell",
|
|
1826
|
+
"parking_lot",
|
|
1827
|
+
"scc",
|
|
1828
|
+
"serial_test_derive",
|
|
1829
|
+
]
|
|
1830
|
+
|
|
1831
|
+
[[package]]
|
|
1832
|
+
name = "serial_test_derive"
|
|
1833
|
+
version = "3.2.0"
|
|
1834
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1835
|
+
checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef"
|
|
1836
|
+
dependencies = [
|
|
1837
|
+
"proc-macro2",
|
|
1838
|
+
"quote",
|
|
1839
|
+
"syn",
|
|
1840
|
+
]
|
|
1841
|
+
|
|
1789
1842
|
[[package]]
|
|
1790
1843
|
name = "shlex"
|
|
1791
1844
|
version = "1.3.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "rumdl"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.158"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
rust-version = "1.89.0"
|
|
6
6
|
description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
|
|
@@ -103,6 +103,7 @@ rand = "0.9.1"
|
|
|
103
103
|
pretty_assertions = "1.4"
|
|
104
104
|
unicode-segmentation = "1.12"
|
|
105
105
|
unicode-width = "0.2"
|
|
106
|
+
serial_test = "3.2"
|
|
106
107
|
|
|
107
108
|
[target.'cfg(not(target_env = "msvc"))'.dependencies]
|
|
108
109
|
tikv-jemallocator = "0.6"
|
|
@@ -67,6 +67,34 @@ When enabled, this rule will:
|
|
|
67
67
|
- Reference-style links are checked for both parts
|
|
68
68
|
- Links with only whitespace are considered empty
|
|
69
69
|
|
|
70
|
+
### MkDocs mode
|
|
71
|
+
|
|
72
|
+
When using MkDocs flavor (`flavor = "mkdocs"`), this rule recognizes valid MkDocs-specific syntax:
|
|
73
|
+
|
|
74
|
+
**Auto-references** (backtick-wrapped Python identifiers):
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
[`module.Class`][] <!-- Valid MkDocs auto-reference -->
|
|
78
|
+
[`str`][] <!-- Valid Python type reference -->
|
|
79
|
+
[`api.function`][] <!-- Valid API reference -->
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Paragraph anchors** (using Python-Markdown attr_list extension):
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
[](){ #my-anchor } <!-- Valid anchor point -->
|
|
86
|
+
[](){ #anchor .class } <!-- Valid anchor with CSS class -->
|
|
87
|
+
[](){: #anchor } <!-- Valid with colon syntax -->
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
These patterns create anchor points in documentation and are widely used in MkDocs projects with the `attr_list` extension.
|
|
91
|
+
|
|
92
|
+
**References:**
|
|
93
|
+
|
|
94
|
+
- [Python-Markdown attr_list extension](https://python-markdown.github.io/extensions/attr_list/)
|
|
95
|
+
- [mkdocs-autorefs plugin](https://mkdocstrings.github.io/autorefs/)
|
|
96
|
+
- [MkDocs auto-references discussion](https://github.com/mkdocs/mkdocs/discussions/3754)
|
|
97
|
+
|
|
70
98
|
## Learn more
|
|
71
99
|
|
|
72
100
|
- [CommonMark specification for links](https://spec.commonmark.org/0.31.2/#links)
|
|
@@ -251,11 +251,12 @@ pub struct GlobalConfig {
|
|
|
251
251
|
#[serde(default)]
|
|
252
252
|
pub flavor: MarkdownFlavor,
|
|
253
253
|
|
|
254
|
-
/// Whether to enforce exclude
|
|
255
|
-
///
|
|
256
|
-
///
|
|
257
|
-
/// This
|
|
254
|
+
/// [DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths.
|
|
255
|
+
/// This option is deprecated as of v0.0.156 and has no effect.
|
|
256
|
+
/// Exclude patterns are now always respected, even for explicitly provided files.
|
|
257
|
+
/// This prevents duplication between rumdl config and tool configs like pre-commit.
|
|
258
258
|
#[serde(default)]
|
|
259
|
+
#[deprecated(since = "0.0.156", note = "Exclude patterns are now always respected")]
|
|
259
260
|
pub force_exclude: bool,
|
|
260
261
|
}
|
|
261
262
|
|
|
@@ -269,6 +270,7 @@ fn default_line_length() -> u64 {
|
|
|
269
270
|
|
|
270
271
|
// Add the Default impl
|
|
271
272
|
impl Default for GlobalConfig {
|
|
273
|
+
#[allow(deprecated)]
|
|
272
274
|
fn default() -> Self {
|
|
273
275
|
Self {
|
|
274
276
|
enable: Vec::new(),
|
|
@@ -1704,52 +1706,55 @@ impl SourcedConfig {
|
|
|
1704
1706
|
None
|
|
1705
1707
|
}
|
|
1706
1708
|
|
|
1707
|
-
///
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
use etcetera::{BaseStrategy, choose_base_strategy};
|
|
1709
|
+
/// Internal implementation that accepts config directory for testing
|
|
1710
|
+
fn user_configuration_path_impl(config_dir: &Path) -> Option<std::path::PathBuf> {
|
|
1711
|
+
let config_dir = config_dir.join("rumdl");
|
|
1711
1712
|
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
let config_dir = strategy.config_dir().join("rumdl");
|
|
1713
|
+
// Check for config files in precedence order (same as project discovery)
|
|
1714
|
+
const USER_CONFIG_FILES: &[&str] = &[".rumdl.toml", "rumdl.toml", "pyproject.toml"];
|
|
1715
1715
|
|
|
1716
|
-
|
|
1717
|
-
|
|
1716
|
+
log::debug!(
|
|
1717
|
+
"[rumdl-config] Checking for user configuration in: {}",
|
|
1718
|
+
config_dir.display()
|
|
1719
|
+
);
|
|
1718
1720
|
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
config_dir.display()
|
|
1722
|
-
);
|
|
1721
|
+
for filename in USER_CONFIG_FILES {
|
|
1722
|
+
let config_path = config_dir.join(filename);
|
|
1723
1723
|
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
if
|
|
1728
|
-
|
|
1729
|
-
if *filename == "pyproject.toml" {
|
|
1730
|
-
if let Ok(content) = std::fs::read_to_string(&config_path) {
|
|
1731
|
-
if content.contains("[tool.rumdl]") || content.contains("tool.rumdl") {
|
|
1732
|
-
log::debug!(
|
|
1733
|
-
"[rumdl-config] Found user configuration at: {}",
|
|
1734
|
-
config_path.display()
|
|
1735
|
-
);
|
|
1736
|
-
return Some(config_path);
|
|
1737
|
-
}
|
|
1738
|
-
log::debug!("[rumdl-config] Found user pyproject.toml but no [tool.rumdl] section");
|
|
1739
|
-
continue;
|
|
1740
|
-
}
|
|
1741
|
-
} else {
|
|
1724
|
+
if config_path.exists() {
|
|
1725
|
+
// For pyproject.toml, verify it contains [tool.rumdl] section
|
|
1726
|
+
if *filename == "pyproject.toml" {
|
|
1727
|
+
if let Ok(content) = std::fs::read_to_string(&config_path) {
|
|
1728
|
+
if content.contains("[tool.rumdl]") || content.contains("tool.rumdl") {
|
|
1742
1729
|
log::debug!("[rumdl-config] Found user configuration at: {}", config_path.display());
|
|
1743
1730
|
return Some(config_path);
|
|
1744
1731
|
}
|
|
1732
|
+
log::debug!("[rumdl-config] Found user pyproject.toml but no [tool.rumdl] section");
|
|
1733
|
+
continue;
|
|
1745
1734
|
}
|
|
1735
|
+
} else {
|
|
1736
|
+
log::debug!("[rumdl-config] Found user configuration at: {}", config_path.display());
|
|
1737
|
+
return Some(config_path);
|
|
1746
1738
|
}
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1747
1741
|
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1742
|
+
log::debug!(
|
|
1743
|
+
"[rumdl-config] No user configuration found in: {}",
|
|
1744
|
+
config_dir.display()
|
|
1745
|
+
);
|
|
1746
|
+
None
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
/// Discover user-level configuration file from platform-specific config directory.
|
|
1750
|
+
/// Returns the first configuration file found in the user config directory.
|
|
1751
|
+
fn user_configuration_path() -> Option<std::path::PathBuf> {
|
|
1752
|
+
use etcetera::{BaseStrategy, choose_base_strategy};
|
|
1753
|
+
|
|
1754
|
+
match choose_base_strategy() {
|
|
1755
|
+
Ok(strategy) => {
|
|
1756
|
+
let config_dir = strategy.config_dir();
|
|
1757
|
+
Self::user_configuration_path_impl(&config_dir)
|
|
1753
1758
|
}
|
|
1754
1759
|
Err(e) => {
|
|
1755
1760
|
log::debug!("[rumdl-config] Failed to determine user config directory: {e}");
|
|
@@ -1758,12 +1763,13 @@ impl SourcedConfig {
|
|
|
1758
1763
|
}
|
|
1759
1764
|
}
|
|
1760
1765
|
|
|
1761
|
-
///
|
|
1762
|
-
|
|
1763
|
-
pub fn
|
|
1766
|
+
/// Internal implementation that accepts user config directory for testing
|
|
1767
|
+
#[doc(hidden)]
|
|
1768
|
+
pub fn load_with_discovery_impl(
|
|
1764
1769
|
config_path: Option<&str>,
|
|
1765
1770
|
cli_overrides: Option<&SourcedGlobalConfig>,
|
|
1766
1771
|
skip_auto_discovery: bool,
|
|
1772
|
+
user_config_dir: Option<&Path>,
|
|
1767
1773
|
) -> Result<Self, ConfigError> {
|
|
1768
1774
|
use std::env;
|
|
1769
1775
|
log::debug!("[rumdl-config] Current working directory: {:?}", env::current_dir());
|
|
@@ -1829,7 +1835,13 @@ impl SourcedConfig {
|
|
|
1829
1835
|
// Only perform auto-discovery if not skipped AND no explicit config path provided
|
|
1830
1836
|
if !skip_auto_discovery && config_path.is_none() {
|
|
1831
1837
|
// Step 1: Load user configuration first (as a base)
|
|
1832
|
-
if let Some(
|
|
1838
|
+
let user_config_path = if let Some(dir) = user_config_dir {
|
|
1839
|
+
Self::user_configuration_path_impl(dir)
|
|
1840
|
+
} else {
|
|
1841
|
+
Self::user_configuration_path()
|
|
1842
|
+
};
|
|
1843
|
+
|
|
1844
|
+
if let Some(user_config_path) = user_config_path {
|
|
1833
1845
|
let path_str = user_config_path.display().to_string();
|
|
1834
1846
|
let filename = user_config_path.file_name().and_then(|n| n.to_str()).unwrap_or("");
|
|
1835
1847
|
|
|
@@ -1948,6 +1960,16 @@ impl SourcedConfig {
|
|
|
1948
1960
|
|
|
1949
1961
|
Ok(sourced_config)
|
|
1950
1962
|
}
|
|
1963
|
+
|
|
1964
|
+
/// Load and merge configurations from files and CLI overrides.
|
|
1965
|
+
/// If skip_auto_discovery is true, only explicit config paths are loaded.
|
|
1966
|
+
pub fn load_with_discovery(
|
|
1967
|
+
config_path: Option<&str>,
|
|
1968
|
+
cli_overrides: Option<&SourcedGlobalConfig>,
|
|
1969
|
+
skip_auto_discovery: bool,
|
|
1970
|
+
) -> Result<Self, ConfigError> {
|
|
1971
|
+
Self::load_with_discovery_impl(config_path, cli_overrides, skip_auto_discovery, None)
|
|
1972
|
+
}
|
|
1951
1973
|
}
|
|
1952
1974
|
|
|
1953
1975
|
impl From<SourcedConfig> for Config {
|
|
@@ -1962,6 +1984,7 @@ impl From<SourcedConfig> for Config {
|
|
|
1962
1984
|
}
|
|
1963
1985
|
rules.insert(normalized_rule_name, RuleConfig { values });
|
|
1964
1986
|
}
|
|
1987
|
+
#[allow(deprecated)]
|
|
1965
1988
|
let global = GlobalConfig {
|
|
1966
1989
|
enable: sourced.global.enable.value,
|
|
1967
1990
|
disable: sourced.global.disable.value,
|