meeko lsp
Arranca el servidor de lenguaje de los componentes .meeko, que usan VS Code, Neovim, Helix, Zed y JetBrains.
meeko lsp arranca el servidor de lenguaje (LSP) de Meeko: diagnósticos, completado, hover, ir a definición, acciones rápidas, CodeLens, formato con Prettier, tokens semánticos de reactividad y la comprobación de los contratos de páginas y layouts, para los archivos .meeko. Habla JSON-RPC por el transporte que se le indique, normalmente la entrada y salida estándar. No se ejecuta a mano: lo lanza el editor.
Es el mismo programa que el binario meeko-language-server del paquete; los dos aceptan los mismos transportes.
Uso#
meeko lsp --stdioEn Neovim 0.11, con nvim-lspconfig:
vim.filetype.add({ extension = { meeko = "meeko" } })
vim.lsp.config("meeko", {
cmd = { "npx", "meeko-language-server", "--stdio" },
filetypes = { "meeko" },
root_markers = { "package.json", "tsconfig.json" },
init_options = { trusted = true },
})
vim.lsp.enable("meeko")Tipo#
meeko lsp --stdio | --node-ipc | --socket=<puerto> | --pipe=<nombre>Opciones#
| Opción | Tipo | Por defecto | Descripción |
|---|---|---|---|
--stdio |
transporte | JSON-RPC por stdin y stdout. Es el que usan casi todos los editores. | |
--node-ipc |
transporte | El canal IPC de Node, para un cliente que lanza el servidor con fork. |
|
--socket=<puerto> |
transporte | Un socket TCP en ese puerto. | |
--pipe=<nombre> |
transporte | Una tubería con nombre (un named pipe en Windows, un socket de dominio en POSIX). |
Las opciones del servidor van en initializationOptions del initialize, no en la línea de comandos: trusted (true por defecto: ejecuta meeko.config.* y los setup de los módulos), projectContracts, diagnosticsDelay y format. Véase Opciones de inicialización.
Resultado#
Un proceso que atiende al editor hasta que éste cierra la conexión. Mientras corre:
- stdout es del protocolo. Con
--stdio, todo lo que el código del proyecto escriba conconsole.log,info,warn,errorodebugse envía al log del cliente, no a stdout, para no corromper el protocolo. - Comprueba el proyecto. En un workspace de confianza genera las declaraciones de los componentes y comprueba los contratos de páginas, layouts y la página de error (
MEEK_PAGE_PROPS,MEEK_LAYOUT_PROPS,MEEK_ERROR_PROPS) 450 ms después de cada cambio guardado. - Lee el proyecto. El
tsconfig.jsonde la raíz del paquete,meeko.config.*y los archivos de.meeko/types/.
Sin transporte, imprime Uso: meeko lsp --stdio | --node-ipc | --socket=<puerto> | --pipe=<nombre> en la salida de errores y termina con código 1.
Ejemplos#
Helix#
# .helix/languages.toml
[language-server.meeko]
command = "npx"
args = ["meeko-language-server", "--stdio"]
config = { trusted = true }
[[language]]
name = "meeko"
scope = "source.meeko"
file-types = ["meeko"]
roots = ["package.json", "tsconfig.json"]
grammar = "html"
block-comment-tokens = { start = "<!--", end = "-->" }
language-servers = ["meeko"]hx --health meeko confirma que Helix encuentra el servidor.
Abrir código de terceros sin ejecutarlo#
init_options = { trusted = false },Con trusted: false, el servidor no ejecuta meeko.config.* ni los módulos: lee la configuración de forma estática (las listas literales de layers e imports) y omite la comprobación de contratos. La extensión de VS Code lo envía según la confianza del workspace.
Comprobar que arranca#
npx meeko lspUso: meeko lsp --stdio | --node-ipc | --socket=<puerto> | --pipe=<nombre>Si ves esta línea, el binario se resuelve y Node 24 lo ejecuta; el editor debe pasar --stdio.
Errores comunes#
Lanzarlo sin transporte#
meeko lspUso: meeko lsp --stdio | --node-ipc | --socket=<puerto> | --pipe=<nombre> y código 1. Otro valor, como --tcp, da lo mismo.
meeko lsp --stdioEl servidor global en lugar del del proyecto#
cmd = { "meeko-language-server", "--stdio" }, -- instalado con npm i -gUn @meekojs/meeko global de otra versión compila los componentes con otro compilador y otros tipos que meeko check y meeko build: los diagnósticos del editor no coinciden con los de CI.
cmd = { "npx", "meeko-language-server", "--stdio" },npx (o pnpm exec) usa el binario de node_modules/.bin del proyecto.
Notas#
- Ayuda. Desde
1.7,meeko --helplista los cuatro transportes (antes sólo--stdio) ymeeko lsp --helpimprime la ayuda del comando sin arrancar el servidor. - Seguridad. Con
trusted: true, abrir un proyecto ejecuta sumeeko.config.*y elsetupde sus módulos con Node, igual quemeeko check. Usatrusted: falsecon código que no conoces. - Requisitos. Node 24 o posterior y
@meekojs/meekoinstalado en el proyecto. Reconoce los componentes por la extensión.meeko; ellanguageIdque envíe el editor no importa. - Rendimiento. Los diagnósticos de un componente esperan
diagnosticsDelay(300 ms) tras la última edición, y la comprobación del proyecto 450 ms tras guardar; los cambios de.meeko/y denode_modulesno la lanzan. - Windows y POSIX. Con
--pipe, el nombre sigue la convención de la plataforma; con--stdiono hay diferencias.