O Que Há de Novo no 2.1

Aqui estão algumas das alterações mais interessantes ou significativas feitas às ferramentas de desenvolvimento no release 2.1 do Eclipse desde o 2.0:

Editor Java

Depurador Java

Reformulação

Geral

Integração do JUnit

Editor Java

O Editor Java Está Mais Personalizável

A página de preferências Java > Editor oferece opções adicionais de configuração:

  • você pode configurar a ajuda instantânea no editor Java por meio da guia Focos
  • você pode utilizar a guia Digitação para controlar o fechamento automático de parênteses, colchetes, cadeias e comentários, para quebra inteligente de cadeias e outros comportamentos úteis do editor específico do Java
  • você pode utilizar a guia Anotações para personalizar a aparência visual de erros, avisos, tarefas, etc.
Focos Aderentes

Você pode abrir um foco em uma janela rolável e redimensionável pressionando F2. Você pode selecionar e copiar o conteúdo dessa janela.

Janela redimensionável de ajuda instantânea

Indicação Proeminente de Status

Tanto o editor de Texto Padrão quanto o editor Java agora exibem um marcador proeminente no canto superior direito para indicar que o arquivo contém erros ou avisos.

Editor com marcador de indicação de erro no canto superior direito

Localizar no Arquivo

O grupo de menus Pesquisar contém um novo comando (Ocorrências no Arquivo) para pesquisar todas as ocorrências de tipos, campos, métodos e variáveis locais dentro da unidade de compilação ou do arquivo class no qual o elemento está declarado. Consistentes com outros comandos de pesquisa, os marcadores são gerados e apresentados como anotações no editor. As entradas na exibição Resultados da Pesquisa possuem ícones diferentes para acesso de leitura e gravação. Neste exemplo, você verá os resultados da pesquisa para "fName" em "TestCase.java".

Editor e exibição Pesquisar mostrando ocorrências de um campo em um arquivo

Mais Correções Rápidas

Agora há Correções Rápidas para problemas adicionais do Java. Clique na lâmpada na margem esquerda do editor Java, pressione Ctrl+1 ou selecione Editar > Correção Rápida no menu para:

  • Criar construtores ausentes
  • Remover métodos, campos ou tipos privados
  • Corrigir importações ambíguas (também sugere Organizar Importações)
  • Criar método no tipo externo (para métodos em classes anônimas)
  • Adicionar stubs para métodos não implementados
  • Adicionar uma cláusula catch ou uma declaração throws para tratar de uma exceção não capturada
  • Remover uma cláusula catch para tratar de uma exceção não mais emitida
  • Adicionar métodos abstratos não implementados

Outros problemas detectados pelo compilador que podem ser corrigidos utilizando a Correção Rápida incluem:

  • Campos de instância utilizados em um contexto estático
  • Métodos ou campos estáticos acessados de um modo não-estático
  • Declaração de um método abstrato em um tipo não-abstrato
  • Método, campo, tipo ou importação não-visível
  • Cadeias não-externalizadas

Janela Correção Rápida

Assistência Rápida

As ações de Correção Rápida agora estão disponíveis mesmo quando não há erros. Posicione o sinal de intercalação em um identificador e pressione Ctrl+1 (Editar > Correção Rápida) para chamar a Assistência Rápida.

  • A renomeação vinculada está disponível em todos os identificadores.

    Assistência rápida para renomeação vinculada

    A renomeação vinculada ativa a edição no modo vinculado (como em gabaritos), em que a alteração do identificador altera todas as ocorrências desse nome no arquivo de origem.

  • Você pode substituir a cláusula catch pela cláusula throws (disponível nas cláusulas catch).
  • Você pode atribuir instruções de expressão a uma nova variável local ou campo (disponível todas as instruções de expressão). Por exemplo, vector.iterator(); será transformado em
    Iterator iterator= vector.iterator();
    Sugestões de nomes de variáveis são fornecidas pela Assistência Rápida.
  • Você pode remover instruções ou blocos if/while/for/do e o recuo do conteúdo será corrigido automaticamente.
  • Você pode demarcar seleções de várias linhas com gabaritos.
