Nvim Ufo Versions Save

Not UFO in the sky, but an ultra fold in Neovim.

v1.4.0

1 month ago

What's Changed

🚀 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

New Contributors

Full Changelog: https://github.com/kevinhwang91/nvim-ufo/compare/v1.3.0...v1.4.0

v1.3.0

1 year ago

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

v1.2.0

1 year ago

[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

v1.1.0

1 year ago

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

v1.0.0

1 year ago

First release with 1.0.0 version.