Привітаймо Language Server Protocol
Я витратив багато зусиль, щоб налаштувати YouCompleteMe і rtags: компактно встановити, автоматично поновлювати, адаптувати до vim, керувати конфігурацією. І вони добре служили, доки я не знайшов краще рішення: протокол сервера мови (LSP). Виявилося, що він нині так само довершений, як і простий у налаштуванні.
Щоб його запустити, знадобилося тільки кілька кроків:
-
Встановити cquery, пакунок для якого доступний у AUR: cquery
-
Встановити і налаштувати клієнт LSP для neovim
-
Встановити і налаштувати deoplete, neosnippet.
Є два способи налаштувати проект: або розмістити файл з назвою .cquery
у корені проекту, що має бути зручно для простіших випадків, або залишити
compile_commands.json
у корені проекту. Друге, як правило, генерується з
допомогою cmake (-DCMAKE_EXPORT_COMPILE_COMMANDS=Yes
), а перше можна легко
створити двійкою команд (дивись
cquery-init).
Такі налаштунки дозволяють отримати все найнеобхідніше для розробки у C++:
- доповнення коду
- навігація у коді
- перевірка на льоту
- пошук символу
- перейменування символу
Тепер можна цілком безпечно прибрати YCM і rtags.