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
andgf
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].