Bug Fixes
* api: allow nvim_buf_set_extmark to accept end_row key #166861b54344
* diagnostic: assert that diagnostics have line number and column #166879dae939
* diagnostic: clamp diagnostics on negative line numbers #16497096f841
* diagnostic: escape special chars in file names #16588beac24d
* diagnostic: respect "if_many" source option for virtual text #16697060eeaa
* diagnostic: set effective buffer number for DiagnosticChanged autocmd #1648584784a8
* diagnostic: set effective buffer number in autocmd (again) #1659008ddfa9, closes#16474
* lua: do not cast offset to char_u 93f1ec0
* lsp: avoid attaching to unloaded buffers #167260088994
* lsp: call config on_exit handler before context is cleared #16781571609f
* lsp: fix `nil`-index behavior for UTF-8 in `_str_*index_enc` methods #1678503bd914
* lsp: handle offset encoding #167837b60ec7
* lsp: progress handlers should return vim.NIL on error #16476fb11ef0
* options: disallow empty 'fdc' and 'scl' #1677637a00be
* quickfix: avoid O(N^2) when filling from string typval #16663aa0ddc6
* screenpos, float: add top and left border adjustment 8f68548
* terminal: fix resize crash with pending scrollback #16665ae249d8
* ui: close floating window on BufLeave event #16664785bace
* uri: change scheme pattern to not include the comma character #167980e96f7d
Features
* lsp,diagnostic: open folds in jump-related functions #16784ee9e342
* lsp: add buf_detach_client #16741ec101b9
* lsp: use `vim.ui.select` for selecting lsp client #1678214357c8
* runtime: new checkhealth filetype #1670809306f0