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);
|
||||
void closeDocument(TextEditor::TextDocument *document,
|
||||
const std::optional<Utils::FilePath> &overwriteFilePath = {});
|
||||
void activateDocument(TextEditor::TextDocument *document);
|
||||
virtual void activateDocument(TextEditor::TextDocument *document);
|
||||
void activateEditor(Core::IEditor *editor);
|
||||
void deactivateDocument(TextEditor::TextDocument *document);
|
||||
virtual void deactivateDocument(TextEditor::TextDocument *document);
|
||||
bool documentOpen(const TextEditor::TextDocument *document) const;
|
||||
TextEditor::TextDocument *documentForFilePath(const Utils::FilePath &file) const;
|
||||
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
|
||||
|
@@ -5,8 +5,9 @@
|
||||
|
||||
#include "qmljseditor_global.h"
|
||||
|
||||
#include <qmljstools/qmljssemanticinfo.h>
|
||||
#include <languageserverprotocol/servercapabilities.h>
|
||||
#include <texteditor/textdocument.h>
|
||||
#include <qmljstools/qmljssemanticinfo.h>
|
||||
|
||||
#include <QTextLayout>
|
||||
|
||||
@@ -37,6 +38,8 @@ public:
|
||||
void setIsDesignModePreferred(bool value);
|
||||
bool isDesignModePreferred() const;
|
||||
|
||||
void setSourcesWithCapabilities(const LanguageServerProtocol::ServerCapabilities &cap);
|
||||
|
||||
signals:
|
||||
void updateCodeWarnings(QmlJS::Document::Ptr doc);
|
||||
void semanticInfoUpdated(const QmlJSTools::SemanticInfo &semanticInfo);
|
||||
|
@@ -5,7 +5,6 @@
|
||||
#include "qmljseditorconstants.h"
|
||||
#include "qmljseditortr.h"
|
||||
#include "qmllsclient.h"
|
||||
#include "qmllsclientsettings.h"
|
||||
|
||||
#include <coreplugin/coreconstants.h>
|
||||
#include <coreplugin/icore.h>
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "qmllsclient.h"
|
||||
|
||||
#include "qmljseditorconstants.h"
|
||||
#include "qmljseditordocument.h"
|
||||
#include "qmljsquickfix.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)
|
||||
: Client(interface)
|
||||
{
|
||||
|
@@ -10,6 +10,8 @@
|
||||
#include <languageclient/client.h>
|
||||
#include <languageclient/languageclientinterface.h>
|
||||
|
||||
#include "qmllsclientsettings.h"
|
||||
|
||||
namespace QmlJSEditor {
|
||||
|
||||
class QMLJSEDITOR_EXPORT QmllsClient : public LanguageClient::Client
|
||||
@@ -55,6 +57,9 @@ public:
|
||||
|
||||
void startImpl() override;
|
||||
void updateQmllsSemanticHighlightingCapability();
|
||||
|
||||
void activateDocument(TextEditor::TextDocument *document) override;
|
||||
void deactivateDocument(TextEditor::TextDocument *document) override;
|
||||
private:
|
||||
static QMap<QString, int> semanticTokenTypesMap();
|
||||
};
|
||||
|
Reference in New Issue
Block a user