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

База данных ctag для Go

Как сгенерировать файл тегов для источника Go

В mac я установил exuberant ctags и попробовал следующую команду в исходном каталоге

ctags -f gosource.tags -R `pwd`

Но он не учитывает файлы *.go. Нужно ли использовать параметр -h? Но, разве это не только файлы заголовков, в соответствии с руководством?

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

Спасибо.

Изменить: Я предположил, что текущая поддержка ctags Go, видя http://groups.google.com/group/golang-nuts/browse_thread/thread/3a4848db231b02c9.

но http://ctags.sourceforge.net/languages.html не перечислены.

4b9b3361

Ответ 1

Добавьте следующее в ~/.ctags

--langdef=Go
--langmap=Go:.go
--regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/d,func/
--regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,var/
--regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,type/

(Из http://go-wise.blogspot.com/2011/09/using-ctags-with-go.html)

Ответ 2

--langdef=Go
--langmap=Go:.go
--regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/f,func/
--regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/
--regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/

Действительно работает с ctags 5.8. Одно небольшое изменение от предыдущего плаката, ctags требует уникальных типов 1- char на концах строк регулярных выражений. Таким образом, /d,func/ следует читать /f,func/ интуитивно. Это позволяет ctags различать и идентифицировать типы, позволяя ctags --go-types=fvt i.e.

Ответ 3

Я увидел ваш пост, немного пошатнулся, пытаясь найти хороший инструмент для работы, попробовал ctags и, в конечном счете, был неудовлетворен. Я написал программу "gotags" в Go, которая генерирует файл ctags для кода Go. Это лучше, чем текущая поддержка ctags, потому что, например, она теги имен полей структуры, а также самого имени структуры. Вы можете получить его здесь: https://github.com/necro351/gotags.

Хорошая короткая простая программа Go, потому что она использует стандартный синтаксический анализатор библиотеки и не имеет дополнительных функций, отличных от хороших парсов и тегов. Просто проверьте это (или поймите его) и выполните установку. Кроме того, если у вас есть какие-либо предложения или идеи по его улучшению, сообщите мне.

Изменить: я активный Gopher и поэтому будет обновлять этот инструмент с течением времени и использовать его.

Изменить: я больше не активно развиваю Go. Но мой инструмент очень короткий и в значительной степени работает, так как он должен "просто работать":)

Ответ 4

Отметьте Go Dashborad/Projects, раздел "Генераторы тегов". Статус этих инструментов мне неизвестен.

Изменить 2011-11-22: Последний egotags анонсирован сегодня (возможно циклическое задание; -)