Подтвердить что ты не робот

Ctags + taglist для файлов .cu(CUDA)

Я использую редактор vim (на Ubuntu). Недавно я работал с большими проектами cuda и, следовательно, хотел бы использовать утилиту ctags для просмотра кода. Список поддерживаемых языков для exuberant-ctags [здесь] (http://ctags.sourceforge.net/languages.html) пока не содержит CUDA. Если кто-нибудь знает, как сделать то же самое, я очень благодарен за помощь.

Спасибо

EDIT 1: я нашел следующее временное исправление.

Чтобы создать файл тега для файлов CUDA, используйте ctags со следующим параметром (если ваш текущий каталог содержит все ваши файлы cuda);

$ctags --langmap = С++:+. cu *

4b9b3361

Ответ 1

Поскольку CUDA C/С++ основан на С++, вы можете просто использовать режим С++. Вы можете добавить языковую карту, используя --langmap=c++:+.cu.

Ответ 2

Я не знаю о taglist, но если вы используете плагин Tagbar (повтор taglist), вы можете добавить следующую строку в .vim/autoload/tagbar.vim:

let s:known_types.cuda = type_cpp

Поместите его прямо после строки:

let s:known_types.cpp = type_cpp

Ответ 3

В диалоговом окне taglist вы можете добавить следующие строки

" cu language
let s:tlist_def_cu_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' .
                         \ 'c:class;g:enum;s:struct;u:union;f:function'

ниже

" c++ language
let s:tlist_def_cpp_settings = 'c++;n:namespace;v:variable;d:macro;t:typedef;' .
                             \ 'c:class;g:enum;s:struct;u:union;f:function'

в taglist.vim

Ответ 4

universal-ctags (https://ctags.io) имеет встроенный синтаксический анализатор для cuda. ​​

$ ./ctags --list-maps=CUDA
CUDA     *.cu *.cuh