When I first tried to add something to the C++ code, I was a bit overwhelmed by all the special types and abstractions. The info added will hopefully make it a bit easier to start, by directing users to the right place.
1.5 KiB
Coding style
C++ and Python
For C++ and Python, we just follow Chromium's Coding
Style, there is also a
script script/cpplint.py
to check whether all files confirm.
The python's version we are using now is Python 2.7.
The C++ code uses a lot of Chromium's abstractions and types, so it's recommended to get acquainted with them. A good place to start is Chromium's [Important Abstractions and Data Structures] (https://www.chromium.org/developers/coding-style/important-abstractions-and-data-structures) document. The document mentions some special types, scoped types (that automatically release their memory when going out of scope), logging mechanisms etc.
CoffeeScript
For CoffeeScript, we follow GitHub's Style Guide, and also following rules:
- Files should NOT end with new line, because we want to match Google's styles.
- File names should be concatenated with
-
instead of_
, e.g.file-name.coffee
rather thanfile_name.coffee
, because in github/atom module names are usually in themodule-name
form, this rule only applies to.coffee
files.
API Names
When creating a new API, we should prefer getters and setters instead of
jQuery's one-function style, for example, .getText()
and .setText(text)
are preferred to .text([text])
. There is a
discussion of this.