Каковы различия между автозаполнением и режимом компании?

52

Кажется, есть два основных расширения автозаполнения для emacs: автозаполнение и режим компании. Каковы некоторые из практических различий между ними, и когда я хотел бы использовать одно над другим? Кроме того, они совместимы друг с другом?

Коннор
источник
1
Что вы подразумеваете под «Кроме того, они совместимы друг с другом?» ? Вы спрашиваете, можно ли их использовать одновременно? Или если источники одного могут быть использованы другим?
Малабарба
Если они могут использовать те же источники
Коннор
3
github.com/company-mode/company-mode/issues/68 (не намного больше, чтобы добавить).
Шости

Ответы:

34

Несколько лет назад я использовал режим автозаполнения и несколько месяцев назад переключился на режим компании.

В базовом использовании нет особой разницы. Как и кто-то другой опубликовал эту ссылку, есть хорошее резюме различий.

Я обнаружил, что режим компании проще в настройке и позволяет делать то, что я хочу. С режимом автозаполнения я время от времени сталкивался с проблемами, связанными с тем, что что-то не работает так, как я хотел, и с чем-то другим, когда он настраивался. При использовании я редко чувствую, что корпоративный режим мешает использованию Emacs, тогда как режим автозаполнения мешает время от времени.

Также для разработчиков легко добавить поддержку их пакетов в режиме компании, см. EmacsWiki: CompanyMode: Backends .

Они не совместимы друг с другом. На данный момент есть больше пакетов, которые поддерживают режим автозаполнения, но это быстро меняется.

ТЛ; др. Они в значительной степени делают то же самое. Начните с режима компании и попробуйте режим автозаполнения, если вы пропустите что-нибудь из первого.

aerique
источник
39

Они в значительной степени эквивалентны, но company-modeимеют более продуманный API для разработчиков плагинов. Это также намного более активно поддержано. Но есть два ключевых различия, которые могут иметь или не иметь значения для вас:

Во-первых, company-modeтеперь нацелены на Emacs 24, поэтому, если вы застряли с Emacs 23, вам не повезло. auto-completeвсе еще работает с Emacs 23.

Во-вторых, auto-completeимеет механизм «всплывающих документов», который отображает жёлтое наложение в виде всплывающей подсказки в текущем буфере, показывая информацию о символе в точке. IIRC, company-modeможет извлекать ту же информацию, но прямо сейчас это делается в отдельном окне.

Есть проблема, поданная для этого, и похоже, что company-modeона получит поддержку всплывающих документов, возможно, через дополнительный пакет. Исторически такие всплывающие окна были несколько ошибочными, поэтому, возможно, стоит привыкнуть к companyподходу с отдельными окнами.

Если вы начинаете заново, и у вас есть Emacs 24, company-modeэто путь.

sanityinc
источник
11
Кроме того, я думаю, что имя неудачное. Я предполагал, что режим компании имеет какое-то отношение к управлению многопользовательскими проектами (как в проекте, управляемом компанией). Я нашел бы это раньше, если бы у него было очевидное имя, как у автозаполнения!
Тайлер
12
Да, comp-anyбыло бы яснее, чем company.
sanityinc