forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/8.0'
Change-Id: Icbb87ac8bcee5fb86042d3863a973573510651b4
This commit is contained in:
@@ -40,8 +40,8 @@ using namespace Utils;
|
||||
|
||||
namespace ClangCodeModel::Internal {
|
||||
|
||||
static constexpr char roleKey[] = "role";
|
||||
static constexpr char arcanaKey[] = "arcana";
|
||||
static constexpr char16_t roleKey[] = u"role";
|
||||
static constexpr char16_t arcanaKey[] = u"arcana";
|
||||
|
||||
QString ClangdAstNode::role() const { return typedValue<QString>(roleKey); }
|
||||
QString ClangdAstNode::kind() const { return typedValue<QString>(kindKey); }
|
||||
|
||||
@@ -111,7 +111,7 @@ class SymbolDetails : public JsonObject
|
||||
public:
|
||||
using JsonObject::JsonObject;
|
||||
|
||||
static constexpr char usrKey[] = "usr";
|
||||
static constexpr char16_t usrKey[] = u"usr";
|
||||
|
||||
// the unqualified name of the symbol
|
||||
QString name() const { return typedValue<QString>(nameKey); }
|
||||
@@ -190,8 +190,8 @@ class DiagnosticsCapabilities : public JsonObject
|
||||
{
|
||||
public:
|
||||
using JsonObject::JsonObject;
|
||||
void enableCategorySupport() { insert("categorySupport", true); }
|
||||
void enableCodeActionsInline() {insert("codeActionsInline", true);}
|
||||
void enableCategorySupport() { insert(u"categorySupport", true); }
|
||||
void enableCodeActionsInline() {insert(u"codeActionsInline", true);}
|
||||
};
|
||||
|
||||
class ClangdTextDocumentClientCapabilities : public TextDocumentClientCapabilities
|
||||
@@ -201,7 +201,7 @@ public:
|
||||
|
||||
|
||||
void setPublishDiagnostics(const DiagnosticsCapabilities &caps)
|
||||
{ insert("publishDiagnostics", caps); }
|
||||
{ insert(u"publishDiagnostics", caps); }
|
||||
};
|
||||
|
||||
static qint64 getRevision(const TextDocument *doc)
|
||||
@@ -1338,7 +1338,7 @@ void ClangdClient::Private::handleSemanticTokens(TextDocument *doc,
|
||||
|
||||
Utils::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
|
||||
{
|
||||
auto actions = optionalArray<LanguageServerProtocol::CodeAction>("codeActions");
|
||||
auto actions = optionalArray<LanguageServerProtocol::CodeAction>(u"codeActions");
|
||||
if (!actions)
|
||||
return actions;
|
||||
static const QStringList badCodeActions{
|
||||
@@ -1355,7 +1355,7 @@ Utils::optional<QList<CodeAction> > ClangdDiagnostic::codeActions() const
|
||||
|
||||
QString ClangdDiagnostic::category() const
|
||||
{
|
||||
return typedValue<QString>("category");
|
||||
return typedValue<QString>(u"category");
|
||||
}
|
||||
|
||||
MessageId ClangdClient::Private::getAndHandleAst(const TextDocOrFile &doc,
|
||||
|
||||
@@ -633,7 +633,7 @@ IAssistProposal *ClangdFunctionHintProcessor::perform(const AssistInterface *int
|
||||
ClangdCompletionCapabilities::ClangdCompletionCapabilities(const JsonObject &object)
|
||||
: TextDocumentClientCapabilities::CompletionCapabilities(object)
|
||||
{
|
||||
insert("editsNearCursor", true); // For dot-to-arrow correction.
|
||||
insert(u"editsNearCursor", true); // For dot-to-arrow correction.
|
||||
if (Utils::optional<CompletionItemCapbilities> completionItemCaps = completionItem()) {
|
||||
completionItemCaps->setSnippetSupport(false);
|
||||
setCompletionItem(*completionItemCaps);
|
||||
|
||||
@@ -277,7 +277,7 @@ Task createTask(const ClangDiagnostic &diagnostic)
|
||||
|
||||
return Task(taskType,
|
||||
diagnosticCategoryPrefixRemoved(diagnostic.text),
|
||||
FilePath::fromString(diagnostic.location.targetFilePath.toString()),
|
||||
diagnostic.location.targetFilePath,
|
||||
diagnostic.location.targetLine,
|
||||
Constants::TASK_CATEGORY_DIAGNOSTICS,
|
||||
icon,
|
||||
@@ -295,7 +295,7 @@ ClangdTextMark::ClangdTextMark(const FilePath &filePath,
|
||||
, m_diagnostic(convertDiagnostic(ClangdDiagnostic(diagnostic), filePath))
|
||||
, m_client(client)
|
||||
{
|
||||
setSettingsPage(CppEditor::Constants::CPP_CODE_MODEL_SETTINGS_ID);
|
||||
setSettingsPage(CppEditor::Constants::CPP_CLANGD_SETTINGS_ID);
|
||||
|
||||
const bool isError = diagnostic.severity()
|
||||
&& *diagnostic.severity() == DiagnosticSeverity::Error;
|
||||
@@ -310,31 +310,32 @@ ClangdTextMark::ClangdTextMark(const FilePath &filePath,
|
||||
client->addTask(createTask(m_diagnostic));
|
||||
}
|
||||
|
||||
// Copy to clipboard action
|
||||
QVector<QAction *> actions;
|
||||
QAction *action = new QAction();
|
||||
action->setIcon(QIcon::fromTheme("edit-copy", Icons::COPY.icon()));
|
||||
action->setToolTip(tr("Copy to Clipboard", "Clang Code Model Marks"));
|
||||
QObject::connect(action, &QAction::triggered, [diag = m_diagnostic]() {
|
||||
const QString text = ClangDiagnosticWidget::createText({diag},
|
||||
ClangDiagnosticWidget::InfoBar);
|
||||
setClipboardAndSelection(text);
|
||||
});
|
||||
actions << action;
|
||||
|
||||
// Remove diagnostic warning action
|
||||
Project *project = projectForCurrentEditor();
|
||||
if (project && isDiagnosticConfigChangable(project, m_diagnostic)) {
|
||||
action = new QAction();
|
||||
action->setIcon(Icons::BROKEN.icon());
|
||||
action->setToolTip(tr("Disable Diagnostic in Current Project"));
|
||||
QObject::connect(action, &QAction::triggered, [diag = m_diagnostic]() {
|
||||
disableDiagnosticInCurrentProjectConfig(diag);
|
||||
setActionsProvider([diag = m_diagnostic] {
|
||||
// Copy to clipboard action
|
||||
QList<QAction *> actions;
|
||||
QAction *action = new QAction();
|
||||
action->setIcon(QIcon::fromTheme("edit-copy", Icons::COPY.icon()));
|
||||
action->setToolTip(tr("Copy to Clipboard", "Clang Code Model Marks"));
|
||||
QObject::connect(action, &QAction::triggered, [diag] {
|
||||
const QString text = ClangDiagnosticWidget::createText({diag},
|
||||
ClangDiagnosticWidget::InfoBar);
|
||||
setClipboardAndSelection(text);
|
||||
});
|
||||
actions << action;
|
||||
}
|
||||
|
||||
setActions(actions);
|
||||
// Remove diagnostic warning action
|
||||
Project *project = projectForCurrentEditor();
|
||||
if (project && isDiagnosticConfigChangable(project, diag)) {
|
||||
action = new QAction();
|
||||
action->setIcon(Icons::BROKEN.icon());
|
||||
action->setToolTip(tr("Disable Diagnostic in Current Project"));
|
||||
QObject::connect(action, &QAction::triggered, [diag] {
|
||||
disableDiagnosticInCurrentProjectConfig(diag);
|
||||
});
|
||||
actions << action;
|
||||
}
|
||||
return actions;
|
||||
});
|
||||
}
|
||||
|
||||
bool ClangdTextMark::addToolTipContent(QLayout *target) const
|
||||
|
||||
@@ -76,15 +76,14 @@ QString diagnosticCategoryPrefixRemoved(const QString &text)
|
||||
// Prefixes are taken from $LLVM_SOURCE_DIR/tools/clang/lib/Frontend/TextDiagnostic.cpp,
|
||||
// function TextDiagnostic::printDiagnosticLevel (llvm-3.6.2).
|
||||
static const QStringList categoryPrefixes = {
|
||||
QStringLiteral("note"),
|
||||
QStringLiteral("remark"),
|
||||
QStringLiteral("warning"),
|
||||
QStringLiteral("error"),
|
||||
QStringLiteral("fatal error")
|
||||
QStringLiteral("note: "),
|
||||
QStringLiteral("remark: "),
|
||||
QStringLiteral("warning: "),
|
||||
QStringLiteral("error: "),
|
||||
QStringLiteral("fatal error: ")
|
||||
};
|
||||
|
||||
for (const QString &prefix : categoryPrefixes) {
|
||||
const QString fullPrefix = prefix + QStringLiteral(": ");
|
||||
for (const QString &fullPrefix : categoryPrefixes) {
|
||||
if (theText.startsWith(fullPrefix)) {
|
||||
theText.remove(0, fullPrefix.length());
|
||||
return theText;
|
||||
|
||||
Reference in New Issue
Block a user