Browse Source

Language protocol: no longer adds parameters when selecting autocomplete items using for instance arrow down/up

merge-requests/389/head
eidheim 7 years ago
parent
commit
365a471030
  1. 25
      src/source_language_protocol.cc

25
src/source_language_protocol.cc

@ -1434,10 +1434,20 @@ void Source::LanguageProtocolView::setup_autocomplete() {
}; };
autocomplete.on_select = [this](unsigned int index, const std::string &text, bool hide_window) { autocomplete.on_select = [this](unsigned int index, const std::string &text, bool hide_window) {
Glib::ustring insert = autocomplete_insert[index];
get_buffer()->erase(CompletionDialog::get()->start_mark->get_iter(), get_buffer()->get_insert()->get_iter()); get_buffer()->erase(CompletionDialog::get()->start_mark->get_iter(), get_buffer()->get_insert()->get_iter());
if(hide_window) {
Glib::ustring insert = autocomplete_insert[index];
// Do not insert function/template parameters if they already exist
auto iter = get_buffer()->get_insert()->get_iter();
if(*iter == '(' || *iter == '<') {
auto bracket_pos = insert.find(*iter);
if(bracket_pos != std::string::npos) {
insert = insert.substr(0, bracket_pos);
}
}
if(hide_window) {
if(autocomplete_show_parameters) { if(autocomplete_show_parameters) {
if(has_named_parameters()) { // Do not select named parameters in for instance Python if(has_named_parameters()) { // Do not select named parameters in for instance Python
get_buffer()->insert(CompletionDialog::get()->start_mark->get_iter(), insert); get_buffer()->insert(CompletionDialog::get()->start_mark->get_iter(), insert);
@ -1452,15 +1462,6 @@ void Source::LanguageProtocolView::setup_autocomplete() {
} }
} }
// Do not insert function/template parameters if they already exist
auto iter = get_buffer()->get_insert()->get_iter();
if(*iter == '(' || *iter == '<') {
auto bracket_pos = insert.find(*iter);
if(bracket_pos != std::string::npos) {
insert = insert.substr(0, bracket_pos);
}
}
// Find and add position marks that one can move to using tab-key // Find and add position marks that one can move to using tab-key
size_t pos1 = 0; size_t pos1 = 0;
std::vector<std::pair<size_t, size_t>> mark_offsets; std::vector<std::pair<size_t, size_t>> mark_offsets;
@ -1500,7 +1501,7 @@ void Source::LanguageProtocolView::setup_autocomplete() {
} }
} }
else else
get_buffer()->insert(CompletionDialog::get()->start_mark->get_iter(), text); get_buffer()->insert(CompletionDialog::get()->start_mark->get_iter(), insert);
}; };
autocomplete.get_tooltip = [this](unsigned int index) { autocomplete.get_tooltip = [this](unsigned int index) {

Loading…
Cancel
Save