{
"name": "bacon-ls-vscode",
"displayName": "Bacon Language Server",
"description": "Rust diagnostic based on Bacon",
"publisher": "MatteoBigoi",
"version": "0.29.0",
"private": true,
"icon": "img/icon.png",
"repository": {
"url": "https://github.com/crisidev/bacon-ls.git",
"type": "git"
},
"license": "MIT",
"keywords": [
"diagnostic",
"rust",
"lsp"
],
"categories": [
"Linters",
"Other"
],
"engines": {
"node": "^20.18.0",
"vscode": "^1.84.0"
},
"activationEvents": [
"onStartupFinished"
],
"main": "./out/main.js",
"contributes": {
"commands": [
{
"category": "BaconLs",
"command": "bacon-ls.restart",
"title": "Restart"
},
{
"category": "BaconLs",
"command": "bacon-ls.run",
"title": "Run check"
}
],
"configuration": {
"type": "object",
"title": "BaconLs",
"properties": {
"bacon-ls.path": {
"scope": "machine-overridable",
"type": "string",
"description": "Path to the `bacon-ls` binary. If empty the bundled binary will be used."
},
"bacon-ls.logLevel": {
"scope": "window",
"type": "string",
"enum": [
"off",
"error",
"warn",
"info",
"debug",
"trace"
],
"default": "off",
"markdownDescription": "Logging level of the language server. Logs will be saved in a file called bacon-ls.log if the level is not 'off'."
},
"bacon_ls.backend": {
"scope": "machine-overridable",
"type": "string",
"enum": [
"cargo",
"bacon"
],
"default": "cargo",
"markdownDescription": "Which backend produces diagnostics. Cannot be changed at runtime — restart the server to switch."
},
"bacon_ls.cargo.command": {
"scope": "machine-overridable",
"type": "string",
"enum": [
"check",
"clippy"
],
"default": "check",
"description": "Cargo backend: which cargo subcommand to run."
},
"bacon_ls.cargo.features": {
"scope": "machine-overridable",
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Cargo backend: list of cargo features (passed as --features a,b,c)."
},
"bacon_ls.cargo.package": {
"scope": "machine-overridable",
"type": [
"string",
"null"
],
"default": null,
"description": "Cargo backend: when set, passed as -p <package> (useful in workspaces)."
},
"bacon_ls.cargo.extraArgs": {
"scope": "machine-overridable",
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "Cargo backend: extra arguments appended verbatim after the cargo subcommand."
},
"bacon_ls.cargo.env": {
"scope": "machine-overridable",
"type": "object",
"additionalProperties": {
"type": "string"
},
"default": {},
"description": "Cargo backend: extra environment variables (string -> string) for the cargo invocation."
},
"bacon_ls.cargo.cancelRunning": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Cargo backend: cancel an in-flight run when a new one is triggered. When false, queue at most one follow-up run."
},
"bacon_ls.cargo.refreshIntervalSeconds": {
"scope": "machine-overridable",
"type": [
"integer",
"null"
],
"default": 5,
"description": "Cargo backend: partial publish interval in seconds. Set to null (or negative) to only publish once cargo has finished."
},
"bacon_ls.cargo.separateChildDiagnostics": {
"scope": "machine-overridable",
"type": [
"boolean",
"null"
],
"default": null,
"description": "Cargo backend: override 'related information' support. null = follow client capability; true = always emit children as standalone diagnostics; false = always nest them."
},
"bacon_ls.cargo.checkOnSave": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Cargo backend: trigger cargo on file save."
},
"bacon_ls.cargo.clearDiagnosticsOnCheck": {
"scope": "machine-overridable",
"type": "boolean",
"default": false,
"description": "Cargo backend: clear existing diagnostics before each run."
},
"bacon_ls.bacon.locationsFile": {
"scope": "machine-overridable",
"type": "string",
"default": ".bacon-locations",
"description": "Bacon backend: bacon export file to read."
},
"bacon_ls.bacon.runInBackground": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Bacon backend: start bacon automatically and tear it down on shutdown."
},
"bacon_ls.bacon.runInBackgroundCommand": {
"scope": "machine-overridable",
"type": "string",
"default": "bacon",
"description": "Bacon backend: command used to start bacon in the background."
},
"bacon_ls.bacon.runInBackgroundCommandArguments": {
"scope": "machine-overridable",
"type": "string",
"default": "--headless -j bacon-ls",
"description": "Bacon backend: command-line arguments passed to the background bacon process."
},
"bacon_ls.bacon.validatePreferences": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Bacon backend: verify that bacon preferences contain a working bacon-ls job and matching export configuration."
},
"bacon_ls.bacon.createPreferencesFile": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Bacon backend: when validation finds no preferences file, generate one with the bacon-ls job and export defined."
},
"bacon_ls.bacon.synchronizeAllOpenFilesWaitMillis": {
"scope": "machine-overridable",
"type": "integer",
"default": 2000,
"description": "Bacon backend: how often (in ms) the background loop re-publishes diagnostics for every open file."
},
"bacon_ls.bacon.updateOnSave": {
"scope": "machine-overridable",
"type": "boolean",
"default": true,
"description": "Bacon backend: re-publish diagnostics on file save."
},
"bacon_ls.bacon.updateOnSaveWaitMillis": {
"scope": "machine-overridable",
"type": "integer",
"default": 1000,
"description": "Bacon backend: delay in ms before reading the locations file after a save."
}
}
}
},
"scripts": {
"vscode:prepublish": "npm run esbuild-base -- --minify",
"package": "vsce package",
"esbuild-base": "esbuild ./vscode/extension.ts --bundle --outfile=out/main.js --external:vscode --format=cjs --platform=node",
"build": "npm run esbuild-base -- --sourcemap",
"watch": "npm run esbuild-base -- --sourcemap --watch",
"lint": "prettier --check . && eslint",
"fix": "prettier --write . && eslint --fix",
"pretest": "tsc && npm run build",
"test": "cross-env BACON_LS_PATH=$PWD/target/debug/bacon-ls node ./out/test/runTest.js"
},
"devDependencies": {
"@stylistic/eslint-plugin": "^5.10.0",
"@types/glob": "^9.0.0",
"@types/mocha": "^10.0.10",
"@types/node": "25.x",
"@types/vscode": "^1.84.0",
"@typescript-eslint/eslint-plugin": "^8.58.0",
"@typescript-eslint/parser": "^8.31.1",
"@vscode/test-electron": "^2.5.2",
"@vscode/vsce": "^3.7.1",
"cross-env": "^10.1.0",
"esbuild": "^0.27.4",
"eslint": "^10.1.0",
"glob": "^13.0.6",
"mocha": "^11.7.5",
"ovsx": "^0.10.10",
"prettier": "^3.8.1",
"typescript": "^6.0.2"
},
"dependencies": {
"vscode-languageclient": "^9.0.1"
}
}