Quais são as boas ferramentas para o desenvolvimento de pacotes Emacs? [fechadas]

17

Já temos uma pergunta sobre ferramentas úteis especificamente para testes , mas que tal realmente escrever o código? Quais pacotes você acha que aceleram seu desenvolvimento? Quais auxílios você usa para navegar e entender seus projetos de maneira rápida e fácil?

Sean Allred
fonte
3
Esta questão é muito ampla e aberta. Muitos dos pacotes listados na sua resposta podem ser aplicados a qualquer desenvolvimento de código. Além disso, essa resposta pode acabar contendo um grande subconjunto dos pacotes listados no gerenciador de pacotes. Se preferir multiple-cursors, alguém poderia preferir visual-regexpou ag / ack / grep da linha de comando ou de dentro emacs ou emacs embutido query-replaceou query-replace-regexpou qualquer outra coisa. Argumentos semelhantes podem ser feitos para cada pacote. Em vez disso, uma boa pergunta seria perguntar como fazer algo específico no "desenvolvimento de pacotes".
precisa
@kaushalmodi É CW, então em parte era minha intenção ser aberta. Fazer perguntas específicas pode ser uma maneira melhor de resolver isso, mas essa pergunta ainda existiria como uma coleção dessas perguntas. Tentei direcionar a pergunta especificamente para ferramentas que são úteis no desenvolvimento do lisps e emacs multiple-cursors- por exemplo, é útil em qualquer lugar, mas talvez haja outros pacotes que respeitem o escopo explícito do lisp. Certamente macrostepe ielmnão são aplicáveis ​​em nenhum outro lugar . Traga isso à meta, talvez?
Sean Allred
@kaushalmodi: bons pontos, mas não é por isso que agora é um wiki da comunidade? Presumivelmente, poderíamos editar a resposta para sinalizar pacotes específicos do elisp e gerais de desenvolvimento.
Dan
Tudo bem ter um wiki da comunidade, mas acho que isso pode se transformar facilmente em "Quais são seus pacotes favoritos?" CW. Vamos pegar o outro aspecto genérico em sua resposta: navegação .. Speedbar, projéctil, outshine, orgstruct, g / c / etags, neotree, TabBar, Ido, leme e leme plugins, ibuffer, etc
Kaushal Modi
@kaushalmodi ido, helm, ibuffer, tabbar-Eu não acho que-seria entradas apropriadas. Não há nada que realmente facilite o desenvolvimento do elisp . Eles são certamente pacotes fantásticos, mas (na minha experiência) eles não têm nada a acrescentar ao desenvolvimento do elisp . etagsEnquanto eu não estou familiarizado com isso, parece que seria apropriado. Talvez outro CW seja apropriado para esses outros pacotes (porque eles realmente merecem menção), mas receio que seus medos por essa pergunta certamente se realizem nesse.
Sean Allred

Respostas:

21

Criação

  • edebug: Depuração passo a passo do código Elisp.
  • checkdoc: Aprenda sobre erros de estilo em seus comentários e documentos.
  • elint: Linter para Emacs Lisp.
  • paredit: Manipule o código lisp como árvores em vez de linhas. Nunca tenha parênteses desequilibrados.
  • lispy: alternativa / superconjunto de vi paredit. Além disso, inclui atalhos para contornos, estreitamento, edebug, ediff, semântico, modo ás-salto, cursores múltiplos, cidra, lodo e geiser.
  • multiple-cursors: Edite simultaneamente várias expressões semelhantes. Entre outras coisas, útil para refatoração de código.
  • erefactor: Refatoração de código.
  • redshank: Outra biblioteca de refatoração (projetada para Common Lisp, mas funciona bem com o Emacs Lisp).
  • macrostep: Expansão de macro interativa no buffer.
  • yasnippet: Snippets de código para expansão rápida de idiomas repetitivos (exemplos aqui )

Navegação

  • speedbar: A barra de velocidade é uma ótima maneira de navegar pelo seu projeto. Ele reconhece 'tags' como defuns e defvars (e similares) e fornece marcadores visíveis como um esboço.
  • outlined-elisp-mode: Uma coleção de configurações para o outlinemodo secundário para buffers Elisp.
  • elisp-slime-nav: Salto instantâneo para funções e definições de variáveis ​​com M-..

Criação de perfil

  • elp: Interface interativa para o Emacs Lisp Profiler, útil para explorar o que exatamente é lento em sua função de criação de perfil e como ele interage com o restante do Emacs.

Gestão

  • names: Fornece uma macro para criar espaços para nome

Controle de versão

  • Gite seu front-end do Emacs Magit: sem dúvida o melhor sistema de controle de versão e um front-end do Emacs muito bem pensado para ele.

Diversos

  • ielm: REPL interativo
Sean Allred
fonte
Estenda esta lista com suas ferramentas favoritas se você acredita que elas são amplamente úteis.
Sean Allred
Eu listei recursos adicionais aqui
clemera 9/03/19