Skip to content

Commit e182da4

Browse files
committed
[lldb][Language] Add Language::GetDisplayNameForLanguageType API (llvm#161803)
The intention for this API is to be used when presenting language names to the user, e.g., in expression evaluation diagnostics or LLDB errors. Most uses of `GetNameForLanguageType` can be probably replaced with `GetDisplayNameForLanguageType`, but that's out of scope of this PR. This uses `llvm::dwarf::LanguageDescription` under the hood, so we would lose the version numbers in the names. If we deem those to be important, we could switch to an implementation that hardcodes a list of user-friendly names with version numbers included. The intention is to use it from llvm#161688 Depends on llvm#161804 (cherry picked from commit 2c37244)
1 parent 2788430 commit e182da4

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lldb/include/lldb/Target/Language.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,15 @@ class Language : public PluginInterface {
412412
GetLanguageTypeFromString(const char *string) = delete;
413413
static lldb::LanguageType GetLanguageTypeFromString(llvm::StringRef string);
414414

415+
/// Returns the internal LLDB name for the specified language. When presenting
416+
/// the language name to users, use \ref GetDisplayNameForLanguageType
417+
/// instead.
415418
static const char *GetNameForLanguageType(lldb::LanguageType language);
416419

420+
/// Returns a user-friendly name for the specified language.
421+
static llvm::StringRef
422+
GetDisplayNameForLanguageType(lldb::LanguageType language);
423+
417424
static void PrintAllLanguages(Stream &s, const char *prefix,
418425
const char *suffix);
419426

lldb/source/Target/Language.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,10 @@ const char *Language::GetNameForLanguageType(LanguageType language) {
272272
return language_names[eLanguageTypeUnknown].name;
273273
}
274274

275+
llvm::StringRef Language::GetDisplayNameForLanguageType(LanguageType language) {
276+
return SourceLanguage(language).GetDescription();
277+
}
278+
275279
void Language::PrintSupportedLanguagesForExpressions(Stream &s,
276280
llvm::StringRef prefix,
277281
llvm::StringRef suffix) {

0 commit comments

Comments
 (0)