Exemplo - Editor Java
Introdução
O exemplo do Editor Java demonstra os recursos padrão disponíveis para editores de
texto personalizados. Mostra também como registrar um editor para um arquivo
de expansão (nesse caso .jav) e como definir um provedor personalizado de Documentos
para ser utilizado por esse editor. Esse exemplo é usado somente para demonstração.
O suporte de edição Java é fornecido pela Ferramenta Eclipse Java.
Recursos demonstrados no exemplo de editor
-
Destaque de Sintaxe
-
tipo de conteúdo sensível ao conteúdo assistido (JavaDoc e código Java)
-
comunicação entre o editor e o organizador de tópicos do conteúdo, ou seja, a seleção do organizador de tópicos
do conteúdo alimenta a amplitude de destaque do editor
-
dois modos diferentes de apresentação
-
marcação da amplitude de destaque usando um indicador de amplitude visual
-
limitar o editor a mostrar somente o texto dentro da amplitude de destaque (por exemplo,
mostrar um único método da classe Java)
-
tratamento do marcador
-
compartilhar documento
Recursos não demonstrados
-
formatação de conteúdo
-
reconciliação dinâmica de página de outline de conteúdo
Executando o exemplo de editor
-
Criar um projeto
-
Criar um arquivo com extensão ".jav" no projeto que acabou de criar.
O exemplo de editor Java abre automaticamente.
-
Insira o código Java. Ele se apresenta de forma colorida. O exemplo editor
apresenta os seguintes elementos de idioma em cores diferentes: comentários
de multilinhas, comentários de uma linha, palavras próprias da linguagem Java, cadeias e os
caracteres constantes, códigos Java regulares, bem como comentários de multilinhas
seguindo as diretrizes do JavaDoc. Dentro desses comentários JavaDoc, as palavras-chave do JavaDoc
e as marcações estão coloridas de modo diferente.
-
Abrir um novo comentário Java de multilinhas, inserindo "/*" do lado de fora do comentário Java.
Todos os textos entre o "/*" inserido e a primeira ocorrência de "*/"
ou o fim do texto altera sua cor para vermelho. Anexando outro "*". A
amplitude do vermelho altera a cor para verde enquanto os comentários de multilinhas
são considerados como contento o JavaDoc. Chame a assistência de código usando CTRL-ESPAÇO.
A função da assistência de conteúdo é suportar o usuário código de escrita.
Então, no chamamento, a assistência de conteúdo deverá listar todas as possíveis conclusões válidas
na localização do chamamento. Dentro do JavaDoc, o exemplo de editor sempre busca todas
as palavras-chave do JavaDoc.
-
Fora de um comentário Java chame uma dica de conteúdo usando CTRL+SHIFT+ESPAÇO. Cinco
propostas são listadas. Selecione uma e pressione ENTER. Uma pequena janela vermelha
aparecera acima da linha atual exibindo a proposta selecionada.
O uso antecipado das dicas de conteúdo é para permitir que o usuário expresse sua intenção, por
exemplo, para digitar um chamado de método e apresentar informações de contexto que
guiam o usuário a fazer o que deseja. No exemplo de editor, a proposta é considerada
válida com cinco caracteres ao redor da localização do chamamento inicial. Enquanto a dica de
conteúdo está visível, chame a assistência de conteúdo usando CTRL+ESPAÇO. A assistência de
conteúdo chamada nessa situação de ajudar o usuário a realizar sua
intenção declarada, visível na dica de conteúdo.Dentro do código regular Java,
o exemplo de editor sempre busca todas as palavras-chave do Java.
-
Salvar o código Java. Salvando as atualizações do organizador de tópico do conteúdo. O organizador de tópico do conteúdo
contém dez entrada, cada uma representando um dos dez segmentos de mesmo
do código Java no editor. Esse estilo de organizador de tópico do conteúdo
foi escolhido para mostrar que o significado das amplitudes em destaque podem ser definidos
arbitrariamente. (Consultar os próximos passos.)
-
Selecione uma das entradas do organizador de tópico do conteúdo. As linhas correspondentes
são marcadas com uma barra azul na régua vertical esquerda do editor.
-
Agora vá para o modo de apresentação segmentada do editor Java. Para isso, certifique-se
de que o editor possua o foco e pressione esse botão na barra de ferramentas do desktop
cuja ajuda instantânea diga "Ativar/Desativar visualizador de origem segmentada". O
uso dessa funcionalidade é antecipado, por exemplo, para exibições de método único.
-
Selecione uma entrada diferente no organizador de tópico do conteúdo. Agora o editor mostra somente
os segmentos selecionados. Desmarcando a entrada no organizador de tópico do conteúdo,
o código Java complete é mostrado novamente.
-
Selecione uma entrada no organizador de tópico do conteúdo, selecione uma fração de texto visível
e inclua a tarefa para essa seleção. A tarefa é mostrada na lista de tarefas.
Modifique o código visível. Na lista de tarefas, selecione a tarefa criada
anteriormente e pressione o botão "Ir para Arquivo". A tarefa é selecionada na área visível,
mantendo corretamente as modificações aplicadas anteriormente na conta.
-
Selecione outra entrada no organizador de tópico do conteúdo. Mostre a tarefa incluída anteriormente
da lista de tarefas. A amplitude de destaque do editor é automaticamente
ampliada para atingir a amplitude da tarefa mostrada.
-
Abrir uma nova área de trabalho. Nessa nova área de trabalho, abra uma editor Java para o
mesmo arquivo como na área de trabalho original. Modifique o conteúdo do editor. Volte para
a área de trabalho original. O editor mostra as alterações feitas na outra
área de trabalho. Os dois editores mostrando o mesmo arquivo estão ligados.
Princípios par criar editores de texto personalizados
Os seguintes passo normalmente são necessário para desenvolver um editor de texto personalizado.
-
Criar um provedor de documente. Um provedor de documento (consulte IDocumentProvider)
produz e gerencia documentos (consulte IDocument) que contêm representações textuais
dos elementos de entrada do editor. Isso é importante para decidir como a conversão entre
o elemento e representação textual ocorre e se o provedor do documento
deve ser compartilhado entre vários editores ou não. Consulte a classe
FileDocumentProvider exemplo de editor Java.
-
Criar um documento partitivo. Um documento partitivo (consulte IDocumentPartitioner)
divide um documente em regiões desconexas. A partitividade atribui a cada
região um tipo de conteúdo fora dos tipos de conjunto de conteúdo predefinidos pela
partição. Em cada documento alterado, a partição do documento deve ser
atualizada. Consulte a classe JavaPartitioner no exemplo de editor Java. O
JavaPartitioner determina as regiões dos tipos de comentários multilinhas, comentários JavaDoc
e etc. Deve ser garantido que o provedor de documento
é definido em cada documento produzido pelo provedor de documento.
-
Determinar quais plug-ins do visualizador de origem deve ser fornecido. Entre
outros plug-ins suportados estão as estratégias auto recuadas; dê um clique duplo em estratégias
formatador de conteúdo e reconciliador de apresentação de texto. A descrição subseqüente
será restrita ao reconciliador de apresentação de texto (consulte IPresentationReconciler).
No exemplo de editor Java, o reconciliador de apresentação de texto é utilizado
para implementar o destaque da sintaxe.
-
Criar para todos os plug-ins do visualizador de origem as extensões apropriadas para cada
tipo de conteúdo suportado. Como foi visto acima, a partição do documento define
os tipos de conteúdo suportados. A implementação padrão do IPresentationReconciler
suporta o IPresentationDamagers o IPresentationRepairers como extensões.
Essas extensões são consideradas específicas para um tipo de conteúdo em
particular. Portanto, para um editor personalizado, o usuário deve primeiro selecionar um subconjunto de
tipos de conteúdo suportados. As regiões de um tipo sendo um membro dos subconjuntos
selecionado será, por exemplo, a sintaxe em destaque. Para cada um desses tipos as extensões
devem ser implementadas. Consulte o JavaDamagerRepairer e JavaDocDamagerRepairer
no exemplo de editor.
-
Construir uma configuração de visualizador de origem usando os plug-ins e as extensões
criadas anteriormente. Consulte JavaSourceViewerConfiguration no exemplo de editor.
-
Personalizar a classe TextEditor ou AbstractTextEditor com a partição do documento
desenvolvido e a configuração do visualizador de origem. Incluir ou substituir ações
e adaptar a construção do menu de contexto do editor. Na versão atual,
essa personalização deve ser feita em uma classe filha. Consulte JavaEditor
no exemplo de editor.
-
Defina um contribuinte da barra de ação apropriado que contribua com as ações relacionadas
ao editor para os menus e a barra de ferramentas do desktop. Consulte JavaActionContributor no
exemplo de editor.
-
Estenda o arquivo de configuração XML do plug-in do editor, assim o editor
registra-se no ponto de extensão do editor predefinido para um conjunto de extensões de arquivo
predefinido. Defina também o contribuinte da barra de ação no arquivo XML.
Consulte o plugin.xml desse exemplo.
Organização do código do exemplo
O código do exemplo é organizado em quatro pacotes:
-
org.eclipse.ui.examples.javaeditor contém todos as classes específicas do editor.
-
org.eclipse.ui.examples.javaeditor.java contém todos os plug-ins do visualizador de origem
específico Java, como o JavaDamagerRepairer, bem como a partição de documento específico
Java.
-
org.eclipse.ui.examples.javaeditor.javadoc contém todos os plug-ins do visualizador de origem
específico JavaDoc como o JavaDocDamagerRepairer.
org.eclipse.ui.examples.javaeditor.util contém as classes de conveniência
compartilhadas pelos três outros pacotes.