Sujet n°4759
Posté par Lén le 6 Aoû - 19:19 (2009)
Titre : Coloration Syntaxique sur msn
PAGE OFFICIELLE MSN PLUS! LIVE : http://www.msgpluslive.net/scripts/view/557-RubyColor
 


Salut chers PSPistes !

Depuis Mardi soir je me suis mis au Javascript !
J'en ai profiter pour creer un script Messenger plus! live qui fait une coloration syntaxique du ruby quand on envoi un bout de code à ses contacts :D

Bien sûr, pour la plupart d'entre vous c'est inutile, mais pour les scripteurs et autres curieux, voici ma création !



Si vous n'avez pas encore MSN plus! live: http://www.msgplus.net/

Et voici mon script: RubyColor.plsc

Pour Desactiver/Activer la fonction: Dans la zone la ou vous ecrivez a vos contacts tapez /ruby et envoyez le.

Ceci est la version 1.00:
  1. Coloration des #commentaires
  2. Colorations des "Strings"
  3. Coloration des Mots-clé
  4. Coloration des variables $globale @classe et @@instance

Pour la future version (mise a jour automatique):
  1. Certains mots-clé se colorent même lorsqu'il sont des commentaires ou des strings
     #Ceci est un exemple class def if il reste un bug
  2. Colorisation des messages reçus (au cas ou certaines personnes n'aient pas installées le script), et oui car pour le moment, la colorisation n'est qu'à l'envoie :D . Normalement toute personne disposant de MSN plus! live devrait pouvoir voir la colorisation même si elle n'a pas le script, par contre quand elle écrira, cela ne colorisera évidemment pas :D

N'hésitez pas a me rapporter les bugs, et votre avis :D
     
     

Posté par Heiwka le 6 Aoû - 19:22 (2009)
T'a surtout profiter de moi, depuis deux jours il n'arrête pas de m'envoyer ses scripts >.<

Posté par Pαlвσlѕку le 6 Aoû - 19:36 (2009)
Trop bien le script !

Je l'ai testé et c'est très pratique pour si retrouver.

Posté par Lén le 6 Aoû - 19:40 (2009)
J'ai oublié de vous dire que pour activer/desactiver il faut faire /ruby

Posté par Heiwka le 6 Aoû - 20:00 (2009)
L'est mignonne Fidgie, hein ? :D

(le chat)

Posté par Sphinx le 6 Aoû - 22:04 (2009)
>> je me permets juste une correction sur un point cité par len :

Lén a écrit:
  • Coloration des variables $globale @locale et @@classe

les variables locales n'ont pas de @ devant leur nom et les variables de classe ont qu'un seul @. Ce sont les variables d'instance qui ont deux @@. Si j'ai bien compris la différence entre variables de classes & d'instances, c'est que les variables de classes ne sont pas communes à tous les objets d'une même classe, tandis que les variables d'instance ont un lien d'un objet à un autre. (c'est confus, je sais ^^', mais je n'ai pas trop bien compris la différence, moi non plus ^^', je sais juste qu'elle existe)

Mis à part ca, très bon script ^o^ Pas encore testé, mais je pense que je l'utiliserai :^^:




Heiwka a écrit:
L'est mignonne Fidgie, hein ? :D

(le chat)

Uniquement si tu m'en prouves l'utilité dans ce topic. Ce topic est là pour présenter le script de Len, merci d'éviter les HS.

Posté par Lén le 7 Aoû - 00:51 (2009)
Oui sphinx tu as raison, mais ça change rien mon script ne comprend pas le ruby, il s'occupe jsute de recupérer ton message avant que tu l'envoi, il l'analyse et si par exemple il trouve un $, il récupère le symbole et tout les caractères qui suivent jusqu'au premier espace le color, et le recolle dans ton message. Ceci dit, la coloration des commentaires m'a demandé pas mal de réflexion, et j'ai eu pas mal d'aide du côté du site du zéro.

Mais tu a raison, je vais modifier mon exemple ^^. en meme temps on peut pas m'en vouloir je ne touche pa trop au ruby en ce moment. Tiens d'ailleurs je suis en train de finaliser le même script pour python :D

Posté par Sphinx le 7 Aoû - 07:36 (2009)
^o^ lol


