From fb48a262e6f34b8fb4e6f87b69556afaeb263bfa Mon Sep 17 00:00:00 2001 From: Erik Verbruggen <erik.verbruggen@nokia.com> Date: Mon, 6 Jul 2009 16:29:44 +0200 Subject: [PATCH] Added a bit more completion for the DUI editor. --- src/plugins/duieditor/duicodecompletion.cpp | 17 ++++++++++++++++- src/plugins/duieditor/duieditor.h | 2 ++ src/plugins/duieditor/duieditor.pro | 6 ++++-- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/plugins/duieditor/duicodecompletion.cpp b/src/plugins/duieditor/duicodecompletion.cpp index cceca642d2f..bdef36faaab 100644 --- a/src/plugins/duieditor/duicodecompletion.cpp +++ b/src/plugins/duieditor/duicodecompletion.cpp @@ -1,4 +1,4 @@ - +#include "duicompletionvisitor.h" #include "duicodecompletion.h" #include "duieditor.h" #include <texteditor/basetexteditor.h> @@ -61,6 +61,21 @@ int DuiCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) m_completions.append(item); } + DuiDocument::Ptr duiDocument = edit->duiDocument(); + if (!duiDocument.isNull()) { + QmlJS::AST::UiProgram *program = duiDocument->program(); + + if (program) { + DuiCompletionVisitor visitor; + + foreach (const QString &word, visitor(program, m_startPosition)) { + TextEditor::CompletionItem item(this); + item.m_text = word; + m_completions.append(item); + } + } + } + return pos; } diff --git a/src/plugins/duieditor/duieditor.h b/src/plugins/duieditor/duieditor.h index 4e5171aa533..d6e58f628e8 100644 --- a/src/plugins/duieditor/duieditor.h +++ b/src/plugins/duieditor/duieditor.h @@ -106,6 +106,8 @@ public: virtual void unCommentSelection(); + DuiDocument::Ptr duiDocument() const { return m_document; } + public slots: virtual void setFontSettings(const TextEditor::FontSettings &); diff --git a/src/plugins/duieditor/duieditor.pro b/src/plugins/duieditor/duieditor.pro index daaa282e0c7..ca06112d9d4 100644 --- a/src/plugins/duieditor/duieditor.pro +++ b/src/plugins/duieditor/duieditor.pro @@ -20,7 +20,8 @@ duieditoractionhandler.h \ duicodecompletion.h \ duieditorconstants.h \ duihoverhandler.h \ -duidocument.h +duidocument.h \ +duicompletionvisitor.h SOURCES += duieditor.cpp \ duieditorfactory.cpp \ @@ -29,6 +30,7 @@ duihighlighter.cpp \ duieditoractionhandler.cpp \ duicodecompletion.cpp \ duihoverhandler.cpp \ -duidocument.cpp +duidocument.cpp \ +duicompletionvisitor.cpp RESOURCES += duieditor.qrc -- GitLab