Posted on 9 January 2013
Some commands are not highlighted well in AUCTEX; these commands are
commands which AUCTEX does not know about. To do highlighting
correctly, AUCTEX needs to know the number and type of arguments
(e.g. [...]
or {...}
) that a given command takes before it can
highlight the arguments correctly. There is a relatively simple way to
add your own commands with specified arguments, and this chunk of
.emacs code does the job:
This is a simple list of commands and argument specifiers. See the
AUCTEX docs for the full information on these argument
specifiers. However, what if we want to highlight some commands
differently? For example, I use a command \fixme
often to indicate
things which need fixing, and I would like the command and it’s
arguments to be highlighted very obviously in red. Getting the command
highlighted turns out to be fairly easy:
This does not however highlight the argument. To do this, we need to use a relatively complicated thing called a custom keyword class which is buried in the docs. These give you the freedom to customize the rendering of the arguments to any command. The code needed to highlight the arguments to fixme is
This, in conjunction with the previous snippet is sufficient to highlight both the argument and command in a nice obvious red.
Caveat: The use of both of these snippets of code together should probably be considered a hack, as we are giving the same command two “types”, and because warning keywords are not expected to have arguments (they are treated differently from other command types.) This method may not work in other versions of AUCTEX, as I doubt it was designed with this use in mind, but works like a treat for me!! If it breaks in the future, I will remove the former snippet and settle for a red argument.