Aprimoramentos de Assistência ao Código
  • O compilador Java aprimorou a classificação da relevância de uma sugestão com base no tipo esperado no contexto. Por exemplo, para StringBuffer sb= new [code assist], StringBuffer agora aparece primeiro na lista.
  • A assistência ao código no editor Java agora fornece o preenchimento de palavras-chave.
Exibição Aprimorada do Outline Java

Você pode ajustar o outline Java para mostrar apenas os membros do tipo principal da unidade de compilação, pressionando o botão Ícone Ir para o Tipo no Nível Superior (Ir para o Tipo no Nível Superior) na barra de ferramentas da exibição Outline.

Barra de ferramentas da exibição Outline Java

Código Java com Hyperlink

Enquanto o foco está sobre o código Java, pressionar a tecla Ctrl e mover o mouse transforma os identificadores de classe, método e campo em links clicáveis para a declaração correspondente. Esta opção pode ser configurada por meio da guia Java > Editor > Navegação.

Hyperlinks no código Java

Rolar para o Próximo Membro Utilize Ctrl + Shift + Seta para Baixo (Navegar > Ir para > Próximo Membro) e Ctrl + Shift + Seta para Cima (Navegar > Ir para > Membro Anterior) no editor Java para navegar rapidamente entre métodos, campos, inicializadores e tipos de membros.
Mais Erros Detectados no Instantâneo

O editor Java agora anota mais tipos de erros, incluindo exceções não capturadas e variáveis não utilizadas, que requerem análise detalhada do fluxo.

Editor mostrando um erro detectado na digitação

Outlines no Local

Pressione Ctrl+F3 (Navegar  > Abrir Estrutura) no editor Java para abrir um outline no local do elemento na posição atual do cursor. Ou pressione Ctrl+O (Editar > Abrir Estrutura) para abrir um outline no local do arquivo de origem atual.

Outline no local

Informações de Foco na Visão Geral do Editor

A régua de visão geral do editor Java (à direita do quadro) agora mostra informações de foco para anotações de problemas.

Foco da régua de visão geral

Editor de Arquivo Class

O editor de arquivo class equiparou-se com o editor de unidade de compilação. Agora ele suporta o realce de linha do cursor, números de linha, realce de anotação, régua de visão geral, margem de impressão, expansão de seleção de semântica e navegação no teclado entre os membros do arquivo class.

Depurador Java

Exibição Encadeamentos e Monitores

A nova exibição Encadeamentos e Monitores mostra quais encadeamentos estão retendo travas e quais estão aguardando para obter travas.

Exibição Monitores mostrando ciclos de congelamento

 

Pontos de Interrupção e Pontos de Controle da Instância Agora você pode definir pontos de interrupção & e pontos de controle específicos para uma determinada instância do objeto. Na exibição Variáveis, escolha Pontos de Interrupção da Instância... no menu de contexto de variáveis.

Diálogo Filtro de Instâncias

Pontos de Interrupção Condicionais Aprimorados Um ponto de interrupção condicional tradicional é acionado por uma expressão booleana que avalia como "true". Agora é possível declarar pontos de interrupção condicionais que são acionados sempre que o valor de uma expressão é alterado. Além disso, a assistência ao código agora está disponível ao digitar the na expressão condicional.

Diálogo de propriedades do ponto de interrupção

Avançando para Seleções

O depurador Java agora permite avançar para um único método em uma série de chamadas encadeadas ou aninhadas de métodos. Simplesmente realce o método para o qual você deseja avançar e selecione Avançar para Seleção no menu de contexto do editor Java.

Avançando para seleção

