Adequação do Emacs como um IDE de desenvolvimento Java

22

Estou fazendo mais uma tentativa de converter para o Emacs. Eu sou um usuário decente do Vi, mas tenho usado o Eclipse na maior parte do meu trabalho de desenvolvimento nos últimos 10 anos (há tanto tempo).

Então, eu li e pensei que o JDEE é o caminho - configurá-lo, mas ainda tenho algumas perguntas básicas.

Mas, depois de fazer mais algumas pesquisas - parece que o JDEE pode não estar bem conservado e talvez tudo que eu precise seja do CEDET?

Então pergunta:

  1. O Emacs pode servir como meu substituto do Eclipse? Organizo minha compilação usando o Maven?
  2. Se "1" for sim, com que conjunto de ferramentas devo começar: CEDET? JDEE?

Obrigado.

user1172468
fonte
4
O Emacs é um ótimo editor, mas não um ótimo IDE Java. Você ficará desapontado.
Thorbjørn Ravn Andersen

Respostas:

20

Eu vou ser conservador e dizer não , o Emacs não é um substituto para o Eclipse (especialmente, não está pronto para uso). No entanto, isso não significa que não é adequado para o desenvolvimento Java.

Como você já está familiarizado com o Eclipse, sugiro que você dê uma olhada em eclim:

O Eclim fornece a capacidade de acessar os recursos de edição de código do Eclipse (conclusão de código, pesquisa, validação de código e muito mais ) por meio da linha de comando ou de uma conexão de rede local, permitindo que esses recursos sejam integrados ao seu editor favorito.

Eclim suporta Maven . Ele se integra ao Emacs através de um pacote chamado emacs-eclim. Siga as etapas descritas no emacs-eclim README para instalá-lo 1 :

  1. Baixe e instale o eclim.

  2. Instalar emacs-eclim:

    • Se você ainda não o adicionou, adicione MELPA a package-archives:

      (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

    • Avalie o código acima (pressionando C-x C-ecom o ponto posicionado após o último ponto de fechamento) ou reinicie o Emacs.

    • Instale emacs-eclimfazendo M-x package-install RET emacs-eclim RET.
  3. Adicione o seguinte código ao seu arquivo init:

(require 'eclim)
(global-eclim-mode)

1 Instruções modificadas para incluir apenas um único método de instalação.

itsjeyd
fonte
1
maio muito obrigado pela resposta - eu estou familiarizado com eclim, no entanto, estou tentando me afastar do eclipse devido ao seu inchaço - embora eu aprecie que este seja um bom passo de transição.
user1172468
1
Então pergunta: digamos que se o eclim não existisse, qual seria sua recomendação?
user1172468
Aprenda a viver sem refatorar então.
wasamasa
2
@ user1172468 Depende - que tipos de recursos você deseja? Uma substituição completa do Eclipse inevitavelmente conterá um inchaço. Se você quiser se livrar disso, sua melhor aposta é apresentar uma lista de casos de uso específicos e verificar se (a) o Emacs os suporta fora da caixa e / ou (b) há um pacote complementar que fornece funcionalidade relevante. Podemos ajudá-lo com isso, mas só se você nos deixar entrar no seu must-have características :)
itsjeyd
1
Deve-se notar que, com o Eclim, você pode executar o Eclipse sem o material da GUI, que utilizará menos recursos. Outra coisa sobre o Eclim é que seu preenchimento automático não é utilizável (ele precisa salvar o buffer antes de solicitar a conclusão + bloqueia o editor enquanto aguarda resposta).
wvxvw
11

O Emacs / eclim tem sido meu principal IDE Java nos últimos dois anos e diria que funciona muito bem, mesmo com grandes bases de código (minha área de trabalho atual do emacs / eclim tem mais de 4000 arquivos Java). É verdade que o emacs-eclim exige que o arquivo seja salvo antes de fazer a chamada eclimd, mas não é um grande problema para a IMO. A experiência de edição ainda é boa e o depurador (usando gud) está ok.

Se você se ressentir de todas as soluções baseadas no Eclipse, eu recomendaria o modo Malabar . Eu usei isso por alguns anos também (antes de mudar para o emacs-eclim) e ele tem alguns recursos interessantes, além disso, ele funciona imediatamente com qualquer projeto Maven. Se você usar o Maven, você malabar-modereceberá automaticamente a conclusão automática e a navegação de código (entre outras coisas). Com o malabar, usei o jdibug para depurar processos Java remotos.

O pacote Java mais antigo do Emacs, JDEE , também pode valer a pena conferir. Aqui, você encontrará muitos recursos de IDE implementados no puro elisp (ou programas Java complementares lançados via bsh), mas da última vez que o usei, era bastante antigo. Posso estar enganado, mas na última vez que verifiquei, o JDEE era mais adequado para Java <= 1.4 e o depurador que funcionou melhor com ele jdb(os outros foram muito lentos).

Por fim, independentemente de qual pacote Java você escolher, eu também lançaria o Projectile por muitas vantagens relacionadas ao projeto.

Skybert
fonte
8

Neste ponto (2018), o LSP Java ( https://github.com/emacs-lsp/lsp-java ) é muito bom. Alguns dos recursos:

  1. autocompletar
  2. Refatoração (método de extração, renomear, implementar interface, extrair local, extrair constante e assim por diante.)
  3. Importação automática
  4. Navegação de código enquanto trabalha em vários projetos
  5. Encontre referências, implementações, tipo aberto.
  6. Importação de projeto Maven / Gradle, compilação automática, atualização automática da configuração do projeto
  7. Fácil de configurar
  8. Preferência do formatador
  9. Suporte para Flycheck + correções rápidas como "Adicionar elenco", "Surround com try / catch", etc.

O principal ponto de venda é que há desenvolvedores em tempo integral trabalhando no back-end LSP Java https://github.com/eclipse/eclipse.jdt.ls, que traz novos recursos quase toda semana.

Ivan Dimitrov Yonchovski
fonte