rumdl 0.0.144__tar.gz → 0.0.145__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.144 → rumdl-0.0.145}/Cargo.lock +1 -1
- {rumdl-0.0.144 → rumdl-0.0.145}/Cargo.toml +1 -1
- {rumdl-0.0.144 → rumdl-0.0.145}/PKG-INFO +1 -1
- {rumdl-0.0.144 → rumdl-0.0.145}/src/lib.rs +3 -11
- {rumdl-0.0.144 → rumdl-0.0.145}/src/lint_context.rs +147 -1
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rule.rs +8 -26
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md001_heading_increment.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md002_first_heading_h1.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md003_heading_style.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md004_unordered_list_style.rs +0 -16
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md005_list_indent.rs +7 -43
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md006_start_bullets.rs +4 -113
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md007_ul_indent.rs +0 -136
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md012_no_multiple_blanks.rs +0 -15
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md013_line_length.rs +31 -56
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md018_no_missing_space_atx.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md019_no_multiple_space_atx.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md020_no_missing_space_closed_atx.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md022_blanks_around_headings.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md023_heading_start_left.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md024_no_duplicate_heading.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md025_single_title.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md026_no_trailing_punctuation.rs +0 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md028_no_blanks_blockquote.rs +5 -29
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md029_ordered_list_prefix.rs +11 -53
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md030_list_marker_space.rs +6 -25
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md031_blanks_around_fences.rs +5 -100
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md032_blanks_around_lists.rs +24 -89
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md033_no_inline_html.rs +5 -33
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md034_no_bare_urls.rs +194 -235
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md036_no_emphasis_only_first.rs +5 -25
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md037_spaces_around_emphasis.rs +5 -45
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md038_no_space_in_code.rs +0 -16
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md039_no_space_in_links.rs +0 -14
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md040_fenced_code_language.rs +0 -24
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md042_no_empty_links.rs +0 -61
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md043_required_headings.rs +4 -42
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md046_code_block_style.rs +76 -264
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md049_emphasis_style.rs +2 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md053_link_image_reference_definitions.rs +11 -26
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md054_link_image_style.rs +2 -4
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md057_existing_relative_links.rs +7 -34
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mod.rs +3 -2
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/escaped_brackets_test.rs +3 -37
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md032_test.rs +3 -10
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md046_test.rs +2 -2
- {rumdl-0.0.144 → rumdl-0.0.145}/.config/nextest.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/.mise.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/.rumdl.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/.rustfmt.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/CHANGELOG.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/LICENSE +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/MANIFEST.in +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/Makefile +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/README.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/assets/logo.png +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benches/range_performance.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/RULES.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/global-settings.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/inline-configuration.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md001.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md002.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md003.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md004.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md005.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md006.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md007.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md009.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md010.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md011.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md012.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md013.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md014.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md018.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md019.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md020.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md021.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md022.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md023.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md024.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md025.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md026.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md027.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md028.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md029.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md030.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md031.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md032.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md033.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md034.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md035.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md036.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md037.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md038.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md039.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md040.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md041.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md042.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md043.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md044.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md045.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md046.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md047.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md048.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md049.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md050.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md051.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md052.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md053.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md054.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md055.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md056.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md057.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/md058.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/parity_check.py +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/pyproject.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/python/MANIFEST.in +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/rumdl.toml.example +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/rust-toolchain.toml +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/generate-downloads-table.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/pre-release.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/exit_codes.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/inline_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/lsp/server.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/lsp/types.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/main.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/output/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/parallel.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/performance.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/profiling.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/python.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rule_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/anchor_styles/github.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/anchor_styles/jekyll.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/anchor_styles/kramdown.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/anchor_styles/kramdown_gfm.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/anchor_styles/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/header_id_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/kramdown_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/line_ending.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_admonitions.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_common.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_critic.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_footnotes.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_patterns.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_snippets.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_tabs.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocs_test_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/mkdocstrings_refs.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/skip_context.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/src/vscode.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/common/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/config_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/config_upward_traversal_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/fix_counting_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/fix_performance_baseline_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/fixable_unfixable_config_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/init_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/kramdown_integration_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lib.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_formatting_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_initialization_options_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_mkdocs_flavor_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/lsp_unopened_document_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md032_ordered_list_bug_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md037_xxxx_regression_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md038_false_positive_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md051_readme_bug_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md051_toc_bug_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/md052_literal_brackets_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/perf_check.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md005_dynamic_indent_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md026_kramdown_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md028_md009_interaction_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_code_block_separation_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_fix_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_issue42_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_markdownlint_parity_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_pathological_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md031_kramdown_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md033_kramdown_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md037_kramdown_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_comprehensive_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_critical_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_issue_39_regression_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_performance_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_property_based_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_regression_prevention_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md051_unicode_security_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md058_kramdown_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/mkdocs_admonitions_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/mkdocs_edge_cases_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/mkdocs_extensions_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/mkdocs_snippets_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules/rule_interaction_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/sentence_per_line_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/skip_context_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/test_underscore_edge_cases.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/unfixable_rules_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utf8_boundary_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/vscode_tests.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.144 → rumdl-0.0.145}/tests/vscode_windows_test.rs +0 -0
|
@@ -25,7 +25,6 @@ pub use rules::*;
|
|
|
25
25
|
|
|
26
26
|
pub use crate::lint_context::{LineInfo, LintContext, ListItemInfo};
|
|
27
27
|
use crate::rule::{LintResult, Rule, RuleCategory};
|
|
28
|
-
use crate::utils::document_structure::DocumentStructure;
|
|
29
28
|
use std::time::Instant;
|
|
30
29
|
|
|
31
30
|
/// Content characteristics for efficient rule filtering
|
|
@@ -151,9 +150,6 @@ pub fn lint(
|
|
|
151
150
|
let _total_rules = rules.len();
|
|
152
151
|
let _applicable_count = applicable_rules.len();
|
|
153
152
|
|
|
154
|
-
// Parse DocumentStructure once
|
|
155
|
-
let structure = DocumentStructure::new(content);
|
|
156
|
-
|
|
157
153
|
// Parse AST once for rules that can benefit from it
|
|
158
154
|
let ast_rules_count = applicable_rules.iter().filter(|rule| rule.uses_ast()).count();
|
|
159
155
|
let ast = if ast_rules_count > 0 {
|
|
@@ -177,15 +173,11 @@ pub fn lint(
|
|
|
177
173
|
.unwrap_or_else(|| rule.check_with_ast(&lint_ctx, ast_ref))
|
|
178
174
|
} else {
|
|
179
175
|
// Fallback to regular check if no AST
|
|
180
|
-
rule.
|
|
181
|
-
.and_then(|ext| ext.check_with_structure_opt(&lint_ctx, &structure))
|
|
182
|
-
.unwrap_or_else(|| rule.check(&lint_ctx))
|
|
176
|
+
rule.check(&lint_ctx)
|
|
183
177
|
}
|
|
184
178
|
} else {
|
|
185
|
-
// 2.
|
|
186
|
-
rule.
|
|
187
|
-
.and_then(|ext| ext.check_with_structure_opt(&lint_ctx, &structure))
|
|
188
|
-
.unwrap_or_else(|| rule.check(&lint_ctx))
|
|
179
|
+
// 2. Regular check path
|
|
180
|
+
rule.check(&lint_ctx)
|
|
189
181
|
};
|
|
190
182
|
|
|
191
183
|
match result {
|
|
@@ -75,6 +75,8 @@ pub struct LineInfo {
|
|
|
75
75
|
pub in_code_block: bool,
|
|
76
76
|
/// Whether this line is inside front matter
|
|
77
77
|
pub in_front_matter: bool,
|
|
78
|
+
/// Whether this line is inside an HTML block
|
|
79
|
+
pub in_html_block: bool,
|
|
78
80
|
/// List item information if this line starts a list item
|
|
79
81
|
pub list_item: Option<ListItemInfo>,
|
|
80
82
|
/// Heading information if this line is a heading
|
|
@@ -393,7 +395,7 @@ impl<'a> LintContext<'a> {
|
|
|
393
395
|
let code_blocks = CodeBlockUtils::detect_code_blocks(content);
|
|
394
396
|
|
|
395
397
|
// Pre-compute line information
|
|
396
|
-
let lines = Self::compute_line_info(content, &line_offsets, &code_blocks, flavor);
|
|
398
|
+
let mut lines = Self::compute_line_info(content, &line_offsets, &code_blocks, flavor);
|
|
397
399
|
|
|
398
400
|
// Parse code spans early so we can exclude them from link/image parsing
|
|
399
401
|
let ast = get_cached_ast(content);
|
|
@@ -405,6 +407,9 @@ impl<'a> LintContext<'a> {
|
|
|
405
407
|
let reference_defs = Self::parse_reference_defs(content, &lines);
|
|
406
408
|
let list_blocks = Self::parse_list_blocks(&lines);
|
|
407
409
|
|
|
410
|
+
// Detect HTML blocks
|
|
411
|
+
Self::detect_html_blocks(&mut lines);
|
|
412
|
+
|
|
408
413
|
// Compute character frequency for fast content analysis
|
|
409
414
|
let char_frequency = Self::compute_char_frequency(content);
|
|
410
415
|
|
|
@@ -575,6 +580,45 @@ impl<'a> LintContext<'a> {
|
|
|
575
580
|
.find(|block| line_num >= block.start_line && line_num <= block.end_line)
|
|
576
581
|
}
|
|
577
582
|
|
|
583
|
+
// Compatibility methods for DocumentStructure migration
|
|
584
|
+
|
|
585
|
+
/// Check if a line is within a code block
|
|
586
|
+
pub fn is_in_code_block(&self, line_num: usize) -> bool {
|
|
587
|
+
if line_num == 0 || line_num > self.lines.len() {
|
|
588
|
+
return false;
|
|
589
|
+
}
|
|
590
|
+
self.lines[line_num - 1].in_code_block
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/// Check if a line is within front matter
|
|
594
|
+
pub fn is_in_front_matter(&self, line_num: usize) -> bool {
|
|
595
|
+
if line_num == 0 || line_num > self.lines.len() {
|
|
596
|
+
return false;
|
|
597
|
+
}
|
|
598
|
+
self.lines[line_num - 1].in_front_matter
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
/// Check if a line is within an HTML block
|
|
602
|
+
pub fn is_in_html_block(&self, line_num: usize) -> bool {
|
|
603
|
+
if line_num == 0 || line_num > self.lines.len() {
|
|
604
|
+
return false;
|
|
605
|
+
}
|
|
606
|
+
self.lines[line_num - 1].in_html_block
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/// Check if a line and column is within a code span
|
|
610
|
+
pub fn is_in_code_span(&self, line_num: usize, col: usize) -> bool {
|
|
611
|
+
if line_num == 0 || line_num > self.lines.len() {
|
|
612
|
+
return false;
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
// Use the code spans cache to check
|
|
616
|
+
let code_spans = self.code_spans();
|
|
617
|
+
code_spans
|
|
618
|
+
.iter()
|
|
619
|
+
.any(|span| span.line == line_num && col >= span.start_col && col <= span.end_col)
|
|
620
|
+
}
|
|
621
|
+
|
|
578
622
|
/// Check if content has any instances of a specific character (fast)
|
|
579
623
|
pub fn has_char(&self, ch: char) -> bool {
|
|
580
624
|
match ch {
|
|
@@ -1120,6 +1164,7 @@ impl<'a> LintContext<'a> {
|
|
|
1120
1164
|
is_blank,
|
|
1121
1165
|
in_code_block,
|
|
1122
1166
|
in_front_matter: in_front_matter && i <= front_matter_end,
|
|
1167
|
+
in_html_block: false, // Will be populated after line creation
|
|
1123
1168
|
list_item,
|
|
1124
1169
|
heading: None, // Will be populated in second pass for Setext headings
|
|
1125
1170
|
blockquote: None, // Will be populated after line creation
|
|
@@ -1365,6 +1410,107 @@ impl<'a> LintContext<'a> {
|
|
|
1365
1410
|
lines
|
|
1366
1411
|
}
|
|
1367
1412
|
|
|
1413
|
+
/// Detect HTML blocks in the content
|
|
1414
|
+
fn detect_html_blocks(lines: &mut [LineInfo]) {
|
|
1415
|
+
// HTML block elements that trigger block context
|
|
1416
|
+
const BLOCK_ELEMENTS: &[&str] = &[
|
|
1417
|
+
"address",
|
|
1418
|
+
"article",
|
|
1419
|
+
"aside",
|
|
1420
|
+
"blockquote",
|
|
1421
|
+
"details",
|
|
1422
|
+
"dialog",
|
|
1423
|
+
"dd",
|
|
1424
|
+
"div",
|
|
1425
|
+
"dl",
|
|
1426
|
+
"dt",
|
|
1427
|
+
"fieldset",
|
|
1428
|
+
"figcaption",
|
|
1429
|
+
"figure",
|
|
1430
|
+
"footer",
|
|
1431
|
+
"form",
|
|
1432
|
+
"h1",
|
|
1433
|
+
"h2",
|
|
1434
|
+
"h3",
|
|
1435
|
+
"h4",
|
|
1436
|
+
"h5",
|
|
1437
|
+
"h6",
|
|
1438
|
+
"header",
|
|
1439
|
+
"hr",
|
|
1440
|
+
"li",
|
|
1441
|
+
"main",
|
|
1442
|
+
"nav",
|
|
1443
|
+
"ol",
|
|
1444
|
+
"p",
|
|
1445
|
+
"pre",
|
|
1446
|
+
"section",
|
|
1447
|
+
"table",
|
|
1448
|
+
"tbody",
|
|
1449
|
+
"td",
|
|
1450
|
+
"tfoot",
|
|
1451
|
+
"th",
|
|
1452
|
+
"thead",
|
|
1453
|
+
"tr",
|
|
1454
|
+
"ul",
|
|
1455
|
+
];
|
|
1456
|
+
|
|
1457
|
+
let mut i = 0;
|
|
1458
|
+
while i < lines.len() {
|
|
1459
|
+
// Skip if already in code block or front matter
|
|
1460
|
+
if lines[i].in_code_block || lines[i].in_front_matter {
|
|
1461
|
+
i += 1;
|
|
1462
|
+
continue;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1465
|
+
let trimmed = lines[i].content.trim_start();
|
|
1466
|
+
|
|
1467
|
+
// Check if line starts with an HTML tag
|
|
1468
|
+
if trimmed.starts_with('<') && trimmed.len() > 1 {
|
|
1469
|
+
// Extract tag name safely
|
|
1470
|
+
let after_bracket = &trimmed[1..];
|
|
1471
|
+
let is_closing = after_bracket.starts_with('/');
|
|
1472
|
+
let tag_start = if is_closing { &after_bracket[1..] } else { after_bracket };
|
|
1473
|
+
|
|
1474
|
+
// Extract tag name (stop at space, >, /, or end of string)
|
|
1475
|
+
let tag_name = tag_start
|
|
1476
|
+
.chars()
|
|
1477
|
+
.take_while(|c| c.is_ascii_alphabetic() || *c == '-')
|
|
1478
|
+
.collect::<String>()
|
|
1479
|
+
.to_lowercase();
|
|
1480
|
+
|
|
1481
|
+
// Check if it's a block element
|
|
1482
|
+
if !tag_name.is_empty() && BLOCK_ELEMENTS.contains(&tag_name.as_str()) {
|
|
1483
|
+
// Mark this line as in HTML block
|
|
1484
|
+
lines[i].in_html_block = true;
|
|
1485
|
+
|
|
1486
|
+
// For simplicity, just mark lines until we find a closing tag or reach a blank line
|
|
1487
|
+
// This avoids complex nesting logic that might cause infinite loops
|
|
1488
|
+
if !is_closing {
|
|
1489
|
+
let closing_tag = format!("</{tag_name}>");
|
|
1490
|
+
let mut j = i + 1;
|
|
1491
|
+
while j < lines.len() && j < i + 100 {
|
|
1492
|
+
// Limit search to 100 lines
|
|
1493
|
+
// Stop at blank lines
|
|
1494
|
+
if lines[j].is_blank {
|
|
1495
|
+
break;
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
lines[j].in_html_block = true;
|
|
1499
|
+
|
|
1500
|
+
// Check if this line contains the closing tag
|
|
1501
|
+
if lines[j].content.contains(&closing_tag) {
|
|
1502
|
+
break;
|
|
1503
|
+
}
|
|
1504
|
+
j += 1;
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
|
|
1510
|
+
i += 1;
|
|
1511
|
+
}
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1368
1514
|
/// Parse all inline code spans in the content using AST
|
|
1369
1515
|
fn parse_code_spans(content: &str, lines: &[LineInfo], ast: &Node) -> Vec<CodeSpan> {
|
|
1370
1516
|
let mut code_spans = Vec::new();
|
|
@@ -9,7 +9,6 @@ use thiserror::Error;
|
|
|
9
9
|
|
|
10
10
|
// Import document structure
|
|
11
11
|
use crate::lint_context::LintContext;
|
|
12
|
-
use crate::utils::document_structure::DocumentStructure;
|
|
13
12
|
|
|
14
13
|
// Import markdown AST for shared parsing
|
|
15
14
|
pub use markdown::mdast::Node as MarkdownAst;
|
|
@@ -99,29 +98,12 @@ pub trait Rule: DynClone + Send + Sync {
|
|
|
99
98
|
fn check(&self, ctx: &LintContext) -> LintResult;
|
|
100
99
|
fn fix(&self, ctx: &LintContext) -> Result<String, LintError>;
|
|
101
100
|
|
|
102
|
-
/// Enhanced check method using document structure
|
|
103
|
-
/// By default, calls the regular check method if not overridden
|
|
104
|
-
fn check_with_structure(&self, ctx: &LintContext, _structure: &DocumentStructure) -> LintResult {
|
|
105
|
-
self.check(ctx)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
101
|
/// AST-based check method for rules that can benefit from shared AST parsing
|
|
109
102
|
/// By default, calls the regular check method if not overridden
|
|
110
103
|
fn check_with_ast(&self, ctx: &LintContext, _ast: &MarkdownAst) -> LintResult {
|
|
111
104
|
self.check(ctx)
|
|
112
105
|
}
|
|
113
106
|
|
|
114
|
-
/// Combined check method using both document structure and AST
|
|
115
|
-
/// By default, calls the regular check method if not overridden
|
|
116
|
-
fn check_with_structure_and_ast(
|
|
117
|
-
&self,
|
|
118
|
-
ctx: &LintContext,
|
|
119
|
-
_structure: &DocumentStructure,
|
|
120
|
-
_ast: &MarkdownAst,
|
|
121
|
-
) -> LintResult {
|
|
122
|
-
self.check(ctx)
|
|
123
|
-
}
|
|
124
|
-
|
|
125
107
|
/// Check if this rule should quickly skip processing based on content
|
|
126
108
|
fn should_skip(&self, _ctx: &LintContext) -> bool {
|
|
127
109
|
false
|
|
@@ -137,16 +119,12 @@ pub trait Rule: DynClone + Send + Sync {
|
|
|
137
119
|
false
|
|
138
120
|
}
|
|
139
121
|
|
|
140
|
-
/// Check if this rule can benefit from document structure
|
|
141
|
-
fn uses_document_structure(&self) -> bool {
|
|
142
|
-
false
|
|
143
|
-
}
|
|
144
|
-
|
|
145
122
|
fn as_any(&self) -> &dyn std::any::Any;
|
|
146
123
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
124
|
+
// DocumentStructure has been merged into LintContext - this method is no longer used
|
|
125
|
+
// fn as_maybe_document_structure(&self) -> Option<&dyn MaybeDocumentStructure> {
|
|
126
|
+
// None
|
|
127
|
+
// }
|
|
150
128
|
|
|
151
129
|
fn as_maybe_ast(&self) -> Option<&dyn MaybeAst> {
|
|
152
130
|
None
|
|
@@ -332,6 +310,9 @@ pub fn is_rule_disabled_by_comment(content: &str, rule_name: &str) -> bool {
|
|
|
332
310
|
is_rule_disabled_at_line(content, rule_name, lines.len())
|
|
333
311
|
}
|
|
334
312
|
|
|
313
|
+
// DocumentStructure has been merged into LintContext - these traits are no longer needed
|
|
314
|
+
// The functionality is now directly available through LintContext methods
|
|
315
|
+
/*
|
|
335
316
|
// Helper trait for dynamic dispatch to check_with_structure
|
|
336
317
|
pub trait MaybeDocumentStructure {
|
|
337
318
|
fn check_with_structure_opt(
|
|
@@ -363,6 +344,7 @@ impl MaybeDocumentStructure for dyn Rule {
|
|
|
363
344
|
None
|
|
364
345
|
}
|
|
365
346
|
}
|
|
347
|
+
*/
|
|
366
348
|
|
|
367
349
|
// Helper trait for dynamic dispatch to check_with_ast
|
|
368
350
|
pub trait MaybeAst {
|
|
@@ -187,10 +187,6 @@ impl Rule for MD001HeadingIncrement {
|
|
|
187
187
|
self
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
191
|
-
None
|
|
192
|
-
}
|
|
193
|
-
|
|
194
190
|
fn from_config(_config: &crate::config::Config) -> Box<dyn Rule>
|
|
195
191
|
where
|
|
196
192
|
Self: Sized,
|
|
@@ -289,10 +289,6 @@ impl Rule for MD002FirstHeadingH1 {
|
|
|
289
289
|
self
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
293
|
-
None
|
|
294
|
-
}
|
|
295
|
-
|
|
296
292
|
fn default_config_section(&self) -> Option<(String, toml::Value)> {
|
|
297
293
|
let default_config = MD002Config::default();
|
|
298
294
|
let json_value = serde_json::to_value(&default_config).ok()?;
|
|
@@ -250,10 +250,6 @@ impl Rule for MD003HeadingStyle {
|
|
|
250
250
|
self
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
254
|
-
None
|
|
255
|
-
}
|
|
256
|
-
|
|
257
253
|
fn default_config_section(&self) -> Option<(String, toml::Value)> {
|
|
258
254
|
let default_config = MD003Config::default();
|
|
259
255
|
let json_value = serde_json::to_value(&default_config).ok()?;
|
|
@@ -50,7 +50,6 @@ use crate::LintContext;
|
|
|
50
50
|
///
|
|
51
51
|
/// Consistent list markers improve readability and reduce distraction, especially in large documents or when collaborating with others. This rule helps enforce a uniform style across all unordered lists.
|
|
52
52
|
use crate::rule::{Fix, LintError, LintResult, LintWarning, Rule, RuleCategory, Severity};
|
|
53
|
-
use crate::utils::document_structure::DocumentStructureExtensions;
|
|
54
53
|
use toml;
|
|
55
54
|
|
|
56
55
|
mod md004_config;
|
|
@@ -98,10 +97,6 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
98
97
|
"Use consistent style for unordered list markers"
|
|
99
98
|
}
|
|
100
99
|
|
|
101
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
102
|
-
Some(self)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
100
|
fn check(&self, ctx: &LintContext) -> LintResult {
|
|
106
101
|
// Early returns for performance
|
|
107
102
|
if ctx.content.is_empty() {
|
|
@@ -358,17 +353,6 @@ impl Rule for MD004UnorderedListStyle {
|
|
|
358
353
|
}
|
|
359
354
|
}
|
|
360
355
|
|
|
361
|
-
impl DocumentStructureExtensions for MD004UnorderedListStyle {
|
|
362
|
-
fn has_relevant_elements(
|
|
363
|
-
&self,
|
|
364
|
-
ctx: &crate::lint_context::LintContext,
|
|
365
|
-
_doc_structure: &crate::utils::document_structure::DocumentStructure,
|
|
366
|
-
) -> bool {
|
|
367
|
-
// Quick check for any list markers and unordered list blocks
|
|
368
|
-
ctx.content.contains(['*', '-', '+']) && ctx.list_blocks.iter().any(|block| !block.is_ordered)
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
|
|
372
356
|
#[cfg(test)]
|
|
373
357
|
mod tests {
|
|
374
358
|
use super::*;
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
use crate::utils::range_utils::{LineIndex, calculate_match_range};
|
|
7
7
|
|
|
8
8
|
use crate::rule::{Fix, LintError, LintResult, LintWarning, Rule, RuleCategory, Severity};
|
|
9
|
-
use crate::utils::document_structure::DocumentStructure;
|
|
10
9
|
// No regex patterns needed for this rule
|
|
11
10
|
use std::collections::HashMap;
|
|
12
11
|
use toml;
|
|
@@ -559,29 +558,10 @@ impl Rule for MD005ListIndent {
|
|
|
559
558
|
ctx.content.is_empty() || !ctx.lines.iter().any(|line| line.list_item.is_some())
|
|
560
559
|
}
|
|
561
560
|
|
|
562
|
-
/// Optimized check using document structure
|
|
563
|
-
fn check_with_structure(
|
|
564
|
-
&self,
|
|
565
|
-
ctx: &crate::lint_context::LintContext,
|
|
566
|
-
structure: &DocumentStructure,
|
|
567
|
-
) -> LintResult {
|
|
568
|
-
// If no lists in structure, return early
|
|
569
|
-
if structure.list_lines.is_empty() {
|
|
570
|
-
return Ok(Vec::new());
|
|
571
|
-
}
|
|
572
|
-
|
|
573
|
-
// Use optimized check - it's already efficient enough
|
|
574
|
-
self.check_optimized(ctx)
|
|
575
|
-
}
|
|
576
|
-
|
|
577
561
|
fn as_any(&self) -> &dyn std::any::Any {
|
|
578
562
|
self
|
|
579
563
|
}
|
|
580
564
|
|
|
581
|
-
fn as_maybe_document_structure(&self) -> Option<&dyn crate::rule::MaybeDocumentStructure> {
|
|
582
|
-
Some(self)
|
|
583
|
-
}
|
|
584
|
-
|
|
585
565
|
fn default_config_section(&self) -> Option<(String, toml::Value)> {
|
|
586
566
|
None
|
|
587
567
|
}
|
|
@@ -627,21 +607,10 @@ impl Rule for MD005ListIndent {
|
|
|
627
607
|
}
|
|
628
608
|
}
|
|
629
609
|
|
|
630
|
-
impl crate::utils::document_structure::DocumentStructureExtensions for MD005ListIndent {
|
|
631
|
-
fn has_relevant_elements(
|
|
632
|
-
&self,
|
|
633
|
-
_ctx: &crate::lint_context::LintContext,
|
|
634
|
-
doc_structure: &crate::utils::document_structure::DocumentStructure,
|
|
635
|
-
) -> bool {
|
|
636
|
-
!doc_structure.list_lines.is_empty()
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
|
|
640
610
|
#[cfg(test)]
|
|
641
611
|
mod tests {
|
|
642
612
|
use super::*;
|
|
643
613
|
use crate::lint_context::LintContext;
|
|
644
|
-
use crate::utils::document_structure::DocumentStructureExtensions;
|
|
645
614
|
|
|
646
615
|
#[test]
|
|
647
616
|
fn test_valid_unordered_list() {
|
|
@@ -796,28 +765,25 @@ Even more text";
|
|
|
796
765
|
}
|
|
797
766
|
|
|
798
767
|
#[test]
|
|
799
|
-
fn
|
|
768
|
+
fn test_with_lint_context() {
|
|
800
769
|
let rule = MD005ListIndent::default();
|
|
801
770
|
|
|
802
771
|
// Test with consistent list indentation
|
|
803
772
|
let content = "* Item 1\n* Item 2\n * Nested item\n * Another nested item";
|
|
804
|
-
let structure = DocumentStructure::new(content);
|
|
805
773
|
let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
|
|
806
|
-
let result = rule.
|
|
774
|
+
let result = rule.check(&ctx).unwrap();
|
|
807
775
|
assert!(result.is_empty());
|
|
808
776
|
|
|
809
777
|
// Test with inconsistent list indentation
|
|
810
778
|
let content = "* Item 1\n* Item 2\n * Nested item\n * Another nested item";
|
|
811
|
-
let structure = DocumentStructure::new(content);
|
|
812
779
|
let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
|
|
813
|
-
let result = rule.
|
|
780
|
+
let result = rule.check(&ctx).unwrap();
|
|
814
781
|
assert!(!result.is_empty()); // Should have at least one warning
|
|
815
782
|
|
|
816
783
|
// Test with different level indentation issues
|
|
817
784
|
let content = "* Item 1\n * Nested item\n * Another nested item with wrong indent";
|
|
818
|
-
let structure = DocumentStructure::new(content);
|
|
819
785
|
let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
|
|
820
|
-
let result = rule.
|
|
786
|
+
let result = rule.check(&ctx).unwrap();
|
|
821
787
|
assert!(!result.is_empty()); // Should have at least one warning
|
|
822
788
|
}
|
|
823
789
|
|
|
@@ -1007,17 +973,15 @@ Even more text";
|
|
|
1007
973
|
}
|
|
1008
974
|
|
|
1009
975
|
#[test]
|
|
1010
|
-
fn
|
|
976
|
+
fn test_should_skip_validation() {
|
|
1011
977
|
let rule = MD005ListIndent::default();
|
|
1012
978
|
let content = "* List item";
|
|
1013
979
|
let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
|
|
1014
|
-
|
|
1015
|
-
assert!(rule.has_relevant_elements(&ctx, &doc_structure));
|
|
980
|
+
assert!(!rule.should_skip(&ctx));
|
|
1016
981
|
|
|
1017
982
|
let content = "No lists here";
|
|
1018
983
|
let ctx = LintContext::new(content, crate::config::MarkdownFlavor::Standard);
|
|
1019
|
-
|
|
1020
|
-
assert!(!rule.has_relevant_elements(&ctx, &doc_structure));
|
|
984
|
+
assert!(rule.should_skip(&ctx));
|
|
1021
985
|
}
|
|
1022
986
|
|
|
1023
987
|
#[test]
|