nui.nvim/CHANGELOG.md
2024-02-17 02:19:19 +06:00

38 KiB

Changelog

0.3.0 (2024-02-16)

Features

  • layout: method 'show' mounts if not already mounted (c1627d0)
  • popup: method 'show' mounts if not already mounted (ecd77d8)
  • split: method 'show' mounts if not already mounted (43f7605)
  • support decimal number in (0,1) range as size (35da9ca)
  • tree: allow node:expand with zero child (0f913a3)
  • utils: replace deprecated api to set option (401a7c6)

Bug Fixes

  • input: check mounted state in mount/unmount method (c0c8e34)
  • input: skip cursor position patch for hidden input (80445d0)
  • menu: defer execution of make_default_prepare_node (49182fa)
  • menu: set default zindex higher than popup (abb0662)
  • popup: make sure border buf is modifiable (aa1b4c1)
  • popup: support border:set_text before layout mount (c9b4de6)
  • popup: use popup winblend for border (257dccc)
  • split: for relative=editor always split from current window (af8ddf5)
  • split: manual doautocmd BufWinEnter (af7dfee)

0.2.0 (2023-06-18)

Features

  • input: call on_close inside :unmount (60e91dd)
  • input: update types (c3c2957)
  • layout: support anchor for float layout (f284153)
  • layout: update types (62b3203)
  • line: update types (1a8d824)
  • menu: update types (0a97a88)
  • popup: add method border:set_style (9d98e9b)
  • popup: create border buffer on initialization (643e9af)
  • popup: support (text, hl_group)[] for border text (062e366)
  • popup: support anchor in :update_layout (52c9115)
  • popup: support nui.line for border text (1b8fa8b)
  • popup: update types (f6b6923)
  • split: update types (f4469cb)
  • support byte range for _.render_lines util (993d550)
  • table: add nui.table block (bfd3806)
  • table: support linenr_start for render method (457a5cf)
  • table: update types (64bdc57)
  • text: update types (9f7666d)
  • tree: always track linenr in :render (f008972)
  • tree: update types (d3cc976)
  • utils: support string line in _.render_lines (51764d2)
  • utils: update types (df321ba)

Bug Fixes

  • input: unmount race condition (e319f25)
  • layout: even more patch for neovim/neovim#18925 (de66444)
  • layout: more robust workaround for neovim/neovim#18925 (9230eb0)
  • popup: border empty char handling (bd2fefb)
  • popup: ensure valid border.bufnr on mount (6867305)
  • table: update types (d5a82aa)
  • tree: do not wipe linenr tracking in :set_nodes (da3b5eb)

Performance Improvements

  • tree: optimize hot paths (19de4d5)

0.1.0 (2023-05-27)

⚠ BREAKING CHANGES

  • line: change parameter order for methods.
  • text: change parameter order for methods.

