mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-26 09:31:59 +00:00
Un-indent extracted comments (#191)
This commit is contained in:
parent
20c156f71d
commit
23bbe81b92
@ -188,17 +188,30 @@ std::string ClangCursor::get_type_description() const {
|
|||||||
optional<std::string> ClangCursor::get_comments() const {
|
optional<std::string> ClangCursor::get_comments() const {
|
||||||
if (!g_enable_comments)
|
if (!g_enable_comments)
|
||||||
return nullopt;
|
return nullopt;
|
||||||
ClangCursor referenced = get_referenced();
|
CXSourceRange range = clang_Cursor_getCommentRange(cx_cursor);
|
||||||
// TODO Format comments
|
if (clang_Range_isNull(range))
|
||||||
std::string ret =
|
|
||||||
referenced
|
|
||||||
// Get unformatted comments. Returns multiple paragraphs.
|
|
||||||
? ::ToString(clang_Cursor_getRawCommentText(referenced.cx_cursor))
|
|
||||||
// Get formatted comments. Returns only the first paragraph.
|
|
||||||
: ::ToString(clang_Cursor_getBriefCommentText(referenced.cx_cursor));
|
|
||||||
if (ret.empty())
|
|
||||||
return nullopt;
|
return nullopt;
|
||||||
return ret;
|
|
||||||
|
unsigned start_column;
|
||||||
|
clang_getSpellingLocation(clang_getRangeStart(range), nullptr, nullptr,
|
||||||
|
&start_column, nullptr);
|
||||||
|
|
||||||
|
// Get associated comment text.
|
||||||
|
CXString cx_raw = clang_Cursor_getRawCommentText(cx_cursor);
|
||||||
|
// The first line starts with a comment marker, but the rest needs un-indenting.
|
||||||
|
std::string unindented;
|
||||||
|
for (const char* p = clang_getCString(cx_raw); *p; ) {
|
||||||
|
auto skip = start_column - 1;
|
||||||
|
for (; skip > 0 && (*p == ' ' || *p == '\t'); p++)
|
||||||
|
skip--;
|
||||||
|
const char* q = p;
|
||||||
|
while (*q != '\n' && *q) q++;
|
||||||
|
if (*q) q++;
|
||||||
|
unindented.insert(unindented.end(), p, q);
|
||||||
|
p = q;
|
||||||
|
}
|
||||||
|
clang_disposeString(cx_raw);
|
||||||
|
return unindented;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string ClangCursor::ToString() const {
|
std::string ClangCursor::ToString() const {
|
||||||
|
Loading…
Reference in New Issue
Block a user