{
  "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
    },
    "subcommand": [
      {
        "path": [
          "format"
        ],
        "label": "Format documents",
        "description": "Format files in place, or only check them with the check option.",
        "source": [
          {
            "id": "cli",
            "kind": "manual",
            "url": "https://panache.bz/reference/cli.html",
            "revision": "v3.17.1",
            "evidence": "Usage: panache format [OPTIONS] [FILES]...\n--check\nCheck if the file is already formatted according to Panache’s rules without making any changes.\n--flavor <FLAVOR>\npandoc\nquarto\nrmarkdown\ngfm\ncommonmark\nmultimarkdown\nmdsvex\nmyst\nhugo\n-q\n, --quiet\n"
          }
        ],
        "field": [
          {
            "id": "files",
            "label": "Files or directories",
            "type": "path",
            "path": {
              "kind": "any",
              "role": "input"
            },
            "position": 0,
            "multiple": true,
            "effect": "overwrite",
            "sources": [
              "cli"
            ]
          },
          {
            "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"
            ]
          },
          {
            "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"
            ]
          },
          {
            "id": "quiet",
            "label": "Quiet",
            "type": "boolean",
            "option": [
              "--quiet",
              "-q"
            ],
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "check",
            "label": "Check formatting",
            "fields": [
              "files",
              "check"
            ],
            "required": [
              "files"
            ],
            "set": {
              "check": [
                true
              ]
            }
          },
          {
            "id": "format",
            "label": "Format in place",
            "fields": [
              "files",
              "flavor"
            ],
            "required": [
              "files"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "files",
              "check",
              "flavor",
              "quiet"
            ]
          }
        ]
      },
      {
        "path": [
          "lint"
        ],
        "label": "Lint documents",
        "description": "Report correctness problems, optionally applying fixes.",
        "source": [
          {
            "id": "cli",
            "kind": "manual",
            "url": "https://panache.bz/reference/cli.html",
            "revision": "v3.17.1",
            "evidence": "Usage: panache lint [OPTIONS] [FILES]...\n--select <SELECT>\nRule names to enable instead of the configured defaults\n--ignore <IGNORE>\nRule names to disable, replacing configured ignores\n--fix\nAutomatically fix violations where possible\n--unsafe-fixes\nApply auto-fixes marked unsafe in addition to safe ones.\n--message-format <MESSAGE_FORMAT>\nPossible values: human\n, short\n"
          }
        ],
        "field": [
          {
            "id": "files",
            "label": "Files or directories",
            "type": "path",
            "path": {
              "kind": "any",
              "role": "input"
            },
            "position": 0,
            "multiple": true,
            "sources": [
              "cli"
            ]
          },
          {
            "id": "select",
            "label": "Rules to enable",
            "type": "string",
            "option": [
              "--select"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "ignore",
            "label": "Rules to disable",
            "type": "string",
            "option": [
              "--ignore"
            ],
            "sources": [
              "cli"
            ]
          },
          {
            "id": "fix",
            "label": "Apply fixes",
            "type": "boolean",
            "option": [
              "--fix"
            ],
            "effect": "overwrite",
            "sources": [
              "cli"
            ]
          },
          {
            "id": "unsafe_fixes",
            "label": "Apply unsafe fixes",
            "description": "Requires the fix option.",
            "type": "boolean",
            "option": [
              "--unsafe-fixes"
            ],
            "effect": "overwrite",
            "sources": [
              "cli"
            ]
          },
          {
            "id": "message_format",
            "label": "Message format",
            "type": "enum",
            "option": [
              "--message-format"
            ],
            "choices": [
              {
                "value": "human",
                "label": "Human"
              },
              {
                "value": "short",
                "label": "Short"
              }
            ],
            "sources": [
              "cli"
            ]
          }
        ],
        "task": [
          {
            "id": "lint",
            "label": "Lint files",
            "fields": [
              "files",
              "message_format"
            ],
            "required": [
              "files"
            ]
          },
          {
            "id": "fix",
            "label": "Lint and fix",
            "fields": [
              "files",
              "fix"
            ],
            "required": [
              "files",
              "fix"
            ],
            "set": {
              "fix": [
                true
              ]
            }
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "files",
              "fix",
              "message_format"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "select",
              "ignore",
              "unsafe_fixes"
            ]
          }
        ]
      }
    ]
  }
}
