NEXIS — Language Support for Visual Studio Code
Extensión oficial del lenguaje Nexis para Visual Studio Code: resaltado de
sintaxis, comentarios, snippets, ejecución con un clic sin depender de Code
Runner y soporte completo para archivos fuente .nxs y módulos .nex.
Nexis = Native Extensible eXecution & Integration System: un lenguaje
de programación tipado y educativo con errores Clarkeos NX descriptivos,
programación de nivel superior sin main, plantillas genéricas, structs y
clases, colecciones (Vector, Map, Set, Tree, Trie, Graph…) y
librería estándar en español e inglés. Proyecto y documentación en
github.com/BlueNovaStudio/nexis-lang.
Características
- Resaltado de sintaxis (
syntaxes/nexis.tmLanguage.json) alineado con el
lexer del compilador y la documentación V0.0.6:
- Palabras reservadas:
if, else, switch, case, default, for,
foreach, while, do, in, step, break, continue, func,
void, emit, try, catch, finally, throw, lanzar, class,
struct, self, this, template, type_full, const, auto.
- Tipos:
int, short, long, unsigned, float, double, char,
string, bool, void, auto y los tipos de error nativos (Error,
ErrorValidacion, ErrorIndice, …).
- Operadores reales: aritméticos (
+ - * / % ** ++ --), comparación,
lógicos, asignación compuesta, flecha de retorno ->, ternario
(a) => x <--> y y rangos .. / ....
- Cadenas interpoladas
fs"…{expr}…", cadenas "…" y caracteres 'c'.
- Comentarios:
# y #/ de línea, // de línea y bloques /* */,
#/* */# y #{ }#.
- Literales numéricos con sufijos reales
f, L, LL, u, uL.
- Directivas
#inject libreria; y #inject "archivo.nex";.
Console.print, Console.println, Console.input y las librerías
nativas math.*, string.*, file.*, time.*, random.*.
- Colecciones genéricas (
Vector<T>, Map<K, V>, Graph<T>, …), clases y
llamadas del usuario.
- Comentarios y edición (
language-configuration.json): toggle con //,
auto-cierre de {}, [], (), comillas y de los comentarios de bloque
propios (#{…}#, #/*…*/#), plegado e indentación automática.
- Snippets (
snippets/nexis.code-snippets) — 27 atajos: inject,
injectf, func, voidfn, template, if, ife, for, forstep,
forexcl, foreach, while, dowhile, switch, tryc, trycf,
p, pl, input, fs, Vector, Map, Set, class, init,
struct, emit, tern.
Instalación
Desde el Marketplace / VSIX
- Descarga el
.vsix (ver versions/) o genera el tuyo con vsce package.
- En VS Code: Extensiones → menú
… → Install from VSIX….
- Selecciona el archivo y reinicia VS Code si lo pide.
En desarrollo (modo Extension Host)
# abre la carpeta extension/ y pulsa F5
code ./extension
Al pulsar F5 se abre una ventana con la extensión cargada (configuración en
.vscode/launch.json). Crea un .nxs y comprueba el coloreado.
Uso rápido
#inject math;
#inject Vector;
int doble(int: x) -> int {
emit -> x * 2
}
Vector<int> numeros = [1, 2, 3]
foreach (n in numeros) {
Console.println(fs"{n} -> {doble(n)}")
}
Console.println(math.sqrt(81))
Salida:
1 -> 2
2 -> 4
3 -> 6
9
El código de nivel superior se ejecuta directamente; Nexis no exige una
función main.
📚 Documentación
⚙️ Configurar dónde está el ejecutable
La extensión no necesita Code Runner: llama directamente a nexisi. Para que
encuentre el ejecutable puedes:
- PATH: instala
nexisi/nexisc como en docs/installation.md y deja
los valores por defecto (nexisi / nexisc).
- Ruta completa: Configuración → busca "Nexis" →
Nexis: Interpreter Path, o ejecuta el comando Nexis: Configurar ruta del intérprete/compilador.
- Compilador en vez de intérprete: activa
Nexis: Use Compiler
(nexis.useCompiler) para correr con nexisc.
| Ajuste |
Por defecto |
Qué controla |
nexis.interpreterPath |
nexisi |
Ejecutable intérprete (nombre en PATH o ruta absoluta). |
nexis.compilerPath |
nexisc |
Ejecutable compilador. |
nexis.useCompiler |
false |
Ejecutar con nexisc en lugar de nexisi. |
nexis.bytecode |
false |
Usar el backend bytecode (nexisi --bytecode). |
nexis.reuseTerminal |
true |
Reutilizar la misma terminal integrada. |
⚖️ Licencia
Distribuido bajo la licencia incluida en LICENSE.txt.
| |