def METHOD_NAME(self) -> None:
    start, end = self.get_visible_part()
    start_row, start_col = map(int, start.split("."))
    end_row, end_col = map(int, end.split("."))
    start_point = (start_row - 1, start_col)
    end_point = (end_row - 1, end_col)
    self.delete_tags(start, end)
    for node, tag in self._get_nodes_and_tags(self._tree.walk(), start_point, end_point):
        start_row, start_col = node.start_point
        end_row, end_col = node.end_point
        start = f"{start_row+1}.{start_col}"
        end = f"{end_row+1}.{end_col}"
        if tag == "recurse":
            self.delete_tags(start, end)
        else:
            self.textwidget.tag_add(tag, start, end)