QmlJS: Trigger another completion if a completion ends with a dot.

This commit is contained in:
Christian Kamm
2010-06-07 17:37:21 +02:00
parent 3b8b6e89cc
commit d7747fe849
2 changed files with 9 additions and 2 deletions

View File

@@ -479,7 +479,8 @@ CodeCompletion::CodeCompletion(ModelManagerInterface *modelManager, QObject *par
: TextEditor::ICompletionCollector(parent), : TextEditor::ICompletionCollector(parent),
m_modelManager(modelManager), m_modelManager(modelManager),
m_editor(0), m_editor(0),
m_startPosition(0) m_startPosition(0),
m_restartCompletion(false)
{ {
Q_ASSERT(modelManager); Q_ASSERT(modelManager);
} }
@@ -494,7 +495,7 @@ int CodeCompletion::startPosition() const
{ return m_startPosition; } { return m_startPosition; }
bool CodeCompletion::shouldRestartCompletion() bool CodeCompletion::shouldRestartCompletion()
{ return false; } { return m_restartCompletion; }
bool CodeCompletion::supportsEditor(TextEditor::ITextEditable *editor) bool CodeCompletion::supportsEditor(TextEditor::ITextEditable *editor)
{ {
@@ -649,6 +650,8 @@ void CodeCompletion::addCompletionsPropertyLhs(
int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor) int CodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
{ {
m_restartCompletion = false;
m_editor = editor; m_editor = editor;
QmlJSTextEditor *edit = qobject_cast<QmlJSTextEditor *>(m_editor->widget()); 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; const int length = m_editor->position() - m_startPosition;
m_editor->setCurPos(m_startPosition); m_editor->setCurPos(m_startPosition);
m_editor->replace(length, toInsert); m_editor->replace(length, toInsert);
if (toInsert.endsWith(QLatin1Char('.')))
m_restartCompletion = true;
} }
bool CodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem> &completionItems) bool CodeCompletion::partiallyComplete(const QList<TextEditor::CompletionItem> &completionItems)

View File

@@ -96,6 +96,7 @@ private:
QList<TextEditor::CompletionItem> m_snippets; QList<TextEditor::CompletionItem> m_snippets;
QDateTime m_snippetFileLastModified; QDateTime m_snippetFileLastModified;
QPointer<FunctionArgumentWidget> m_functionArgumentWidget; QPointer<FunctionArgumentWidget> m_functionArgumentWidget;
bool m_restartCompletion;
}; };