aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@qt.io>2019-05-17 09:26:05 +0200
committerChristian Stenger <christian.stenger@qt.io>2019-05-17 11:36:22 +0000
commited77e105717eb9713a56254375e2646a3a6ddcee (patch)
tree941605b16cd5fd220eaf7f33d44899e2a4fc66fd /src/plugins/languageclient
parent4de9d8b2f6ee9bcf50d956cb31e664ea81b5f952 (diff)
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>
Diffstat (limited to 'src/plugins/languageclient')
-rw-r--r--src/plugins/languageclient/languageclientsettings.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientsettings.cpp b/src/plugins/languageclient/languageclientsettings.cpp
index 93c930ee311..7bb3182e2d6 100644
--- a/src/plugins/languageclient/languageclientsettings.cpp
+++ b/src/plugins/languageclient/languageclientsettings.cpp
@@ -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;
}