--Hi Chromium developers,
We are sharing a GN Language Server designed to assist with the GN build system in projects like Chromium and Fuchsia.While there are other GN integrations available, this tool is specifically optimized for large-scale codebases. Unlike tools limited to single-file analysis, it provides workspace-wide symbol resolution and dependency tracking to better support the complex development workflows in the Chromium environment.With the recent v1.10.0 release, the server includes the following features:
FeaturesNew in v1.10.0
- Enhanced Syntax Highlighting: Provides clear visual structure, including recognition of string interpolation.
- User-defined Variable/Template Support: Context-aware completion and hover documentation for both built-in and user-defined variables and templates.
- Cross-file References: Support for "Go to definition," finding references, and following imports or dependencies across the entire project.
- Sticky Scroll: Keeps block headers (such as target names or if conditions) visible at the top of the editor while you navigate through large files.
- Outline: Offers a structured, hierarchical view of targets and blocks for easier navigation within a file.
- Code Folding: Allows collapsing sections of code to help manage visibility in complex GN files.
- Error Reporting: Real-time syntax error reporting to catch issues before build time.
Installation
- Workspace Symbol Completion with Auto-imports: Support for auto-importing variables and templates during completion, with suggestions pulled from across the workspace.
- Undefined Variable Analysis: Highlights undefined variables to catch potential configuration errors early.
- Code Lens: Displays reference information and quick actions directly above target definitions.
- JetBrains IDE Support: A dedicated plugin is now available for IntelliJ, CLion, Android Studio, and other JetBrains IDEs.
Search for "GN Language" (publisher: Google) in the VSCode marketplace or the JetBrains marketplace. For other environments, you can install the server via Cargo: cargo install gn-language-server.We welcome your feedback, feature requests, and bug reports on our GitHub repository: https://github.com/google/gn-language-server.
Best regards,Shuhei / nya--Shuhei Takahashi a.k.a nya <n...@chromium.org>
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CANf5rkshP9xi4hjCujz0hisF_VgQfvMWqQwmVZkdtnwYg0oNfw%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to gn-dev+un...@chromium.org.
I've been using it in Emacs via eglot for quite some time and it is a real boon for everyone working in GN code. I think a few of the fancier features are only really available in VSCode and not in other LSP clients, but what I get even in the older version posted months ago is pretty great. I'll have to find where I put it and upgrade to the new version!
You are posting to a group that does not belong to your organization."