ACTUALIZACIÓN: Esa versión de prueba previa que puse allí en la pregunta original ( emacs-26.0.90.tar.gz
) tenía un error que causaba ciertos bucles infinitos al analizar el búfer, específicamente al usar el <
token en contextos determinados, como escribir <
como el primer carácter de un búfer vacío en Java o C ++ o después de la palabra clave template
. El error se ha corregido en la emacs-26
rama, por lo que es lo que debe descargar en su lugar.
Tomó mucho para mí para encontrar la respuesta y aprender a la propiedad personalizar el comportamiento en el idioma elisp pero, una forma de fijación que está diciendo a la cc-mode
que constexpr
es un "nombre de ruido", lo que significa que va a ser tratada como un espacio en blanco y por lo tanto ignorado por el analizador.
Lo que pasa es que en la última versión estable de emacs (25.3), la característica de agregar palabras irrelevantes no se agrega, incluso cuando está en el repositorio desde febrero de 2016, por lo que debe descargar la versión sin lanzamiento.
cd tmp_folder_of_your_choice
sudo apt-get install build-essential # if you don't have it yet
sudo apt-get build-dep emacs24 # get all dependancies to build emacs
# Not this: wget https://github.com/emacs-mirror/emacs/archive/emacs-26.0.90.tar.gz
wget -O emacs-26.zip https://github.com/emacs-mirror/emacs/archive/e8636ac8cc96e1e7e948f04091792da09dafcc76.zip
# or just the last version of the branch, but the exact version I have is the one above
# wget https://github.com/emacs-mirror/emacs/archive/emacs-26.zip
unzip emacs-26.zip
cd emacs-emacs-26
./autogen.sh
./configure
make
sudo make install
emacs ~/.emacs
Y luego, por ejemplo al final del .emacs
archivo, agregue:
; Load the mode before-hand to make the symbols visible
(require 'cc-mode)
(custom-set-variables '(c-noise-macro-names '("constexpr")))