def _choose_action(denite: Default, params: Params) -> typing.Any: candidates = denite._get_selected_candidates() if not candidates or not denite._denite: return action_names = denite._denite.get_action_names(denite._context, candidates) denite._vim.vars['denite#_actions'] = action_names clear_cmdline(denite._vim) action = input(denite._vim, denite._context, 'Action: ', '', 'customlist,denite#helper#complete_actions') if action == '': return return denite.do_action(action, is_manual=True)
def _do_previous_action(denite: Default, params: Params) -> typing.Any: return denite.do_action(denite._prev_action, is_manual=True)
def _do_action(denite: Default, params: Params) -> typing.Any: name = params[0] if params else 'default' return denite.do_action(name, is_manual=True)
def _auto_action(denite: Default, params: Params) -> typing.Any: if not denite._context['auto_action']: return return denite.do_action(denite._context['auto_action'])
def _quick_move(denite: Default, params: Params) -> typing.Any: vim = denite._vim context = denite._context def get_quick_move_table() -> typing.Dict[str, int]: table = {} base = vim.call('line', '.') for [key, number] in context['quick_move_table'].items(): number = int(number) pos = ((base - number) if context['reversed'] else (number + base)) if pos > 0: table[key] = pos return table def quick_move_redraw(table: typing.Dict[str, int], is_define: bool) -> None: bufnr = vim.current.buffer.number for [key, number] in table.items(): signid = 2000 + number name = 'denite_quick_move_' + str(number) if is_define: if vim.call('exists', '*sign_define'): vim.call('sign_define', name, { 'text': key, 'texthl': 'Special' }) vim.call('sign_place', signid, '', name, bufnr, {'lnum': number}) else: vim.command( f'sign define {name} text={key} texthl=Special') vim.command(f'sign place {signid} name={name} ' f'line={number} buffer={bufnr}') else: if vim.call('exists', '*sign_define'): vim.call('sign_unplace', '', { 'id': signid, 'buffer': bufnr }) vim.call('sign_undefine', name) else: vim.command( f'silent! sign unplace {signid} buffer={bufnr}') vim.command('silent! sign undefine ' + name) quick_move_table = get_quick_move_table() vim.command('echo "Input quick match key: "') quick_move_redraw(quick_move_table, True) vim.command('redraw') char = '' while char == '': char = vim.call('nr2char', vim.call('denite#util#getchar')) quick_move_redraw(quick_move_table, False) if char not in quick_move_table: return denite._move_to_pos(int(quick_move_table[char])) if context['quick_move'] == 'immediately': if context['sources_queue']: context['sources_queue'].pop(0) denite.do_action('default', is_manual=True) return True