forked from qt-creator/qt-creator
LSP: rename BaseClient -> Client
Since BaseClient isn't part of an inheritance hirarchie any more the Base doesn't make sense now. Change-Id: I69200b19a22e5a04079e5289a02234af4f56a1bd Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
|
||||
#include "languageclientinterface.h"
|
||||
#include "languageclientmanager.h"
|
||||
@@ -62,7 +62,7 @@ namespace LanguageClient {
|
||||
|
||||
static Q_LOGGING_CATEGORY(LOGLSPCLIENT, "qtc.languageclient.client", QtWarningMsg);
|
||||
|
||||
BaseClient::BaseClient(BaseClientInterface *clientInterface)
|
||||
Client::Client(BaseClientInterface *clientInterface)
|
||||
: m_id(Core::Id::fromString(QUuid::createUuid().toString()))
|
||||
, m_completionProvider(this)
|
||||
, m_clientInterface(clientInterface)
|
||||
@@ -70,12 +70,12 @@ BaseClient::BaseClient(BaseClientInterface *clientInterface)
|
||||
m_contentHandler.insert(JsonRpcMessageHandler::jsonRpcMimeType(),
|
||||
&JsonRpcMessageHandler::parseContent);
|
||||
QTC_ASSERT(clientInterface, return);
|
||||
connect(clientInterface, &BaseClientInterface::messageReceived, this, &BaseClient::handleMessage);
|
||||
connect(clientInterface, &BaseClientInterface::error, this, &BaseClient::setError);
|
||||
connect(clientInterface, &BaseClientInterface::finished, this, &BaseClient::finished);
|
||||
connect(clientInterface, &BaseClientInterface::messageReceived, this, &Client::handleMessage);
|
||||
connect(clientInterface, &BaseClientInterface::error, this, &Client::setError);
|
||||
connect(clientInterface, &BaseClientInterface::finished, this, &Client::finished);
|
||||
}
|
||||
|
||||
BaseClient::~BaseClient()
|
||||
Client::~Client()
|
||||
{
|
||||
using namespace TextEditor;
|
||||
// FIXME: instead of replacing the completion provider in the text document store the
|
||||
@@ -90,7 +90,7 @@ BaseClient::~BaseClient()
|
||||
}
|
||||
}
|
||||
|
||||
void BaseClient::initialize()
|
||||
void Client::initialize()
|
||||
{
|
||||
using namespace ProjectExplorer;
|
||||
QTC_ASSERT(m_clientInterface, return);
|
||||
@@ -115,7 +115,7 @@ void BaseClient::initialize()
|
||||
m_state = InitializeRequested;
|
||||
}
|
||||
|
||||
void BaseClient::shutdown()
|
||||
void Client::shutdown()
|
||||
{
|
||||
QTC_ASSERT(m_state == Initialized, emit finished(); return);
|
||||
qCDebug(LOGLSPCLIENT) << "shutdown language server " << m_displayName;
|
||||
@@ -127,12 +127,12 @@ void BaseClient::shutdown()
|
||||
m_state = ShutdownRequested;
|
||||
}
|
||||
|
||||
BaseClient::State BaseClient::state() const
|
||||
Client::State Client::state() const
|
||||
{
|
||||
return m_state;
|
||||
}
|
||||
|
||||
void BaseClient::openDocument(Core::IDocument *document)
|
||||
void Client::openDocument(Core::IDocument *document)
|
||||
{
|
||||
using namespace TextEditor;
|
||||
if (!isSupportedDocument(document))
|
||||
@@ -191,7 +191,7 @@ void BaseClient::openDocument(Core::IDocument *document)
|
||||
requestDocumentSymbols(textDocument);
|
||||
}
|
||||
|
||||
void BaseClient::sendContent(const IContent &content)
|
||||
void Client::sendContent(const IContent &content)
|
||||
{
|
||||
QTC_ASSERT(m_clientInterface, return);
|
||||
QTC_ASSERT(m_state == Initialized, return);
|
||||
@@ -202,25 +202,25 @@ void BaseClient::sendContent(const IContent &content)
|
||||
m_clientInterface->sendMessage(content.toBaseMessage());
|
||||
}
|
||||
|
||||
void BaseClient::sendContent(const DocumentUri &uri, const IContent &content)
|
||||
void Client::sendContent(const DocumentUri &uri, const IContent &content)
|
||||
{
|
||||
if (!m_openedDocument.contains(uri.toFileName()))
|
||||
return;
|
||||
sendContent(content);
|
||||
}
|
||||
|
||||
void BaseClient::cancelRequest(const MessageId &id)
|
||||
void Client::cancelRequest(const MessageId &id)
|
||||
{
|
||||
m_responseHandlers.remove(id);
|
||||
sendContent(CancelRequest(CancelParameter(id)));
|
||||
}
|
||||
|
||||
void BaseClient::closeDocument(const DidCloseTextDocumentParams ¶ms)
|
||||
void Client::closeDocument(const DidCloseTextDocumentParams ¶ms)
|
||||
{
|
||||
sendContent(params.textDocument().uri(), DidCloseTextDocumentNotification(params));
|
||||
}
|
||||
|
||||
void BaseClient::documentContentsSaved(Core::IDocument *document)
|
||||
void Client::documentContentsSaved(Core::IDocument *document)
|
||||
{
|
||||
if (!m_openedDocument.contains(document->filePath()))
|
||||
return;
|
||||
@@ -254,7 +254,7 @@ void BaseClient::documentContentsSaved(Core::IDocument *document)
|
||||
sendContent(DidSaveTextDocumentNotification(params));
|
||||
}
|
||||
|
||||
void BaseClient::documentWillSave(Core::IDocument *document)
|
||||
void Client::documentWillSave(Core::IDocument *document)
|
||||
{
|
||||
const FileName &filePath = document->filePath();
|
||||
if (!m_openedDocument.contains(filePath))
|
||||
@@ -282,7 +282,7 @@ void BaseClient::documentWillSave(Core::IDocument *document)
|
||||
sendContent(WillSaveTextDocumentNotification(params));
|
||||
}
|
||||
|
||||
void BaseClient::documentContentsChanged(Core::IDocument *document)
|
||||
void Client::documentContentsChanged(Core::IDocument *document)
|
||||
{
|
||||
if (!m_openedDocument.contains(document->filePath()))
|
||||
return;
|
||||
@@ -315,18 +315,18 @@ void BaseClient::documentContentsChanged(Core::IDocument *document)
|
||||
}
|
||||
}
|
||||
|
||||
void BaseClient::registerCapabilities(const QList<Registration> ®istrations)
|
||||
void Client::registerCapabilities(const QList<Registration> ®istrations)
|
||||
{
|
||||
m_dynamicCapabilities.registerCapability(registrations);
|
||||
}
|
||||
|
||||
void BaseClient::unregisterCapabilities(const QList<Unregistration> &unregistrations)
|
||||
void Client::unregisterCapabilities(const QList<Unregistration> &unregistrations)
|
||||
{
|
||||
m_dynamicCapabilities.unregisterCapability(unregistrations);
|
||||
}
|
||||
|
||||
template <typename Request>
|
||||
static bool sendTextDocumentPositionParamsRequest(BaseClient *client,
|
||||
static bool sendTextDocumentPositionParamsRequest(Client *client,
|
||||
const Request &request,
|
||||
const DynamicCapabilities &dynamicCapabilities,
|
||||
const optional<bool> &serverCapability)
|
||||
@@ -350,13 +350,13 @@ static bool sendTextDocumentPositionParamsRequest(BaseClient *client,
|
||||
return sendMessage;
|
||||
}
|
||||
|
||||
bool BaseClient::findLinkAt(GotoDefinitionRequest &request)
|
||||
bool Client::findLinkAt(GotoDefinitionRequest &request)
|
||||
{
|
||||
return LanguageClient::sendTextDocumentPositionParamsRequest(
|
||||
this, request, m_dynamicCapabilities, m_serverCapabilities.definitionProvider());
|
||||
}
|
||||
|
||||
bool BaseClient::findUsages(FindReferencesRequest &request)
|
||||
bool Client::findUsages(FindReferencesRequest &request)
|
||||
{
|
||||
return LanguageClient::sendTextDocumentPositionParamsRequest(
|
||||
this, request, m_dynamicCapabilities, m_serverCapabilities.referencesProvider());
|
||||
@@ -371,7 +371,7 @@ TextEditor::HighlightingResult createHighlightingResult(const SymbolInformation
|
||||
info.name().length(), info.kind());
|
||||
}
|
||||
|
||||
void BaseClient::requestDocumentSymbols(TextEditor::TextDocument *document)
|
||||
void Client::requestDocumentSymbols(TextEditor::TextDocument *document)
|
||||
{
|
||||
// TODO: Do not use this information for highlighting but the overview model
|
||||
return;
|
||||
@@ -464,7 +464,7 @@ void BaseClient::requestDocumentSymbols(TextEditor::TextDocument *document)
|
||||
sendContent(request);
|
||||
}
|
||||
|
||||
void BaseClient::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
|
||||
void Client::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
|
||||
{
|
||||
const auto uri = DocumentUri::fromFileName(widget->textDocument()->filePath());
|
||||
if (m_dynamicCapabilities.isRegistered(DocumentHighlightsRequest::methodName).value_or(false)) {
|
||||
@@ -515,7 +515,7 @@ void BaseClient::cursorPositionChanged(TextEditor::TextEditorWidget *widget)
|
||||
sendContent(request);
|
||||
}
|
||||
|
||||
void BaseClient::requestCodeActions(const DocumentUri &uri, const QList<Diagnostic> &diagnostics)
|
||||
void Client::requestCodeActions(const DocumentUri &uri, const QList<Diagnostic> &diagnostics)
|
||||
{
|
||||
const Utils::FileName fileName = uri.toFileName();
|
||||
TextEditor::TextDocument *doc = textDocumentForFileName(fileName);
|
||||
@@ -548,14 +548,14 @@ void BaseClient::requestCodeActions(const DocumentUri &uri, const QList<Diagnost
|
||||
codeActionParams.setRange(Range(start, end));
|
||||
CodeActionRequest request(codeActionParams);
|
||||
request.setResponseCallback(
|
||||
[uri, self = QPointer<BaseClient>(this)](const CodeActionRequest::Response &response) {
|
||||
[uri, self = QPointer<Client>(this)](const CodeActionRequest::Response &response) {
|
||||
if (self)
|
||||
self->handleCodeActionResponse(response, uri);
|
||||
});
|
||||
sendContent(request);
|
||||
}
|
||||
|
||||
void BaseClient::handleCodeActionResponse(const CodeActionRequest::Response &response,
|
||||
void Client::handleCodeActionResponse(const CodeActionRequest::Response &response,
|
||||
const DocumentUri &uri)
|
||||
{
|
||||
if (const Utils::optional<CodeActionRequest::Response::Error> &error = response.error())
|
||||
@@ -573,7 +573,7 @@ void BaseClient::handleCodeActionResponse(const CodeActionRequest::Response &res
|
||||
}
|
||||
}
|
||||
|
||||
void BaseClient::executeCommand(const Command &command)
|
||||
void Client::executeCommand(const Command &command)
|
||||
{
|
||||
using CommandOptions = LanguageServerProtocol::ServerCapabilities::ExecuteCommandOptions;
|
||||
const QString method(ExecuteCommandRequest::methodName);
|
||||
@@ -594,7 +594,7 @@ void BaseClient::executeCommand(const Command &command)
|
||||
sendContent(request);
|
||||
}
|
||||
|
||||
void BaseClient::projectOpened(ProjectExplorer::Project *project)
|
||||
void Client::projectOpened(ProjectExplorer::Project *project)
|
||||
{
|
||||
if (!sendWorkspceFolderChanges())
|
||||
return;
|
||||
@@ -606,7 +606,7 @@ void BaseClient::projectOpened(ProjectExplorer::Project *project)
|
||||
sendContent(change);
|
||||
}
|
||||
|
||||
void BaseClient::projectClosed(ProjectExplorer::Project *project)
|
||||
void Client::projectClosed(ProjectExplorer::Project *project)
|
||||
{
|
||||
if (!sendWorkspceFolderChanges())
|
||||
return;
|
||||
@@ -618,18 +618,18 @@ void BaseClient::projectClosed(ProjectExplorer::Project *project)
|
||||
sendContent(change);
|
||||
}
|
||||
|
||||
void BaseClient::setSupportedLanguage(const LanguageFilter &filter)
|
||||
void Client::setSupportedLanguage(const LanguageFilter &filter)
|
||||
{
|
||||
m_languagFilter = filter;
|
||||
}
|
||||
|
||||
bool BaseClient::isSupportedDocument(const Core::IDocument *document) const
|
||||
bool Client::isSupportedDocument(const Core::IDocument *document) const
|
||||
{
|
||||
QTC_ASSERT(document, return false);
|
||||
return isSupportedFile(document->filePath(), document->mimeType());
|
||||
}
|
||||
|
||||
bool BaseClient::isSupportedFile(const Utils::FileName &filePath, const QString &mimeType) const
|
||||
bool Client::isSupportedFile(const Utils::FileName &filePath, const QString &mimeType) const
|
||||
{
|
||||
if (m_languagFilter.mimeTypes.isEmpty() && m_languagFilter.filePattern.isEmpty())
|
||||
return true;
|
||||
@@ -643,25 +643,25 @@ bool BaseClient::isSupportedFile(const Utils::FileName &filePath, const QString
|
||||
});
|
||||
}
|
||||
|
||||
bool BaseClient::isSupportedUri(const DocumentUri &uri) const
|
||||
bool Client::isSupportedUri(const DocumentUri &uri) const
|
||||
{
|
||||
return isSupportedFile(uri.toFileName(),
|
||||
Utils::mimeTypeForFile(uri.toFileName().fileName()).name());
|
||||
}
|
||||
|
||||
bool BaseClient::needsRestart(const BaseSettings *settings) const
|
||||
bool Client::needsRestart(const BaseSettings *settings) const
|
||||
{
|
||||
QTC_ASSERT(settings, return false);
|
||||
return m_languagFilter.mimeTypes != settings->m_languageFilter.mimeTypes
|
||||
|| m_languagFilter.filePattern != settings->m_languageFilter.filePattern;
|
||||
}
|
||||
|
||||
bool BaseClient::start()
|
||||
bool Client::start()
|
||||
{
|
||||
return m_clientInterface->start();
|
||||
}
|
||||
|
||||
bool BaseClient::reset()
|
||||
bool Client::reset()
|
||||
{
|
||||
if (!m_restartsLeft)
|
||||
return false;
|
||||
@@ -675,13 +675,13 @@ bool BaseClient::reset()
|
||||
return true;
|
||||
}
|
||||
|
||||
void BaseClient::setError(const QString &message)
|
||||
void Client::setError(const QString &message)
|
||||
{
|
||||
log(message);
|
||||
m_state = Error;
|
||||
}
|
||||
|
||||
void BaseClient::handleMessage(const BaseMessage &message)
|
||||
void Client::handleMessage(const BaseMessage &message)
|
||||
{
|
||||
if (auto handler = m_contentHandler[message.mimeType]) {
|
||||
QString parseError;
|
||||
@@ -699,28 +699,28 @@ void BaseClient::handleMessage(const BaseMessage &message)
|
||||
}
|
||||
}
|
||||
|
||||
void BaseClient::log(const QString &message, Core::MessageManager::PrintToOutputPaneFlag flag)
|
||||
void Client::log(const QString &message, Core::MessageManager::PrintToOutputPaneFlag flag)
|
||||
{
|
||||
Core::MessageManager::write(QString("LanguageClient %1: %2").arg(name(), message), flag);
|
||||
}
|
||||
|
||||
const ServerCapabilities &BaseClient::capabilities() const
|
||||
const ServerCapabilities &Client::capabilities() const
|
||||
{
|
||||
return m_serverCapabilities;
|
||||
}
|
||||
|
||||
const DynamicCapabilities &BaseClient::dynamicCapabilities() const
|
||||
const DynamicCapabilities &Client::dynamicCapabilities() const
|
||||
{
|
||||
return m_dynamicCapabilities;
|
||||
}
|
||||
|
||||
void BaseClient::log(const ShowMessageParams &message,
|
||||
void Client::log(const ShowMessageParams &message,
|
||||
Core::MessageManager::PrintToOutputPaneFlag flag)
|
||||
{
|
||||
log(message.toString(), flag);
|
||||
}
|
||||
|
||||
void BaseClient::showMessageBox(const ShowMessageRequestParams &message, const MessageId &id)
|
||||
void Client::showMessageBox(const ShowMessageRequestParams &message, const MessageId &id)
|
||||
{
|
||||
auto box = new QMessageBox();
|
||||
box->setText(message.toString());
|
||||
@@ -748,13 +748,13 @@ void BaseClient::showMessageBox(const ShowMessageRequestParams &message, const M
|
||||
box->show();
|
||||
}
|
||||
|
||||
void BaseClient::handleResponse(const MessageId &id, const QByteArray &content, QTextCodec *codec)
|
||||
void Client::handleResponse(const MessageId &id, const QByteArray &content, QTextCodec *codec)
|
||||
{
|
||||
if (auto handler = m_responseHandlers[id])
|
||||
handler(content, codec);
|
||||
}
|
||||
|
||||
void BaseClient::handleMethod(const QString &method, MessageId id, const IContent *content)
|
||||
void Client::handleMethod(const QString &method, MessageId id, const IContent *content)
|
||||
{
|
||||
QStringList error;
|
||||
bool paramsValid = true;
|
||||
@@ -822,7 +822,7 @@ void BaseClient::handleMethod(const QString &method, MessageId id, const IConten
|
||||
delete content;
|
||||
}
|
||||
|
||||
void BaseClient::intializeCallback(const InitializeRequest::Response &initResponse)
|
||||
void Client::intializeCallback(const InitializeRequest::Response &initResponse)
|
||||
{
|
||||
QTC_ASSERT(m_state == InitializeRequested, return);
|
||||
if (optional<ResponseError<InitializeError>> error = initResponse.error()) {
|
||||
@@ -863,7 +863,7 @@ void BaseClient::intializeCallback(const InitializeRequest::Response &initRespon
|
||||
openDocument(openedDocument);
|
||||
}
|
||||
|
||||
void BaseClient::shutDownCallback(const ShutdownRequest::Response &shutdownResponse)
|
||||
void Client::shutDownCallback(const ShutdownRequest::Response &shutdownResponse)
|
||||
{
|
||||
QTC_ASSERT(m_state == ShutdownRequested, return);
|
||||
QTC_ASSERT(m_clientInterface, return);
|
||||
@@ -879,7 +879,7 @@ void BaseClient::shutDownCallback(const ShutdownRequest::Response &shutdownRespo
|
||||
m_state = Shutdown;
|
||||
}
|
||||
|
||||
bool BaseClient::sendWorkspceFolderChanges() const
|
||||
bool Client::sendWorkspceFolderChanges() const
|
||||
{
|
||||
if (m_dynamicCapabilities.isRegistered(
|
||||
DidChangeWorkspaceFoldersNotification::methodName).value_or(false)) {
|
@@ -58,18 +58,18 @@ namespace LanguageClient {
|
||||
|
||||
class BaseClientInterface;
|
||||
|
||||
class BaseClient : public QObject
|
||||
class Client : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BaseClient(BaseClientInterface *clientInterface); // takes ownership
|
||||
~BaseClient() override;
|
||||
explicit Client(BaseClientInterface *clientInterface); // takes ownership
|
||||
~Client() override;
|
||||
|
||||
BaseClient(const BaseClient &) = delete;
|
||||
BaseClient(BaseClient &&) = delete;
|
||||
BaseClient &operator=(const BaseClient &) = delete;
|
||||
BaseClient &operator=(BaseClient &&) = delete;
|
||||
Client(const Client &) = delete;
|
||||
Client(Client &&) = delete;
|
||||
Client &operator=(const Client &) = delete;
|
||||
Client &operator=(Client &&) = delete;
|
||||
|
||||
enum State {
|
||||
Uninitialized,
|
@@ -3,7 +3,7 @@ include(../../qtcreatorplugin.pri)
|
||||
DEFINES += LANGUAGECLIENT_LIBRARY
|
||||
|
||||
HEADERS += \
|
||||
baseclient.h \
|
||||
client.h \
|
||||
dynamiccapabilities.h \
|
||||
languageclient_global.h \
|
||||
languageclientcodeassist.h \
|
||||
@@ -16,7 +16,7 @@ HEADERS += \
|
||||
|
||||
|
||||
SOURCES += \
|
||||
baseclient.cpp \
|
||||
client.cpp \
|
||||
dynamiccapabilities.cpp \
|
||||
languageclientcodeassist.cpp \
|
||||
languageclientinterface.cpp \
|
||||
|
@@ -14,8 +14,8 @@ QtcPlugin {
|
||||
Depends { name: "TextEditor" }
|
||||
|
||||
files: [
|
||||
"baseclient.cpp",
|
||||
"baseclient.h",
|
||||
"client.cpp",
|
||||
"client.h",
|
||||
"dynamiccapabilities.cpp",
|
||||
"dynamiccapabilities.h",
|
||||
"languageclient.qrc",
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "languageclientcodeassist.h"
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
#include "languageclientutils.h"
|
||||
|
||||
#include <languageserverprotocol/completion.h>
|
||||
@@ -258,7 +258,7 @@ public:
|
||||
class LanguageClientCompletionAssistProcessor : public IAssistProcessor
|
||||
{
|
||||
public:
|
||||
LanguageClientCompletionAssistProcessor(BaseClient *client);
|
||||
LanguageClientCompletionAssistProcessor(Client *client);
|
||||
IAssistProposal *perform(const AssistInterface *interface) override;
|
||||
bool running() override;
|
||||
bool needsRestart() const override { return true; }
|
||||
@@ -267,12 +267,12 @@ private:
|
||||
void handleCompletionResponse(const CompletionRequest::Response &response);
|
||||
|
||||
QPointer<QTextDocument> m_document;
|
||||
QPointer<BaseClient> m_client;
|
||||
QPointer<Client> m_client;
|
||||
bool m_running = false;
|
||||
int m_pos = -1;
|
||||
};
|
||||
|
||||
LanguageClientCompletionAssistProcessor::LanguageClientCompletionAssistProcessor(BaseClient *client)
|
||||
LanguageClientCompletionAssistProcessor::LanguageClientCompletionAssistProcessor(Client *client)
|
||||
: m_client(client)
|
||||
{ }
|
||||
|
||||
@@ -367,7 +367,7 @@ void LanguageClientCompletionAssistProcessor::handleCompletionResponse(
|
||||
<< items.count() << " completions handled";
|
||||
}
|
||||
|
||||
LanguageClientCompletionAssistProvider::LanguageClientCompletionAssistProvider(BaseClient *client)
|
||||
LanguageClientCompletionAssistProvider::LanguageClientCompletionAssistProvider(Client *client)
|
||||
: m_client(client)
|
||||
{ }
|
||||
|
||||
|
@@ -29,12 +29,12 @@
|
||||
|
||||
namespace LanguageClient {
|
||||
|
||||
class BaseClient;
|
||||
class Client;
|
||||
|
||||
class LanguageClientCompletionAssistProvider : public TextEditor::CompletionAssistProvider
|
||||
{
|
||||
public:
|
||||
LanguageClientCompletionAssistProvider(BaseClient *client);
|
||||
LanguageClientCompletionAssistProvider(Client *client);
|
||||
|
||||
TextEditor::IAssistProcessor *createProcessor() const override;
|
||||
RunType runType() const override;
|
||||
@@ -48,7 +48,7 @@ public:
|
||||
private:
|
||||
QList<QString> m_triggerChars;
|
||||
int m_activationCharSequenceLength = 0;
|
||||
BaseClient *m_client;
|
||||
Client *m_client;
|
||||
};
|
||||
|
||||
} // namespace LanguageClient
|
||||
|
@@ -109,7 +109,7 @@ void LanguageClientManager::init()
|
||||
|
||||
void LanguageClientManager::publishDiagnostics(const Core::Id &id,
|
||||
const PublishDiagnosticsParams ¶ms,
|
||||
BaseClient *publishingClient)
|
||||
Client *publishingClient)
|
||||
{
|
||||
const Utils::FileName fileName = params.uri().toFileName();
|
||||
TextEditor::TextDocument *doc = textDocumentForFileName(fileName);
|
||||
@@ -169,7 +169,7 @@ void LanguageClientManager::removeMarks(const Core::Id &id)
|
||||
removeMarks(fileName, id);
|
||||
}
|
||||
|
||||
void LanguageClientManager::startClient(BaseClient *client)
|
||||
void LanguageClientManager::startClient(Client *client)
|
||||
{
|
||||
QTC_ASSERT(client, return);
|
||||
if (managerInstance->m_shuttingDown) {
|
||||
@@ -178,7 +178,7 @@ void LanguageClientManager::startClient(BaseClient *client)
|
||||
}
|
||||
if (!managerInstance->m_clients.contains(client))
|
||||
managerInstance->m_clients.append(client);
|
||||
connect(client, &BaseClient::finished, managerInstance, [client](){
|
||||
connect(client, &Client::finished, managerInstance, [client](){
|
||||
managerInstance->clientFinished(client);
|
||||
});
|
||||
if (client->start())
|
||||
@@ -187,26 +187,26 @@ void LanguageClientManager::startClient(BaseClient *client)
|
||||
managerInstance->clientFinished(client);
|
||||
}
|
||||
|
||||
QVector<BaseClient *> LanguageClientManager::clients()
|
||||
QVector<Client *> LanguageClientManager::clients()
|
||||
{
|
||||
return managerInstance->m_clients;
|
||||
}
|
||||
|
||||
void LanguageClientManager::addExclusiveRequest(const MessageId &id, BaseClient *client)
|
||||
void LanguageClientManager::addExclusiveRequest(const MessageId &id, Client *client)
|
||||
{
|
||||
managerInstance->m_exclusiveRequests[id] << client;
|
||||
}
|
||||
|
||||
void LanguageClientManager::reportFinished(const MessageId &id, BaseClient *byClient)
|
||||
void LanguageClientManager::reportFinished(const MessageId &id, Client *byClient)
|
||||
{
|
||||
for (BaseClient *client : managerInstance->m_exclusiveRequests[id]) {
|
||||
for (Client *client : managerInstance->m_exclusiveRequests[id]) {
|
||||
if (client != byClient)
|
||||
client->cancelRequest(id);
|
||||
}
|
||||
managerInstance->m_exclusiveRequests.remove(id);
|
||||
}
|
||||
|
||||
void LanguageClientManager::deleteClient(BaseClient *client)
|
||||
void LanguageClientManager::deleteClient(Client *client)
|
||||
{
|
||||
QTC_ASSERT(client, return);
|
||||
client->disconnect();
|
||||
@@ -238,23 +238,23 @@ LanguageClientManager *LanguageClientManager::instance()
|
||||
return managerInstance;
|
||||
}
|
||||
|
||||
QList<BaseClient *> LanguageClientManager::clientsSupportingDocument(
|
||||
QList<Client *> LanguageClientManager::clientsSupportingDocument(
|
||||
const TextEditor::TextDocument *doc)
|
||||
{
|
||||
QTC_ASSERT(doc, return {};);
|
||||
return Utils::filtered(managerInstance->reachableClients(), [doc](BaseClient *client) {
|
||||
return Utils::filtered(managerInstance->reachableClients(), [doc](Client *client) {
|
||||
return client->isSupportedDocument(doc);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
QVector<BaseClient *> LanguageClientManager::reachableClients()
|
||||
QVector<Client *> LanguageClientManager::reachableClients()
|
||||
{
|
||||
return Utils::filtered(m_clients, &BaseClient::reachable);
|
||||
return Utils::filtered(m_clients, &Client::reachable);
|
||||
}
|
||||
|
||||
static void sendToInterfaces(const IContent &content, const QVector<BaseClient *> &interfaces)
|
||||
static void sendToInterfaces(const IContent &content, const QVector<Client *> &interfaces)
|
||||
{
|
||||
for (BaseClient *interface : interfaces)
|
||||
for (Client *interface : interfaces)
|
||||
interface->sendContent(content);
|
||||
}
|
||||
|
||||
@@ -263,11 +263,11 @@ void LanguageClientManager::sendToAllReachableServers(const IContent &content)
|
||||
sendToInterfaces(content, reachableClients());
|
||||
}
|
||||
|
||||
void LanguageClientManager::clientFinished(BaseClient *client)
|
||||
void LanguageClientManager::clientFinished(Client *client)
|
||||
{
|
||||
constexpr int restartTimeoutS = 5;
|
||||
const bool unexpectedFinish = client->state() != BaseClient::Shutdown
|
||||
&& client->state() != BaseClient::ShutdownRequested;
|
||||
const bool unexpectedFinish = client->state() != Client::Shutdown
|
||||
&& client->state() != Client::ShutdownRequested;
|
||||
if (unexpectedFinish && !m_shuttingDown && client->reset()) {
|
||||
removeMarks(client->id());
|
||||
client->disconnect(this);
|
||||
@@ -287,7 +287,7 @@ void LanguageClientManager::editorOpened(Core::IEditor *iEditor)
|
||||
{
|
||||
using namespace TextEditor;
|
||||
Core::IDocument *document = iEditor->document();
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->openDocument(document);
|
||||
|
||||
if (auto textDocument = qobject_cast<TextDocument *>(document)) {
|
||||
@@ -315,7 +315,7 @@ void LanguageClientManager::editorsClosed(const QList<Core::IEditor *> &editors)
|
||||
removeMarks(editor->document()->filePath());
|
||||
const DidCloseTextDocumentParams params(TextDocumentIdentifier(
|
||||
DocumentUri::fromFileName(editor->document()->filePath())));
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->closeDocument(params);
|
||||
}
|
||||
}
|
||||
@@ -323,13 +323,13 @@ void LanguageClientManager::editorsClosed(const QList<Core::IEditor *> &editors)
|
||||
|
||||
void LanguageClientManager::documentContentsSaved(Core::IDocument *document)
|
||||
{
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->documentContentsSaved(document);
|
||||
}
|
||||
|
||||
void LanguageClientManager::documentWillSave(Core::IDocument *document)
|
||||
{
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->documentContentsSaved(document);
|
||||
}
|
||||
|
||||
@@ -355,7 +355,7 @@ void LanguageClientManager::findLinkAt(const Utils::FileName &filePath,
|
||||
}
|
||||
}
|
||||
});
|
||||
for (BaseClient *interface : reachableClients()) {
|
||||
for (Client *interface : reachableClients()) {
|
||||
if (interface->findLinkAt(request))
|
||||
m_exclusiveRequests[request.id()] << interface;
|
||||
}
|
||||
@@ -421,7 +421,7 @@ void LanguageClientManager::findUsages(const Utils::FileName &filePath, const QT
|
||||
search->popup();
|
||||
}
|
||||
};
|
||||
for (BaseClient *client : reachableClients()) {
|
||||
for (Client *client : reachableClients()) {
|
||||
request.setResponseCallback([callback, clientName = client->name()]
|
||||
(const FindReferencesRequest::Response &response){
|
||||
callback(clientName, response);
|
||||
@@ -433,13 +433,13 @@ void LanguageClientManager::findUsages(const Utils::FileName &filePath, const QT
|
||||
|
||||
void LanguageClientManager::projectAdded(ProjectExplorer::Project *project)
|
||||
{
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->projectOpened(project);
|
||||
}
|
||||
|
||||
void LanguageClientManager::projectRemoved(ProjectExplorer::Project *project)
|
||||
{
|
||||
for (BaseClient *interface : reachableClients())
|
||||
for (Client *interface : reachableClients())
|
||||
interface->projectClosed(project);
|
||||
}
|
||||
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
#include "languageclientsettings.h"
|
||||
|
||||
#include <coreplugin/id.h>
|
||||
@@ -56,26 +56,26 @@ public:
|
||||
static void init();
|
||||
|
||||
static void publishDiagnostics(const Core::Id &id,
|
||||
const LanguageServerProtocol::PublishDiagnosticsParams ¶ms, BaseClient *publishingClient);
|
||||
const LanguageServerProtocol::PublishDiagnosticsParams ¶ms, Client *publishingClient);
|
||||
|
||||
static void removeMark(LanguageClientMark *mark);
|
||||
static void removeMarks(const Utils::FileName &fileName);
|
||||
static void removeMarks(const Utils::FileName &fileName, const Core::Id &id);
|
||||
static void removeMarks(const Core::Id &id);
|
||||
|
||||
static void startClient(BaseClient *client);
|
||||
static QVector<BaseClient *> clients();
|
||||
static void startClient(Client *client);
|
||||
static QVector<Client *> clients();
|
||||
|
||||
static void addExclusiveRequest(const LanguageServerProtocol::MessageId &id, BaseClient *client);
|
||||
static void reportFinished(const LanguageServerProtocol::MessageId &id, BaseClient *byClient);
|
||||
static void addExclusiveRequest(const LanguageServerProtocol::MessageId &id, Client *client);
|
||||
static void reportFinished(const LanguageServerProtocol::MessageId &id, Client *byClient);
|
||||
|
||||
static void deleteClient(BaseClient *client);
|
||||
static void deleteClient(Client *client);
|
||||
|
||||
static void shutdown();
|
||||
|
||||
static LanguageClientManager *instance();
|
||||
|
||||
static QList<BaseClient *> clientsSupportingDocument(const TextEditor::TextDocument *doc);
|
||||
static QList<Client *> clientsSupportingDocument(const TextEditor::TextDocument *doc);
|
||||
|
||||
signals:
|
||||
void shutdownFinished();
|
||||
@@ -94,15 +94,15 @@ private:
|
||||
void projectAdded(ProjectExplorer::Project *project);
|
||||
void projectRemoved(ProjectExplorer::Project *project);
|
||||
|
||||
QVector<BaseClient *> reachableClients();
|
||||
QVector<Client *> reachableClients();
|
||||
void sendToAllReachableServers(const LanguageServerProtocol::IContent &content);
|
||||
|
||||
void clientFinished(BaseClient *client);
|
||||
void clientFinished(Client *client);
|
||||
|
||||
bool m_shuttingDown = false;
|
||||
QVector<BaseClient *> m_clients;
|
||||
QVector<Client *> m_clients;
|
||||
QHash<Utils::FileName, QHash<Core::Id, QVector<LanguageClientMark *>>> m_marks;
|
||||
QHash<LanguageServerProtocol::MessageId, QList<BaseClient *>> m_exclusiveRequests;
|
||||
QHash<LanguageServerProtocol::MessageId, QList<Client *>> m_exclusiveRequests;
|
||||
|
||||
friend class LanguageClientPlugin;
|
||||
};
|
||||
|
@@ -147,7 +147,7 @@ public:
|
||||
class LanguageClientOutlineWidget : public TextEditor::IOutlineWidget
|
||||
{
|
||||
public:
|
||||
LanguageClientOutlineWidget(BaseClient *client, TextEditor::BaseTextEditor *editor);
|
||||
LanguageClientOutlineWidget(Client *client, TextEditor::BaseTextEditor *editor);
|
||||
|
||||
// IOutlineWidget interface
|
||||
public:
|
||||
@@ -160,14 +160,14 @@ private:
|
||||
void updateSelectionInTree(const QTextCursor ¤tCursor);
|
||||
void onItemActivated(const QModelIndex &index);
|
||||
|
||||
QPointer<BaseClient> m_client;
|
||||
QPointer<Client> m_client;
|
||||
QPointer<TextEditor::BaseTextEditor> m_editor;
|
||||
LanguageClientOutlineModel m_model;
|
||||
Utils::TreeView m_view;
|
||||
bool m_sync = false;
|
||||
};
|
||||
|
||||
LanguageClientOutlineWidget::LanguageClientOutlineWidget(BaseClient *client,
|
||||
LanguageClientOutlineWidget::LanguageClientOutlineWidget(Client *client,
|
||||
TextEditor::BaseTextEditor *editor)
|
||||
: m_client(client)
|
||||
, m_editor(editor)
|
||||
@@ -256,7 +256,7 @@ void LanguageClientOutlineWidget::onItemActivated(const QModelIndex &index)
|
||||
m_editor->widget()->setFocus();
|
||||
}
|
||||
|
||||
static bool clientSupportsDocumentSymbols(const BaseClient *client, const TextEditor::TextDocument *doc)
|
||||
static bool clientSupportsDocumentSymbols(const Client *client, const TextEditor::TextDocument *doc)
|
||||
{
|
||||
DynamicCapabilities dc = client->dynamicCapabilities();
|
||||
if (dc.isRegistered(DocumentSymbolsRequest::methodName).value_or(false)) {
|
||||
@@ -273,7 +273,7 @@ bool LanguageClientOutlineWidgetFactory::supportsEditor(Core::IEditor *editor) c
|
||||
if (!doc)
|
||||
return false;
|
||||
auto clients = LanguageClientManager::clientsSupportingDocument(doc);
|
||||
return Utils::anyOf(clients, [doc](const BaseClient *client){
|
||||
return Utils::anyOf(clients, [doc](const Client *client){
|
||||
return clientSupportsDocumentSymbols(client, doc);
|
||||
});
|
||||
}
|
||||
@@ -282,9 +282,9 @@ TextEditor::IOutlineWidget *LanguageClientOutlineWidgetFactory::createWidget(Cor
|
||||
{
|
||||
auto textEditor = qobject_cast<TextEditor::BaseTextEditor *>(editor);
|
||||
QTC_ASSERT(textEditor, return nullptr);
|
||||
QList<BaseClient *> clients = LanguageClientManager::clientsSupportingDocument(textEditor->textDocument());
|
||||
QList<Client *> clients = LanguageClientManager::clientsSupportingDocument(textEditor->textDocument());
|
||||
QTC_ASSERT(!clients.isEmpty(), return nullptr);
|
||||
clients = Utils::filtered(clients, [doc = textEditor->textDocument()](const BaseClient *client){
|
||||
clients = Utils::filtered(clients, [doc = textEditor->textDocument()](const Client *client){
|
||||
return clientSupportsDocumentSymbols(client, doc);
|
||||
});
|
||||
return new LanguageClientOutlineWidget(clients.first(), textEditor);
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "languageclientplugin.h"
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
|
||||
namespace LanguageClient {
|
||||
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "languageclientsettings.h"
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
#include "languageclientmanager.h"
|
||||
#include "languageclient_global.h"
|
||||
#include "languageclientinterface.h"
|
||||
@@ -398,11 +398,11 @@ bool BaseSettings::isValid() const
|
||||
return !m_name.isEmpty();
|
||||
}
|
||||
|
||||
BaseClient *BaseSettings::createClient() const
|
||||
Client *BaseSettings::createClient() const
|
||||
{
|
||||
BaseClientInterface *interface = createInterface();
|
||||
if (QTC_GUARD(interface)) {
|
||||
auto *client = new BaseClient(interface);
|
||||
auto *client = new Client(interface);
|
||||
client->setName(m_name);
|
||||
client->setSupportedLanguage(m_languageFilter);
|
||||
return client;
|
||||
|
@@ -43,7 +43,7 @@ namespace LanguageClient {
|
||||
|
||||
constexpr char noLanguageFilter[] = "No Filter";
|
||||
|
||||
class BaseClient;
|
||||
class Client;
|
||||
class BaseClientInterface;
|
||||
|
||||
struct LanguageFilter
|
||||
@@ -67,14 +67,14 @@ public:
|
||||
QString m_name = QString("New Language Server");
|
||||
bool m_enabled = true;
|
||||
LanguageFilter m_languageFilter;
|
||||
QPointer<BaseClient> m_client; // not owned
|
||||
QPointer<Client> m_client; // not owned
|
||||
|
||||
virtual void applyFromSettingsWidget(QWidget *widget);
|
||||
virtual QWidget *createSettingsWidget(QWidget *parent = nullptr) const;
|
||||
virtual BaseSettings *copy() const { return new BaseSettings(*this); }
|
||||
virtual bool needsRestart() const;
|
||||
virtual bool isValid() const ;
|
||||
BaseClient *createClient() const;
|
||||
Client *createClient() const;
|
||||
virtual QVariantMap toMap() const;
|
||||
virtual void fromMap(const QVariantMap &map);
|
||||
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "languageclientutils.h"
|
||||
|
||||
#include "baseclient.h"
|
||||
#include "client.h"
|
||||
|
||||
#include <coreplugin/editormanager/documentmodel.h>
|
||||
|
||||
@@ -131,7 +131,7 @@ QTextCursor endOfLineCursor(const QTextCursor &cursor)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void updateCodeActionRefactoringMarker(BaseClient *client,
|
||||
void updateCodeActionRefactoringMarker(Client *client,
|
||||
const CodeAction &action,
|
||||
const DocumentUri &uri)
|
||||
{
|
||||
@@ -176,7 +176,7 @@ void updateCodeActionRefactoringMarker(BaseClient *client,
|
||||
}
|
||||
} else if (action.command().has_value()) {
|
||||
const Command command = action.command().value();
|
||||
marker.callback = [command, client = QPointer<BaseClient>(client)](const TextEditorWidget *) {
|
||||
marker.callback = [command, client = QPointer<Client>(client)](const TextEditorWidget *) {
|
||||
if (client)
|
||||
client->executeCommand(command);
|
||||
};
|
||||
|
@@ -37,7 +37,7 @@ class TextDocumentManipulatorInterface;
|
||||
|
||||
namespace LanguageClient {
|
||||
|
||||
class BaseClient;
|
||||
class Client;
|
||||
|
||||
bool applyWorkspaceEdit(const LanguageServerProtocol::WorkspaceEdit &edit);
|
||||
bool applyTextDocumentEdit(const LanguageServerProtocol::TextDocumentEdit &edit);
|
||||
@@ -46,7 +46,7 @@ bool applyTextEdits(const LanguageServerProtocol::DocumentUri &uri,
|
||||
void applyTextEdit(TextEditor::TextDocumentManipulatorInterface &manipulator,
|
||||
const LanguageServerProtocol::TextEdit &edit);
|
||||
TextEditor::TextDocument *textDocumentForFileName(const Utils::FileName &fileName);
|
||||
void updateCodeActionRefactoringMarker(BaseClient *client,
|
||||
void updateCodeActionRefactoringMarker(Client *client,
|
||||
const LanguageServerProtocol::CodeAction &action,
|
||||
const LanguageServerProtocol::DocumentUri &uri);
|
||||
|
||||
|
Reference in New Issue
Block a user