Features

  • accept multiple keys for keymap (4998347)
  • add internal utils._.calculate_gap_width (90d7285)
  • add util to clear namespace for buffer (6c63bf5)
  • bar: add lower-level core.add_highlight function (20385a6)
  • bar: add some lower-level core.add_* functions (5d1ca66)
  • bar: initial implementation (35758e9)
  • bar: remove module (0dc148c)
  • input: add component Input (7307c94)
  • input: move internal default_value and prompt prop (595a2ea)
  • input: support nui.text for options.prompt (c380563)
  • layout: add method layout:update (3f611a6)
  • layout: add some util for size and position (cc3b970)
  • layout: feature guard lua autocmd api usage (3dc6b89)
  • layout: initial implementation (716c3f9)
  • layout: introduce layout type (a5fd005)
  • layout: introduce split layout (042cceb)
  • layout: make window transparent (2d33512)
  • layout: re-use windows for unchanged split layout box (71ddaaf)
  • layout: support :show and :hide for float layout (f572782)
  • layout: support container component (5bc7376)
  • layout: support o.grow factor for layout.box (796dc82)
  • layout: support o.grow for layout.box (2c6bac9)
  • layout: throw for empty box at init (6e872b3)
  • layout: tweak component wire up (eed888e)
  • layout: use backported autocmd methods (4e21085)
  • layout: wire up float layout components (3aa617d)
  • line: accept initial nui.text objects (2f44cc9)
  • line: accept NuiText object as param for line:append() method (34fd4bf)
  • line: add method :width (80122e5)
  • line: add nui.line block (1333fd0)
  • line: make ns_id required, update method signature (5695bde)
  • line: support nui.line in method :append (401a69f)
  • make components extendable (c75976e)
  • menu: add component Menu (dca0630)
  • menu: expose .tree (d12a697)
  • menu: improve menu separator implementation (0e05425)
  • menu: move internal props (0373a94)
  • menu: pass self to on_change callback (4438c5e)
  • menu: rename method menu:init to menu:new (2825c3d)
  • menu: simplify automatic width calculation (54cbaf5)
  • menu: support arbritary props for Menu.item (77cefa6)
  • menu: support nui.line for Menu.item (51cbd0c)
  • menu: support nui.text as separator char (3029554)
  • menu: support nui.text for Menu.item (13e557d)
  • menu: support options.on_change (db06fed)
  • object: add helper functions (9531977)
  • object: initial implementation (194837f)
  • popup: add method .border:set_highlight (acb72b1)
  • popup: add method popup:set_layout(config) (006711f)
  • popup: add method popup:set_position(position, relative) (7ea1a6b)
  • popup: add method popup:set_size(size) (07b6e9a)
  • popup: add method popup:unmap (46bbf33)
  • popup: add method popup.border:set_text(...) (b82a5d3)
  • popup: add methods popup:hide() and popup:show() (b3c706d)
  • popup: add methods popup:on(...) and popup:off(...) (0eb57a2)
  • popup: add option 'focusable' (8339965)
  • popup: add option padding (596cd77)
  • popup: add options 'buf_options' and 'win_options' (163d99a)
  • popup: add options.ns_id (6f165aa)
  • popup: add type annotation for bufnr,winid,ns_id (c2d1f73)
  • popup: add type annotation for win_config (f8ccc5c)
  • popup: allow layout refresh when container size changes (ee8d315)
  • popup: change behavior of padding (9f29df4)
  • popup: clear namespace object on unmount (58e06b0)
  • popup: create buffer on initialization (6b1deda)
  • popup: default border.text hl to FloatTitle (4eaec2a)
  • popup: feature guard lua autocmd api usage (6028584)
  • popup: improve border highlight implementation (2f58c40)
  • popup: improve cleanup (220d4a4)
  • popup: merge internal position_meta into position (bc2fc9c)
  • popup: move internal buf_options and win_options (3148908)
  • popup: move internal loading and mounted state (4dc3214)
  • popup: move internal position state (d229bbb)
  • popup: move internal position_meta state (cbbbe90)
  • popup: move internal size prop (0a2fced)
  • popup: move internal win_enter prop (f7736c9)
  • popup: remove automatic cleanup (06b48cf)
  • popup: remove method popup:on(...) (c24b131)
  • popup: rename method :set_layout to :update_layout (90f59b0)
  • popup: rename window to popup (7097509)
  • popup: rework border internals (8a776a2)
  • popup: simplify border highlight mechanism (0ec30d9)
  • popup: simplify border.text (674305a)
  • popup: support nui.text for simple border (5f5a2e5)
  • popup: support NuiText as border.text (1248c67)
  • popup: support option 'anchor' (a86c733)
  • popup: support set_size when unmounted (fa86f85)
  • popup: support unmanaged buffer (335415a)
  • popup: use backported autocmd methods (372369d)
  • split: add component Split (bcb7382)
  • split: add method :update_layout (32f44a6)
  • split: add method split:unmap (e0444e0)
  • split: create buffer on initialization (0e36b78)
  • split: feature guard lua autocmd api usage (d14daab)
  • split: improve cleanup (36b0649)
  • split: move internal buf_options and win_options (6c9a3ee)
  • split: move internal loading and mounted state (653199c)
  • split: move internal props (25e51eb)
  • split: set buffer after .winid is set (35091ca)
  • split: store id internally (96ef1cb)
  • split: support o.enter (b75e2e6)
  • split: support o.ns_id (28cafab)
  • split: support o.relative.winid (82851af)
  • split: tweak split size handling for new window (b681ab2)
  • split: use backported autocmd methods (6bd1d8a)
  • text: add method :new (4ad7811)
  • text: add method text:set(content, highlight?) (eaf4844)
  • text: add nui.text block (a6df800)
  • text: change highlight table key group->hl_group (a8aaca1)
  • text: make ns_id required, update method signature (b63d199)
  • text: preserve own extmark id (26622d1)
  • text: remove method :new (18a0390)
  • text: return self from method text:set (c5971ed)
  • text: support cloning and use extmarks (281d453)
  • text: support extmark override when cloning (878dfaf)
  • tree: add method node:get_child_ids (bc05620)
  • tree: add method tree:get_nodes (f85aedc)
  • tree: add method tree:set_nodes(nodes, parent_id?) (b25fab5)
  • tree: add nui.tree block (3bdfa78)
  • tree: add o.bufnr and deprecate o.winid (ce4869f)
  • tree: clear namespace before render (1f66cc7)
  • tree: make node:has_children method work before init (96f600b)
  • tree: move internal buf_options and win_options (3a7c0c4)
  • tree: move internal get_node_id and prepare_node functions (1b9e046)
  • tree: pass parent_node to prepare_node function (559d33d)
  • tree: rename options.ns to options.ns_id (5db3901)
  • tree: return end linenr from tree:get_node method (8ae5e31)
  • tree: return linenr from tree:get_node method (3b746d7)
  • tree: support linenr for method tree:get_node (7fee7c6)
  • tree: support linenr_start for method :render (afb9e5b)
  • tree: support multiline node (4926ee9)
  • tree: support nil return for o.prepare_node (5a79b1b)
  • use api-autocmd if available (3f05d74)
  • use native keymap callback if supported (ad2c05c)
  • utils: add autocmd (1f51d5a)
  • utils: add buf_storage (6300e3b)
  • utils: backport autocmd to nvim < 0.7.x (587a49f)
  • utils: move keymap to utils (56c2230)
  • utils: update autocmd.event (6f9153c)
  • window: add method window:destroy() (c51856d)
  • window: add method window:map(...) (f69ee04)
  • window: add method window:on(event_name, handler) (f36b496)
  • window: add method window:render() (d1a047d)
  • window: add option highlight (c4bbe61)
  • window: change default border to none (8db2faa)
  • window: enhanced border support (a17070c)
  • window: initial implementation (19e4bb6)
  • window: rename 'destroy' to 'unmount' (c409518)
  • window: rename 'render' to 'mount' (66190d2)
  • window: simplify option relative (5584892)

