def range_select(m): i = -1 if m._words[2] == "to": i = 2 if m._words[3] == "to": i = 3 line_number_1 = parse_words_as_integer(m._words[1:i]) line_number_2 = parse_words_as_integer(m._words[i:]) Str(str(line_number_1))(None)
def select_lines_function(m): divider = 0 for word in m._words: if str(word) == 'until': break divider += 1 line_number_from = int(str(parse_words_as_integer(m._words[2:divider]))) line_number_until = int(str(parse_words_as_integer(m._words[divider + 1:]))) number_of_lines = line_number_until - line_number_from press('cmd-l') Str(str(line_number_from))(None) press('enter') for i in range(0, number_of_lines + 1): press('shift-down')
def repeat(m): repeat_count = parse_words_as_integer(m._words[1:]) if repeat_count != None and repeat_count >= 2: repeater = Rep(repeat_count - 1) repeater.ctx = talon return repeater(None)
def jump_to_line(m): line_number = parse_words_as_integer(m._words[1:]) if line_number == None: return # Zeroth line should go to first line if line_number == 0: line_number = 1 # TODO: Directly interface with VSCode to accomplish the following # Open the jump to line input press('ctrl-g') # TODO: If requesting line that is beyond the end of the focused document, jump to last line instead # Enter whole line number data as if from keyboard Str(str(line_number))(None) # Confirm the navigation press('enter') # Position cursor at the beginning of meaningful text on the current line (Mac OS X) press('cmd-right') press('cmd-left')
def scroll(m): numberOfTimes = parse_words_as_integer(m._words) if numberOfTimes == None: numberOfTimes = 1 for i in range(0, numberOfTimes): ctrl.mouse_scroll(direction * distanceY, direction * distanceX)
def close_tab(m, tab_number=None): if tab_number is None: tab_number = parse_words_as_integer(m._words[2:]) if tab_number != None and tab_number > 0 and tab_number < 10: press('cmd-%s' % tab_number) press('cmd-w')
def repeat(m): repeat_count = parse_words_as_integer(m._words[1:]) print(talon.last) if repeat_count is not None and repeat_count >= 2: repeater = Rep(repeat_count - 1) repeater.ctx = talon return repeater(None)
def jump_tabs(m): line_number = parse_words_as_integer(m._words[1:]) if line_number == None: return for i in range(0, line_number): press('cmd-alt-right')
def jump_to_line(m): line_number = parse_words_as_integer(m._words[1:]) if line_number == None: return # Zeroth line should go to first line if line_number == 0: line_number = 1 press('cmd-l') Str(str(line_number))(None) press('enter')
def scroll(m): total_time = 0.11 interval = 0.007 depth = int(total_time // interval) split = amount / depth numberOfTimes = parse_words_as_integer(m._words) if numberOfTimes == None: numberOfTimes = 1 for i in range(0, numberOfTimes): for x in range(depth): ctrl.mouse_scroll(y=split) time.sleep(interval)
def go_direction(m): direction_type = m._words[0].word if (direction_type == 'left') or (direction_type == 'right'): direction_type = 'alt-' + direction_type line_number = parse_words_as_integer(m._words[1:]) if line_number == None: line_number = 1 for i in range(0, line_number): press(direction_type)
def move_mouse_relative(m): direction_type = m._words[1].word multiplier = 100 pixels_to_travel = parse_words_as_integer(m._words[2:]) * multiplier if pixels_to_travel == None: return direction_vector = { 'up': (0, -1), 'right': (1, 0), 'down': (0, 1), 'left': (-1, 0) }[direction_type] (x, y) = ctrl.mouse_pos() ctrl.mouse_move(x + direction_vector[0] * pixels_to_travel, y + direction_vector[1] * pixels_to_travel)
def fold_level(m): line_number = parse_words_as_integer(m._words) if line_number > 9: return press('cmd-k') press('cmd-' + str(line_number))
def jump_tab(m): tab_number = parse_words_as_integer(m._words[1:]) if tab_number != None and tab_number > 0 and tab_number < 10: command = 'cmd-' + str(tab_number) press(command)
def jump_tab(m): tab_number = parse_words_as_integer(m._words[1:]) if tab_number != None and tab_number > 0 and tab_number < 9: press('cmd-%s' % tab_number)
def del_action(m): line_number = parse_words_as_integer(m._words[1:]) for a in range(0, line_number): press('backspace')