Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1326 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Créer un editeur de texte gérant la coloration syntaxique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Créer un editeur de texte gérant la coloration syntaxique

n°694358
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 03:26:14  profilanswer
 

[Background]
 
Je v faire un stage dans une boite ayant développé son propre IDE et son propre dérivé du XML...l'éditeur de texte inclut dans l'IDE suxx des ours de laponie (ca doit etre un jTextArea tout con) et en gros c là que je dois intervenir : le faire gérer au minimum la coloration syntaxique, plus si affinité
 
[ressources]
 
G cherché longuement, et j'ai trouvé ca :  
- http://forum.hardware.fr/forum2.ph [...] 0&subcat=0 qui m'a donné l'idée d'aller voir ça :  
http://java.sun.com/j2se/1.4.2/doc [...] nizer.html
 
- http://syntax.jedit.org/ ...qui est en gros le vieux textArea de jEdit mais qui peut servir...
 
[ Problème ]
C là que je me suis aperçu que je manquais fondamentalement de méthodologie : qqn aurait des docs sur l'utilité des tokenizers, sur la philo derrière l'approche par tokens, les différentes méthodes etc ? ou plus généralement un méthode de conception d'un éditeur de texte avancé ? (là je reve sans doute :D)...
 
PS : c pour du embedded, donc inutile de me sortir que 36.000.000 éditeurs de textes le font mieux que ce que je pourrais sortir, ca me servira à rien...qt à leecher des sources je peux pas c pour du commercial, donc à moins que ce soit du LGPL, MIT, BSD ou autre licence linkable, c mort...pis j'aimerais le faire moi même surtout...recopier un truc, c marrant mais ca apprend rien...
 
PPS : oui je connais google, je m'en suis même bcp servi, mais g rien trouvé en howto ou autre tutorials pour faire ca


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 07-04-2004 à 03:26:14  profilanswer
 

n°694797
amauryxiv
Posté le 07-04-2004 à 16:35:02  profilanswer
 

Ben ecoute moi je peux te dire qu'a mon avis c'est pas avec un JTextArea qu'on fait un editeur de texte mais avec un JEditorPane. Et la vraiment ca se complisue, faut faire un EditorKit, une ViewFactory, faut parser ton document pour creer ton propre objet Document et tous ses Element avec leur AttributeSet, faut faire tes propres View, et la je sais pas ce qui est réutilisable dans ce qui existe deja.
 
Ya aussi le JTextPane et la tu dois manipuler des StyledDocument. Mais je sais pas comment ca marche.
 
Bonne chance !

n°695082
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 20:22:14  profilanswer
 

merci...d'autres avis ?


---------------
Jubi Photos : Flickr - 500px
n°695091
the real m​oins moins
Posté le 07-04-2004 à 20:36:59  profilanswer
 

Jubijub a écrit :

[Background]
 
Je v faire un stage dans une boite ayant développé son propre IDE et son propre dérivé du XML..

euh, rassure-moi, tu veux parler d'un produit qu'ils vendent, pas d'un outil destiné à une utilisation interne? [:mlc]
euh un ide pour de l'embarqué? y'a un truc qui m'échappe?


Message édité par the real moins moins le 07-04-2004 à 20:39:44

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°695093
R3g
fonctionnaire certifié ITIL
Posté le 07-04-2004 à 20:40:17  profilanswer
 

the real moins moins a écrit :

euh, rassure-moi, tu veux parler d'un produit qu'ils vendent, pas d'un outil destiné à une utilisation interne? [:mlc]

Un IDE avec un JtextArea comme éditeur de texte, si c'est à vendre ça fait peur...


---------------
Au royaume des sourds, les borgnes sont sourds.
n°695094
kadreg
profil: Utilisateur
Posté le 07-04-2004 à 20:40:51  profilanswer
 

R3g a écrit :

