# Changelog ## [1.4.0] - 2024-04-03 ### 🚀 Features - *(preview)* Add `jumpTop` and `jumpBot` keymap actions (#109) - *(highlight)* Add `UfoCursorFoldedLine` (#103) - *(render)* Support inlay (#155) - *(render)* Add support for concealed characters (#153) (#156) - *(api)* Add cursor range and kind information for `UfoInspect` - *(config)* [**breaking**] Use `close_fold_kinds_for_ft` instead `close_fold_kinds` - *(decorator)* Export fold kind in `fold_virt_text_handler` (#207) - *(build)* Luarocks support (#211) ### 🐛 Bug Fixes - *(preview)* Respect `tabstop` and `shiftwidth` opts - *(provider)* Respect 'tabstop' and 'shiftwidth' for indent - *(decorator)* Reset winhl after detach - *(decorator)* Keep last winid field - *(driver)* Respect `foldminlines` (#108) - *(decorator)* Buffer may be changed in a window - *(decorator)* `setl winhl` erase hl of `nvim_win_set_hl_ns` (#111) - *(preview)* Dispose preview window even if buffer is wiped out - *(buffer)* Quickfix buftype can't detect line changed - *(decorator)* Open fold should redraw at once (#132) - *(treesitter)* Support `#make-range!` (#139) - *(preview)* Window height should more than zero - *(fold)* Refresh fb table in closure function - Throw UfoFallbackException on RequestFailed (#159) - *(render)* Join text for default hlgroup (#163) - *(render)* Skip error return by `synID` - *(fold)* Sync extmarks with foldedLines (#167) - *(treesitter)* Use metadata.range prefer (#169) - *(window)* Clear win highlight if buf changed - *(decorator)* Ignore redraw request for closing fold (#176) - *(decorator)* Ignore redundant redraw (#180,#181) - *(fold)* Scan win folds if one buffer in multiple window - *(decorator)* Correct bufnrSet logic - *(window)* Don't clear winhl during first render (#183) - *(render)* Replace `Normal` highlight with `UfoFoldedFg` - *(action)* Check endLnum to avoid infinite loop (#184) - *(decorator)* Highlight open fold for multiple windows correctly (#187) - *(decorator)* Erase extmark even in multiple windows - *(decorator)* Narrow the fold range for stale - *(treesitter)* Fix errors when getting hlId on nvim 0.10.x (#188) - *(model)* Use private field to avoid inherit (#186) - *(fold)* Don't make scan flag if manual invoke (#192) - *(window)* Upstream bug, `set winhl` change curswant (#194) - *(preview)* Nightly change `nvim_win_get_config` return val - *(wffi)* `changed_window_setting` signature changed - *(decorator)* Keep silent for `Keyboard interrupt` error (#202) - *(decorator)* Correct capture condition - *(fold)* Return correct winid ### ⚡ Performance - *(decorator)* Skip rendering of horizontal movement - *(decorator)* `set winhl` will redraw all lines ## [1.3.0] - 2023-01-05 ### Features #### Provider - Use fallback if `buftype == 'nofile'` - Inspect current fold kinds ### Bug Fixes #### Preview - Respect target buffer opts - Stick to top left corner while scrolling in normal window - Fix wrong row for upward display #### Fold - Window maybe changed before set opts - Improve leaving diff mode behavior #### Miscellaneous - Substitute NUL byte for VimScript func - Catch coc.nvim `Plugin not ready` error and resolve ### Documentation - Explain `fold_virt_text_handler` (#98) - Make capabilities for all available lsp servers & remove "other_fields" (#100) ## [1.2.0] - 2022-10-09 ### Features #### Fold - Add `close_fold_kinds` option - Make the window display upward if `kind == 'comment'` (#73) #### API - Add `applyFolds` - Add `openFoldsExceptKinds` (#64) #### Preview - Support highlighting with `:match` - Show virtual winbar if preview is scrolled and export `UfoPreviewWinbar` highlight group - Highlight cursor line for preview and export `UfoPreviewCursorLine` highlight group #### Decorator - Hint error for users' virtTextHandler (#79) - Add `enable_get_fold_virt_text` option to get virt texts of all folded lines (#74) ### !Breaking - `enable_fold_end_virt_text` option is deprecated, use `enable_get_fold_virt_text` instead - The signature of `peekFoldedLinesUnderCursor` API is changed ### Bug Fixes #### Fold - Handle multiple windows with same buffers - `set foldenable` forecdly after leaving diff mode - Restore topline after first applying folds to keep eyes comfortable - EndLnum may exceed buffer line count because of the asynchronization #### API - Action should work after detach (#75) #### Preview - Dispose previous resources before a new attach - Scroll bar reaches the bottom until the end of the line is visible #### Provider - Need more time to wait for the server - Better bypass strategy, must reach the timeout and a certain number of requests - Lsp provider always returns Promise object - Validate buffer after requesting folds - Dispose all providers properly #### Decorator - Stop highlighting after opening folds during incsearch - Keep refreshing even if nofoldenable #### Render - Limit the end of range - Treesitter extmarks may be overlapped, filter invalid extmarks out ## [1.1.0] - 2022-08-13 ### Bug Fixes - Reset foldlines if extmark range is backward - Unexpected fired `on_lines` at nvim_buf_attach - Fix `winsaveview()` for scanning fold ranges - Always open folds if text content in range (#60) - Scroll bar shouldn't be filled fully if it's scrollable - Drop coc.nvim cancellation - Filter out last same ranges - Assert `provider_selector` return value (#61) ### Features - Add `closeFoldsWith` API (#62) - Truncate top border for preview if possible ## [1.0.0] - 2022-07-24 First release with 1.0.0 version.