clang-tools 20.0.0git
|
StoreDiags collects the diagnostics that can later be reported by clangd. More...
#include <Diagnostics.h>
Public Types | |
using | DiagFixer = std::function< std::vector< Fix >(DiagnosticsEngine::Level, const clang::Diagnostic &)> |
When passed a main diagnostic, returns fixes to add to it. | |
using | LevelAdjuster = std::function< DiagnosticsEngine::Level(DiagnosticsEngine::Level, const clang::Diagnostic &)> |
using | DiagCallback = std::function< void(const clang::Diagnostic &, clangd::Diag &)> |
Public Member Functions | |
std::vector< Diag > | take (const clang::tidy::ClangTidyContext *Tidy=nullptr) |
void | BeginSourceFile (const LangOptions &Opts, const Preprocessor *PP) override |
void | EndSourceFile () override |
void | HandleDiagnostic (DiagnosticsEngine::Level DiagLevel, const clang::Diagnostic &Info) override |
void | contributeFixes (DiagFixer Fixer) |
If set, possibly adds fixes for diagnostics using Fixer . | |
void | setLevelAdjuster (LevelAdjuster Adjuster) |
If set, this allows the client of this class to adjust the level of diagnostics, such as promoting warnings to errors, or ignoring diagnostics. | |
void | setDiagCallback (DiagCallback CB) |
Invokes a callback every time a diagnostics is completely formed. | |
StoreDiags collects the diagnostics that can later be reported by clangd.
It groups all notes for a diagnostic into a single Diag and filters out diagnostics that don't mention the main file (i.e. neither the diag itself nor its notes are in the main file).
Definition at line 138 of file Diagnostics.h.
using clang::clangd::StoreDiags::DiagCallback = std::function<void(const clang::Diagnostic &, clangd::Diag &)> |
Definition at line 155 of file Diagnostics.h.
using clang::clangd::StoreDiags::DiagFixer = std::function<std::vector<Fix>(DiagnosticsEngine::Level, const clang::Diagnostic &)> |
When passed a main diagnostic, returns fixes to add to it.
When passed a note diagnostic, returns fixes to replace it with.
Definition at line 151 of file Diagnostics.h.
using clang::clangd::StoreDiags::LevelAdjuster = std::function<DiagnosticsEngine::Level( DiagnosticsEngine::Level, const clang::Diagnostic &)> |
Definition at line 153 of file Diagnostics.h.
|
override |
Definition at line 625 of file Diagnostics.cpp.
|
inline |
If set, possibly adds fixes for diagnostics using Fixer
.
Definition at line 158 of file Diagnostics.h.
Referenced by clang::clangd::ParsedAST::build().
|
override |
Definition at line 633 of file Diagnostics.cpp.
|
override |
Definition at line 673 of file Diagnostics.cpp.
References clang::clangd::fillNonLocationData(), FixIt, clang::clangd::getCanonicalPath(), clang::clangd::Info, clang::clangd::isInsideMainFile(), clang::clangd::IgnoreDiagnostics::log(), M, clang::clangd::toTextEdit(), clang::clangd::translatePreamblePatchLocation(), and clang::clangd::writeCodeToFixMessage().
|
inline |
Invokes a callback every time a diagnostics is completely formed.
Handler of the callback can also mutate the diagnostic.
Definition at line 165 of file Diagnostics.h.
Referenced by clang::clangd::ParsedAST::build(), and clang::clangd::buildPreamble().
|
inline |
If set, this allows the client of this class to adjust the level of diagnostics, such as promoting warnings to errors, or ignoring diagnostics.
Definition at line 162 of file Diagnostics.h.
Referenced by clang::clangd::ParsedAST::build(), and clang::clangd::buildPreamble().
std::vector< Diag > clang::clangd::StoreDiags::take | ( | const clang::tidy::ClangTidyContext * | Tidy = nullptr | ) |
Definition at line 574 of file Diagnostics.cpp.
References clang::clangd::Diag::Clang, clang::clangd::Diag::ClangTidy, clang::clangd::Diag::Fixes, clang::tidy::ClangTidyContext::getCheckName(), clang::clangd::DiagBase::ID, clang::clangd::DiagBase::Message, clang::clangd::Fix::Message, Name, clang::clangd::Diag::Name, clang::clangd::Diag::Notes, Output, clang::clangd::Diag::Source, and clang::clangd::Warning.
Referenced by clang::clangd::ParsedAST::build(), and clang::clangd::buildPreamble().