diff options
author | Leandro Melo <leandro.melo@nokia.com> | 2011-04-15 16:19:23 +0200 |
---|---|---|
committer | Leandro Melo <leandro.melo@nokia.com> | 2011-05-18 10:46:20 +0200 |
commit | bec4f02495b97b17e0b0f8cb67d0909634c16228 (patch) | |
tree | 21759e0b9ebc6b0dca84f01875223020665d7843 /src/plugins/cppeditor/cppquickfix.h | |
parent | d835b769c7d6b37e59a8a74a0d68260d34e7a7f9 (diff) |
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).
Diffstat (limited to 'src/plugins/cppeditor/cppquickfix.h')
-rw-r--r-- | src/plugins/cppeditor/cppquickfix.h | 44 |
1 files changed, 12 insertions, 32 deletions
diff --git a/src/plugins/cppeditor/cppquickfix.h b/src/plugins/cppeditor/cppquickfix.h index 034ab9e2f5..71da104263 100644 --- a/src/plugins/cppeditor/cppquickfix.h +++ b/src/plugins/cppeditor/cppquickfix.h @@ -53,40 +53,17 @@ class IPlugin; namespace CppEditor { namespace Internal { -class CppQuickFixCollector; -} // namespace Internal - -class CPPEDITOR_EXPORT CppQuickFixState: public TextEditor::QuickFixState -{ - friend class Internal::CppQuickFixCollector; - -public: - CppQuickFixState(TextEditor::BaseTextEditorWidget *editor); - - const QList<CPlusPlus::AST *> &path() const; - CPlusPlus::Snapshot snapshot() const; - CPlusPlus::Document::Ptr document() const; - CppEditor::Internal::SemanticInfo semanticInfo() const; - const CPlusPlus::LookupContext &context() const; - - const CppTools::CppRefactoringFile currentFile() const; - - bool isCursorOn(unsigned tokenIndex) const; - bool isCursorOn(const CPlusPlus::AST *ast) const; - -private: - QList<CPlusPlus::AST *> _path; - CPlusPlus::Snapshot _snapshot; - CppEditor::Internal::SemanticInfo _semanticInfo; - CPlusPlus::LookupContext _context; -}; +class CppQuickFixAssistInterface; +} class CPPEDITOR_EXPORT CppQuickFixOperation: public TextEditor::QuickFixOperation { Q_DISABLE_COPY(CppQuickFixOperation) public: - explicit CppQuickFixOperation(const CppQuickFixState &state, int priority = -1); + explicit CppQuickFixOperation( + const QSharedPointer<const Internal::CppQuickFixAssistInterface> &interface, + int priority = -1); virtual ~CppQuickFixOperation(); virtual void perform(); @@ -97,10 +74,10 @@ protected: QString fileName() const; - const CppQuickFixState &state() const; + const Internal::CppQuickFixAssistInterface *assistInterface() const; private: - CppQuickFixState _state; + QSharedPointer<const Internal::CppQuickFixAssistInterface> m_interface; }; class CPPEDITOR_EXPORT CppQuickFixFactory: public TextEditor::QuickFixFactory @@ -111,12 +88,15 @@ public: CppQuickFixFactory(); virtual ~CppQuickFixFactory(); - virtual QList<TextEditor::QuickFixOperation::Ptr> matchingOperations(TextEditor::QuickFixState *state); + virtual QList<TextEditor::QuickFixOperation::Ptr> + matchingOperations(const QSharedPointer<const TextEditor::IAssistInterface> &interface); + /*! Implement this method to match and create the appropriate CppQuickFixOperation objects. */ - virtual QList<CppQuickFixOperation::Ptr> match(const CppQuickFixState &state) = 0; + virtual QList<CppQuickFixOperation::Ptr> match( + const QSharedPointer<const Internal::CppQuickFixAssistInterface> &interface) = 0; protected: /*! |