Apa alat yang baik untuk pengembangan paket Emacs? [Tutup]

17

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?

Sean Allred
sumber
3
Pertanyaan ini sangat luas dan terbuka. Banyak paket yang Anda daftarkan dalam jawaban Anda dapat diterapkan pada pengembangan kode apa pun. Juga jawaban itu bisa berisi subset utama dari paket yang terdaftar di manajer paket. Jika Anda suka multiple-cursors, orang lain mungkin lebih suka visual-regexpatau ag / ack / grep dari baris perintah atau dari dalam emacs atau emacs inbuilt query-replaceatau query-replace-regexpatau 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".
Kaushal Modi
@kaushalmodi Ini CW, jadi sebagian niat saya untuk terbuka. Mengajukan pertanyaan spesifik mungkin merupakan cara yang lebih baik untuk membahas hal ini, tetapi pertanyaan ini masih ada sebagai kumpulan dari pertanyaan-pertanyaan itu. Saya mencoba mengarahkan pertanyaan secara khusus pada alat-alat yang membantu dengan pengembangan lisps dan emacs - multiple-cursors, misalnya, berguna di mana-mana, tetapi mungkin ada paket lain yang menghargai pelingkupan eksplisit lisp. Tentunya macrostepdan ielmtidak berlaku di tempat lain. Bawa ini pada meta, mungkin?
Sean Allred
@kaushalmodi: poin bagus, tapi bukankah ini sebabnya sekarang menjadi wiki komunitas? Agaknya kita dapat mengedit jawaban untuk menandai paket khusus elisp dan pengembangan-umum.
Dan
Tidak apa-apa untuk memiliki wiki komunitas tetapi saya pikir ini dapat dengan mudah berubah menjadi "Apa paket favorit Anda?" CW. Mari kita ambil aspek generik lain dalam jawaban Anda: Navigasi .. Speedbar, proyektil, outshine, orgstruct, g / c / etags, neotree, tabbar, ido, plugins helm dan helm, ibuffer, dll
Kaushal Modi
@kaushalmodi 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.
Sean Allred

Jawaban:

21

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 vi paredit. 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' sebagai defuns dan defvars (dan sejenisnya) dan memberikan bookmark yang terlihat sebagai garis besar.
  • outlined-elisp-mode: Kumpulan pengaturan untuk outlinemode minor untuk buffer Elisp.
  • elisp-slime-nav: Lompatan instan ke definisi fungsi dan variabel dengan M-..

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 nama

Kontrol versi

  • Gitdan Emacs front-end Magit: sistem kontrol versi terbaik dan Emacs yang dipikirkan dengan sangat baik untuknya.

Lain-lain

  • ielm: REPL interaktif
Sean Allred
sumber
Silakan memperluas daftar ini dengan alat favorit Anda jika Anda yakin itu sangat membantu.
Sean Allred
Saya telah mendaftarkan sumber daya tambahan di sini
clemera