Laravel for Zed від Mike Bronner — це розширення від спільноти, яке додає підтримку Laravel у редактор Zed. Воно використовує двигун Language Server Protocol (LSP) для аналізу PHP та Blade файлів за допомогою tree-sitter. Це виключно статичний аналіз без виконання коду додатка, що забезпечує роботу таких функцій, як go-to-definition та rename.
# Навігація за конвенціями Laravel (Go-to-Definition)
Розширення розпізнає рядкові посилання Laravel для View, Route та Env. Ви можете перейти до джерела за допомогою Command-click або переглянути деталі при наведенні курсора. Наразі Laravel for Zed підтримує:
- Views
- Blade components
- Routes
- Config keys
- Translations
- Env values
- Assets
- Middleware
- Container bindings
- Колонки, відносини (relations) та таблиці у query-chain
view('welcome') у routes/web.php переспрямовує прямо до resources/views/welcome.blade.php.# Підказки, пошук посилань та перейменування
При наведенні курсора на розпізнаний паттерн з'являється картка з підсумком у стилі Intelephense. Функція Find References знаходить місця виклику по всьому проєкту, включно з vendor-пакетами. Перейменування (Rename) працює атомарно: зміна назви Route, Config key, перекладу, змінної Env, View, компонента, посилання Livewire, Middleware або класу моделі оновить усі згадки за одну операцію.
config('services') активує картку, що посилається на config/services.php.# Автодоповнення та діагностика на основі схеми БД
Автодоповнення охоплює типи cast, властивості моделей, методи query-chain, методи builder, змінні Blade та прапорці Pennant. Діагностика підсвічує відсутні View та компоненти, а також звіряє посилання у ланцюжках запитів із реальною схемою бази даних, щоб виявити друкарські помилки у назвах колонок чи відносин. Якщо елемент відсутній, Quick Actions дозволяють одним кліком створити View, компонент, Middleware, Feature або міграцію.
Автодоповнення та діагностика на основі бази даних є опціональними та зчитують дані з .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_DATABASE=myapp
DB_USERNAME=root
DB_PASSWORD=secret
Підтримуються MySQL, PostgreSQL, SQLite та SQL Server.
# Редагування Blade та панель Outline
Для шаблонів Blade розширення додає автодоповнення директив, розумне розширення дужок та навігацію за закриваючими тегами. Також структура Route та Blade відображається у панелі Outline та Breadcrumbs редактора Zed. Щоб увімкнути структуру на базі LSP, активуйте document_symbols для обох мов у settings.json:
{
"languages": {
"PHP": {
"document_symbols": "on"
},
"Blade": {
"document_symbols": "on"
}
}
}
view('welcom') як відсутній файл.# Індексація та кешування
Двигун індексує кожен PHP та Blade файл під час запуску та зберігає кеш на диску. Завдяки цьому повторне відкриття проєкту відбувається миттєво, а перепарсуються лише змінені файли. Зовнішні зміни (наприклад, після git pull або роботи форматера) підхоплюються автоматично.
# Встановлення
Знайдіть «Laravel» у маркетплейсі розширень Zed та натисніть install. Також можна зібрати розширення з вихідного коду: клонуйте репозиторій, виконайте cargo build --release у директорії laravel-lsp/ та скористайтеся командою «zed: install dev extension».
Автор рекомендує використовувати розширення разом із Laravel Blade, PHP (Intelephense), phpcs та phpmd. Вихідний код та параметри конфігурації доступні на GitHub.