O que é possível no IntelliJ que não é possível no Eclipse?


365

Ouvi falar de pessoas que mudaram de um lado para outro e juram por um ou pelo outro.

Sendo um grande fã do Eclipse, mas sem ter tido tempo de experimentar o IntelliJ, estou interessado em ouvir dos usuários do IntelliJ que são "ex-Eclipsianos" algumas coisas específicas que você pode fazer com o IntelliJ e que não pode fazer com o Eclipse.

Nota : Esta não é uma questão subjetiva, nem pretende se transformar em uma guerra santa do IDE. Voto negativo todas as respostas flamebait .



11
Eu fui do Eclipse para o Netbeans e para o IntelliJ rubyMine e cada um deles foi um 'avanço' em relação ao anterior. Não consigo ver o que especificamente (portanto, isso não é uma resposta), já que fazia um tempo, mas o maior salto foi para o rubyMine, que era apenas mais "integrado" e parecia ter mais funcionalidade e apresentar as coisas de maneira mais fácil. usar o caminho. Também parecia lidar com questões de gemas, dependências e afins melhor do que outros.
Junky

Eu quero mudar do intelliJ para o Eclipse (por causa do desenvolvimento do Android), portanto, esse tipo de pergunta e resposta é muito útil.
chrome

8
@chrome Android está agora a mudar para o outro lado: developer.android.com/sdk/installing/studio.html
Daniel Alexiuc

11
Eu tenho o maior número possível de postagens e todas as respostas apontam para coisas que realmente podem ser feitas eclipsar, IMHO às vezes mais fácil. Quero sentir que recebi meu valor de $ com intellij, mas a única razão pela qual o comprei foi o preenchimento automático de Javascript. Eu poderia ter comprado o webstorm por um preço mais barato, se isso é tudo que recebo. Provavelmente existe um plug-in do eclipse que também faz a mesma coisa. Francamente, acho que o eclipse é mais consistente e sinto falta do recurso Perspectivas.
dres

Respostas:


185

CTRL-click funciona em qualquer lugar

CTRL-click que leva você aonde o objeto clicado é definido funciona em todos os lugares - não apenas nas classes e variáveis ​​Java no código Java, mas na configuração Spring (você pode clicar no nome da classe, propriedade ou nome do bean), no Hibernate (você pode clicar no nome ou na classe da propriedade ou no recurso incluído), você pode navegar com um clique da classe Java para onde é usado como bean Spring ou Hibernate; clicar na tag JSP ou JSTL incluída também funciona; clicar com a tecla Ctrl pressionada na variável ou função JavaScript leva ao local definido ou exibe um menu se houver mais de um local, incluindo outros arquivos .js e código JS em HTML ou JSP arquivos.

Preenchimento automático para muitos idiomas

Hibernate

Preenchimento automático em expressões HSQL, na configuração do Hibernate (incluindo classe, propriedade e nomes de colunas do banco de dados), na configuração do Spring

<property name="propName" ref="<hit CTRL-SPACE>"

e mostrará uma lista daqueles beans que você pode injetar nessa propriedade.

Java

Preenchimento automático muito inteligente no código Java:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

e mostra SOMENTE getName () , getAddress () e toString () (apenas eles são compatíveis por tipo) e getName () é o primeiro da lista porque possui um nome mais relevante. A versão mais recente 8, que ainda está no EAP, tem preenchimento automático ainda mais inteligente.

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

e silenciosamente o completará automaticamente para

Country c = p.getAddress().getCountry();

Javascript

Preenchimento automático inteligente em JavaScript.

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

e mostra ONLY getName () e getAddress () , não importa como você pode obter os métodos * que você possui em outros objetos JS em seu projeto e clique com a tecla Ctrl pressionada em this.getName () leva você a onde este está definido, mesmo se existem outras funções getName () no seu projeto.

HTML

Eu mencionei o preenchimento automático e a tecla Ctrl pressionada nos caminhos dos arquivos, como <script src = "", <img src = "", etc?

Preenchimento automático nos atributos da tag HTML. Preenchimento automático no atributo de estilo de tags HTML, nomes e valores de atributos. Preenchimento automático nos atributos de classe também.
Digite <div class = "<CTRL-SPACE> e ele mostrará uma lista das classes CSS definidas em seu projeto. Escolha uma, clique com a tecla Ctrl pressionada e você será redirecionado para onde está definido.

Destacamento fácil de linguagem própria

A versão mais recente possui injeção de idioma, para que você possa declarar que a tag JSTL customizada geralmente contém JavaScript e destacará o JavaScript dentro dela.

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

Pesquisa indexada em todo o projeto.

Você pode usar Localizar usos de qualquer classe ou método Java e encontrará onde é usado, incluindo não apenas as classes Java, mas também o Hibernate, Spring, JSP e outros locais. A renomeação do método Renomear renomeia o método não apenas nas classes Java, mas em qualquer lugar incluindo comentários (não é possível ter certeza se a sequência nos comentários é realmente o nome do método, portanto, será solicitado). E ele encontrará apenas seu método, mesmo se houver métodos de outra classe com o mesmo nome. Boa integração de controle de fonte (o SVN suporta listas de alterações? A IDEA as suporta para todos os controles de origem), capacidade de criar um patch com suas alterações para que você possa enviar suas alterações para outro membro da equipe sem enviá-las.

Depurador aprimorado

Quando olho para o HashMap na janela de inspeção do depurador, vejo a visão lógica - chaves e valores, da última vez que o fiz no Eclipse, mostrava entradas com hash e campos seguintes - não estou realmente depurando o HashMap , só quero ver conteúdo.

Validação de configuração do Spring & Hibernate

Ele valida a configuração do Spring e do Hibernate quando você a edita, portanto, não preciso reiniciar o servidor para saber que escrevi incorretamente o nome da classe ou adicionei parâmetro construtor para que meu cfg do Spring seja inválido.

Na última vez que tentei, não consegui executar o Eclipse no Windows XP x64.

e sugerirá você person.name ou person.address . Pressione Ctrl e clique em person.name para navegar pelo método getName () da classe Person .

Digite Pattern.compile("");put \\ there, pressione CTRL-SPACE e veja dicas úteis sobre o que você pode colocar em sua expressão regular. Você também pode usar a injeção de linguagem aqui - defina seu próprio método que usa o parâmetro string, declare na caixa de diálogo de opções do IntelliLang que seu parâmetro é expressão regular - e também lhe será preenchido automaticamente. Escusado será dizer que destaca expressões regulares incorretas.

Outras características

Existem alguns recursos que não tenho certeza de que estão presentes no Eclipse ou não. Porém, pelo menos cada membro de nossa equipe que usa o Eclipse também usa alguma ferramenta de mesclagem para mesclar alterações locais com alterações do controle de origem, geralmente o WinMerge. Eu nunca preciso disso - incorporar o IDEA é suficiente para mim. Por 3 cliques, posso ver a lista de versões de arquivos no controle de origem; por mais 3 cliques, posso comparar versões anteriores ou anteriores e atuais e, possivelmente, mesclar.

Ele permite especificar que eu preciso de todos os .jars dentro da WEB-INF\libpasta, sem selecionar cada arquivo separadamente; portanto, quando alguém envia um novo .jar para essa pasta, ele é automaticamente capturado .

Mencionado acima é provavelmente 10% do que faz. Eu não uso Maven, Flex, Swing, EJB e muitas outras coisas, por isso não sei dizer como isso os ajuda. Mas sim.


26
Os dois exemplos sobre o código java de preenchimento automático funcionam de forma idêntica no eclipse. Alguém com mais representante poderia excluir apenas os exemplos de java, por favor?
Craig P. Motlin

9
A maioria dos seus exemplos está disponível no Eclipse, diretamente ou via plug-ins de terceiros. Não conheço ninguém que use uma ferramenta externa para svn merge no Eclipse. Para editores spring / hibernate / javascript (e preenchimento automático), existem plugins de terceiros. Quanto a regex e jsp EL, você me bater :)
Yoni

11
O plug-in Jboss Tools adiciona o preenchimento automático de expressões Hibernate e JSF.
Damo

4
Para a visualização de depuração do eclipse, há uma opção para mostrar o conteúdo das coleções em vez dos detalhes da implementação. Para listas e conjuntos, ele mostra o conteúdo deles. Para mapas, mostrará uma lista de pares de valores-chave. Também é possível configurar exibições personalizadas.
21413 deterb

11
O Eclipse 3.7 (Indigo) também preenche automaticamente os nomes das classes na configuração do Spring.
Stivlo

81

Há apenas um motivo pelo qual eu uso o intellij e não o eclipse: Usabilidade

Seja depuração, refatoração, preenchimento automático. O Intellij é muito mais fácil de usar com ligações de teclas consistentes, opções disponíveis onde você as procura, etc. Em termos de recursos, será difícil para o intellij alcançar o Eclipse, como o O último possui muito mais plugins disponíveis que o intellij e é facilmente extensível.


10
É inteligente e muito rápido. Isso adiciona muitos recursos de usabilidade. Atravessar para uma subclasse ou classe de implementação, localizar no caminho, encontrar usos etc. acontece muito rápido. O preenchimento automático acontece em linha, apenas uma guia o insere. A conclusão automática também é inteligente, não apenas sugestões puras, mas o IDE pensa em nomes etc. para você.
Ravindranath Akila

