diff --git a/src/plugins/languageclient/languageclientcompletionassist.cpp b/src/plugins/languageclient/languageclientcompletionassist.cpp index 96e54204fc3..f0b66facc18 100644 --- a/src/plugins/languageclient/languageclientcompletionassist.cpp +++ b/src/plugins/languageclient/languageclientcompletionassist.cpp @@ -289,7 +289,12 @@ public: { if (!proposal) return; - updateModel(proposal->model(), prefix); + if (proposal->id() != TextEditor::Constants::GENERIC_PROPOSAL_ID) { + // We received something else than a generic proposal so we cannot update the model + closeProposal(); + return; + } + updateModel(proposal->model().staticCast(), prefix); delete proposal; } diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp index 708c6d3654b..81a85b23ff1 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.cpp +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.cpp @@ -392,12 +392,12 @@ void GenericProposalWidget::setIsSynchronized(bool isSync) d->m_isSynchronized = isSync; } -void GenericProposalWidget::updateModel(ProposalModelPtr model, const QString &prefix) +void GenericProposalWidget::updateModel(GenericProposalModelPtr model, const QString &prefix) { QString currentText; if (d->m_explicitlySelected) currentText = d->m_model->text(d->m_completionListView->currentIndex().row()); - d->m_model = model.staticCast(); + d->m_model = model; if (d->m_model->containsDuplicates()) d->m_model->removeDuplicates(); d->m_completionListView->setModel(new ModelAdapter(d->m_model, d->m_completionListView)); diff --git a/src/plugins/texteditor/codeassist/genericproposalwidget.h b/src/plugins/texteditor/codeassist/genericproposalwidget.h index 893069e8cf6..4aab14514ce 100644 --- a/src/plugins/texteditor/codeassist/genericproposalwidget.h +++ b/src/plugins/texteditor/codeassist/genericproposalwidget.h @@ -31,7 +31,7 @@ public: void setDisplayRect(const QRect &rect) override; void setIsSynchronized(bool isSync) override; - void updateModel(ProposalModelPtr model, const QString &prefix); + void updateModel(GenericProposalModelPtr model, const QString &prefix); void showProposal(const QString &prefix) override; void filterProposal(const QString &prefix) override;