C++ Clang complete不适用于未保存的文件?

C++ Clang complete不适用于未保存的文件?,c++,clang,code-completion,code-complete,C++,Clang,Code Completion,Code Complete,我发现代码完成对未保存的文件不起作用(通过libclang-c)(但对已保存的文件很有效) 代码(并非全部): 输出: Starting ---- command-line file: ../test/test_complete.cpp ============= TU=0x7fff5d75aaf0, file=../test/test_complete.cpp complete at line=1, column=72 results=[0x7fec7b509510, count=5] Fi

我发现代码完成对未保存的文件不起作用(通过libclang-c)(但对已保存的文件很有效)

代码(并非全部):

输出:

Starting ---- command-line file: ../test/test_complete.cpp ============= TU=0x7fff5d75aaf0, file=../test/test_complete.cpp complete at line=1, column=72 results=[0x7fec7b509510, count=5] FieldDecl:{ResultType int}{TypedText a} (35) FieldDecl:{ResultType bool}{TypedText b} (35) CXXMethod:{ResultType TempStruct &}{TypedText operator=}{LeftParen(}{Placeholder const tempStruct &}{RightParen )} (34) StructDecl:{TypedText TempStruct}{Text ::} (75) CXXDestructor:{ResultType void}{TypedText ~TempStruct}{LeftParen(}{RightParen )} (34) unsaved file ============= TU=0x7fff5d75aaf0, file=temp.cpp complete at line=1, column=72 results=[0x7fec7b5043d0, count=0] 开始---- 命令行文件:../test/test\u complete.cpp============= TU=0x7fff5d75aaf0,文件=../test/test_complete.cpp complete,第1行,第72列 结果=[0x7fec7b509510,计数=5] FieldDecl:{ResultType int}{TypedText a}(35)FieldDecl:{ResultType bool}{TypedText b}(35) CXX方法:{ResultType TempStruct&}{TypedText运算符=}{LeftParen(}{Placeholder const TempStruct&}{RightParen)}(34) StructDecl:{TypedText TempStruct}{Text::}(75) CxDestructor:{ResultType void}{TypedText~TempStruct}{LeftParen(}{RightParen)}(34) 未保存的文件============= TU=0x7fff5d75aaf0,文件=temp.cpp在第1行第72列完成 结果=[0x7fec7b5043d0,计数=0]
有什么问题吗?

我忘了设置unsavedFile->Length。即使源文件也是文本文件,您也必须隐式设置长度(例如
unsavedFiles->length=strlen(unsavedFile->Contents);

struct TempStruct { int a; bool b; }; int main() { TempStruct str; str. /*complete here*/ return 1; }
Starting ---- command-line file: ../test/test_complete.cpp ============= TU=0x7fff5d75aaf0, file=../test/test_complete.cpp complete at line=1, column=72 results=[0x7fec7b509510, count=5] FieldDecl:{ResultType int}{TypedText a} (35) FieldDecl:{ResultType bool}{TypedText b} (35) CXXMethod:{ResultType TempStruct &}{TypedText operator=}{LeftParen(}{Placeholder const tempStruct &}{RightParen )} (34) StructDecl:{TypedText TempStruct}{Text ::} (75) CXXDestructor:{ResultType void}{TypedText ~TempStruct}{LeftParen(}{RightParen )} (34) unsaved file ============= TU=0x7fff5d75aaf0, file=temp.cpp complete at line=1, column=72 results=[0x7fec7b5043d0, count=0]