后来发现问题与导出宏无关,与继承类有关,问题修正一下。例如类声明class QuartcSession:
class QUIC_EXPORT_PRIVATE QuartcSession
: public QuicSession,
public QuartcSessionInterface,
public QuicCryptoClientStream::ProofHandler {
QuartcSession不会被索引,但是第一个继承类QuicSession会索引到这里。 而真正的QuicSession声明是这个:
class QUIC_EXPORT_PRIVATE QuicSession : public QuicConnectionVisitorInterface,
public StreamNotifierInterface,
public QuicStreamFrameDataProducer {
但是etags索引不到这里,却会把QuicConnectionVisitorInterface索引到这个声明
原问题有误:
在看chromium中quic部分的代码,使用etags建索引
- class QuicFramerTest //普通类声明,都能识别。
- class **QUIC_EXPORT_PRIVATE** QuicFramer //这里加了一个导出宏,etags就不识别了。
我执行etags加了选项 --language=c++,看手册没找到什么选项能忽略这个宏定义。
我能用semantic-ia-fast-jump找到类,但那个比较慢,还是习惯用etags,大家有办法吗?
另外imenu索引也是这样。