Як підтримувати YouCompleteMe працюючим і оновленим після несумісних оновлень системи (звісно, якщо YCM сам по собі стабільний).

Дві набридливі проблеми можуть статися з компактним розгортанням YouCompleteMe, коли система поновлюється:

  • несумісність ycmd з libclang, boost чи чимось ще
  • зміна шляхів до системних заголовків (наприклад libstdc++).

У першому випадку розширення не завантажиться взагалі, це легко помітити. Але в другому випадку деякі функції доповнюються нормально, але тільки не з стандартної бібліотеки C++. Я щойно збагнув, що YCM міг би поновлюватися разом із системою, як тільки помічено несумісність.

Дві фіксації (перша, друга) реалізують таке:

  • Скрипт ycm-check.sh щоб перевіряти, чи всі теки із системними заголовками все ще присутні у файловій системі, і чи ycm_core.so правильно компонується.
  • Скрипт ycm-update.sh щоб поновлювати розширення і список тек пошуку для ycm_extra_conf.py.
  • Скрипт yaourt щоб перехопити запит на поновлення системи.

Тепер щоразу, як я вводжу yaourt -Syua, система перевіряє, чи треба поновити YouCompleteMe, і, власне, поновлює його автоматично.