Un IDE avec un JtextArea comme éditeur de texte, si c'est à vendre ça fait peur...


 
Bah .... euh ...... c''est à dire ....


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°695105
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 20:49:40  profilanswer
 

heu, c un truc interne je l'ai dit ;)
 
Pour le jTextArea je suppute...je l'ai pas vu :D...mais ce que je veus dire c que pour l'instant ca sert qu'à de la saisie de code, ca n'a aucune autre fonction...
 
Je cherche de la doc pour faire un bon tokenizer pour la coloration...


Message édité par Jubijub le 07-04-2004 à 20:49:51

---------------
Jubi Photos : Flickr - 500px
n°695274
nraynaud
lol
Posté le 07-04-2004 à 22:53:54  profilanswer
 

Jubijub a écrit :

Je cherche de la doc pour faire un bon tokenizer pour la coloration...

si c'est syntaxique, il ne te faut pas que ça ...
 
JLex et CUP.


---------------
trainoo.com, c'est fini
n°695281
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 22:58:29  profilanswer
 

ok merci...je v déjà voir ca...le fait est que je vois très bien le résultat, mais j'ai aucune idée de la méthodologie à mettre en oeuvre pour y parvenir, ni comment découper le problème...mais là g des pistes...


---------------
Jubi Photos : Flickr - 500px
n°695293
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 23:10:14  profilanswer
 

putain c complexe en fait...y'a pas un tutorial qui explique vraiment ca pour débutant ? parce que là les gars anoncent franco qu'une connaissance préalable de YACC serait un bon plus...en lisant le code j'ai même pas réussi à comprendre ce que ca faisait exactement : en gros on définit comment construire les tokens, mais après g rien compris...


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le 07-04-2004 à 23:10:14  profilanswer
 

n°695299
nraynaud
lol
Posté le 07-04-2004 à 23:18:43  profilanswer
 

Jubijub a écrit :

putain c complexe en fait...y'a pas un tutorial qui explique vraiment ca pour débutant ? parce que là les gars anoncent franco qu'une connaissance préalable de YACC serait un bon plus...en lisant le code j'ai même pas réussi à comprendre ce que ca faisait exactement : en gros on définit comment construire les tokens, mais après g rien compris...

heu t'es sûr que tu es la bonne personne pour faire un éditeur avec coloration syntaxique ?


---------------
trainoo.com, c'est fini
n°695316
Jubijub
Parce que je le VD bien
Posté le 07-04-2004 à 23:27:42  profilanswer
 

non justement [:ddr555]
 
Mais le truc c que j'ai 3 mois pour le faire...donc g le temps d'apprendre...je voudrais juste une première marche qui soit pas haute comme le mont blanc ;) :D...
 
Si au moins je trouvais qqc qui explique la philo générale de manière claire...j'ai essayé de lire les sources de jedit, ca me semble déjà bcp plus compréhensible que le lien que tu m'a donné (l'exemple qu'il prennent des équations est déjà pas forcément hyper clair : des lignes entières avec que des symboles, c pas ce qu'il y a de plus lisible...)...
 
y'a pas un bouquin avec un nom genre design pattern ou un truc du style qui explique comment faire ca en utilisant justement un éditeur de texte comme exemple ? (y me semble l'avoir lu)...
 
la méthode jedit, si je l'ai bien comprise, consiste à définir des tokens, et à leur attribuer un ID...le painter se chargeant ensuite de les coloriser selon leur ID...
 
en fait g pas forcément besoin d'un lexique, vu que par ex un langage en XML utilise des balises, qui sont faciles à isoles à cause du < >...idem en TeX par ex : une balise ca commence par ca \, et ensuite c une chaine de caractère, avec éventuellement {xxxxx} ou [xxxx]...
 
pour java, y'a déjà un truc tt fait pour les mots clés courant...
 
 en fait c la méthode de design du tokenizer et surtout le sys de painter qui m'intéresse...le lexique ca a l'air super puissant mais peut etre trop pour ce que je veux faire...


