id = "panache"
name = "Panache"
homepage = "https://panache.bz/"
description = "Language server, formatter, and linter for Markdown, Quarto, and R Markdown"
executables = ["panache"]
[dotfiles]
paths = [
"[configHome]/panache/config.toml",
"~/Library/Application Support/panache/config.toml",
"%APPDATA%/panache/config.toml",
]
secret = []
[commands]
format = 1
label = "Panache"
description = "Format or lint Markdown, Quarto and R Markdown files. Parse, LSP, clean and debug commands are not covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.subcommand]]
path = ["format"]
label = "Format documents"
description = "Format files in place, or only check them with the check option."
[[commands.subcommand.source]]
id = "cli"
kind = "manual"
url = "https://panache.bz/reference/cli.html"
revision = "v3.17.1"
evidence = """
Usage: panache format [OPTIONS] [FILES]...
--check
Check if the file is already formatted according to Panache’s rules without making any changes.
--flavor <FLAVOR>
pandoc
quarto
rmarkdown
gfm
commonmark
multimarkdown
mdsvex
myst
hugo
-q
, --quiet
"""
[[commands.subcommand.field]]
id = "files"
label = "Files or directories"
type = "path"
path = { kind = "any", role = "input" }
position = 0
multiple = true
effect = "overwrite"
sources = ["cli"]
[[commands.subcommand.field]]
id = "check"
label = "Check only"
description = "Show a diff and exit 1 if formatting is needed, without changing files."
type = "boolean"
option = ["--check"]
sources = ["cli"]
[[commands.subcommand.field]]
id = "flavor"
label = "Markdown flavor"
type = "enum"
option = ["--flavor"]
choices = [{ value = "pandoc", label = "Pandoc" }, { value = "quarto", label = "Quarto" }, { value = "rmarkdown", label = "R Markdown" }, { value = "gfm", label = "GitHub Flavored Markdown" }, { value = "commonmark", label = "CommonMark" }, { value = "multimarkdown", label = "MultiMarkdown" }, { value = "mdsvex", label = "mdsvex" }, { value = "myst", label = "MyST" }, { value = "hugo", label = "Hugo" }]
sources = ["cli"]
[[commands.subcommand.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["--quiet", "-q"]
sources = ["cli"]
[[commands.subcommand.task]]
id = "check"
label = "Check formatting"
fields = ["files", "check"]
required = ["files"]
set = { check = [true] }
[[commands.subcommand.task]]
id = "format"
label = "Format in place"
fields = ["files", "flavor"]
required = ["files"]
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["files", "check", "flavor", "quiet"]
[[commands.subcommand]]
path = ["lint"]
label = "Lint documents"
description = "Report correctness problems, optionally applying fixes."
[[commands.subcommand.source]]
id = "cli"
kind = "manual"
url = "https://panache.bz/reference/cli.html"
revision = "v3.17.1"
evidence = """
Usage: panache lint [OPTIONS] [FILES]...
--select <SELECT>
Rule names to enable instead of the configured defaults
--ignore <IGNORE>
Rule names to disable, replacing configured ignores
--fix
Automatically fix violations where possible
--unsafe-fixes
Apply auto-fixes marked unsafe in addition to safe ones.
--message-format <MESSAGE_FORMAT>
Possible values: human
, short
"""
[[commands.subcommand.field]]
id = "files"
label = "Files or directories"
type = "path"
path = { kind = "any", role = "input" }
position = 0
multiple = true
sources = ["cli"]
[[commands.subcommand.field]]
id = "select"
label = "Rules to enable"
type = "string"
option = ["--select"]
sources = ["cli"]
[[commands.subcommand.field]]
id = "ignore"
label = "Rules to disable"
type = "string"
option = ["--ignore"]
sources = ["cli"]
[[commands.subcommand.field]]
id = "fix"
label = "Apply fixes"
type = "boolean"
option = ["--fix"]
effect = "overwrite"
sources = ["cli"]
[[commands.subcommand.field]]
id = "unsafe_fixes"
label = "Apply unsafe fixes"
description = "Requires the fix option."
type = "boolean"
option = ["--unsafe-fixes"]
effect = "overwrite"
sources = ["cli"]
[[commands.subcommand.field]]
id = "message_format"
label = "Message format"
type = "enum"
option = ["--message-format"]
choices = [{ value = "human", label = "Human" }, { value = "short", label = "Short" }]
sources = ["cli"]
[[commands.subcommand.task]]
id = "lint"
label = "Lint files"
fields = ["files", "message_format"]
required = ["files"]
[[commands.subcommand.task]]
id = "fix"
label = "Lint and fix"
fields = ["files", "fix"]
required = ["files", "fix"]
set = { fix = [true] }
[[commands.subcommand.group]]
id = "basic"
label = "Basic"
fields = ["files", "fix", "message_format"]
[[commands.subcommand.group]]
id = "advanced"
label = "Advanced"
fields = ["select", "ignore", "unsafe_fixes"]