ChromiumIDE quickstart (go/chromiumide-quickstart)

ChromiumIDE (formerly known as CrOS IDE) is a VSCode Extension for Chromium and ChromiumOS development. We currently support only internal developers at Google.

See go/chromiumide for our internal landing page.

Prerequisites (ChromiumOS)

For developing ChromiumOS, you need a ChromiumOS chroot. If you are a new member and don't have it, please follow the ChromiumOS Developer Guide and set up your development environment, so you can enter the chroot via cros_sdk.

In this document, we assume ChromiumOS source code is in ~/chromiumos.

1. Install Visual Studio Code

First, you need to install Visual Studio Code (VSCode) on your client machine.

gLinux

Check if it's already installed by running code in terminal or look for it in the application menu, otherwise:

(outside) $ (cd &&
    sudo glinux-add-repo typescript stable &&
    sudo apt update &&
    sudo apt install code)

Learn more at go/vscode/install#glinux

gMac

Install VSCode from the Software Center or go/mule(sudo mule install visual-studio-code).

ChromeOS

ChromiumIDE supports only platform-specific VSCode, which is not available for ChromeOS. There are two workarounds:

2. (Optional) Connect to your machine via VSCode

If you use remote setup, for example gMac laptop, you will need Remote development extension.

Install Remote development extension on the VSCode. Click the lower left “Open a Remote Window” button and select [Connect to Host...] command (alternatively directly choose this command from the command palette), select your remote machine, and open your working directory under ~/chromiumos/.

3. Install the extension

Open View → Extensions in VSCode (Ctrl+Shift+X), search ChromiumIDE and install it.

4. Open a folder

Finally, open a folder with sources to let ChromiumIDE detect the chroot. Select File → Open Folder..., choose, for example, ~/chromiumos/src/platform2, and you are good to go.

Using ChromiumIDE

Check out go/chromiumide-doc to learn more about features, known issues, and useful tips.

Selected Features

See go/chromiumide-doc for all the features.

Code Completion and Navigation

Code completion in C++ is available in platform2 packages which support USE=compdb_only. Press F12 to Go to Definition, Ctrl+F12 to Go to Implementation, and so on.

Device Management

ChromiumIDE provides a view to manage your test devices. With the built-in VNC client, you can control a device remotely.

Linter Integration

ChromiumIDE exposes lint errors found by cros lint and similar tools in C++, Python, shell, and GN files. We run linters every time a file is saved, and mark errors with squiggly lines in the editor and show them in the Problems box and on mouse hover. This feature brings to your attention errors which block repo upload.

Boards and Packages

ChromiumIDE shows which packages you are working on and lets you run cros_workon start/stop directly from the UI. Access it by clicking on CrOS Development activity bar (Chrome icon). Use +/– buttons to start and stop working on packages.

Code Search

You can easily open the current file in Code Search from the context menu in a text editor. Go to settings to choose whether to chose which instance to use (public, internal, or Gitiles).

Filing bugs

If you find issues or have feature requests, feel free to file bugs at go/chromiumide-new-bug. You can also do it by clicking the feedback button.