我正在研究可能的代码完成加速,同时使用clang的代码完成机制。 下面描述的stream程是我在rtags中find的,由Anders Bakken发现的。 翻译单元由守护程序监视文件进行分析以进行更改。 这是通过调用clang_parseTranslationUnit和相关函数( clang_parseTranslationUnit reparse* , dispose* )完成的。 当用户请求在源文件的给定行和列处完成时,守护进程将源文件的最后保存版本和当前源文件的高速caching翻译单元传递给clang_codeCompleteAt 。 ( 锵CodeComplete文档 )。 传递给clang_parseTranslationUnit (从CompletionThread :: process,第271行 )的CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes是CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes 。 传递给clang_codeCompleteAt (从CompletionThread :: process,305行 )的CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns是CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns 。 对clang_codeCompleteAt的调用非常慢 – 即使在完成位置是合法的成员访问代码( clang_codeCompleteAt文档中提到的预期用例的一个子集)的情况下,也需要大约3-5秒才能获得完成。 IDE代码完成标准看起来太慢了。 有没有办法加快速度?