rumdl 0.0.77__tar.gz → 0.0.79__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.77 → rumdl-0.0.79}/Cargo.lock +1 -1
- {rumdl-0.0.77 → rumdl-0.0.79}/Cargo.toml +1 -1
- {rumdl-0.0.77 → rumdl-0.0.79}/PKG-INFO +1 -1
- {rumdl-0.0.77 → rumdl-0.0.79}/src/config.rs +1 -1
- {rumdl-0.0.77 → rumdl-0.0.79}/src/lsp/server.rs +60 -14
- {rumdl-0.0.77 → rumdl-0.0.79}/src/main.rs +47 -33
- {rumdl-0.0.77 → rumdl-0.0.79}/.rumdl.toml +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/MANIFEST.in +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/Makefile +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/README.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/assets/logo.png +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/benches/range_performance.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/RULES.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md001.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md002.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md003.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md004.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md005.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md006.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md007.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md009.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md010.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md011.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md012.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md013.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md014.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md018.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md019.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md020.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md021.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md022.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md023.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md024.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md025.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md026.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md027.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md028.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md029.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md030.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md031.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md032.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md033.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md034.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md035.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md036.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md037.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md038.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md039.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md040.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md041.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md042.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md043.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md044.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md045.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md046.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md047.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md048.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md049.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md050.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md051.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md052.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md053.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md054.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md055.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md056.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md057.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/docs/md058.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/issues/plan-rule-parity-with-markdownlint.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/parity_check.py +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/pyproject.toml +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/python/MANIFEST.in +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/rumdl.toml.example +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/init.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/lib.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/lint_context.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/lsp/types.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/parallel.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/performance.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/profiling.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/python.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rule.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/config_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/init_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/lib.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/md030_edge_cases.md +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/perf_check.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.77 → rumdl-0.0.79}/tests/vscode_extension_fixes.rs +0 -0
|
@@ -697,7 +697,7 @@ impl SourcedConfig {
|
|
|
697
697
|
}
|
|
698
698
|
}
|
|
699
699
|
|
|
700
|
-
|
|
700
|
+
/// Load and merge configurations from files and CLI overrides.
|
|
701
701
|
pub fn load(
|
|
702
702
|
config_path: Option<&str>,
|
|
703
703
|
cli_overrides: Option<&SourcedGlobalConfig>,
|
|
@@ -119,6 +119,57 @@ impl RumdlLanguageServer {
|
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
+
|
|
123
|
+
/// Load or reload rumdl configuration from files
|
|
124
|
+
async fn load_configuration(&self, notify_client: bool) {
|
|
125
|
+
let config_guard = self.config.read().await;
|
|
126
|
+
let explicit_config_path = config_guard.config_path.clone();
|
|
127
|
+
drop(config_guard);
|
|
128
|
+
|
|
129
|
+
// Use the same discovery logic as CLI but with LSP-specific error handling
|
|
130
|
+
match Self::load_config_for_lsp(explicit_config_path.as_deref()) {
|
|
131
|
+
Ok(sourced_config) => {
|
|
132
|
+
let loaded_files = sourced_config.loaded_files.clone();
|
|
133
|
+
*self.rumdl_config.write().await = sourced_config.into();
|
|
134
|
+
|
|
135
|
+
if !loaded_files.is_empty() {
|
|
136
|
+
let message = format!("Loaded rumdl config from: {}", loaded_files.join(", "));
|
|
137
|
+
log::info!("{}", message);
|
|
138
|
+
if notify_client {
|
|
139
|
+
self.client
|
|
140
|
+
.log_message(MessageType::INFO, &message)
|
|
141
|
+
.await;
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
log::info!("Using default rumdl configuration (no config files found)");
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
Err(e) => {
|
|
148
|
+
let message = format!("Failed to load rumdl config: {}", e);
|
|
149
|
+
log::warn!("{}", message);
|
|
150
|
+
if notify_client {
|
|
151
|
+
self.client
|
|
152
|
+
.log_message(MessageType::WARNING, &message)
|
|
153
|
+
.await;
|
|
154
|
+
}
|
|
155
|
+
// Use default configuration
|
|
156
|
+
*self.rumdl_config.write().await = crate::config::Config::default();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/// Reload rumdl configuration from files (with client notification)
|
|
162
|
+
async fn reload_configuration(&self) {
|
|
163
|
+
self.load_configuration(true).await;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/// Load configuration for LSP - similar to CLI loading but returns Result
|
|
167
|
+
fn load_config_for_lsp(
|
|
168
|
+
config_path: Option<&str>,
|
|
169
|
+
) -> Result<crate::config::SourcedConfig, crate::config::ConfigError> {
|
|
170
|
+
// Use the same configuration loading as the CLI
|
|
171
|
+
crate::config::SourcedConfig::load_with_discovery(config_path, None, false)
|
|
172
|
+
}
|
|
122
173
|
}
|
|
123
174
|
|
|
124
175
|
#[tower_lsp::async_trait]
|
|
@@ -133,20 +184,8 @@ impl LanguageServer for RumdlLanguageServer {
|
|
|
133
184
|
}
|
|
134
185
|
}
|
|
135
186
|
|
|
136
|
-
// Load rumdl configuration
|
|
137
|
-
|
|
138
|
-
if let Some(config_path) = &config_guard.config_path {
|
|
139
|
-
match crate::config::SourcedConfig::load(Some(config_path), None) {
|
|
140
|
-
Ok(sourced_config) => {
|
|
141
|
-
*self.rumdl_config.write().await = sourced_config.into();
|
|
142
|
-
log::info!("Loaded rumdl config from: {}", config_path);
|
|
143
|
-
}
|
|
144
|
-
Err(e) => {
|
|
145
|
-
log::warn!("Failed to load config from {}: {}", config_path, e);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
drop(config_guard);
|
|
187
|
+
// Load rumdl configuration with auto-discovery
|
|
188
|
+
self.load_configuration(false).await;
|
|
150
189
|
|
|
151
190
|
Ok(InitializeResult {
|
|
152
191
|
capabilities: ServerCapabilities {
|
|
@@ -186,6 +225,13 @@ impl LanguageServer for RumdlLanguageServer {
|
|
|
186
225
|
.await;
|
|
187
226
|
}
|
|
188
227
|
|
|
228
|
+
async fn did_change_workspace_folders(&self, _params: DidChangeWorkspaceFoldersParams) {
|
|
229
|
+
// Reload configuration when workspace folders change
|
|
230
|
+
self.reload_configuration().await;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
|
|
189
235
|
async fn shutdown(&self) -> JsonRpcResult<()> {
|
|
190
236
|
log::info!("Shutting down rumdl Language Server");
|
|
191
237
|
Ok(())
|
|
@@ -47,6 +47,21 @@ fn read_file_efficiently(path: &Path) -> Result<String, Box<dyn Error>> {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/// Utility function to load configuration with standard CLI error handling.
|
|
51
|
+
/// This eliminates duplication between different CLI commands that load configuration.
|
|
52
|
+
fn load_config_with_cli_error_handling(
|
|
53
|
+
config_path: Option<&str>,
|
|
54
|
+
no_config: bool,
|
|
55
|
+
) -> rumdl_config::SourcedConfig {
|
|
56
|
+
match rumdl_config::SourcedConfig::load_with_discovery(config_path, None, no_config) {
|
|
57
|
+
Ok(config) => config,
|
|
58
|
+
Err(e) => {
|
|
59
|
+
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
60
|
+
std::process::exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
50
65
|
#[derive(Parser)]
|
|
51
66
|
#[command(author, version, about, long_about = None)]
|
|
52
67
|
struct Cli {
|
|
@@ -164,6 +179,8 @@ enum Commands {
|
|
|
164
179
|
enum ConfigSubcommand {
|
|
165
180
|
/// Query a specific config key (e.g. global.exclude or MD013.line_length)
|
|
166
181
|
Get { key: String },
|
|
182
|
+
/// Show the absolute path of the configuration file that was loaded
|
|
183
|
+
File,
|
|
167
184
|
}
|
|
168
185
|
|
|
169
186
|
#[derive(Args, Debug)]
|
|
@@ -951,7 +968,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
951
968
|
defaults,
|
|
952
969
|
output,
|
|
953
970
|
}) => {
|
|
954
|
-
// Handle
|
|
971
|
+
// Handle config subcommands
|
|
955
972
|
if let Some(ConfigSubcommand::Get { key }) = subcmd {
|
|
956
973
|
if let Some((section_part, field_part)) = key.split_once('.') {
|
|
957
974
|
// 1. Load the full SourcedConfig once
|
|
@@ -1096,6 +1113,32 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1096
1113
|
std::process::exit(1);
|
|
1097
1114
|
}
|
|
1098
1115
|
}
|
|
1116
|
+
// Handle 'config file' subcommand for showing config file path
|
|
1117
|
+
else if let Some(ConfigSubcommand::File) = subcmd {
|
|
1118
|
+
let sourced = load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config);
|
|
1119
|
+
|
|
1120
|
+
if sourced.loaded_files.is_empty() {
|
|
1121
|
+
if cli.no_config {
|
|
1122
|
+
println!("No configuration file loaded (--no-config specified)");
|
|
1123
|
+
} else {
|
|
1124
|
+
println!("No configuration file found (using defaults)");
|
|
1125
|
+
}
|
|
1126
|
+
} else {
|
|
1127
|
+
// Convert relative paths to absolute paths
|
|
1128
|
+
for file_path in &sourced.loaded_files {
|
|
1129
|
+
match std::fs::canonicalize(file_path) {
|
|
1130
|
+
Ok(absolute_path) => {
|
|
1131
|
+
println!("{}", absolute_path.display());
|
|
1132
|
+
}
|
|
1133
|
+
Err(_) => {
|
|
1134
|
+
// If canonicalize fails, it might be a file that doesn't exist anymore
|
|
1135
|
+
// or a relative path that can't be resolved. Just print as-is.
|
|
1136
|
+
println!("{}", file_path);
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
}
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1099
1142
|
// --- Fallthrough logic for `rumdl config` (no subcommand) ---
|
|
1100
1143
|
// This code now runs ONLY if `subcmd` is None
|
|
1101
1144
|
else {
|
|
@@ -1105,17 +1148,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1105
1148
|
let sourced_reg = if *defaults {
|
|
1106
1149
|
rumdl_config::SourcedConfig::default()
|
|
1107
1150
|
} else {
|
|
1108
|
-
|
|
1109
|
-
cli.config.as_deref(),
|
|
1110
|
-
None,
|
|
1111
|
-
cli.no_config,
|
|
1112
|
-
) {
|
|
1113
|
-
Ok(s) => s,
|
|
1114
|
-
Err(e) => {
|
|
1115
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1116
|
-
std::process::exit(1);
|
|
1117
|
-
}
|
|
1118
|
-
}
|
|
1151
|
+
load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
|
|
1119
1152
|
};
|
|
1120
1153
|
let validation_warnings =
|
|
1121
1154
|
rumdl_config::validate_config_sourced(&sourced_reg, ®istry_reg);
|
|
@@ -1133,17 +1166,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1133
1166
|
rumdl_config::SourcedConfig::default()
|
|
1134
1167
|
} else {
|
|
1135
1168
|
// Reload config if not defaults (necessary because we exited early in 'get' case)
|
|
1136
|
-
|
|
1137
|
-
cli.config.as_deref(),
|
|
1138
|
-
None,
|
|
1139
|
-
cli.no_config,
|
|
1140
|
-
) {
|
|
1141
|
-
Ok(s) => s,
|
|
1142
|
-
Err(e) => {
|
|
1143
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1144
|
-
std::process::exit(1);
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1169
|
+
load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
|
|
1147
1170
|
};
|
|
1148
1171
|
|
|
1149
1172
|
// If --output toml is set, print as valid TOML
|
|
@@ -1325,16 +1348,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs) {
|
|
|
1325
1348
|
|
|
1326
1349
|
fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool) {
|
|
1327
1350
|
// 1. Load sourced config (for provenance and validation)
|
|
1328
|
-
let sourced =
|
|
1329
|
-
match rumdl_config::SourcedConfig::load_with_discovery(global_config_path, None, no_config)
|
|
1330
|
-
{
|
|
1331
|
-
Ok(sourced) => sourced,
|
|
1332
|
-
Err(e) => {
|
|
1333
|
-
// Syntax error or type mismatch: fail and exit
|
|
1334
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1335
|
-
std::process::exit(1);
|
|
1336
|
-
}
|
|
1337
|
-
};
|
|
1351
|
+
let sourced = load_config_with_cli_error_handling(global_config_path, no_config);
|
|
1338
1352
|
|
|
1339
1353
|
// 2. Validate config (unknown keys/rules/options)
|
|
1340
1354
|
let all_rules = rumdl::rules::all_rules(&rumdl_config::Config::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
|