个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证lenguaje de programación en español
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Cometa es un lenguaje de programación con sintaxis en español, pensado para aprender y para hacer juegos 2D por diversión. Los bloques se marcan con tabuladores, los tipos son estáticos y el programa se traduce a Go.查看完整 README ↗
Cometa es un lenguaje de programación con sintaxis en español, pensado para aprender y para hacer juegos 2D por diversión. Los bloques se marcan con tabuladores, los tipos son estáticos y el programa se traduce a Go.
usar std/mate
usar std/pincel
usar std/pincel/graficos
tipo Partida
pos mate.Vec2
pub fn actualizar(dt decimal)
@pos.x += 40 * dt
pub fn pintar()
graficos.rectangulo_v(@pos, {10, 10}, .Rojo)
fn inicio()
pincel.ejecutar(Partida {}, titulo = "Mi juego") atrapar |error|
imprimir(error)
cometa de la página de versiones y ponlo en tu PATH.COMETA_GO..vsix de la misma página; los pasos están en docs/empezar.md.cometa --version
cometa nuevo hola
cd hola
cometa ejecutar principal.cometa
Para un juego, usa cometa nuevo mi_juego --juego. La primera vez se descargan las dependencias del juego (hace falta internet); después es rápido. La guía completa está en docs/empezar.md.
| Quiero… | Lee |
|---|---|
| Ver programas cortos y comentados, de menor a mayor dificultad | examples/ |
| Hacer un juego | docs/juegos.md |
| Dibujar mis propios sprites con código | docs/lienzo.md |
| Animar con curvas de suavizado | docs/curvas.md |
| Generar terrenos con ruido | docs/ruido.md |
| Crear menús y paneles | docs/ui.md |
| Consultar todas las reglas del lenguaje | specs.md |
| Comando | Qué hace |
|---|---|
cometa nuevo <nombre> [--juego] [--sin-agentes] | Crea un proyecto listo para ejecutar, con AGENTS.md para asistentes de IA (que actúan como profesor). |
cometa ejecutar <archivo> | Compila y ejecuta. |
cometa construir <archivo> -o <salida> | Genera un ejecutable con todos los recursos incluidos. |
cometa captura <juego> -o <png> | Ejecuta un juego con la ventana oculta y guarda una captura. |
cometa mapa | Abre el editor de mapas en el navegador. |
cometa compilar <archivo> -o <salida.go> | Genera el código Go. |
cometa lsp | Inicia el servidor de lenguaje para el editor. |
enum Estado
Menu
Jugando
Fin
fn describir(estado Estado) cadena
casos estado
.Menu => "menú"
.Jugando => "jugando"
.Fin => "fin"
fn inicio()
var puntos = 0
mientras puntos < 3
puntos += 1
var texto = "42".a_entero() o 0
imprimir("${describir(.Jugando)}: ${puntos + texto}")
Además tiene listas, mapas [cadena: entero], opcionales (T?), resultados (T!), interfaces, genéricos, módulos con usar y casos sobre enums, números y textos. Todo está descrito en specs.md.
El repositorio contiene el compilador y el servidor de lenguaje (Go) y la extensión de VS Code (TypeScript). Consulta AGENTS.md para las convenciones del proyecto.
go test ./...
go vet ./...
cd vscode-extension
npm install
npm run build
npm run build compila el cliente y deja el ejecutable en vscode-extension/bin/. Para probar la extensión, abre el repositorio en VS Code, pulsa F5 y elige Run Cometa Extension. Si el servidor está en otra ruta, configura cometa.server.path; los fallos de arranque aparecen en Salida → Cometa Language Server.
El paquete github.com/crsolver/cometa/pkg/cometa es la API estable para otros programas Go (por ejemplo, un servidor que compila proyectos de sus usuarios) y no requiere lanzar el ejecutable. Acepta un archivo en disco o un proyecto en memoria, y devuelve el Go generado o un *cometa.Error con diagnósticos (archivo, línea, columna, etapa y mensaje; mismos nombres JSON que cometa probar --json):
archivos := map[string][]byte{
"principal.cometa": []byte("usar mundo/mapa\nfn inicio()\n\timprimir(mapa.ancho())\n"),
"mundo/mapa.cometa": []byte("pub fn ancho() entero 16\n"),
}
codigoGo, err := cometa.Compile("principal.cometa", cometa.Options{Files: archivos})
var e *cometa.Error
if errors.As(err, &e) {
for _, d := range e.Diagnostics {
fmt.Println(d.File, d.Line, d.Column, d.Message)
}
}
cometa.Check hace el mismo análisis sin generar código. Añádelo a tu módulo con go get github.com/crsolver/cometa@latest. Todo lo que está bajo internal/ puede cambiar sin aviso.
Licencia: MIT.
Las asperezas conocidas del lenguaje y la biblioteca están en MEJORAS.md.