forked from qt-creator/qt-creator
		
	TextEditor: get CompletionAssistProvider from editor.
And not from the global object pool. This way, the editors that have different highlighters for various language dialects, or editors that support multiple languages in a single editor, can decide themselves on what CompletionAssistProvider to provide. Change-Id: Ieebc4a8e7b3de6470fdb8103035aa3b8b2ba6598 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
		@@ -907,6 +907,13 @@ CppCompletionSupport *CppModelManager::completionSupport(Core::IEditor *editor)
 | 
			
		||||
        return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CppCompletionAssistProvider *CppModelManager::completionAssistProvider(Core::IEditor *editor) const
 | 
			
		||||
{
 | 
			
		||||
    Q_UNUSED(editor);
 | 
			
		||||
 | 
			
		||||
    return m_completionAssistProvider;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CppModelManager::setCppCompletionAssistProvider(CppCompletionAssistProvider *completionAssistProvider)
 | 
			
		||||
{
 | 
			
		||||
    ExtensionSystem::PluginManager::removeObject(m_completionAssistProvider);
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,7 @@ public:
 | 
			
		||||
    void finishedRefreshingSourceFiles(const QStringList &files);
 | 
			
		||||
 | 
			
		||||
    virtual CppCompletionSupport *completionSupport(Core::IEditor *editor) const;
 | 
			
		||||
    virtual CppCompletionAssistProvider *completionAssistProvider(Core::IEditor *editor) const;
 | 
			
		||||
    virtual void setCppCompletionAssistProvider(CppCompletionAssistProvider *completionAssistProvider);
 | 
			
		||||
 | 
			
		||||
    virtual CppHighlightingSupport *highlightingSupport(Core::IEditor *editor) const;
 | 
			
		||||
 
 | 
			
		||||
@@ -242,6 +242,7 @@ public:
 | 
			
		||||
                                     const QList<TextEditor::BlockRange> &ifdeffedOutBlocks) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual CppTools::CppCompletionSupport *completionSupport(Core::IEditor *editor) const = 0;
 | 
			
		||||
    virtual CppCompletionAssistProvider *completionAssistProvider(Core::IEditor *editor) const = 0;
 | 
			
		||||
    virtual void setCppCompletionAssistProvider(CppTools::CppCompletionAssistProvider *completionAssistProvider) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual CppTools::CppHighlightingSupport *highlightingSupport(Core::IEditor *editor) const = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@
 | 
			
		||||
**
 | 
			
		||||
****************************************************************************/
 | 
			
		||||
 | 
			
		||||
#include "cppcompletionassistprovider.h"
 | 
			
		||||
#include "cpptoolseditorsupport.h"
 | 
			
		||||
#include "cppmodelmanager.h"
 | 
			
		||||
#include "cpplocalsymbols.h"
 | 
			
		||||
@@ -229,6 +230,11 @@ void CppEditorSupport::recalculateSemanticInfoDetached(bool force)
 | 
			
		||||
        startHighlighting();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
CppCompletionAssistProvider *CppEditorSupport::completionAssistProvider() const
 | 
			
		||||
{
 | 
			
		||||
    return m_completionAssistProvider.data();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void CppEditorSupport::updateDocument()
 | 
			
		||||
{
 | 
			
		||||
    m_revision = editorRevision();
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,8 @@ class ITextMark;
 | 
			
		||||
 | 
			
		||||
namespace CppTools {
 | 
			
		||||
 | 
			
		||||
class CppCompletionAssistProvider;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * \brief The CppEditorSupport class oversees the actions that happen when a C++ text editor updates
 | 
			
		||||
 *        its document.
 | 
			
		||||
@@ -115,6 +117,8 @@ public:
 | 
			
		||||
    /// \param force do not check if the old semantic info is still valid
 | 
			
		||||
    void recalculateSemanticInfoDetached(bool force = false);
 | 
			
		||||
 | 
			
		||||
    CppCompletionAssistProvider *completionAssistProvider() const;
 | 
			
		||||
 | 
			
		||||
signals:
 | 
			
		||||
    void documentUpdated();
 | 
			
		||||
    void diagnosticsChanged();
 | 
			
		||||
@@ -189,6 +193,9 @@ private:
 | 
			
		||||
    unsigned m_lastHighlightRevision;
 | 
			
		||||
    QFuture<TextEditor::HighlightingResult> m_highlighter;
 | 
			
		||||
    QScopedPointer<CppTools::CppHighlightingSupport> m_highlightingSupport;
 | 
			
		||||
 | 
			
		||||
    // Completion:
 | 
			
		||||
    QScopedPointer<CppCompletionAssistProvider> m_completionAssistProvider;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace CppTools
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user