Compare commits

..

No commits in common. 'bea59efc1cc45deeb8664c00f4df5cc760f9008a' and '18c119f65106996709f23e3445f8c705a7a4edbe' have entirely different histories.

  1. 2
      src/source_clang.cpp
  2. 14
      src/source_language_protocol.cpp

2
src/source_clang.cpp

@ -893,7 +893,7 @@ Source::ClangViewAutocomplete::ClangViewAutocomplete(const boost::filesystem::pa
autocomplete.is_restart_key = [this](guint keyval) { autocomplete.is_restart_key = [this](guint keyval) {
auto iter = get_buffer()->get_insert()->get_iter(); auto iter = get_buffer()->get_insert()->get_iter();
iter.backward_chars(2); iter.backward_chars(2);
if(keyval == '.' || (*iter == ':' && keyval == ':') || (*iter == '-' && keyval == '>')) if(keyval == '.' || (keyval == ':' && *iter == ':') || (keyval == '>' && *iter == '-'))
return true; return true;
return false; return false;
}; };

14
src/source_language_protocol.cpp

@ -1610,7 +1610,7 @@ void Source::LanguageProtocolView::setup_autocomplete() {
autocomplete->is_restart_key = [this](guint keyval) { autocomplete->is_restart_key = [this](guint keyval) {
auto iter = get_buffer()->get_insert()->get_iter(); auto iter = get_buffer()->get_insert()->get_iter();
iter.backward_chars(2); iter.backward_chars(2);
if(keyval == '.' || (*iter == ':' && keyval == ':') || (*iter == '-' && keyval == '>')) if(keyval == '.' || (keyval == ':' && *iter == ':'))
return true; return true;
return false; return false;
}; };
@ -1657,7 +1657,7 @@ void Source::LanguageProtocolView::setup_autocomplete() {
} }
return true; return true;
} }
else if(prevprev.backward_char() && ((*prevprev == ':' && *prev == ':') || (*prevprev == '-' && *prev == '>'))) { else if(prevprev.backward_char() && *prevprev == ':' && *prev == ':') {
{ {
LockGuard lock(autocomplete->prefix_mutex); LockGuard lock(autocomplete->prefix_mutex);
autocomplete->prefix = get_buffer()->get_text(prefix_start, prefix_end); autocomplete->prefix = get_buffer()->get_text(prefix_start, prefix_end);
@ -1689,7 +1689,7 @@ void Source::LanguageProtocolView::setup_autocomplete() {
autocomplete->prefix = get_buffer()->get_text(prefix_start, prefix_end); autocomplete->prefix = get_buffer()->get_text(prefix_start, prefix_end);
} }
auto prevprev = prev; auto prevprev = prev;
autocomplete_enable_snippets = !(*prev == '.' || (prevprev.backward_char() && ((*prevprev == ':' && *prev == ':') || (*prevprev == '-' && *prev == '>')))); autocomplete_enable_snippets = !(*prev == '.' || (prevprev.backward_char() && *prevprev == ':' && *prev == ':'));
return true; return true;
} }
@ -1808,13 +1808,7 @@ void Source::LanguageProtocolView::setup_autocomplete() {
prefix = autocomplete->prefix; prefix = autocomplete->prefix;
} }
for(auto &item : items) { for(auto &item : items) {
auto label = item.string_or("filterText", item.string_or("label", "")); auto label = item.string_or("label", "");
if(!label.empty()) {
if(starts_with(label, "."))
label.erase(0, 1);
else if(starts_with(label, "::") || starts_with(label, "->"))
label.erase(0, 2);
}
if(starts_with(label, prefix)) { if(starts_with(label, prefix)) {
auto detail = item.string_or("detail", ""); auto detail = item.string_or("detail", "");
LanguageProtocol::Documentation documentation(item.child_optional("documentation")); LanguageProtocol::Documentation documentation(item.child_optional("documentation"));

Loading…
Cancel
Save