Я витратив багато зусиль, щоб налаштувати 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.