Itens de Controle Você pode criar um item de controle selecionando uma expressão no editor Java e utilizando a ação Controlar (disponível no menu de contexto e no menu Executar). Além disso, um item de controle pode ser criado selecionando uma variável e utilizando a ação Controlar.
Filtros de Etapa Os filtros de etapa são mais convenientes de serem utilizados agora que uma ação Etapa com Filtros foi adicionada à barra de ferramentas e ao menu de depuração. Além disso, ações foram adicionadas ao menu de contexto de depuração para simplificar a criação de filtros de etapas para o tipo ou pacote associado ao quadro de pilha selecionado.
Mudança Automática de Linha na Exibição Variáveis A área de detalhes das exibições Variáveis e Expressões do depurador agora suporta a mudança automática de linha, disponível no menu drop down da exibição.

Ação de mudança automática de linha no menu drop down da exibição Variáveis

Hyperlinks de Rastreio de Pilha

Os rastreios de pilha Java no console agora aparecem com hyperlinks. Quando você posiciona o mouse sobre uma linha em um rastreio de pilha, o ponteiro altera para uma mão e o rastreio de pilha é sublinhado. Pressionar o botão do mouse abra o arquivo de origem Java associado e posiciona o cursor na linhas correspondente.

Rastreio de pilha com hyperlinks na exibição Console

Tamanho do Buffer do Console A exibição Console retém apenas N caracteres mais recentes de saída (o padrão é 80K). O tamanho do buffer do console pode ser configurado por meio da página de preferências Depurar > Console.
Filtrando Constantes & Estáticas

Duas novas ações estão disponíveis no menu de opções da exibição Variáveis - Mostrar Constantes & Mostrar Variáveis Estáticas. Essas ações comutam a visibilidade das variáveis estáticas e dos finais estáticos.

Ações de filtro de variável no menu drop down da exibição Variáveis

Avanço mais Rápido

O desempenho da ação Executar > Avançar sobre (F6) do depurador foi aprimorado. Você deve observar a diferença ao pressionar a tecla F6 ou clicar rapidamente no botão Avançar sobre.

Ponteiro de Instrução

Durante a depuração, o editor Java agora indica a linha atualmente em execução com uma seta na margem esquerda. Essa seta é sólida para a estrutura de pilha superior e côncava para pilhas não superiores.

O ponteiro de instrução aparece na régua do editor

Reformulação

Novas Reformulações

Várias ações novas de reformulação estão disponíveis:

  • Mover Método de Instância: essa reformulação permite mover o método para a classe declarada de um de seus parâmetros ou campos. Isso cria um novo método e converte o método antigo em uma delegação (transmitindo a ele um ponteiro para this, se necessário).
  • Rebaixar Membros: esta reformulação permite mover um conjunto de métodos e campos de uma classe para suas subclasses.
  • Alinhar Método: esta reformulação alinha chamadas para um método Java específico, em um site de chamada selecionado ou em qualquer lugar em que o método é chamado. Ela está disponível de modo polimórfico por meio da entrada de menu Reformular > Em Linha.
  • Alinhar Constante: esta reformulação alinha utilizações de um campo de final estático Java específico, em um site de referência selecionado ou em qualquer lugar em que o campo é referenciado. Ela está disponível de modo polimórfico por meio da entrada de menu Reformular > Em Linha.
  • Extrair Constante: esta reformulação cria um campo de final estático a partir da expressão selecionada e substitui uma referência de campo e, opcionalmente, regrava outros locais em que a mesma expressão ocorre.
  • Converter Variável Local em Campo: esta reformulação permite converter uma variável local em um campo. Se a variável for inicializada na criação, a operação moverá a inicialização para a declaração do novo campo ou para os construtores da classe.
  • Converter Classe Anônima em Classe Aninhada: se uma classe interna anônima em seu código for muito grande, essa reformulação ajudará a convertê-la em uma classe de membro.
  • Converter Tipo de Membro em Tipo de Nível Superior: esta reformulação cria uma nova unidade de compilação Java para o tipo de membro selecionado, atualizando todas as referências, conforme necessário. Para tipos de membros não-estáticos, um campo é adicionado para permitir o acesso à instância anexada anterior.
  • Extrair Interface: esta reformulação cria uma nova interface com um conjunto de métodos e faz a classe selecionada implementar a interface, alterando opcionalmente as referências à classe para a nova interface, sempre que possível.
  • Utilizar Supertipo Onde Possível: esta reformulação substitui ocorrências de um tipo com um de seus supertipos depois de identificar todos os locais em que esta substituição é possível.