Há mais de um motivo para usar o IntelliJ. A usabilidade não é nem o topo da lista. Existem mais recursos no IntelliJ do que no Eclipse. O IntelliJ possui menos plugins no total, mas mais plugins de 'qualidade'. Portanto, esta resposta, apesar dos votos positivos, está errada.
Software Engineer

2
@EngineerDollery Eu não diria que é "errado", uma vez Amit disse: "Há apenas uma razão que eu use intellij e não eclipse", e não "Não é apenas uma razão para usar intellij e não eclipse".
MaxNanasy

54

Provavelmente não se trata do que pode / não pode ser feito, mas como .

Por exemplo, ambos têm um editor cercado de painéis de encaixe para projeto, caminho de classe, saída, estrutura etc. No eclipse, todos esses painéis ficam abertos, deixando minha área de editor muito reduzida, cerca de 1/5 da área total visível. Então eu tenho que pegar o mouse e clicar para minimizar nesses painéis. Fazer isso o dia todo é uma experiência muito frustrante no eclipse.

O exato oposto acontece com a janela de saída da visualização. No Idea, a execução de um programa traz a janela / painel de saída para ver a saída do programa, mesmo que isso tenha sido minimizado. No eclipse, tenho que pegar meu mouse novamente e procurar a guia de saída e clicar nele para visualizar a saída do meu programa, porque a janela / painel de saída é apenas mais uma, como todas as demais janelas, mas no Idea é tratada em uma maneira especial: "Se o usuário deseja executar seu programa, é muito provável que ele queira ver a saída desse programa!" Parece tão natural quando eu o escrevo, mas o eclipse falha neste conceito básico de interface do usuário.

Provavelmente, existe um atalho para isso no eclipse (ocultar automaticamente a janela de saída durante a edição e exibi-la automaticamente durante a execução do programa), mas como outras dezenas de recursos, o atalho deve ser procurado em fóruns, ajuda on-line etc., enquanto o Idea for um pouco mais " natural".

Isso pode ser repetido para quase todos os recursos que ambos têm, preenchimento automático, quebra de linha, visualização rápida da documentação, tudo. Acho que a experiência do usuário é muito mais agradável no Idea do que no eclipse. Então, o lema se torna realidade "Desenvolva com prazer"

O Eclipse lida com projetos maiores e mais rápidos (+300 jars e +4000 classes) e acho que o IntelliJ Idea 8 está trabalhando nisso.

Tudo isso, é claro, é subjetivo. Como podemos medir a experiência do usuário?


18
no eclipse você pode pressionar Control-M para min / max janela de edição, ou clique duas vezes em sua aba editor - isso ajuda muito
Scott Stanchfield

Uau ... muito obrigado. Seria muito útil se o eclipse tivesse uma maneira que eu saiba disso (ao lado da leitura das dicas de teclas de atalho) Muito obrigado. Existe uma maneira de mudar para a janela de saída?
OscarRyz

ALT-SHIFT-Q abre uma janela Show View ... C é para o console ALT-SHIFT-Q, C é o atalho para acessar o console.
Instantsoup

7
Ctrl + Shift + L mostra uma lista de teclas de atalho disponíveis no contexto atual.
Dan Berindei

3
Clique duas vezes no título de uma sub-janela - QUALQUER sub-janela - e sua sub-janela será exibida em tela cheia. Faça isso novamente para restauração. Minimize o painel com o console e, quando a saída ocorrer, o console aparecerá instantaneamente.
Ian

44

A Idea 8.0 possui o adorável ctrl+shift+spacex 2 que executa o seguinte preenchimento automático:

 City city = customer.<ctrl-shift-space twice>

resolve

 City city = customer.getAddress().getCity();

através de qualquer número de níveis de getters / setters.


27
muito legal, embora nada mais do que dois níveis é bastante o cheiro de código ...;)
Epaga

33

Não se esqueça de "comparar com a área de transferência".

Algo que eu uso o tempo todo no IntelliJ e que não tem equivalente no Eclipse.


6
Além disso, o histórico da área de transferência.
Kimball Robinson

3
Este recurso pode ser adicionado ao eclipse na forma de um plugin chamado AnyEditTools (encontrado no mercado)
Yaniv

Nem sabia sobre o histórico da área de transferência até ler isso. Excelente!
NodeDad 6/09/13

Me salvou várias vezes
OscarRyz

31

Meu atalho favorito no IntelliJ que não tem equivalente no Eclipse (que eu encontrei) é chamado 'Ir para o símbolo'. CTRL-ALT-SHIFT-Npermite que você comece a digitar e adicionar classes, nomes de métodos, nomes de variáveis ​​etc. a partir de todo o projeto.


