LanguageClient: Rename logger -> inspector

... to be able to add more features to this dialog.

Change-Id: If8692bee484e25c1ba5e4ea629a77d14ff5d92ab
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2021-02-10 14:03:45 +01:00
parent 27300c66fe
commit b865fa5571
8 changed files with 47 additions and 44 deletions

View File

@@ -21,6 +21,6 @@ add_qtc_plugin(LanguageClient
languageclientutils.cpp languageclientutils.h languageclientutils.cpp languageclientutils.h
languageclient_global.h languageclient_global.h
locatorfilter.cpp locatorfilter.h locatorfilter.cpp locatorfilter.h
lsplogger.cpp lsplogger.h lspinspector.cpp lspinspector.h
semantichighlightsupport.cpp semantichighlightsupport.h semantichighlightsupport.cpp semantichighlightsupport.h
) )

View File

@@ -21,7 +21,7 @@ HEADERS += \
languageclientsymbolsupport.h \ languageclientsymbolsupport.h \
languageclientutils.h \ languageclientutils.h \
locatorfilter.h \ locatorfilter.h \
lsplogger.h \ lspinspector.h \
semantichighlightsupport.h semantichighlightsupport.h
@@ -43,7 +43,7 @@ SOURCES += \
languageclientsymbolsupport.cpp \ languageclientsymbolsupport.cpp \
languageclientutils.cpp \ languageclientutils.cpp \
locatorfilter.cpp \ locatorfilter.cpp \
lsplogger.cpp \ lspinspector.cpp \
semantichighlightsupport.cpp semantichighlightsupport.cpp
RESOURCES += \ RESOURCES += \

View File

@@ -50,8 +50,8 @@ QtcPlugin {
"languageclientutils.h", "languageclientutils.h",
"locatorfilter.cpp", "locatorfilter.cpp",
"locatorfilter.h", "locatorfilter.h",
"lsplogger.cpp", "lspinspector.cpp",
"lsplogger.h", "lspinspector.h",
"semantichighlightsupport.cpp", "semantichighlightsupport.cpp",
"semantichighlightsupport.h", "semantichighlightsupport.h",
] ]

View File

@@ -365,14 +365,14 @@ void LanguageClientManager::logBaseMessage(const LspLogMessage::MessageSender se
const QString &clientName, const QString &clientName,
const BaseMessage &message) const BaseMessage &message)
{ {
instance()->m_logger.log(sender, clientName, message); instance()->m_inspector.log(sender, clientName, message);
} }
void LanguageClientManager::showLogger() void LanguageClientManager::showInspector()
{ {
QWidget *loggerWidget = instance()->m_logger.createWidget(); QWidget *inspectorWidget = instance()->m_inspector.createWidget();
loggerWidget->setAttribute(Qt::WA_DeleteOnClose); inspectorWidget->setAttribute(Qt::WA_DeleteOnClose);
loggerWidget->show(); inspectorWidget->show();
} }
QVector<Client *> LanguageClientManager::reachableClients() QVector<Client *> LanguageClientManager::reachableClients()

View File

@@ -29,7 +29,7 @@
#include "languageclient_global.h" #include "languageclient_global.h"
#include "languageclientsettings.h" #include "languageclientsettings.h"
#include "locatorfilter.h" #include "locatorfilter.h"
#include "lsplogger.h" #include "lspinspector.h"
#include <utils/id.h> #include <utils/id.h>
@@ -94,7 +94,7 @@ public:
static void logBaseMessage(const LspLogMessage::MessageSender sender, static void logBaseMessage(const LspLogMessage::MessageSender sender,
const QString &clientName, const QString &clientName,
const LanguageServerProtocol::BaseMessage &message); const LanguageServerProtocol::BaseMessage &message);
static void showLogger(); static void showInspector();
signals: signals:
void shutdownFinished(); void shutdownFinished();
@@ -126,6 +126,6 @@ private:
WorkspaceLocatorFilter m_workspaceLocatorFilter; WorkspaceLocatorFilter m_workspaceLocatorFilter;
WorkspaceClassLocatorFilter m_workspaceClassLocatorFilter; WorkspaceClassLocatorFilter m_workspaceClassLocatorFilter;
WorkspaceMethodLocatorFilter m_workspaceMethodLocatorFilter; WorkspaceMethodLocatorFilter m_workspaceMethodLocatorFilter;
LspLogger m_logger; LspInspector m_inspector;
}; };
} // namespace LanguageClient } // namespace LanguageClient

View File

