Example #1
0
def mark2(hole):
    if isinstance(hole, dot):
        return dotmarker(hole, True)
    if isinstance(hole, star):
        return starmarker(hole, hole.last, hole.first)
    if isinstance(hole, holepartial):
        return starmarker(hole.hole, hole.stop, hole.start)
Example #2
0
def mark0(hole):
    if isinstance(hole, dot):
        return dotmarker(hole, False)
    if isinstance(hole, star):
        return starmarker(hole, 0, 0)
    if isinstance(hole, holepartial):
        return starmarker(hole.hole, hole.start, hole.start)
Example #3
0
def mark1(hole):
    if isinstance(hole, dot):
        return dotmarker(hole, True)
    if isinstance(hole, star):
        cursor = hole.last
        return starmarker(hole, cursor, cursor)
    if isinstance(hole, holepartial):
        return starmarker(hole.hole, hole.stop, hole.stop)
Example #4
0
 def expand(self):
     marker = self.marker
     if marker.dot or (marker.start == marker.hole.first and marker.stop == marker.hole.last):
         self.select_parent()
     else:
         tail_loc = marker.cursor < marker.tail
         tail = (marker.hole.first, marker.hole.last)[tail_loc]
         cursor = (marker.hole.first, marker.hole.last)[not tail_loc]
         self.marker = starmarker(marker.hole, cursor, tail)
Example #5
0
 def replace(self, data, branch_in=False):
     length = sum(editlength(obj) for obj in data)
     self.buffer.do(self.marker, replace(data))
     if self.marker.dot:
         self.marker = dotmarker(self.marker.hole, visited = not branch_in)
     else:
         cursor = self.marker.start + length * (not branch_in)
         self.marker = starmarker(self.marker.hole, cursor, cursor)
     if branch_in:
         self.walk()
Example #6
0
 def move(self, offset, selection=False, relative=True):
     if not self.marker.dot:
         cursor = clamp(self.marker.hole, relative*self.marker.cursor + offset)
         tail = self.marker.tail if selection else cursor
         self.marker = starmarker(self.marker.hole, cursor, tail)