ImguicolortextEdit
Sintaxis destacando el editor de texto para IMGUI

Proyecto de demostración: https://github.com/balazsjako/colortexteditordemo
Esto comenzó como mi intento de escribir un widget relativamente simple que proporciona funcionalidad de edición de texto con resaltado de sintaxis. Ahora hay otros contribuyentes que proporcionan valiosas adiciones.
Si bien se basa en el https://github.com/ocornut/imgui de Omar Cornut, no sigue el enfoque de una función "pura" de un widget: una función. Dado que el editor tiene que mantener un estado interno relativamente complejo y grande, no parecía ser práctico tratar de aplicar un modo totalmente inmediato. Almacena su estado interno en una instancia de objeto que se reutiliza en los cuadros.
El código (aún) funciona en progreso, informe si encuentra algún problema.
Características principales
- se aproxima a la apariencia típica del editor de código (los comandos esenciales del mouse/teclado funcionan, quiero decir, los comandos que normalmente uso :))
- deshacer/rehacer
- Soporte UTF-8
- funciona con fuentes fijas y de ancho variable
- Destacado de sintaxis extensible para varios idiomas
- Declaraciones de identificadores: una pequeña pieza de descripción puede asociarse con un identificador. El editor lo muestra en una información sobre herramientas cuando el cursor del mouse se desplaza sobre el identificador
- Marcadores de error: el usuario puede especificar una lista de mensajes de error juntos la línea de ocurrencia, el editor altará las líneas con retroceso rojo y mostrará un mensaje de error en una información sobre herramientas cuando el cursor del mouse se desplaza sobre la línea
- Archivos grandes: no hay un límite explícito establecido en el tamaño del archivo o el número de líneas (por debajo de 2GB, el rendimiento no se ve afectado cuando se cargan archivos grandes (excepto la coloración de la sintaxis, ver más abajo)
- Soporte de la paleta de colores: puede cambiar entre diferentes paletas de colores, o incluso definir la suya propia
- Indicadores de espacios en blanco (pestaña, espacio)
Problemas conocidos
- Sintaxis Highligthing de la mayoría de los idiomas, excepto C/C ++, se basa en STD :: Regex, que es de manera que sean de manera que sean lenta. Debido a eso, el proceso de resaltado se amortiza entre múltiples cuadros. C/C ++ tiene un tokenizador escrito a mano que es mucho más rápido.
Publique sus capturas de pantalla si encuentra útil esta pequeña pieza de software. :)
Contribuir
Si desea contribuir, consulte el archivo de contribución.