003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/include/lldb/Core
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
include
/
lldb
/
Core
/
📁
..
📄
Address.h
(19.2 KB)
📄
AddressRange.h
(8.4 KB)
📄
AddressResolver.h
(1.9 KB)
📄
AddressResolverFileLine.h
(1.93 KB)
📄
AddressResolverName.h
(2.12 KB)
📄
Architecture.h
(4.65 KB)
📄
Communication.h
(14.32 KB)
📄
Debugger.h
(13.51 KB)
📄
Disassembler.h
(18.46 KB)
📄
DumpDataExtractor.h
(3.58 KB)
📄
DumpRegisterValue.h
(1013 B)
📄
EmulateInstruction.h
(19.35 KB)
📄
FileLineResolver.h
(2.15 KB)
📄
FileSpecList.h
(5.88 KB)
📄
FormatEntity.h
(6.2 KB)
📄
Highlighter.h
(5.49 KB)
📄
IOHandler.h
(16.98 KB)
📄
IOHandlerCursesGUI.h
(928 B)
📄
IOStreamMacros.h
(1.87 KB)
📄
LoadedModuleInfoList.h
(2.86 KB)
📄
Mangled.h
(9.11 KB)
📄
MappedHash.h
(11.58 KB)
📄
Module.h
(42.01 KB)
📄
ModuleChild.h
(1.73 KB)
📄
ModuleList.h
(17.43 KB)
📄
ModuleSpec.h
(11.82 KB)
📄
Opcode.h
(6.75 KB)
📄
PluginInterface.h
(724 B)
📄
PluginManager.h
(17.12 KB)
📄
PropertiesBase.td
(1.3 KB)
📄
RichManglingContext.h
(3.78 KB)
📄
SearchFilter.h
(14.2 KB)
📄
Section.h
(9.83 KB)
📄
SourceManager.h
(5.59 KB)
📄
StreamAsynchronousIO.h
(973 B)
📄
StreamBuffer.h
(1.66 KB)
📄
StreamFile.h
(1.59 KB)
📄
StructuredDataImpl.h
(4.28 KB)
📄
ThreadSafeDenseMap.h
(1.59 KB)
📄
ThreadSafeDenseSet.h
(1.31 KB)
📄
ThreadSafeValue.h
(1.62 KB)
📄
UniqueCStringMap.h
(7.76 KB)
📄
UserSettingsController.h
(3.21 KB)
📄
Value.h
(6.99 KB)
📄
ValueObject.h
(36.66 KB)
📄
ValueObjectCast.h
(1.84 KB)
📄
ValueObjectChild.h
(2.82 KB)
📄
ValueObjectConstResult.h
(5.79 KB)
📄
ValueObjectConstResultCast.h
(2.26 KB)
📄
ValueObjectConstResultChild.h
(2.75 KB)
📄
ValueObjectConstResultImpl.h
(2.66 KB)
📄
ValueObjectDynamicValue.h
(3.72 KB)
📄
ValueObjectList.h
(1.69 KB)
📄
ValueObjectMemory.h
(2.59 KB)
📄
ValueObjectRegister.h
(4.09 KB)
📄
ValueObjectSyntheticFilter.h
(5.05 KB)
📄
ValueObjectVariable.h
(2.64 KB)
📄
dwarf.h
(3.19 KB)
Editing: Highlighter.h
//===-- Highlighter.h -------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_CORE_HIGHLIGHTER_H #define LLDB_CORE_HIGHLIGHTER_H #include <utility> #include <vector> #include "lldb/Utility/Stream.h" #include "lldb/lldb-enumerations.h" #include "llvm/ADT/StringRef.h" namespace lldb_private { /// Represents style that the highlighter should apply to the given source code. /// Stores information about how every kind of token should be annotated. struct HighlightStyle { /// A pair of strings that should be placed around a certain token. Usually /// stores color codes in these strings (the suffix string is often used for /// resetting the terminal attributes back to normal). class ColorStyle { std::string m_prefix; std::string m_suffix; public: ColorStyle() = default; ColorStyle(llvm::StringRef prefix, llvm::StringRef suffix) { Set(prefix, suffix); } /// Applies this style to the given value. /// \param s /// The stream to which the result should be appended. /// \param value /// The value that we should place our strings around. void Apply(Stream &s, llvm::StringRef value) const; /// Sets the prefix and suffix strings. void Set(llvm::StringRef prefix, llvm::StringRef suffix); }; /// The style for the token which is below the cursor of the user. Note that /// this style is overwritten by the SourceManager with the values of /// stop-show-column-ansi-prefix/stop-show-column-ansi-suffix. ColorStyle selected; /// Matches identifiers to variable or functions. ColorStyle identifier; /// Matches any string or character literals in the language: "foo" or 'f' ColorStyle string_literal; /// Matches scalar value literals like '42' or '0.1'. ColorStyle scalar_literal; /// Matches all reserved keywords in the language. ColorStyle keyword; /// Matches any comments in the language. ColorStyle comment; /// Matches commas: ',' ColorStyle comma; /// Matches one colon: ':' ColorStyle colon; /// Matches any semicolon: ';' ColorStyle semicolons; /// Matches operators like '+', '-', '%', '&', '=' ColorStyle operators; /// Matches '{' or '}' ColorStyle braces; /// Matches '[' or ']' ColorStyle square_brackets; /// Matches '(' or ')' ColorStyle parentheses; // C language specific options /// Matches directives to a preprocessor (if the language has any). ColorStyle pp_directive; /// Returns a HighlightStyle that is based on vim's default highlight style. static HighlightStyle MakeVimStyle(); }; /// Annotates source code with color attributes. class Highlighter { public: Highlighter() = default; virtual ~Highlighter() = default; Highlighter(const Highlighter &) = delete; const Highlighter &operator=(const Highlighter &) = delete; /// Returns a human readable name for the selected highlighter. virtual llvm::StringRef GetName() const = 0; /// Highlights the given line /// \param options /// The highlight options. /// \param line /// The user supplied line that needs to be highlighted. /// \param cursor_pos /// The cursor position of the user in this line, starting at 0 (which /// means the cursor is on the first character in 'line'). /// \param previous_lines /// Any previous lines the user has written which we should only use /// for getting the context of the Highlighting right. /// \param s /// The stream to which the highlighted version of the user string should /// be written. virtual void Highlight(const HighlightStyle &options, llvm::StringRef line, llvm::Optional<size_t> cursor_pos, llvm::StringRef previous_lines, Stream &s) const = 0; /// Utility method for calling Highlight without a stream. std::string Highlight(const HighlightStyle &options, llvm::StringRef line, llvm::Optional<size_t> cursor_pos, llvm::StringRef previous_lines = "") const; }; /// A default highlighter that only highlights the user cursor, but doesn't /// do any other highlighting. class DefaultHighlighter : public Highlighter { public: llvm::StringRef GetName() const override { return "none"; } void Highlight(const HighlightStyle &options, llvm::StringRef line, llvm::Optional<size_t> cursor_pos, llvm::StringRef previous_lines, Stream &s) const override; }; /// Manages the available highlighters. class HighlighterManager { DefaultHighlighter m_default; public: /// Queries all known highlighter for one that can highlight some source code. /// \param language_type /// The language type that the caller thinks the source code was given in. /// \param path /// The path to the file the source code is from. Used as a fallback when /// the user can't provide a language. /// \return /// The highlighter that wants to highlight the source code. Could be an /// empty highlighter that does nothing. const Highlighter &getHighlighterFor(lldb::LanguageType language_type, llvm::StringRef path) const; const Highlighter &getDefaultHighlighter() const { return m_default; } }; } // namespace lldb_private #endif // LLDB_CORE_HIGHLIGHTER_H
Upload File
Create Folder