¡Hola Comunidad!
Recientemente, migré una serie de repositorios de Objectscript de formato XML a UDL.
Después de la migración, me decepcionó un poco la presentación en la interfaz web de GitLab.
Dado que la sintaxis de Objectscript es compatible con GitHub, pensé que también sería compatible con GitLab. Desafortunadamente, la librería utilizada por GitLab para resaltar el código no tiene una extensión para admitir Objectscript.
GitLab usa la librería Rouge, que puede resaltar más de 200 idiomas. Es una librería escrita en Ruby (consulta la página de GitHub), pero Objectscript no está en la lista.
Así que decidí desarrollar una extensión de Objectscript.
El subproyecto Rouge está disponible en mi página de GitHub.
Para propósitos de prueba, preparé un repositorio objectscript-syntax-for-gitlab para crear fácilmente un contenedor con un entorno Ruby listo y una página de prueba.
Estado de desarrollo actual:
Características | Estado |
---|---|
&JS<> | implementado |
&HTML<> | implementado |
&SQL<> | Parcial |
Método con lenguaje Python | implementado |
Método con lenguaje Javascript | implementado |
XData contiene XML | implementado |
XData contiene JSON | implementado |
Almacenamiento (definición XML) | implementado |
Consulta | Parcial |
Etiqueta en método | implementado |
Rutina | Implementado |
CSP | Aún no |
Archivo de macros (INC) | Aún no |
Instalación
Simplemente clona el repositorio, extrae la imagen y empieza:
git clone https://github.com/lscalese/objectscript-syntax-for-gitlab.git
cd objectscript-syntax-for-gitlab
docker pull ghcr.io/lscalese/objectscript-syntax-for-gitlab:latest
docker-compose up -d
Prueba
Cuando se inicia el contenedor, puedes abrir esta URL para mostrar una página de prueba: http://localhost:9592/objectscript
Es posible seleccionar un tema diferente en la parte inferior de la página.
Si quieres probar el resaltado con tu propio código, puedes usar este pequeño formulario: http://localhost:9692/csp/irisapp/lscalese.objectscript4gitlab.test.cls
(el login/password es el estándar _system/SYS)
Copia/pega tu código en el área de texto y haz clic en enviar. Tu código se abrirá en una nueva pestaña Advertencia: El navegador podría bloquear la apertura de la nueva página. Por favor acepta si es necesario.
El botón “reset” permite restaurar la página de prueba por defecto.
No dudes en enviarme comentarios sobre tus pruebas creando un Issue en mi GitHub. Necesito información para detectar errores y mejorar tanto como sea posible antes de enviar un pull request a Rouge.
Espero que este proyecto sea de utilidad para la comunidad y merezca vuestro apoyo ;D
¡Gracias!