Saya telah menggunakan Emacs selama beberapa tahun sekarang, tetapi saya baru-baru ini tersandung standar pengkodean . Di sana dinyatakan:
Jangan biasakan memasang tanda kurung dekat sendiri; Pemrogram yang lalai menemukan hal yang membingungkan ini.
Ini adalah kebiasaan yang saya bangun, karena saya menemukan kode lebih mudah dibaca. Saya melihat gaya campuran dalam paket yang dikirimkan bersama Emacs. Pertanyaan saya adalah apakah kebingungan ini umum bagi kebanyakan programmer elisp.
Sunting: Melihat kode saya, saya tidak sepenuhnya mengikuti ini. Maka kodenya akan sangat mengerikan. Sebagian besar defun, let, if dan sebagainya. Tapi, sepertinya itu bertentangan dengan keinginan, jadi saya mungkin harus berhenti melakukan ini. Sorakan untuk input.
(Pendapat Borderline berdasarkan, tetapi tampaknya terkait dengan penutupan kawat gigi di C ++, di mana seharusnya tidak kontroversial untuk menyatakan bahwa mereka umumnya harus pada jalur mereka sendiri).
sumber
ag
sumber lisp memberi saya 3414 kandidat untuk^\s*?\)$
regex yang terdiri dari 468 file yang milik sekitar 200 paket?.el
file memiliki kurang dari 10 contoh ini. Berarti file-file ini tidak mengadopsinya sebagai gaya, mereka hanya menggunakannya di beberapa lokasi yang nyaman (seperti untuk menyelesaikan fungsi yang sangat panjang).Jawaban:
Nah sebuah jawaban singkat adalah "tidak perlu". Karena Emacs dapat mem-parsing ekspresi s dari LISP, ia tahu persis di mana form menyeimbangkan dan dapat indentasi ulang kode dengan benar. Dalam hal ini, memindahkan braket ke jalurnya sendiri hanya membuang satu baris ruang tambahan dan pada saat yang sama tidak-idomatis dan menggelegar bagi programmer LISP lain yang terbiasa dengan gaya kanonik. Seperti yang telah disebutkan dalam komentar, ini tidak menghalangi Anda untuk menggunakan spasi putih vertikal untuk memisahkan potongan kode secara visual.
Dalam prakteknya banyak Emacs menggunakan programmer LISP menggunakan berbagai isyarat visual tambahan seperti show-paren-mode yang membantu menavigasi melalui sarang kurung tutup padat. Para insinyur yang telah memasukkan modul-modul seperti paredit dan smart-parens ke dalam siklus pengeditan mereka telah menjadi satu dengan AST dan hanya memanipulasi strukturnya secara langsung sehingga ekspresi selalu seimbang dan lengkap.
sumber
Panduan Gaya Lisp Riastradh menguraikan sedikit lebih banyak tentang topik khusus ini. Walaupun ia umumnya tidak menyarankan untuk menempatkan tanda kurung penutup pada baris mereka sendiri, ia mengenali beberapa pengecualian, seperti baris sebelumnya dengan paren penutup sedang dikomentari dan daftar yang sangat panjang yang jika tidak akan terus-menerus mengacaukan perbedaan ketika menambahkan elemen baru di awal atau akhir mereka. .
sumber
Saya sudah menulis Elisp selama sekitar 2-3 tahun sekarang. Pada awalnya, saya melakukan hal menggantung parens, tetapi karena saya telah menemukan aturan yang Anda sebutkan, saya mulai melakukannya sendiri. Dan saya dapat mengatakan sekarang bahwa lebih mudah untuk membaca kode ketika itu ditata dengan benar.
Saya bahkan menulis beberapa kode prettifying LISP di sini: lispy-tab .
Dan, tentu saja, saya miliki
show-paren-mode
sepanjang waktu.sumber