Saya mencari cara sederhana untuk membuat emacs mengingat variabel yang dideklarasikan dalam satu fungsi di C / C ++. Dengan "sederhana", maksud saya tanpa paket eksternal, hanya dengan beberapa baris elisp dalam file konfigurasi.
Konfigurasi default Emacs saya memengaruhi nama-nama variabel dengan warna kuning pada saat deklarasi, tetapi membiarkannya putih saat digunakan.
char toto; // 'char' is green, 'toto' is yellow
toto = 42; // 'toto' is white
Saya ingin membuat setiap "toto" dengan fungsi / lingkup yang sama berwarna kuning juga.
Saya sudah melihat pertanyaan ini tetapi saya ingin sesuatu yang lebih sederhana. Saya juga mencoba melakukan sesuatu dengan mode font-lock , tetapi saya tidak berhasil membuat sesuatu yang dapat disesuaikan dengan nama variabel.
Saya sudah punya ide untuk nama anggota kelas C ++ (menggunakan pola nama), jadi saya hanya ingin pencocokan variabel lokal di sini.
color-identifiers-mode
paket . (Posting ini sebagai komentar karena Anda mengatakan Anda tidak ingin mempertimbangkan paket eksternal.)Jawaban:
Anda dapat mengumpulkan regexp untuk skema variabel Anda, sesuatu yang cocok (pseudo regexp code)
[char|other|types] [a-z];
dan[a-z] =*;
dan menambahkannya ke daftar kata kunci font-lock untuk mode Anda; Dari manual di halaman Kustomisasi-Kata Kunci :sumber