panache-cli 3.17.2__tar.gz → 3.18.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.
Files changed (396) hide show
  1. {panache_cli-3.17.2 → panache_cli-3.18.0}/Cargo.lock +41 -41
  2. {panache_cli-3.17.2 → panache_cli-3.18.0}/Cargo.toml +5 -5
  3. {panache_cli-3.17.2 → panache_cli-3.18.0}/PKG-INFO +4 -7
  4. {panache_cli-3.17.2 → panache_cli-3.18.0}/README.md +3 -6
  5. {panache_cli-3.17.2 → panache_cli-3.18.0}/build.rs +50 -3
  6. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/CHANGELOG.md +19 -0
  7. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/Cargo.toml +3 -3
  8. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/config.rs +44 -2
  9. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/blocks.rs +95 -134
  10. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/core.rs +22 -11
  11. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/headings.rs +8 -13
  12. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/inline.rs +43 -69
  13. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/inline_layout.rs +40 -36
  14. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/lists.rs +13 -3
  15. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/preserve.rs +15 -29
  16. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/sentence_wrap.rs +1 -1
  17. panache_cli-3.18.0/crates/panache-formatter/src/formatter/smart.rs +597 -0
  18. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/tables.rs +195 -86
  19. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter.rs +49 -0
  20. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/lib.rs +1 -0
  21. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/CHANGELOG.md +14 -0
  22. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/Cargo.toml +2 -2
  23. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/options.rs +6 -1
  24. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/code_blocks.rs +91 -22
  25. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tables.rs +1 -1
  26. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/lists.rs +101 -0
  27. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/blockquotes.rs +9 -0
  28. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/list_items.rs +10 -0
  29. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core.rs +9 -5
  30. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/cli.rs +74 -2
  31. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/config/types.rs +21 -0
  32. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/config.rs +98 -15
  33. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/formatter.rs +3 -0
  34. panache_cli-3.18.0/src/inspect.rs +116 -0
  35. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/undefined_references.rs +77 -1
  36. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/main.rs +99 -23
  37. panache_cli-3.17.2/crates/panache-formatter/src/formatter/smart.rs +0 -30
  38. {panache_cli-3.17.2 → panache_cli-3.18.0}/LICENSE +0 -0
  39. {panache_cli-3.17.2 → panache_cli-3.18.0}/assets/quarto-schema/schema.json +0 -0
  40. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/README.md +0 -0
  41. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/directives.rs +0 -0
  42. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/blockquotes.rs +0 -0
  43. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/code_blocks.rs +0 -0
  44. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/containers.rs +0 -0
  45. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/document.rs +0 -0
  46. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -0
  47. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
  48. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
  49. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/STYLE.md +0 -0
  50. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/ir.rs +0 -0
  51. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/lower.rs +0 -0
  52. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/printer.rs +0 -0
  53. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/render.rs +0 -0
  54. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math.rs +0 -0
  55. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
  56. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
  57. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/raw.rs +0 -0
  58. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
  59. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/table_conversion.rs +0 -0
  60. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/utils.rs +0 -0
  61. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
  62. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
  63. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
  64. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
  65. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
  66. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
  67. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
  68. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
  69. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/parser.rs +0 -0
  70. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/syntax.rs +0 -0
  71. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/utils.rs +0 -0
  72. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-formatter/src/yaml_engine.rs +0 -0
  73. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/README.md +0 -0
  74. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/build.rs +0 -0
  75. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/data/math_symbols.json +0 -0
  76. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/data/unicode-math.LICENSE +0 -0
  77. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/data/unicode-math.NOTICE +0 -0
  78. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/grid_layout.rs +0 -0
  79. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/lib.rs +0 -0
  80. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/pandoc_ast.rs +0 -0
  81. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/block_dispatcher.rs +0 -0
  82. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
  83. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/blockquotes.rs +0 -0
  84. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/container_prefix.rs +0 -0
  85. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/definition_lists.rs +0 -0
  86. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +0 -0
  87. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
  88. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/headings.rs +0 -0
  89. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
  90. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/html_blocks.rs +0 -0
  91. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/hugo.rs +0 -0
  92. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
  93. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
  94. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/line_blocks.rs +0 -0
  95. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
  96. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/metadata.rs +0 -0
  97. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
  98. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
  99. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/paragraphs.rs +0 -0
  100. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
  101. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
  102. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
  103. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +0 -0
  104. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +0 -0
  105. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/content_containers.rs +0 -0
  106. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +0 -0
  107. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/figures.rs +0 -0
  108. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/footnote_marker_line.rs +0 -0
  109. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/fragment_context.rs +0 -0
  110. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/frame_pinning.rs +0 -0
  111. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/headings.rs +0 -0
  112. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
  113. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +0 -0
  114. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
  115. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/tables.rs +0 -0
  116. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks.rs +0 -0
  117. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/definition_lists.rs +0 -0
  118. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/html_interruptions.rs +0 -0
  119. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
  120. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
  121. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
  122. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/citations.rs +0 -0
  123. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
  124. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/core.rs +0 -0
  125. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
  126. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
  127. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/hard_breaks.rs +0 -0
  128. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/hugo.rs +0 -0
  129. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
  130. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
  131. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_html.rs +0 -0
  132. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_ir.rs +0 -0
  133. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
  134. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
  135. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
  136. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/math.rs +0 -0
  137. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
  138. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
  139. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
  140. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
  141. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
  142. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
  143. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/sink.rs +0 -0
  144. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
  145. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
  146. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
  147. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
  148. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
  149. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
  150. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
  151. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines.rs +0 -0
  152. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/math.rs +0 -0
  153. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/reparse.rs +0 -0
  154. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/attributes.rs +0 -0
  155. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
  156. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/container_stack.rs +0 -0
  157. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/continuation.rs +0 -0
  158. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
  159. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
  160. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +0 -0
  161. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
  162. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/raw_html.rs +0 -0
  163. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/text_buffer.rs +0 -0
  164. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
  165. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
  166. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils.rs +0 -0
  167. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/verify.rs +0 -0
  168. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
  169. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
  170. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/model.rs +0 -0
  171. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
  172. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
  173. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
  174. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/validator.rs +0 -0
  175. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml.rs +0 -0
  176. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/parser.rs +0 -0
  177. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/range_utils.rs +0 -0
  178. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/semantic/math.rs +0 -0
  179. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/semantic.rs +0 -0
  180. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/alerts.rs +0 -0
  181. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/ast.rs +0 -0
  182. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/attributes.rs +0 -0
  183. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
  184. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/blocks.rs +0 -0
  185. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
  186. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/citations.rs +0 -0
  187. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
  188. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/code_span.rs +0 -0
  189. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/consumer.rs +0 -0
  190. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
  191. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/definitions.rs +0 -0
  192. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/fenced_divs.rs +0 -0
  193. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/headings.rs +0 -0
  194. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/html.rs +0 -0
  195. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/hugo.rs +0 -0
  196. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/inlines.rs +0 -0
  197. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/kind.rs +0 -0
  198. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/links.rs +0 -0
  199. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/lists.rs +0 -0
  200. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/math.rs +0 -0
  201. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/myst.rs +0 -0
  202. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
  203. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/references.rs +0 -0
  204. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
  205. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/tables.rs +0 -0
  206. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/yaml.rs +0 -0
  207. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
  208. {panache_cli-3.17.2 → panache_cli-3.18.0}/crates/panache-parser/src/syntax.rs +0 -0
  209. {panache_cli-3.17.2 → panache_cli-3.18.0}/pyproject.toml +0 -0
  210. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/bibtex.rs +0 -0
  211. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/csl_json.rs +0 -0
  212. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/csl_yaml.rs +0 -0
  213. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/index.rs +0 -0
  214. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/preview.rs +0 -0
  215. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib/ris.rs +0 -0
  216. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bib.rs +0 -0
  217. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/bin/distill_quarto_schema.rs +0 -0
  218. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/cache.rs +0 -0
  219. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/config/formatter_presets.rs +0 -0
  220. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/config/types/schema_helpers.rs +0 -0
  221. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/diagnostic_renderer.rs +0 -0
  222. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/directives.rs +0 -0
  223. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/external_formatters_common.rs +0 -0
  224. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/external_formatters_sync.rs +0 -0
  225. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/external_tools_common.rs +0 -0
  226. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/includes.rs +0 -0
  227. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/incremental.rs +0 -0
  228. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/io_context.rs +0 -0
  229. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lib.rs +0 -0
  230. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/code_block_collector.rs +0 -0
  231. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/diagnostics.rs +0 -0
  232. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/docs.rs +0 -0
  233. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/execution_context.rs +0 -0
  234. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/clippy.rs +0 -0
  235. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/eslint.rs +0 -0
  236. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/jarl.rs +0 -0
  237. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/jolars.rs +0 -0
  238. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/ruff.rs +0 -0
  239. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/shellcheck.rs +0 -0
  240. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters/staticcheck.rs +0 -0
  241. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters.rs +0 -0
  242. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/external_linters_sync.rs +0 -0
  243. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/fix.rs +0 -0
  244. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/fuzzy.rs +0 -0
  245. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/index.rs +0 -0
  246. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/metadata_diagnostics.rs +0 -0
  247. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/offsets.rs +0 -0
  248. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/project_index.rs +0 -0
  249. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema/distill.rs +0 -0
  250. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema/interp.rs +0 -0
  251. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema/model.rs +0 -0
  252. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema/report.rs +0 -0
  253. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema/value.rs +0 -0
  254. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/quarto_schema.rs +0 -0
  255. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/render.rs +0 -0
  256. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/adjacent_footnote_refs.rs +0 -0
  257. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/blank_line_in_display_math.rs +0 -0
  258. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/blank_line_in_inline_footnote.rs +0 -0
  259. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/chunk_label_spaces.rs +0 -0
  260. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/citation_keys.rs +0 -0
  261. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/citation_nonbreaking_space.rs +0 -0
  262. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/consumer_divergence.rs +0 -0
  263. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/crossref_as_link_target.rs +0 -0
  264. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/adjacent-footnote-refs.md +0 -0
  265. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/blank-line-in-display-math.md +0 -0
  266. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/blank-line-in-inline-footnote.md +0 -0
  267. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/chunk-label-spaces.md +0 -0
  268. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/citation-keys.md +0 -0
  269. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/citation-nonbreaking-space.md +0 -0
  270. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/consumer-divergence.md +0 -0
  271. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/crossref-as-link-target.md +0 -0
  272. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/duplicate-reference-labels.md +0 -0
  273. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/duplicate-yaml-anchor.md +0 -0
  274. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/empty-list-item.md +0 -0
  275. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/empty-values.md +0 -0
  276. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/figure-crossref-captions.md +0 -0
  277. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-after-image.md +0 -0
  278. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-ref-in-footnote-def.md +0 -0
  279. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-swallowed-by-bracket.md +0 -0
  280. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/heading-eaten-attrs.md +0 -0
  281. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/heading-hierarchy.md +0 -0
  282. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/heading-strip-comments-residue.md +0 -0
  283. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/html-entities.md +0 -0
  284. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/html-unclosed-attribute.md +0 -0
  285. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/inline-math-line-break.md +0 -0
  286. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/link-text-is-url.md +0 -0
  287. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/malformed-citation.md +0 -0
  288. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/math-syntax.md +0 -0
  289. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/missing-chunk-labels.md +0 -0
  290. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/quarto-schema-unknown-key.md +0 -0
  291. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/quarto-schema.md +0 -0
  292. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/reversed-footnote-marker.md +0 -0
  293. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/space-before-punctuation.md +0 -0
  294. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/stray-fenced-div-markers.md +0 -0
  295. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/swallowed-list-marker.md +0 -0
  296. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/table-column-count.md +0 -0
  297. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/undefined-anchor.md +0 -0
  298. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/undefined-references.md +0 -0
  299. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unknown-emoji-alias.md +0 -0
  300. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unspaced-citation.md +0 -0
  301. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unspaced-list-marker.md +0 -0
  302. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unsupported-metadata-key.md +0 -0
  303. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unused-definitions.md +0 -0
  304. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/docs/unused-yaml-anchor.md +0 -0
  305. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/duplicate_references.rs +0 -0
  306. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/duplicate_yaml_anchor.rs +0 -0
  307. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/emoji_aliases.rs +0 -0
  308. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/empty_list_item.rs +0 -0
  309. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/empty_values.rs +0 -0
  310. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/figure_crossref_captions.rs +0 -0
  311. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/footnote_after_image.rs +0 -0
  312. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/footnote_ref_in_footnote_def.rs +0 -0
  313. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/footnote_swallowed_by_bracket.rs +0 -0
  314. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/heading_eaten_attrs.rs +0 -0
  315. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/heading_hierarchy.rs +0 -0
  316. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/heading_strip_comments_residue.rs +0 -0
  317. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/html_entities.rs +0 -0
  318. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/html_unclosed_attribute.rs +0 -0
  319. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/inline_math_line_break.rs +0 -0
  320. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/link_text_is_url.rs +0 -0
  321. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/malformed_citation.rs +0 -0
  322. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/math_content.rs +0 -0
  323. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/missing_chunk_labels.rs +0 -0
  324. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/quarto_schema.rs +0 -0
  325. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/reversed_footnote_marker.rs +0 -0
  326. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/space_before_punctuation.rs +0 -0
  327. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/stray_fenced_div_markers.rs +0 -0
  328. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/swallowed_list_marker.rs +0 -0
  329. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/table_column_count.rs +0 -0
  330. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/undefined_anchor.rs +0 -0
  331. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/unspaced_citation.rs +0 -0
  332. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/unspaced_list_marker.rs +0 -0
  333. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/unsupported_metadata_key.rs +0 -0
  334. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/unused_definitions.rs +0 -0
  335. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules/unused_yaml_anchor.rs +0 -0
  336. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/rules.rs +0 -0
  337. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/runner.rs +0 -0
  338. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/yaml_anchors.rs +0 -0
  339. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter/yaml_resolve.rs +0 -0
  340. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/linter.rs +0 -0
  341. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/config.rs +0 -0
  342. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/context.rs +0 -0
  343. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/conversions.rs +0 -0
  344. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/dispatch.rs +0 -0
  345. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/documents.rs +0 -0
  346. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/global_state.rs +0 -0
  347. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/code_actions.rs +0 -0
  348. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/completion.rs +0 -0
  349. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/configuration.rs +0 -0
  350. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/diagnostics.rs +0 -0
  351. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/document_highlight.rs +0 -0
  352. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/document_links.rs +0 -0
  353. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/document_symbols.rs +0 -0
  354. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/file_operations.rs +0 -0
  355. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/file_rename.rs +0 -0
  356. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/file_watcher.rs +0 -0
  357. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/folding_ranges.rs +0 -0
  358. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/footnote_conversion.rs +0 -0
  359. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/formatting.rs +0 -0
  360. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/goto_definition.rs +0 -0
  361. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/heading_link_conversion.rs +0 -0
  362. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/hover.rs +0 -0
  363. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/link_conversion.rs +0 -0
  364. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/linked_editing_range.rs +0 -0
  365. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/list_conversion.rs +0 -0
  366. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/prepare_rename.rs +0 -0
  367. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/references.rs +0 -0
  368. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/rename.rs +0 -0
  369. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/semantic_tokens.rs +0 -0
  370. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/shortcode_args.rs +0 -0
  371. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/table_conversion.rs +0 -0
  372. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/workspace_folders.rs +0 -0
  373. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers/workspace_symbols.rs +0 -0
  374. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/handlers.rs +0 -0
  375. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/helpers.rs +0 -0
  376. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/line_index.rs +0 -0
  377. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/navigation.rs +0 -0
  378. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/symbols.rs +0 -0
  379. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/task_pool.rs +0 -0
  380. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/testing.rs +0 -0
  381. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp/uri_ext.rs +0 -0
  382. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/lsp.rs +0 -0
  383. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata/bibliography.rs +0 -0
  384. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata/citations.rs +0 -0
  385. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata/project.rs +0 -0
  386. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata/references.rs +0 -0
  387. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata/yaml.rs +0 -0
  388. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/metadata.rs +0 -0
  389. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/parser.rs +0 -0
  390. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/range_utils.rs +0 -0
  391. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/salsa.rs +0 -0
  392. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/syntax.rs +0 -0
  393. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/utils.rs +0 -0
  394. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/vfs.rs +0 -0
  395. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/yaml_engine.rs +0 -0
  396. {panache_cli-3.17.2 → panache_cli-3.18.0}/src/yaml_regions.rs +0 -0
