更新:元の質問(emacs-26.0.90.tar.gz
)でそこに置いたそのプレテストバージョンには、特にJavaの空のバッファーの最初の文字として<
書き込むなど、特定のコンテキストでトークンを使用するときに、バッファーの解析中に特定の無限ループを引き起こすバグがあり<
ましたまたはC ++またはキーワードの後template
。emacs-26
ブランチでバグが修正されているため、代わりにダウンロードする必要があります。
答えを見つけ、elisp言語で動作をプロパティカスタマイズする方法を学ぶのに多くの時間を要しましたが、それを修正する方法は、「ノイズ名」であることを伝えるcc-mode
ことconstexpr
です。つまり、次のように扱われます。空白なので、パーサーによって無視されます。
emacsの最後の安定版リリース(25.3)では、2016年2月以降のリポジトリにある場合でもノイズワードを追加する機能が追加されないため、非リリースバージョンをダウンロードする必要があります。
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
次に、たとえば.emacs
ファイルの最後に、次の行を追加します。
; Load the mode before-hand to make the symbols visible
(require 'cc-mode)
(custom-set-variables '(c-noise-macro-names '("constexpr")))