Does C ++ 11 redundant ctags support?

I love having my syntax high up in vim via the TagHighlight plugin which uses exuberant ctags to generate the tags file that vim uses for the syntax.

Until recently, I was just using regular enum types like

enum count {ONE, TWO, THREE};

which is correctly labeled. My group recently decided to support C ++ 11 and I tried

enum class count {ONE, TWO, THREE};

The enumeration "count" is now marked as a class instead of enum, "ONE" and "TWO" are marked as members of the class, and "THREE" are not marked at all.

I tried using it --regex-c++=/^[ \t]*(enum)[ \t]+(class)[ \t]+([a-zA-Z0-9_]+)/\3/e,enum/

as a regex but with no success. It seems the enum class should be a standard type for generating ctags, but haven't found anyone to complain about it. Am I stupidly overlooking something simple?

ctags-exuberant --version Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert Compiled: Sep 29 2014, 16:06:25 Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net Optional compiled features: +wildcards, +regex

An alternative approach to custom syntax highlighting in vim will also be appreciated.

+3


source to share


1 answer


There is a more modern version of exuberant ctags called generic ctags available here . It supports C ++ 11 along with many other languages ​​compared to exuberant ctags (full list here ). If you're on a Mac, you can install using homebrew with

brew tap universal-ctags/universal-ctags
brew install --HEAD universal-ctags

      



Generic ctags are just a fork of exuberant ctags and should be used as a complete replacement for it.

+9


source







All Articles