Coding Style
You can run to show any style issues detected by cpplint
and
eslint
.
- End files with a newline.
- Place requires in the following order:
- Built in Node Modules (such as
path
) - Built in Electron Modules (such as
ipc
,app
)
- Built in Node Modules (such as
- Place class properties in the following order:
- Class methods and properties (methods starting with a
@
) - Instance methods and properties
- Class methods and properties (methods starting with a
- Avoid platform-dependent code:
- Use
path.join()
to concatenate filenames. - Use
os.tmpdir()
rather than/tmp
when you need to reference the temporary directory.
- Use
- Using a plain
return
when returning explicitly at the end of a function.- Not
return null
,return undefined
, orundefined
- Not
The Python version we are using now is Python 2.7.
- Write remark markdown style.
You can run npm run lint-docs
to ensure that your documentation changes are
formatted correctly.
- File names should be concatenated with
-
instead of_
, e.g.file-name.js
rather thanfile_name.js
, because in 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 constants. If the value is a primitive, use uppercase naming (egconst NUMBER_OF_RETRIES = 5
).- for defining variables
- Arrow functions instead of
-
instead of string concatenation using
+
- When the module itself is a class like
BrowserWindow
, usePascalCase
. - When the module is a set of APIs, like
globalShortcut
, usecamelCase
. - When the API is a property of object, and it is complex enough to be in a
separate chapter like
win.webContents
, usemixedCase
.
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.