Editor com syntax highlight

19 respostas
Anlugifa

Olá pessoal,
Escrevi um editor com syntax highlight para a minha aplicação e estou
tornando-o disponível no sourceforge:

O editor utiliza ANTLR para reconhecer as palavras chaves da linguagem, bem como os tipos de dados, comentários, etc.

Ele é facilmente adaptável para qualquer linguagem. A gramática vem inicialmente preparada para a edição de arquivos java.

Divirtam-se!!

19 Respostas

Alexandre

Show de bola véiooooo!!!
Parabéns!

Anlugifa

Obrigado Alexandre!
Espero ter contribuido para a comunidade.

Grande abraço,
André

ViniGodoy

Muito legal! Agora só tá faltando ter os mesmos recursos do eclipse, mas continuando leve e fácil de embarcar! ahhahahahahhhahaha

m4des

Muito bom seu trabalho, gostei do recurso das palavras chave, por falar nisso vc poderia passar alguma referencia de como fazer isso, se puder agradeço.

Parabéns.

Anlugifa

Olá m4des, como eu disse eu utilizei o ANTLR para fazer o parser do arquivo.
Você encontra algumas referências no release notes do projeto em:

Anlugifa

Pode deixar, vou trabalhar nisso ViniGodoy :slight_smile:

m4des

Obrigado Andre, ja ajudou bastante!

Mais uma vez parabens pelo trabalho.

gpd38

Beleza Anlugifa.
Estava olhando seu interpretador e tive uma duvida.
Vc colocou so o ponto class?

GOSTARIA DE SABER COMO ELE FUNCIONA, POIS NAO CONSIGUI EXECUTAR O SEU INTERPRETADOR

AGUARDO RESPOSTA, FALOU

Ironlynx

André, muito bom, mas seria aconselhável a postar no .Zip um readme para o pessoal não ficar perdido, dizendo tudo o que ele faz! :thumbup:

sergiotaborda

Só uma pergunta … porquê é :

JEditor editor = JEditor.getInstance();

e não

JEditor editor =  new JEditor();

Qual é a necessidade de usar um método de fabrica ?

Anlugifa

gpd38:
Beleza Anlugifa.
Estava olhando seu interpretador e tive uma duvida.
Vc colocou so o ponto class?

GOSTARIA DE SABER COMO ELE FUNCIONA, POIS NAO CONSIGUI EXECUTAR O SEU INTERPRETADOR

AGUARDO RESPOSTA, FALOU

Os fontes estão no jar. Estranho não ter executado, verifique se o seu sistema operacional está configurado corretamente para executar arquivos .jar. Tente fazer na linha de comando java -jar editor.jar e verifique o erro.
Abraços

Anlugifa

Oi Ironlynx, os readme está no release notes do próprio sourceforge.
Mesmo assim, obrigado pela dica.

Anlugifa

sergiotaborda:
Só uma pergunta … porquê é :

JEditor editor = JEditor.getInstance();

e não

JEditor editor =  new JEditor();

Qual é a necessidade de usar um método de fabrica ?

Olá sergiotaborda!
A instancia do editor era usada vária vezes dentro do programa, pos isso o tornei um singleton. Mas esse editor está bem modificado e já sofreu diversas modificações. Infelizmente não vou tornar disponível as novas versões, pois a empresa que trabalho o está utilizando. E isso acarreta em direitos autorais.

A idéia era mostrar uma utilização do ANTLR. Estou escrevendo um artigo sobre essa ferramenta no meu blog farinha.wordpress.com, ainda não finalizei e a idéia é mostrar o editor como um exemplo prático.

Abraços

paulovittor23

Parabéns Anlugifa ! :wink:
Ficou bem interessante, depois quando eu estiver com mais tempo vou parar para dar uma olhada nos fontes…
Já coloquei no meu pen drive, vai ser bastante útil para fazer algo rápido e simples onde não haja a necessidade de todos os recursos de uma grande IDE :smiley:

Show de bola,
[]s

Anlugifa

paulovittor23:
Parabéns Anlugifa ! :wink:
Ficou bem interessante, depois quando eu estiver com mais tempo vou parar para dar uma olhada nos fontes…
Já coloquei no meu pen drive, vai ser bastante útil para fazer algo rápido e simples onde não haja a necessidade de todos os recursos de uma grande IDE :smiley:

Show de bola,
[]s

Obrigado Paulo Vitor,
Infelizmente não vou colocar no sourceforge a versão mais nova com identação automática, tabspaces, etc.
Mas a idéia é justamente essa, ver a potencialidade do ANTLR.
Qualquer coisa estamos aí, abraços.

pdform

Eaê, Anlugifa, blz?

Estou trabalhando em um projeto (http://code.google.com/p/algostep) na UnB (www.unb.br) que implementa um interpretador de algoritmos.

Para tal, precisamos de uma caixa de texto que contenha highlighting de Pascal. Você poderia detalhar para mim como posso usar seu trabalho para criar um componente, algo como um JTextArea, que faça isso?

Tentei dar uma analisada no seu código mas estou enfrentando algumas dificuldades… Por exemplo, o que é o pacote antlr? Como posso utilizá-lo em um projeto do eclipse?

Pode me dar umas dicas de como fazer a caixa de texto?

Obrigado!

Tacioandrade

Cara, muito bom mesmo este editor, porem a unica coisa que acho que está realmente faltando nele é comentários no código.

Peguei o codigo para ver se conseguia entender, porem quase que não tem comentários nos fontes. Mesmo o codigo estando muito bem escritos, acho que está faltando comentários para que outras pessoas consigam compreender para que serve oque.

Flavio_machine

Opa estou tentando utilizar seu editor mais está dando um exception, o engraçado é que abri o jar e a classe está lá.

Exception in thread AWT-EventQueue-0 java.lang.NoClassDefFoundError: com/anlugifa/editor/ui/JAbout

at com.alps.siabfacil.view.panels.JPanelSubjetivo.<init>(JPanelSubjetivo.java:127)

at com.alps.siabfacil.view.atendimento.AtendimentoMedicoPanel.<init>(AtendimentoMedicoPanel.java:112)

at com.alps.siabfacil.app.FrameTest.<init>(FrameTest.java:65)

at com.alps.siabfacil.app.FrameTest$1.run(FrameTest.java:72)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641)

at java.awt.EventQueue.access$000(EventQueue.java:84)

at java.awt.EventQueue$1.run(EventQueue.java:602)

at java.awt.EventQueue$1.run(EventQueue.java:600)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:611)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Caused by: java.lang.ClassNotFoundException: com.anlugifa.editor.ui.JAbout

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

 18 more
Tacioandrade

Flavio, engraçado, pois rodei normalmente agora.

Estou usando o Debian Squeeze 32 bits e chamei o .jar pelo terminal normalmente.

Criado 23 de dezembro de 2006
Ultima resposta 20 de jan. de 2012
Respostas 19
Participantes 11