LINUX.ORG.RU

История изменений

Исправление pavlick, (текущая версия) :

Я поставил universal ctags, и сгенерировал метки для тестового проекта

!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE	u-ctags	/u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
!_TAG_PROGRAM_VERSION	0.0.0	/96d39e43/
N	main.cpp	/^namespace N$/;"	n	file:
Q	main.cpp	/^  class Q$/;"	c	namespace:N	file:
S	f.hpp	/^struct S$/;"	s
globdata	main.cpp	/^int globdata;$/;"	v	typeref:typename:int
globfn	main.cpp	/^  void globfn(int i, double d) {}$/;"	f	namespace:N	typeref:typename:void
globfn	main.cpp	/^void globfn(int i, double d) {}$/;"	f	typeref:typename:void
hfn	f.hpp	/^  void hfn(int i, double d, int q$/;"	f	struct:S	typeref:typename:void
main	main.cpp	/^int main()$/;"	f	typeref:typename:int
privdata	main.cpp	/^    int privdata;$/;"	m	class:N::Q	typeref:typename:int	file:
privfn	main.cpp	/^    void privfn(int i, double d) {}$/;"	f	class:N::Q	typeref:typename:void	file:
publdata	main.cpp	/^    int publdata;$/;"	m	class:N::Q	typeref:typename:int	file:
publfn	main.cpp	/^    void publfn(int i, double d) {}$/;"	f	class:N::Q	typeref:typename:void	file:
Генерировал без -e опции (-e делает формат аналогичным etags, там теряется вся дополнительная информация о видмиости). Очевидно, что сам ctags выдаёт всё необходимую информацию об областях видимости (namespace N, class Q, struct S). Как заставить emacs его корректно прочесть, чтобы он начал нормально работать для плюсов?

Исходная версия pavlick, :

Я поставил universal ctags, и сгенерировал метки для тестового проекта

!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted, 2=foldcase/
!_TAG_OUTPUT_MODE	u-ctags	/u-ctags or e-ctags/
!_TAG_PROGRAM_AUTHOR	Universal Ctags Team	//
!_TAG_PROGRAM_NAME	Universal Ctags	/Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL	https://ctags.io/	/official site/
!_TAG_PROGRAM_VERSION	0.0.0	/96d39e43/
N	main.cpp	/^namespace N$/;"	n	file:
Q	main.cpp	/^  class Q$/;"	c	namespace:N	file:
S	f.hpp	/^struct S$/;"	s
globdata	main.cpp	/^int globdata;$/;"	v	typeref:typename:int
globfn	main.cpp	/^  void globfn(int i, double d) {}$/;"	f	namespace:N	typeref:typename:void
globfn	main.cpp	/^void globfn(int i, double d) {}$/;"	f	typeref:typename:void
hfn	f.hpp	/^  void hfn(int i, double d, int q$/;"	f	struct:S	typeref:typename:void
main	main.cpp	/^int main()$/;"	f	typeref:typename:int
privdata	main.cpp	/^    int privdata;$/;"	m	class:N::Q	typeref:typename:int	file:
privfn	main.cpp	/^    void privfn(int i, double d) {}$/;"	f	class:N::Q	typeref:typename:void	file:
publdata	main.cpp	/^    int publdata;$/;"	m	class:N::Q	typeref:typename:int	file:
publfn	main.cpp	/^    void publfn(int i, double d) {}$/;"	f	class:N::Q	typeref:typename:void	file:
Генерировал без -e опции (в формате аналогичному etags). Очевидно, что сам ctags выдаёт всё необходимую информацию об областях видимости (namespace N, class Q, struct S). Как заставить emacs его корректно прочесть, чтобы он начал нормально работать для плюсов?