forked from qt-creator/qt-creator
LanguageClient: show CodeDescription in Tasks
Change-Id: Ia8a20c71d6af9f0168614ecddb4fc0ca4ecf7cbc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -224,13 +224,19 @@ std::optional<Task> DiagnosticManager::createTask(
|
||||
}
|
||||
}
|
||||
|
||||
return Task(taskType,
|
||||
Task task(
|
||||
taskType,
|
||||
taskText(diagnostic),
|
||||
doc->filePath(),
|
||||
diagnostic.range().start().line() + 1,
|
||||
d->m_taskCategory,
|
||||
icon,
|
||||
Task::NoOptions);
|
||||
|
||||
if (const std::optional<CodeDescription> codeDescription = diagnostic.codeDescription())
|
||||
task.addLinkDetail(codeDescription->href());
|
||||
|
||||
return task;
|
||||
}
|
||||
|
||||
QString DiagnosticManager::taskText(const LanguageServerProtocol::Diagnostic &diagnostic) const
|
||||
|
@@ -163,6 +163,15 @@ QString Task::formattedDescription(DescriptionTags tags, const QString &extraHea
|
||||
.arg(htmlExtraHeading, TextEditor::FontSettings::defaultFixedFontFamily(), text);
|
||||
}
|
||||
|
||||
void Task::addLinkDetail(const QString &link)
|
||||
{
|
||||
details.append(link);
|
||||
QTextCharFormat format;
|
||||
format.setAnchor(true);
|
||||
format.setAnchorHref(link);
|
||||
formats << QTextLayout::FormatRange{0, int(link.length()), format};
|
||||
}
|
||||
|
||||
//
|
||||
// functions
|
||||
//
|
||||
|
@@ -54,6 +54,7 @@ public:
|
||||
QIcon icon() const;
|
||||
void setIcon(const QIcon &icon);
|
||||
QString formattedDescription(DescriptionTags tags, const QString &extraHeading = {}) const;
|
||||
void addLinkDetail(const QString &link);
|
||||
|
||||
friend PROJECTEXPLORER_EXPORT bool operator==(const Task &t1, const Task &t2);
|
||||
friend PROJECTEXPLORER_EXPORT bool operator<(const Task &a, const Task &b);
|
||||
|
Reference in New Issue
Block a user