rainbow-identifiers
rainbow-identifiers copied to clipboard
Rainbow identifier highlighting for Emacs
Rainbow identifiers mode
Rainbow identifiers mode is an Emacs minor mode providing highlighting of identifiers based on their names. Each identifier gets a color based on a hash of its name.
Installation
The package is available in MELPA.
If you have MELPA in package-archives
, use
M-x package-install RET rainbow-identifiers RET
If you don't, open rainbow-identifiers.el
in Emacs and call
package-install-from-buffer
.
Usage
To toggle the mode
M-x rainbow-identifiers-mode
To turn it on automatically in most programming modes:
(add-hook 'prog-mode-hook 'rainbow-identifiers-mode)
Customization
To change the colors, change faces rainbow-identifiers-identifier-<number>
.
To change the number of colors used, change the variable
rainbow-identifiers-face-count
.
Since version 0.1.3 it's possible to change how colors/faces are chosen. By
default the old behavior is used, but it can be changed by setting the variable
rainbow-identifiers-choose-face-function
to a function that takes a hash and
returns a face specifier. Currently there are two such functions predefined:
-
rainbow-identifiers-predefined-choose-face
, the default, old behavior. -
rainbow-identifiers-cie-l*a*b*-choose-face
, will generate colors in the CIE L*a*b* color space without depending on any face. The color generation can be influenced by changing the following variables:-
rainbow-identifiers-cie-l*a*b*-lightness
-
rainbow-identifiers-cie-l*a*b*-saturation
-
rainbow-identifiers-cie-l*a*b*-color-count
-
Since version 0.2 it's possible to allow rainbow-identifiers
to override some
of the highlighting done by the major mode or other minor modes by setting
rainbow-identifiers-faces-to-override
to a list of faces rainbow-identifiers
can override.
Also since version 0.2 it's possible to filter which identifiers are highlighted
by adding functions to the rainbow-identifiers-filter-functions
hook. Only the
identifiers for which all functions in the hook return non-nil are highlighted.