Reformulações Aprimoradas

Várias ações de reformulação foram aprimoradas:

  • Alterar Assinatura do Método: esta reformulação é uma substituição para a reformulação Modificar Parâmetros. Ela permite alterar o tipo de retorno e visibilidade de um método e adicionar, remover, renomear e reordenar parâmetros do método.
  • Elevar Membros: esta reformulação foi aprimorada de várias maneiras
    • você pode elevar membros em mais de 1 nível na hierarquia
    • em vez de elevá-los, você pode declarar os métodos como abstratos no supertipo selecionado
    • você pode computar o menor conjunto de membros que precisam ser elevados juntos para atender às restrições de visibilidade
  • Extrair Método: você pode reordenar e renomear parâmetros do método extraído.
  • Reformulações de Renomeação e Movimento: ao renomear um tipo ou pacote Java (ou ao mover um tipo para um pacote diferente), o nome completo do elemento agora também pode ser atualizado em arquivos não-Java.

Nova UI de Reformulação Leve

A ativação de qualquer operação de reformulação Java agora mostra um pequeno diálogo inicial para reunir informações necessárias para desempenhar a reformulação. Clique em OK para executar a reformulação sem atividade adicional ou clique em Visualizar para ver seus efeitos antes de decidir se deve ir adiante.

Diálogo de nova reformulação leve

Geral

Caminhos Mais Flexíveis de Origem e e Saída Java

A configuração do caminho de construção Java oferece mais flexibilidade:
  • Os filtros de exclusão permitem excluir da compilação determinados arquivos de origem em uma pasta de origem.
  • As pastas de origem agora podem ser aninhadas - utilize um filtro de exclusão na pasta pai para excluir a subpasta que você deseja adicionar ao caminho de construção.
  • A localização de arquivos class gerados podem ser definidos individualmente para cada pasta de origem.
  • Você também pode utilizar pastas vinculada como pastas de origem, pastas de classe ou pastas de saída.

Página de propriedades Caminho de Construção Java

Definições do Compilador Java Específicas do Projeto Além das definições de preferências do compilador Java para todo o espaço de trabalho (Java > Compilador), agora você pode configurá-las para um projeto específico Java utilizando a nova página de propriedades Compilador Java em cada projeto Java.

Mais Opções do Compilador Java

  • Os projetos Java que dependem um do outro podem geralmente ser compilados com êxito em uma única ação de construção. Para que os ciclos sejam permitidos, você precisará abaixar a gravidade associada às dependências circulares na página de preferências Java > Compilador.
  • O compilador Java agora pode avisar sobre declarações privadas não utilizadas de método, campo ou tipo. Esta opção ajuda a localizar código inativo e alguns erros sutis.
  • O compilador Java agora fornece um aviso quando detectar que você está atribuindo uma variável com seu próprio valor. Isso ajuda a capturar um erro sutil em métodos setter e declarações de construtor em que o nome de um parâmetro está próximo ao nome de um campo. Esta opção pode ser configurada por meio da página de preferências Java > Compilador > Estilo. A seguir encontra-se um exemplo:
Atribuição sem efeito

Configuração Aprimorada de Prefixo e Sufixo para Variáveis

Além de configurar o prefixo ou sufixo para campos, agora você pode especificar o prefixo ou sufixo para campos estáticos, parâmetros e variáveis locais. Essas definições na página de preferências Java > Geração de Código são utilizadas na assistência ao código, correção rápida e reformulação sempre que um nome de variável precisa ser computado.

Página de preferências de convenções de nomenclatura

Geração de Código Personalizável

A página de preferências Java > Geração de Código permite personalizar o código gerado e os comentários de um modo semelhante aos gabaritos normais. Esses gabaritos de código são utilizados sempre que o código é gerado. (Os comentários substituem os gabaritos 'filecomment' e 'typecomment' existentes utilizados para geração de código.)

