Получить список всех тегов в Emacs - PullRequest
0 голосов
/ 15 марта 2011

Есть ли способ получить все теги из файлов, определенных в вашем списке таблиц тегов? Я установил файл тегов так:

(setq tags-table-list '("~/project/TAGS"))

Я пробовал (tags-completion-table), но он не содержит все теги.

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Если вы получили только один файл TAGS, M-x visit-tags-table ~/project/TAGS или (visit-tags-table "~/project/TAGS") должны загрузить таблицу TAGS в буфер, что означает, что она станет доступной для Emacs так же, как и для, M-x tags-search.

Если вы добавляете больше файлов TAGS в проект или имеете более одного проекта, (setq tags-table-list '("~/project1/TAGS" "~/Project2/TAGS" ...)) и выполнение (visit-tags-table-buffer t) должны посещать следующую таблицу каждый раз, когда она вызывается, до конца списка.

EDIT:

(defvar buffer-in-string)
(defvar string-list)
(defun write-buffer-to-string ()
  (interactive)
  (setq buffer-in-string (buffer-substring (point-min) (point-max)))
  (kill-buffer) ;; If the buffer is big, it makes sense to kill it,
                ;; since its contents are copied into the string anyway
  (setq string-list (split-string buffer-in-string " "))
)

Это должно привести буфер в строку.Должен быть более элегантный способ, но на данный момент это самое лучшее, что я мог написать с моей очень ограниченной беглостью.

0 голосов
/ 01 января 2012

Функция tags-completion-table дает вам таблицу завершения для использования. Из строки документа:

Build 'tags-completion-table' on demand. The tags included in the completion table are those in the current tags table and its (recursively) included tags tables.

И tags-lazy-completion-table дает вам функцию завершения для использования. Использует tags-completion-table.

...