rumdl 0.0.78__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.78 → rumdl-0.0.79}/Cargo.lock +1 -1
- {rumdl-0.0.78 → rumdl-0.0.79}/Cargo.toml +1 -1
- {rumdl-0.0.78 → rumdl-0.0.79}/PKG-INFO +1 -1
- {rumdl-0.0.78 → rumdl-0.0.79}/src/config.rs +1 -1
- {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/server.rs +60 -14
- {rumdl-0.0.78 → rumdl-0.0.79}/src/main.rs +19 -43
- {rumdl-0.0.78 → rumdl-0.0.79}/.rumdl.toml +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/MANIFEST.in +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/Makefile +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/README.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/assets/logo.png +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/benches/fix_performance.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/benches/range_performance.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/benches/range_utils_benchmark.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/benches/rule_performance.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/benches/simple_fix_bench.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/RULES.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md001.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md002.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md003.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md004.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md005.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md006.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md007.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md009.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md010.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md011.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md012.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md013.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md014.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md018.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md019.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md020.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md021.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md022.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md023.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md024.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md025.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md026.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md027.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md028.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md029.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md030.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md031.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md032.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md033.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md034.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md035.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md036.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md037.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md038.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md039.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md040.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md041.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md042.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md043.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md044.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md045.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md046.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md047.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md048.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md049.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md050.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md051.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md052.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md053.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md054.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md055.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md056.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md057.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/docs/md058.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/issues/plan-rule-parity-with-markdownlint.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/parity_check.py +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/pyproject.toml +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/python/MANIFEST.in +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/python/PYTHON-README.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/__init__.py +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/__main__.py +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/python/rumdl/py.typed +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/rumdl.toml.example +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/init.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/lib.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/lint_context.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/lsp/types.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/markdownlint_config.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/parallel.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/performance.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/profiling.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/python.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rule.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/blockquote_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/code_block_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/code_fence_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/emphasis_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/front_matter_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/heading_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/list_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md001_heading_increment.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md002_first_heading_h1.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md003_heading_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md004_unordered_list_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md005_list_indent.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md006_start_bullets.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md007_ul_indent.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md009_trailing_spaces.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md010_no_hard_tabs.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md011_no_reversed_links.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md012_no_multiple_blanks.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md013_line_length.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md014_commands_show_output.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md018_no_missing_space_atx.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md019_no_multiple_space_atx.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md020_no_missing_space_closed_atx.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md021_no_multiple_space_closed_atx.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md022_blanks_around_headings.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md023_heading_start_left.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md024_no_duplicate_heading.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md025_single_title.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md026_no_trailing_punctuation.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md027_multiple_spaces_blockquote.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md028_no_blanks_blockquote.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md029_ordered_list_prefix.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md030_list_marker_space.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md031_blanks_around_fences.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md032_blanks_around_lists.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md033_no_inline_html.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md034_no_bare_urls.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md035_hr_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md036_no_emphasis_only_first.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md037_spaces_around_emphasis.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md038_no_space_in_code.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md039_no_space_in_links.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md040_fenced_code_language.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md041_first_line_heading.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md042_no_empty_links.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md043_required_headings.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md044_proper_names.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md045_no_alt_text.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md046_code_block_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md047_single_trailing_newline.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md048_code_fence_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md049_emphasis_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md050_strong_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md051_link_fragments.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md052_reference_links_images.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md053_link_image_reference_definitions.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md054_link_image_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md055_table_pipe_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md056_table_column_count.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md057_existing_relative_links.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/md058_blanks_around_tables.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/rules/strong_style.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/ast_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/code_block_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/document_structure.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/early_returns.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/element_cache.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/markdown_elements.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/range_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/regex_cache.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/string_interner.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/src/utils/table_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/advanced_integration_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/additional_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/basic_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/comprehensive_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/extended_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/character_ranges/unicode_utils.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/cli_duplication_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/cli_integration_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/commonmark_compliance_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/comprehensive_integration_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/config_application_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/config_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/init_command_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/init_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/integration_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/json_output_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/lib.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/lsp_integration_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/lsp_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/markdownlint_cli_integration.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/markdownlint_config_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/md030_edge_cases.md +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/output_format_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/perf_check.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/pyproject_config_tests.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md001_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md001_unicode_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md002_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md003_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md004_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md005_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md006_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md006_unicode_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md007_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md009_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md010_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md011_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md012_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md013_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md014_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md018_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md019_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md020_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md021_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md022_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md023_extended_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md023_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md024_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md025_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md026_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md027_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md028_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md029_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md030_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md031_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md032_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md033_extended_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md033_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md034_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md035_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md036_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md037_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md038_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md039_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md040_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md041_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md042_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md043_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md044_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md045_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md046_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md047_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md048_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md049_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md050_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md051_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md052_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_additional_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_proptest.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md053_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md054_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md054_unicode_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md055_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md056_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md057_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/md058_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/rules/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/blockquote_utils_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/code_block_utils_extended_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/code_block_utils_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/core_utils_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/front_matter_utils_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/line_index_test.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils/mod.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils_markdown_edge_cases.rs +0 -0
- {rumdl-0.0.78 → rumdl-0.0.79}/tests/utils_tests.rs +0 -0
- {rumdl-0.0.78 → 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 {
|
|
@@ -1100,17 +1115,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1100
1115
|
}
|
|
1101
1116
|
// Handle 'config file' subcommand for showing config file path
|
|
1102
1117
|
else if let Some(ConfigSubcommand::File) = subcmd {
|
|
1103
|
-
let sourced =
|
|
1104
|
-
cli.config.as_deref(),
|
|
1105
|
-
None,
|
|
1106
|
-
cli.no_config,
|
|
1107
|
-
) {
|
|
1108
|
-
Ok(s) => s,
|
|
1109
|
-
Err(e) => {
|
|
1110
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1111
|
-
std::process::exit(1);
|
|
1112
|
-
}
|
|
1113
|
-
};
|
|
1118
|
+
let sourced = load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config);
|
|
1114
1119
|
|
|
1115
1120
|
if sourced.loaded_files.is_empty() {
|
|
1116
1121
|
if cli.no_config {
|
|
@@ -1143,17 +1148,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1143
1148
|
let sourced_reg = if *defaults {
|
|
1144
1149
|
rumdl_config::SourcedConfig::default()
|
|
1145
1150
|
} else {
|
|
1146
|
-
|
|
1147
|
-
cli.config.as_deref(),
|
|
1148
|
-
None,
|
|
1149
|
-
cli.no_config,
|
|
1150
|
-
) {
|
|
1151
|
-
Ok(s) => s,
|
|
1152
|
-
Err(e) => {
|
|
1153
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1154
|
-
std::process::exit(1);
|
|
1155
|
-
}
|
|
1156
|
-
}
|
|
1151
|
+
load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
|
|
1157
1152
|
};
|
|
1158
1153
|
let validation_warnings =
|
|
1159
1154
|
rumdl_config::validate_config_sourced(&sourced_reg, ®istry_reg);
|
|
@@ -1171,17 +1166,7 @@ build-backend = \"setuptools.build_meta\"
|
|
|
1171
1166
|
rumdl_config::SourcedConfig::default()
|
|
1172
1167
|
} else {
|
|
1173
1168
|
// Reload config if not defaults (necessary because we exited early in 'get' case)
|
|
1174
|
-
|
|
1175
|
-
cli.config.as_deref(),
|
|
1176
|
-
None,
|
|
1177
|
-
cli.no_config,
|
|
1178
|
-
) {
|
|
1179
|
-
Ok(s) => s,
|
|
1180
|
-
Err(e) => {
|
|
1181
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1182
|
-
std::process::exit(1);
|
|
1183
|
-
}
|
|
1184
|
-
}
|
|
1169
|
+
load_config_with_cli_error_handling(cli.config.as_deref(), cli.no_config)
|
|
1185
1170
|
};
|
|
1186
1171
|
|
|
1187
1172
|
// If --output toml is set, print as valid TOML
|
|
@@ -1363,16 +1348,7 @@ fn process_stdin(rules: &[Box<dyn Rule>], args: &CheckArgs) {
|
|
|
1363
1348
|
|
|
1364
1349
|
fn run_check(args: &CheckArgs, global_config_path: Option<&str>, no_config: bool) {
|
|
1365
1350
|
// 1. Load sourced config (for provenance and validation)
|
|
1366
|
-
let sourced =
|
|
1367
|
-
match rumdl_config::SourcedConfig::load_with_discovery(global_config_path, None, no_config)
|
|
1368
|
-
{
|
|
1369
|
-
Ok(sourced) => sourced,
|
|
1370
|
-
Err(e) => {
|
|
1371
|
-
// Syntax error or type mismatch: fail and exit
|
|
1372
|
-
eprintln!("{}: {}", "Config error".red().bold(), e);
|
|
1373
|
-
std::process::exit(1);
|
|
1374
|
-
}
|
|
1375
|
-
};
|
|
1351
|
+
let sourced = load_config_with_cli_error_handling(global_config_path, no_config);
|
|
1376
1352
|
|
|
1377
1353
|
// 2. Validate config (unknown keys/rules/options)
|
|
1378
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|