New code assist API

This is a re-work of our completion engine. Primary goals are:

- Allow the computation to run in a separate thread so the GUI is not locked.
- Support a model-based approach. QStrings are still needed (filtering, etc), but
internal structures are free to use more efficient representations.
- Unifiy all kinds of *assist* into a more reusable and extensible framework.
- Remove unnecessary dependencies on the text editor so we have more generic
and easily "plugable" components (still things to be resolved).
This commit is contained in:
Leandro Melo
2011-04-15 16:19:23 +02:00
parent d835b769c7
commit bec4f02495
119 changed files with 9347 additions and 6595 deletions

View File

@@ -68,7 +68,7 @@ namespace Internal {
class QmlJSEditorFactory;
class QmlJSPreviewRunner;
class QmlJSQuickFixCollector;
class QmlJSQuickFixAssistProvider;
class QmlTaskManager;
class QmlJSEditorPlugin : public ExtensionSystem::IPlugin
@@ -87,7 +87,7 @@ public:
static QmlJSEditorPlugin *instance()
{ return m_instance; }
QmlJSQuickFixCollector *quickFixCollector() const;
QmlJSQuickFixAssistProvider *quickFixAssistProvider() const;
void initializeEditor(QmlJSEditor::QmlJSTextEditorWidget *editor);
@@ -97,8 +97,6 @@ public Q_SLOTS:
void showContextPane();
private Q_SLOTS:
void quickFix(TextEditor::ITextEditor *editable);
void quickFixNow();
void currentEditorChanged(Core::IEditor *editor);
private:
@@ -115,9 +113,8 @@ private:
QmlJSEditorFactory *m_editor;
TextEditor::TextEditorActionHandler *m_actionHandler;
QmlJSQuickFixCollector *m_quickFixCollector;
QmlJSQuickFixAssistProvider *m_quickFixAssistProvider;
QTimer *m_quickFixTimer;
QPointer<TextEditor::ITextEditor> m_currentTextEditable;
QmlTaskManager *m_qmlTaskManager;
};