10
ctrl-shift-G no eclipse
dres 26/10

Ctrl-Shift-G não é o que Paulo descreveu .. é mais como "ctrl + O", mas para todas as classes, métodos e variáveis sobre o projeto
Tano

27

Tentei mudar para o IntelliJ por causa do novo Android Studio. Mas estou muito decepcionado agora. Estou usando o Eclipse com o plug-in Code Recommanders . Aqui está um exemplo simples de por que o Eclipse é tão incrível:

Eu quero criar um novo SimpleTimeZone.SimpleTimeZonenão tem Construtor com zero argumentos.

Ctrl + Space no Eclipse

insira a descrição da imagem aqui

Ctrl + Space no IntelliJ

insira a descrição da imagem aqui

No IntelliJ, não recebo informações sobre o tipo de construtor SimpleTimeZone.

Depois Enterno Eclipse

insira a descrição da imagem aqui

Eu recebo o construtor selecionado anteriormente preenchido com nomes de variáveis ​​predefinidos. E eu posso ver o tipo de cada argumento. Com os Recomendadores de código, o Eclipse adivinha o construtor certo pelos tipos de variáveis ​​definidos anteriormente no escopo atual e preenche o construtor com esses vars.

Depois Enterno IntelliJ nada acontece. Eu recebo um construtor vazio. Eu tenho que pressionar Ctrl + Ppara ver os argumentos esperados.

insira a descrição da imagem aqui


25

Se você tiver o cursor em um método, CTRL+SHIFT+Iserá exibida a implementação do método. Se o método for um interfacemétodo, você poderá usar as setas para cima e para baixo para percorrer as implementações:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

Onde | é (por exemplo) onde está o cursor.


4
Na verdade, no Eclipse (pelo menos a versão que estou usando), quando você coloca o cursor no nome de um método e pressiona CTRL + T, obtém toda a árvore da hierarquia, desde a interface superior até as implementações em folha, e pode saltar para qualquer um deles.
Yuval

2
No Eclipse, você também pode pressionar Ctrl + Clique no nome do método para ir para a definição / implementação do método (dependendo do contexto)
qualidafial

8
O ponto é que você não está realmente navegando para a implementação. É apenas mostrado pop-up, assim como javadoc etc.
jackrabbit

11
Em Eclipse você acabou de passar o nome do método com Shift para pop-up aberta com a sua implementação
Victor

24

O IntelliJ possui algumas inspeções de código bastante avançadas (comparáveis ​​mas diferentes do FindBugs).

Embora eu sinta muita falta de um plug-in FindBugs ao usar o IntelliJ (a integração Eclipse / FindBugs é bem legal).

Aqui está uma lista oficial de CodeInspections suportados pelo IntelliJ

EDIT: Finalmente, existe um plugin findbugs para o IntelliJ. Ainda é um pouco beta, mas a combinação de Code Inspections e FindBugs é simplesmente incrível!


yeah findbugs é um dos poucos analisadores de código estático que realmente encontra erros práticos de honestidade e bondade. :)
Epaga 27/10/08

Você tem um exemplo específico de sua inspeção de código? Que tipo de coisa ele pode detectar?
Epaga 27/10/08

Outro link sobre inspeções: hamletdarcy.blogspot.com/2008/04/…
Mo.

8
Acho que a inspeção de código do IntelliJ encontra mais bugs, possui correções rápidas úteis, pode fornecer avisos e corrigir linhas à medida que você os digita. (Você não precisa salvar o arquivo e não precisa compilar) Essas sutilezas tornam mais prático corrigir erros o mais rápido possível.
7119 Peter Lawrey


15

Uma coisa que uso regularmente é definir um ponto de interrupção, mas depois controlar o que ele faz. (No meu último trabalho, quase todo mundo usava o Eclipse ... Lembro-me de me surpreender que ninguém conseguisse descobrir como fazer isso no Eclipse.)

Por exemplo, o ponto de interrupção não pode realmente parar, mas apenas registrar uma mensagem no console. O que significa que não tenho que desarrumar meu código com "System.out.println (...)" e recompilar.


2
Você pode fazer isso com pontos de interrupção condicionais no eclipse, mas é um pouco atrevido .eg. true
HaveAGuess

Eu acho que o intelliJ permite definir contagens de hits mais complexas, não é?
Kimball Robinson

3
É mais fácil encontrar agora no eclipse - ele exibe condições na exibição dos pontos de interrupção agora (para que você saiba que eles estão disponíveis). Você pode quebrar em conta, digite um código arbitrário, como System.out.println("here"); falsepara imprimir, mas não quebrar (última declaração é uma expressão booleana que determina se deve quebrar)
Scott Stanchfield

