Browse Source

Language client: added support for JSX property completion after space inside JSX angle brackets

pipelines/235045657
eidheim 6 years ago
parent
commit
5144dbb2d3
  1. 21
      src/source_language_protocol.cpp

21
src/source_language_protocol.cpp

@ -1417,7 +1417,21 @@ void Source::LanguageProtocolView::setup_autocomplete() {
return false;
};
autocomplete->run_check = [this]() {
std::function<bool(const Gtk::TextIter &)> is_possible_jsx_property = [](const Gtk::TextIter &) { return false; };
if(language && language->get_id() == "js") {
autocomplete->is_restart_key = [](guint keyval) {
if(keyval == '.' || keyval == ' ')
return true;
return false;
};
is_possible_jsx_property = [this](const Gtk::TextIter &iter) {
Gtk::TextIter found_iter;
return *iter == ' ' && find_open_symbol_backward(iter, found_iter, '<', '>');
};
}
autocomplete->run_check = [this, is_possible_jsx_property]() {
auto iter = get_buffer()->get_insert()->get_iter();
iter.backward_char();
if(!is_code_iter(iter))
@ -1440,6 +1454,11 @@ void Source::LanguageProtocolView::setup_autocomplete() {
}
return true;
}
else if(is_possible_jsx_property(iter)) {
LockGuard lock(autocomplete->prefix_mutex);
autocomplete->prefix = "";
return true;
}
else if(is_possible_argument()) {
autocomplete_show_arguments = true;
LockGuard lock(autocomplete->prefix_mutex);

Loading…
Cancel
Save