def _new_file(view: View, defx: Defx, context: Context) -> None: """ Create a new file and it's parent directories. """ candidate = view.get_cursor_candidate(context.cursor) if not candidate: return if candidate['is_opened_tree'] or candidate['is_root']: cwd = str(candidate['action__path']) else: cwd = str(Path(candidate['action__path']).parent) new_filename = cwd_input( view._vim, cwd, 'Please input a new filename: ', '', 'file') if not new_filename: return isdir = new_filename[-1] == '/' filename = Path(cwd).joinpath(new_filename) if not filename: return if filename.exists(): error(view._vim, f'{filename} already exists') return if isdir: filename.mkdir(parents=True) else: filename.parent.mkdir(parents=True, exist_ok=True) filename.touch() view.redraw(True) view.search_recursive(filename, defx._index)
def _rename(view: View, defx: Defx, context: Context) -> None: """ Rename the file or directory. """ if len(context.targets) > 1: # ex rename view._vim.call('defx#exrename#create_buffer', [{'action__path': str(x['action__path'])} for x in context.targets], {'buffer_name': 'defx'}) return for target in context.targets: old = target['action__path'] new_filename = cwd_input( view._vim, defx._cwd, f'Old name: {old}\nNew name: ', str(old), 'file') view._vim.command('redraw') if not new_filename: return new = Path(defx._cwd).joinpath(new_filename) if not new or new == old: continue if str(new).lower() != str(old).lower() and new.exists(): error(view._vim, f'{new} already exists') continue old.rename(new) view.redraw(True) view.search_file(new, defx._index)
def input(self, view: View, defx: Defx, cwd: str, prompt: str, text: str, completion: str) -> str: if defx._source.name == 'file': res = cwd_input(view._vim, cwd, prompt, text, completion) else: res = str( view._vim.call('defx#util#input', prompt, text, completion)) return res
def _new_directory(view: View, defx: Defx, context: Context) -> None: """ Create a new directory. """ filename = cwd_input(view._vim, defx._cwd, 'Please input a new directory: ', '', 'dir') if os.path.exists(filename): error(view._vim, '{} is already exists'.format(filename)) return os.mkdir(filename) view.redraw(True) view.search_file(filename, defx._index)
def _new_directory(view: View, defx: Defx, context: Context) -> None: """ Create a new directory. """ filename = cwd_input(view._vim, defx._cwd, 'Please input a new directory: ', '', 'dir') if not filename: return if filename.exists(): error(view._vim, f'{filename} already exists') return filename.mkdir(parents=True) view.redraw(True) view.search_file(str(filename), defx._index)
def _rename(view: View, defx: Defx, context: Context) -> None: """ Rename the file or directory. """ for target in context.targets: old = target['action__path'] new = cwd_input(view._vim, defx._cwd, f'New name: {old} -> ', str(old), 'file') if not new or new == old: continue if new.exists(): error(view._vim, f'{new} already exists') continue old.rename(new) view.redraw(True) view.search_file(str(new), defx._index)
def _new_file(view: View, defx: Defx, context: Context) -> None: """ Create a new file and it's parent directories. """ filename = cwd_input(view._vim, defx._cwd, 'Please input a new filename: ', '', 'file') if os.path.exists(filename): error(view._vim, '{} is already exists'.format(filename)) return dirname = os.path.dirname(filename) if not os.path.exists(dirname): os.makedirs(dirname) with open(filename, 'w') as f: f.write('') view.redraw(True) view.search_file(filename, defx._index)
def _new_file(view: View, defx: Defx, context: Context) -> None: """ Create a new file and it's parent directories. """ filename = cwd_input(view._vim, defx._cwd, 'Please input a new filename: ', '', 'file') if not filename: return if filename.exists(): error(view._vim, '{filename} already exists') return if not filename.parent.exists(): filename.parent.mkdir(parents=True) Path(filename).touch() view.redraw(True) view.search_file(str(filename), defx._index)
def _rename(view: View, defx: Defx, context: Context) -> None: """ Rename the file or directory. """ for target in context.targets: path = target['action__path'] filename = cwd_input( view._vim, defx._cwd, ('New name: {} -> '.format(path)), path, 'file') if not filename or filename == path: continue if os.path.exists(filename): error(view._vim, '{} is already exists'.format(filename)) continue os.rename(path, filename) view.redraw(True) view.search_file(filename, defx._index)
def _new_directory(view: View, defx: Defx, context: Context) -> None: """ Create a new directory. """ candidate = view.get_cursor_candidate(context.cursor) if not candidate: return filename = cwd_input(view._vim, str(Path(candidate['action__path']).parent), 'Please input a new filename: ', '', 'file') if not filename: return if filename.exists(): error(view._vim, f'{filename} already exists') return filename.mkdir(parents=True) view.redraw(True) view.search_file(filename, defx._index)
def _rename(view: View, defx: Defx, context: Context) -> None: """ Rename the file or directory. """ if len(context.targets) > 1: # ex rename view._vim.call('defx#exrename#create_buffer', [{ 'action__path': str(x['action__path']) } for x in context.targets], {'buffer_name': 'defx'}) return for target in context.targets: old = target['action__path'] new_filename = cwd_input(view._vim, defx._cwd, f'Old name: {old}\nNew name: ', str(old), 'file') view._vim.command('redraw') if not new_filename: return new = Path(defx._cwd).joinpath(new_filename) if not new or new == old: continue if str(new).lower() != str(old).lower() and new.exists(): error(view._vim, f'{new} already exists') continue if not new.parent.exists(): new.parent.mkdir(parents=True) old.rename(new) # Check rename # The old is directory, the path may be matched opened file if not new.is_dir(): view._vim.call('defx#util#buffer_rename', view._vim.call('bufnr', str(old)), str(new)) view.redraw(True) view.search_recursive(new, defx._index)