diff --git a/src/plugins/duieditor/duicodecompletion.cpp b/src/plugins/duieditor/duicodecompletion.cpp index cceca642d2f4bdf09e2b659e124e6e8e0e041e7b..bdef36faaab74a10db267b2e7f9d189b8dff2a47 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 4e5171aa533658295f4ca6f38f5ad7cd47e3a85a..d6e58f628e89314d6a47f7708ae80d34d14e52b6 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 daaa282e0c7f54d3bf061d0637af4ad64e82ce93..ca06112d9d4d732c4efa85b05a76f2796bda5e5b 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