Descripción de Buffers
Este paquete esta diseñado para crear y administrar el buffer de texto de pyragua, dado que el buffer tiene una vista y captura ciertos eventos del usuario es necesario definir una API entre plugins que requieran de estos eventos y el buffer.
Características Generales
- Coloreado de Sintaxis.
- Fuentes.
- Tamaño de letra.
- Auto tabulado.
- Una interfaz entre plugins y el buffer.
- Ocultar métodos y funciones.
- Todo debe ser configurable (colores, fuente, tamaño de tabulado, etc.)
- Los buffers deben poder transmitir los eventos ejecutados sobre estos (keypresses).
Ideas para Implementación
Usar python scintilla para las Tareas de Coloreado de Sintaxis, Fuentes, Tamaño de letra y Ocultar métodos y funciones. Desarrollar la característica de Auto completado como un plugin que use la API del buffer.
- A través del módulo de configuración se puede almacenar en un archivo externo, todo lo relacionado a la configuración de los buffers, en lo relacionado a colores de las fuentes, el tamaño, etc. De esta manera se maneja de forma independiente a los demás.
- Se puede pensar en crear una clase Buffer, que sea un objeto que le delegue toda la responsabilidad a un buffer concreto, como en este caso el BufferSTC. La razón de esto, es para definir en esta clase solo los métodos que corresponden a la API de un buffer, y separarlos de los métodos propios que tiene en este caso el STC.
- Dado que el buffer es la interfaz que captura los eventos, se debe definir un mecanismo en que este pueda transmitir estos eventos a otros. Por ejemplo, el evento de una tecla enter al módulo que tabula. La propuesta de implementación hace uso del patrón observador.
