如果可能,尽量使用词法分析器信息而不是解析树。 如果不可能,请使用不会占用大量内存的经量级AST(LighterAST) ,这样可以提升遍历速度。可以通过将传过来的 FileContent参数 转换为 PsiDependentFileContent 然后调用 getLighterAST() 来获取 LighterAST,使用 LighterASTNodeVisitor
和LightTreeUtil来遍历自己需要用到的节点,
继承 LightStubBuilder
来实现轻量级 Stub 索引
If a custom language contains lazy-parseable elements that never or rarely contain any stubs, consider implementing StubBuilder.skipChildProcessingWhenBuildingStubs()
(preferably using Lexer/node text).
考虑使用 NanoXmlUtil
来索引 xml 文件 # 预创建Stubs