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")
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
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)
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
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")
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)