rumdl 0.0.109__tar.gz → 0.0.110__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.109 → rumdl-0.0.110}/.mise.toml +2 -1
- {rumdl-0.0.109 → rumdl-0.0.110}/CHANGELOG.md +3 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/Cargo.lock +3 -3
- {rumdl-0.0.109 → rumdl-0.0.110}/Cargo.toml +1 -1
- {rumdl-0.0.109 → rumdl-0.0.110}/Makefile +17 -1
- {rumdl-0.0.109 → rumdl-0.0.110}/PKG-INFO +1 -1
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md032_blanks_around_lists.rs +38 -2
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md032_test.rs +52 -1
- {rumdl-0.0.109 → rumdl-0.0.110}/.config/nextest.toml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/.pre-commit-config.yaml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/.rumdl.toml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/.rustfmt.toml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/LICENSE +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/MANIFEST.in +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/README.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/assets/logo.png +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benches/range_performance.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benchmark/bin/bench_lint_context.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benchmark/bin/benchmark.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benchmark/bin/benchmark_rule.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benchmark/bin/file_parallel_benchmark.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/benchmark/bin/measure_code_span_performance.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/RULES.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/global-settings.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md001.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md002.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md003.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md004.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md005.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md006.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md007.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md009.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md010.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md011.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md012.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md013.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md014.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md018.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md019.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md020.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md021.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md022.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md023.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md024.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md025.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md026.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md027.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md028.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md029.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md030.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md031.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md032.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md033.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md034.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md035.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md036.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md037.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md038.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md039.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md040.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md041.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md042.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md043.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md044.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md045.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md046.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md047.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md048.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md049.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md050.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md051.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md052.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md053.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md054.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md055.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md056.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md057.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/md058.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/docs/vscode-extension.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/parity_check.py +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/pyproject.toml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/python/MANIFEST.in +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/rumdl.toml.example +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/rust-toolchain.toml +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/scripts/extract-changelog.sh +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/scripts/prepare-release.sh +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/scripts/setup-pre-commit.sh +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/scripts/update-pre-commit-docs.sh +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/bin/debug_frontmatter.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/exit_codes.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/inline_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/lib.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/lint_context.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/lsp/server.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/lsp/types.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/main.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/azure.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/concise.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/github.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/gitlab.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/grouped.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/json.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/json_lines.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/junit.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/pylint.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/sarif.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/formatters/text.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/output/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/parallel.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/performance.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/profiling.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/python.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rule.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rule_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rule_config_serde.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md002_first_heading_h1/md002_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md003_heading_style/md003_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md004_unordered_list_style/md004_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md007_ul_indent/md007_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md009_trailing_spaces/md009_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md010_no_hard_tabs/md010_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md012_no_multiple_blanks/md012_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md013_line_length/md013_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md014_commands_show_output/md014_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md022_blanks_around_headings/md022_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md024_no_duplicate_heading/md024_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md025_single_title/md025_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md026_no_trailing_punctuation/md026_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md029_ordered_list_prefix/md029_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md030_list_marker_space/md030_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md033_no_inline_html/md033_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md035_hr_style/md035_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md036_no_emphasis_only_first/md036_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md044_proper_names/md044_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md045_no_alt_text/md045_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md046_code_block_style/md046_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md048_code_fence_style/md048_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md049_emphasis_style/md049_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md050_strong_style/md050_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md054_link_image_style/md054_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md055_table_pipe_style/md055_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md057_existing_relative_links/md057_config.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/emphasis_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/fix_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/utils/text_reflow.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/src/vscode.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_explain_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_flag_precedence_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_lsp_fix_consistency.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cli_statistics_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/common/cli_test_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/common/fixtures.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/common/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/common/test_utils.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/comprehensive_output_format_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/config_file_command_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/config_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/configuration_inheritance_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/consistency_regression_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/cross_platform_compatibility_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/deeply_nested_lists_performance_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/escaped_brackets_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/final_confidence_assessment.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/init_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/inline_config_blocks_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/inline_config_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/lib.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/lsp_editor_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/lsp_memory_leak_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/malformed_markdown_stress_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/markdownlintignore_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/md013_reflow_integration_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/nested_code_block_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/output_format_integration_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/perf_check.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/performance_validation_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/python_bindings_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/real_world_repository_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/regression_prevention_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/emphasis_edge_cases_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/heading_edge_cases_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/inline_content_edge_cases_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/link_edge_cases_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/list_rules_integration_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md005_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md029_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md034_ipv6_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md038_nested_backticks_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md051_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/rules_mod_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/thread_safety_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/unicode_edge_case_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/vscode_extension_fixes.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/vscode_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/vscode_tests.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/vscode_windows_comprehensive_test.rs +0 -0
- {rumdl-0.0.109 → rumdl-0.0.110}/tests/vscode_windows_test.rs +0 -0
|
@@ -20,6 +20,7 @@ uv = "latest"
|
|
|
20
20
|
"cargo:cargo-watch" = "latest"
|
|
21
21
|
"cargo:maturin" = "latest"
|
|
22
22
|
"cargo:cargo-binstall" = "latest"
|
|
23
|
+
"cargo:cargo-zigbuild" = "latest" # For building static Linux binaries
|
|
23
24
|
|
|
24
25
|
# Zig for cross-compilation (used by maturin)
|
|
25
26
|
zig = "0.13"
|
|
@@ -104,4 +105,4 @@ make test-quick
|
|
|
104
105
|
# rust = "1.87.0"
|
|
105
106
|
#
|
|
106
107
|
# [tools.windows]
|
|
107
|
-
# rust = "1.87.0"
|
|
108
|
+
# rust = "1.87.0"
|
|
@@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
## [0.0.110] - 2025-08-08
|
|
11
11
|
|
|
12
|
+
## [0.0.110] - 2025-08-08
|
|
13
|
+
|
|
12
14
|
## [0.0.107] - 2025-08-06
|
|
13
15
|
|
|
14
16
|
## [0.0.107] - 2025-08-06
|
|
@@ -302,6 +304,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
302
304
|
|
|
303
305
|
[Unreleased]: https://github.com/rvben/rumdl/compare/v0.0.110...HEAD
|
|
304
306
|
[0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
|
|
307
|
+
[0.0.110]: https://github.com/rvben/rumdl/compare/v0.0.109...v0.0.110
|
|
305
308
|
[0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
|
|
306
309
|
[0.0.107]: https://github.com/rvben/rumdl/compare/v0.0.106...v0.0.107
|
|
307
310
|
[0.0.105]: https://github.com/rvben/rumdl/compare/v0.0.104...v0.0.105
|
|
@@ -220,9 +220,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
|
|
|
220
220
|
|
|
221
221
|
[[package]]
|
|
222
222
|
name = "cc"
|
|
223
|
-
version = "1.2.
|
|
223
|
+
version = "1.2.32"
|
|
224
224
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
225
|
-
checksum = "
|
|
225
|
+
checksum = "2352e5597e9c544d5e6d9c95190d5d27738ade584fa8db0a16e130e5c2b5296e"
|
|
226
226
|
dependencies = [
|
|
227
227
|
"shlex",
|
|
228
228
|
]
|
|
@@ -1493,7 +1493,7 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
|
|
|
1493
1493
|
|
|
1494
1494
|
[[package]]
|
|
1495
1495
|
name = "rumdl"
|
|
1496
|
-
version = "0.0.
|
|
1496
|
+
version = "0.0.110"
|
|
1497
1497
|
dependencies = [
|
|
1498
1498
|
"anyhow",
|
|
1499
1499
|
"assert_cmd",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.PHONY: build test clean fmt check doc version-major version-minor version-patch build-python build-wheel dev-install setup-mise dev-setup dev-verify update-dependencies update-rust-version pre-release
|
|
1
|
+
.PHONY: build test clean fmt check doc version-major version-minor version-patch build-python build-wheel dev-install setup-mise dev-setup dev-verify update-dependencies update-rust-version pre-release build-static-linux-x64 build-static-linux-arm64 build-static-all
|
|
2
2
|
|
|
3
3
|
# Development environment setup
|
|
4
4
|
setup-mise:
|
|
@@ -60,6 +60,22 @@ ci-install-mise:
|
|
|
60
60
|
build:
|
|
61
61
|
cargo build --release
|
|
62
62
|
|
|
63
|
+
# Static binary builds for Linux (musl)
|
|
64
|
+
build-static-linux-x64:
|
|
65
|
+
@echo "Building static Linux x86_64 binary..."
|
|
66
|
+
rustup target add x86_64-unknown-linux-musl 2>/dev/null || true
|
|
67
|
+
mise exec -- cargo zigbuild --release --target x86_64-unknown-linux-musl
|
|
68
|
+
@echo "Static binary built at: target/x86_64-unknown-linux-musl/release/rumdl"
|
|
69
|
+
|
|
70
|
+
build-static-linux-arm64:
|
|
71
|
+
@echo "Building static Linux ARM64 binary..."
|
|
72
|
+
rustup target add aarch64-unknown-linux-musl 2>/dev/null || true
|
|
73
|
+
mise exec -- cargo zigbuild --release --target aarch64-unknown-linux-musl
|
|
74
|
+
@echo "Static binary built at: target/aarch64-unknown-linux-musl/release/rumdl"
|
|
75
|
+
|
|
76
|
+
build-static-all: build-static-linux-x64 build-static-linux-arm64
|
|
77
|
+
@echo "All static Linux binaries built successfully"
|
|
78
|
+
|
|
63
79
|
test:
|
|
64
80
|
cargo nextest run --profile dev
|
|
65
81
|
|
|
@@ -111,6 +111,7 @@ impl MD032BlanksAroundLists {
|
|
|
111
111
|
ctx: &crate::lint_context::LintContext,
|
|
112
112
|
structure: &DocumentStructure,
|
|
113
113
|
prev_line_num: usize,
|
|
114
|
+
current_line_num: usize,
|
|
114
115
|
) -> bool {
|
|
115
116
|
let trimmed_prev = prev_line.trim();
|
|
116
117
|
|
|
@@ -119,6 +120,11 @@ impl MD032BlanksAroundLists {
|
|
|
119
120
|
return true;
|
|
120
121
|
}
|
|
121
122
|
|
|
123
|
+
// Always allow nested lists (lists indented within other list items)
|
|
124
|
+
if self.is_nested_list(ctx, prev_line_num, current_line_num) {
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
|
|
122
128
|
// Allow lists after headings if configured
|
|
123
129
|
if self.allow_after_headings && self.is_heading_line_from_context(ctx, prev_line_num - 1) {
|
|
124
130
|
return false;
|
|
@@ -142,6 +148,30 @@ impl MD032BlanksAroundLists {
|
|
|
142
148
|
}
|
|
143
149
|
}
|
|
144
150
|
|
|
151
|
+
/// Check if the current list is nested within another list item
|
|
152
|
+
fn is_nested_list(
|
|
153
|
+
&self,
|
|
154
|
+
ctx: &crate::lint_context::LintContext,
|
|
155
|
+
prev_line_num: usize, // 1-indexed
|
|
156
|
+
current_line_num: usize, // 1-indexed
|
|
157
|
+
) -> bool {
|
|
158
|
+
// Check if current line is indented (typical for nested lists)
|
|
159
|
+
if current_line_num > 0 && current_line_num - 1 < ctx.lines.len() {
|
|
160
|
+
let current_line = &ctx.lines[current_line_num - 1];
|
|
161
|
+
if current_line.indent >= 2 {
|
|
162
|
+
// Check if previous line is a list item or list content
|
|
163
|
+
if prev_line_num > 0 && prev_line_num - 1 < ctx.lines.len() {
|
|
164
|
+
let prev_line = &ctx.lines[prev_line_num - 1];
|
|
165
|
+
// Previous line is a list item or indented content
|
|
166
|
+
if prev_line.list_item.is_some() || prev_line.indent >= 2 {
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
false
|
|
173
|
+
}
|
|
174
|
+
|
|
145
175
|
// Convert centralized list blocks to the format expected by perform_checks
|
|
146
176
|
fn convert_list_blocks(&self, ctx: &crate::lint_context::LintContext) -> Vec<(usize, usize, String)> {
|
|
147
177
|
let mut blocks: Vec<(usize, usize, String)> = Vec::new();
|
|
@@ -291,8 +321,13 @@ impl MD032BlanksAroundLists {
|
|
|
291
321
|
|
|
292
322
|
// Only require blank lines for content in the same context (same blockquote level)
|
|
293
323
|
// and when the context actually requires it
|
|
294
|
-
let should_require =
|
|
295
|
-
|
|
324
|
+
let should_require = self.should_require_blank_line_before(
|
|
325
|
+
prev_line_str,
|
|
326
|
+
ctx,
|
|
327
|
+
structure,
|
|
328
|
+
prev_line_actual_idx_1,
|
|
329
|
+
start_line,
|
|
330
|
+
);
|
|
296
331
|
if !is_prev_excluded && !prev_is_blank && prefixes_match && should_require {
|
|
297
332
|
// Calculate precise character range for the entire list line that needs a blank line before it
|
|
298
333
|
let (start_line, start_col, end_line, end_col) =
|
|
@@ -488,6 +523,7 @@ impl MD032BlanksAroundLists {
|
|
|
488
523
|
ctx,
|
|
489
524
|
structure,
|
|
490
525
|
prev_line_actual_idx_1,
|
|
526
|
+
start_line,
|
|
491
527
|
);
|
|
492
528
|
if !is_prev_excluded
|
|
493
529
|
&& !is_blank_in_context(lines[prev_line_actual_idx_0])
|
|
@@ -171,16 +171,67 @@ fn test_multiple_lists() {
|
|
|
171
171
|
|
|
172
172
|
#[test]
|
|
173
173
|
fn test_nested_lists() {
|
|
174
|
+
// Nested lists should not require blank lines between parent and child items
|
|
174
175
|
let rule = MD032BlanksAroundLists::default();
|
|
175
176
|
let content = "Text\n* Item 1\n * Nested 1\n * Nested 2\n* Item 2\nText";
|
|
176
177
|
let ctx = LintContext::new(content);
|
|
177
178
|
let result = rule.check(&ctx).unwrap();
|
|
178
|
-
|
|
179
|
+
// Should only warn about missing blank lines around the outer list, not the nested items
|
|
180
|
+
assert_eq!(
|
|
181
|
+
result.len(),
|
|
182
|
+
2,
|
|
183
|
+
"Should only warn about outer list boundaries, not nested items"
|
|
184
|
+
);
|
|
179
185
|
let fixed = rule.fix(&ctx).unwrap();
|
|
180
186
|
let _ctx_fixed = LintContext::new(&fixed);
|
|
181
187
|
assert_eq!(fixed, "Text\n\n* Item 1\n * Nested 1\n * Nested 2\n* Item 2\n\nText");
|
|
182
188
|
}
|
|
183
189
|
|
|
190
|
+
#[test]
|
|
191
|
+
fn test_nested_lists_with_strict_mode() {
|
|
192
|
+
// Even in strict mode, nested lists are a standard Markdown pattern and shouldn't require blank lines
|
|
193
|
+
let rule = MD032BlanksAroundLists::strict();
|
|
194
|
+
let content = "Text\n\n* Item 1\n * Nested 1\n * Nested 2\n* Item 2\n\nText";
|
|
195
|
+
let ctx = LintContext::new(content);
|
|
196
|
+
let result = rule.check(&ctx).unwrap();
|
|
197
|
+
// Even strict mode should not warn about nested lists - this is standard Markdown
|
|
198
|
+
assert!(
|
|
199
|
+
result.is_empty(),
|
|
200
|
+
"Nested lists are standard Markdown and shouldn't trigger warnings even in strict mode"
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
#[test]
|
|
205
|
+
fn test_deeply_nested_lists() {
|
|
206
|
+
// Test multiple levels of nesting
|
|
207
|
+
let rule = MD032BlanksAroundLists::default();
|
|
208
|
+
let content = "## Section\n\n* Level 1\n * Level 2\n * Level 3\n * Level 4\n * Back to Level 2\n* Back to Level 1\n\nText";
|
|
209
|
+
let ctx = LintContext::new(content);
|
|
210
|
+
let result = rule.check(&ctx).unwrap();
|
|
211
|
+
// Should not warn about nested list transitions
|
|
212
|
+
assert!(result.is_empty(), "Should not warn about deeply nested lists");
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
#[test]
|
|
216
|
+
fn test_nested_ordered_lists() {
|
|
217
|
+
// Test nested ordered lists
|
|
218
|
+
let rule = MD032BlanksAroundLists::default();
|
|
219
|
+
let content = "## Section\n\n1. First item\n 1. Sub item 1.1\n 2. Sub item 1.2\n2. Second item\n 1. Sub item 2.1\n\nText";
|
|
220
|
+
let ctx = LintContext::new(content);
|
|
221
|
+
let result = rule.check(&ctx).unwrap();
|
|
222
|
+
assert!(result.is_empty(), "Should not warn about nested ordered lists");
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
#[test]
|
|
226
|
+
fn test_mixed_nested_list_types() {
|
|
227
|
+
// Test mixing ordered and unordered lists in nesting
|
|
228
|
+
let rule = MD032BlanksAroundLists::default();
|
|
229
|
+
let content = "## Section\n\n1. Ordered item\n - Unordered sub-item\n - Another unordered sub-item\n2. Another ordered item\n * Different unordered marker\n\nText";
|
|
230
|
+
let ctx = LintContext::new(content);
|
|
231
|
+
let result = rule.check(&ctx).unwrap();
|
|
232
|
+
assert!(result.is_empty(), "Should not warn about mixed nested list types");
|
|
233
|
+
}
|
|
234
|
+
|
|
184
235
|
#[test]
|
|
185
236
|
fn test_mixed_list_types() {
|
|
186
237
|
let rule = MD032BlanksAroundLists::default();
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|