Browse Source

Improved readability of Go to Method dialog rows

merge-requests/365/head
eidheim 8 years ago
parent
commit
8e347ed588
  1. 33
      src/source_clang.cc

33
src/source_clang.cc

@ -1290,33 +1290,38 @@ Source::ClangViewRefactor::ClangViewRefactor(const boost::filesystem::path &file
method.erase(pos, 1); method.erase(pos, 1);
method+=" "; method+=" ";
} }
method+=cursor.get_display_name();
std::string parent_str; std::string prefix;
auto parent=cursor.get_semantic_parent(); auto parent=cursor.get_semantic_parent();
while(parent && parent.get_kind()!=clangmm::Cursor::Kind::TranslationUnit) { while(parent && parent.get_kind()!=clangmm::Cursor::Kind::TranslationUnit) {
parent_str.insert(0, parent.get_display_name()+"::"); prefix.insert(0, parent.get_display_name()+(prefix.empty()?"":"::"));
parent=parent.get_semantic_parent(); parent=parent.get_semantic_parent();
} }
method+=parent_str+cursor.get_display_name(); method=Glib::Markup::escape_text(method);
std::string row=std::to_string(offset.line)+": "+Glib::Markup::escape_text(method);
//Add bold method token //Add bold method token
size_t token_end_pos=row.find('('); size_t token_end_pos=method.find('(');
if(token_end_pos==0 || token_end_pos==std::string::npos) if(token_end_pos==std::string::npos)
continue; continue;
auto pos=token_end_pos; auto token_start_pos=token_end_pos;
do { while(token_start_pos!=0 && method[token_start_pos]!=' ')
pos--; --token_start_pos;
} while(row[pos]!=':' && row[pos]!=' ' && pos!=std::string::npos); method.insert(token_end_pos, "</b>");
row.insert(token_end_pos, "</b>"); method.insert(token_start_pos, "<b>");
row.insert(pos+1, "<b>");
methods.emplace_back(Offset(offset.line-1, offset.index-1), row); if(!prefix.empty())
prefix+=':';
prefix+=std::to_string(offset.line)+": ";
prefix=Glib::Markup::escape_text(prefix);
methods.emplace_back(Offset(offset.line-1, offset.index-1), prefix+method);
} }
} }
} }
if(methods.empty()) if(methods.empty())
Info::get().print("No methods found in current buffer"); Info::get().print("No methods found in current buffer");
return methods; return methods;
}; };

Loading…
Cancel
Save