Class: TreeHaver::Backends::Java::Tree
- Inherits:
-
Object
- Object
- TreeHaver::Backends::Java::Tree
- Defined in:
- lib/tree_haver/backends/java.rb
Overview
Wrapper for java-tree-sitter Tree
Instance Attribute Summary collapse
-
#impl ⇒ Object
readonly
Returns the value of attribute impl.
Instance Method Summary collapse
-
#edit(start_byte:, old_end_byte:, new_end_byte:, start_point:, old_end_point:, new_end_point:) ⇒ void
Mark the tree as edited for incremental re-parsing.
-
#initialize(impl) ⇒ Tree
constructor
private
A new instance of Tree.
-
#root_node ⇒ Node
Get the root node of the tree.
Constructor Details
#initialize(impl) ⇒ Tree
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Tree.
553 554 555 |
# File 'lib/tree_haver/backends/java.rb', line 553 def initialize(impl) @impl = impl end |
Instance Attribute Details
#impl ⇒ Object (readonly)
Returns the value of attribute impl.
550 551 552 |
# File 'lib/tree_haver/backends/java.rb', line 550 def impl @impl end |
Instance Method Details
#edit(start_byte:, old_end_byte:, new_end_byte:, start_point:, old_end_point:, new_end_point:) ⇒ void
This method returns an undefined value.
Mark the tree as edited for incremental re-parsing
583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 |
# File 'lib/tree_haver/backends/java.rb', line 583 def edit(start_byte:, old_end_byte:, new_end_byte:, start_point:, old_end_point:, new_end_point:) point_class = Java.java_classes[:Point] input_edit_class = Java.java_classes[:InputEdit] start_pt = point_class.new(start_point[:row], start_point[:column]) old_end_pt = point_class.new(old_end_point[:row], old_end_point[:column]) new_end_pt = point_class.new(new_end_point[:row], new_end_point[:column]) input_edit = input_edit_class.new( start_byte, old_end_byte, new_end_byte, start_pt, old_end_pt, new_end_pt, ) @impl.edit(input_edit) end |
#root_node ⇒ Node
Get the root node of the tree
561 562 563 564 565 566 567 568 569 570 571 572 |
# File 'lib/tree_haver/backends/java.rb', line 561 def root_node result = @impl.rootNode # jtreesitter 0.26.0: rootNode() may return Optional<Node> or Node directly java_node = if result.respond_to?(:isPresent) raise TreeHaver::Error, "Tree has no root node" unless result.isPresent result.get else result end raise TreeHaver::Error, "Tree has no root node" unless java_node Node.new(java_node) end |