Class: Commonmarker::Merge::Backend::Language

Inherits:
TreeHaver::Base::Language
  • Object
show all
Defined in:
lib/commonmarker/merge/backend.rb

Overview

Commonmarker language wrapper

Commonmarker only parses Markdown. This class exists for API compatibility.

Examples:

language = Commonmarker::Merge::Backend::Language.markdown
parser.language = language

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = :markdown, options: {}) ⇒ Language

Create a new Commonmarker language instance

Parameters:

  • name (Symbol) (defaults to: :markdown)

    Language name (should be :markdown)

  • options (Hash) (defaults to: {})

    Commonmarker parse options



79
80
81
# File 'lib/commonmarker/merge/backend.rb', line 79

def initialize(name = :markdown, options: {})
  super(name, backend: :commonmarker, options: options)
end

Class Method Details

.from_library(_path = nil, symbol: nil, name: nil) ⇒ Language

Load language from library path (API compatibility)

Parameters:

  • _path (String) (defaults to: nil)

    Ignored - Commonmarker doesn’t load external grammars

  • symbol (String, nil) (defaults to: nil)

    Ignored

  • name (String, nil) (defaults to: nil)

    Language name hint (defaults to :markdown)

Returns:

Raises:

  • (TreeHaver::NotAvailable)

    if requested language is not Markdown



99
100
101
102
103
104
105
106
107
108
# File 'lib/commonmarker/merge/backend.rb', line 99

def from_library(_path = nil, symbol: nil, name: nil)
  lang_name = name || symbol&.to_s&.sub(/^tree_sitter_/, "")&.to_sym || :markdown

  unless lang_name == :markdown
    raise TreeHaver::NotAvailable,
      "Commonmarker backend only supports Markdown, not #{lang_name}."
  end

  markdown
end

.markdown(options: {}) ⇒ Language

Create a Markdown language instance

Parameters:

  • options (Hash) (defaults to: {})

    Commonmarker parse options

Returns:



88
89
90
# File 'lib/commonmarker/merge/backend.rb', line 88

def markdown(options: {})
  new(:markdown, options: options)
end