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.
O código para esse exemplo está no plug-in org.eclipse.ui.examples.javaeditor
.
Para explorar o código, recomenda-se importar esse plug-in em seu espaço de trabalho.
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 Editor Java de Exemplo
-
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 editor de exemplo
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
(verdes) e as tags HTML (cinzas) 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 preta, enquanto os comentários de multilinhas
são agora 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 editor de exemplo 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.
As dicas de conteúdo são utilizadas para permitir que o usuário expresse sua intenção (por
exemplo, para digitar um chamado de método) e, em seguida, 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 deve 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".
Essa funcionalidade é utilizada para visualizações de um único método e funcionalidade semelhante.
-
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 vinculados.
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. É importante decidir como a conversão entre
o elemento e representação textual deve ser desempenhada 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 de tipos "comentários de várias linhas", "cometários
do Javadoc" e "todo o restante". 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 devem ser fornecidos. 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 no subconjunto
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
específico. 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 do editor Java é 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 o
particionador 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.