15

Há muitas coisas que a idéia resolve de uma maneira muito mais simples, ou não há equivalente:

  • Ações de preenchimento automático: ctrl+shift+avocê pode chamar qualquer ação da ideia a partir do teclado sem lembrar a combinação de teclas ... Pense em gnome-do ou launchy no Windows, e você conseguiu a idéia! Além disso, esse recurso suporta abreviações do CamelCasing;)

  • Prateleira: permite que você mantenha facilmente alguns trechos de código separados e depois revise-os através do visualizador de diferenças.

  • Histórico local: é muito melhor gerenciado e mais simples.

  • Anotações e histórico do SVN: mais simples de inspecionar, e também é possível ver facilmente o histórico apenas para uma parte do arquivo de origem inteiro.

  • Preenchimento automático em qualquer lugar, como as janelas de expressão de avaliação e condição de ponto de interrupção.

  • Integração com o Maven ... muito, muito mais simples e bem integrada.

  • Refatores muito mais próximos da mão, como inserção de loops, quebra / moldagem, renomeação e adição de variáveis.

  • Encontre muito poderoso e bem organizado. Mesmo em grandes projetos

  • Muito estável para trabalhar com várias ramificações de um grande projeto ao mesmo tempo (como um ex-consertador de erros de 1,5 Gb por fontes de ramificação e a necessidade de trabalhar nelas simultaneamente, a idéia mostrou seus recursos sólidos)

  • Interface mais limpa e simples ...

  • E, mais simples de usar apenas com o teclado, deixando de lado a necessidade de usar o mouse para muitas tarefas simples, economizando tempo e dando mais foco ao código ... onde é importante!

E agora, sendo de código aberto ... a base de usuários do Idea aumentará exponencialmente.


2
Ações de preenchimento automático = acesso rápido no eclipse; Eu não vejo como a história local pode ser mais fácil do que no eclipse ...
Scott Stanchfield

Como Scott indicou, é Ctrl + 3. O assistente de conteúdo também está disponível quando expressões de avaliação e configuração de pontos de interrupção condicionais. Não sei até que ponto as refatorações mencionadas estão mais próximas do que o proposto por Ctrl + 1 e Ctrl + 2. Muito do resto parece subjetivo.
nitind

14

Pesquisa estrutural e substituição.

Por exemplo, procure algo como:

  System.out.println($string$ + $expr$);

Onde $ string $ é um literal e $ expr $ é uma expressão do tipo my.package.and.Class e substitua por:

  $expr$.inspect($string$);

11
Na verdade, você pode procurar os moldes tipo / () - operador / no seu código, praticamente impossível com pesquisa de texto simples
Karl

13

Meu tempo pode estar um pouco desligado em termos desse segmento, mas eu apenas tive que responder.

Eu sou um grande fã de eclipses - usá-lo desde a sua primeira aparição. Um amigo me disse então (há mais de 10 anos) que seria um jogador. Ele estava certo.

Contudo! Acabei de começar a usar o IntelliJ e, se você não viu ou usou listas de alterações, está perdendo a programação.

A capacidade de rastrear meus arquivos alterados (no meu ramo de desenvolvimento, ala clearcase) era algo que eu procurava em um plugin para eclipse. O Intellij rastreia todas as suas alterações para uma única confirmação, extremamente fácil. Você pode isolar arquivos alterados com listas personalizadas. Eu uso isso para arquivos de configuração que devem ser exclusivos localmente, mas são constantemente sinalizados quando sincronizo ou comparo com o repositório - listando-os em uma lista de alterações, eu posso monitorá-los, mas cuidadosamente colocá-los para que eu possa me concentrar nas adições reais Eu estou fazendo.

Além disso, há um plug-in Commit Log que gera um texto de todas as alterações para os SCCS que não estão integrados ao seu software de rastreamento de erros. Colar o log no histórico de trabalho de um ticket captura os arquivos, sua versão, data / hora e a ramificação / tags. É legal como o inferno.

Tudo isso poderia ser suportado por plugins (ou melhorias futuras) no eclipse, aposto; No entanto, Intellij torna isso uma brisa.

Por fim, estou realmente empolgado com o amor predominante por esse produto - as teclas digitadas, por isso é doloroso, mas divertido.


Eu realmente gosto do recurso de listas de alterações. É semelhante a um conjunto independente de patches / prateleiras do VCS em que você pode trabalhar de forma independente e que pode ser associado a eles, também pode ser associado ao seu rastreador de problemas. Você tem histórico local (como um mini VCS) que rastreia suas alterações enquanto trabalha quase nos detalhes do nível da linha, para que possa voltar a praticamente qualquer ponto no tempo, se necessário. Além disso, quando você alternar tarefas, todos IDEA lembra o estado do IDE para a nova tarefa e restaura arquivos abertos, posições da janela, etc.
Sylvanaar

