Article de reference

coloration syntaxique

coloration syntaxique HTML La coloration syntaxique est une fonctionnalité des éditeurs de texte utilisée pour la programmation , les scripts ou les langages de balisage , comme...

coloration syntaxique HTML

La coloration syntaxique est une fonctionnalité des éditeurs de texte utilisée pour la programmation , les scripts ou les langages de balisage , comme HTML . Elle affiche le texte, notamment le code source , en différentes couleurs et polices selon la catégorie des termes. Cette fonctionnalité facilite l'écriture dans un langage structuré, tel qu'un langage de programmation ou un langage de balisage, car les structures et les erreurs de syntaxe sont visuellement distinctes. Elle est également employée dans de nombreux contextes liés à la programmation (comme les manuels de programmation), sous forme de livres ou de sites web, afin de faciliter la compréhension des extraits de code. La coloration syntaxique n'altère pas le sens du texte ; elle est uniquement destinée à aider les lecteurs.

La coloration syntaxique est une forme de notation secondaire , car les éléments mis en évidence ne font pas partie du sens du texte, mais servent à le renforcer. Certains éditeurs intègrent également la coloration syntaxique à d'autres fonctionnalités, telles que la correction orthographique ou le repliement de code , comme aides à l'édition externes au langage.

Mise en évidence de l'effet de l'absence de délimiteur (après watch='false) en JavaScript

La coloration syntaxique est une stratégie permettant d'améliorer la lisibilité et le contexte du texte, notamment pour le code s'étendant sur plusieurs pages. Le lecteur peut ainsi facilement ignorer de larges sections de commentaires ou de code, selon ce qu'il recherche. La coloration syntaxique aide également les programmeurs à repérer les erreurs dans leur programme. Par exemple, la plupart des éditeurs colorent les chaînes de caractères . Par conséquent, repérer un délimiteur manquant est beaucoup plus facile grâce au contraste de couleur. La correspondance des accolades est une autre fonctionnalité importante de nombreux éditeurs populaires. Elle permet de vérifier facilement si une accolade a été oubliée ou de trouver l'accolade correspondante sur laquelle se trouve le curseur, la paire étant colorée différemment.

Une étude présentée à la conférence PPIG a évalué l'impact de la coloration syntaxique sur la compréhension de programmes courts. Elle a révélé que cette coloration syntaxique réduit significativement le temps nécessaire à un programmeur pour assimiler la sémantique d'un programme. De plus, les données recueillies par un oculomètre durant l'étude suggèrent que la coloration syntaxique permet aux programmeurs de moins se concentrer sur les éléments syntaxiques standards, tels que les mots-clés.

Prise en charge dans les éditeurs de texte

Coloration syntaxique Ruby de TextMate

Certains éditeurs de texte permettent également d'exporter le balisage coloré dans un format adapté à l'impression ou à l'importation dans des logiciels de traitement de texte et autres logiciels de mise en forme ; par exemple, en HTML, en LaTeX colorisé, en PostScript ou en RTF . Il existe plusieurs bibliothèques ou « moteurs » de coloration syntaxique utilisables dans d'autres applications, mais qui ne constituent pas des programmes complets à part entière, comme par exemple l'extension GeSHi (Generic Syntax Highlighter) pour PHP .

Pour les éditeurs multilingues, l'utilisateur peut généralement spécifier la langue du texte ( C , LaTeX , HTML , etc.) ou l'éditeur peut la reconnaître automatiquement à partir de l'extension du fichier ou en analysant son contenu. Cette détection automatique de la langue présente des problèmes potentiels. Par exemple, un utilisateur peut vouloir modifier un document contenant :

  • plus d'une langue (par exemple lors de la modification d'un fichier HTML contenant du code JavaScript intégré ),
  • une langue qui n'est pas reconnue (par exemple lors de l'édition du code source d'un langage de programmation obscur ou relativement nouveau),
  • une langue différente du type de fichier (par exemple lors de l'édition de code source dans un fichier sans extension dans un éditeur qui utilise les extensions de fichier pour détecter la langue).

Dans ces cas, le langage à utiliser n'est pas évident, et un document peut ne pas être mis en évidence ou l'être incorrectement. Certains outils, comme Guesslang et PLangRec, sont conçus pour détecter le langage de programmation à partir du code source.

Éléments de syntaxe

La plupart des éditeurs de code avec coloration syntaxique permettent d'attribuer différentes couleurs et styles de texte à des dizaines de sous-éléments lexicaux de la syntaxe. Il s'agit notamment des mots-clés, des commentaires, des instructions de contrôle de flux, des variables et d'autres éléments. Les programmeurs personnalisent souvent abondamment leurs paramètres afin d'afficher un maximum d'informations utiles sans rendre le code difficile à lire.

de décoration de texte comme /italics/, *boldface* ou _underline_ dans les commentaires du code source par une présentation italique , en gras ou soulignée réelle .

Exemples

Ci-dessous figure une comparaison d'un extrait de code C :

Rendu standardcoloration syntaxique
" ); return 0 ; }

Voici un autre extrait de code C++ avec coloration syntaxique :

mots-clés C++ . Le commentaire initial est également mis en évidence d'une manière spécifique afin de le distinguer du code fonctionnel.

Historique et limitations

Les concepts de coloration syntaxique recoupent largement ceux des éditeurs de code dirigés par la syntaxe . L'un des premiers éditeurs de ce type fut Emily, développé par Wilfred Hansen en 1969. Il offrait des fonctionnalités avancées de complétion de code indépendantes du langage et, contrairement aux éditeurs modernes avec coloration syntaxique, rendait impossible la création de programmes syntaxiquement incorrects.

En 1982, Anita H. Klock et Jan B. Chodak ont ​​déposé un brevet pour le premier système connu de coloration syntaxique , utilisé dans le périphérique ECS ( Entertainment Computer System ) de l' Intellivision , sorti en 1983 Ce système mettait en évidence différents éléments des programmes BASIC et visait à faciliter l'apprentissage de la programmation pour les débutants, notamment les enfants . Plus tard, l'éditeur d'analyse syntaxique en direct ( LEXX ), développé pour le système d'exploitation VM en 1985 pour l'informatisation de l' Oxford English Dictionary, fut l'un des premiers à utiliser la coloration syntaxique. Sa capacité d'analyse syntaxique en direct permettait d'ajouter à l'éditeur des analyseurs syntaxiques fournis par l'utilisateur, pour le texte, les programmes, les fichiers de données, etc. Sur les micro-ordinateurs , MacPascal 1.0 (10 octobre 1985) reconnaissait la syntaxe Pascal au fur et à mesure de sa saisie et utilisait des changements de police (par exemple, le gras pour les mots-clés) pour mettre en évidence la syntaxe sur le Macintosh monochrome compact et indentait automatiquement le code pour correspondre à sa structure.

Certains éditeurs de texte et outils de formatage de code effectuent la coloration syntaxique à l'aide d'heuristiques de correspondance de motifs (par exemple, des expressions régulières ) plutôt que d'implémenter un analyseur syntaxique pour chaque langage possible. Il peut en résulter un affichage de la coloration syntaxique parfois imprécis et, dans certains cas, des ralentissements. Pour pallier ce problème, les éditeurs de texte n'analysent pas systématiquement l'intégralité du fichier, mais seulement la zone visible, en effectuant parfois une analyse rétrospective sur un nombre limité de lignes pour la « synchronisation ».

En revanche, l'éditeur affiche souvent le code pendant sa création, alors qu'il est incomplet ou incorrect, et les analyseurs syntaxiques stricts (comme ceux utilisés dans les compilateurs) échoueraient la plupart du temps à analyser le code.

Certains environnements de développement intégrés (IDE) modernes, spécifiques à un langage (contrairement aux éditeurs de texte), effectuent une analyse syntaxique complète, ce qui permet une compréhension très précise du code. Une extension de la coloration syntaxique a été nommée « coloration sémantique » en 2009 par David Nolden pour l'IDE C++ open source KDevelop . Par exemple, la coloration sémantique peut attribuer des couleurs distinctes aux variables locales afin d'améliorer la lisibilité du code. En 2014, l'idée de variables locales colorées a été popularisée par un article de blog d'Evan Brooks puis intégrée à d'autres IDE populaires tels que Visual Studio , Xcode [ et d'autres.

La couleur dans une interface utilisateur est moins utile si l'utilisateur souffre d'un certain degré de daltonisme .