Skip to content

Commit

Permalink
Merge pull request #2 from jtanner/master
Browse files Browse the repository at this point in the history
A couple of fixes so jumping from the end and middle of a line works
  • Loading branch information
mwean committed Nov 24, 2013
2 parents 615fd3b + 00181f5 commit dbcaf19
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
2 changes: 1 addition & 1 deletion file_scanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def __init__(self, view):

def scan(self, direction = 'forward'):
if direction == 'forward':
indent_match = self.search(self.search_str(), self.next_point())
indent_match = self.search(self.search_str(), self.next_point()) or 0
block_match = self.find_last_line_of_block()
return max([indent_match, block_match])
else:
Expand Down
22 changes: 12 additions & 10 deletions jump_along_indent.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,15 @@ def select_downward(self):
build_selection(self.view, new_region, target)

def deselect_downward(self):
matched_point = self.scanner.scan()
target = self.target_point(matched_point)
matched_row = self.scanner.scan()
target = self.target_point(matched_row)
new_region = sublime.Region(self.view_helper.initial_selection().end(), target)
build_selection(self.view, new_region, target)

def target_point(self, matched_point = None):
matched_point = matched_point or self.scanner.scan()
return self.view.text_point(matched_point, self.view_helper.target_column(matched_point))
def target_point(self, matched_row = None):
matched_row = matched_row or self.scanner.scan()
matched_point_bol = self.view.text_point(matched_row, 0)
return self.view.text_point(matched_row, self.view_helper.target_column(matched_point_bol))

class JumpPrevIndentCommand(sublime_plugin.TextCommand):
def run(self, edit, extend_selection = False):
Expand All @@ -69,11 +70,12 @@ def select_upward(self):
build_selection(self.view, new_region, target)

def deselect_upward(self):
matched_point = self.scanner.scan('backward')
target = self.target_point(matched_point)
matched_row = self.scanner.scan('backward')
target = self.target_point(matched_row)
new_region = sublime.Region(self.view_helper.initial_selection().begin(), target)
build_selection(self.view, new_region, target)

def target_point(self, matched_point = None):
matched_point = matched_point or self.scanner.scan(direction = 'backward')
return self.view.text_point(matched_point, self.view_helper.target_column(matched_point))
def target_point(self, matched_row = None):
matched_row = matched_row or self.scanner.scan(direction = 'backward')
matched_point_bol = self.view.text_point(matched_row, 0)
return self.view.text_point(matched_row, self.view_helper.target_column(matched_point_bol))
2 changes: 1 addition & 1 deletion view_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def cursor_at_bottom_of_selection(self):
return self.initial_selection().b > self.initial_selection().a

def target_column(self, target):
end_of_line = self.find_eol(target)
end_of_line = self.view.rowcol(self.find_eol(target))[1]

if self.initial_column() > end_of_line:
return end_of_line
Expand Down

0 comments on commit dbcaf19

Please sign in to comment.