raylang
Syntax highlighting for the raylang programming language (.ray), plus its compiled templates (.ray.html) and LSP setup.
Details
Installs
- Total 0
- Win 0
- Mac 0
- Linux 0
| Sep 6 | Sep 5 | Sep 4 | Sep 3 | Sep 2 | Sep 1 | Aug 31 | Aug 30 | Aug 29 | Aug 28 | Aug 27 | Aug 26 | Aug 25 | Aug 24 | Aug 23 | Aug 22 | Aug 21 | Aug 20 | Aug 19 | Aug 18 | Aug 17 | Aug 16 | Aug 15 | Aug 14 | Aug 13 | Aug 12 | Aug 11 | Aug 10 | Aug 9 | Aug 8 | Aug 7 | Aug 6 | Aug 5 | Aug 4 | Aug 3 | Aug 2 | Aug 1 | Jul 31 | Jul 30 | Jul 29 | Jul 28 | Jul 27 | Jul 26 | Jul 25 | Jul 24 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Paquete de Sublime Text 4 para raylang
Espejo de solo lectura — publicado desde
raylang/editors/sublime; el desarrollo y los PRs van al monorepo.Instalación: Package Control → Install Package → raylang (una vez aceptado en el canal; mientras tanto:
Preferences → Browse Packages…y clona este repo ahí comoraylang).
Soporte para archivos .ray en Sublime Text 4: resaltado de sintaxis + diagnósticos
en vivo (vía el Language Server raylang --lsp).
Es el equivalente a la extensión de VSCode (editors/vscode/), con la misma división:
| Pieza | Archivo | Qué hace |
|---|---|---|
| Coloreado | raylang.sublime-syntax |
clasifica tokens (palabras clave, tipos, literales…) con los mismos scopes que la gramática de VSCode |
| Comentarios | Comments.tmPreferences |
hace que Ctrl/Cmd+/ inserte // |
| Diagnósticos | (config del paquete LSP) | conecta raylang --lsp; ver abajo |
El coloreado es estático (no entiende el programa); la validación real —errores de léxico, sintaxis y tipos subrayados mientras escribes— la da el Language Server, igual que en los demás editores. La lógica vive toda en el binario de Rust; aquí no se duplica nada.
Instalación del coloreado
Sublime carga los paquetes desde su carpeta Packages. Copia (o enlaza) esta carpeta ahí con el
nombre raylang:
- En Sublime: Preferences → Browse Packages… (abre la carpeta
Packages). - Enlaza esta carpeta dentro, como
raylang:
# macOS (ajusta la ruta de Packages si difiere)
ln -s "$(pwd)" ~/"Library/Application Support/Sublime Text/Packages/raylang"
# Linux
ln -s "$(pwd)" ~/.config/sublime-text/Packages/raylang
- Abre cualquier
.ray. Abajo a la derecha debería decir raylang; si no, elígelo en el selector de sintaxis (o View → Syntax → raylang). Los templates compilados (*.ray.html, M55) usan la sintaxis raylang template (HTML + los delimitadores{{ }}/{% %}con la expresión coloreada como raylang) y reciben del mismo LSP los diagnósticos del template y, dentro de{{ }}/{% %}: autocompletado (params tipados, variables defor, y tras un.los miembros del receptor), hover con el tipo real, ir-a-definición, signature help, find-references/rename/highlight, outline y snippets de bloque (for/ifinsertan el bloque entero con placeholders).
No hay que compilar nada: el .sublime-syntax es declarativo (a diferencia del cliente de
VSCode, que sí es TypeScript a compilar).
Diagnósticos en vivo (Language Server)
Sublime Text 4 no trae LSP de fábrica: usa el paquete LSP de sublimelsp, instalable desde Package Control. Una vez instalado, se le declara el servidor de raylang. Es análogo a Neovim/Helix: solo configuración, sin compilar un cliente.
- Compila el binario de raylang y ponlo en el PATH (o anota su ruta):
cargo build --release # genera ./target/release/raylang
Instala el paquete LSP (Package Control → Install Package →
LSP).Declara el servidor de raylang. Desde LSP 2.13 los clientes viven en
Packages/User/LanguageServers.sublime-settings(Preferences → Package Settings → LSP → Language Servers); en versiones anteriores iban dentro de"clients"enLSP.sublime-settings(LSP migra solo el formato viejo). En el archivo nuevo el cliente va al NIVEL SUPERIOR, sin envoltorioclients:
{
"raylang": {
"enabled": true,
// ⚠️ Usa la RUTA ABSOLUTA al binario, no solo "ray"/"raylang". Sublime es una app
// de GUI y en macOS/Linux las apps de GUI NO heredan el PATH de tu shell (arrancan
// con un PATH mínimo del sistema), así que un comando a secas falla con
// "[Errno 2] No such file or directory: 'ray'" aunque tu terminal sí lo encuentre.
"command": ["/Users/TU_USUARIO/.local/bin/ray", "lsp"],
// El instalador (curl|sh) deja el binario ahí; si compilaste a mano, apunta a
// ".../target/release/ray". Un símlink estable evita tener que reeditar tras recompilar.
// El selector cubre los .ray Y los templates compilados .ray.html (M55).
"selector": "source.raylang | text.html.raylang"
}
}
Si algo no arranca,
LSP: Troubleshoot Server Configurationmuestra el selector y el comando EFECTIVOS — si no coinciden con lo que escribiste, hay una config vieja migrada enLanguageServers.sublime-settingspisando la tuya.
- Reabre un
.ray. El paquete LSP lanzaray lspy subraya los errores que el checker reporta (un error a la vez: el compilador es fail-fast; al corregirlo aparece el siguiente).
Por qué solo configuración. El protocolo (LSP/JSON-RPC) lo implementa por un lado nuestro binario (
raylang --lsp, sin dependencias) y por otro el paquete LSP de Sublime. El paquete de aquí solo aporta el coloreado y le dice a LSP cómo arrancar el servidor. Es la misma idea que en Neovim/Helix; VSCode es el único que necesita compilar un cliente propio porque su API de LSP es una librería de extensión, no un paquete aparte.
Alcance
El servidor implementa el núcleo del protocolo: diagnósticos en vivo, hover,
ir-a-definición (cruza archivos), find-references, rename (seguro, cruza archivos),
completado, signature help, formateo del documento (el mismo de ray fmt),
outline de símbolos (Goto Symbol in File) y resaltado de ocurrencias del símbolo bajo el
cursor. El paquete LSP de Sublime los expone sin configuración extra una vez declarado el cliente
(K para hover, “Goto Definition”, “Goto Symbol”, “LSP: Format File”, etc.).