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