There is no GNU Emacs convention wrt case for Emacs-Lisp function and variable names. (There can be any number of such "conventions" that anyone could come up with, of course.)
The "Emacs Lisp Style Guide" that you reference is just one person's proposed guidelines.
A (very) few longstanding libraries distributed with Emacs do use two styles that you mentioned: Some names are title-case (capitalized) and some are lowercase.
In some cases, at least originally, a distinction was made between names of commands and customizable variables intended forthat it is expected might be typed by users to type(e.g., for
M-x
orC-h f
), and names of non-interactive functions and variables intendedthat are expected to be bound toinvoked mainly by keys or invoked from Lisp code. ButBut this has not been adopted/respected generally, and it has not always been implemented consistently. It typically applies to particular modes (e.g.
Info-mode
) where there are lots of commands that a user is not expected to input by name.For example, the commands in
buff-menu.el
that are expected to be invoked mainly byM-x
are lowercase (for typing convenience), and the commands that are bound to keys in the buffer-list display are capitalized, as are other objects in the library (variables, non-interactive functions, etc.). Someone thought this wasSuch libraries are a great idea at one point, and it has remained in place insmall minority (hence the doc says that libraryusually function and variable names are lowercase). But such librariesthe logic behind this design by RMS 30 years ago is still valid today. The idea is to simplify choices (and typing) for commands that you might invoke using
M-x
, by excluding commands that are useful only in a small minorityparticular buffer and are bound to keys there. SoInfo-prev-reference
(bound toC-M-i
in Info), butinfo-apropos
(useful outside Info).Generally,Usually it makes sense to use all lowercase, especially for names that a user will type (e.g., to
M-x
, as input). It's It's just easier that way. And in practice most names are in fact lowercase.
UseBut you can use whatever you want. Use whatever you feel is most convenient for your use cases. It is the particular context that should guide you.
If it is important for your use case to distinguish command Abc
from command abc
, go for it. This is Lisp. You can have command, variable, face,.. whatever names that start with digits, symbols (e.g. >
), etc. - pretty much any chars you like.
If you want to keep things simple for most users who might type a name using a common keyboard, then you might want to stick with lowercase a
to z
plus digits and hyphen (-
) instead of underscore (_
), to obviate their needing to use the Shift key. But it's really up to you.