Este artículo es una investigación inicial de la versión v0.0.19, a fecha de junio de 2026. Todavía no está registrado en Packagist y no se puede instalar por composer.
¿Qué es Laravel LSP?
Laravel LSP (Language Server Protocol) es la herramienta oficial que proporciona a los editores funciones de IDE conscientes del framework Laravel. El Language Server Protocol es un protocolo estándar de comunicación entre el cliente LSP (el editor) y el servidor LSP (Laravel LSP), y con él se logra una experiencia de desarrollo unificada en múltiples editores.
Funciones que ofrece Laravel LSP:
- Autocompletado: autocompletado de rutas, vistas, claves de configuración, claves de traducción, componentes Livewire, etc.
- Información de hover: al pasar el cursor muestra descripción, documentación e información de contexto
- Diagnóstico: detección en tiempo real de problemas en el código
- Enlaces de documento: enlaces entre archivos y recursos
- Quick fixes: sugerencias de corrección automática para problemas comunes
- Ir a definición: saltar a la ubicación de definición del símbolo
Por qué es necesario
El autocompletado PHP estándar del editor no comprende la capa de abstracción del framework Laravel. Por ejemplo:
- Al introducir el primer argumento de
Route::get() con un patrón de URI, no hay autocompletado
- Al introducir el nombre de vista en
view('users.index'), no se autocompletan los nombres reales de archivos de vista
- Las claves de archivos de configuración (
config('app.name')) y las claves de traducción (trans('messages.welcome')) quedan fuera del autocompletado
- El autocompletado y la verificación dentro de plantillas Blade tampoco son soportados por el editor de serie
Laravel LSP entiende esos “contextos propios del framework” y ofrece autocompletado y diagnóstico precisos.
Instalación
Instalación global
Instala globalmente con Composer:
composer global require laravel/lsp
Verifica que el directorio global bin de Composer esté en el PATH, y podrás arrancarlo con el siguiente comando:
Instalación desde el código fuente
Si vas a usar la versión de desarrollo, puedes clonar el repositorio y ejecutarlo:
gh repo clone laravel/lsp
cd lsp
composer install
php server
Configura un alias de shell para poder usar el comando laravel-lsp:
# Para Zsh
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.zshrc
source ~/.zshrc
# Para Bash
echo 'alias laravel-lsp="php /path/to/lsp/server"' >> ~/.bashrc
source ~/.bashrc
Guía de configuración por editor
Como Laravel LSP usa el protocolo LSP estándar, funciona en cualquier editor que soporte LSP. A continuación presentamos la configuración para los principales editores.
Sublime Text
Instala el paquete LSP, y luego añade la configuración del cliente en Preferences: LSP Settings:
{
"clients": {
"laravel-lsp": {
"enabled": true,
"command": ["laravel-lsp"],
"selector": "embedding.php | text.html.blade"
}
}
}
Neovim
En Neovim 0.11 o superior, puedes añadir una configuración LSP personalizada directamente:
vim.lsp.config("laravel_lsp", {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_markers = { "artisan", "composer.json", ".git" },
})
vim.lsp.enable("laravel_lsp")
Si usas nvim-lspconfig, regístralo así:
local lspconfig = require("lspconfig")
local configs = require("lspconfig.configs")
if not configs.laravel_lsp then
configs.laravel_lsp = {
default_config = {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_dir = lspconfig.util.root_pattern("artisan", "composer.json", ".git"),
},
}
end
lspconfig.laravel_lsp.setup({})
Cursor
Como Cursor soporta extensiones de VS Code, si tienes instalada la extensión de Laravel, la compatibilidad es automática. Para desarrollo local, usa un cliente LSP compatible con VS Code y especifica el comando:
VS Code
VS Code también dispone de funciones de cliente LSP, por lo que se puede configurar mediante extensiones.
OpenCode
En opencode.json habilita el soporte de LSP y configura Laravel LSP como servidor personalizado:
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"laravel-lsp": {
"command": ["laravel-lsp"],
"extensions": [".php", ".blade.php"]
}
}
}
Configuración con GitHub Copilot CLI
Si usas GitHub Copilot CLI, puedes configurarlo globalmente en ~/.copilot/lsp-config.json. No hace falta configuración adicional en el editor:
{
"lspServers": {
"laravel-lsp": {
"command": "laravel-lsp",
"fileExtensions": {
".php": "php",
".blade.php": "blade"
}
}
}
}
La configuración de servidor LSP del Copilot CLI también admite initializationOptions, con lo que puedes usar todas las opciones detalladas descritas a continuación.
Opciones de configuración
El cliente LSP puede pasar a Laravel LSP configuración detallada mediante initializationOptions.
Detección del entorno PHP
La opción phpEnvironment controla el comando PHP usado para indexar los datos del proyecto. Por defecto es auto, con detección automática:
| Valor | Comportamiento del comando PHP |
|---|
auto | Detecta en el orden Herd → Valet → Sail → Lando → DDEV → PHP local |
herd | Usa herd which-php |
valet | Usa valet which-php |
sail | Con Sail en ejecución, usa ./vendor/bin/sail php |
lando | Usa lando php |
ddev | Usa ddev php |
local | Usa directamente el binario PHP local |
Si la detección falla o se pasa un valor incorrecto, cae a php.
Ejemplo de configuración básica
{
"phpEnvironment": "auto",
"phpCommand": ["php"],
"definitionProvider": false
}
Configuración por función
Cada función se puede activar/desactivar por separado. Los sufijos son Completion, Diagnostics, Hover, Link, etc.:
{
"routeCompletion": true,
"routeDiagnostics": true,
"viewDiagnostics": false,
"translationHover": true,
"configLink": true,
"envCompletion": true,
"bladeComponentLink": true
}
Lista de funciones ofrecidas
| Área de función | Autocompletado | Hover | Diagnóstico | Enlace | Quick fix |
|---|
| Rutas | ✓ | ✓ | ✓ | ✓ | - |
| Vistas y Blade | ✓ | ✓ | ✓ | ✓ | ✓ |
| Traducción | ✓ | ✓ | - | - | - |
| Configuración | ✓ | ✓ | ✓ | ✓ | - |
| Variables de entorno | ✓ | ✓ | ✓ | ✓ | ✓ |
| Assets y Mix | ✓ | ✓ | ✓ | ✓ | - |
| Middleware | ✓ | ✓ | ✓ | ✓ | - |
| Inertia | ✓ | - | ✓ | ✓ | - |
| Livewire | ✓ | ✓ | - | ✓ | - |
| Auth y Policies | ✓ | ✓ | ✓ | ✓ | - |
| Container Bindings | ✓ | ✓ | ✓ | ✓ | - |
| Validation | ✓ | - | - | - | - |
| Controller Actions | ✓ | - | ✓ | ✓ | - |
| Eloquent | ✓ | - | - | - | - |
Inicio rápido
- Instala —
composer global require laravel/lsp
- Configura el editor — consulta la guía por editor de arriba
- Abre un proyecto Laravel — el servidor indexa desde la raíz los datos del proyecto: rutas, vistas, traducciones, configuración, etc.
- Usa el autocompletado — dentro de archivos PHP o plantillas Blade, el autocompletado consciente del framework funciona automáticamente
Conclusión
Laravel LSP es una herramienta que mejora enormemente la experiencia de desarrollo. Comprende contextos propios del framework que las funciones estándar del editor no pueden manejar y ofrece autocompletado y diagnóstico más precisos y útiles.
Requisitos:
- PHP 8.2 o superior
- Composer
- Editor compatible con LSP (Sublime Text, Neovim, Cursor, VS Code, etc.)
Referencias: