Browse Source

More correct bold use in goto method.

merge-requests/365/head
eidheim 10 years ago
parent
commit
f4c9fa3780
  1. 27
      src/source_clang.cc

27
src/source_clang.cc

@ -1113,19 +1113,34 @@ Source::ClangViewAutocomplete(file_path, project_path, language) {
return; return;
for(auto &method: methods) { for(auto &method: methods) {
std::string row=Glib::Markup::escape_text(method.first); std::string row=Glib::Markup::escape_text(method.first);
//Add bold method token //Add bold method token
size_t token_end_pos=row.find('('); size_t token_end_pos=row.find('(');
if(token_end_pos==0 || token_end_pos==std::string::npos) if(token_end_pos==0 || token_end_pos==std::string::npos)
continue; continue;
auto pos=token_end_pos-1; if(token_end_pos>8 && row.substr(token_end_pos-4, 4)==">") {
while(((row[pos]>='a' && row[pos]<='z') || token_end_pos-=8;
(row[pos]>='A' && row[pos]<='Z') || size_t angle_bracket_count=1;
(row[pos]>='0' && row[pos]<='9') || row[pos]=='_') && pos>0) do {
if(row.substr(token_end_pos-4, 4)=="&gt;") {
angle_bracket_count++;
token_end_pos-=4;
}
else if(row.substr(token_end_pos-4, 4)=="&lt;") {
angle_bracket_count--;
token_end_pos-=4;
}
else
token_end_pos--;
} while(angle_bracket_count>0 && token_end_pos>4);
}
auto pos=token_end_pos;
do {
pos--; pos--;
} while(((row[pos]>='a' && row[pos]<='z') ||
(row[pos]>='A' && row[pos]<='Z') ||
(row[pos]>='0' && row[pos]<='9') || row[pos]=='_' || row[pos]=='~') && pos>0);
row.insert(token_end_pos, "</b>"); row.insert(token_end_pos, "</b>");
row.insert(pos+1, "<b>"); row.insert(pos+1, "<b>");
(*rows)[row]=method.second; (*rows)[row]=method.second;
selection_dialog->add_row(row); selection_dialog->add_row(row);
} }

Loading…
Cancel
Save