LINUX.ORG.RU

etags


0

0

По M-., как я понял emacs должен идти туда, где описывaется тип или объявляется переменная. Но он переходит на ту строчку, в которой искомый таг впервые встречается. То есть, если в файле `TAGS' первой встречается строка

int objOffset; /* Where in record to store a Tcl_Obj * that objOffset 188,5096

и мы ищем `Tcl_Obj', то emacs переходит согласно ее описанию, хотя, по идее, должен перейти согласно строке

typedef struct Tcl_Obj { Tcl_Obj 755,25749

Перебор помогает мало, так как перебераются все строки, в которых содержится `Tcl_Obj'.

Что надо настроить, чтобы emacs переходил на строки, в которых искомый таг определяется, а не просто упоминается?

GNU Emacs 21.3, tags-файл создавал и с помощью exuberant ctags и с помощью емаксового etags, результат один.

anonymous

Самому интересно, как это сделать.

Как вариант, если typedef находится в .h-файле, то может быть вызывать etags так:

etags *.h *.c

, чтобы данные из хидеров оказались в TAGS первыми?

KtaK ★★
()
Ответ на: комментарий от KtaK

Но это не выход, в *.h файлах тоже могут встречатся искомый таг в комментариях или в описаниях других типов, и не факт, что они встретятся после нужного описания. Потом при использовании опции --include включаемый файл вставляется в конце, что тоже влияет на порядок поиска.

anonymous
()

>По M-., как я понял emacs должен идти туда, где описывaется тип или объявляется переменная. Но он переходит на ту строчку, в которой искомый таг впервые встречается. То есть, если в файле `TAGS' первой встречается строка

>int objOffset; /* Where in record to store a Tcl_Obj * that objOffset 188,5096

>и мы ищем `Tcl_Obj', то emacs переходит согласно ее описанию, хотя, по идее, должен перейти согласно строке

>typedef struct Tcl_Obj { Tcl_Obj 755,25749

Что-то не то, должен находить именно первое объявление. Не попробовать ли явно указать язык --language=?

hbee ★★★★
()
Ответ на: комментарий от hbee

Черт, пробовал дома на NT Emacs, не работало. Под линуксом все работает, как задумано.

Спасибо. Вопрос снят.

anonymous
()
Ответ на: комментарий от hbee

> Что-то не то, должен находить именно первое объявление. Не попробовать ли явно указать язык --language=?

А где это надо указывать?

anonymous
()
Ответ на: комментарий от anonymous

Можно запустить etags --language=C++ например

hbee ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.