Class: TreeHaver::Backends::Markly::Language
- Inherits:
-
Object
- Object
- TreeHaver::Backends::Markly::Language
- Includes:
- Comparable
- Defined in:
- lib/tree_haver/backends/markly.rb
Overview
Markly language wrapper
Markly only parses Markdown. This class exists for API compatibility and to pass through Markly-specific options (flags, extensions).
Instance Attribute Summary collapse
-
#backend ⇒ Symbol
readonly
The backend this language is for.
-
#extensions ⇒ Array<Symbol>
readonly
Markly extensions to enable.
-
#flags ⇒ Integer
readonly
Markly parse flags.
-
#name ⇒ Symbol
readonly
The language name (always :markdown for Markly).
Class Method Summary collapse
-
.from_library(_path = nil, symbol: nil, name: nil) ⇒ Language
Load language from library path (API compatibility).
-
.markdown(flags: nil, extensions: [:table]) ⇒ Language
Create a Markdown language instance.
Instance Method Summary collapse
-
#<=>(other) ⇒ Object
Comparison for sorting/equality.
-
#initialize(name = :markdown, flags: nil, extensions: [:table]) ⇒ Language
constructor
Create a new Markly language instance.
- #inspect ⇒ Object
Constructor Details
#initialize(name = :markdown, flags: nil, extensions: [:table]) ⇒ Language
Create a new Markly language instance
104 105 106 107 108 109 |
# File 'lib/tree_haver/backends/markly.rb', line 104 def initialize(name = :markdown, flags: nil, extensions: [:table]) @name = name.to_sym @backend = :markly @flags = flags # Will use Markly::DEFAULT if nil at parse time @extensions = extensions end |
Instance Attribute Details
#backend ⇒ Symbol (readonly)
The backend this language is for
89 90 91 |
# File 'lib/tree_haver/backends/markly.rb', line 89 def backend @backend end |
#extensions ⇒ Array<Symbol> (readonly)
Markly extensions to enable
97 98 99 |
# File 'lib/tree_haver/backends/markly.rb', line 97 def extensions @extensions end |
#flags ⇒ Integer (readonly)
Markly parse flags
93 94 95 |
# File 'lib/tree_haver/backends/markly.rb', line 93 def flags @flags end |
#name ⇒ Symbol (readonly)
The language name (always :markdown for Markly)
85 86 87 |
# File 'lib/tree_haver/backends/markly.rb', line 85 def name @name end |
Class Method Details
.from_library(_path = nil, symbol: nil, name: nil) ⇒ Language
Load language from library path (API compatibility)
Markly only supports Markdown, so path and symbol parameters are ignored. This method exists for API consistency with tree-sitter backends, allowing ‘TreeHaver.parser_for(:markdown)` to work regardless of backend.
132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/tree_haver/backends/markly.rb', line 132 def from_library(_path = nil, symbol: nil, name: nil) # Derive language name from symbol if provided lang_name = name || symbol&.to_s&.sub(/^tree_sitter_/, "")&.to_sym || :markdown unless lang_name == :markdown raise TreeHaver::NotAvailable, "Markly backend only supports Markdown, not #{lang_name}. " \ "Use a tree-sitter backend for #{lang_name} support." end markdown end |
.markdown(flags: nil, extensions: [:table]) ⇒ Language
Create a Markdown language instance
117 118 119 |
# File 'lib/tree_haver/backends/markly.rb', line 117 def markdown(flags: nil, extensions: [:table]) new(:markdown, flags: flags, extensions: extensions) end |
Instance Method Details
#<=>(other) ⇒ Object
Comparison for sorting/equality
147 148 149 150 |
# File 'lib/tree_haver/backends/markly.rb', line 147 def <=>(other) return unless other.is_a?(Language) name <=> other.name end |
#inspect ⇒ Object
152 153 154 |
# File 'lib/tree_haver/backends/markly.rb', line 152 def inspect "#<TreeHaver::Backends::Markly::Language name=#{name} flags=#{flags} extensions=#{extensions}>" end |