настройка emacs для автозаполнения с помощью gtags

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

У меня есть два вопроса:

  1. Как узнать, работает ли режим автозаполнения с gtags?
  2. Как мне настроить gtags для работы с автозаполнением? (включая шаги, которые мне нужно сделать за пределами emacs, чтобы все настроить.)

Вот моя ситуация:

У меня относительно большая база кода, и я хотел бы проиндексировать ее с помощью 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.

3

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]