LanguageClient: Visualize special trigger characters

Instead of having strange looking cells that appear to be empty
try to cope at least with some common trigger characters and
visualize them.

Change-Id: Id0f696eb47df204756a1387535a15c2a1d75cc30
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Stenger
2019-05-17 09:26:05 +02:00
parent 4de9d8b2f6
commit ed77e10571

View File

@@ -529,6 +529,26 @@ BaseClientInterface *StdIOSettings::createInterface() const
return new StdIOClientInterface(m_executable, arguments());
}
class JsonTreeItemDelegate : public QStyledItemDelegate
{
public:
QString displayText(const QVariant &value, const QLocale &) const override
{
QString result = value.toString();
if (result.size() == 1) {
switch (result.at(0).toLatin1()) {
case '\n':
return "\\n";
case '\t':
return "\\t";
case '\r':
return "\\r";
}
}
return result;
}
};
static QWidget *createCapabilitiesView(const QJsonValue &capabilities)
{
auto root = new Utils::JsonTreeItem("Capabilities", capabilities);
@@ -543,6 +563,7 @@ static QWidget *createCapabilitiesView(const QJsonValue &capabilities)
capabilitiesView->setModel(capabilitiesModel);
capabilitiesView->setAlternatingRowColors(true);
capabilitiesView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
capabilitiesView->setItemDelegate(new JsonTreeItemDelegate);
return capabilitiesView;
}