mirror of
https://github.com/google/gn-language-server.git
synced 2025-12-23 12:26:43 +00:00
A language server for GN, and a tiny VSCode extension wrapping the server.
| .github/workflows | ||
| docs/screenshots | ||
| intellij-gn | ||
| scripts | ||
| src | ||
| testdata/workspaces | ||
| third_party/gradle-wrapper | ||
| vscode-gn | ||
| .clippy.toml | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| deny.toml | ||
| LICENSE | ||
| README.md | ||
GN Language Server
A language server for GN, the build configuration language used in Chromium, Fuchsia, and other projects.
Features
- Syntax highlighting
- Syntax error reporting
- Context-aware completion and auto-import
- Hover documentation
- Go to definition
- Finding target references
- Following imports
- Following dependencies
- Quick fix
- Sticky scroll with useful lines
- Code lens
- Outline
- Code folding
- Formatting
- Go to the nearest
BUILD.gn(VSCode only)
Installing
VSCode
You can install from the official VSCode marketplace or the OpenVSX marketplace. Search for "GN Language" in the VSCode's extension window.
Other Editors/IDEs
You can install the language server with Cargo.
cargo install gn-language-server
Gallery
Syntax highlighting
Completion and auto-import
Hover documentation
Go to definition
Following imports
Following dependencies
Quick fix
Sticky scroll with useful lines
Code lens
Outline
Code folding
Building from source
Language server binary
cargo build --release
VSCode extension
cd vscode-gn
npm install
npm run build
npm run package
Versioning scheme
We use the versioning scheme recommended by the VSCode's official documentation. That is:
- Pre-release versions are
1.<odd>.x - Release versions are
1.<even>.x
Architecture
For an overview of the project's architecture, see ARCHITECTURE.md.
Disclaimer
This is not an officially supported Google product. This project is not eligible for the Google Open Source Software Vulnerability Rewards Program.











