Тейлор Отвелл презентував Laravel LSP під час першого дня конференції Laracon US 2026. Це офіційний мовний сервер, який «навчає» ваш редактор розуміти структуру Laravel-застосунку: ключі конфігурації, імена роутів, шляхи до view, рядки перекладів, аліаси middleware, прив’язки в контейнері та багато іншого.
Інтелектуальні підказки, що розуміють контекст фреймворку: від конфігурацій та роутів до Eloquent. Підтримується робота в Sublime Text, Zed, Neovim, Cursor та інших редакторах.
Хоча Laravel вже має офіційне розширення для VS Code, користувачі інших редакторів раніше залежали від сторонніх розробок. Laravel LSP виносить цю функціональність в окремий сервер, що працює через Language Server Protocol (через stdio). Це дозволяє використовувати його в будь-якому редакторі з підтримкою LSP-клієнта.
# Що саме він знає про ваш застосунок
Сервер індексує проєкт і відповідає на запити редактора. Наприклад, якщо у контролері почати писати config('app.time, з’явиться список відповідних ключів із їхніми поточними значеннями (наприклад, app.timezone покаже UTC). А якщо ввести неіснуючий ключ, діагностика видасть попередження: «Config [ap] not found».
Підтримка охоплює більшість компонентів фреймворку, де використовуються рядкові ключі. Згідно з таблицею можливостей у README:
| Сфера | Можливості |
|---|---|
| Роути | Автодоповнення, hovers, діагностика, посилання |
| View та Blade | Автодоповнення, hovers, діагностика, посилання, виправлення |
| Переклади | Автодоповнення ключів, локалей та параметрів; hovers |
| Config | Автодоповнення ключів, hovers, діагностика, посилання |
| Змінні оточення | Автодоповнення, hovers, діагностика, посилання, виправлення |
| Асети та Mix | Автодоповнення, hovers, діагностика, посилання |
| Middleware | Автодоповнення, hovers, діагностика, посилання |
| Inertia | Автодоповнення сторінок та властивостей, посилання, діагностика |
| Компоненти Livewire | Автодоповнення, hovers, посилання |
| Auth та політики | Автодоповнення, hovers, діагностика, посилання |
| Container bindings | Автодоповнення, hovers, діагностика, посилання |
| Правила валідації | Автодоповнення |
| Екшн-методи контролерів | Автодоповнення, діагностика, посилання |
| Eloquent | Автодоповнення |
Завдяки підтримці посилань у документах такі виклики, як view('orders.index') та route('orders.show'), стають клікабельними. Також за замовчуванням працює функція переходу до визначення (go-to definition).
# Встановлення
Встановіть пакет глобально через Composer і переконайтеся, що директорія vendor/bin додана до вашого PATH:
composer global require laravel/lsp
Пакет потребує PHP 8.2 або новішої версії та містить готові бінарні файли для macOS (arm64 та x64), Linux (arm64 та x64) і Windows (x64).
# Налаштування редактора
Sublime Text, Zed та VS Code мають офіційні розширення Laravel, які автоматично налаштовують з’єднання (Cursor працює через розширення для VS Code). Для Neovim та OpenCode знадобиться мінімальна конфігурація.
Для Neovim 0.11 або новішої версії:
vim.lsp.config("laravel_lsp", {
cmd = { "laravel-lsp" },
filetypes = { "php", "blade" },
root_markers = { "artisan", "composer.json", ".git" },
})
vim.lsp.enable("laravel_lsp")
Для OpenCode увімкніть підтримку LSP у файлі opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"laravel-lsp": {
"command": ["laravel-lsp"],
"extensions": [".php", ".blade.php"]
}
}
}
# Вибір версії PHP
Для індексації проєкту серверу потрібна робоча команда PHP. Параметр phpEnvironment у налаштуваннях initializationOptions визначає, як саме її знайти. За замовчуванням встановлено значення auto, яке послідовно шукає Herd, Valet, Sail, Lando, DDEV, а потім локальний PHP. Ви можете зафіксувати конкретний варіант або прописати прямий шлях через масив phpCommand, наприклад: ["./vendor/bin/sail", "php"].
Будь-яку функцію можна вимкнути індивідуально. Кожна можливість має свій булевий прапорець, тож ви можете, наприклад, вимкнути діагностику роутів (routeDiagnostics), залишивши для них автодоповнення. Також доступні дві опції для Pest: pestGenerateDocBlocks оновлює згенеровані docblocks для хелперів, а pestHelperFilePath вказує шлях для запису цього файлу.
# Дізнатися більше
Повний опис конфігурації, інструкції для різних редакторів та вихідний код доступні в репозиторії Laravel LSP на GitHub.