forked from qt-creator/qt-creator
qmlls: enabled/disable embedded codemodel
Make the (de)activateDocument() method in Client virtual, and override it in QmllsClient to actually be able to enable or disable the embedded codemodel. Also add a setSourcesWithCapabilities method to QmlJSEditorDocument that calls the same-named method in QmlJSEditorDocumentPrivate. Fixes: QTCREATORBUG-32025 Task-number: QTCREATORBUG-31897 Change-Id: I5802c1c3f2f983236182bbefa58ff425692b2532 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -114,9 +114,9 @@ public:
|
|||||||
virtual void openDocument(TextEditor::TextDocument *document);
|
virtual void openDocument(TextEditor::TextDocument *document);
|
||||||
void closeDocument(TextEditor::TextDocument *document,
|
void closeDocument(TextEditor::TextDocument *document,
|
||||||
const std::optional<Utils::FilePath> &overwriteFilePath = {});
|
const std::optional<Utils::FilePath> &overwriteFilePath = {});
|
||||||
void activateDocument(TextEditor::TextDocument *document);
|
virtual void activateDocument(TextEditor::TextDocument *document);
|
||||||
void activateEditor(Core::IEditor *editor);
|
void activateEditor(Core::IEditor *editor);
|
||||||
void deactivateDocument(TextEditor::TextDocument *document);
|
virtual void deactivateDocument(TextEditor::TextDocument *document);
|
||||||
bool documentOpen(const TextEditor::TextDocument *document) const;
|
bool documentOpen(const TextEditor::TextDocument *document) const;
|
||||||
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;
|
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;
|
||||||
void setShadowDocument(const Utils::FilePath &filePath, const QString &contents);
|
void setShadowDocument(const Utils::FilePath &filePath, const QString &contents);
|
||||||
|
@@ -831,4 +831,11 @@ void QmlJSEditorDocument::triggerPendingUpdates()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QmlJSEditorDocument::setSourcesWithCapabilities(
|
||||||
|
const LanguageServerProtocol::ServerCapabilities &cap)
|
||||||
|
{
|
||||||
|
d->setSourcesWithCapabilities(cap);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
} // QmlJSEditor
|
} // QmlJSEditor
|
||||||
|
@@ -5,8 +5,9 @@
|
|||||||
|
|
||||||
#include "qmljseditor_global.h"
|
#include "qmljseditor_global.h"
|
||||||
|
|
||||||
#include <qmljstools/qmljssemanticinfo.h>
|
#include <languageserverprotocol/servercapabilities.h>
|
||||||
#include <texteditor/textdocument.h>
|
#include <texteditor/textdocument.h>
|
||||||
|
#include <qmljstools/qmljssemanticinfo.h>
|
||||||
|
|
||||||
#include <QTextLayout>
|
#include <QTextLayout>
|
||||||
|
|
||||||
@@ -37,6 +38,8 @@ public:
|
|||||||
void setIsDesignModePreferred(bool value);
|
void setIsDesignModePreferred(bool value);
|
||||||
bool isDesignModePreferred() const;
|
bool isDesignModePreferred() const;
|
||||||
|
|
||||||
|
void setSourcesWithCapabilities(const LanguageServerProtocol::ServerCapabilities &cap);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void updateCodeWarnings(QmlJS::Document::Ptr doc);
|
void updateCodeWarnings(QmlJS::Document::Ptr doc);
|
||||||
void semanticInfoUpdated(const QmlJSTools::SemanticInfo &semanticInfo);
|
void semanticInfoUpdated(const QmlJSTools::SemanticInfo &semanticInfo);
|
||||||
|
@@ -5,7 +5,6 @@
|
|||||||
#include "qmljseditorconstants.h"
|
#include "qmljseditorconstants.h"
|
||||||
#include "qmljseditortr.h"
|
#include "qmljseditortr.h"
|
||||||
#include "qmllsclient.h"
|
#include "qmllsclient.h"
|
||||||
#include "qmllsclientsettings.h"
|
|
||||||
|
|
||||||
#include <coreplugin/coreconstants.h>
|
#include <coreplugin/coreconstants.h>
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
#include "qmllsclient.h"
|
#include "qmllsclient.h"
|
||||||
|
|
||||||
#include "qmljseditorconstants.h"
|
#include "qmljseditorconstants.h"
|
||||||
|
#include "qmljseditordocument.h"
|
||||||
#include "qmljsquickfix.h"
|
#include "qmljsquickfix.h"
|
||||||
#include "qmllsclientsettings.h"
|
#include "qmllsclientsettings.h"
|
||||||
|
|
||||||
@@ -114,6 +115,22 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void QmllsClient::activateDocument(TextEditor::TextDocument *document)
|
||||||
|
{
|
||||||
|
Client::activateDocument(document);
|
||||||
|
|
||||||
|
if (auto qmljseditor = qobject_cast<QmlJSEditorDocument *>(document))
|
||||||
|
qmljseditor->setSourcesWithCapabilities(capabilities());
|
||||||
|
}
|
||||||
|
|
||||||
|
void QmllsClient::deactivateDocument(TextEditor::TextDocument *document)
|
||||||
|
{
|
||||||
|
Client::deactivateDocument(document);
|
||||||
|
|
||||||
|
if (auto qmljseditor = qobject_cast<QmlJSEditorDocument *>(document))
|
||||||
|
qmljseditor->setSourcesWithCapabilities(LanguageServerProtocol::ServerCapabilities{});
|
||||||
|
}
|
||||||
|
|
||||||
QmllsClient::QmllsClient(StdIOClientInterface *interface)
|
QmllsClient::QmllsClient(StdIOClientInterface *interface)
|
||||||
: Client(interface)
|
: Client(interface)
|
||||||
{
|
{
|
||||||
|
@@ -10,6 +10,8 @@
|
|||||||
#include <languageclient/client.h>
|
#include <languageclient/client.h>
|
||||||
#include <languageclient/languageclientinterface.h>
|
#include <languageclient/languageclientinterface.h>
|
||||||
|
|
||||||
|
#include "qmllsclientsettings.h"
|
||||||
|
|
||||||
namespace QmlJSEditor {
|
namespace QmlJSEditor {
|
||||||
|
|
||||||
class QMLJSEDITOR_EXPORT QmllsClient : public LanguageClient::Client
|
class QMLJSEDITOR_EXPORT QmllsClient : public LanguageClient::Client
|
||||||
@@ -55,6 +57,9 @@ public:
|
|||||||
|
|
||||||
void startImpl() override;
|
void startImpl() override;
|
||||||
void updateQmllsSemanticHighlightingCapability();
|
void updateQmllsSemanticHighlightingCapability();
|
||||||
|
|
||||||
|
void activateDocument(TextEditor::TextDocument *document) override;
|
||||||
|
void deactivateDocument(TextEditor::TextDocument *document) override;
|
||||||
private:
|
private:
|
||||||
static QMap<QString, int> semanticTokenTypesMap();
|
static QMap<QString, int> semanticTokenTypesMap();
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user