---------------
Jubi Photos : Flickr - 500px
n°695360
veryfree
Posté le 08-04-2004 à 00:29:14  profilanswer
 

ben oui inspire toi d'un ide libre: jedit jext.
 
il doit y en avoir d'autre je pense

n°695368
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 00:37:00  profilanswer
 

veryfree a écrit :

ben oui inspire toi d'un ide libre: jedit jext.
 
il doit y en avoir d'autre je pense


 
http://syntax.jedit.org/ (aller sur le site de sourceforge plutot, c une version un poil vieille sur le site...)
 
J'y avais pensé...c juste que là c tout fait, et que je voudrais savoir comment il l'a fait...je pense pas qu'il se soit levé un matin en se disant : tiens, si j'utilisais des tokens pour découper mes textes et leur attribuer des ID qu'un painter interpréterait ??? ;) ...


---------------
Jubi Photos : Flickr - 500px
n°695386
veryfree
Posté le 08-04-2004 à 01:16:52  profilanswer
 

ben pour savoir comment il fait t'etudi le code source [:joce]

n°695409
Jubijub
Parce que je le VD bien
Posté le 08-04-2004 à 03:14:34  profilanswer
 

donc après 10 réponses et de multiples recherches de mon coté, je pense que je trouverais pas de doc sur le howto de la chose...tant pis...


---------------
Jubi Photos : Flickr - 500px
n°696748
Threep
I'm a mighty pirate!
Posté le 09-04-2004 à 17:19:19  profilanswer
 

Ce topic tombe à point puisque je suis justement à la recherche d'un editeur pour mon prog.
Je viens d'essayer le package jEdit qui a l'air de faire tout ce qu'il me faut.
Maintenant, avant de m'engager là dedans, je voudrai savoir si il existe des projets d'autres projets du même style.

n°696756
Jubijub
Parce que je le VD bien
Posté le 09-04-2004 à 17:28:13  profilanswer
 

lol, fais signe si tu trouves


---------------
Jubi Photos : Flickr - 500px
n°696778
veryfree
Posté le 09-04-2004 à 17:43:28  profilanswer
 

télécharger ce truc http://keihanna.dl.sourceforge.net [...] syntax.zip
 
c'est super simple pour comprendre comment il s'y prend.
en plus c'est du domaine public tu peux recupérer ca pour une appli commercial...
 
ca s'utilise tres simplement en + :

Code :
  1. JEditTextArea ta = new JEditTextArea();
  2. ta.setTokenMarker(new JavaTokenMarker());
  3. ta.setText("public class Test {\n"
  4.     + "    public static void main(String[] args) {\n"
  5.     + "        System.out.println(\"Hello World\" );\n"
  6.     + "    }\n"
  7.     + "}" );


Message édité par veryfree le 09-04-2004 à 17:44:02
n°696793
Jubijub
Parce que je le VD bien
Posté le 09-04-2004 à 18:08:57  profilanswer
 

oui c ce que j'ai dit plus haut : le code est très bien commenté...


---------------
Jubi Photos : Flickr - 500px
n°697580
nraynaud
lol
Posté le 11-04-2004 à 20:48:54  profilanswer
 

veryfree a écrit :


