[TOC]
A typical Atom workflow consists of the following.
- Use
Ctrl-Shift-R
to find a symbol in the.tags
file orCtrl-P
to find a file by name. - Switch between the header and the source using
Alt-O
(Ctrl-Opt-S
on OSX). - While editing,
you-complete-me
package helps with C++ auto-completion and shows compile errors throughlint
package. - Press
Ctrl-Shift-P
and typeformat<Enter>
to format the code. - Select the target to build by pressing
F7
and typing, for example,base_unittests
. - Rebuild again by pressing
F9
.
To setup this workflow, install Atom packages for Chrome development.
$ apm install build-ninja clang-format \
linter linter-cpplint linter-eslint switch-header-source you-complete-me
Install C++ auto-completion engine.
$ git clone https://github.com/Valloric/ycmd.git ~/.ycmd
$ cd ~/.ycmd
$ ./build.py --clang-completer
Install JavaScript linter for Blink layout tests.
$ npm install -g eslint eslint-config-google
Configure the JavaScript linter to use the Google style by default by replacing
the contents of ~/.eslintrc
with the following.
{
"extends": "google",
"env": {
"browser": true
}
}
Configure Atom by replacing the contents of ~/.atom/config.cson
with the
following. Replace <path-of-your-home-dir>
and
<path-of-your-chrome-checkout>
with the actual full paths of your home
directory and chrome checkout. For example, these can be /Users/bob
and
/Users/bob/chrome/src
.
"*":
# Configure ninja builder.
"build-ninja":
ninjaOptions: [
# The number of jobs to use when running ninja. Adjust to taste.
"-j10"
]
subdirs: [
# The location of your build.ninja file.
"out/gn"
]
# Do not auto-format entire files on save.
"clang-format":
formatCOnSave: false
formatCPlusPlusOnSave: false
core:
# Treat .h files as C++.
customFileTypes:
"source.cpp": [
"h"
]
# Don't send metrics if you're working on anything sensitive.
disabledPackages: [
"metrics"
"exception-reporting"
]
# Use spaces instead of tabs.
editor:
tabType: "soft"
# Show lint errors only when you save the file.
linter:
lintOnFly: false
# Configure JavaScript lint.
"linter-eslint":
eslintrcPath: "<path-of-your-home-dir>/.eslintrc"
useGlobalEslint: true
# Don't show ignored files in the project file browser.
"tree-view":
hideIgnoredNames: true
hideVcsIgnoredFiles: true
# Configure C++ autocomplete and lint.
"you-complete-me":
globalExtraConfig: "<path-of-your-chrome-checkout>/tools/vim/chromium.ycm_extra_conf.py"
ycmdPath: "<path-of-your-home-dir>/.ycmd/"
# Java uses 4 space indents and 100 character lines.
".java.source":
editor:
preferredLineLength: 100
tabLength: 4
Atom fuzzy file finder is slow to index all files in Chrome. If you're working
on a project that frequently uses foo
or bar
in files names, you can create
a small .tags
file to efficiently search the symbols within these files. Be
sure to use "Exuberant Ctags."
$ git ls | egrep -i "foo|bar" | ctags -f .tags -L -
Don't create a ctags file for the full Chrome repository, as that would result in ~9GB tag file that will not be usable in Atom.