module Markly
module Merge
VERSION: String
# Base error class for Markly::Merge
class Error < Markdown::Merge::Error
end
# Raised when a Markdown file has parsing errors
class ParseError < Markdown::Merge::ParseError
def initialize: (?String? message, ?content: String?, ?errors: Array[untyped]) -> void
end
# Raised when the template file has syntax errors
class TemplateParseError < ParseError
end
# Raised when the destination file has syntax errors
class DestinationParseError < ParseError
end
# Re-exported shared classes from markdown-merge
FileAligner: singleton(Markdown::Merge::FileAligner)
ConflictResolver: singleton(Markdown::Merge::ConflictResolver)
MergeResult: singleton(Markdown::Merge::MergeResult)
TableMatchAlgorithm: singleton(Markdown::Merge::TableMatchAlgorithm)
TableMatchRefiner: singleton(Markdown::Merge::TableMatchRefiner)
CodeBlockMerger: singleton(Markdown::Merge::CodeBlockMerger)
# Debug logging utility for Markly::Merge
module DebugLogger
extend Ast::Merge::DebugLogger
def self.env_var_name: () -> String
def self.env_var_name=: (String name) -> String
def self.log_prefix: () -> String
def self.log_prefix=: (String prefix) -> String
def self.enabled?: () -> bool
def self.debug: (*untyped args) -> void
def self.info: (*untyped args) -> void
def self.warning: (*untyped args) -> void
def self.time: [T] (String label) { () -> T } -> T
def self.log_node: (untyped node, ?label: String) -> void
end
# Represents a frozen block of Markdown content
class FreezeNode < Ast::Merge::FreezeNodeBase
def initialize: (
start_line: Integer,
end_line: Integer,
content: String,
start_marker: String,
end_marker: String,
?nodes: Array[untyped],
?reason: String?
) -> void
def signature: () -> Array[Symbol | String]
def full_text: () -> String
def line_count: () -> Integer
def contains_type?: (Symbol type_symbol) -> bool
def inspect: () -> String
end
# File analysis for Markdown files using Markly
class FileAnalysis < Markdown::Merge::FileAnalysisBase
DEFAULT_FREEZE_TOKEN: String
def initialize: (
String source,
?freeze_token: String,
?signature_generator: (^(untyped) -> (Array[untyped] | untyped | nil))?,
?flags: Integer,
?extensions: Array[Symbol]
) -> void
def parse_document: (String source) -> untyped
def next_sibling: (untyped node) -> untyped?
def freeze_node_class: () -> Class
def parser_node?: (untyped value) -> bool
def fallthrough_node?: (untyped value) -> bool
def compute_parser_signature: (untyped node) -> Array[untyped]?
end
# Orchestrates the smart merge process for Markdown files using Markly
class SmartMerger < Markdown::Merge::SmartMergerBase
def initialize: (
String template_content,
String dest_content,
?signature_generator: (^(untyped) -> (Array[untyped] | untyped | nil))?,
?preference: Symbol,
?add_template_only_nodes: bool,
?inner_merge_code_blocks: (bool | Markdown::Merge::CodeBlockMerger),
?freeze_token: String,
?match_refiner: (^(Array[untyped], Array[untyped], Hash[Symbol, untyped]) -> Array[Markdown::Merge::MatchResult])?,
?flags: Integer,
?extensions: Array[Symbol]
) -> void
def create_file_analysis: (String content, **untyped options) -> FileAnalysis
def node_to_source: (untyped node, FileAnalysis analysis) -> String
def template_parse_error_class: () -> Class
def destination_parse_error_class: () -> Class
end end end