LLDB mainline
lldb_private::TreeSitterHighlighter Class Referenceabstract

#include <TreeSitterHighlighter.h>

Inheritance diagram for lldb_private::TreeSitterHighlighter:
[legend]

Classes

struct  HLRange
struct  TSState

Public Member Functions

 TreeSitterHighlighter ()=default
 ~TreeSitterHighlighter () override=default
void Highlight (const HighlightStyle &options, llvm::StringRef line, std::optional< size_t > cursor_pos, llvm::StringRef previous_lines, Stream &s) const override
 Highlights a single line of code using tree-sitter parsing.
Public Member Functions inherited from lldb_private::Highlighter
 Highlighter ()=default
virtual ~Highlighter ()=default
 Highlighter (const Highlighter &)=delete
const Highlighteroperator= (const Highlighter &)=delete
virtual llvm::StringRef GetName () const =0
 Returns a human readable name for the selected highlighter.
std::string Highlight (const HighlightStyle &options, llvm::StringRef line, std::optional< size_t > cursor_pos, llvm::StringRef previous_lines="") const
 Utility method for calling Highlight without a stream.
Public Member Functions inherited from lldb_private::PluginInterface
 PluginInterface ()=default
virtual ~PluginInterface ()=default
virtual llvm::StringRef GetPluginName ()=0
 PluginInterface (const PluginInterface &)=delete
PluginInterfaceoperator= (const PluginInterface &)=delete

Protected Member Functions

virtual const TSLanguage * GetLanguage () const =0
 Returns the tree-sitter language for this highlighter.
virtual llvm::StringRef GetHighlightQuery () const =0
 Returns the tree-sitter highlight query for this language.

Private Member Functions

HighlightStyle::ColorStyle GetStyleForCapture (llvm::StringRef capture_name, const HighlightStyle &options) const
 Maps a tree-sitter capture name to a HighlightStyle color.
void HighlightRange (const HighlightStyle &options, llvm::StringRef text, uint32_t start_byte, uint32_t end_byte, const HighlightStyle::ColorStyle &style, std::optional< size_t > cursor_pos, bool &highlighted_cursor, Stream &s) const
 Applies syntax highlighting to a range of text.
TSStateGetTSState () const
 Lazily creates a tree-sitter state (TSState).

Private Attributes

std::optional< TSStatem_ts_state

Detailed Description

Definition at line 23 of file TreeSitterHighlighter.h.

Constructor & Destructor Documentation

◆ TreeSitterHighlighter()

lldb_private::TreeSitterHighlighter::TreeSitterHighlighter ( )
default

◆ ~TreeSitterHighlighter()

lldb_private::TreeSitterHighlighter::~TreeSitterHighlighter ( )
overridedefault

Member Function Documentation

◆ GetHighlightQuery()

virtual llvm::StringRef lldb_private::TreeSitterHighlighter::GetHighlightQuery ( ) const
protectedpure virtual

Returns the tree-sitter highlight query for this language.

Implemented in lldb_private::RustTreeSitterHighlighter, and lldb_private::SwiftTreeSitterHighlighter.

Referenced by GetTSState().

◆ GetLanguage()

virtual const TSLanguage * lldb_private::TreeSitterHighlighter::GetLanguage ( ) const
protectedpure virtual

Returns the tree-sitter language for this highlighter.

Implemented in lldb_private::RustTreeSitterHighlighter, and lldb_private::SwiftTreeSitterHighlighter.

Referenced by GetTSState().

◆ GetStyleForCapture()

◆ GetTSState()

TreeSitterHighlighter::TSState & TreeSitterHighlighter::GetTSState ( ) const
private

◆ Highlight()

void TreeSitterHighlighter::Highlight ( const HighlightStyle & options,
llvm::StringRef line,
std::optional< size_t > cursor_pos,
llvm::StringRef previous_lines,
Stream & s ) const
overridevirtual

◆ HighlightRange()

void TreeSitterHighlighter::HighlightRange ( const HighlightStyle & options,
llvm::StringRef text,
uint32_t start_byte,
uint32_t end_byte,
const HighlightStyle::ColorStyle & style,
std::optional< size_t > cursor_pos,
bool & highlighted_cursor,
Stream & s ) const
private

Applies syntax highlighting to a range of text.

Definition at line 90 of file TreeSitterHighlighter.cpp.

References lldb_private::HighlightStyle::ColorStyle::Apply(), lldb_private::StreamString::GetString(), and lldb_private::HighlightStyle::selected.

Referenced by Highlight().

Member Data Documentation

◆ m_ts_state

std::optional<TSState> lldb_private::TreeSitterHighlighter::m_ts_state
mutableprivate

Definition at line 72 of file TreeSitterHighlighter.h.

Referenced by GetTSState().


The documentation for this class was generated from the following files: