Я уже давно пытаюсь заставить теги работать в режиме автозаполнения, и кажется, что мои попытки были тщетными.
У меня есть два вопроса:
Вот моя ситуация:
У меня относительно большая база кода, и я хотел бы проиндексировать ее с помощью gtags, а затем использовать gtags в моем автозаполнении для подсказок кода. В источнике много уровней каталогов, но все они принадлежат корневому каталогу, где я сгенерировал свои gtags.
Насколько я понимаю, если у меня все правильно настроено, я смогу набрать несколько букв и получить автозаполнение на основе gtags, если источник находится в каталогах, которые проиндексированы gtags. Например, если я сохранил свои gtags (позвонив gtags
из командной строки) в корневом каталоге примерно так:
Root_Project_Dir
├── GPATH
├── GRTAGS
├── GSYMS
├── GTAGS
│
├── Folder1
│ └──my_structs.h
├── Folder2
└──some_code.cpp
Где my_structs.h имеет нечто определенное как …
struct testStruct{
int a;
char blah_blah;
double context;
};
Тогда это будет означать, что если бы я определил эту структуру в some_code.cpp, автозаполнение могло бы попытаться завершить мою структуру в источнике .cpp. Это правильно? Другими словами, если я определил testStruct mystruct = new testStruct();
тогда в следующий раз я позвоню что-то вродеmystruct->
msgstr «, диалог автозаполнения должен появиться с членами структуры?
В моем игрушечном файле .emacs есть следующая настройка автозаполнения (вместе с правильным путем загрузки). Кажется, что он может распознавать и автоматически заполнять код из рабочего каталога. Тем не менее, он, похоже, не знает ничего кроме каталога, в котором находится источник.
;; auto-complete stuff
require 'auto-complete)
(require 'auto-complete-config)
(ac-config-default)
(defun ac-common-setup ()
(setq ac-sources (append ac-sources '(ac-source-gtags))))
Я много смотрел в Интернете, но я действительно не нашел никаких решений.
Я видел этот сообщение, но решение просто говорит, чтобы добавить ac-source-gtags. Я думаю, что мне нужно немного больше инструкций, чтобы все заработало, так как я не слишком знаком с elisp.
Задача ещё не решена.