Exemplo n.º 1
0
def _help(nvim: Nvim, state: State, settings: Settings,
          args: Sequence[str]) -> None:
    """
    Open help doc
    """

    try:
        topic, use_web = _parse_args(args)
    except ArgparseError as e:
        write(nvim, e, error=True)
    else:
        md, uri = _directory(topic)
        web_d = open_w(uri) if use_web else False
        if not web_d:
            for win in list_floatwins(nvim):
                win_close(nvim, win=win)
            lines = md.read_text("UTF-8").splitlines()
            buf = create_buf(nvim,
                             listed=False,
                             scratch=True,
                             wipe=True,
                             nofile=True,
                             noswap=True)
            buf_set_lines(nvim, buf=buf, lo=0, hi=-1, lines=lines)
            buf_set_option(nvim, buf=buf, key="modifiable", val=False)
            buf_set_option(nvim, buf=buf, key="syntax", val="markdown")
            open_float_win(nvim,
                           margin=0,
                           relsize=0.95,
                           buf=buf,
                           border="rounded")
Exemplo n.º 2
0
def _ensure_marked_buf(nvim: Nvim) -> Buffer:
    buf = next(_list_marked_bufs(nvim), None)
    if buf is not None:
        return buf
    else:
        buf = create_buf(
            nvim, listed=True, scratch=True, wipe=False, nofile=False, noswap=True
        )
        buf_set_var(nvim, buf=buf, key=BUF_VAR_NAME, val=True)
        return buf
Exemplo n.º 3
0
def _new_window(nvim: Nvim, vertical: bool) -> None:
    nvim.command("vnew" if vertical else "new")
    win = cur_win(nvim)
    buf = create_buf(nvim,
                     listed=False,
                     scratch=True,
                     wipe=True,
                     nofile=True,
                     noswap=True)
    win_set_buf(nvim, win=win, buf=buf)
Exemplo n.º 4
0
def new_fm_buffer(nvim: Nvim, settings: Settings) -> Buffer:
    buf = create_buf(nvim, listed=False, scratch=True, wipe=False, nofile=True)
    buf_set_option(nvim, buf=buf, key="modifiable", val=False)
    buf_set_option(nvim, buf=buf, key="filetype", val=FM_FILETYPE)

    km = Keymap()
    km.n("{") << f"{settings.page_increment}<up>"
    km.n("}") << f"{settings.page_increment}<down>"
    for function, mappings in settings.keymap.items():
        for mapping in mappings:
            km.n(mapping, noremap=True, silent=True,
                 nowait=True) << f"<cmd>lua {function}(false)<cr>"
            km.v(mapping, noremap=True, silent=True,
                 nowait=True) << f"<esc><cmd>lua {function}(true)<cr>"

    km.drain(buf=buf).commit(nvim)
    return buf
Exemplo n.º 5
0
def stats(nvim: Nvim, stack: Stack, *_: str) -> None:
    stats = stack.idb.stats()
    chart1, chart2, chart3 = _pprn(stats)
    desc = MD_STATS.read_text()
    lines = (Template(_TPL).substitute(chart1=chart1,
                                       chart2=chart2,
                                       chart3=chart3,
                                       desc=desc).splitlines())
    for win in list_floatwins(nvim):
        win_close(nvim, win=win)
    buf = create_buf(nvim,
                     listed=False,
                     scratch=True,
                     wipe=True,
                     nofile=True,
                     noswap=True)
    buf_set_lines(nvim, buf=buf, lo=0, hi=-1, lines=lines)
    buf_set_option(nvim, buf=buf, key="modifiable", val=False)
    buf_set_option(nvim, buf=buf, key="syntax", val="markdown")
    open_float_win(nvim, margin=0, relsize=0.95, buf=buf, border="rounded")
Exemplo n.º 6
0
def _go_show(
    nvim: Nvim,
    stack: Stack,
    preview_id: str,
    syntax: str,
    preview: Sequence[str],
    _pos: Mapping[str, int],
) -> None:
    if preview_id == state().preview_id.hex:
        pos = _Pos(**_pos)
        buf = create_buf(nvim,
                         listed=False,
                         scratch=True,
                         wipe=True,
                         nofile=True,
                         noswap=True)
        buf_set_preview(nvim, buf=buf, syntax=syntax, preview=preview)
        _set_win(nvim,
                 display=stack.settings.display.preview,
                 buf=buf,
                 pos=pos)