Editors for developing Fuchsia

Fuchsia recommends that you use an IDE (integrated development environment) to develop Fuchsia and to build software on Fuchsia. An IDE consolidates multiple tools in a single GUI to help you develop.

VS Code

To get started with VS Code, install VS Code.

Configuration

Once you have installed VS Code, you should configure the IDE. Depending on your development setup, consider the following guides:

  • Configuring remote workspaces: This guide is recommended if you are developing on a virtual machine, container, or an environment with a running SSH server.
  • Configuring file reloading: This guide is recommended if you are developing Fuchsia in the source tree. As Fuchsia has a large code base, you may want to exclude some directories from being watched for file changes.

fuchsia.code-workspace

This file in the root directory of fuchsia.git contains recommended configuration defaults for using VS Code on Fuchsia. If you use this workspace file (either with File > Open Workspace from File or opening the file in an editor pane and clicking the Open Workspace button that pops up) it will prompt you to install some recommended extensions if you don't already have them, and it will set configuration options that are useful or necessary to use those extensions on Fuchsia.

Note that these settings override ones in your user configuration, if you'd like to edit the values set in fuchsia.code-workpace you'll have to put them in the workspace-folder settings in fuchsia/.vscode/settings.json.

Extensions

VS Code supports a large amount of extensions which can help you customize your IDE. Fuchsia has developed several extensions that are specific for developing the Fuchsia platform and for developing on Fuchsia with the SDK.

  • Fuchsia extension for VS Code: This extension integrates key Fuchsia-specific functionality into VS Code such as connecting, debugging, analyzing logs for Fuchsia devices, and functionality to help you edit and debug code as you develop for Fuchsia.
  • Additional Fuchsia extensions: This guide lists additional Fuchsia extensions that may help you as you contribute to Fuchsia.

Other editors

These guides describe configurations and best practices of other editors and IDE configurations for Fuchsia development.

YouCompleteMe integration

YouCompleteMe is a semantic code-completion engine. YouCompleteMe works natively with Vim but it can also be integrated with other editors through ycmd.

For installation and usage information see YouCompleteMe integration

Vim configuration

The fuchsia.vim script sets up Vim to do the following:

  • Set paths so that :find and gf know how to find files.
  • Enable FIDL syntax highlighting (using /tools/fidl/editors/vim/).
  • Integrate basic build system so that :make builds and populates the QuickFix window.
  • Configure YouCompleteMe (YCM) to provide error checking, code completion, and source navigation within the Fuchsia tree.

For installation and usage information see Vim tools for Fuchsia development

Sublime Text Configuration

Each language may have extra configuration. See more for

Kakoune configuration

For installation and usage information see [Kakoune for Fuchsia development][#kakoune].