Method: Tree.to_root

Defined in:
lib/xiki/tree.rb

.to_root(options = {}) ⇒ Object

Moves cursor to root of tree.

Tree.to_root # To last @.. line Tree.to_root :highest=>1 # All the way to highest root (left margin)



798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
# File 'lib/xiki/tree.rb', line 798

def self.to_root options={}

  Move.to_end   # In case already at left of line and root

  # Always go up at least once
  Tree.to_parent

  # Until we're at the root, keep jumping to parent
  line = Line.value

  if options[:highest]
    while(line =~ /^\s/) do
      Tree.to_parent
      line = Line.value
    end
    return
  end

  while(line =~ /^\s/ && line !~ /^ *([+-] )?@/) do
    Tree.to_parent
    line = Line.value
  end

  nil
end