{"id":49418224,"url":"https://github.com/mongoose-studio/alcaparra-lsp","last_synced_at":"2026-04-29T04:09:29.068Z","repository":{"id":351796874,"uuid":"1212176199","full_name":"mongoose-studio/alcaparra-lsp","owner":"mongoose-studio","description":"Servidor de lenguaje (LSP) para AlcaparraLang con soporte para autocompletado, validación, análisis estático y herramientas de desarrollo.","archived":false,"fork":false,"pushed_at":"2026-04-16T13:38:54.000Z","size":1432,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T15:33:50.831Z","etag":null,"topics":["alcaparra","alcaparra-lang","code-analysis","developer-tools","ide","jetbrains","language-server","language-server-protocol","lsp","rust","static-analysis","tooling","tower-lsp","vscode"],"latest_commit_sha":null,"homepage":"https://alcaparralang.netlify.app/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mongoose-studio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-16T06:12:39.000Z","updated_at":"2026-04-16T13:38:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mongoose-studio/alcaparra-lsp","commit_stats":null,"previous_names":["mongoose-studio/alcaparra-lsp"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/mongoose-studio/alcaparra-lsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mongoose-studio%2Falcaparra-lsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mongoose-studio%2Falcaparra-lsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mongoose-studio%2Falcaparra-lsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mongoose-studio%2Falcaparra-lsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mongoose-studio","download_url":"https://codeload.github.com/mongoose-studio/alcaparra-lsp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mongoose-studio%2Falcaparra-lsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32410030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T03:46:11.172Z","status":"ssl_error","status_checked_at":"2026-04-29T03:37:55.317Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alcaparra","alcaparra-lang","code-analysis","developer-tools","ide","jetbrains","language-server","language-server-protocol","lsp","rust","static-analysis","tooling","tower-lsp","vscode"],"created_at":"2026-04-29T04:09:27.940Z","updated_at":"2026-04-29T04:09:29.057Z","avatar_url":"https://github.com/mongoose-studio.png","language":"Rust","funding_links":["https://ko-fi.com/mongoosestudio"],"categories":[],"sub_categories":[],"readme":"# alcaparra-lsp\n### by Mongoose Studio\n\n![Rust](https://img.shields.io/badge/Rust-1.94+-orange)\n![Alcaparra](https://img.shields.io/badge/Alcaparra-0.1.0-olive)\n![LSP](https://img.shields.io/badge/LSP-3.17-blue)\n![License](https://img.shields.io/badge/license-MIT-green)\n![Status](https://img.shields.io/badge/status-active-success)\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/mongoose-studio/alcaparra-lang/main/alcaparra-banner-dark.png\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/mongoose-studio/alcaparra-lang/main/alcaparra-banner.png\"\u003e\n  \u003cimg alt=\"AlcaparraLang LSP\" height=\"64px\" src=\"https://raw.githubusercontent.com/mongoose-studio/alcaparra-lang/main/alcaparra-banner-dark.png\"\u003e\n\u003c/picture\u003e\n\n**alcaparra-lsp** es el servidor de lenguaje oficial de [AlcaparraLang](https://github.com/mongoose-studio/alcaparra-lang).\n\nConvierte archivos `.caper` en una experiencia de desarrollo completa: diagnósticos en tiempo real, autocompletado inteligente, navegación de código y tooling profesional directamente en tu editor.\n\nImplementa el protocolo LSP 3.17 sobre [tower-lsp](https://github.com/ebkalderon/tower-lsp) y provee diagnósticos en tiempo real, autocompletado contextual, hover con documentación, go-to-definition, rename, formateo y highlighting semántico completo para archivos `.caper` y `.capercfg`.\n\nFunciona con cualquier editor compatible con LSP. Las integraciones oficiales son:\n\n- **[alcaparra-vscode](https://github.com/mongoose-studio/alcaparra-vscode)** — extensión para Visual Studio Code\n- **[alcaparra-intellij](https://github.com/mongoose-studio/alcaparra-intellij)** — plugin para JetBrains IDEs (IntelliJ IDEA, PHPStorm, RustRover, etc.)\n\nA diferencia de integraciones básicas o sintaxis highlighting,\n**alcaparra-lsp** entiende el código: analiza scopes, detecta errores reales\ny provee tooling comparable al de lenguajes modernos.\n\n**En resumen**: **alcaparra-lsp** convierte tu editor en una herramienta de desarrollo real para AlcaparraLang... rápida, precisa y sin dolores de cabeza 🇨🇱.\n\n### En 10 segundos:\n\n- Escribe `.caper`\n- Ve errores en tiempo real\n- Autocompleta funciones y variables\n- Navega código como en cualquier lenguaje moderno\n\n---\n\n## Índice\n\n- [Funcionalidades](#funcionalidades)\n- [Instalación](#instalación)\n  - [Desde el código fuente](#desde-el-código-fuente)\n  - [Script curl (macOS / Linux)](#script-curl-macos--linux)\n  - [macOS .pkg](#macos-pkg)\n  - [Linux .deb](#linux-deb)\n- [Integración con VS Code](#integración-con-vs-code)\n- [Integración con JetBrains](#integración-con-jetbrains)\n- [Funcionalidades en detalle](#funcionalidades-en-detalle)\n  - [Diagnósticos](#diagnósticos)\n  - [Autocompletado](#autocompletado)\n  - [Hover](#hover)\n  - [Signature Help](#signature-help)\n  - [Go to Definition](#go-to-definition)\n  - [Referencias y Rename](#referencias-y-rename)\n  - [Highlighting semántico](#highlighting-semántico)\n  - [Code Lens](#code-lens)\n  - [Formateo](#formateo)\n  - [Document Symbols](#document-symbols)\n- [Color Scheme](#color-scheme)\n- [Configuración del proyecto (.capercfg)](#configuración-del-proyecto-capercfg)\n- [Arquitectura](#arquitectura)\n- [Desarrollo](#desarrollo)\n- [Estado del Proyecto](#estado-del-proyecto)\n- [Licencia](#licencia)\n- [Apoyo](#apoyo)\n- [Autor](#autor)\n- [Contribuciones](#contribuciones)\n\n---\n\n## Funcionalidades\n\n| Capacidad | Descripción |\n|-----------|-------------|\n| **Diagnósticos** | Errores de sintaxis, variables no declaradas, `MISSING_EMIT`, `DEAD_EMIT`, importaciones no usadas, reasignación de inmutables, redeclaraciones |\n| **Autocompletado** | Funciones stdlib, variables locales, funciones de usuario, rutas de `use`, variables de contexto |\n| **Hover** | Documentación de stdlib y DocBlocks `///` de funciones de usuario |\n| **Signature Help** | Parámetros de la función activa al escribir argumentos |\n| **Go to Definition** | Variables, funciones locales, funciones importadas, variables de contexto → `.capercfg` |\n| **References** | Todas las ocurrencias de un identificador en el documento |\n| **Document Highlight** | Resaltado de ocurrencias en el scope de la función actual |\n| **Rename** | Renombrado seguro de identificadores en todo el documento |\n| **Semantic Tokens** | Colores diferenciados para keywords, strings, funciones, namespaces, constantes, variables de contexto, patrones regex, `true`/`false`/`null` |\n| **Code Lens** | Botón ▶ Ejecutar sobre cada bloque `main {}` |\n| **Formateo** | Delega en el formateador de `alcaparra` con soporte de `.capercfg` |\n| **Document Symbols** | Outline del archivo (funciones, variables, constantes) |\n| **Workspace Cache** | Caché de documentos abiertos para respuestas inmediatas |\n\n---\n\n## Instalación\n\n### Script curl (macOS / Linux)\n\n```bash\ncurl -fsSL https://alcaparra.mongoosestudio.cl/install.sh | sh\n```\n\nDetecta automáticamente la plataforma e instala `caper` y `alcaparra-lsp` en `/usr/local/bin`.\n\n### macOS .pkg\n\nDescarga el instalador desde [Releases](https://github.com/mongoose-studio/alcaparra-lang/releases):\n\n```\nalcaparra-macos-arm64.pkg    # Apple Silicon (M1/M2/M3/M4/M5)\nalcaparra-macos-x86_64.pkg   # Intel\n```\n\n### Linux .deb\n\n```bash\nwget https://github.com/mongoose-studio/alcaparra-lang/releases/latest/download/alcaparra-linux-x86_64.deb\nsudo dpkg -i alcaparra-linux-x86_64.deb\n```\n\n### Desde el código fuente\n\nRequiere tener instalado [AlcaparraLang](https://github.com/mongoose-studio/alcaparra-lang) como crate local (el LSP lo usa como dependencia para parsear y formatear).\n\n```bash\ngit clone https://github.com/mongoose-studio/alcaparra-lsp\ncd alcaparra-lsp\ncargo build --release\n```\n\nEl binario queda en `target/release/alcaparra-lsp`. Cópialo a tu `PATH` o crea un symlink:\n\n```bash\nsudo ln -sf \"$(pwd)/target/release/alcaparra-lsp\" /usr/local/bin/alcaparra-lsp\n```\n\nVerifica la instalación:\n\n```bash\nalcaparra-lsp --version\n```\n\n---\n\n## Integración con VS Code\n\n1. Instala la extensión **AlcaparraLang** desde el Marketplace (o abre el `.vsix` descargado desde Releases).\n2. Abre cualquier archivo `.caper` — el LSP se inicia automáticamente.\n\nLa extensión detecta el binario `alcaparra-lsp` en el PATH. Si lo tienes en otra ubicación, configúralo en Settings:\n\n```json\n{\n  \"alcaparra.lspPath\":   \"/ruta/a/alcaparra-lsp\",\n  \"alcaparra.caperPath\": \"/ruta/a/caper\"\n}\n```\n\n**Comandos disponibles** (`Ctrl/Cmd + Shift + P`):\n\n| Comando | Descripción |\n|---------|-------------|\n| `AlcaparraLang: New Script` | Crea un archivo `.caper` con template `header + main` |\n| `AlcaparraLang: New Library` | Crea una librería `.caper` con template de funciones |\n| `AlcaparraLang: New Config` | Crea un `.capercfg` con todos los campos |\n| `AlcaparraLang: Run Script` | Ejecuta el archivo actual con `caper run` en terminal reutilizable |\n| `AlcaparraLang: New Project` | Ejecuta `caper new \u003cnombre\u003e` para crear un proyecto completo |\n\n---\n\n## Integración con JetBrains\n\n1. Instala el plugin **AlcaparraLang** desde el Marketplace (o desde `Settings → Plugins → Install from disk`).\n2. El plugin detecta automáticamente `alcaparra-lsp` en el PATH.\n3. Si es necesario, configura la ruta en `Settings → Tools → AlcaparraLang`.\n\n**Características adicionales del plugin:**\n\n- **Color Scheme propio** — configurable en `Settings → Editor → Color Scheme → AlcaparraLang`\n- **Cmd+Click** en variables de contexto → navega al `.capercfg`\n- **Cmd+Click** en funciones importadas → navega al archivo `.caper` externo\n- **Run Configuration** — ejecuta scripts `.caper` directamente desde el IDE con parámetros de contexto\n- **New → AlcaparraLang Script / Library** en el menú de proyecto\n- **Folding** de bloques `main {}`, `fn`, `header {}`, `if`, `foreach`\n- **Structure View** — outline de funciones y variables del archivo\n- **JSON Schema** para `.capercfg` con validación y autocompletado\n\n---\n\n## Funcionalidades en detalle\n\n### Diagnósticos\n\nEl LSP ejecuta tres pasadas de análisis con debounce de 300ms después de cada cambio:\n\n```\nInterpreter::validate(source)   → errores léxicos y de parse\nInterpreter::lint(source)       → MISSING_EMIT, DEAD_EMIT, NO_RETURN\nscope::check_undefined(source)  → variables/funciones no declaradas\n```\n\n**Diagnósticos disponibles:**\n\n| Código | Severidad | Descripción |\n|--------|-----------|-------------|\n| `UNDEFINED_VARIABLE` | Error | Variable o función usada sin declarar |\n| `IMMUTABLE_ASSIGN` | Error | Reasignación de variable `let` o `const` |\n| `VARIABLE_REDECLARATION` | Error | Redeclaración de nombre en el mismo scope |\n| `MISSING_EMIT` | Warning | El script no produce ninguna salida |\n| `DEAD_EMIT` | Warning | `emit` inalcanzable (hay otro `emit` antes) |\n| `NO_RETURN` | Warning | Función sin `emit` en al menos una rama |\n| `UNUSED_IMPORT` | Warning | Nombre importado con `use` que no se usa |\n\nEl análisis de scope es **conservador**: nunca reporta falsos positivos. Reconoce automáticamente variables de contexto del `.capercfg`, constantes del `header {}`, bindings de `match` (`n if n \u003c= 30`), parámetros de closures, variables de `foreach` y errores de `catch`.\n\n### Autocompletado\n\nEl autocompletado es contextual según la posición del cursor:\n\n- **Después de `use `** — módulos stdlib disponibles (`std.math`, `std.arrays`, `std.regex`, …) y aliases del `.capercfg` (`@formulas`, `@lib`, …)\n- **Después de `use std.math.`** — funciones del módulo (`round`, `abs`, `ceil`, …)\n- **En expresiones** — funciones stdlib importadas, funciones de usuario, variables declaradas, variables de contexto\n- **Prioridad** — las funciones locales aparecen primero, luego las stdlib importadas\n\n```caper\nuse std.math.{ ro| }   // → round, round_half_up, …\n\nlet x = rou|           // → round(n, decimales)\n```\n\n### Hover\n\nMuestra documentación al posicionar el cursor sobre un identificador:\n\n- **Funciones stdlib** — firma, módulo y descripción del catálogo\n- **Funciones de usuario** — DocBlock `///` escrito encima de la función\n- **Variables de contexto** — valor del `.capercfg` si está disponible\n\n```caper\n/// Calcula la gratificación legal anual.\n/// @param sueldo   Sueldo base mensual\n/// @param meses    Meses trabajados en el año\n/// @returns        Monto de gratificación\nfn calcular_gratificacion(sueldo, meses) { … }\n```\n\nAl hacer hover sobre `calcular_gratificacion(…)` en cualquier parte del archivo se muestra el DocBlock completo.\n\n### Signature Help\n\nAl abrir un paréntesis o escribir una coma dentro de una llamada, el LSP muestra los parámetros de la función con el argumento activo resaltado:\n\n```\nround( n,  decimales )\n       ^              ← cursor aquí: primer parámetro activo\n```\n\n### Go to Definition\n\n`Cmd+Click` (macOS) o `Ctrl+Click` navega a:\n\n| Identificador | Destino |\n|---|---|\n| Función local | Declaración `fn` en el mismo archivo |\n| Función en `main {}` | Declaración textual (fallback) |\n| Función importada | Archivo `.caper` externo en la línea de declaración |\n| Variable local | Declaración `let` / `var` |\n| Variable de contexto | Línea de la clave en el `.capercfg` del proyecto |\n\n### Referencias y Rename\n\n- **Find References** — lista todas las ocurrencias del identificador en el documento\n- **Document Highlight** — resalta ocurrencias dentro del scope de la función actual (no cruza bloques)\n- **Rename** — renombra el símbolo en todas sus ocurrencias con un solo comando\n\n### Highlighting semántico\n\nLos semantic tokens diferencian visualmente cada categoría de token. Los colores por defecto son:\n\n| Token | Color por defecto |\n|---|---|\n| Keywords (`let`, `fn`, `emit`, …) | Según tema del IDE |\n| Strings | Según tema del IDE |\n| Números | Según tema del IDE |\n| Funciones (declaración e invocación) | Azul `#5fb4e8` |\n| Módulos / namespaces en `use` | Púrpura `#c678dd` |\n| Nombres importados en `use` | Azul `#5fb4e8` |\n| Constantes (`const`) | `enumMember` del tema |\n| Variables de contexto (`.capercfg`) | Verde `#9bba2c`, **negrita**, subrayado |\n| Variables mutables (`var`) | Con subrayado sutil |\n| Patrones regex | Dorado `#e5c07b` |\n| `true` / `false` / `null` | Naranja `#d19a66` |\n| DocBlocks `///` | Color de doc comment del tema |\n| Tags `@param`, `@returns` | Color de doc comment tag, negrita |\n\nTodos los colores son personalizables en ambos IDEs (ver [Color Scheme](#color-scheme)).\n\n### Code Lens\n\nSobre cada bloque `main {}` aparece el lens **▶ Ejecutar** que lanza `caper run` en la terminal del IDE.\n\n```caper\n▶ Ejecutar          ← lens clickeable\nmain {\n    emit { resultado: 42 };\n}\n```\n\n### Formateo\n\nEl comando **Format Document** delega en el formateador de `alcaparra`. Respeta la configuración de la sección `fmt` del `.capercfg`:\n\n```json\n{\n  \"fmt\": {\n    \"indent_size\":     4,\n    \"quotes\":          \"double\",\n    \"max_blank_lines\": 1\n  }\n}\n```\n\n### Document Symbols\n\nEl outline del archivo lista funciones, variables y constantes para navegación rápida. Disponible en:\n\n- VS Code: barra de breadcrumbs y `Cmd+Shift+O`\n- JetBrains: Structure View (`Cmd+7`)\n\n---\n\n## Color Scheme\n\n### VS Code\n\nLos colores por defecto se aplican automáticamente vía `configurationDefaults` en el `package.json` de la extensión. Para personalizarlos, edita `editor.semanticTokenColorCustomizations` en tu `settings.json`:\n\n```json\n{\n  \"editor.semanticTokenColorCustomizations\": {\n    \"rules\": {\n      \"function\":  \"#5fb4e8\",\n      \"namespace\": \"#c678dd\",\n      \"regexp\":    \"#e5c07b\",\n      \"type\":      \"#d19a66\",\n      \"*.contextVariable\": {\n        \"bold\":      true,\n        \"underline\": true\n      }\n    }\n  }\n}\n```\n\n### JetBrains\n\nVe a `Settings → Editor → Color Scheme → AlcaparraLang`. El panel muestra un fragmento de código de ejemplo con cada token coloreado y permite personalizar cada categoría:\n\n```\nVariables\n  ├─ Variable mutable (var)\n  ├─ Variable inmutable (let)\n  └─ Variable de contexto (.capercfg)\nFunciones\n  └─ Nombre de función\nImportaciones\n  ├─ Módulo / namespace (use)\n  └─ Nombre importado\nLiterales\n  ├─ true / false / null\n  └─ Patrón regex\nDocBlock\n  ├─ Comentario de documentación\n  └─ Tag (@param, @returns)\n```\n\n---\n\n## Configuración del proyecto (.capercfg)\n\nEl LSP detecta automáticamente el `.capercfg` más cercano subiendo desde el directorio del archivo abierto. Extrae:\n\n- **`context`** — variables inyectadas disponibles en los scripts (se excluyen de `UNDEFINED_VARIABLE`)\n- **`paths`** — aliases de ruta para resolver imports externos (`use @formulas.lib`)\n- **`fmt`** — configuración del formateador\n\nEjemplo de `.capercfg` completo:\n\n```json\n{\n  \"name\":    \"mis-formulas\",\n  \"version\": \"1.0.0\",\n  \"entry\":   \"main.caper\",\n  \"context\": {\n    \"SUELDO_BASE\":  850000,\n    \"FONASA_TASA\":  0.07,\n    \"PAIS\":         \"CL\"\n  },\n  \"paths\": {\n    \"@formulas\": \"./formulas\",\n    \"@lib\":      \"./lib\"\n  },\n  \"fmt\": {\n    \"indent_size\":     4,\n    \"quotes\":          \"double\",\n    \"max_blank_lines\": 1\n  }\n}\n```\n\nEl LSP provee validación JSON, autocompletado y hover dentro del `.capercfg` a través del JSON Schema embebido en el plugin/extensión.\n\n---\n\n## Arquitectura\n\n```\nsrc/\n  main.rs           → inicializa tower-lsp, registra módulos\n  backend.rs        → todos los handlers LSP (impl LanguageServer)\n  analysis.rs       → orquesta 3 pasadas: validate → lint → scope\n  scope.rs          → detecta variables/funciones no declaradas\n  completion.rs     → autocompletado contextual (use, stdlib, general)\n  hover.rs          → hover para stdlib y funciones de usuario\n  signature.rs      → signature help al escribir argumentos\n  symbols.rs        → outline, goto-definition, references, rename\n  codelens.rs       → CodeLens \"▶ Ejecutar\" sobre main {}\n  docblock.rs       → parser de /// DocBlocks\n  formatting.rs     → delega en alcaparra::formatter\n  semantic.rs       → semantic tokens (11 tipos, delta-encoded)\n  catalog.rs        → catálogo estático de ~120 funciones stdlib\n  workspace.rs      → caché de documentos abiertos\n  project_config.rs → lectura de .capercfg + resolución de aliases\n```\n\nEl análisis pesado (parsing, validación) corre en `tokio::task::spawn_blocking` para no bloquear el event loop del LSP. Los diagnósticos tienen debounce de 300ms.\n\n---\n\n## Desarrollo\n\n```bash\n# Build de desarrollo\ncargo build\n\n# Build de release (el binario que usa el IDE)\ncargo build --release\n\n# Verificar tipos sin compilar\ncargo check\n```\n\nDespués de cualquier cambio, hacer `cargo build --release` y recargar la ventana del IDE:\n\n- **VS Code**: `Cmd+Shift+P → Developer: Reload Window`\n- **JetBrains**: `File → Invalidate Caches → Restart`\n\n### Generar instaladores de release\n\nEl script `scripts/build-release.sh` produce los artefactos para distribución. Requiere ejecutarse en ambas arquitecturas:\n\n```bash\n# Mac Apple Silicon (arm64) → produce macos-arm64\n./scripts/build-release.sh --version 0.1.0\n\n# Mac Intel (x86_64) → produce macos-x86_64 + linux-x86_64\n./scripts/build-release.sh --version 0.1.0\n```\n\nLuego combinar los artefactos y publicar:\n\n```bash\ngh release create v0.1.0 dist/* --title 'v0.1.0' --notes 'Early Access'\n```\n\n**Dependencias** (Mac Intel solamente):\n\n```bash\nrustup target add x86_64-unknown-linux-gnu\ncargo install cargo-zigbuild\nbrew install zig dpkg\n```\n\n---\n\n## Estado del proyecto\n\n**alcaparra-lsp** está en fase Early Access.\n\n- API estable\n- Funcionalidades principales\n- Posibles cambios breaking\n- Pendiente publicación en marketplace de plugins\n\n---\n\n## Licencia\n\nEste proyecto está licenciado bajo la Licencia MIT — ver el archivo [LICENSE](LICENSE) para más detalles.\n\n## Autor\n\n**Marcel Rojas**  \n[marcelrojas16@gmail.com](mailto:marcelrojas16@gmail.com)  \n__Mongoose Studio__\n\n## Apoyo\n\nSi te gusta este proyecto, puedes apoyarme aquí:\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/mongoosestudio)\n\n## Contribuciones\n\nLas contribuciones son bienvenidas. Por favor:\n\n1. Fork el proyecto\n2. Crea una rama para tu feature (`git checkout -b feature/amazing-feature`)\n3. Commit tus cambios (`git commit -m 'Add amazing feature'`)\n4. Push a la rama (`git push origin feature/amazing-feature`)\n5. Abre un Pull Request\n\n---\n\n💚 **alcaparra-lsp** by Mongoose Studio\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmongoose-studio%2Falcaparra-lsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmongoose-studio%2Falcaparra-lsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmongoose-studio%2Falcaparra-lsp/lists"}