{
"name": "panache",
"displayName": "Panache",
"description": "Language server for Pandoc, Quarto, and R Markdown documents",
"version": "2.36.1",
"publisher": "jolars",
"license": "MIT",
"icon": "icon.png",
"repository": {
"type": "git",
"url": "https://github.com/jolars/panache.git"
},
"homepage": "https://panache.bz/",
"bugs": {
"url": "https://github.com/jolars/panache/issues"
},
"engines": {
"vscode": "^1.90.0"
},
"categories": [
"Formatters",
"Linters",
"Programming Languages"
],
"keywords": [
"markdown",
"quarto",
"pandoc",
"rmarkdown",
"r markdown",
"qmd",
"rmd"
],
"activationEvents": [
"onLanguage:markdown",
"onLanguage:rmarkdown",
"onLanguage:quarto",
"workspaceContains:**/*.qmd",
"workspaceContains:**/*.Rmd",
"workspaceContains:**/*.rmd"
],
"main": "./dist/extension.js",
"contributes": {
"languages": [
{
"id": "quarto",
"aliases": [
"Quarto",
"quarto"
],
"extensions": [
".qmd"
]
},
{
"id": "rmarkdown",
"aliases": [
"R Markdown",
"rmarkdown"
],
"extensions": [
".Rmd",
".rmd"
]
}
],
"configuration": {
"title": "Panache",
"properties": {
"panache.executableStrategy": {
"type": "string",
"enum": [
"bundled",
"environment",
"path"
],
"enumDescriptions": [
"Use the binary bundled inside the extension; fall back to downloading from GitHub if none is bundled or `panache.version`/`panache.releaseTag` is set explicitly (default).",
"Look for `panache` on the system PATH.",
"Use the binary at `panache.executablePath`."
],
"default": "bundled",
"markdownDescription": "Strategy used to locate the `panache` executable for the language server. Takes precedence over the deprecated `panache.downloadBinary` and `panache.commandPath` when explicitly set."
},
"panache.executablePath": {
"type": [
"string",
"null"
],
"default": null,
"markdownDescription": "Path to the `panache` executable. Only used when `panache.executableStrategy` is set to `path`."
},
"panache.commandPath": {
"type": "string",
"default": "panache",
"markdownDeprecationMessage": "Deprecated: use `panache.executableStrategy` (set to `path`) together with `panache.executablePath` instead.",
"markdownDescription": "Path to the panache binary used to launch the language server (fallback if auto-download is enabled)."
},
"panache.downloadBinary": {
"type": "boolean",
"default": true,
"markdownDeprecationMessage": "Deprecated: use `panache.executableStrategy` instead (`bundled` to download, `environment` to use PATH).",
"markdownDescription": "Automatically download a platform-specific Panache binary from GitHub releases."
},
"panache.version": {
"type": "string",
"default": "latest",
"description": "Panache version to install (for example: latest or 2.16.0)."
},
"panache.releaseTag": {
"type": "string",
"default": "latest",
"description": "Advanced override for exact GitHub release tag (for example: v2.16.0; legacy panache-v2.16.0 also supported). If explicitly set, this takes precedence over panache.version."
},
"panache.githubRepo": {
"type": "string",
"default": "jolars/panache",
"description": "GitHub repository used for Panache binary downloads (<owner>/<repo>)."
},
"panache.serverArgs": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Additional command-line arguments passed after `panache lsp`."
},
"panache.serverEnv": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {},
"description": "Environment variables merged into the Panache language server process."
},
"panache.extraPath": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Extra PATH entries prepended for the Panache language server process (useful for external tools like air, ruff, or black)."
},
"panache.logLevel": {
"type": [
"string",
"null"
],
"enum": [
null,
"off",
"error",
"warn",
"info",
"debug",
"trace"
],
"default": null,
"markdownDescription": "Log level for the Panache language server. Maps to the `RUST_LOG` environment variable. Leave unset to use the server's default. If `panache.serverEnv.RUST_LOG` is also set, it takes precedence."
},
"panache.trace.server": {
"type": "string",
"enum": [
"off",
"messages",
"verbose"
],
"default": "off",
"description": "Trace communication between VS Code and the Panache language server."
},
"panache.experimental.incrementalParsing": {
"type": "boolean",
"default": false,
"description": "Enable experimental incremental parsing in the Panache language server. This may improve didChange performance but can be unstable."
}
}
},
"configurationDefaults": {
"[quarto]": {
"editor.defaultFormatter": "jolars.panache"
},
"[rmarkdown]": {
"editor.defaultFormatter": "jolars.panache"
}
},
"commands": [
{
"command": "panache.restart",
"title": "Restart Server",
"category": "Panache"
}
]
},
"scripts": {
"vscode:prepublish": "npm run clean && npm run check-types && npm run bundle:prod",
"compile": "npm run clean && npm run check-types && npm run bundle",
"clean": "rm -rf dist",
"check-types": "tsc --noEmit -p .",
"bundle": "esbuild src/extension.ts --bundle --platform=node --target=node20 --format=cjs --sourcemap --external:vscode --outfile=dist/extension.js",
"bundle:prod": "esbuild src/extension.ts --bundle --platform=node --target=node20 --format=cjs --minify --external:vscode --outfile=dist/extension.js",
"watch": "npm-run-all -p watch:esbuild watch:tsc",
"watch:esbuild": "esbuild src/extension.ts --bundle --platform=node --target=node20 --format=cjs --sourcemap --watch --external:vscode --outfile=dist/extension.js",
"watch:tsc": "tsc --noEmit -w -p .",
"package": "vsce package"
},
"dependencies": {
"adm-zip": "^0.5.17",
"tar": "^7.5.13",
"vscode-languageclient": "^9.0.1"
},
"devDependencies": {
"@types/adm-zip": "^0.5.8",
"@types/node": "^25.6.0",
"@types/vscode": "1.90.0",
"@vscode/vsce": "^3.9.1",
"esbuild": "^0.28.0",
"npm-run-all": "^4.1.5",
"typescript": "^6.0.3"
}
}