aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cppeditor/cppquickfix.h
diff options
context:
space:
mode:
authorLeandro Melo <leandro.melo@nokia.com>2011-04-15 16:19:23 +0200
committerLeandro Melo <leandro.melo@nokia.com>2011-05-18 10:46:20 +0200
commitbec4f02495b97b17e0b0f8cb67d0909634c16228 (patch)
tree21759e0b9ebc6b0dca84f01875223020665d7843 /src/plugins/cppeditor/cppquickfix.h
parentd835b769c7d6b37e59a8a74a0d68260d34e7a7f9 (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.h44
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:
/*!