PlumaCode
Un editor de código nativo, con Markdown que se edita sobre la página ya renderizada.
- Pregunta
- ¿Puede un editor de código abrir al instante, aguantar un archivo de 100 MB y editar Markdown sobre la página renderizada, sin Electron?
- Resultado
- En obras. Los tests ya comprueban que un archivo de 100 MB se abre sin congelar la ventana y que escribir tarda menos de 16 ms. Todavía no hay versión publicada.
Para qué sirve
PlumaCode es un editor de código en la línea de Sublime Text: abre rápido, funciona sin configurarlo y no tiene sistema de plugins. Está escrito en C++20 con Qt 6 y Scintilla, así que no lleva dentro ningún motor de navegador.
Lo diferente es el Markdown. Un archivo .md se abre ya renderizado y se edita directamente sobre él, como la vista previa en vivo de Obsidian. Con una tecla (Cmd/Ctrl+E) pasas al código fuente. Al guardar nunca se reformatea el archivo: si abres un documento y lo guardas, los bytes son los mismos.
En qué punto está
Está en una fase temprana y todavía no hay versión publicada. Ya funciona como editor de archivos sueltos, con pestañas, buscar y reemplazar con expresiones regulares, resaltado de sintaxis y recuperación del trabajo sin guardar tras un cierre inesperado. En macOS se compila como app universal y aparece en «Abrir con» del Finder para archivos de texto y de código.
Cada una de estas afirmaciones tiene un test detrás. Entre ellos:
- todos los ejemplos de la especificación CommonMark 0.31.2 y las extensiones de GitHub para tablas, listas de tareas, tachado y enlaces automáticos;
- entradas pensadas para que un parser de Markdown ingenuo se vuelva lento, y entradas aleatorias;
- archivos en todas las codificaciones y finales de línea admitidos, que deben guardarse idénticos byte a byte;
- un archivo de 100 MB, que debe abrirse sin bloquear la ventana y responder a cada tecla en menos de 16 ms;
- un proceso cerrado con
kill -9, cuyos documentos sin guardar debe recuperar la siguiente instancia.
Ajustes
El menú PlumaCode → Settings… abre un archivo settings.jsonc con todas las opciones comentadas y explicadas. Para cambiar una, quítale el comentario. Los cambios se aplican al guardar. Si un valor es incorrecto, una barra encima del documento lo indica, y solo ese ajuste vuelve a su valor por defecto.
Disponibilidad
El código todavía no es público y no hay versión publicada. Se compila con CMake y Qt 6.8 en macOS, Windows y Linux, y sus tests se ejecutan con cada cambio. Cuando haya una primera versión, estará aquí.