Merge pull request #37320 from fwcd/sourcekit-diagnostic-ids

[SourceKit] Add id and category to diagnostics
This commit is contained in:
Ben Langmuir
2021-05-17 14:25:40 -07:00
committed by GitHub
31 changed files with 228 additions and 65 deletions

View File

@@ -15,6 +15,7 @@
//===----------------------------------------------------------------------===//
#include "swift/Localization/LocalizationFormat.h"
#include "swift/AST/DiagnosticEngine.h"
#include "swift/Basic/Range.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallString.h"
@@ -39,12 +40,6 @@ enum LocalDiagID : uint32_t {
NumDiags
};
static constexpr const char *const diagnosticNameStrings[] = {
#define DIAG(KIND, ID, Options, Text, Signature) " [" #ID "]",
#include "swift/AST/DiagnosticsAll.def"
"<not a diagnostic>",
};
} // namespace
namespace llvm {
@@ -115,9 +110,9 @@ LocalizationProducer::getMessageOr(swift::DiagID id,
if (localizedMessage.empty())
return defaultMessage;
if (printDiagnosticNames) {
llvm::StringRef diagnosticName(diagnosticNameStrings[(unsigned)id]);
llvm::StringRef diagnosticID(DiagnosticEngine::diagnosticIDStringFor(id));
auto localizedDebugDiagnosticMessage =
localizationSaver.save(localizedMessage.str() + diagnosticName.str());
localizationSaver.save(localizedMessage.str() + " [" + diagnosticID.str() + "]");
return localizedDebugDiagnosticMessage;
}
return localizedMessage;