ctags в возвышенном тексте

Я только что скачал sublime text 2 beta 2182 под Ubuntu 10.10 с Exuberant Ctags 5.8.

Я хочу использовать его для кодирования на С++, и мне нужно автозаполнение и навигация по коду. (Я привык к затмению с помощью cdt)

Я погуглил и нашел классный инструмент ctags, который может это сделать, и есть поддержка плагина для возвышенного текста здесь.

Проблема в том, что я хочу создать файл тега из:

  1. Стандартная библиотека С++ (std::vector std::map etc)

  2. все классы фреймворка, которые я использую.

Пункт 1 (я думаю) такой же, как и пункт 2, мне просто нужно создать список тегов стандартной библиотеки в моем /usr/include/c++/4.4.5/

поэтому я скачал плагин и установил его, я сделал taglist таким образом:

$ cd /absolute_path_of_my_cpp_framework/
$ ctags -R *

Я изменил /home/me/.config/sublime-text-2/Packages/CTagss/CTags.sublime-settings с помощью этой строки:

"extra_tag_files" : [".gemtags", "/absolute_path_of_my_cpp_framework/tags"]

Теперь я открываю файл cpp, навожу курсор на имя класса моего фреймворка и использую привязку ключа ctrl+t ctrl+t, и ничего не происходит. Только это сообщение в баре внизу:

не могу найти "имя_класса"

Кто-нибудь может мне помочь?


person nkint    schedule 29.02.2012    source источник
comment
StackOverflow — это скорее сайт для вопросов по программированию, а не вопросов по программам для программирования. Вы можете попробовать SuperUser   -  person Seth Carnegie    schedule 29.02.2012
comment
я разместил это здесь, потому что здесь в stackoverflow есть 99 вопросов о ctags в суперпользователе только 14. кстати, я только что разместил его в суперпользователе   -  person nkint    schedule 29.02.2012
comment
попробуй "extra_tag_paths" : ["/absolute_path_of_my_cpp_framework/tags"]   -  person Dmitry Alexeyev    schedule 22.03.2012
comment
Почему бы не опубликовать это на возвышенных форумах? Звучит как вопрос для этого места...   -  person RedX    schedule 10.04.2012
comment
откройте консоль sublimetext и вызовите плагин, и вы увидите все возможные ошибки, которые могли произойти.   -  person thwd    schedule 18.04.2012
comment
Хм, не уверен насчет ctags, но пробовали ли вы github.com/quarnster/SublimeClang?   -  person Electro    schedule 29.04.2012
comment
clang использует машину llvm, и она мне не нужна, и она не очень хорошо подходит для какого-то проекта, с которым мне приходится иметь дело.   -  person nkint    schedule 30.04.2012


Ответы (2)


Я лично не использую Sublime Text, но если предположить, что он использует файлы тегов аналогично vim, вам необходимо создать дополнительную информацию для завершения C++.

Используйте ctags со следующими параметрами:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++

Информация взята из этой статьи, в которой также содержатся копии заголовков стандартной библиотеки, которые можно использовать для создания теги.

person Matt Kline    schedule 30.04.2012

Команды оболочки:

$ cd /absolute_path_of_my_cpp_framework/ (1)

$ ctags -R --languages=c++ --langmap=c++:+.inl --fields=+iaS --extra=+q --totals=yes --verbose=yes (2)

$ ctags -a -R --languages=c++ /usr/include/c++/4.4.5/ --fields=+iaS --extra=+q --totals=yes --verbose=yes (3)

$ subl . (4)

Описание:

(1) Перейдите в корневую папку вашего проекта, чтобы убедиться, что там будет создан файл тегов.

(2) Создайте новый файл тегов для всех файлов C++ в вашем проекте, добавив поддержку файлов .inl, наследования, модификаторов доступа, области видимости с указанием класса и т. д.

(3) Добавьте теги для заголовков стандартной библиотеки C++ в созданный файл тегов.

(4) Откройте папку в Sublime Text.

Использованная литература:

  1. http://ctags.sourceforge.net/ctags.html
  2. https://www.chromium.org/developers/sublime-text
  3. http://www.tarosys.com/2014/07/adding-another-file-type-for-ctags.html
  4. Большие ctags исключают каталоги
  5. Vim и Ctags: игнорирование определенных файлов при создании тегов
  6. https://www.topbug.net/blog/2012/03/17/generate-ctags-files-for-c-slash-c-plus-plus-source-files-and-all-of-их-включенные-файлы-заголовков/
person W1M0R    schedule 24.02.2016