跳转至

{% include "docs/development/editors/vscode/_common/_vscode_header.md" %}

VS Code extensions

The following VS Code extensions may provide a productive development environment for Fuchsia:

Fuchsia-specific extensions

Fuchsia-specific extensions provide support with custom Fuchsia files.

FIDL Language Support

FIDL Language Support{: .external} provides syntax support and LSP-based language features in [FIDL][fidl].

Note: You need to configure Fuchsia environment variables to run this extension. For more information, see [Set up environment variables][set-up-env].

This figure shows syntax highlighting for FIDL files in VS Code.

Fuchsia.git Helper

Fuchsia.git Helper{: .external} adds an "Open in...", which allows you to open a file in OSS Code Search.

To use this extension:

  1. Right click a file in the file editor.
  2. Select Open in OSS Code Search.

This figure shows the VS Code menu to open a file in OSS code search.

FuchsiAware

FuchsiAware{: .external} assists with browsing Fuchsia artifacts, such as by linking from component URLs to component manifests.

This figure shows hyperlinks to fuchsia-pkg urls in VS Code.

General workflow extensions

General workflow extensions provide an overall productive workflow when working with Fuchsia.

GitLens

GitLens{: .external} provides highly customizable insights of git history, which allows you to see code evolution.

This figure shows an overlay of git commit history in VS Code.

GN

GN{: .external} adds syntax highlighting for GN files.

This figure shows syntax highlighting for GN files in VS Code.

GNFormat

GNFormat{: .external} provides GN file formatting.

You may need to configure GNFormat with the file path to your GN binary and buildtools. Do the following:

  1. In VS Code, launch Quick Open by running CMD/CTRL + P.
  2. Type settings in the search field.
  3. Click Preferences: Open Settings (JSON).
  4. Add the following configuration and restart VS Code:
"gnformat.path.gn": "{{ '<var>' }}FILE_PATH{{ '</var>' }}",
"gnformat.path.buildtools": "{{ '<var>' }}BUILD_TOOLS_PATH{{ '</var>' }}"

JSON5

JSON5{: .external} adds syntax highlighting for JSON5 files.

This figure shows syntax highlighting for JSON5 files in VS Code.

Rust-analyzer {#rust-analyzer}

Rust-analyzer{: .external} is a [Language Server Protocol][lsp-definition]{: .external} (LSP) implementation for the Rust language.

Note: If your Fuchsia source is symlinked from another mountpoint, the rust-analyzer extension may not locate the files for analysis. Instead, open the actual file path to the Fuchsia source in VS Code.

To use rust-analyzer with VS Code, Fuchsia recommends:

Configure workflow {#rust-configure-workflow}

After installing rust-analyzer, modify your VS Code's settings.json file:

  1. Press CMD/CTRL + SHIFT + P to open Command Palette.
  2. Type settings in the search field.
  3. Click Preferences: Open Settings (JSON).
  4. In settings.json, paste the following snippets:

Note: If you use VS Code's [remote workspaces][vscode-remote-workspaces], use the settings.json for your remote environment.

  // disable cargo check on save
  "rust-analyzer.checkOnSave.enable": false,
  "rust-analyzer.checkOnSave.allTargets": false,

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,

Enable rustfmt

The rust-analyzer extension relies on the rustup installer to invoke rustfmt, a tool for formatting Rust code according to style guidelines.

To configure rustup with your Fuchsia source code, run:

Note: HOST_OS is linux-x64 on Linux and mac-x64 on macOS.

rustup toolchain link fuchsia {{ '<var>' }}FUCHSIA_DIR{{ '</var>' }}/prebuilt/third_party/rust/{{ '<var>' }}HOST_OS{{ '</var>' }}

After configuring rustup, the rust-analyzer extension supports additional configuration with Fuchsia's Rust style guide, rustfmt.toml.

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= {{ '<var>' }}FUCHSIA_DIR{{ '</var>' }}/rustfmt.toml"
    ],

set-up-env /development/languages/fidl/README.md

vscode-extension-guide https://code.visualstudio.com/Download

supported-rust-analyzer-version https://microsoft.github.io/language-server-protocol/ vscode-remote-workspaces


最后更新: 2022 年 12 月 31 日(Saturday) 21:06 CST