@@ -121,9 +121,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
121
121
 
122
122
  [[package]]
123
123
  name = "badness-formatter"
124
- version = "0.11.0"
124
+ version = "0.12.0"
125
125
  source = "registry+https://github.com/rust-lang/crates.io-index"
126
- checksum = "0165f729bcb3de3e5b19936829abb6e32204d5762ed93a2c131e65c3c9495810"
126
+ checksum = "bc7954f6b8f0fb0571f4a7a933288e2c92a80309298d6b0686b68e3102c3a2dc"
127
127
  dependencies = [
128
128
  "badness-parser",
129
129
  "rowan 0.17.0",
@@ -131,9 +131,9 @@ dependencies = [
131
131
 
132
132
  [[package]]
133
133
  name = "badness-parser"
134
- version = "0.11.2"
134
+ version = "0.12.0"
135
135
  source = "registry+https://github.com/rust-lang/crates.io-index"
136
- checksum = "75b997df78399ddfa09f747bbe52f8e1c8afc374e3fc95540cd312632b939744"
136
+ checksum = "59890aa9f05b632ce68b2cf5d1efaba0726a9e3afc76ea2df8a7c1aab5fec8b1"
137
137
  dependencies = [
138
138
  "phf 0.14.0",
139
139
  "phf_codegen",
@@ -294,9 +294,9 @@ dependencies = [
294
294
 
295
295
  [[package]]
296
296
  name = "clapdown"
297
- version = "0.3.0"
297
+ version = "0.3.1"
298
298
  source = "registry+https://github.com/rust-lang/crates.io-index"
299
- checksum = "d8f2a42d22b905f09c7e696e2f46a17e4aa956c8d8b8cd09806137fd99c8544c"
299
+ checksum = "b247c825c52bf1a125ed92810ee82340e304938d4162683c4c4af2fe5e205748"
300
300
  dependencies = [
301
301
  "clap",
302
302
  ]
@@ -557,9 +557,9 @@ dependencies = [
557
557
 
558
558
  [[package]]
559
559
  name = "fancy-regex"
560
- version = "0.19.2"
560
+ version = "0.20.1"
561
561
  source = "registry+https://github.com/rust-lang/crates.io-index"
562
- checksum = "d301f5bf187b3c295fce6468d3875037a0bccc5f6b151c63cac2f85babf21912"
562
+ checksum = "7b32c6266c2b14b0db7aa3409d3ee3f0ddda3b1d0279c4ba24fbec18af81d90e"
563
563
  dependencies = [
564
564
  "bit-set",
565
565
  "regex-automata",
@@ -574,9 +574,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
574
574
 
575
575
  [[package]]
576
576
  name = "flate2"
577
- version = "1.1.10"
577
+ version = "1.1.11"
578
578
  source = "registry+https://github.com/rust-lang/crates.io-index"
579
- checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
579
+ checksum = "626d4928326b646e70f65ed36fc7cf9f206bdb68a0019ee7c6b4709da4e084c4"
580
580
  dependencies = [
581
581
  "crc32fast",
582
582
  "miniz_oxide",
@@ -679,9 +679,9 @@ dependencies = [
679
679
 
680
680
  [[package]]
681
681
  name = "globset"
682
- version = "0.4.20"
682
+ version = "0.4.21"
683
683
  source = "registry+https://github.com/rust-lang/crates.io-index"
684
- checksum = "07c34a9410465b45bd9787443bc7370f37735bad04b0f0cd57ff1a3186c98988"
684
+ checksum = "f98b0d85522dc0a824cfebbc9594ff4a9b289c568bea0370319dfbdf20ccdd2d"
685
685
  dependencies = [
686
686
  "aho-corasick",
687
687
  "bstr",
@@ -736,9 +736,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
736
736
 
737
737
  [[package]]
738
738
  name = "ignore"
739
- version = "0.4.33"
739
+ version = "0.4.34"
740
740
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "00b69833ed729dc5aa7d19541d96d6cf8e9137194207a04916d658e43168402f"
741
+ checksum = "484be5657551d7868d67587df967fb4fcbe9d266a761cc855aaa148fda0b3cc7"
742
742
  dependencies = [
743
743
  "crossbeam-deque",
744
744
  "globset",
@@ -850,9 +850,9 @@ dependencies = [
850
850
 
851
851
  [[package]]
852
852
  name = "jsonschema"
853
- version = "0.60.1"
853
+ version = "0.61.0"
854
854
  source = "registry+https://github.com/rust-lang/crates.io-index"
855
- checksum = "65de752665c4a06528af6759955eecf60ba73ae7442d35349963a09c8031cd71"
855
+ checksum = "e1324c9bebe052584e96e7c80d2f9cf2d86e1a6d83d621a46932c5636996be18"
856
856
  dependencies = [
857
857
  "ahash",
858
858
  "bytecount",
@@ -878,18 +878,18 @@ dependencies = [
878
878
 
879
879
  [[package]]
880
880
  name = "jsonschema-regex"
881
- version = "0.60.2"
881
+ version = "0.61.1"
882
882
  source = "registry+https://github.com/rust-lang/crates.io-index"
883
- checksum = "107aeb6ff14b8deb5610096a8ce5c554ec89806b521147eaeb3cae05b07edb7a"
883
+ checksum = "84cdf272371326ec8db8ce2608a52635d8edeeaf0189604e2ad627327b79e6db"
884
884
  dependencies = [
885
885
  "regex-syntax",
886
886
  ]
887
887
 
888
888
  [[package]]
889
889
  name = "jsonschema-value"
890
- version = "0.60.2"
890
+ version = "0.61.1"
891
891
  source = "registry+https://github.com/rust-lang/crates.io-index"
892
- checksum = "e281d6b177bb4834f2ffd6f92aa0443cffe29c996b251c8d94eb6f456186feba"
892
+ checksum = "e5e4a7f3b3c19c9cd2aa37937e1704229a0bcb1b446308a148574d56ace0c6ba"
893
893
  dependencies = [
894
894
  "ahash",
895
895
  "bytecount",
@@ -934,9 +934,9 @@ dependencies = [
934
934
 
935
935
  [[package]]
936
936
  name = "log"
937
- version = "0.4.34"
937
+ version = "0.4.35"
938
938
  source = "registry+https://github.com/rust-lang/crates.io-index"
939
- checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
939
+ checksum = "5d15f86d12da44cd8d4ec3c73984537eb7f4cadcb9776a575a0a8a05ca11005c"
940
940
 
941
941
  [[package]]
942
942
  name = "lsp-server"
@@ -1115,7 +1115,7 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
1115
1115
 
1116
1116
  [[package]]
1117
1117
  name = "panache"
1118
- version = "3.17.2"
1118
+ version = "3.18.0"
1119
1119
  dependencies = [
1120
1120
  "annotate-snippets",
1121
1121
  "assert_cmd",
@@ -1160,7 +1160,7 @@ dependencies = [
1160
1160
 
1161
1161
  [[package]]
1162
1162
  name = "panache-formatter"
1163
- version = "0.28.2"
1163
+ version = "0.29.0"
1164
1164
  dependencies = [
1165
1165
  "badness-formatter",
1166
1166
  "insta",
@@ -1180,7 +1180,7 @@ dependencies = [
1180
1180
 
1181
1181
  [[package]]
1182
1182
  name = "panache-parser"
1183
- version = "0.34.2"
1183
+ version = "0.35.0"
1184
1184
  dependencies = [
1185
1185
  "badness-parser",
1186
1186
  "entities",
@@ -1462,9 +1462,9 @@ dependencies = [
1462
1462
 
1463
1463
  [[package]]
1464
1464
  name = "referencing"
1465
- version = "0.60.2"
1465
+ version = "0.61.1"
1466
1466
  source = "registry+https://github.com/rust-lang/crates.io-index"
1467
- checksum = "f42818036d3b37cda6bd4c494543158a36e431cb717015ef7c93acc6ba214d3b"
1467
+ checksum = "eba9bfd41f0d7d8fbf9c7ed23b788a3f97e9f5d9419be812ff7e08b8dc6b14ec"
1468
1468
  dependencies = [
1469
1469
  "ahash",
1470
1470
  "fluent-uri 0.4.1",
@@ -1718,9 +1718,9 @@ dependencies = [
1718
1718
 
1719
1719
  [[package]]
1720
1720
  name = "serde_spanned"
1721
- version = "1.1.2"
1721
+ version = "1.1.3"
1722
1722
  source = "registry+https://github.com/rust-lang/crates.io-index"
1723
- checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c"
1723
+ checksum = "9c187e0a369471c550af028cba56d4f4fa2a489ad28151ae95a4d340a2a8b782"
1724
1724
  dependencies = [
1725
1725
  "serde_core",
1726
1726
  ]
@@ -1771,9 +1771,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
1771
1771
 
1772
1772
  [[package]]
1773
1773
  name = "smallvec"
1774
- version = "1.16.4"
1774
+ version = "1.16.5"
1775
1775
  source = "registry+https://github.com/rust-lang/crates.io-index"
1776
- checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
1776
+ checksum = "149309498a5f7334b12ddae0cad8aba81ce785fe91755068867e017cf98fee46"
1777
1777
 
1778
1778
  [[package]]
1779
1779
  name = "smol_str"
@@ -1893,9 +1893,9 @@ checksum = "650d82e943da333637be9f1567d33d605e76810a26464edfd7ae74f7ef181e95"
1893
1893
 
1894
1894
  [[package]]
1895
1895
  name = "toml"
1896
- version = "1.1.8+spec-1.1.0"
1896
+ version = "1.2.1+spec-1.1.0"
1897
1897
  source = "registry+https://github.com/rust-lang/crates.io-index"
1898
- checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d"
1898
+ checksum = "d5755c51863cdac711f1956baf8eb9588e060755f7d3c4c979e70ea1e1f32cd7"
1899
1899
  dependencies = [
1900
1900
  "indexmap",
1901
1901
  "serde_core",
@@ -1908,9 +1908,9 @@ dependencies = [
1908
1908
 
1909
1909
  [[package]]
1910
1910
  name = "toml_datetime"
1911
- version = "1.1.2+spec-1.1.0"
1911
+ version = "1.1.3+spec-1.1.0"
1912
1912
  source = "registry+https://github.com/rust-lang/crates.io-index"
1913
- checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
1913
+ checksum = "173f25c883cd2176a2d8212155638c0a60d484a9d84546d270866f40f56b6e49"
1914
1914
  dependencies = [
1915
1915
  "serde_core",
1916
1916
  ]
@@ -1926,9 +1926,9 @@ dependencies = [
1926
1926
 
1927
1927
  [[package]]
1928
1928
  name = "toml_writer"
1929
- version = "1.1.3+spec-1.1.0"
1929
+ version = "1.2.0+spec-1.1.0"
1930
1930
  source = "registry+https://github.com/rust-lang/crates.io-index"
1931
- checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
1931
+ checksum = "009dbb7700f11c55ef83aebbe4c0e9cf1f1ac0844bd8d6f00dc38f302026e13a"
1932
1932
 
1933
1933
  [[package]]
1934
1934
  name = "tracing"
@@ -1975,9 +1975,9 @@ checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
1975
1975
 
1976
1976
  [[package]]
1977
1977
  name = "unicode-width"
1978
- version = "0.2.2"
1978
+ version = "0.2.3"
1979
1979
  source = "registry+https://github.com/rust-lang/crates.io-index"
1980
- checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
1980
+ checksum = "ca718471876992059f251e33aafc334346ada08042b7661dd1fe313a9bced557"
1981
1981
 
1982
1982
  [[package]]
1983
1983
  name = "utf8parse"
@@ -1987,9 +1987,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
1987
1987
 
1988
1988
  [[package]]
1989
1989
  name = "uuid"
1990
- version = "1.29.0"
1990
+ version = "1.29.1"
1991
1991
  source = "registry+https://github.com/rust-lang/crates.io-index"
1992
- checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514"
1992
+ checksum = "4a06f08a856b009bc7bbaf7d3e79808595d032dd19074c0c2ef26e49e03e6bdc"
1993
1993
  dependencies = [
1994
1994
  "getrandom 0.4.3",
1995
1995
  "js-sys",
@@ -9,7 +9,7 @@ authors = ["Johan Larsson <johan@jolars.co>"]
9
9
 
10
10
  [package]
11
11
  name = "panache"
12
- version = "3.17.2"
12
+ version = "3.18.0"
13
13
  edition.workspace = true
14
14
  rust-version.workspace = true
15
15
  # `distill_quarto_schema` is a dev-only vendoring bin (src/bin/); keep bare
@@ -55,11 +55,11 @@ path = "src/main.rs"
55
55
  required-features = ["cli"]
56
56
 
57
57
  [dependencies]
58
- panache-formatter = { path = "crates/panache-formatter", version = "0.28.2", features = [
58
+ panache-formatter = { path = "crates/panache-formatter", version = "0.29.0", features = [
59
59
  "serde",
60
60
  "schema",
61
61
  ] }
62
- panache-parser = { path = "crates/panache-parser", version = "0.34.2", features = [
62
+ panache-parser = { path = "crates/panache-parser", version = "0.35.0", features = [
63
63
  "serde",
64
64
  "schema",
65
65
  ] }
@@ -95,7 +95,7 @@ similar-asserts = "2.0.0"
95
95
  insta = { version = "1.47.2", features = ["json"] }
96
96
  assert_cmd = "2.2.2"
97
97
  predicates = "3.1.4"
98
- jsonschema = { version = "0.60.1", default-features = false }
98
+ jsonschema = { version = "0.61.0", default-features = false }
99
99
 
100
100
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
101
101
  rayon = "1.10.0"
@@ -117,7 +117,7 @@ lsp = [
117
117
  clap = { version = "4.6.1", features = ["derive", "env"] }
118
118
  clap_complete = "4.6.0"
119
119
  clap_mangen = "0.3.0"
120
- clapdown = "0.3.0"
120
+ clapdown = "0.3.1"
121
121
  flate2 = "1.1.9"
122
122
 
123
123
  [package.metadata.deb]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: panache-cli
3
- Version: 3.17.2
3
+ Version: 3.18.0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -26,17 +26,14 @@ Project-URL: Repository, https://github.com/jolars/panache
26
26
 
27
27
  # Panache <img src='https://raw.githubusercontent.com/jolars/panache/refs/heads/main/images/logo.png' align="right" width="139" />
28
28
 
29
- [![Build and
30
- Test](https://github.com/jolars/panache/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
29
+ [![CI](https://img.shields.io/github/actions/workflow/status/jolars/panache/build-and-test.yml?branch=main&label=CI)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
31
30
  [![Crates.io](https://img.shields.io/crates/v/panache.svg?logo=rust)](https://crates.io/crates/panache)
32
31
  [![Open
33
32
  VSX](https://img.shields.io/open-vsx/v/jolars/panache?logo=vsix)](https://open-vsx.org/extension/jolars/panache)
34
33
  [![VS
35
34
  Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix)](https://marketplace.visualstudio.com/items?itemName=jolars.panache)
36
- [![PyPI
37
- version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
38
- [![npm
39
- version](https://badge.fury.io/js/@panache-cli%2Fpanache.svg?icon=si%3Anpm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
35
+ [![PyPi](https://img.shields.io/pypi/v/panache-cli?logo=python&label=PyPi)](https://badge.fury.io/py/panache-cli)
36
+ [![npm](https://img.shields.io/npm/v/@panache-cli/panache?logo=npm&label=npm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
40
37
  [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.18608442-blue)](https://doi.org/10.5281/zenodo.18608442)
41
38
 
42
39
  Panache is a language server, formatter, and linter for Quarto and other
@@ -1,16 +1,13 @@
1
1
  # Panache <img src='https://raw.githubusercontent.com/jolars/panache/refs/heads/main/images/logo.png' align="right" width="139" />
2
2
 
3
- [![Build and
4
- Test](https://github.com/jolars/panache/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
3
+ [![CI](https://img.shields.io/github/actions/workflow/status/jolars/panache/build-and-test.yml?branch=main&label=CI)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
5
4
  [![Crates.io](https://img.shields.io/crates/v/panache.svg?logo=rust)](https://crates.io/crates/panache)
6
5
  [![Open
7
6
  VSX](https://img.shields.io/open-vsx/v/jolars/panache?logo=vsix)](https://open-vsx.org/extension/jolars/panache)
8
7
  [![VS
9
8
  Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix)](https://marketplace.visualstudio.com/items?itemName=jolars.panache)
10
- [![PyPI
11
- version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
12
- [![npm
13
- version](https://badge.fury.io/js/@panache-cli%2Fpanache.svg?icon=si%3Anpm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
9
+ [![PyPi](https://img.shields.io/pypi/v/panache-cli?logo=python&label=PyPi)](https://badge.fury.io/py/panache-cli)
10
+ [![npm](https://img.shields.io/npm/v/@panache-cli/panache?logo=npm&label=npm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
14
11
  [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.18608442-blue)](https://doi.org/10.5281/zenodo.18608442)
15
12
 
16
13
  Panache is a language server, formatter, and linter for Quarto and other
@@ -1,6 +1,7 @@
1
1
  use clap::CommandFactory;
2
2
  use clap_complete::{Shell, generate_to};
3
3
  use clap_mangen::Man;
4
+ use clap_mangen::roff::{Roff, roman};
4
5
  use std::env;
5
6
  use std::fs;
6
7
  use std::io::Result;
@@ -352,6 +353,38 @@ fn format_see_also(refs: &[String]) -> String {
352
353
  format!(".SH \"SEE ALSO\"\n{}\n", formatted.join(", "))
353
354
  }
354
355
 
356
+ fn render_man_directives(help: &str) -> Result<String> {
357
+ let (title, body) = help.split_once("\n\n").unwrap_or((help, ""));
358
+ let mut roff = Roff::default();
359
+ let title = title.trim_end_matches(':').to_ascii_uppercase();
360
+ roff.control("SH", [title.as_str()]);
361
+
362
+ // The shared help uses indented Markdown examples, which need no-fill mode
363
+ // in man pages to preserve the spacing the directives are meant to protect.
364
+ for paragraph in body.split("\n\n") {
365
+ roff.control("PP", []);
366
+ let is_example = paragraph.lines().all(|line| line.starts_with(" "));
367
+ if is_example {
368
+ roff.control("RS", ["4"]);
369
+ roff.control("nf", []);
370
+ }
371
+ for line in paragraph.lines() {
372
+ let line = if is_example { &line[4..] } else { line };
373
+ roff.text([roman(line)]);
374
+ }
375
+ if is_example {
376
+ roff.control("fi", []);
377
+ roff.control("RE", []);
378
+ }
379
+ }
380
+
381
+ let mut buffer = Vec::new();
382
+ roff.to_writer(&mut buffer)?;
383
+ Ok(String::from_utf8_lossy(&buffer)
384
+ .trim_start_matches(Roff::default().render().as_str())
385
+ .to_owned())
386
+ }
387
+
355
388
  fn generate_man_pages() -> Result<()> {
356
389
  // Create man directory if it doesn't exist
357
390
  let out_dir = PathBuf::from("target/man");
@@ -387,8 +420,22 @@ fn generate_man_pages() -> Result<()> {
387
420
  let mut buffer = Vec::new();
388
421
  man.render(&mut buffer)?;
389
422
 
423
+ let mut content = String::from_utf8_lossy(&buffer).into_owned();
424
+ if matches!(subcommand_name, "format" | "lint")
425
+ && let Some(help) = subcommand.get_after_long_help()
426
+ {
427
+ let mut extra = Vec::new();
428
+ man.render_extra_section(&mut extra)?;
429
+ // Standalone section renders include the preamble from the full page.
430
+ content = content.replacen(
431
+ String::from_utf8_lossy(&extra)
432
+ .trim_start_matches(Roff::default().render().as_str()),
433
+ &render_man_directives(&help.to_string())?,
434
+ 1,
435
+ );
436
+ }
437
+
390
438
  // Post-process: fix NAME, SYNOPSIS, and nested subcommand references
391
- let content = String::from_utf8_lossy(&buffer);
392
439
  let fixed_content = content
393
440
  .replace(
394
441
  &format!("{} \\-", subcommand_name),
@@ -399,8 +446,8 @@ fn generate_man_pages() -> Result<()> {
399
446
  &format!("\\fBpanache {}\\fR", subcommand_name),
400
447
  )
401
448
  .replace(
402
- &format!("{}\\-", subcommand_name),
403
- &format!("panache\\-{}\\-", subcommand_name),
449
+ &format!("\n{}\\-", subcommand_name),
450
+ &format!("\npanache\\-{}\\-", subcommand_name),
404
451
  );
405
452
 
406
453
  // SEE ALSO: panache(1) plus sibling subcommand pages
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.29.0](https://github.com/jolars/panache/compare/panache-formatter-v0.28.2...panache-formatter-v0.29.0) (2026-11-11)
4
+
5
+ ### Features
6
+
7
+ - **cli:** add inspect command ([`1545ef4`](https://github.com/jolars/panache/commit/1545ef4f77e299104c504434170a3fa556579e4d)), closes [#601](https://github.com/jolars/panache/issues/601)
8
+ - **formatter:** preserve punctuation by default ([`ca09ecc`](https://github.com/jolars/panache/commit/ca09ecc46f86a56554d345b3abe3a61b75fe28dd)), ref [#605](https://github.com/jolars/panache/issues/605) and [#607](https://github.com/jolars/panache/issues/607)
9
+ - **formatter:** add smart punctuation modes ([`38c161e`](https://github.com/jolars/panache/commit/38c161ee428a27813bfcd7bc7c8530f49c3540df)), closes [#605](https://github.com/jolars/panache/issues/605), ref [#607](https://github.com/jolars/panache/issues/607)
10
+
11
+ ### Bug Fixes
12
+
13
+ - don’t apply `smart` transform to raw/code inline (#610) ([`15502cc`](https://github.com/jolars/panache/commit/15502ccd2f3339c7de218de8875016d2fd75429a))
14
+ - **formatter:** preserve list block separators ([`fd9dbf4`](https://github.com/jolars/panache/commit/fd9dbf4c945296f4e38af94ae0e0d301d679092b)), fixes [#602](https://github.com/jolars/panache/issues/602)
15
+ - **formatter:** trim excess pipe table padding ([`d77e076`](https://github.com/jolars/panache/commit/d77e076b58f5a90e574e82366ebede92b137e4f3)), fixes [#599](https://github.com/jolars/panache/issues/599)
16
+ - **formatter:** keep `et al.` together ([`a5bb5e1`](https://github.com/jolars/panache/commit/a5bb5e11301bb373a2034f3ec3362dd258e50b42)), closes [#593](https://github.com/jolars/panache/issues/593)
17
+
18
+ ### Dependencies
19
+
20
+ - updated crates/panache-parser to v0.35.0
21
+
3
22
  ## [0.28.2](https://github.com/jolars/panache/compare/panache-formatter-v0.28.1...panache-formatter-v0.28.2) (2026-10-30)
4
23
 
5
24
  ### Dependencies
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "panache-formatter"
3
- version = "0.28.2"
3
+ version = "0.29.0"
4
4
  edition.workspace = true
5
5
  rust-version.workspace = true
6
6
  include = [
@@ -19,7 +19,7 @@ keywords = ["quarto", "pandoc", "markdown", "formatter"]
19
19
  categories = ["text-processing"]
20
20
 
21
21
  [dependencies]
22
- panache-parser = { path = "../panache-parser", version = "0.34.2" }
22
+ panache-parser = { path = "../panache-parser", version = "0.35.0" }
23
23
  log = { version = "0.4.31", features = ["release_max_level_debug"] }
24
24
  rowan = "0.17.0"
25
25
  serde = { version = "1.0.228", features = ["derive"], optional = true }
@@ -32,7 +32,7 @@ serde = ["dep:serde", "panache-parser/serde"]
32
32
  schema = ["serde", "dep:schemars", "panache-parser/schema"]
33
33
 
34
34
  [dev-dependencies]
35
- badness-formatter = "=0.11.0"
35
+ badness-formatter = "=0.12.0"
36
36
  serde_json = "1.0.150"
37
37
  insta = { version = "1.47.2", features = ["json"] }
38
38
  # TEMPORARY: cross-validation oracle only (tests/yaml_cross_validation.rs).
@@ -110,6 +110,28 @@ pub enum HorizontalRuleStyle {
110
110
  Compact,
111
111
  }
112
112
 
113
+ /// Source spelling of punctuation in prose.
114
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
115
+ #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
116
+ #[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
117
+ #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
118
+ pub enum SmartPunctuation {
119
+ /// Leave punctuation as written.
120
+ #[default]
121
+ Preserve,
122
+ /// Write straight quotes with `smart` or `smart-quotes`, and `--`, `---`,
123
+ /// and `...` with `smart`. Preserve punctuation otherwise.
124
+ Ascii,
125
+ /// Write English curly quotes, en/em dashes, and `…`.
126
+ Unicode,
127
+ }
128
+
129
+ impl SmartPunctuation {
130
+ pub fn for_flavor(_flavor: Flavor) -> Self {
131
+ Self::default()
132
+ }
133
+ }
134
+
113
135
  #[derive(Debug, Clone, PartialEq)]
114
136
  #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
115
137
  #[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
@@ -187,8 +209,8 @@ impl FormatterExtensions {
187
209
 
188
210
  /// See [`known_extensions!`](panache_parser::Extensions) for the parser-side
189
211
  /// twin. The formatter extension surface is a small subset; the macro keeps
190
- /// the runtime setter, the public name list, and the JSON Schema generator in
191
- /// lockstep.
212
+ /// the runtime setter, public name list, state iterator, and JSON Schema
213
+ /// generator in lockstep.
192
214
  macro_rules! known_formatter_extensions {
193
215
  ( $( $kebab:literal => $field:ident ),* $(,)? ) => {
194
216
  impl FormatterExtensions {
@@ -196,6 +218,11 @@ macro_rules! known_formatter_extensions {
196
218
  /// affect formatter behavior (a subset of the parser names).
197
219
  pub const KNOWN_NAMES: &'static [&'static str] = &[ $($kebab),* ];
198
220
 
221
+ /// Canonical names and current states of all formatter extensions.
222
+ pub fn states(&self) -> impl Iterator<Item = (&'static str, bool)> {
223
+ [$(($kebab, self.$field)),*].into_iter()
224
+ }
225
+
199
226
  /// True if `name` matches a known formatter extension. Only
200
227
  /// kebab-case is accepted; snake_case aliases were removed in 3.0.
201
228
  pub fn is_known_name(name: &str) -> bool {
@@ -251,6 +278,10 @@ pub struct Config {
251
278
  /// How horizontal rules are rendered: expanded to the line width
252
279
  /// (default) or as a compact `---`.
253
280
  pub horizontal_rule_style: HorizontalRuleStyle,
281
+ /// Source spelling of punctuation. Defaults to preservation. ASCII
282
+ /// normalization requires the corresponding `smart` or `smart-quotes`
283
+ /// renderer extension.
284
+ pub smart_punctuation: SmartPunctuation,
254
285
  /// Document-language fallback used by sentence wrapping when the document
255
286
  /// has no YAML `lang:`. Normalized lowercase code (e.g. `de`, `pt-br`).
256
287
  pub lang: Option<String>,
@@ -288,6 +319,7 @@ impl Default for Config {
288
319
  wrap: Some(WrapMode::Reflow),
289
320
  blank_lines: BlankLines::Collapse,
290
321
  horizontal_rule_style: HorizontalRuleStyle::default(),
322
+ smart_punctuation: SmartPunctuation::for_flavor(flavor),
291
323
  lang: None,
292
324
  no_break_abbreviations: std::collections::BTreeMap::new(),
293
325
  formatters: HashMap::new(), // Opt-in: empty by default
@@ -323,6 +355,11 @@ pub struct ConfigBuilder {
323
355
  }
324
356
 
325
357
  impl ConfigBuilder {
358
+ pub fn smart_punctuation(mut self, mode: SmartPunctuation) -> Self {
359
+ self.config.smart_punctuation = mode;
360
+ self
361
+ }
362
+
326
363
  pub fn math(mut self, mode: MathMode) -> Self {
327
364
  self.config.math = mode;
328
365
  self
@@ -419,6 +456,11 @@ mod schema_tests {
419
456
  assert_wire_values::<BlankLines>(&["preserve", "collapse"]);
420
457
  }
421
458
 
459
+ #[test]
460
+ fn smart_punctuation_values_are_lowercase() {
461
+ assert_wire_values::<SmartPunctuation>(&["preserve", "ascii", "unicode"]);
462
+ }
463
+
422
464
  #[test]
423
465
  fn horizontal_rule_style_values_are_kebab_case() {
424
466
  assert_wire_values::<HorizontalRuleStyle>(&["line-width", "compact"]);