panache-cli 3.2.0__tar.gz → 3.3.0__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.
- {panache_cli-3.2.0 → panache_cli-3.3.0}/Cargo.lock +60 -38
- {panache_cli-3.2.0 → panache_cli-3.3.0}/Cargo.toml +5 -5
- {panache_cli-3.2.0 → panache_cli-3.3.0}/PKG-INFO +1 -1
- {panache_cli-3.2.0 → panache_cli-3.3.0}/build.rs +15 -17
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/CHANGELOG.md +13 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/Cargo.toml +3 -3
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/code_blocks.rs +73 -7
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/core.rs +69 -5
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/lists.rs +8 -8
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/CHANGELOG.md +36 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/Cargo.toml +2 -2
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/pandoc_ast.rs +826 -84
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/block_dispatcher.rs +158 -55
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/blockquotes.rs +14 -1
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/code_blocks.rs +55 -47
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/container_prefix.rs +286 -15
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/definition_lists.rs +17 -13
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/headings.rs +21 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/html_blocks.rs +9 -2
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/line_blocks.rs +114 -6
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/metadata.rs +1 -1
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/paragraphs.rs +29 -1
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tables.rs +7 -4
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +427 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +80 -0
- panache_cli-3.3.0/crates/panache-parser/src/parser/blocks/tests/content_containers.rs +109 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +78 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/headings.rs +441 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/lists.rs +18 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +331 -2
- panache_cli-3.3.0/crates/panache-parser/src/parser/blocks/tests/tables.rs +140 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks.rs +4 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/core.rs +921 -127
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/core.rs +2 -7
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/math.rs +49 -58
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/sink.rs +45 -18
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/attributes.rs +188 -3
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/container_stack.rs +53 -2
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +41 -33
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/text_buffer.rs +140 -143
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser.rs +3 -3
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/attributes.rs +88 -11
- panache_cli-3.3.0/crates/panache-parser/src/syntax/citations.rs +125 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/cli.rs +19 -14
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/jolars.rs +291 -22
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters.rs +26 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters_sync.rs +32 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/citation_keys.rs +52 -7
- panache_cli-3.3.0/src/linter/rules/reversed_footnote_marker.rs +284 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/swallowed_list_marker.rs +10 -17
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/undefined_references.rs +19 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules.rs +1 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter.rs +1 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/documents.rs +3 -4
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/main.rs +23 -2
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/salsa.rs +34 -2
- panache_cli-3.2.0/crates/panache-parser/src/syntax/citations.rs +0 -52
- {panache_cli-3.2.0 → panache_cli-3.3.0}/LICENSE +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/README.md +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/assets/quarto-schema/schema.json +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/README.md +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/config.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/directives.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/blockquotes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/headings.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/inline.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/inline_layout.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/math/STYLE.md +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/math/linebreak.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/math/operators.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/math/render.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/math.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/sentence_wrap.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/smart.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/tables.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/lib.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/parser.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/syntax.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/yaml_engine.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/README.md +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/build.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/grid_layout.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/lib.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/options.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/figures.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/citations.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/inline_html.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/inline_ir.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/inlines.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/math.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/continuation.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/model.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml/validator.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/parser/yaml.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/range_utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/alerts.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/ast.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/blocks.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/definitions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/fenced_divs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/headings.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/inlines.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/kind.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/links.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/lists.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/math.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/myst.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/references.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/tables.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/yaml.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-parser/src/syntax.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/pyproject.toml +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/bibtex.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/csl_json.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/csl_yaml.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/index.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/preview.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib/ris.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bib.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/bin/distill_quarto_schema.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/cache.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/config/formatter_presets.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/config/types/schema_helpers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/config/types.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/config.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/diagnostic_renderer.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/directives.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/external_formatters_common.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/external_formatters_sync.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/external_tools_common.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/formatter.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/includes.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lib.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/code_block_collector.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/diagnostics.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/clippy.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/eslint.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/jarl.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/ruff.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/shellcheck.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/external_linters/staticcheck.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/fuzzy.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/index.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/metadata_diagnostics.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/offsets.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/project_index.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema/distill.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema/interp.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema/model.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema/report.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema/value.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/quarto_schema.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/adjacent_footnote_refs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/chunk_label_spaces.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/citation_nonbreaking_space.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/consumer_divergence.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/crossref_as_link_target.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/duplicate_references.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/duplicate_yaml_anchor.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/emoji_aliases.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/empty_list_item.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/empty_values.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/figure_crossref_captions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/footnote_after_image.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/footnote_ref_in_footnote_def.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/footnote_swallowed_by_bracket.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/heading_eaten_attrs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/heading_hierarchy.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/heading_strip_comments_residue.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/html_entities.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/link_text_is_url.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/math_content.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/missing_chunk_labels.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/quarto_schema.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/stray_fenced_div_markers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/undefined_anchor.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/unspaced_citation.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/unsupported_metadata_key.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/unused_definitions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/rules/unused_yaml_anchor.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/runner.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/yaml_anchors.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/linter/yaml_resolve.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/config.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/context.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/conversions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/dispatch.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/global_state.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/code_actions.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/completion.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/configuration.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/diagnostics.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/document_highlight.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/document_links.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/document_symbols.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/file_operations.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/file_rename.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/file_watcher.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/folding_ranges.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/footnote_conversion.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/formatting.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/goto_definition.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/heading_link_conversion.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/hover.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/link_conversion.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/linked_editing_range.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/list_conversion.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/prepare_rename.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/references.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/rename.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/semantic_tokens.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/shortcode_args.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/workspace_folders.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers/workspace_symbols.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/handlers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/helpers.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/line_index.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/navigation.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/symbols.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/task_pool.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/testing.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp/uri_ext.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/lsp.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata/bibliography.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata/citations.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata/project.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata/references.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata/yaml.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/metadata.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/parser.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/range_utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/syntax.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/utils.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/vfs.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/yaml_engine.rs +0 -0
- {panache_cli-3.2.0 → panache_cli-3.3.0}/src/yaml_regions.rs +0 -0
|
@@ -189,28 +189,19 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
189
189
|
|
|
190
190
|
[[package]]
|
|
191
191
|
name = "clap"
|
|
192
|
-
version = "4.6.
|
|
192
|
+
version = "4.6.6"
|
|
193
193
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
194
|
-
checksum = "
|
|
194
|
+
checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
|
|
195
195
|
dependencies = [
|
|
196
196
|
"clap_builder",
|
|
197
197
|
"clap_derive",
|
|
198
198
|
]
|
|
199
199
|
|
|
200
|
-
[[package]]
|
|
201
|
-
name = "clap-markdown"
|
|
202
|
-
version = "0.1.5"
|
|
203
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
204
|
-
checksum = "d2a2617956a06d4885b490697b5307ebb09fec10b088afc18c81762d848c2339"
|
|
205
|
-
dependencies = [
|
|
206
|
-
"clap",
|
|
207
|
-
]
|
|
208
|
-
|
|
209
200
|
[[package]]
|
|
210
201
|
name = "clap_builder"
|
|
211
|
-
version = "4.6.
|
|
202
|
+
version = "4.6.6"
|
|
212
203
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
213
|
-
checksum = "
|
|
204
|
+
checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
|
|
214
205
|
dependencies = [
|
|
215
206
|
"anstream",
|
|
216
207
|
"anstyle",
|
|
@@ -220,9 +211,9 @@ dependencies = [
|
|
|
220
211
|
|
|
221
212
|
[[package]]
|
|
222
213
|
name = "clap_complete"
|
|
223
|
-
version = "4.6.
|
|
214
|
+
version = "4.6.9"
|
|
224
215
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
225
|
-
checksum = "
|
|
216
|
+
checksum = "3be2ad0423bdbbb0e25bc89add796f3559706d4a95e1bc98e4d9662a957b6a19"
|
|
226
217
|
dependencies = [
|
|
227
218
|
"clap",
|
|
228
219
|
]
|
|
@@ -247,14 +238,23 @@ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
|
|
247
238
|
|
|
248
239
|
[[package]]
|
|
249
240
|
name = "clap_mangen"
|
|
250
|
-
version = "0.3.
|
|
241
|
+
version = "0.3.2"
|
|
251
242
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
252
|
-
checksum = "
|
|
243
|
+
checksum = "c630ddc90572b3d9abd3f887f0007b4e048faf5c5a59ae607f8ac1c5e3790873"
|
|
253
244
|
dependencies = [
|
|
254
245
|
"clap",
|
|
255
246
|
"roff",
|
|
256
247
|
]
|
|
257
248
|
|
|
249
|
+
[[package]]
|
|
250
|
+
name = "clapdown"
|
|
251
|
+
version = "0.2.0"
|
|
252
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
253
|
+
checksum = "68bcefa13c36a119d957224c65214f792139033a34f8157297ac2a7fff5a343a"
|
|
254
|
+
dependencies = [
|
|
255
|
+
"clap",
|
|
256
|
+
]
|
|
257
|
+
|
|
258
258
|
[[package]]
|
|
259
259
|
name = "colorchoice"
|
|
260
260
|
version = "1.0.5"
|
|
@@ -927,9 +927,9 @@ dependencies = [
|
|
|
927
927
|
|
|
928
928
|
[[package]]
|
|
929
929
|
name = "jsonschema"
|
|
930
|
-
version = "0.49.
|
|
930
|
+
version = "0.49.6"
|
|
931
931
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
932
|
-
checksum = "
|
|
932
|
+
checksum = "7e17384278234b10419a63c93fc85695ac9fc2da0833e3c59167f9986499590c"
|
|
933
933
|
dependencies = [
|
|
934
934
|
"ahash",
|
|
935
935
|
"bytecount",
|
|
@@ -956,18 +956,18 @@ dependencies = [
|
|
|
956
956
|
|
|
957
957
|
[[package]]
|
|
958
958
|
name = "jsonschema-regex"
|
|
959
|
-
version = "0.49.
|
|
959
|
+
version = "0.49.6"
|
|
960
960
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
961
|
-
checksum = "
|
|
961
|
+
checksum = "ac634e339e73bf9629f6fb207f7b064d872253ae3b3f5c6e0ce8fd762b16e40f"
|
|
962
962
|
dependencies = [
|
|
963
963
|
"regex-syntax",
|
|
964
964
|
]
|
|
965
965
|
|
|
966
966
|
[[package]]
|
|
967
967
|
name = "jsonschema-value"
|
|
968
|
-
version = "0.49.
|
|
968
|
+
version = "0.49.6"
|
|
969
969
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
970
|
-
checksum = "
|
|
970
|
+
checksum = "92b8e258eb4515a3fc912a9c46e3987040dc07280592280097ea2085527870b8"
|
|
971
971
|
dependencies = [
|
|
972
972
|
"ahash",
|
|
973
973
|
"bytecount",
|
|
@@ -1057,6 +1057,15 @@ version = "2.8.3"
|
|
|
1057
1057
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1058
1058
|
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
1059
1059
|
|
|
1060
|
+
[[package]]
|
|
1061
|
+
name = "memoffset"
|
|
1062
|
+
version = "0.9.1"
|
|
1063
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1064
|
+
checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
|
|
1065
|
+
dependencies = [
|
|
1066
|
+
"autocfg",
|
|
1067
|
+
]
|
|
1068
|
+
|
|
1060
1069
|
[[package]]
|
|
1061
1070
|
name = "micromap"
|
|
1062
1071
|
version = "0.3.0"
|
|
@@ -1193,14 +1202,14 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
|
|
|
1193
1202
|
|
|
1194
1203
|
[[package]]
|
|
1195
1204
|
name = "panache"
|
|
1196
|
-
version = "3.
|
|
1205
|
+
version = "3.3.0"
|
|
1197
1206
|
dependencies = [
|
|
1198
1207
|
"annotate-snippets",
|
|
1199
1208
|
"assert_cmd",
|
|
1200
1209
|
"clap",
|
|
1201
|
-
"clap-markdown",
|
|
1202
1210
|
"clap_complete",
|
|
1203
1211
|
"clap_mangen",
|
|
1212
|
+
"clapdown",
|
|
1204
1213
|
"crossbeam-channel",
|
|
1205
1214
|
"dirs",
|
|
1206
1215
|
"emojis",
|
|
@@ -1220,7 +1229,7 @@ dependencies = [
|
|
|
1220
1229
|
"predicates",
|
|
1221
1230
|
"rayon",
|
|
1222
1231
|
"regex",
|
|
1223
|
-
"rowan",
|
|
1232
|
+
"rowan 0.17.0",
|
|
1224
1233
|
"salsa",
|
|
1225
1234
|
"schemars",
|
|
1226
1235
|
"serde",
|
|
@@ -1237,14 +1246,14 @@ dependencies = [
|
|
|
1237
1246
|
|
|
1238
1247
|
[[package]]
|
|
1239
1248
|
name = "panache-formatter"
|
|
1240
|
-
version = "0.20.
|
|
1249
|
+
version = "0.20.5"
|
|
1241
1250
|
dependencies = [
|
|
1242
1251
|
"insta",
|
|
1243
1252
|
"log",
|
|
1244
1253
|
"panache-parser",
|
|
1245
1254
|
"pretty_yaml",
|
|
1246
1255
|
"pulldown-latex",
|
|
1247
|
-
"rowan",
|
|
1256
|
+
"rowan 0.17.0",
|
|
1248
1257
|
"schemars",
|
|
1249
1258
|
"serde",
|
|
1250
1259
|
"serde_json",
|
|
@@ -1255,13 +1264,13 @@ dependencies = [
|
|
|
1255
1264
|
|
|
1256
1265
|
[[package]]
|
|
1257
1266
|
name = "panache-parser"
|
|
1258
|
-
version = "0.
|
|
1267
|
+
version = "0.25.0"
|
|
1259
1268
|
dependencies = [
|
|
1260
1269
|
"entities",
|
|
1261
1270
|
"insta",
|
|
1262
1271
|
"log",
|
|
1263
1272
|
"memchr",
|
|
1264
|
-
"rowan",
|
|
1273
|
+
"rowan 0.17.0",
|
|
1265
1274
|
"schemars",
|
|
1266
1275
|
"serde",
|
|
1267
1276
|
"serde_json",
|
|
@@ -1398,7 +1407,7 @@ version = "0.6.0"
|
|
|
1398
1407
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1399
1408
|
checksum = "6f5db2b0044c0dae209c173c6049f210c9449092b07304c9c8b8d555c606e93e"
|
|
1400
1409
|
dependencies = [
|
|
1401
|
-
"rowan",
|
|
1410
|
+
"rowan 0.16.1",
|
|
1402
1411
|
"tiny_pretty",
|
|
1403
1412
|
"yaml_parser",
|
|
1404
1413
|
]
|
|
@@ -1504,9 +1513,9 @@ dependencies = [
|
|
|
1504
1513
|
|
|
1505
1514
|
[[package]]
|
|
1506
1515
|
name = "referencing"
|
|
1507
|
-
version = "0.49.
|
|
1516
|
+
version = "0.49.6"
|
|
1508
1517
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1509
|
-
checksum = "
|
|
1518
|
+
checksum = "42902112f88a27e9afd5683e2ba31956fed2a5d43395f166dd26775ae9c0dedb"
|
|
1510
1519
|
dependencies = [
|
|
1511
1520
|
"ahash",
|
|
1512
1521
|
"fluent-uri 0.4.1",
|
|
@@ -1566,6 +1575,19 @@ dependencies = [
|
|
|
1566
1575
|
"text-size",
|
|
1567
1576
|
]
|
|
1568
1577
|
|
|
1578
|
+
[[package]]
|
|
1579
|
+
name = "rowan"
|
|
1580
|
+
version = "0.17.0"
|
|
1581
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1582
|
+
checksum = "14b574c58582fa59fa43a2feb6608b8744184659f08a2e0117e4b8224d95ed61"
|
|
1583
|
+
dependencies = [
|
|
1584
|
+
"countme",
|
|
1585
|
+
"hashbrown 0.14.5",
|
|
1586
|
+
"memoffset",
|
|
1587
|
+
"rustc-hash 1.1.0",
|
|
1588
|
+
"text-size",
|
|
1589
|
+
]
|
|
1590
|
+
|
|
1569
1591
|
[[package]]
|
|
1570
1592
|
name = "rustc-hash"
|
|
1571
1593
|
version = "1.1.0"
|
|
@@ -2240,7 +2262,7 @@ version = "0.3.0"
|
|
|
2240
2262
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2241
2263
|
checksum = "71ebb04c72edf699612d543f6c421142527b85ac180156017fa26be49dc0762f"
|
|
2242
2264
|
dependencies = [
|
|
2243
|
-
"rowan",
|
|
2265
|
+
"rowan 0.16.1",
|
|
2244
2266
|
"winnow 0.7.15",
|
|
2245
2267
|
]
|
|
2246
2268
|
|
|
@@ -2269,18 +2291,18 @@ dependencies = [
|
|
|
2269
2291
|
|
|
2270
2292
|
[[package]]
|
|
2271
2293
|
name = "zerocopy"
|
|
2272
|
-
version = "0.8.
|
|
2294
|
+
version = "0.8.56"
|
|
2273
2295
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2274
|
-
checksum = "
|
|
2296
|
+
checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
|
|
2275
2297
|
dependencies = [
|
|
2276
2298
|
"zerocopy-derive",
|
|
2277
2299
|
]
|
|
2278
2300
|
|
|
2279
2301
|
[[package]]
|
|
2280
2302
|
name = "zerocopy-derive"
|
|
2281
|
-
version = "0.8.
|
|
2303
|
+
version = "0.8.56"
|
|
2282
2304
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2283
|
-
checksum = "
|
|
2305
|
+
checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
|
|
2284
2306
|
dependencies = [
|
|
2285
2307
|
"proc-macro2",
|
|
2286
2308
|
"quote",
|
|
@@ -7,7 +7,7 @@ authors = ["Johan Larsson <johan@jolars.co>"]
|
|
|
7
7
|
|
|
8
8
|
[package]
|
|
9
9
|
name = "panache"
|
|
10
|
-
version = "3.
|
|
10
|
+
version = "3.3.0"
|
|
11
11
|
edition.workspace = true
|
|
12
12
|
# `distill_quarto_schema` is a dev-only vendoring bin (src/bin/); keep bare
|
|
13
13
|
# `cargo run` resolving to the CLI for tooling like the pre-commit format hook.
|
|
@@ -48,8 +48,8 @@ path = "src/main.rs"
|
|
|
48
48
|
required-features = ["cli"]
|
|
49
49
|
|
|
50
50
|
[dependencies]
|
|
51
|
-
panache-formatter = { path = "crates/panache-formatter", version = "0.20.
|
|
52
|
-
panache-parser = { path = "crates/panache-parser", version = "0.
|
|
51
|
+
panache-formatter = { path = "crates/panache-formatter", version = "0.20.5" }
|
|
52
|
+
panache-parser = { path = "crates/panache-parser", version = "0.25.0", features = [
|
|
53
53
|
"serde",
|
|
54
54
|
"schema",
|
|
55
55
|
] }
|
|
@@ -68,7 +68,7 @@ lsp-types = { version = "0.97.0", optional = true }
|
|
|
68
68
|
num_cpus = { version = "1.17.0", optional = true }
|
|
69
69
|
percent-encoding = { version = "2.3.2", optional = true }
|
|
70
70
|
regex = "1.12.2"
|
|
71
|
-
rowan = "0.
|
|
71
|
+
rowan = "0.17.0"
|
|
72
72
|
salsa = "0.28.0"
|
|
73
73
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
74
74
|
serde_json = "1.0.150"
|
|
@@ -106,7 +106,7 @@ lsp = [
|
|
|
106
106
|
clap = { version = "4.6.1", features = ["derive", "env"] }
|
|
107
107
|
clap_complete = "4.6.0"
|
|
108
108
|
clap_mangen = "0.3.0"
|
|
109
|
-
|
|
109
|
+
clapdown = "0.2.0"
|
|
110
110
|
flate2 = "1.1.9"
|
|
111
111
|
|
|
112
112
|
[package.metadata.deb]
|
|
@@ -69,24 +69,22 @@ fn generate_cli_markdown() -> Result<()> {
|
|
|
69
69
|
return Ok(());
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
// Write the document
|
|
72
|
+
// The Pandoc flavor emits the YAML metadata block itself (and drops the
|
|
73
|
+
// root command's duplicate `h1` in favor of the metadata title).
|
|
74
|
+
let options = clapdown::Options::new()
|
|
75
|
+
.flavor(clapdown::Flavor::Pandoc)
|
|
76
|
+
.title("CLI Reference")
|
|
77
|
+
.metadata_field(
|
|
78
|
+
"description",
|
|
79
|
+
"Comprehensive reference for the Panache CLI, including all commands, \
|
|
80
|
+
options, and usage examples.",
|
|
81
|
+
)
|
|
82
|
+
.footer(false)
|
|
83
|
+
.table_of_contents(false);
|
|
84
|
+
let markdown = clapdown::render(&cmd, &options);
|
|
85
|
+
|
|
88
86
|
let output_path = docs_dir.join("cli.qmd");
|
|
89
|
-
fs::write(&output_path, &
|
|
87
|
+
fs::write(&output_path, &markdown)?;
|
|
90
88
|
println!("Generated CLI markdown: {:?}", output_path);
|
|
91
89
|
|
|
92
90
|
Ok(())
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.20.5](https://github.com/jolars/panache/compare/panache-formatter-v0.20.4...panache-formatter-v0.20.5) (2026-08-07)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
- strip a fenced block's own indent from its payload ([`290e3ab`](https://github.com/jolars/panache/commit/290e3abb1f04dbad29451c3abe70aa6a6f8738e0))
|
|
7
|
+
- **formatter:** drop a quoted fence's container indent ([`a7d4d4c`](https://github.com/jolars/panache/commit/a7d4d4c490d1d79a7772134a0ea3273855daaef6))
|
|
8
|
+
- **parser:** open a line block on a list-marker line ([`5f55d89`](https://github.com/jolars/panache/commit/5f55d89ab91d29ebfa41a9facf6fb469ed05e1ed))
|
|
9
|
+
- **parser:** fold a lazy line into its line block ([`7d732b9`](https://github.com/jolars/panache/commit/7d732b91ab4cecb48d6868edb73d78c0b7b6bf5c))
|
|
10
|
+
- **formatter:** keep a line block inside its blockquote ([`8bdf53c`](https://github.com/jolars/panache/commit/8bdf53cbed1f296c3e978cbfeb87903facb5b560))
|
|
11
|
+
- **formatter:** indent a line block inside a list item ([`35db18a`](https://github.com/jolars/panache/commit/35db18a5e8e2d135355355524057b2cd0e2ed1cc))
|
|
12
|
+
|
|
13
|
+
### Dependencies
|
|
14
|
+
- updated crates/panache-parser to v0.25.0
|
|
15
|
+
|
|
3
16
|
## [0.20.4](https://github.com/jolars/panache/compare/panache-formatter-v0.20.3...panache-formatter-v0.20.4) (2026-08-05)
|
|
4
17
|
|
|
5
18
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "panache-formatter"
|
|
3
|
-
version = "0.20.
|
|
3
|
+
version = "0.20.5"
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
include = [
|
|
6
6
|
"/src/**/*",
|
|
@@ -18,9 +18,9 @@ keywords = ["quarto", "pandoc", "markdown", "formatter"]
|
|
|
18
18
|
categories = ["text-processing"]
|
|
19
19
|
|
|
20
20
|
[dependencies]
|
|
21
|
-
panache-parser = { path = "../panache-parser", version = "0.
|
|
21
|
+
panache-parser = { path = "../panache-parser", version = "0.25.0" }
|
|
22
22
|
log = { version = "0.4.31", features = ["release_max_level_debug"] }
|
|
23
|
-
rowan = "0.
|
|
23
|
+
rowan = "0.17.0"
|
|
24
24
|
serde = { version = "1.0.228", features = ["derive"], optional = true }
|
|
25
25
|
schemars = { version = "1.2.1", optional = true }
|
|
26
26
|
unicode-width = "0.2.2"
|
{panache_cli-3.2.0 → panache_cli-3.3.0}/crates/panache-formatter/src/formatter/code_blocks.rs
RENAMED
|
@@ -157,6 +157,17 @@ fn expand_tabs_with_width(text: &str, tab_width: usize) -> String {
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
fn strip_indent_columns(indent: &str, columns: usize) -> String {
|
|
160
|
+
strip_indent_columns_budget(indent, columns).0.to_string()
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/// Peel up to `columns` columns of leading indentation off `indent`, returning
|
|
164
|
+
/// the tail and the columns left unspent.
|
|
165
|
+
///
|
|
166
|
+
/// The leftover matters because a code line's strippable indent can be split
|
|
167
|
+
/// across two tokens: the emitter peels a container prefix into `WHITESPACE`
|
|
168
|
+
/// but leaves the opening fence's own indent inside the line's `TEXT`, so a
|
|
169
|
+
/// budget that outlives the `WHITESPACE` still has work to do.
|
|
170
|
+
fn strip_indent_columns_budget(indent: &str, columns: usize) -> (&str, usize) {
|
|
160
171
|
let mut remaining = columns;
|
|
161
172
|
let mut idx = 0;
|
|
162
173
|
for (i, ch) in indent.char_indices() {
|
|
@@ -165,7 +176,7 @@ fn strip_indent_columns(indent: &str, columns: usize) -> String {
|
|
|
165
176
|
}
|
|
166
177
|
match ch {
|
|
167
178
|
' ' => {
|
|
168
|
-
remaining
|
|
179
|
+
remaining -= 1;
|
|
169
180
|
idx = i + 1;
|
|
170
181
|
}
|
|
171
182
|
'\t' => {
|
|
@@ -175,7 +186,17 @@ fn strip_indent_columns(indent: &str, columns: usize) -> String {
|
|
|
175
186
|
_ => break,
|
|
176
187
|
}
|
|
177
188
|
}
|
|
178
|
-
indent[idx..]
|
|
189
|
+
(&indent[idx..], remaining)
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/// Spend a leftover indent budget against a code line's own leading spaces.
|
|
193
|
+
///
|
|
194
|
+
/// Spaces only: a tab is worth four columns at a four-column stop but fewer
|
|
195
|
+
/// mid-stop, and dropping one for a smaller budget would delete code bytes the
|
|
196
|
+
/// formatter has no way to put back. Leaving it is the lossless direction.
|
|
197
|
+
fn strip_leading_spaces_budget(text: &str, columns: usize) -> &str {
|
|
198
|
+
let n = text.chars().take(columns).take_while(|&c| c == ' ').count();
|
|
199
|
+
&text[n..]
|
|
179
200
|
}
|
|
180
201
|
|
|
181
202
|
fn indent_columns(indent: &str) -> usize {
|
|
@@ -190,6 +211,25 @@ fn indent_columns(indent: &str) -> usize {
|
|
|
190
211
|
cols
|
|
191
212
|
}
|
|
192
213
|
|
|
214
|
+
/// A fenced code block whose immediate container is a blockquote — the one
|
|
215
|
+
/// place a line-start `WHITESPACE` inside `CODE_CONTENT` can be dropped
|
|
216
|
+
/// token-wise rather than by column.
|
|
217
|
+
///
|
|
218
|
+
/// The parser re-emits each continuation line's container prefix inside
|
|
219
|
+
/// `CODE_CONTENT` for losslessness. Inside a blockquote that prefix is either a
|
|
220
|
+
/// marker's padding or pandoc's lazy-line gobble, both of which the emitter
|
|
221
|
+
/// reproduces exactly, so the whole token is container syntax. Everywhere else
|
|
222
|
+
/// the token boundary is not column-exact once tabs are involved (a `:\t`
|
|
223
|
+
/// definition marker at content column 4 peels `"\t\t"`, eight columns), so the
|
|
224
|
+
/// indent has to come off by column via [`strip_indent_columns`] instead.
|
|
225
|
+
///
|
|
226
|
+
/// Mirrors `fenced_in_blockquote` in the pandoc-native projector
|
|
227
|
+
/// (`panache_parser::to_pandoc_ast`); the two must agree on what a code block's
|
|
228
|
+
/// payload is.
|
|
229
|
+
fn fenced_in_blockquote(node: &SyntaxNode, has_fence: bool) -> bool {
|
|
230
|
+
has_fence && node.parent().map(|p| p.kind()) == Some(SyntaxKind::BLOCK_QUOTE)
|
|
231
|
+
}
|
|
232
|
+
|
|
193
233
|
fn extract_code_block_parts(node: &SyntaxNode) -> (Option<SyntaxNode>, Option<String>, String) {
|
|
194
234
|
let mut info_node: Option<SyntaxNode> = None;
|
|
195
235
|
let mut language: Option<String> = None;
|
|
@@ -197,12 +237,22 @@ fn extract_code_block_parts(node: &SyntaxNode) -> (Option<SyntaxNode>, Option<St
|
|
|
197
237
|
let mut has_fence = false;
|
|
198
238
|
let mut fence_indent = String::new();
|
|
199
239
|
let mut fence_indent_cols = 0usize;
|
|
240
|
+
let drop_container_indent = fenced_in_blockquote(
|
|
241
|
+
node,
|
|
242
|
+
node.children()
|
|
243
|
+
.any(|child| child.kind() == SyntaxKind::CODE_FENCE_OPEN),
|
|
244
|
+
);
|
|
200
245
|
|
|
201
246
|
for child in node.children_with_tokens() {
|
|
202
247
|
match child {
|
|
203
248
|
NodeOrToken::Token(t) => {
|
|
204
249
|
if t.kind() == SyntaxKind::WHITESPACE && !has_fence {
|
|
205
|
-
|
|
250
|
+
// The pre-fence run is whatever host indent the parser left
|
|
251
|
+
// in the block followed by the fence's own indent (a list
|
|
252
|
+
// item at content column 2 whose fence is indented one
|
|
253
|
+
// further emits `" "` then `" "`). Both come off the
|
|
254
|
+
// payload, so accumulate rather than overwrite.
|
|
255
|
+
fence_indent.push_str(t.text());
|
|
206
256
|
}
|
|
207
257
|
}
|
|
208
258
|
NodeOrToken::Node(n) => match n.kind() {
|
|
@@ -241,7 +291,14 @@ fn extract_code_block_parts(node: &SyntaxNode) -> (Option<SyntaxNode>, Option<St
|
|
|
241
291
|
saw_blockquote_marker = true;
|
|
242
292
|
}
|
|
243
293
|
SyntaxKind::WHITESPACE if at_line_start => {
|
|
244
|
-
if
|
|
294
|
+
if drop_container_indent {
|
|
295
|
+
// Whole token is container syntax — see
|
|
296
|
+
// `fenced_in_blockquote`. Covers a lazy
|
|
297
|
+
// line gobbled into the quote, whose
|
|
298
|
+
// indent arrives with no marker of its
|
|
299
|
+
// own to hang the strip off.
|
|
300
|
+
saw_blockquote_marker = false;
|
|
301
|
+
} else if saw_blockquote_marker {
|
|
245
302
|
let ws = t.text();
|
|
246
303
|
if let Some(stripped) = ws.strip_prefix(' ') {
|
|
247
304
|
line_indent.push_str(stripped);
|
|
@@ -258,15 +315,24 @@ fn extract_code_block_parts(node: &SyntaxNode) -> (Option<SyntaxNode>, Option<St
|
|
|
258
315
|
if at_line_start && t.text().is_empty() {
|
|
259
316
|
continue;
|
|
260
317
|
}
|
|
318
|
+
let mut text = t.text();
|
|
261
319
|
if at_line_start {
|
|
262
|
-
|
|
320
|
+
let (kept, budget) = strip_indent_columns_budget(
|
|
263
321
|
&line_indent,
|
|
264
322
|
base_indent_cols,
|
|
265
|
-
)
|
|
323
|
+
);
|
|
324
|
+
// Only once the prefix token is fully
|
|
325
|
+
// spent does the rest of the budget
|
|
326
|
+
// reach the fence indent still sitting
|
|
327
|
+
// in this line's own text.
|
|
328
|
+
if kept.is_empty() && budget > 0 {
|
|
329
|
+
text = strip_leading_spaces_budget(text, budget);
|
|
330
|
+
}
|
|
331
|
+
line_content.push_str(kept);
|
|
266
332
|
line_indent.clear();
|
|
267
333
|
at_line_start = false;
|
|
268
334
|
}
|
|
269
|
-
line_content.push_str(
|
|
335
|
+
line_content.push_str(text);
|
|
270
336
|
}
|
|
271
337
|
SyntaxKind::NEWLINE => {
|
|
272
338
|
saw_blockquote_marker = false;
|
|
@@ -458,8 +458,12 @@ impl Formatter {
|
|
|
458
458
|
self.output.push_str(content_prefix);
|
|
459
459
|
if let Some(indent) = leading_indent
|
|
460
460
|
&& !indent.is_empty()
|
|
461
|
-
&& !line.starts_with([' ', '\t'])
|
|
462
461
|
{
|
|
462
|
+
// Uniformly, including lines that already start indented.
|
|
463
|
+
// For a code block this indent is the opening fence's, and
|
|
464
|
+
// the payload is rendered relative to the fence — re-adding
|
|
465
|
+
// it to the fence lines alone would shift the payload two
|
|
466
|
+
// columns down the fence and lose them on the next parse.
|
|
463
467
|
self.output.push_str(indent);
|
|
464
468
|
}
|
|
465
469
|
self.output.push_str(line);
|
|
@@ -1567,6 +1571,31 @@ impl Formatter {
|
|
|
1567
1571
|
ctx.in_list_continuation = false;
|
|
1568
1572
|
}
|
|
1569
1573
|
}
|
|
1574
|
+
SyntaxKind::LINE_BLOCK => {
|
|
1575
|
+
// Format the line block to a temp buffer, then
|
|
1576
|
+
// re-emit each line behind the blockquote prefix.
|
|
1577
|
+
// Without this the lines escape the quote (dropping
|
|
1578
|
+
// the `>` prefix), which reparses as a top-level
|
|
1579
|
+
// line block -- a losslessness break, and inside a
|
|
1580
|
+
// list item an idempotency break as well.
|
|
1581
|
+
// `content_prefix` already carries `base_indent`,
|
|
1582
|
+
// so format at indent 0 to avoid double-indenting.
|
|
1583
|
+
let saved_output = self.output.clone();
|
|
1584
|
+
self.output.clear();
|
|
1585
|
+
self.format_node_sync(child, 0);
|
|
1586
|
+
let line_block_output = self.output.clone();
|
|
1587
|
+
self.output = saved_output;
|
|
1588
|
+
|
|
1589
|
+
self.append_blockquote_prefixed_block(
|
|
1590
|
+
&line_block_output,
|
|
1591
|
+
&content_prefix,
|
|
1592
|
+
&blank_prefix,
|
|
1593
|
+
None,
|
|
1594
|
+
);
|
|
1595
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
1596
|
+
ctx.in_list_continuation = false;
|
|
1597
|
+
}
|
|
1598
|
+
}
|
|
1570
1599
|
SyntaxKind::DEFINITION_LIST => {
|
|
1571
1600
|
// Format the definition list to a temp buffer, then
|
|
1572
1601
|
// re-emit each line behind the blockquote prefix so
|
|
@@ -1962,6 +1991,12 @@ impl Formatter {
|
|
|
1962
1991
|
self.output.push('\n');
|
|
1963
1992
|
}
|
|
1964
1993
|
|
|
1994
|
+
// Every emitted line needs the container indent. Dropping it
|
|
1995
|
+
// lets a line block nested in a list item escape to column 0,
|
|
1996
|
+
// where it reparses as a top-level line block that swallows
|
|
1997
|
+
// the following line -- an idempotency break.
|
|
1998
|
+
let line_indent = " ".repeat(indent);
|
|
1999
|
+
|
|
1965
2000
|
// Format each line preserving line breaks and leading spaces.
|
|
1966
2001
|
// Walk LINE_BLOCK_LINE children-with-tokens so we can skip
|
|
1967
2002
|
// leading container-prefix tokens (WHITESPACE,
|
|
@@ -1970,11 +2005,19 @@ impl Formatter {
|
|
|
1970
2005
|
// outer LIST_ITEM / BLOCK_QUOTE walkers re-emit those
|
|
1971
2006
|
// prefixes; if we left them in `content` they'd appear
|
|
1972
2007
|
// twice in the output.
|
|
2008
|
+
// A LINE_BLOCK_LINE without a LINE_BLOCK_MARKER is a
|
|
2009
|
+
// continuation of the line above (`| a` + ` b` is the single
|
|
2010
|
+
// line `a b`). Re-emitting it with its own `| ` would split
|
|
2011
|
+
// one line into two, so fold it in — as pandoc's own writer
|
|
2012
|
+
// does. Collect the rendered lines first so the fold is a
|
|
2013
|
+
// plain append instead of surgery on `self.output`.
|
|
2014
|
+
let mut rendered: Vec<String> = Vec::new();
|
|
1973
2015
|
for child in node.children() {
|
|
1974
2016
|
if child.kind() != SyntaxKind::LINE_BLOCK_LINE {
|
|
1975
2017
|
continue;
|
|
1976
2018
|
}
|
|
1977
2019
|
let mut content = String::new();
|
|
2020
|
+
let mut has_marker = false;
|
|
1978
2021
|
let mut past_prefix = false;
|
|
1979
2022
|
for elem in child.children_with_tokens() {
|
|
1980
2023
|
let kind = elem.kind();
|
|
@@ -1988,7 +2031,10 @@ impl Formatter {
|
|
|
1988
2031
|
}
|
|
1989
2032
|
past_prefix = true;
|
|
1990
2033
|
match kind {
|
|
1991
|
-
SyntaxKind::LINE_BLOCK_MARKER =>
|
|
2034
|
+
SyntaxKind::LINE_BLOCK_MARKER => {
|
|
2035
|
+
has_marker = true;
|
|
2036
|
+
continue;
|
|
2037
|
+
}
|
|
1992
2038
|
SyntaxKind::NEWLINE => break,
|
|
1993
2039
|
_ => match &elem {
|
|
1994
2040
|
NodeOrToken::Token(t) => content.push_str(t.text()),
|
|
@@ -1996,14 +2042,32 @@ impl Formatter {
|
|
|
1996
2042
|
},
|
|
1997
2043
|
}
|
|
1998
2044
|
}
|
|
1999
|
-
|
|
2000
|
-
|
|
2045
|
+
match rendered.last_mut() {
|
|
2046
|
+
Some(previous) if !has_marker => {
|
|
2047
|
+
let continuation = content.trim();
|
|
2048
|
+
if !continuation.is_empty() {
|
|
2049
|
+
if !previous.is_empty() {
|
|
2050
|
+
previous.push(' ');
|
|
2051
|
+
}
|
|
2052
|
+
previous.push_str(continuation);
|
|
2053
|
+
}
|
|
2054
|
+
}
|
|
2055
|
+
// Leading spaces after the marker are significant
|
|
2056
|
+
// (pandoc renders them as non-breaking spaces), so
|
|
2057
|
+
// only the trailing side is trimmed.
|
|
2058
|
+
_ => rendered.push(content.trim_end().to_string()),
|
|
2059
|
+
}
|
|
2060
|
+
}
|
|
2061
|
+
|
|
2062
|
+
for line in &rendered {
|
|
2063
|
+
self.output.push_str(&line_indent);
|
|
2064
|
+
if line.trim().is_empty() {
|
|
2001
2065
|
// Empty line block line - just output "|"
|
|
2002
2066
|
self.output.push('|');
|
|
2003
2067
|
} else {
|
|
2004
2068
|
// Normal line - output "| " followed by content
|
|
2005
2069
|
self.output.push_str("| ");
|
|
2006
|
-
self.output.push_str(
|
|
2070
|
+
self.output.push_str(line);
|
|
2007
2071
|
}
|
|
2008
2072
|
self.output.push('\n');
|
|
2009
2073
|
}
|