Kami sudah memiliki pertanyaan tentang alat yang berguna khusus untuk pengujian , tetapi bagaimana dengan benar-benar menulis kode? Paket mana yang Anda temukan mempercepat pengembangan Anda? Bantuan apa yang Anda gunakan untuk menavigasi dan memahami proyek Anda dengan cepat dan mudah?
elisp
interactive-development
package-development
Sean Allred
sumber
sumber
multiple-cursors
, orang lain mungkin lebih sukavisual-regexp
atau ag / ack / grep dari baris perintah atau dari dalam emacs atau emacs inbuiltquery-replace
atauquery-replace-regexp
atau sesuatu yang lain. Argumen serupa dapat dibuat untuk setiap paket. Alih-alih, pertanyaan yang bagus adalah menanyakan bagaimana melakukan sesuatu yang spesifik dalam "pengembangan paket".multiple-cursors
, misalnya, berguna di mana-mana, tetapi mungkin ada paket lain yang menghargai pelingkupan eksplisit lisp. Tentunyamacrostep
danielm
tidak berlaku di tempat lain. Bawa ini pada meta, mungkin?ido
,helm
,ibuffer
,tabbar
-Saya tidak berpikir-akan menjadi entri yang sesuai. Tidak ada yang benar-benar membuat pengembangan elisp lebih mudah. Mereka tentu saja paket yang fantastis, tetapi (menurut pengalaman saya) mereka tidak memiliki apa pun untuk ditambahkan ke pengembangan elisp .etags
—Sementara aku tidak terbiasa dengannya, sepertinya itu akan tepat. Mungkin CW lain cocok untuk paket-paket lain ini (karena mereka benar-benar pantas disebutkan), tetapi saya khawatir bahwa ketakutan Anda untuk pertanyaan ini pasti akan terwujud dalam paket itu.Jawaban:
Penulisan
edebug
: Debugging langkah-demi-langkah dari kode Elisp.checkdoc
: Pelajari tentang kesalahan gaya dalam komentar dan dokumen Anda.elint
: Linter untuk Emacs Lisp.paredit
: Memanipulasi kode pelat sebagai pohon, bukan garis. Tidak pernah memiliki tanda kurung yang tidak seimbang.lispy
: alternatif / superset seperti viparedit
. Selain itu termasuk cara pintas untuk garis besar, penyempitan, edebug, ediff, semantik, mode ace-jump, multiple-cursors, cider, slime dan geiser.multiple-cursors
: Secara bersamaan mengedit beberapa ekspresi serupa. Mengetahui hal-hal lain, berguna untuk refactoring kode.erefactor
: Kode refactoring.redshank
: Perpustakaan refactoring lain (dirancang untuk Common Lisp, tetapi berfungsi baik dengan Emacs Lisp).macrostep
: Ekspansi makro in-buffer interaktif.yasnippet
: Cuplikan kode untuk ekspansi cepat idiom berulang (contoh di sini )Navigasi
speedbar
: Speedbar adalah cara terbaik untuk menavigasi proyek Anda. Ia mengenali 'tag' sebagaidefun
s dandefvar
s (dan sejenisnya) dan memberikan bookmark yang terlihat sebagai garis besar.outlined-elisp-mode
: Kumpulan pengaturan untukoutline
mode minor untuk buffer Elisp.elisp-slime-nav
: Lompatan instan ke definisi fungsi dan variabel denganM-.
.Pembuatan profil
elp
: Frontend interaktif untuk Emacs Lisp Profiler, berguna untuk mengeksplorasi apa yang sebenarnya lambat dalam fungsi profil Anda dan bagaimana ia berinteraksi dengan sisa Emacs.Pengelolaan
names
: Menyediakan makro untuk membuat ruang namaKontrol versi
Git
dan Emacs front-endMagit
: sistem kontrol versi terbaik dan Emacs yang dipikirkan dengan sangat baik untuknya.Lain-lain
ielm
: REPL interaktifsumber