Changelists são na verdade um recurso SVN. O IntelliJ apenas permite que você os veja e gerencie onde os plugins Eclipse SVN não.
Neil Traft

12

O depurador IntelliJ possui um recurso muito útil chamado "Avaliar Expressão", que é de longe melhor do que o eclipse pendente. Possui completo preenchimento de código e considero que geralmente é "mais útil".


8
O Eclipse também possui um avaliador de expressão que oferece a conclusão do código. Vá para Janela -> Mostrar Visualização -> Depuração -> Tela Quando parado em um ponto de interrupção no depurador, você pode avaliar expressões arbitrárias nessa Tela.
Laz

11

Bem, para mim são mil pequenas coisas. Algumas das macros, o layout da GUI em geral no Eclipse, são terríveis. Não consigo abrir vários projetos em janelas diferentes no Eclipse. Posso abrir vários projetos, mas o sistema com base em visualização troca várias coisas ao meu redor quando troco de arquivo. As inspeções de código do IntelliJ parecem melhores. Seus auxiliares pop-up para corrigir problemas comuns são bons. Muitas coisas simples de usabilidade, como a barra lateral onde posso passar o mouse sobre um ponto de acesso, e isso me diz todas as subclasses de implementação de um método ou o método que estou implementando e de onde.

Sempre que eu tive que usar ou assistir alguém usar, o Eclipse parece que eles podem fazer a maioria das coisas que eu posso fazer no IntelliJ, mas isso leva mais tempo e é mais desajeitado.


9

Introduzir variável. ( Ctrl+Alt+Vno Windows, Cmd+Alt+Vno OSX)

Digamos que você chame um método, service.listAllPersons() Hit Ctrl+Alt+Ve Enter, e a variável para o valor de retorno da chamada de método seja inserida:

List<Person> list = service.listAllPersons();

Economiza a digitação e você não precisa verificar o tipo de retorno do método que está chamando. Especialmente útil ao usar genéricos, por exemplo

new ArrayList<String>()

[introduzir variável]

ArrayList<String> stringArrayList = new ArrayList<String>();

(é claro que você pode alterar facilmente o nome da variável antes de pressionar Enter)


13
Isso é Ctrl + 2 L no Eclipse.
6609 Micke

2
Legal, eu não sabia, e nenhum dos usuários do Eclipse que pedi. Esse recurso faz parte do Eclipse há muito tempo?
rlovtang

3
Muito tempo ... Se você usar o quickfix control+1(a ligação de teclas mais óbvia do mundo, não é?), Sugere coisas que você pode fazer no local atual do cursor, semelhante às intenções do IDEA. Ele lista "atribuir local", "atribuir campo" e outras opções, por exemplo. control+2, Lé o atalho para isso.
Scott Stanchfield

No eclipse, depois de escolher ctrl+2, L, você ainda pode alterar o tipo da variável criada para o tipo do lado direito (por padrão) ou qualquer supertipo: o tipo de variável é selecionável com TAB.
Gaetan

8

O IntelliJ tem suporte a intellisense e refatoração de código em documentos jspx.


Você poderia esclarecer o que você entende por intellisense? O Eclipse também possui preenchimento automático, mas você quer dizer outra coisa?
Epaga 27/10/08

O Eclipse não possui preenchimento automático nos documentos jspx AFAIK. No jsp regular sim, jspx não.
Krossenvold 27/10/08

3
Ele significa que, se você possui uma JSP que se refere a uma propriedade em um POJO e renomeia a propriedade, sua JSP é atualizada corretamente. O suporte a JSP do IntelliJ dá um pontapé no Eclipse / WTP!
27680

2
Não consigo concluir automaticamente o Eclipse para trabalhar em expressões JSP EL, ponto final. JSP ou JSPX, não importa, é apenas sem noção. O IntelliJ lida com tagx e jspx da maneira que você esperaria: como uma tag ou arquivo jsp.
27680

É bom ver como os usuários do eclipse votam no que não gostam. Se minhas observações estiverem erradas, responda com um comentário. Diga-me como fazer isso no eclipse!
Krossenvold 31/10/08

7

Para mim, o suporte inteligente da IDEA, especialmente na versão 9, é inigualável. A sincronização on-the-fly do projeto para o modelo maven é simplesmente fantástica e torna o desenvolvimento agradável.


6

O Intellij possui um plug-in SVN muito superior ao Subversive ou Subclipse e funciona! A quantidade de tempo que perdemos ao mesclar arquivos de origem usando o Eclipse não suporta pensar. Este não é um problema no IntelliJ, porque o plug-in ajuda muito mais.

