Когда нет поддержки для конкретного языка, вы можете использовать теги .Это общий механизм завершения.
Создает файл TAGS
, который содержит список идентификаторов и места их определения.Emacs поставляется с программой etags
, которая делает это на многих языках, но не на Haskell;GHC поставляется с hasktags
.
Загрузите файл TAGS
с помощью M-x visit-tags-table
.
Теги не зависят от контекста, поэтому они будут без разбора предлагать типы,значения, конструкторы и т. д. везде.Они также не будут предоставлять расширенные функции, такие как простое отображение типа значения.Наиболее важные команды тегов:
M-TAB
(complete-symbol
) завершает идентификатор в соответствии с загруженным списком тегов.
M-.
(find-tag
) отправляется в место, где определен идентификатор в точке, при необходимости открывая содержащий файл.
M-*
(pop-tag-mark
) возвращается туда, гдевы были раньше M-.
.
M-x tags-apropos
показывает список идентификаторов, соответствующих регулярному выражению.
Для получения дополнительной информации, смотрите "Теги »в руководстве по Emacs.
Для еще более грубого, но полностью автоматического механизма есть функция динамического сокращения .C-M-/
(dabbrev-completion
) просматривает большинство открытых буферов для завершения;это полностью не зависит от языка, так что он даже найдет слова в строках, комментариях, что угодно.M-/
(dabbrev-expand
) аналогичен, но непосредственно завершается до ближайшего совпадения перед точкой.