These are the style guidelines for coding in Electron.
You can run npm run lint
to show any style issues detected by cpplint
and
eslint
.
For C++ and Python, we follow Chromium's Coding
Style. There is also a
script script/cpplint.py
to check whether all files conform.
The Python 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 document. The document mentions some special types, scoped types (that automatically release their memory when going out of scope), logging mechanisms etc.
- Write standard JavaScript style.
- File names should be concatenated with
-
instead of_
, e.g.file-name.js
rather thanfile_name.js
, because in github/atom module names are usually in themodule-name
form. This rule only applies to.js
files. - Use newer ES6/ES2015 syntax where appropriate
const
for requires and other constantslet
for defining variables- Arrow functions
instead of
function () { }
- Template literals
instead of string concatenation using
+
Electron APIs uses the same capitalization scheme as Node.js:
- When the module itself is a class like
BrowserWindow
, useCamelCase
. - When the module is a set of APIs, like
globalShortcut
, usemixedCase
. - When the API is a property of object, and it is complex enough to be in a
separate chapter like
win.webContents
, usemixedCase
. - For other non-module APIs, use natural titles, like
<webview> Tag
orProcess Object
.
When creating a new API, it is preferred to use 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 on this.