Além disso, o plug-in Subclipse não é confiável - regularmente temos instâncias em que o plug-in não acha que houve código verificado no SVN por outros desenvolvedores, mas houve - o servidor de CI os processou!


exatamente, o suporte ao svn é excelente, enquanto subclipse / subversivo são bugs, desajeitados e pouco confiáveis; mesmo vale para git, na verdade eu não me lembro de qualquer intergration git razoável para eclipse e IntelliJ lida com isso muito bem
Kamil Mikolajczyk

Pessoalmente, acho que você deve fazer todo o controle de versão na linha de comando, mesmo que seu IDE possa fazê-lo. Ao fazer isso na linha de comando, você saberá como bash o script mais tarde, o que pode realmente acelerar o seu desenvolvimento. Às vezes, meus colegas de trabalho me pedem ajuda com o subclipse ou o plug-in eclipse do git, eu apenas digo a eles para parar de usá-lo e fazê-lo na linha de comando.
msknapp

4

Emulador VIM . Esse plug-in fornece emulação vi / vim / gvim quase completa ao editar arquivos no IDEA. A seguinte funcionalidade é suportada:

  • Teclas de movimento
  • Exclusão / Alteração
  • Comandos do modo Inserir
  • Marcas
  • Registros
  • Desfazer / refazer VIM
  • Comandos do modo visual
  • Alguns comandos Ex
  • Alguns: definir opções
  • Expressões regulares completas do VIM para pesquisa e pesquisa / substituição
  • Macros
  • Diagramas
  • Histórico da linha de comando
  • Histórico de busca
  • Jumplists
  • Ajuda do VIM

alguns comentários sobre este plugin de http://plugins.jetbrains.net/plugin/?id=164

Eu não consigo ver nunca voltar para qualquer outro ide por causa deste plugin .. O melhor dos dois mundos ... Incrível !. era isso que me faltava em todos os IDEs.

Eu concordo, eu não poderia viver sem o meu plugin IdeaVim, no entanto, para ser justo, existe um plugin Vim para Eclipse, apropriadamente chamado VimPlugin ( vimplugin.org )
Keith

3
Vwrapper é outro plugin do Vim Eclipse. E funciona ainda melhor do que o plugin Idea Vim (as teclas de repetição funcionam). O Vwrapper não manipula a pesquisa e substitui a partir da linha de comando (embora a pesquisa funcione bem), nem permite definir macros interativamente. Concordou que o suporte ao Vim é essencial em um IDE. Não usaria o Eclipse ou o Idea sem ele!
Brent Faust

11
O viableplugin.com é muito bom para eclipse. Também estou usando o intellij e acho que o intellij ocasionalmente fica pendurado no editor em algumas circunstâncias e não responde aos comandos.
John Lemp


3

Algumas outras coisas:

  • propagar parâmetros / exceções ao alterar a assinatura do método, muito útil para atualizar métodos dentro da pilha de chamadas
  • Validação de código SQL nas strings passadas como argumentos para chamadas jdbc (e todo o material de injeção de linguagem recém-incluído)
  • implementado / substituído em ícones para interfaces e classes (e seus métodos) e a navegação inteligente de implementação (Ctrl + Alt + Click ou Ctrl + Alt + B)
  • vinculação entre as interfaces EJB 2.1 e classes de bean (incluindo suporte à refatoração); antigo, mas ainda imensamente valioso ao trabalhar em projetos mais antigos

2

Duas coisas que o IntelliJ faz que o Eclipse não faz e que são muito valiosas para mim:

Separadores de métodos: essas linhas cinzas entre os métodos tornam o código muito mais legível

Anti-aliasing de texto: torna o código tão bonito no IDE


2
Na verdade, achei o anti-aliasing do IntelliJ muito pior que o Eclipse. Esta foi algumas versões do IntelliJ atrás, no entanto. Foi melhorado?
Laz

Eu uso uma fonte proporcional Verdana que acho melhor do que usar anti-aliasing.
611 Peter Lawrey

2

Um recurso muito útil é a capacidade de construir parcialmente um projeto de reator Maven, para que apenas as peças necessárias sejam incluídas.

Para deixar isso um pouco mais claro, considere o caso de uma coleção de arquivos WAR com muitos recursos comuns (por exemplo, JavaScript, arquivos de configuração do Spring etc.) compartilhados entre eles usando o técnica de sobreposição. Se você estiver trabalhando em alguma página da Web (executando no Jetty) e quiser alterar parte do código de sobreposição mantido em um módulo separado, normalmente esperaria interromper o Jetty, execute a compilação do Maven, inicie o Jetty novamente e continuar. Este é o caso do Eclipse e de quase todos os outros IDE com os quais trabalhei. Não é assim no IntelliJ. Usando as configurações do projeto, você pode definir qual faceta de qual módulo você gostaria de incluir em uma construção em segundo plano. Conseqüentemente, você acaba com um processo que parece transparente. Você faz uma alteração em praticamente qualquer código do projeto e fica instantaneamente disponível após a atualização do navegador.

