From e6069f00bc2ddacebd5219ce01704fe6e1efd487 Mon Sep 17 00:00:00 2001 From: eidheim Date: Fri, 18 Jun 2021 16:36:45 +0200 Subject: [PATCH] Minor improvement to extend_selection(), and correction of cursor movement on functions with no arguments --- src/source.cpp | 2 +- src/source_language_protocol.cpp | 3 ++- src/source_language_protocol.hpp | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/source.cpp b/src/source.cpp index 9935ed7..6586568 100644 --- a/src/source.cpp +++ b/src/source.cpp @@ -1553,7 +1553,7 @@ void Source::View::extend_selection() { // Attempt to select a sentence, for instance: int a = 2; if(!is_bracket_language) { // If for instance cmake, meson or python if(!select_matching_brackets) { - bool select_end_block = is_language({"cmake", "meson", "julia"}); + bool select_end_block = is_language({"cmake", "meson", "julia", "xml"}); auto get_tabs = [this](Gtk::TextIter iter) -> boost::optional { iter = get_buffer()->get_iter_at_line(iter.get_line()); diff --git a/src/source_language_protocol.cpp b/src/source_language_protocol.cpp index 0a1b192..19ae65d 100644 --- a/src/source_language_protocol.cpp +++ b/src/source_language_protocol.cpp @@ -1570,7 +1570,8 @@ void Source::LanguageProtocolView::setup_autocomplete() { auto iter = get_buffer()->get_insert()->get_iter(); if(*iter == ')' && iter.backward_char() && *iter == '(') { // If no arguments, try signatureHelp last_keyval = '('; - autocompete_possibly_no_arguments = true; + if(is_js) // Workaround for typescript-language-server + autocompete_possibly_no_arguments = true; autocomplete->run(); } } diff --git a/src/source_language_protocol.hpp b/src/source_language_protocol.hpp index cc3514f..0f33f37 100644 --- a/src/source_language_protocol.hpp +++ b/src/source_language_protocol.hpp @@ -251,6 +251,7 @@ namespace Source { std::atomic autocomplete_enable_snippets = {false}; bool autocomplete_show_arguments = false; sigc::connection autocomplete_delayed_show_arguments_connection; + /// Workaround for typescript-language-server. /// Used to move cursor forward if no arguments in completed function and if cursor is still inside () bool autocompete_possibly_no_arguments = false;