Type signatures for Commonmarker::Merge::FileAnalysis
#
File analysis for Markdown files using CommonMarker.
Parses Markdown and extracts block elements and freeze blocks.
module Commonmarker
module Merge
class FileAnalysis
# Default freeze token for identifying freeze blocks
DEFAULT_FREEZE_TOKEN: String
# The root document node
attr_reader document: untyped
# Source Markdown content
attr_reader source: String
# Lines of source code
attr_reader lines: Array[String]
# Token used to mark freeze blocks
attr_reader freeze_token: String
# Custom signature generator
attr_reader signature_generator: (^(untyped) -> (Array[untyped] | nil | untyped))?
# All statements (nodes and freeze blocks)
attr_reader statements: Array[untyped]
# Initialize file analysis
def initialize: (
String source,
?freeze_token: String,
?signature_generator: (^(untyped) -> (Array[untyped] | nil | untyped))?,
?options: Hash[Symbol, untyped]
) -> void
# Check if parse was successful
def valid?: () -> bool
# Get freeze blocks
def freeze_blocks: () -> Array[FreezeNode]
# Get a specific line (1-indexed)
def line_at: (Integer line_number) -> String?
# Get a normalized line
def normalized_line: (Integer line_number) -> String?
# Get signature at index
def signature_at: (Integer index) -> Array[untyped]?
# Generate signature for a node
def generate_signature: (untyped node) -> Array[untyped]?
# Compute default signature for a node
def compute_node_signature: (untyped node) -> Array[untyped]?
# Compute signature for CommonMarker node
def compute_commonmarker_signature: (untyped node) -> Array[untyped]?
# Extract all text content from a node
def extract_text_content: (untyped node) -> String
# Get source text for a range of lines
def source_range: (Integer start_line, Integer end_line) -> String
private
# Count children of a node
def count_children: (untyped node) -> Integer
# Get node name
def node_name: (untyped node) -> String?
# Extract all nodes and integrate freeze blocks
def extract_and_integrate_all_nodes: () -> Array[untyped]
# Collect top-level nodes from document
def collect_top_level_nodes: () -> Array[untyped]
# Find freeze markers in source
def find_freeze_markers: () -> Array[Hash[Symbol, untyped]]
# Build freeze blocks from markers
def build_freeze_blocks: (Array[Hash[Symbol, untyped]] markers) -> Array[FreezeNode]
# Create a freeze block from start and end markers
def create_freeze_block: (Hash[Symbol, untyped] start_marker, Hash[Symbol, untyped] end_marker) -> FreezeNode
# Integrate nodes with freeze blocks
def integrate_nodes_with_freeze_blocks: (Array[FreezeNode] freeze_blocks) -> Array[untyped]
end end end