Example #1
0
 def __init__(self, vim: Nvim, index: int) -> None:
     self._vim: Nvim = vim
     self._candidates: typing.List[dict] = []
     self._selected_candidates: typing.List[int] = []
     self._clipboard = Clipboard()
     self._bufnr = -1
     self._index = index
     self._bufname = '[defx]'
Example #2
0
 def __init__(self, vim: Nvim, index: int) -> None:
     self._vim: Nvim = vim
     self._candidates: typing.List[typing.Dict[str, typing.Any]] = []
     self._selected_candidates: typing.List[int] = []
     self._clipboard = Clipboard()
     self._bufnr = -1
     self._index = index
     self._bufname = '[defx]'
     self._buffer: Nvim.buffer = None
     self._prev_action = ''
Example #3
0
 def __init__(self, vim: Nvim, index: int) -> None:
     self._vim: Nvim = vim
     self._defxs: typing.List[Defx] = []
     self._candidates: typing.List[typing.Dict[str, typing.Any]] = []
     self._clipboard = Clipboard()
     self._bufnr = -1
     self._winid = -1
     self._index = index
     self._bufname = '[defx]'
     self._buffer: Nvim.buffer = None
     self._prev_action = ''
     self._prev_highlight_commands: typing.List[str] = []
Example #4
0
def _paste(view: View, defx: Defx, context: Context) -> None:
    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)

    action = view._clipboard.action
    dest = None
    for index, candidate in enumerate(view._clipboard.candidates):
        path = candidate['action__path']
        dest = Path(cwd).joinpath(path.name)
        if dest.exists():
            overwrite = check_overwrite(view, dest, path)
            if overwrite == Path(''):
                continue
            dest = overwrite

        if not path.exists() or path == dest:
            continue

        view.print_msg(
            f'[{index + 1}/{len(view._clipboard.candidates)}] {path}')
        if action == ClipboardAction.COPY:
            if path.is_dir():
                shutil.copytree(str(path), dest)
            else:
                shutil.copy2(str(path), dest)
        elif action == ClipboardAction.MOVE:
            if dest.exists():
                # Must remove dest before
                if dest.is_dir():
                    shutil.rmtree(str(dest))
                else:
                    dest.unlink()
            shutil.move(str(path), cwd)
        view._vim.command('redraw')
    if action == ClipboardAction.MOVE:
        # Clear clipboard after move
        view._clipboard = Clipboard()
    view._vim.command('echo')

    view.redraw(True)
    if dest:
        view.search_recursive(dest, defx._index)
Example #5
0
 def __init__(self, vim: Nvim, index: int) -> None:
     self._vim: Nvim = vim
     self._defxs: typing.List[Defx] = []
     self._candidates: typing.List[typing.Dict[str, typing.Any]] = []
     self._clipboard = Clipboard()
     self._bufnr = -1
     self._prev_bufnr = -1
     self._winid = -1
     self._index = index
     self._bufname = '[defx]'
     self._buffer: Buffer = None
     self._prev_action = ''
     self._prev_syntaxes: typing.List[str] = []
     self._prev_highlight_commands: typing.List[str] = []
     self._winrestcmd = ''
     self._session_version = '1.0'
     self._sessions: typing.Dict[str, Session] = {}
Example #6
0
 def __init__(self, vim: Nvim, index: int) -> None:
     self._vim: Nvim = vim
     self._defxs: typing.List[Defx] = []
     self._candidates: typing.List[typing.Dict[str, typing.Any]] = []
     self._clipboard = Clipboard()
     self._bufnr = -1
     self._prev_bufnr = -1
     self._winid = -1
     self._index = index
     self._bufname = '[defx]'
     self._buffer: Buffer = None
     self._prev_action = ''
     self._prev_syntaxes: typing.List[str] = []
     self._prev_highlight_commands: typing.List[str] = []
     self._winrestcmd = ''
     self._has_preview_window = False
     self._session_version = '1.0'
     self._sessions: typing.Dict[str, Session] = {}
     self._previewed_target: typing.Optional[Candidate] = None
     self._previewed_img = ''
     self._ns: int = -1
     self._has_textprop = False
     self._proptypes: typing.Set[str] = set()
Example #7
0
 def __init__(self, vim: Nvim) -> None:
     self._vim = vim
     self._views: typing.List[View] = []
     self._clipboard = Clipboard()