Muito arrumado e muito rápido.

Eu não podia imaginar codificar um front end em algo como o YUI fazendo backup no DWR / SpringMVC sem ele.


2

Preâmbulo da minha resposta: Meu uso do Eclipse é limitado. Precisávamos de um Java IDE para trabalhar no Windows e no Mac, e a porta do Mac diminuía dia após dia. Isso foi há anos e tenho certeza que está tudo bem agora. Mas foi isso que nos levou a mudar para o IntelliJ e ficamos felizes com isso.

Agora, minha resposta: uma grande diferença que ainda não vi mencionada é que o suporte técnico é melhor com o IntelliJ / Jet Brains. Enviamos um e-mail para o JetBrains e recebemos uma resposta definitiva em menos de uma hora. Procurar respostas para os problemas do Eclipse resulta nas respostas usuais: "Seu idiota estúpido" (geralmente um pequeno número de respostas) junto com um número muito maior de respostas úteis e perspicazes. Mas é preciso uma triagem para obter a resposta real.


O Eclipse é de código aberto. Ninguém é pago para responder perguntas ou corrigir bugs. Compre IDE comercial baseado em Eclipse, por exemplo, MyEclipse e obtenha suporte para o seu dinheiro. Estatísticas rápidas: relatei ao JetBrains 56 bugs, 23 deles estão fechados; de 65 erros relatados para o Eclipse 33 estão fechados. A única diferença é que o JetBrains corrige os erros um pouco mais rápido que o Eclipse.
Victor

2

Algo que uso no IntelliJ o tempo todo é refatorado enquanto digito. Reescrevi as aulas de uma impressão (originalmente escrita em eclipse) usando os IDEs e usei cerca de 40% menos pressionamentos de tecla / cliques do mouse para escrever as mesmas classes no IntelliJ do que no eclipse.

Eu não gostaria de usar o Eclipse até que eles suportem tanta refatoração com partes incompletas de código.

Aqui está uma lista mais longa de recursos no IntelliJ 8.0 / 8.1 [ http://www.jetbrains.com/idea/features/index.html]


2

Há uma coisa que o IntelliJ faz muito melhor que o Eclipse e que está vazio nos bolsos!

No entanto, prefiro usá-lo e uma grande vantagem que tem sobre o Eclipce é a maneira como ele se sincroniza com o sistema de arquivos, para grandes projetos e computadores lentos (sim, em ambientes de trabalho, os PCs são muito mais lentos que os nossos em casa). luta em que o IntelliJ parece ser mais rápido, embora com um tempo de indexação inicial mais lento.

A edição da comunidade IntelliJ obviamente torna o uso gratuito, mas em breve você deseja refatoração extra e pequenos itens legais não incluídos na edição CC.

Na minha opinião, geralmente é uma experiência melhor para o usuário, mas se vale a pena o custo é uma pergunta para cada desenvolvedor responder a si mesmo.

Mas vamos agradecer por termos até três excelentes IDEs para Java no momento, com o NetBeans melhorando o tempo todo.


3
O IntelliJ Ultimate Edition não é realmente gratuito, mas como desenvolvedor, uso meu IDE cerca de 8 a 10 horas por dia. Portanto, não vejo o preço razoável dele como uma falha !!
Romain Linsolas 28/10/10


2

Primeiro de tudo, eu amo intellij. Existem pelo menos uma centena de recursos que faltam no eclipse. Estou falando melhor de magnitudes em confiabilidade e inteligência que nenhum hipérbole pode descrever quando se trata de refatorar, renomear, mover e outros que já foram mencionados.

MAS, há uma coisa que intellij não permite que eclipse permita. Não permite a execução de vários projetos ao mesmo tempo na mesma vm.

Quando você tem projetos separados para a frente, o meio, o núcleo, os agentes ... etc, onde todos precisam interagir entre si, não é possível modificar e depurar rapidamente ao mesmo tempo. Atualmente, a única maneira de lidar com isso é usar scripts ant para implantar e atualizar jars em projetos dependentes ou usar o maven.

O Eclipse permite que vários projetos sejam depurados em uma instância de ide vm.


4
Isso deveria ter sido publicado em Coisas que o Eclipse pode fazer que o IntelliJ não pode , e não o contrário.
Neil Traft

O IntelliJ faz isso sem nenhum problema. Esta resposta está simplesmente errada.
Software Engineer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.