Code :
  1. ta.setText("public class Test {\n"...



trop puissant la coloration syntaxique *dans* les chaines de caractères ...


Message édité par nraynaud le 11-04-2004 à 23:48:26

---------------
trainoo.com, c'est fini
n°697622
veryfree
Posté le 11-04-2004 à 22:43:19  profilanswer
 

nraynaud a écrit :

trop puissant la coloration syntaxique *dans* les chaines de caractères ...


 
 :heink:

n°697981
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 09:20:21  profilanswer
 

je doute que joce se soit fait chier à mettre une vrai coloration....


---------------
Jubi Photos : Flickr - 500px
n°697987
nraynaud
lol
Posté le 13-04-2004 à 09:24:08  profilanswer
 

Jubijub a écrit :

je doute que joce se soit fait chier à mettre une vrai coloration....

moi je ne doute plus, j'en ai la certitude.


---------------
trainoo.com, c'est fini
n°698055
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 10:40:34  profilanswer
 

en même temps c qu'un forum...c pas hyper grave...mais si t'a rien à faire, je suis sur qu'il serait fou de joie si tu lui donnait le code en PHP qui gère la coloration syntaxique de base...


---------------
Jubi Photos : Flickr - 500px
n°698165
Threep
I'm a mighty pirate!
Posté le 13-04-2004 à 12:17:02  profilanswer
 

Bon bah, après avoir commencé un peu mon editeur autour du TextArea fourni par JEdit, je me suis rendu compte qu'on ne pouvait aparament pas avoir plusieurs JEditTextArea en même temps....y a qqchose là dedans de static qui fait que tous les JEditTextArea sont en fait le même.
Du coup, pas génial...

n°698237
souljah
Posté le 13-04-2004 à 13:40:17  profilanswer
 

Threep a écrit :

Bon bah, après avoir commencé un peu mon editeur autour du TextArea fourni par JEdit, je me suis rendu compte qu'on ne pouvait aparament pas avoir plusieurs JEditTextArea en même temps....y a qqchose là dedans de static qui fait que tous les JEditTextArea sont en fait le même.
Du coup, pas génial...


 
alors je te conseille de bien suivre ce site:
http://www.madkit.org/
dans le cadre de notre TER de maitrise , on a eu , entre autres choses, ce travail à faire, transformer jedit en composant...le faire passer d'application => composant
on l'a terminé , ça fonctionne parfaitement, on va bientot le mettre en ligne à priori
seul trucs, disons 2/3 des plugins de jedit ne marchent plus (bug à l'exéc, à leur chargement ou ne semblent rien faire..), mais bon les principaux marchent
voilivoilà a+
ps: ton truc c la coloration synatxique, bah je te dirais comme les autres de voir syntax.edit2.2.2
suffit de lire le code, moi j'ai rajouté la colortion pour Scheme, Lisp, Kawa, Jess, et amélioré XML  :p  
 
voilivoilà  :jap:

n°698327
Threep
I'm a mighty pirate!
Posté le 13-04-2004 à 15:01:32  profilanswer
 

En effet ça pourrait être interessant vu que syntax.edit2.2.2 date un peu, et que la coloration syntaxique du jedit actuel parait plus puissante.
 
Enfin sinon, j'ai trouvé une solution à mon problème sur la mailing list officielle, ainsi qu'un patch pour ajouter les numéros de ligne et la gestion de la molette de la souris.
 
Pour le moment, ça fait à peu près tout ce que je veux, vu que j'ai ajouté la gestion des menus, et des tabs.
 
Par contre, il manque une fonction assez indispensable : le undo / redo.
 
Y a t'il une méthode universelle (un truc bien foutu qui marche bien) qui existe pour gérer cette fonctionnalité ?

n°698357
souljah
Posté le 13-04-2004 à 15:48:22  profilanswer
 

Threep a écrit :

En effet ça pourrait être interessant vu que syntax.edit2.2.2 date un peu, et que la coloration syntaxique du jedit actuel parait plus puissante.
 
Enfin sinon, j'ai trouvé une solution à mon problème sur la mailing list officielle, ainsi qu'un patch pour ajouter les numéros de ligne et la gestion de la molette de la souris.
 
Pour le moment, ça fait à peu près tout ce que je veux, vu que j'ai ajouté la gestion des menus, et des tabs.
 
Par contre, il manque une fonction assez indispensable : le undo / redo.
 
Y a t'il une méthode universelle (un truc bien foutu qui marche bien) qui existe pour gérer cette fonctionnalité ?
 


 
pour le undo/redo on avait regardé le source de jExt

n°698388
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 16:22:58  profilanswer
 

Threep a écrit :

En effet ça pourrait être interessant vu que syntax.edit2.2.2 date un peu, et que la coloration syntaxique du jedit actuel parait plus puissante.
 
Enfin sinon, j'ai trouvé une solution à mon problème sur la mailing list officielle, ainsi qu'un patch pour ajouter les numéros de ligne et la gestion de la molette de la souris.
 
Pour le moment, ça fait à peu près tout ce que je veux, vu que j'ai ajouté la gestion des menus, et des tabs.
 
Par contre, il manque une fonction assez indispensable : le undo / redo.
 
Y a t'il une méthode universelle (un truc bien foutu qui marche bien) qui existe pour gérer cette fonctionnalité ?
 


 
t'a modifié leur source ???


---------------
Jubi Photos : Flickr - 500px
n°698404
Threep
I'm a mighty pirate!
Posté le 13-04-2004 à 16:32:20  profilanswer
 

Oui c'est complètement bidon, et ça marche bien.
 
souljah : merci, j'irai voir également

n°698405
Jubijub
Parce que je le VD bien
Posté le 13-04-2004 à 16:33:12  profilanswer
 

tu posterais un lien ?
 
-->Jext se base sur Jedit au début il me semble...en plus le devel est français, et répond aux mails...


---------------
Jubi Photos : Flickr - 500px
n°698474
Threep
I'm a mighty pirate!
Posté le 13-04-2004 à 17:35:01  profilanswer
 

Bah c'est la mailing list officielle
 
molette souris ici :
http://sourceforge.net/tracker/ind [...] tid=406029
 
numéros de ligne là :
http://sourceforge.net/mailarchive [...] rum_id=903

n°698512
nraynaud
lol
Posté le 13-04-2004 à 18:34:55  profilanswer
 

Threep a écrit :


Par contre, il manque une fonction assez indispensable : le undo / redo.
 
Y a t'il une méthode universelle (un truc bien foutu qui marche bien) qui existe pour gérer cette fonctionnalité ?

Oui, une pile de pattern Command réversibles. B. Meyer la décrit dans "Conception et programmation orientées objet".
 
Ce pattern est utilisé en swing, sous le nom Action  
 
http://java.sun.com/docs/books/tut [...] .html#undo
http://java.sun.com/docs/books/tut [...] ction.html


---------------
trainoo.com, c'est fini
n°698530
the real m​oins moins
Posté le 13-04-2004 à 18:52:56  profilanswer
 

nraynaud a écrit :

Oui, une pile de pattern Command réversibles. B. Meyer la décrit dans "Conception et programmation orientées objet".
 
Ce pattern est utilisé en swing, sous le nom Action  
 
http://java.sun.com/docs/books/tut [...] .html#undo
http://java.sun.com/docs/books/tut [...] ction.html

ou plus spécifiquement le pattern Memento du GoF
(Action/Command est bcp plus générique... enfin je ne sais pas ce qu'en dit meyer)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°698546
Threep
I'm a mighty pirate!
Posté le 13-04-2004 à 19:06:03  profilanswer
 

Merci bcp pour les infos!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Créer un editeur de texte gérant la coloration syntaxique

 

Sujets relatifs
Formation Lycos et Java[C++]Aide épuration de fichier texte
comment créer un nouveau arbre DOM avec l'API de xerces ?Mon texte deborde de mon JTextArea et va dans une autre ?!
[JAVA] setEnable(false) sur un Panel --> fonctionne pas[javax][sql]Connection java/sSql Server
Lib d'encodage MP3 en Java ?[Java] ProgressBar qui progresse pas
[VC6] Autre editeur de resource ?PostgreSql et Java
Plus de sujets relatifs à : [Java] Créer un editeur de texte gérant la coloration syntaxique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR