Anomalie Colorisation syntaxique ?

Sujets variés concernant le développement en PureBasic
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Anomalie Colorisation syntaxique ?

Message par boddhi »

Hello,

Quelqu'un a-t-il déjà été confronté à ce type d'anomalie avec la coloration syntaxique ?
Si oui, quelle peut en être la cause ?

Image

Ce "gloubi-boulga" de couleurs se produit aussi à l'intérieur des procédures.
J'ai eu beau relancer PB, le phénomène persiste.
Les caractères ASCII particuliers utilisés pour former les cadres d'informations ne me semblent pas en être à l'origine car tous mes autres codes en possèdent.

Merci.
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Anomalie Colorisation syntaxique ?

Message par boddhi »

PS : J'ai oublié de préciser que ce phénomène ne se produit pas dans la fenêtre du débogueur.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Anomalie Colorisation syntaxique ?

Message par Ar-S »

ça ne m'est pas arrivé. Avec les codes plus courts aussi ça te fait ça ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Anomalie Colorisation syntaxique ?

Message par boddhi »

Salut Ar-S

Non, pas à ma connaissance. Ni plus courts, ni plus longs.

En plus, j'ai constaté une autre anomalie pour laquelle je ne sais pas vraiment dire si c'est en lien ou non mais j'ai de gros soupçons.
Je ne sais plus à partir de quelle version est apparue la complétion précise des constantes disponibles dans le contexte pour certaines commandes du genre :
SortStructuredList(x(),#pb
qui ne propose en cours de frappe que les trois constantes #PB_Sort_xxxx.

Hé bien, pour des commandes avec un nombre de constantes bien plus importantes, une partie est omise. Et même quand je commence à en saisir une qui ne m'est pas proposée manuellement, l'auto-complétion ne me la propose pas. Ca n'est que quand j'ai fini de la taper et que je change de ligne que la correction majuscule/minuscule (par ex. #pb_string en #PB_String) est effectuée alors qu'habituellement elle est faite dès la constante complètement saisie.

Very strange 8O

je n'ai pas encore eu/pris le temps de le faire mais je vais essayer de voir d'où peut venir le problème en copiant petit à petit le source dans un nouveau fichier.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Anomalie Colorisation syntaxique ?

Message par Ollivier »

Elors...

Après... Une expertise à qualités profonde et douloureuse, j'ai l'erreur de vous annoncer l'honneur de la possession d'une hypothèse possible, et des suites à donner.

Tout d'abird, commençons par les suites à donner (c'est plus simple) :

1) Etape 1 : se munir d'un traducteur anglais/français
2) Etape 1+1 = 2 : poster un message dans le sujet sous-mentionné ci-dessous :
Forum EN/US Section " Bugs IDE "

Il est entendu que les termes fuck, slut et bitch sont préférablement à éviter.

Maintenant, passons... Avec raison et stratégie aux choses sairieuses.

Imaginons... Un monde idéal où les lignes de code source s'enchaînent les unes dans les autres et que ces lignes soient le programme de notre IDE.

Imaginons... Qu'il existe une structure dynamique dont nous tairons la nature précise pour ne pas éveiller les soupçons des plus jeunes : on ne va rien taire, vu qu'on peut rien cacher aux jeunes. Tableau, liste, map ou autre, nous ignorons la nature de la structure dynamique mais nous savons avec une absolue certitude fondée sur des fondements solidement costauds qu'il s'agit d'une structure dynamique. Une SD qu'on va l'appeler...

Il y a une SD pour stocker les caractères du code source...
Et il y a une SD pour stocker les couleurs de chaque caractère du code source.

Dans un code de base, en mode ASCII ou UNICODE, tous les caractères ont la même taille mémoire chacun :
1 octet par caractère ASCII
2 octets par caractère UNICODE.

Maitenant, imaginons que notre IDE travaille avec autre chose que du l'ASCII, ou du l'UNICODE !
Par exemple, de l'UTF.

Dans le monde tordu de l'UTF, les caractères ne font pas tous la même taille mémoire.

Les caractères de base, nécesserts au code source ne posent pas de problème : ils ont un code entre 32 et 127. Poing bar.

Mais si l'on vient à décorer, notamment à l'aide de commentaires, toute sorte d'autres caractères exoutiques, qu'est-ce qui nous prouve que ça ne va mettre la hala dans la SD des couleurs ?

Exemple : 3 lignes de code

Code : Tout sélectionner

A$ = "chaine"
; commentaire
A = Len(A$)
Ici, que des caractères de base. En mémoire, la SD des caractères aura cette bouille :

Code : Tout sélectionner

A$ = "chaîne" ; commentaire A = Len(A$)
Et comme on va symboliser de manière simlifiée, la SD des couleurs qui veut colorer la ligne des commentaires et la fonction Len va avoir cette tronche :

Code : Tout sélectionner

------########-=============-----***----
les tirets, c'est la couleur de base
les "egal" c'est la couleur des commentaires
les "etoile" c'est la couleur des fonction (comme Len ici)

Si jamais on met un caractère un doigt excentrique, à la limite du standard clandestin soit :
- soit dans les contenus de chaînes ou
- soit dans les contenus des commentaires

Ça va compiler bien MAIS
ça va avoir du mâle en UTF d'afficher de la couleur bien comme on aime.

Parce que la SD des caractères, elle va par exemple avoir cette goule avec le "î" circonflexe :

Code : Tout sélectionner

A$ = "cha?&j#45@ne" ; commentaire A = Len(A$)
(j'exagère, c'est pour la daemon stration) Ça correspond plus à la SD des couleurs de caractères qui n'a, elle, pas bougé d'une demi moule.

Il est probable que l'UTF soit responsable de la problématique, surtout si un petit grain de sable comme l'UTF-16 ramène ses nouvelles subtilités à la place de l'UTF-8.

Vous priant d'accéder à mes exonérations les plus sincères, et espérant votre compréhension du trauma engendré par cette période des déclarations des revenus...

Salutations grandissimes et, bols de riz.
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Anomalie Colorisation syntaxique ?

Message par boddhi »

@Ollivier

Merci pour ton excellent commentaire h(umo/e)uristique :D :wink:

Je pense que tu as probablement raison.
Je n'ai pas évoqué cette possibilité auparavant dans la mesure où mon fichier est encodé en UTF-8 mais je l'avais envisagée et elle demeure dans un petit coin de mon crâne !

J'ai effectivement quelques caractères par ci par là dont la valeur décimale Unicode dépasse 255.

Mon code total, réparti dans 8 fichiers, fait pas loin de 20 000 lignes dont 12 000 pour le fichier principal. C'est en soi beaucoup mais aussi très peu au regard d'autres projets. Ne serait-ce que le source de l'IDE de PB m'oblige à demeurer humble ! :)
J'ai essayé de trouver d'où pouvait venir le problème en copiant blocs de procédures par blocs de procédures dans un nouveau fichier.
Le phénomène se reproduit encore sans que je n'arrive à déterminer où ça coince précisément. Et je n'ai pas le temps de faire de l'analyse quasi caractère par caractère pour résoudre ce souci !

Les caractères utilisés pour mes commentaires (notamment ceux pour les cadres informatifs) ne sont pas, je crois, en cause car tous mes autres codes ont ce type de cadre et je n'ai pas le même problème.

Maintenant, à cette hypothèse liée à l'Unicode, j'ai toutefois une petite objection :

Mon utilitaire 'Tables des caractères" possède des dizaines et des dizaines de lignes de ce style :

Code : Tout sélectionner

Data.s "🫡￐129761￐1FAE1￐11111101011100001￐￐🫡￐￐Visage saluant" ;Saluting face
où des séquences de caractères Unicode dépassent même allègrement les 65535 ($FFFF) de la norme UCS-2.
Ici, dans l'exemple, 🫡 a une valeur décimale Unicode de 129761 !

Situées dans des DataSection en fin de code, je n'avais pas constaté de bug.
Alors, j'ai testé en les plaçant en début de code et......
Rien, que tchi, peau de balle et balai de crin !!!! Je n'ai rencontré aucune anomalie de coloration. :?: :?: :?: :!:

En conséquence , je ne sais plus trop quoi penser et envisager comme source de ce problème !
Et j'ai fini par me contenter de cette situation vu que cela n'impacte pas l'exécution de mon code...

Encore un truc qui restera probablement dans les limbes des mystères inexpliqués !
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Anomalie Colorisation syntaxique ?

Message par boddhi »

Ajout :

J'ai même envisagé un pb lié aux notes : ;TODO: ;FIXME:
Comme j'en ai aussi des personnalisées...

Mais je les utilise depuis des années et, là encore, je n'ai jamais eu de soucis...
Répondre