The following VS Code extensions may provide a productive development environment for Fuchsia:
Official Fuchsia-specific extensions
Fuchsia-specific extensions provide support for working with Fuchsia software and systems. These extensions are currently supported by the Fuchsia project.
Fuchsia extension for VS Code
The Fuchsia extension for VS Code provides support for debugging Fuchsia devices, logging, and syntax highlighting. This extension is Fuchsia’s official extension and can be used with the source tree and the SDK. For more information see the Fuchsia developer extension page.
Community contributed extensions
These extensions are developed by Fuchsia contributors. Extensions listed are unsupported and could conflict with the official Fuchsia developer extension. It is recommended to use the Fuchsia developer extension.
Fuchsia.git Helper adds an "Open in...", which allows you to open a file in OSS Code Search.
To use this extension:
- Right click a file in the file editor.
- Select Open in OSS Code Search.
FuchsiAware assists with browsing Fuchsia artifacts, such as by linking from component URLs to component manifests.
Build system extensions
GN adds syntax highlighting for GN files.
GNFormat provides GN file formatting.
You may need to configure GNFormat with the file path to your GN binary and buildtools. Do the following:
- In VS Code, launch Quick Open by running
CMD/CTRL + P.
settingsin the search field.
- Click Preferences: Open Settings (JSON).
- Add the following configuration and restart VS Code:
"gnformat.path.gn": "FILE_PATH", "gnformat.path.buildtools": "BUILD_TOOLS_PATH"
General workflow extensions
General workflow extensions provide an overall productive workflow when working with Fuchsia.
GitLens provides highly customizable insights of git history, which allows you to see code evolution.
Language specific extensions
FIDL language support
rust-analyzer with VS Code, Fuchsia recommends:
fuchsia.code-workspace configuration file
will set recommended defaults for using rust-analyzer on Fuchsia. If you
aren't using the workspace file, here are some settings you may want to add
// disable cargo check on save "rust-analyzer.checkOnSave.enable": false, "rust-analyzer.checkOnSave.allTargets": false, // workaround for https://fxbug.dev/102739 // needed if you see errors about extension host crashing "rust-analyzer.files.watcher": "server",
Additionally, you may want to configure smaller tooltips and hide parameter hints to optimize your workspace:
// optional: only show summary docs for functions (keeps tooltips small) "rust-analyzer.callInfo.full": false, // optional: don't activate parameterHints automatically "editor.parameterHints.enabled": false,
rust-analyzer extension relies on the
rustup installer to invoke
a tool for formatting Rust code according to style guidelines.
rustup with your Fuchsia source code, run:
rustup toolchain link fuchsia FUCHSIA_DIR/prebuilt/third_party/rust/HOST_OS
rust-analyzer extension supports additional configuration
with Fuchsia's Rust style guide,
Add the following snippet to your
settings.json using the same steps
from Configuring workflow:
// use fuchsia toolchain and fuchsia's rules for rustfmt: "rust-analyzer.rustfmt.extraArgs": [ "+fuchsia", "--config-path=FUCHSIA_DIR/rustfmt.toml" ],
Fuchsia SDK extensions