Tools used
To help acquaint you with ChromeOS development, here are a list of the tools used by the System Services team.
Text editors / IDEs
Chromium
Unfortunately, as of Jan 2023, there is no IDE that supports Chromium C++. However, the text editors described below have some support for niceties like auto-complete and references. Pick whichever editor you prefer.
VSCode
- go/vscode
- go/vscode/remote_development_via_web (Nicer than using Chrome Remote Desktop when working remotely)
- External site
Sublime Text
Briefly look over go/sublime for instructions on how to install a licensed Sublime, but do not read further in its setup instructions. Instead, read Using Sublime Text as your IDE. This document is critical to follow if you wish to use Sublime, because without it, Sublime will unnecessarily search over thousands of Chrome build artifacts and run painfully slow.
vim
- go/vim
- External site
Emacs
- go/emacs
- External site
ChromiumOS
See go/cros-ide.
Google3: Cider
You can use Cider-V for editing G3 code such as G3Docs and Finch configs. It cannot be used for Chromium/ChromiumOS development.
Useful Chrome extensions
Most of your work outside of developing will be done in the Chrome browser. go/useful-internal-chrome-extensions contains a curated list of chrome extensions to improve your productivity. Here are a few that are recommended:
- go/cs-rainbow-blame color-codes the blame layer in Chromium CodeSearch.
- Gerrit Monitor notifies you when your action is required on a Gerrit CL.
- go/get-gvc-labs Adds helpful tools to Meet, including Meetmoji reactions and speaking time.
- G3 Notifications notifies you when your action is required on a Buganizer issue or a Critique CL.
- go/kodify allows you to beautifully format code blocks in your design docs.
- go/snipit allows you to easily share screenshots for debugging or other purposes.
- Chromium CL Finder shows the first landed version on Gerrit for Chromium CLs. See Understanding ChromeOS Releases for why you'd want to use this.
- Linkable provides alternate, short-form URLs to easily use in emails, bugs, or documents.
- Don't Be Late automatically opens Google Meet rooms in a new tab when it starts.
Also check out go/lifehacks for 250 life hacks for your work and personal life!
Tip: You can shorten links to Gerrit CLs with crrev/c/{id}, to Critique CLs with cl/{id}, and Buganizer issues with b/{id}!
Working from home
Check out the go/newtochrome-wfh-tips doc for tons of WFH tips and a bushel of useful go/ links!
Most developers on the team connect to their build machines over go/crd and run their editors on their build machines.
Another option to CRD is to connect to your build machine using the "Secure Shell App." Then you can use terminal multiplexer and a terminal-based editor, you can get 99% of the same functionality with lower bandwidth requirements.
2 developers run VSCode on their local laptops and remotely connecting to their workstations from VSCode itself (this approach does not work from a Chromebook as the system permissions don't allow it).
Terminal multiplexers
These tools allow you to switch between multiple programs in one terminal.