| //===--- DiagnosticOptions.h ------------------------------------*- C++ -*-===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SWIFT_BASIC_DIAGNOSTICOPTIONS_H |
| #define SWIFT_BASIC_DIAGNOSTICOPTIONS_H |
| |
| #include "llvm/ADT/Hashing.h" |
| |
| namespace swift { |
| |
| /// Options for controlling diagnostics. |
| class DiagnosticOptions { |
| public: |
| /// Indicates whether textual diagnostics should use color. |
| bool UseColor = false; |
| |
| /// Indicates whether the diagnostics produced during compilation should be |
| /// checked against expected diagnostics, indicated by markers in the |
| /// input source file. |
| enum { |
| NoVerify, |
| Verify, |
| VerifyAndApplyFixes |
| } VerifyMode = NoVerify; |
| |
| enum FormattingStyle { LLVM, Swift }; |
| |
| /// Indicates whether to allow diagnostics for \c <unknown> locations if |
| /// \c VerifyMode is not \c NoVerify. |
| bool VerifyIgnoreUnknown = false; |
| |
| /// Indicates whether diagnostic passes should be skipped. |
| bool SkipDiagnosticPasses = false; |
| |
| /// Keep emitting subsequent diagnostics after a fatal error. |
| bool ShowDiagnosticsAfterFatalError = false; |
| |
| /// When emitting fixits as code edits, apply all fixits from diagnostics |
| /// without any filtering. |
| bool FixitCodeForAllDiagnostics = false; |
| |
| /// Suppress all warnings |
| bool SuppressWarnings = false; |
| |
| /// Treat all warnings as errors |
| bool WarningsAsErrors = false; |
| |
| // When printing diagnostics, include the diagnostic name at the end |
| bool PrintDiagnosticNames = false; |
| |
| /// If set to true, include educational notes in printed output if available. |
| /// Educational notes are documentation which supplement diagnostics. |
| bool PrintEducationalNotes = false; |
| |
| // If set to true, use the more descriptive experimental formatting style for |
| // diagnostics. |
| FormattingStyle PrintedFormattingStyle = FormattingStyle::LLVM; |
| |
| std::string DiagnosticDocumentationPath = ""; |
| |
| std::string LocalizationCode = ""; |
| |
| // Diagnostic messages directory path. |
| std::string LocalizationPath = ""; |
| |
| /// Return a hash code of any components from these options that should |
| /// contribute to a Swift Bridging PCH hash. |
| llvm::hash_code getPCHHashComponents() const { |
| // Nothing here that contributes anything significant when emitting the PCH. |
| return llvm::hash_value(0); |
| } |
| }; |
| |
| } // end namespace swift |
| |
| #endif // SWIFT_BASIC_DIAGNOSTICOPTIONS_H |