Module: Ibex::Runtime::CST::Diff

Defined in:
lib/ibex/runtime/cst/diff.rb,
sig/ibex/runtime/cst/diff.rbs

Overview

Computes byte edits while skipping physically shared Green subtrees.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.text_edits(old_root, new_root) ⇒ Object

RBS:

  • (SyntaxNode old_root, SyntaxNode new_root) -> Array[TextEdit]



12
13
14
15
16
# File 'lib/ibex/runtime/cst/diff.rb', line 12

def text_edits(old_root, new_root)
  edits = [] #: Array[TextEdit]
  compare(old_root.green, new_root.green, 0, edits)
  edits.freeze
end

Instance Method Details

#self?.append_trimmed_editvoid

This method returns an undefined value.

RBS:

  • (String old_text, String new_text, Integer offset, Array[TextEdit] edits) -> void

Parameters:

  • old_text (String)
  • new_text (String)
  • offset (Integer)
  • edits (Array[TextEdit])


19
# File 'sig/ibex/runtime/cst/diff.rbs', line 19

def self?.append_trimmed_edit: (String old_text, String new_text, Integer offset, Array[TextEdit] edits) -> void

#self?.common_prefixInteger

RBS:

  • (String left, String right) -> Integer

Parameters:

  • left (String)
  • right (String)

Returns:

  • (Integer)


22
# File 'sig/ibex/runtime/cst/diff.rbs', line 22

def self?.common_prefix: (String left, String right) -> Integer

#self?.common_suffixInteger

RBS:

  • (String left, String right, Integer prefix) -> Integer

Parameters:

  • left (String)
  • right (String)
  • prefix (Integer)

Returns:

  • (Integer)


25
# File 'sig/ibex/runtime/cst/diff.rbs', line 25

def self?.common_suffix: (String left, String right, Integer prefix) -> Integer

#self?.comparevoid

This method returns an undefined value.

RBS:

  • (GreenNode | GreenToken old_green, GreenNode | GreenToken new_green, Integer offset, Array[TextEdit] edits) -> void

Parameters:



13
# File 'sig/ibex/runtime/cst/diff.rbs', line 13

def self?.compare: (GreenNode | GreenToken old_green, GreenNode | GreenToken new_green, Integer offset, Array[TextEdit] edits) -> void

#self?.compatible_nodes?Boolean

RBS:

  • (GreenNode | GreenToken left, GreenNode | GreenToken right) -> bool

Parameters:

Returns:

  • (Boolean)


16
# File 'sig/ibex/runtime/cst/diff.rbs', line 16

def self?.compatible_nodes?: (GreenNode | GreenToken left, GreenNode | GreenToken right) -> bool

#self?.text_editsArray[TextEdit]

RBS:

  • (SyntaxNode old_root, SyntaxNode new_root) -> Array[TextEdit]

Parameters:

Returns:



9
# File 'sig/ibex/runtime/cst/diff.rbs', line 9

def self?.text_edits: (SyntaxNode old_root, SyntaxNode new_root) -> Array[TextEdit]