UPDATE: Versi pretest yang saya taruh di sana dalam pertanyaan asli ( emacs-26.0.90.tar.gz
) memiliki bug yang menyebabkan loop infinity tertentu saat mengurai buffer, khususnya ketika menggunakan <
token dalam konteks certaing, seperti menulis <
sebagai karakter pertama dari buffer kosong di Jawa atau C ++ atau setelah kata kunci template
. Bug telah diperbaiki di emacs-26
cabang, jadi itulah yang harus Anda unduh.
Butuh banyak bagi saya untuk menemukan jawaban dan belajar bagaimana properti menyesuaikan perilaku dalam bahasa elisp tetapi, cara untuk memperbaikinya adalah dengan mengatakan cc-mode
bahwa itu constexpr
adalah "nama kebisingan", yang berarti bahwa itu akan diperlakukan sebagai spasi putih dan karenanya diabaikan oleh pengurai.
Masalahnya adalah bahwa dalam rilis stabil terakhir emacs (25,3), fitur menambahkan kata-kata kebisingan tidak ditambahkan, bahkan ketika itu ada di repo sejak Februari 2016, jadi Anda harus mengunduh versi non-rilis.
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
Dan kemudian, misalnya di akhir .emacs
file, tambahkan:
; Load the mode before-hand to make the symbols visible
(require 'cc-mode)
(custom-set-variables '(c-noise-macro-names '("constexpr")))