2.4 KiB
2.4 KiB
Spacemacs conventions
Table of Contents
Code guidelines
Spacemacs core and layer
Function names follow these conventions:
spacemacs/xxx
is an interactive function calledxxx
spacemacs//xxx
is a private function calledxxx
(implementation details)spacemacs|xxx
is a macro calledxxx
Variables follow these conventions:
spacemacs-xxx
is a variablespacemacs--xxx
is a private variable (implementation details)
All layers
A package is initialized in a function with name <layer>/init-xxx
where:
<layer>
is the layer namexxx
is the package name
Key bindings conventions
Prefix reserved to the user
<SPC> o
must not be used by any layer. It is reserved for the user.
Navigation in insert state
buffers
Navigation in buffers like Helm
and ido
which are in insert state
should
be performed with C-j and C-k for vertical movements.
History navigation in shells or REPLs buffers should be bound as well to C-j and C-k.
Interactions with REPLs
A lot of languages can interact with a REPL. To help keeping a consistent behavior between those languages the following conventions should be followed:
- lower case key bindings keep the focus on the current buffer
- upper case key bindings move the focus to the REPL buffer
Key Description b evaluate buffer B evaluate buffer and switch to REPL f evaluate function F evaluate function and switch to REPL l evaluate line L evaluate line and switch to REPL r evaluate region R evaluate region and switch to REPL