From d7747fe849e8a012f3c64fd85f038b90cdb6a0e9 Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Mon, 7 Jun 2010 17:37:21 +0200 Subject: [PATCH] QmlJS: Trigger another completion if a completion ends with a dot. --- src/plugins/qmljseditor/qmljscodecompletion.cpp | 10 ++++++++-- src/plugins/qmljseditor/qmljscodecompletion.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmljseditor/qmljscodecompletion.cpp b/src/plugins/qmljseditor/qmljscodecompletion.cpp index 7981fa1ed8f..3fd2d3db4ce 100644 --- a/src/plugins/qmljseditor/qmljscodecompletion.cpp +++ b/src/plugins/qmljseditor/qmljscodecompletion.cpp @@ -479,7 +479,8 @@ CodeCompletion::CodeCompletion(ModelManagerInterface *modelManager, QObject *par : TextEditor::ICompletionCollector(parent), m_modelManager(modelManager), m_editor(0), - m_startPosition(0) + m_startPosition(0), + m_restartCompletion(false) { Q_ASSERT(modelManager); } @@ -494,7 +495,7 @@ int CodeCompletion::startPosition() const { return m_startPosition; } bool CodeCompletion::shouldRestartCompletion() -{ return false; } +{ return m_restartCompletion; } bool CodeCompletion::supportsEditor(TextEditor::ITextEditable *editor) { @@ -649,6 +650,8 @@ void CodeCompletion::addCompletionsPropertyLhs( int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor) { + m_restartCompletion = false; + m_editor = editor; QmlJSTextEditor *edit = qobject_cast<QmlJSTextEditor *>(m_editor->widget()); @@ -882,6 +885,9 @@ void CodeCompletion::complete(const TextEditor::CompletionItem &item) const int length = m_editor->position() - m_startPosition; m_editor->setCurPos(m_startPosition); m_editor->replace(length, toInsert); + + if (toInsert.endsWith(QLatin1Char('.'))) + m_restartCompletion = true; } bool CodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem> &completionItems) diff --git a/src/plugins/qmljseditor/qmljscodecompletion.h b/src/plugins/qmljseditor/qmljscodecompletion.h index 6df5763be0c..3b2ae62992a 100644 --- a/src/plugins/qmljseditor/qmljscodecompletion.h +++ b/src/plugins/qmljseditor/qmljscodecompletion.h @@ -96,6 +96,7 @@ private: QList<TextEditor::CompletionItem> m_snippets; QDateTime m_snippetFileLastModified; QPointer<FunctionArgumentWidget> m_functionArgumentWidget; + bool m_restartCompletion; }; -- GitLab