Imguicolortextedit
Syntaxe mettant en évidence l'éditeur de texte pour imgui

Projet de démonstration: https://github.com/balazsjako/colortexteditordemo
Cela a commencé comme ma tentative d'écrire un widget relativement simple qui fournit des fonctionnalités d'édition de texte avec la mise en évidence de la syntaxe. Maintenant, il y a d'autres contributeurs qui fournissent des ajouts précieux.
Bien qu'il s'appuie sur les https://github.com/ocornut/imgui d'Omar, il ne suit pas la "pure" widget - une approche de fonction. Étant donné que l'éditeur doit maintenir un état interne relativement complexe et important, il ne semblait pas pratique d'essayer de faire respecter le mode entièrement immédiat. Il stocke son état interne dans une instance d'objet qui est réutilisée entre les trames.
Le code est (toujours) en cours en cours, veuillez signaler si vous trouvez des problèmes.
Caractéristiques principales
- Approximation de l'éditeur de code typique Look and Feel (les commandes essentielles de souris / clavier fonctionnent - je veux dire, les commandes que j'utilise normalement :))
- défaire / refaire
- Support UTF-8
- Fonctionne avec des polices à largeur fixe et variable
- Syntaxe extensible mise en évidence pour plusieurs langues
- Déclarations d'identifiant: Un petit morceau de description peut être associé à un identifiant. L'éditeur l'affiche dans une info-bulle lorsque le curseur de la souris plane sur l'identifiant
- Marqueurs d'erreur: L'utilisateur peut spécifier une liste de messages d'erreur ensemble la ligne d'occasion, l'éditeur s'allongera les lignes avec un message d'erreur rouge et affiche dans une info-bulle lorsque le curseur de la souris est survolé
- Fichiers volumineux: il n'y a pas de limite explicite sur la taille du fichier ou le nombre de lignes (en dessous de 2 Go, les performances ne sont pas affectées lorsque les fichiers gros sont chargés (sauf la coloration de la syntaxe, voir ci-dessous)
- Support de palette de couleurs: vous pouvez basculer entre différentes palettes de couleurs, ou même définir le vôtre
- Indicateurs d'espace blanc (onglet, espace)
Problèmes connus
- Syntax Highlighing de la plupart des langues - sauf C / C ++ - est basé sur STD :: Regex, qui est diaspointement lent. Pour cette raison, le processus de mise en évidence est amorti entre plusieurs images. C / C ++ a un jetons rédigé à la main qui est beaucoup plus rapide.
Veuillez publier vos captures d'écran si vous trouvez ce petit logiciel utile. :)
Contribuer
Si vous souhaitez contribuer, veuillez vous référer au fichier contributif.