forked from qt-creator/qt-creator
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:
@@ -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
|
||||||
)
|
)
|
||||||
|
@@ -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 += \
|
||||||
|
@@ -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",
|
||||||
]
|
]
|
||||||
|
@@ -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()
|
||||||
|
@@ -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
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
@@ -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();
|
||||||
|
|
Reference in New Issue
Block a user