@@ -240,8 +240,8 @@ void updateEditorToolBar(Core::IEditor *editor)
QObject::connect(action, &QAction::triggered, reopen); QObject::connect(action, &QAction::triggered, reopen);
} }
menu->addActions(clientsGroup->actions()); menu->addActions(clientsGroup->actions());
menu->addAction("Language Client Logs", []() { menu->addAction("Inspect Language Clients", []() {
LanguageClientManager::showLogger(); LanguageClientManager::showInspector();
}); });
menu->addAction("Manage...", []() { menu->addAction("Manage...", []() {
Core::ICore::showOptionsDialog(Constants::LANGUAGECLIENT_SETTINGS_PAGE); Core::ICore::showOptionsDialog(Constants::LANGUAGECLIENT_SETTINGS_PAGE);

View File

@@ -23,7 +23,7 @@
** **
****************************************************************************/ ****************************************************************************/
#include "lsplogger.h" #include "lspinspector.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/minisplitter.h> #include <coreplugin/minisplitter.h>
@@ -64,11 +64,11 @@ private:
QLabel *m_mimeType = nullptr; QLabel *m_mimeType = nullptr;
}; };
class LspLoggerWidget : public QDialog class LspInspectorWidget : public QDialog
{ {
Q_DECLARE_TR_FUNCTIONS(LspLoggerWidget) Q_DECLARE_TR_FUNCTIONS(LspInspectorWidget)
public: public:
explicit LspLoggerWidget(LspLogger *logger); explicit LspInspectorWidget(LspInspector *inspector);
private: private:
void addMessage(const QString &clientName, const LspLogMessage &message); void addMessage(const QString &clientName, const LspLogMessage &message);
@@ -77,7 +77,7 @@ private:
void selectMatchingMessage(LspLogMessage::MessageSender sender, const QJsonValue &id); void selectMatchingMessage(LspLogMessage::MessageSender sender, const QJsonValue &id);
void saveLog(); void saveLog();
LspLogger *m_logger = nullptr; LspInspector *m_inspector = nullptr;
QListWidget *m_clients = nullptr; QListWidget *m_clients = nullptr;
MessageDetailWidget *m_clientDetails = nullptr; MessageDetailWidget *m_clientDetails = nullptr;
QListView *m_messages = nullptr; QListView *m_messages = nullptr;
@@ -85,14 +85,14 @@ private:
Utils::ListModel<LspLogMessage> m_model; Utils::ListModel<LspLogMessage> m_model;
}; };
QWidget *LspLogger::createWidget() QWidget *LspInspector::createWidget()
{ {
return new LspLoggerWidget(this); return new LspInspectorWidget(this);
} }
void LspLogger::log(const LspLogMessage::MessageSender sender, void LspInspector::log(const LspLogMessage::MessageSender sender,
const QString &clientName, const QString &clientName,
const BaseMessage &message) const BaseMessage &message)
{ {
std::list<LspLogMessage> &clientLog = m_logs[clientName]; std::list<LspLogMessage> &clientLog = m_logs[clientName];
while (clientLog.size() >= static_cast<std::size_t>(m_logSize)) while (clientLog.size() >= static_cast<std::size_t>(m_logSize))
@@ -101,12 +101,12 @@ void LspLogger::log(const LspLogMessage::MessageSender sender,
emit newMessage(clientName, clientLog.back()); emit newMessage(clientName, clientLog.back());
} }
std::list<LspLogMessage> LspLogger::messages(const QString &clientName) const std::list<LspLogMessage> LspInspector::messages(const QString &clientName) const
{ {
return m_logs[clientName]; return m_logs[clientName];
} }
QList<QString> LspLogger::clients() const QList<QString> LspInspector::clients() const
{ {
return m_logs.keys(); return m_logs.keys();
} }
@@ -131,17 +131,20 @@ static QVariant messageData(const LspLogMessage &message, int, int role)
return {}; return {};
} }
LspLoggerWidget::LspLoggerWidget(LspLogger *logger) LspInspectorWidget::LspInspectorWidget(LspInspector *inspector)
: m_logger(logger) : m_inspector(inspector)
{ {
setWindowTitle(tr("Language Client Log")); setWindowTitle(tr("Language Client Inspector"));
connect(logger, &LspLogger::newMessage, this, &LspLoggerWidget::addMessage); connect(inspector, &LspInspector::newMessage, this, &LspInspectorWidget::addMessage);
connect(Core::ICore::instance(), &Core::ICore::coreAboutToClose, this, &QWidget::close); connect(Core::ICore::instance(), &Core::ICore::coreAboutToClose, this, &QWidget::close);
m_clients = new QListWidget; m_clients = new QListWidget;
m_clients->addItems(logger->clients()); m_clients->addItems(inspector->clients());
connect(m_clients, &QListWidget::currentTextChanged, this, &LspLoggerWidget::setCurrentClient); connect(m_clients,
&QListWidget::currentTextChanged,
this,
&LspInspectorWidget::setCurrentClient);
m_clients->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding); m_clients->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::MinimumExpanding);
m_clientDetails = new MessageDetailWidget; m_clientDetails = new MessageDetailWidget;
@@ -159,7 +162,7 @@ LspLoggerWidget::LspLoggerWidget(LspLogger *logger)
connect(m_messages->selectionModel(), connect(m_messages->selectionModel(),
&QItemSelectionModel::currentChanged, &QItemSelectionModel::currentChanged,
this, this,
&LspLoggerWidget::currentMessageChanged); &LspInspectorWidget::currentMessageChanged);
m_messages->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); m_messages->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
m_messages->setSelectionMode(QAbstractItemView::MultiSelection); m_messages->setSelectionMode(QAbstractItemView::MultiSelection);
@@ -182,14 +185,14 @@ LspLoggerWidget::LspLoggerWidget(LspLogger *logger)
layout->addWidget(buttonBox); layout->addWidget(buttonBox);
// save // save
connect(buttonBox, &QDialogButtonBox::accepted, this, &LspLoggerWidget::saveLog); connect(buttonBox, &QDialogButtonBox::accepted, this, &LspInspectorWidget::saveLog);
// close // close
connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
resize(1024, 768); resize(1024, 768);
} }
void LspLoggerWidget::addMessage(const QString &clientName, const LspLogMessage &message) void LspInspectorWidget::addMessage(const QString &clientName, const LspLogMessage &message)
{ {
if (m_clients->findItems(clientName, Qt::MatchExactly).isEmpty()) if (m_clients->findItems(clientName, Qt::MatchExactly).isEmpty())
m_clients->addItem(clientName); m_clients->addItem(clientName);
@@ -198,14 +201,14 @@ void LspLoggerWidget::addMessage(const QString &clientName, const LspLogMessage
m_model.appendItem(message); m_model.appendItem(message);
} }
void LspLoggerWidget::setCurrentClient(const QString &clientName) void LspInspectorWidget::setCurrentClient(const QString &clientName)
{ {
m_model.clear(); m_model.clear();
for (const LspLogMessage &message : m_logger->messages(clientName)) for (const LspLogMessage &message : m_inspector->messages(clientName))
m_model.appendItem(message); m_model.appendItem(message);
} }
void LspLoggerWidget::currentMessageChanged(const QModelIndex &index) void LspInspectorWidget::currentMessageChanged(const QModelIndex &index)
{ {
m_messages->clearSelection(); m_messages->clearSelection();
if (!index.isValid()) if (!index.isValid())
@@ -244,8 +247,8 @@ static bool matches(LspLogMessage::MessageSender sender,
return json.value(QString{idKey}) == id; return json.value(QString{idKey}) == id;
} }
void LspLoggerWidget::selectMatchingMessage(LspLogMessage::MessageSender sender, void LspInspectorWidget::selectMatchingMessage(LspLogMessage::MessageSender sender,
const QJsonValue &id) const QJsonValue &id)
{ {
LspLogMessage *matchingMessage = m_model.findData( LspLogMessage *matchingMessage = m_model.findData(
[&](const LspLogMessage &message) { return matches(sender, id, message); }); [&](const LspLogMessage &message) { return matches(sender, id, message); });
@@ -261,7 +264,7 @@ void LspLoggerWidget::selectMatchingMessage(LspLogMessage::MessageSender sender,
m_clientDetails->setMessage(matchingMessage->message); m_clientDetails->setMessage(matchingMessage->message);
} }
void LspLoggerWidget::saveLog() void LspInspectorWidget::saveLog()
{ {
QString contents; QString contents;
QTextStream stream(&contents); QTextStream stream(&contents);

View File

@@ -41,11 +41,11 @@ struct LspLogMessage
LanguageServerProtocol::BaseMessage message; LanguageServerProtocol::BaseMessage message;
}; };
class LspLogger : public QObject class LspInspector : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
LspLogger() {} LspInspector() {}
QWidget *createWidget(); QWidget *createWidget();