9#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_OBJCLANGUAGE_H
10#define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJC_OBJCLANGUAGE_H
39 static std::optional<const MethodName>
Create(llvm::StringRef name,
142 std::vector<Language::MethodNameVariant>
149 std::vector<FormattersMatchCandidate>
155 std::pair<llvm::StringRef, llvm::StringRef>
162 bool IsSourceFile(llvm::StringRef file_path)
const override;
178 bool starts_right = (name[0] ==
'+' || name[0] ==
'-') && name[1] ==
'[';
179 bool ends_right = (name[strlen(name) - 1] ==
']');
180 return (starts_right && ends_right);
187 if (strchr(name,
':') ==
nullptr)
189 else if (name[strlen(name) - 1] ==
':')
A uniqued constant string class.
Annotates source code with color attributes.
A class that handles mangled names.
std::string GetFullNameWithoutCategory() const
Creates a variation of this method without the category.
llvm::StringRef GetClassNameWithCategory() const
Returns a reference to the class name with the category.
MethodName(llvm::StringRef name, Type type)
const std::string & GetFullName() const
Returns the full name of the method.
bool IsInstanceMethod() const
Determines if this method is an instance method.
bool IsClassMethod() const
Determines if this method is a class method.
llvm::StringRef GetSelector() const
Returns a reference to the selector name.
llvm::StringRef GetCategory() const
Returns a reference to the category name.
llvm::StringRef GetClassName() const
Returns a reference to the class name.
static std::optional< const MethodName > Create(llvm::StringRef name, bool strict)
The static factory method for creating a MethodName.
llvm::StringRef GetPluginName() override
std::pair< llvm::StringRef, llvm::StringRef > GetFormatterPrefixSuffix(llvm::StringRef type_hint) override
An individual data formatter may apply to several types and cross language boundaries.
static bool IsPossibleObjCSelector(const char *name)
static lldb_private::Language * CreateInstance(lldb::LanguageType language)
std::unique_ptr< TypeScavenger > GetTypeScavenger() override
lldb::TypeCategoryImplSP GetFormatters() override
bool SymbolNameFitsToLanguage(Mangled mangled) const override
Returns true iff the given symbol name is compatible with the mangling scheme of this language.
bool IsSourceFile(llvm::StringRef file_path) const override
llvm::StringRef GetNilReferenceSummaryString() override
Returns the summary string for ValueObjects for which IsNilReference() is true.
llvm::StringRef GetInstanceVariableName() override
ClangHighlighter m_highlighter
~ObjCLanguage() override=default
lldb::LanguageType GetLanguageType() const override
static llvm::StringRef GetPluginNameStatic()
std::vector< FormattersMatchCandidate > GetPossibleFormattersMatches(ValueObject &valobj, lldb::DynamicValueType use_dynamic) override
const Highlighter * GetHighlighter() const override
std::vector< Language::MethodNameVariant > GetMethodNameVariants(ConstString method_name) const override
bool IsNilReference(ValueObject &valobj) override
static bool IsPossibleObjCMethodName(const char *name)
llvm::StringRef GetUserEntryPointName() const override
bool SupportsExceptionBreakpointsOnThrow() const override
Returns true if this Language supports exception breakpoints on throw via a corresponding LanguageRun...
A class that represents a running process on the host machine.
LanguageType
Programming language type.
@ eLanguageTypeObjC
Objective-C.
std::shared_ptr< lldb_private::TypeCategoryImpl > TypeCategoryImplSP