>> pour les commentaires, tu peux pas lui dire : tu colores en vert jusqu'à un retour à la ligne si tu vois un # et jusqu'à un =end si tu vois un =begin ? (^^' jme rends pas compte de ce que ca peut rendre en code, le javascript n'est pas ma spécialité Imbécile heureux)

Posté par Empire1601 le 7 Aoû - 12:13 (2009)
Bonne idée Clin d'œil foireux
Je peux le déplacer dans Script & Tuto ?

Posté par Sphinx le 7 Aoû - 13:00 (2009)
>> à voir avec Len, mais en effet ca aurait ptêtre davantage sa place dans les scripts ^o^

Posté par Lén le 7 Aoû - 15:48 (2009)
J'ai voulu le mettre la bas, mais en lisant les sous titre j'ai vu qu'il fallait qu'il y ai un rapport direct avec psp, ce qui n'est pas le cas ici, mais si c'est possible je veux bien :D

Sphinx, pour colorer d'une # jusqu'à un retour de ligne (ce qui est déjà le cas actuellement:




 
Citation:
String = String.replace(/(#[^\r]*)/g,"[c=3]$1[/c]");
Pour ce qui est du begin oui je le ferais pas de pb :D j'ai déjà le code en tête, mais j'étais trop impatient de sortir la V1 pour le faire :lol:

Posté par Sphinx le 7 Aoû - 16:17 (2009)
Imbécile heureux Ca a un lien avec PSP, puisque ca permet de passer du code ruby Imbécile heureux


>> un HS vite fait : le javascript, ca ressemble au java ?

Posté par Lén le 8 Aoû - 05:59 (2009)
Heu aucune idée !
En fait msn plus! dispose d'un interpréteur Jscript (dérivé de javascript).
mais d'après ce que je vois, ça énerve beaucoup les programmeurs quand on confond JAVA et Javascript.

Je travaille sur la V2 avec la correction des bug de mots clé mal colorés dans les commentaires et les strings, et pis le begin. voilou! je vais me coucher lol.

Posté par Sphinx le 8 Aoû - 09:08 (2009)
>> tu as peut être moyen de dire "Dès que je vois un #, je colore en vert et je fais rien d'autre. Si je vois un '=begin', je colore en vert jusqu'à ce que je rencontre un '=end'. S'il n'y a pas de #, alors je colore les mots normalement." =)

Posté par Lén le 8 Aoû - 13:46 (2009)
Ca serait trop simple ^^ si je colore en vert a partir d'un # il faut lui dire quand s'arrreter, et en plus si y'a des mot clé dedans ...

c'est du genre string =

def input # mes coms son bleu quand j'ecris def c'est dommage
soit
[c=12]def[/c] input [c=3]# mes coms son bleu quand j'écris [c=12]def[/c] c'est dommage[/c]

il faut que je trouve un moyen de supprimer le [c=12] et [/c], j'y arrive mais dès qu'il y a plusieurs mot clé ... faut que je mette ca dans une boucle ..... le plus dur c'est a détecter si mon
[c=12]def[/c] et dans un  [c=3]# ....[/c]

Posté par Sphinx le 8 Aoû - 14:06 (2009)
Imbécile heureux un booléen, lén ! Imbécile heureux


Code:
if(!(bool || longBool)) { // bool sera égal à true dès que ton programme rencontrera un # puis redeviendra false à la fin de la ligne (\n)
                            // et longBool sera égal à true quand ton programme lira un =begin en début de ligne puis redeviendra false quand il
                            // trouvera un =end
                            // (bool || longBool) sera vrai si l'une ou l'autre des situations a été rencontrée, donc !(bool || longBool) sera vrai que
                            // si aucune des deux conditions est remplie
  // coloration en vert
}
else {
  // coloration normale
}

Posté par Lén le 8 Aoû - 17:31 (2009)
Ca ca marche aussi :D
Code:

var reg = /(\[c=3\]#.*)\[c=\d+\](\w*)\[\/c\](.*\[\/c\])/g;
while(sMessage.match(reg)) {
   sMessage = sMessage.replace(reg, '$1$2$3');
}



Posté par Sphinx le 8 Aoû - 17:34 (2009)
Imbécile heureux A quand la nouvelle version ?

Posté par Lén le 8 Aoû - 22:04 (2009)
je travaille dessus :D

MAis la je suis allé demandé de l'aide sur le site du zéro car le "=" n'est jamais retrouvé dans aucune de mes strings ... S'il trouvent je fait le menu et la V2 sort