diff --git a/src/plugins/languageclient/baseclient.cpp b/src/plugins/languageclient/baseclient.cpp index e124a4c3af8..56ed95f3e4f 100644 --- a/src/plugins/languageclient/baseclient.cpp +++ b/src/plugins/languageclient/baseclient.cpp @@ -51,6 +51,7 @@ #include #include #include +#include using namespace LanguageServerProtocol; using namespace Utils; @@ -150,9 +151,13 @@ void BaseClient::openDocument(Core::IDocument *document) if (textDocument) { textDocument->setCompletionAssistProvider(new LanguageClientCompletionAssistProvider(this)); if (BaseTextEditor *editor = BaseTextEditor::textEditorForDocument(textDocument)) { - if (TextEditorWidget *widget = editor->editorWidget()) { + if (QPointer widget = editor->editorWidget()) { connect(widget, &TextEditorWidget::cursorPositionChanged, this, [this, widget](){ - cursorPositionChanged(widget); + // TODO This would better be a compressing timer + QTimer::singleShot(50, this, [this, widget]() { + if (widget) + cursorPositionChanged(widget); + }); }); } }