Browse Source

Cleanup of CompletionString class

merge-requests/37/head
eidheim 8 years ago
parent
commit
d85dc20742
  1. 28
      src/CompletionString.cc
  2. 12
      src/CompletionString.h

28
src/CompletionString.cc

@ -1,28 +1,28 @@
#include "CompletionString.h" #include "CompletionString.h"
#include "Utility.h" #include "Utility.h"
clangmm::CompletionString:: clangmm::CompletionChunk::CompletionChunk(std::string text, CompletionChunkKind kind)
CompletionString(const CXCompletionString &cx_completion_sting) : cx_completion_sting(cx_completion_sting) {} : text(std::move(text)), kind(kind) {}
bool clangmm::CompletionString::available() { clangmm::CompletionString::CompletionString(const CXCompletionString &cx_completion_sting)
: cx_completion_sting(cx_completion_sting) {}
bool clangmm::CompletionString::available() const {
return clang_getCompletionAvailability(cx_completion_sting) == CXAvailability_Available; return clang_getCompletionAvailability(cx_completion_sting) == CXAvailability_Available;
} }
unsigned clangmm::CompletionString::get_num_chunks() { unsigned clangmm::CompletionString::get_num_chunks() const {
return clang_getNumCompletionChunks(cx_completion_sting); return clang_getNumCompletionChunks(cx_completion_sting);
} }
std::vector<clangmm::CompletionChunk> clangmm::CompletionString::get_chunks() { std::vector<clangmm::CompletionChunk> clangmm::CompletionString::get_chunks() const {
std::vector<CompletionChunk> res; std::vector<CompletionChunk> chunks;
for (unsigned i = 0; i < get_num_chunks(); i++) { for(unsigned i = 0; i < get_num_chunks(); ++i)
res.emplace_back(to_string(clang_getCompletionChunkText(cx_completion_sting, i)), static_cast<CompletionChunkKind> (clang_getCompletionChunkKind(cx_completion_sting, i))); chunks.emplace_back(to_string(clang_getCompletionChunkText(cx_completion_sting, i)),
} static_cast<CompletionChunkKind>(clang_getCompletionChunkKind(cx_completion_sting, i)));
return res; return chunks;
} }
std::string clangmm::CompletionString::get_brief_comments() { std::string clangmm::CompletionString::get_brief_comments() const {
return to_string(clang_getCompletionBriefComment(cx_completion_sting)); return to_string(clang_getCompletionBriefComment(cx_completion_sting));
} }
clangmm::CompletionChunk::CompletionChunk(std::string chunk, CompletionChunkKind kind) :
chunk(chunk), kind(kind) { }

12
src/CompletionString.h

@ -21,18 +21,18 @@ namespace clangmm {
class CompletionChunk { class CompletionChunk {
public: public:
CompletionChunk(std::string chunk, CompletionChunkKind kind); CompletionChunk(std::string text, CompletionChunkKind kind);
std::string chunk; std::string text;
CompletionChunkKind kind; CompletionChunkKind kind;
}; };
class CompletionString { class CompletionString {
public: public:
explicit CompletionString(const CXCompletionString &cx_completion_sting); explicit CompletionString(const CXCompletionString &cx_completion_sting);
bool available(); bool available() const;
std::vector<CompletionChunk> get_chunks(); std::vector<CompletionChunk> get_chunks() const;
std::string get_brief_comments(); std::string get_brief_comments() const;
unsigned get_num_chunks(); unsigned get_num_chunks() const;
CXCompletionString cx_completion_sting; CXCompletionString cx_completion_sting;
}; };

Loading…
Cancel
Save