Настройка 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 неверный).