Настройка LSP server под php
В php переменные начинаются с $ - в vim по умолчанию это не является словом. Мелкая дырка в абстракции: ты думаешь, что держишь в руках слово, а по факлу тыкаешь пальцем в пустоту между знаками.
Исправить это можно, добавив vim.opt.iskeyword:append("$") в init.lua.
LSP — это «правила общения» между средой разработки и языковым сервером, стандарт, по которому эти две программы обмениваются информацией. По сути — контракт между двумя живыми процессами, которые перекидывают друг другу знания о твоём коде, чтобы редактор мог заглянуть под капот и показать не только текст, но и его смысл. Протокол можно реализовать практически для любого языка. Нужен только языковой сервер с его поддержкой. Подробнее, зачем он нужен (статья на habr)
Популярные php-серверы:
- phpactor (бесплатно)
- intelephense (бесплатно; за 25€ — пожизненная лицензия и дополнительный функционал)
PS: приобрел intelephense лицензию. Для ее подключения - достаточно было создать директорию ~/.intelephense/ и положить полученный по почте licence.txt Но "плюшек" от приобретенной лицензии не увидел или не понял. Двадцать пять евро обменено на обещание — типичный для индустрии trade, где на выходе всегда больше хайпа, чем байтов.
Документация intelephense
Конфиг, который используется в vscode (он же приведен в документации)
В официальной документации приведена настройка - остановился на этом.
Для фреймворка Laravel рекомендуют установить Laravel Ide Helper
Для генерации классов, интерфейсов, трейтов и прочего можно использовать пакет easy-php + быстрый набор сниппетов.
Перечень того, что он делает, можно увидеть в документации или просто по нажатию - в php файле.
Включить inlay hints — подсказки типов прямо в коде, без всплывающих окон:
Видео «inlay-hints» не найдено (урок не готов или slug неверный).