Bug Fixes

  • bar: rename tabnr to tabid in context (f220495)
  • bar: type for generator (2a6533f)
  • input: escape multi-byte chars in default value (698e758)
  • input: stopinsert on close (971cca4)
  • input: try to keep stable cursor position on parent window (6f803e8)
  • layout: apply size for first child box in split layout (dde3f89)
  • layout: float position calculation for child with complex border (257da38)
  • layout: focus on relative.win for split ':update' (6e8f9a0)
  • layout: o.relative for split layout (bf5900f)
  • layout: preserve split win_options 'winfixheight' and 'winfixwidth' (ecd9def)
  • layout: process float layout box change (51721a4)
  • layout: process split layout box change (b12db53)
  • layout: typo in update_layout_config util (d5d3d6c)
  • luacheck lint warnings (e7dd31c)
  • menu: error with fallback separator char (76fc8ed)
  • popup: add border.style default value (a07b754)
  • popup: border highlight for type:complex (151d593)
  • popup: border padding with style=shadow (37e0511)
  • popup: check bufnr is valid before clearing namespace (62facd3)
  • popup: check if border bufnr is valid before clearing namespace (b99e6cb)
  • popup: do better mount/unmount handling (7622fcf)
  • popup: do buf_storage.cleanup after buffer wipeout (644e595)
  • popup: do BufWinEnter autocmd after self.winid is set (4c77e3a)
  • popup: do not reset win_options on update_layout call (1f43b13)
  • popup: handle border padding without text (1f9aebc)
  • popup: handle border:set_text properly (e78c822)
  • popup: handle map as border.style (26a0eea)
  • popup: handle various mix of border and padding (49a155f)
  • popup: highlight for simple border (3ff3d26)
  • popup: ignore WinClosed from other popup (a501202)
  • popup: manual doautocmd BufWinEnter (0807a9c)
  • popup: position relative to buffer position (f369333)
  • popup: properly apply winhighlight (4396e44)
  • popup: remove mutation in border:get() (1179f2e)
  • popup: respect 'enter' option on subsequent mounts (602e4d8)
  • popup: set noautocmd for opening border window (4715f60)
  • popup: set win_config.win explicitly if applicable (d50d84a)
  • popup: store winid for parent window (03131f8)
  • popup: take border size_delta into account when calculating position (e67310b)
  • popup: track mounted state (c1db7f8)
  • popup: update position handling (d87b561)
  • popup: update state and buffer handling for hide/show (02e9262)
  • popup: use copy of border styles table item (abd1a4a)
  • popup: use popup winhighlight for border (cf67636)
  • split: check bufnr is valid before clearing namespace (e9889bb)
  • split: do buf_storage.cleanup after buffer wipeout (5bf5d62)
  • split: do not update position when unchanged (6d86148)
  • split: set size after open window (c45ad68)
  • split: skip manual buf/win removal when pending quit (cc76e6f)
  • split: tweak container size relative to editor (120fe69)
  • split: use self.winid for WinClosed (747c20d)
  • support nui.text for internal alignment util (915fabe)
  • text: fix :highlight extmark.end_col (3775746)
  • tree: fix calculation for method :render (70f2dad)
  • tree: pass ns_id correctly to nui.line in :render method (70fc6b6)
  • tree: remove children recursively in method remove_node (4939282)
  • tree: remove id from .nodes.root_ids on tree:remove_node (792caa3)
  • tree: set default buf_options.bufhidden=hide (7c7bdf4)
  • tree: set default buf_options.undolevels=0 (42552b3)
  • vim.schedule QuitPre event callback (d147222)
  • window: cleanup properly (dbc8185)
  • window: set zindex properly (2d427f7)
  • window: use 0-indexed position (fbf96df)

Continuous Integration

  • introduce automated release (70560c4)