forked from OSchip/llvm-project
Convert clang_getCompletionChunkText() to return a CXString.
llvm-svn: 96439
This commit is contained in:
parent
d8716676ea
commit
f602f96e60
|
@ -1478,7 +1478,7 @@ clang_getCompletionChunkKind(CXCompletionString completion_string,
|
|||
*
|
||||
* \returns the text associated with the chunk at index \c chunk_number.
|
||||
*/
|
||||
CINDEX_LINKAGE const char *
|
||||
CINDEX_LINKAGE CXString
|
||||
clang_getCompletionChunkText(CXCompletionString completion_string,
|
||||
unsigned chunk_number);
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "llvm/System/Program.h"
|
||||
|
||||
using namespace clang;
|
||||
using namespace clang::cxstring;
|
||||
|
||||
extern "C" {
|
||||
|
||||
|
@ -80,11 +81,11 @@ clang_getCompletionChunkKind(CXCompletionString completion_string,
|
|||
return CXCompletionChunk_Text;
|
||||
}
|
||||
|
||||
const char *clang_getCompletionChunkText(CXCompletionString completion_string,
|
||||
unsigned chunk_number) {
|
||||
CXString clang_getCompletionChunkText(CXCompletionString completion_string,
|
||||
unsigned chunk_number) {
|
||||
CodeCompletionString *CCStr = (CodeCompletionString *)completion_string;
|
||||
if (!CCStr || chunk_number >= CCStr->size())
|
||||
return 0;
|
||||
return createCXString(0);
|
||||
|
||||
switch ((*CCStr)[chunk_number].Kind) {
|
||||
case CodeCompletionString::CK_TypedText:
|
||||
|
@ -107,17 +108,18 @@ const char *clang_getCompletionChunkText(CXCompletionString completion_string,
|
|||
case CodeCompletionString::CK_Equal:
|
||||
case CodeCompletionString::CK_HorizontalSpace:
|
||||
case CodeCompletionString::CK_VerticalSpace:
|
||||
return (*CCStr)[chunk_number].Text;
|
||||
return createCXString((*CCStr)[chunk_number].Text, false);
|
||||
|
||||
case CodeCompletionString::CK_Optional:
|
||||
// Note: treated as an empty text block.
|
||||
return "";
|
||||
return createCXString("");
|
||||
}
|
||||
|
||||
// Should be unreachable, but let's be careful.
|
||||
return 0;
|
||||
return createCXString(0);
|
||||
}
|
||||
|
||||
|
||||
CXCompletionString
|
||||
clang_getCompletionChunkCompletionString(CXCompletionString completion_string,
|
||||
unsigned chunk_number) {
|
||||
|
|
|
@ -755,7 +755,8 @@ void print_completion_string(CXCompletionString completion_string, FILE *file) {
|
|||
|
||||
N = clang_getNumCompletionChunks(completion_string);
|
||||
for (I = 0; I != N; ++I) {
|
||||
const char *text = 0;
|
||||
CXString text;
|
||||
const char *cstr;
|
||||
enum CXCompletionChunkKind Kind
|
||||
= clang_getCompletionChunkKind(completion_string, I);
|
||||
|
||||
|
@ -769,10 +770,13 @@ void print_completion_string(CXCompletionString completion_string, FILE *file) {
|
|||
}
|
||||
|
||||
text = clang_getCompletionChunkText(completion_string, I);
|
||||
cstr = clang_getCString(text);
|
||||
fprintf(file, "{%s %s}",
|
||||
clang_getCompletionChunkKindSpelling(Kind),
|
||||
text? text : "");
|
||||
cstr ? cstr : "");
|
||||
clang_disposeString(text);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void print_completion_result(CXCompletionResult *completion_result,
|
||||
|
|
Loading…
Reference in New Issue