diff options
Diffstat (limited to 'include/clang/Frontend/TextDiagnostic.h')
-rw-r--r-- | include/clang/Frontend/TextDiagnostic.h | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/include/clang/Frontend/TextDiagnostic.h b/include/clang/Frontend/TextDiagnostic.h deleted file mode 100644 index d41f15a..0000000 --- a/include/clang/Frontend/TextDiagnostic.h +++ /dev/null @@ -1,122 +0,0 @@ -//===--- TextDiagnostic.h - Text Diagnostic Pretty-Printing -----*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This is a utility class that provides support for textual pretty-printing of -// diagnostics. It is used to implement the different code paths which require -// such functionality in a consistent way. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_FRONTEND_TEXTDIAGNOSTIC_H -#define LLVM_CLANG_FRONTEND_TEXTDIAGNOSTIC_H - -#include "clang/Frontend/DiagnosticRenderer.h" - -namespace clang { - -/// \brief Class to encapsulate the logic for formatting and printing a textual -/// diagnostic message. -/// -/// This class provides an interface for building and emitting a textual -/// diagnostic, including all of the macro backtraces, caret diagnostics, FixIt -/// Hints, and code snippets. In the presence of macros this involves -/// a recursive process, synthesizing notes for each macro expansion. -/// -/// The purpose of this class is to isolate the implementation of printing -/// beautiful text diagnostics from any particular interfaces. The Clang -/// DiagnosticClient is implemented through this class as is diagnostic -/// printing coming out of libclang. -class TextDiagnostic : public DiagnosticRenderer { - raw_ostream &OS; - -public: - TextDiagnostic(raw_ostream &OS, - const LangOptions &LangOpts, - DiagnosticOptions *DiagOpts); - - ~TextDiagnostic() override; - - /// \brief Print the diagonstic level to a raw_ostream. - /// - /// This is a static helper that handles colorizing the level and formatting - /// it into an arbitrary output stream. This is used internally by the - /// TextDiagnostic emission code, but it can also be used directly by - /// consumers that don't have a source manager or other state that the full - /// TextDiagnostic logic requires. - static void printDiagnosticLevel(raw_ostream &OS, - DiagnosticsEngine::Level Level, - bool ShowColors, - bool CLFallbackMode = false); - - /// \brief Pretty-print a diagnostic message to a raw_ostream. - /// - /// This is a static helper to handle the line wrapping, colorizing, and - /// rendering of a diagnostic message to a particular ostream. It is - /// publicly visible so that clients which do not have sufficient state to - /// build a complete TextDiagnostic object can still get consistent - /// formatting of their diagnostic messages. - /// - /// \param OS Where the message is printed - /// \param IsSupplemental true if this is a continuation note diagnostic - /// \param Message The text actually printed - /// \param CurrentColumn The starting column of the first line, accounting - /// for any prefix. - /// \param Columns The number of columns to use in line-wrapping, 0 disables - /// all line-wrapping. - /// \param ShowColors Enable colorizing of the message. - static void printDiagnosticMessage(raw_ostream &OS, bool IsSupplemental, - StringRef Message, unsigned CurrentColumn, - unsigned Columns, bool ShowColors); - -protected: - void emitDiagnosticMessage(SourceLocation Loc,PresumedLoc PLoc, - DiagnosticsEngine::Level Level, - StringRef Message, - ArrayRef<CharSourceRange> Ranges, - const SourceManager *SM, - DiagOrStoredDiag D) override; - - void emitDiagnosticLoc(SourceLocation Loc, PresumedLoc PLoc, - DiagnosticsEngine::Level Level, - ArrayRef<CharSourceRange> Ranges, - const SourceManager &SM) override; - - void emitCodeContext(SourceLocation Loc, - DiagnosticsEngine::Level Level, - SmallVectorImpl<CharSourceRange>& Ranges, - ArrayRef<FixItHint> Hints, - const SourceManager &SM) override { - emitSnippetAndCaret(Loc, Level, Ranges, Hints, SM); - } - - void emitIncludeLocation(SourceLocation Loc, PresumedLoc PLoc, - const SourceManager &SM) override; - - void emitImportLocation(SourceLocation Loc, PresumedLoc PLoc, - StringRef ModuleName, - const SourceManager &SM) override; - - void emitBuildingModuleLocation(SourceLocation Loc, PresumedLoc PLoc, - StringRef ModuleName, - const SourceManager &SM) override; - -private: - void emitSnippetAndCaret(SourceLocation Loc, DiagnosticsEngine::Level Level, - SmallVectorImpl<CharSourceRange>& Ranges, - ArrayRef<FixItHint> Hints, - const SourceManager &SM); - - void emitSnippet(StringRef SourceLine); - - void emitParseableFixits(ArrayRef<FixItHint> Hints, const SourceManager &SM); -}; - -} // end namespace clang - -#endif |