{ "name": "gn", "displayName": "GN Language", "description": "Language server for GN, the build configuration language used in Chromium, Fuchsia, and other projects", "repository": { "type": "git", "url": "https://github.com/google/gn-language-server" }, "version": "1.9.23", "publisher": "Google", "engines": { "vscode": "^1.82.0" }, "categories": [ "Programming Languages" ], "icon": "icons/gn.png", "main": "./dist/extension.js", "activationEvents": [ "workspaceContains:**/BUILD.gn" ], "contributes": { "commands": [ { "command": "gn.openBuildFile", "title": "Open the nearest BUILD.gn", "category": "GN", "icon": { "light": "./icons/gn-light.svg", "dark": "./icons/gn-dark.svg" } } ], "menus": { "editor/title/run": [ { "command": "gn.openBuildFile", "group": "navigation", "when": "gn.inGnWorkspace" } ] }, "languages": [ { "id": "gn", "aliases": [ "GN", "gn" ], "extensions": [ ".gni", ".gn" ], "filenames": [ ".gn" ], "icon": { "light": "./icons/gn.svg", "dark": "./icons/gn.svg" }, "configuration": "./languages/gn.language-configuration.json" } ], "grammars": [ { "language": "gn", "scopeName": "source.gn", "path": "./syntaxes/gn.tmLanguage.json" } ], "configuration": { "title": "GN", "properties": { "gn.binaryPath": { "type": "string", "default": null, "description": "Path to the GN binary. If unset, it is auto-detected." }, "gn.backgroundIndexing": { "type": "boolean", "default": true, "description": "Enables background indexing." }, "gn.errorReporting": { "type": "boolean", "default": true, "description": "Reports syntax/semantic errors." }, "gn.parallelIndexing": { "type": "boolean", "default": true, "description": "Enables parallel background indexing." }, "gn.targetLens": { "type": "boolean", "default": true, "description": "Enables code lens for build targets." }, "gn.workspaceCompletion": { "type": "boolean", "default": true, "description": "Gathers completion items from the workspace. Requires background indexing." }, "gn.trace.server": { "type": "string", "enum": [ "off", "messages", "verbose" ], "default": "off", "description": "Traces the language server communication." } } } }, "scripts": { "build": "rm -rf build && npm run build-extension && npm run build-server", "build-extension": "webpack", "build-server": "cargo build --release && bash -c 'cp ../target/${CARGO_BUILD_TARGET:-.}/release/gn-language-server${APPDATA:+.exe} dist/'", "package": "vsce package", "lint": "gts lint", "fix": "gts fix" }, "dependencies": { "vscode-languageclient": "^9.0.1" }, "devDependencies": { "@types/mocha": "^10.0.10", "@types/node": "20.x", "@types/vscode": "^1.82.0", "@typescript-eslint/eslint-plugin": "^8.17.0", "@typescript-eslint/parser": "^8.17.0", "@vscode/vsce": "^3.2.1", "eslint": "^8.57.1", "gts": "^5.3.1", "ovsx": "^0.10.1", "ts-loader": "^9.5.1", "typescript": "^5.7.2", "webpack": "^5.95.0", "webpack-cli": "^5.1.4" } }