Questions tagged «libclang»

2
使用clang更快地完成代码
我正在研究使用clang的代码完成机制时潜在的代码完成加速。下面描述的流程是我在Anders Bakken的rtags中找到的。 守护程序监视文件分析转换单元的更改。这是通过调用clang_parseTranslationUnit和相关函数(reparse*,dispose*)完成的。当用户请求源文件中给定行和列的完成时,守护程序会将源文件的最后保存版本和当前源文件的缓存翻译单元传递给clang_codeCompleteAt。(Clang CodeComplete docs)。 传递给clang_parseTranslationUnit(从CompletionThread :: process,第271行的)标志是CXTranslationUnit_PrecompiledPreamble|CXTranslationUnit_CacheCompletionResults|CXTranslationUnit_SkipFunctionBodes。传递给clang_codeCompleteAt(从CompletionThread :: process,行305)的标志是CXCodeComplete_IncludeMacros|CXCodeComplete_IncludeCodePatterns。 调用clang_codeCompleteAt非常慢-即使完成位置是合法的成员访问代码(的文档中提到的预期用例的子集),也要花费3-5秒才能获得完成clang_codeCompleteAt。根据IDE代码完成标准,这似乎太慢了。有加速的方法吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.