def command__paste(manager): if not manager._copy_mode: return fullpath = manager._copy_file basename = os.path.basename(fullpath) cwd = manager._getExplorer().cwd to_path = os.path.join(cwd, basename) if os.path.exists(to_path): name, ext = os.path.splitext(basename) to_path = os.path.join(cwd, "{}_copy{}".format(name, ext)) # *_copy があったら、だめ if os.path.exists(to_path): echo_error(" Already exists. '{}'".format(to_path.replace("\\", "/"))) manager._refresh() return if os.path.isdir(fullpath): # shutil.copytree(src, dst) shutil.copytree(fullpath, to_path) else: shutil.copy2(fullpath, to_path) manager._refresh() manager._move_cursor_if_fullpath_match(to_path) lfCmd("redraw | echon ' Pasted.'")
def _restore_context(manager, restore_input_pattern=True, restore_cursor_pos=True): """ For input_prompt params: restore_input_pattern: The following attributes of the `cli` will not be restored * _cmdline * _cursor_pos * _pattern restore_cursor_pos: cursor position """ global _context manager._search = _context["search_func"] manager._instance._cli._additional_prompt_string = _context[ "additional_prompt_string"] manager._instance._cli._key_dict = _context["cli_key_dict"] if restore_cursor_pos: # To restore only in case of cancel [row, col] = _context["cursor_pos"] lfCmd("""call win_execute({}, 'exec "norm! {}G"')""".format( manager._instance._popup_winid, row)) manager._getInstance().refreshPopupStatusline() if restore_input_pattern: # To restore only in case of cancel manager._instance._cli._cmdline = _context["cli_cmdline"] manager._instance._cli._cursor_pos = _context["cli_cursor_pos"] manager._instance._cli._pattern = _context["cli_pattern"] _context = {}
def command__open_current(manager): if manager._cli.pattern == "..": _open_parent(manager) return line = manager._getInstance().currentLine if line == NO_CONTENT_MSG: return if line == "": return file_info = manager._getExplorer()._contents[line] if not file_info["isdir"]: manager.accept() return True if not accessable(file_info["fullpath"]): echo_error("Permission denied `{}`".format(file_info["fullpath"])) return if manager._getInstance().isReverseOrder(): lfCmd("normal! G") else: manager._gotoFirstLine() manager._chcwd(os.path.abspath(file_info["fullpath"])) manager._history.add(manager._getExplorer().cwd)
def command__remove_trash_force(manager): """ remove_trash_force """ path_list = get_path_list(manager) if NO_CONTENT_MSG in path_list: return _remove_trash(manager, path_list) lfCmd("redraw") return
def command___do_add_dir(manager, context, results): path = results[0] name = results[1] if len(name.strip()) == 0 or len(path.strip()) == 0: echo_cancel() return if name in lfEval("leaderf#Bookmark#load_bookmaks()"): echo_error("Already exists in bookmark '{}'".format(name)) return lfCmd('call leaderf#Bookmark#_add("{}", "{}")'.format(name, path))
def command__copy(manager): if len(manager._selections) > 0: echo_error(" Copy does not support multiple files.") return line = manager._getInstance().currentLine if invalid_line(line): return manager._copy_file = manager._getExplorer()._contents[line]["fullpath"] manager._copy_mode = True lfCmd("redraw | echon ' Copied.'") # Updat estatus line manager._getExplorer().setCommandMode("COPY") manager._redrawStlCwd()
def command___do_edit(manager, context, results): new_path = results[0] new_name = results[1] if len(new_name.strip()) == 0 or len(new_path.strip()) == 0: echo_cancel() return if context.get("old_name") != new_name and new_name in lfEval( "leaderf#Bookmark#load_bookmaks()"): echo_error("Already exists in bookmark '{}'".format(new_name)) return lfCmd('call leaderf#Bookmark#_edit("{}", "{}", "{}")'.format( context["old_name"], new_name, new_path))
def command__open_parent_or_backspace(manager): if len(manager._getInstance()._cli._cmdline) > 0: # like <BS> in cli#input() manager._cli._backspace() manager._cli._buildPattern() # like <Shorten> in manager#input() cur_len = len(manager._content) cur_content = manager._content[:cur_len] manager._index = 0 manager._search(cur_content) if manager._getInstance().isReverseOrder(): lfCmd("normal! G") else: manager._gotoFirstLine() return manager._history.add(manager._getExplorer().cwd) _open_parent(manager)
def echo_cancel(): lfCmd("redraw | echon ' Canceled.'")
def _switch_normal_mode(manager): lfCmd(r'call feedkeys("{}", "n")'.format( _get_switch_normal_mode_key(manager)))
def command__change_directory(manager): cd(manager._getExplorer().cwd) lfCmd("redraw | echon ' cd {}'".format(manager._getExplorer().cwd))
def command__down(manager): lfCmd("normal! j") manager._previewResult(False)
def command__up(manager): lfCmd("normal! k") manager._previewResult(False)
def echo_cancel(): lfCmd("echon ' Canceled.'")
def echo_error(msg): lfCmd( "echohl ErrorMsg | redraw | echon ' [LeaderF] {}' | echohl NONE".format( escQuote(msg) ) )
def cd(path): # XXX: from defx.nvim if lfEval("exists('*chdir')") == "1": lfCmd("call chdir('%s')" % path) else: lfCmd("silent execute (haslocaldir() ? 'lcd' : 'cd') '%s'" % path)
def command___do_delete(manager, context, results): if not yes(results[0]): command___input_cancel(manager) return lfCmd("call leaderf#Bookmark#_delete('{}')".format(context["name"]))