Class: Markdown::Merge::Provider

Inherits:
SourcePreservingProvider show all
Defined in:
lib/markdown/merge.rb,
sig/markdown/merge.rbs

Overview

Default acyclic Markdown workflow provider backed by the language pack.

Constant Summary

Constants inherited from SourcePreservingProvider

SourcePreservingProvider::DEFAULT_PROFILE

Instance Attribute Summary

Attributes inherited from SourcePreservingProvider

#backend, #provider_id

Instance Method Summary collapse

Methods inherited from SourcePreservingProvider

#analyze, #capabilities, #diff2, #family, #merge2, #merge3

Constructor Details

#initializeProvider

rubocop:disable Metrics/MethodLength -- constructor declares the complete provider boundary



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/markdown/merge.rb', line 69

def initialize
  super(
    provider_id: 'ruby.markdown',
    role: :workflow,
    backend: ProviderBackend.new(
      id: :'kreuzberg-language-pack',
      package: PACKAGE_NAME,
      dialects: %i[markdown],
      parser: lambda { |source|
        Markdown::Merge.register_backend!
        TreeHaver.with_backend('kreuzberg-language-pack') { TreeHaver.parser_for(:markdown).parse(source) }
      },
      headings: ProviderBackend.method(:tree_sitter_headings)
    )
  )
end