Después de no tener casi tiempo para escribir gracias a TodoSuperFriki, añadiendo algunas entradas más y creando (no sé como) SuperFrikiMón y que mi compañero Yume me hiciese recapacitar sobre las cartas y hacer que las vuelva a hacer mejores; voy a hablar un poco de los editores de código.
Casi todo el mundo ha usado alguna vez aunque sea Microsoft Word u OpenOffice para escribir algo y los desarrolladores y editores web supongo que han usado más de un editor de código; editores muy bonitos con sus colores de fondo y modificaciones de fuente, cosa que se puede hacer fácilmente con un control de texto enriquecido. Los más avanzados cuentan con marcado de sintaxis incorrecta, revisión ortográfica, tabulación automática y mostrar numeros de línea, sin contar el intellisense, haciendo que el editor muestre una ventana de ayuda de código con las etiquetas o atributos que podemos insertar en la posición determinada o mostrando varias opciones alternativas al mismo texto remarcado.
Cuento todo esto porque estamos tan acostumbrados a ellos que nos parece que son cosas simples y sencillas que todos los programas tienen, y que están ahí, que cualquiera puede programar y no valoramos el trabajo que tienen por detrás, y yo ahora he empezado a valorarlo porque en mi trabajo me ha tocado lidiar con el proyecto de un editor de código, y la parte más difícil es esa mismo: el control de edición. No nos valía con un simple control de edición de texto enriquecido, que es bien fácil de manejar, sino que teníamos que mostrar números de líneas, sintaxis coloreada, intellisense e incluso reconocer en qué partes del documento editado podíamos mostrar unas etiquetas u otras. Así que hemos partido de un control vacío y hemos tenido que sobrecargar las rutinas de dibujo, con las que no he tenido mucho problema gracias a que sé programación gráfica; calcular los valores de las barras de scroll, para los cuales aún tengo unos cuantos problemas porque se me desajustan cuando llevamos muchas líneas o cadenas muy largas y no vale ponerles un desplazamiento de valor 1 porque si no se hace eterno navegar por el documento; también está el reconocer en qué etiqueta estamos según la posición del punto de inserción del documento, y lo más importante: la edición de código en sí mismo. Tenemos que capturar los caracteres de teclado y concatenarlos o sobreescribirlos en las líneas en que nos encontremos, cosa que sería más fácil si fuese un editor de textos normales, pero contamos con etiquetas que no permiten introducir texto dentro de ellas y otras sí, además tenemos las combinaciones de teclas que muestran el intellesense y realizan otras tareas de ayuda de edición y por lo tanto, no debemos concatenarlas al resultado, sino comprobar que se ha realizado y ejecutar la operación pertinente, vamos, todo un mundo.
Así que a partir de ahora, cada vez que vea una cosa como esta estaré seguro de lo que han sufrido los programadores para hacerla.