Когда языковая поддержка отсутствует, вы можете использовать теги . Это общий механизм завершения.
Сформировать 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.
Для еще более грубого, но полностью автоматического механизма, есть динамического Abbrev особенности. C-M-/
(dabbrev-completion
) выглядит в большинстве открытых буферов для завершения; это полностью не зависящее от языка, поэтому оно даже найдет слова в строках, комментариях, что угодно. M-/
(dabbrev-expand
) аналогичен, но непосредственно доходит до ближайшего матча перед точкой.
Вы знаете, как продвигается работа над CEDET для Haskell? –