Guia Código e Comentários na página de preferências Geração de Código

Marcações Configuráveis de Tarefas

A página de preferências Java > Marcações de Tarefas é utilizada para configurar a apresentação de todo o espaço de trabalho das marcações de tarefa que aparecem nos comentários de Java. Você também pode configurar essas marcações por projeto utilizando a página de propriedade Marcações de Tarefas Java em cada projeto Java.

Página de preferências Marcações de Tarefas

No editor, você verá:

Editor com uma tarefa TODO

Classificar Membros

Agora existe uma ação Classificar Membros no menu de contexto de unidades de compilação Java e tipos de nível superior que reorganiza os membros de uma unidade de compilação de acordo com a ordem de categoria definida na página de preferências Java > Aparência > Ordem de Classificação de Membros.

Página de preferências Ordem de Classificação de Membros

Diálogo Adicionar Métodos de Delegação

Agora é possível gerar facilmente os métodos de delegação (métodos que delegam para um método fornecido por uma variável de instância) utilizando a ação Origem > Gerar Métodos de Delegação. A ação está disponível em todos os tipos com campos.

Diálogo Adicionar Métodos de Delegação

Aprimoramentos do Package Explorer

Projetos não-Java agora são apresentados na exibição Package Explorer. Um filtro é fornecido para filtrar projetos não-Java e a interação abrir/fechar agora está consistente com a exibição Navigator do recurso.

Projetos não-Java no Package Explorer

As bibliotecas (como a biblioteca do sistema JRE) agora são apresentadas como um único nó com um ou mais JARs como filhos.

Layout Hierárquico vs. Plano de Pacotes

Uma opção na exibição Pacotes Java (e na exibição Package Explorer) permite alterar o modo de exibição dos pacotes. Hierárquico exibe pacotes em uma árvore, com subpacotes abaixo dos pacotes; Plano exibe-os na disposição padrão, como uma lista plana em que todos os pacotes e subpacotes são irmãos. Segue abaixo um exemplo do layout hierárquico:

Layout hierárquico no Package Explorer

Pacotes Lógicos

A exibição Pacotes Java (perspectiva Procura Java) une pacotes com o mesmo nome ao longo das pastas de origem em um projeto. Isso mostra uma exibição de um pacote lógico.

Pacotes lógicos na exibição Pacotes Java

A Exibição Hierarquia de Tipo Suporta Agrupamento por Tipo Definidor

O método de hierarquia de tipo permite classificar métodos do tipo selecionado por seus tipos definidores. Por exemplo, para AbstractList, você pode observar que contém métodos que foram definidos em Object, Collection e List:

Classificar membros pelo tipo definidor na hierarquia de tipo

Mais Filtros para as Exibições Package Explorer e Projeto

Há mais filtros para as exibições Package Explorer e Projetos:

Filtros do Package Explorer

Restauração de Vários Métodos

Agora você pode restaurar vários elementos Java a partir do histórico local em uma operação, selecionando Restaurar a partir do Histórico Local no menu de contexto. No painel esquerdo do diálogo, verifique os elementos que você deseja restaurar e, para cada elemento marcado, selecione uma entrada do histórico no lado direito.

Restauração de vários métodos

Integração do JUnit

Executando Todos os Testes de Unidade

O executador do teste JUnit agora fornece uma maneira fácil de executar todos os testes em um projeto Java, pasta de origem ou pacote especificados.

Configuração de ativação do JUnit

Localizando Testes de Unidade A nova ação Navegar > Ir para > Testes Referenciadores do JUnit localiza e navega para testes que referenciam um determinado tipo ou método.

Executar como Teste JUnit

Selecione um método de teste JUnit em uma exibição e escolha Executar > Executar como > Teste JUnit. Isso cria uma configuração de ativação para executar o teste selecionado.

Copyright (c) 2000, 2003 IBM Corporation e outros. Todos os Direitos Reservados.