1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| def syntaxe_couleur(self,event=None):
id_onglet = self.ong.select()
texte1 = self.fe.feuilles[id_onglet][1]
contents = texte1.get(1.0, tkinter.END)
coordonnees=texte1.index(tkinter.INSERT)
texte1.delete("1.0",tkinter.END)
texte1.insert("1.0",contents)
texte1.mark_set(tkinter.INSERT, coordonnees)
texte1.see(coordonnees)
nmbChar = tkinter.IntVar()
lastPos = "1.0"
while 1 :
liste_noms="(\\\\)([a-zA-Z0-9]*)([\\\\+=\(\{\$\-&\\n\ \}\)\[\]_\^,?;.:/%])"
lastPos = texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'commandes', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'commandes', foreground = 'brown',font=("courier",10))
lastPos = "1.0"
while 1 :
liste_noms="(\\\\begin)|(\\\\end)|(\\\\\\\\)"
lastPos = texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'environnement', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'environnement', foreground = 'blue',font=("courier",10))
lastPos = "1.0"
while 1 :
liste_noms="[\{\(\[\|_\^@\)\]\}]"
lastPos = texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'delimitateur', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'delimitateur', foreground = 'dark orange',font=("Courier",10,"bold"))
lastPos = "1.0"
while 1 :
liste_noms=(r"(\\\()((.|\n)*?)(\\\))")
lastPos=texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'equation', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
lastPos = "1.0"
while 1 :
liste_noms=(r"(\\\[)((.|\n)*?)(\\\])")
lastPos=texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'equation', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
lastPos = "1.0"
while 1 :
liste_noms=(r"(\\<)((.|\n)*?)(\\>)")
lastPos=texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'equation', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'equation', foreground = 'purple',font=("Courier",10))
lastPos = "1.0"
while 1 :
liste_noms="(\\\\\()|(\\\\\))|(\\\\\[)|(\\\\\])|(\\$)|([0-9<>])"
lastPos = texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'chiffre', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'chiffre', foreground = 'dark violet',font=("Courier",10,"bold"))
lastPos = "1.0"
while 1 :
liste_noms="([^\\\\]|\\n)(%)([^\\n]*?)(\\n)"
lastPos = texte1.search(liste_noms, index = lastPos, stopindex = tkinter.END, regexp = 1, count = nmbChar )
if lastPos == "" :
break
texte1.tag_add( 'commentaire', lastPos, "%s + %d chars" % ( lastPos, nmbChar.get() ) )
lastPos = "%s + 1 chars" % lastPos
texte1.tag_configure( 'commentaire', foreground = 'dark gray',font=("Courier",10,"bold")) |
Partager