mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim). Following is a list of fixes/features commits. BREAKING -------------------------------------------------------------------------------- -0f4f7d32ceremove `nvim` and `provider` module for checkhealth -7dbbaaec3frename 'jumpoptions' flag "unload" to "clean" (#30418) -35c5e23107store artifact shasums in a single shasum.txt file -188ec19894turn off translations by default -328ea02eb7use utf8proc full casefolding -737f58e232api: rename Dictionary => Dict -a389dc2f95clipboard: use OSC 52 as fallback clipboard provider (#31730) -ad70c9892dcolumn: rework 'statuscolumn' %r/l items -eb60cd74fbdeps: bump tree-sitter to HEAD, wasmtime to v29.0.1 (#32200) -a119aae4d3diagnostic: filter diagnostics by severity before passing to handlers (#30070) -51ccd12b3ddiagnostic: make virtual text handler opt-in (#32079) -a9e725b26ediagnostics: sort underline severity_sort (#30898) -e8b5dd1e89lsp: `symbol_to_item` requires `offset_encoding` -8260e4860blsp: multiple client support for vim.lsp.buf.hover() -debabaf884lsp: pass buffer number to root_dir function -9b357e30fdlsp: remove client-server handlers from vim.lsp.handlers -3e3775961flsp: rename lsp.completion.trigger() to get() (#32911) -0083e03d6flsp: support multiple clients in goto methods (#30877) -dff684fdb3lsp: support multiple clients in lsp.buf.references -970a27927elua: do not use typed table for empty dict -de48fbbd5fmessages: vim.ui_attach message callbacks are unsafe -a27419f3fcoptions: disallow setting hidden options #28400 -b922b7d6d7options: use OptVal for option defaults #26691 -4d9a1b9852provider/python: add python 3.13, drop 3.7 and 3.8 (EOL) #33022 -318676ad13release: remove backwards compatible releases -ad191be65esigns: place higher-priority signs from the left #27781 -0dd933265fterminal: cursor shape and blink (#31562) -35e5307af2terminal: include cursor position in TermRequest event data (#31609) -3cf602486cterminal: make 'belloff' and 'visualbell' apply to terminal bell (#30859) -041d98fe8dtreesitter: add default fallback to `ft_to_lang` lookups -6913c5e1d9treesitter: default to correct behavior for quantified captures (#30193) -bd4ca22d03treesitter: don't parse tree in get_parser() or start() -a0b52e7cb3treesitter: enforce buffer is loaded when creating parser -99e0facf3atreesitter: use return values in `language.add()` -bda63d5b97typval: remove distinction of binary and nonbinary strings -48e2a73610ui: emit prompt "messages" as cmdline events #31525 -ca5fca2912windows: drop cat and tee executables from windows -be89d520d7windows: only support UCRT, even for mingw FEATURES -------------------------------------------------------------------------------- -efa45832eaadd "jump" options to vim.diagnostic.config() (#29067) -0631492f9cadd vim.fs.relpath -f864b68c5ballow gx to function for markdown links -f3632e14e3get/set namespace properties #28728 -a664246171remove deprecated features -ead5683ff9api: add err field to nvim_echo() opts -aec4938a21api: broadcast events to ALL channels #28487 -34d808b73capi: combined highlights in nvim_eval_statusline() -19b25f3feaapi: deprecate nvim_buf_add_highlight() -5c92b40b4bapi: deprecate nvim_out/err_write(ln) -d84a95da7eapi: nvim_get_autocmds filter by id#31549 -25d8c3a5adapi: nvim_open_win() relative to tabline and laststatus #32006 -e00d67ef31checkhealth: group parsers by name and path in output -563051a53eclipboard: support g:clipboard="osc52" #33021 -60ea046741clipboard: try cygutils, clip on Windows #30215 -2c629ad13fcolumn: apply appropriate numhl highlight to virt_lines (#32400) -65c7033cbecomment: allow commentstring to be determined from node metadata -268a3de0a7complete: CompleteDone reason "cancel", "discard" #32600 -a616272f56complete: specify reason for CompleteDone -f1748b78e3default: bind `vim.lsp.buf.signature_help` in select mode (#31223) -ac207c3ac2defaults: "Show Diagnostics" in mouse popupmenu #32122 -2c6b635872defaults: add LSP default mappings (again) (#28650) -bb7604eddadefaults: add default unimpaired style mappings (#28525) -4662ad5643defaults: completeopt=popup #32909 -e8e3b443f8defaults: disable 'foldcolumn' in terminal buffers (#31480) -cc6992f1cadefaults: dot-repeat [<Space> #31186 -6db830e40edefaults: enable diffopt "linematch" #32346 -b31132f1c1defaults: jump between :terminal shell prompts with ]]/[[ #32736 -0b7cc014fcdefaults: map gO to LSP document_symbol #30781 -26e765f905defaults: map gri to vim.lsp.buf.implementation() (#30764) -76aa3e52bedefaults: popupmenu "Open in browser", "Go to definition" #30261 -09d76afe84defaults: pretty :help headings #30544 -079e5f4f9bdefaults: unimpaired empty line below/above cursor #30984 -1c6d920052defaults: use vim.diagnostic.jump() for default mappings (#29066) -c9c17fda80deprecations: vim._defer_deprecated_module() -38a52caec0diagnostic: add `current_line` option for `virtual_text` handler -8ba73f0e4cdiagnostic: add vim.diagnostic.jump() (#26745) -445ecca398diagnostic: format() can filter diagnostics by returning nil #32302 -99e7323aa3diagnostic: inherit parent 'path' option in open_float (#31273) -21961967ffdiagnostic: update quickfix list by title #31486 -7579af3c51diagnostic: vim.diagnostic.setqflist improvements #30868 -1759b7844adiagnostic: virtual_lines #31959 -fd65422b99diff: do not try external when out of memory -0c296ab224docs: "yxx" runs Lua/Vimscript code examples #31904 -6628741adadocs: improve `@see` meta docstrings #30693 -23290e7676editor: handle new multibyte sequences in normal mode replacement -cb6c0fda71editorconfig: add support for spelling_language (#28638) -4817547ec4ex_cmds: :sleep! hides the cursor while sleeping (#31493) -4f9260d06aext_messages: add hl_id to ext_messages chunks -4cced601c8extmark: stack multiple highlight groups in `hl_group` -931ee5591fextmarks: virtual text can be right-aligned, truncated #31921 -62d9fab9affloat: add winborder option (#31074) -9b8907d905float: allow enabling mouse for non-focusable window (#30844) -511b991e66fs.lua: add vim.fs.rm() -054a287dbeftplugin: change 'commentstring' to `// %s` for C/C++ (#29085) -f398e3a61aftplugin: set Lua 'omnifunc' to vim.lua_omnifunc #32491 -b61051ccb4func: allow manual cache invalidation for _memoize -548f19ccc3health: close checkhealth buffers with q #31870 -f2fa4ca97ehealth: highlight headings #30525 -b12b91c274health: show :checkhealth in floating window #31086 -6592873f77help: use treesitter for table of contents -3e09fbdf82highlight: add StatusLineTerm and StatusLineTermNC groups -295920845ehighlight: make `PmenuMatch` and `PmenuMatchSel` bold -5b1136a99cinccommand: preview 'nomodifiable' buffers #32034 -61025c9e7ainstall: mention standard paths, XDG vars in Windows installer #29101 -8ef41f5902jobs: jobstart(…,{term=true}), deprecate termopen() #31343 -e7020306a1jumplist: allow opting out of removing unloaded buffers (#29347) -8d55cc218ckeysets: teach Union and LuaRefOf -5931f780e0log: use "ui" as default name for TUI client #30345 -e4c6e732fdlsp: add select kind in showMessageRequest #32387 -f20335a54clsp: add support for completionItem.command resolving -3f1d09bc94lsp: add vim.lsp.config and vim.lsp.enable -6072153796lsp: announce codeLens resolveSupport (#29956) -1f5bcc7c4elsp: completion opts support custom item conversion (#30060) -ff097f2091lsp: completion side effects -7a7747f1e4lsp: deprecate execute_command with client:exec_cmd -454ae672aalsp: deprecate non-method client functions -54249d051clsp: deprecate vim.lsp.buf.completion -e56437cd48lsp: deprecate vim.lsp.start_client #31341 -55e4301036lsp: drop fswatch, use inotifywait (#29374) -dad55f5e76lsp: export diagnostic conversion functions (#30064) -44229bb85blsp: highlight hover target/range #31110 -27f3750817lsp: improve LSP doc hover rendering #30695 -6722149776lsp: include `end_col` and `end_lnum` in `vim.lsp.buf.symbols_to_items` -20f22f75eelsp: include end_col, end_lnum in vim.lsp.buf.locations_to_items #29164 -4e90bc3023lsp: lsp.completion support set deprecated (#29882) -6e68fed374lsp: multi-client support for signature_help -629483e24elsp: require `offset_encoding` param #31249 -e00cd1ab40lsp: return resolved config for vim.lsp.config[name] -130b5fd85flsp: return table from lsp/ files on runtimepath (#31663) -ce678043e3lsp: show server name in code actions #30830 -07d5dc8938lsp: show server version in `:checkhealth` #31611 -a1e313ded6lsp: support `textDocument/foldingRange` (#31311) -3b0fe2659elsp: support completion context #32793 -41b07b128clsp: support for resolving code action command (#32704) -35247b00a4lsp: support function for client root_dir (#31630) -45e76acaa0lsp: support hostname in rpc.connect #30238 -b2bad0ac91lsp: support postfix snippets in completion -d3e4ffaffflsp: support utf-8 and utf-32 position encodings -5d26934c7clsp: update LSP healthcheck format (#28980) -ae2fd91b41lsp: update LSP types -0df2c6b5d0lsp: use fuzzy match on filterText instead of prefix match -e4c1f6667blsp: use the meta model to generate server capability map -5581a95534lsp: vim.lsp.buf.format() supports textDocument/rangesFormatting #27323 -92e4e3fb76lsp.util: fix type errors -ff1d7d4299lsp.util: get_bufs_with_prefix -> get_writeable_bufs -cbc82011celsp.util: improve offset_encoding type annotations -a18fa2f11clsp.util: minor codestyle -1944c0d610lsp.util: refactor get_border_size() -f0973d4227lsp.util: refactor symbols_to_items() -0e8568d72clsp.util: remove lsp spec extract -0621718e3blsp.util: remove metatable in locations_to_items -3f87e222f7lsp.util: remove some aliases -e954a16063lsp.util: remove some variables -5bec7288a5lsp.util: remove uneeded do-end -8ad000ef7clsp.util: remove unneeded table -d44d36b8fflsp.util: simplify some bounds checking -0066dd0f65lsp.util: use faster version of vim.validate -1edfe5c09elsp.util: use vim.api alias -97119a2369lsp.util: use vim.w/b -cd53db2157lua: add `context.env` (environment variables) to `vim._with()` -9afa1fd355lua: add `vim._with` -5180707310lua: add `vim.fs.abspath` -b34e137e43lua: allow vim.on_key() callback to consume the key (#30939) -d5ae5c84e9lua: completion for vim.fn, vim.v, vim.o #30472 -0a5a0efda6lua: don't complete private (_) fields after dot (.) #32690 -07cc559cdflua: update `vim._with` to allow more granular option contexts -af0ef2ac9dlua: vim.hl.range() "timeout" #32012 -be1fbe38b3lua: vim.text.indent() -fdeb01cd77main: expand file ~\ or ~/ prefix on Windows (#28515) -ea5b748f24man.vim: "q" always closes window #30819 -f58e7d5facmarks: add conceal_lines to nvim_buf_set_extmark() -51cf84daf9marks: virtual lines support horizontal scrolling (#32497) -cfdf68a7acmbyte: support extended grapheme clusters including more emoji -124c655f56messages: "g<" mapping for ext_messages -cb7b4e2962messages: "verbose" message kind #31991 -5bae80899dmessages: add :!cmd shell message kinds -e16bec41b6messages: confirm kind for z=, :tselect, inputlist() #32521 -21151144c6meta: add type for quickfix entries -82a215cb2doptions: add 'eventignorewin' (#32152) -d831392b15paste: unify cancel and error behavior (#30476) -08c328b8b0runtime: Lua ftplugin 'includeexpr' #32719 -f5714994bcruntime: Lua ftplugin sets 'omnifunc', 'foldexpr' #32697 -e6cfcaed18snippet: add default keymaps during snippet session -123f8d229esnippet: set snippet keymaps permanent instead of dynamic (#31887) -96128a5076startup: validate --listen address -230b0c7f02stdlib: overload vim.str_byteindex, vim.str_utfindex #30735 -517ecb85f5stdlib: vim.json.encode(...,{escape_slash:boolean}) #30561 -8df6736ca1term: enable reflow by default (#21124) -4199671047term: support OSC 8 hyperlinks in :terminal (#30050) -93480f7fbaterm: trigger TermRequest for APC (#32407) -3ad977f01dterminal: add support for copying with OSC 52 in embedded terminal (#29117) -6f0bde11ccterminal: add support for kitty keyboard protocol -06a1f82f1cterminal: forward X1 and X2 mouse events -e3bfcf2fd4terminal: support grapheme clusters, including emoji -f1c45fc7a4terminal: support theme update notifications (DEC mode 2031) (#31999) -56d11b494bterminal: disable 'number', 'relativenumber', and 'signcolumn' in terminal buffers (#31443) -34cd94812dtest: support and document lua test case debugging -b8c75a31e6treesitter: #trim! can trim all whitespace -ec8922978etreesitter: add more metadata to `language.inspect()` (#32657) -bd3b6ec836treesitter: add node_for_range function -688b961d13treesitter: add support for wasm parsers -8543aa406ctreesitter: allow LanguageTree:is_valid() to accept a range -44ccd9ca24treesitter: allow `iter_captures` to accept `opts` -8b5a0a00c8treesitter: allow disabling captures and patterns on TSQuery (#32790) -1af55bfcf2treesitter: allow get_node to return anonymous nodes -a94a2927d0treesitter: allow passing lang to InspectTree -45e606b1fdtreesitter: async parsing -3dfb9e6f60treesitter: include capture id in return value of `get_captures_at_pos()` #30559 -267c7525f7treesitter: introduce child_with_descendant() -09f9f0a946treesitter: show which nodes are missing in InspectTree -b9b408a56ctreesitter: start moving get_parser to return nil #30313 -da0ae95349treesitter: support modelines in `query.set()` (#30257) -2e5b560482treesitter: table of contents for checkhealth, markdown (#32282) -8ba047e33ftreesitter: vertical conceal support for highlighter -ff85e54939tui: builtin UI (TUI) sets client info #30397 -4fb3b57a19tui: handle kitty key events in libtermkey (#31727) -f93ecd2760tui: parse CSI subparams in termkey (#29805) -44dbfcfba4tui: recognize X1 and X2 mouse events -e41368f3bctui: support in-band resize events (#29791) -d460928263tui: update 'background' on theme change events (#31350) -45e319ade6tutor: give hints to satisfy the line checker #30952 -4b0e2605eaui: UI :detach command -394f69a25dui: additional arguments for cmdline_show/hide events -a0e3fe5741ui: cascading style inheritance for Pmenu* highlights #29980 -f85bc41c80ui: don't show unfocusable windows in :tabs, 'tabline' #27984 -9762c5e340ui: gx: use url extmark attribute and tree-sitter directive (#30192) -43d552c566ui: more intuitive :substitute confirm prompt #31787 -433b342baaui: sign/statuscolumn can combine highlight attrs #31575 -a10636fbe7ui: specify whether msg_show event is added to history -e049c6e4c0ui: statusline text inherits highlights #29976 -611ef35491vim.fs: find(), dir() can "follow" symlinks #31551 -3f15e57b26vim.ui: configurable "gx" / vim.ui.open() tool -f4b620c4e6vim.ui.open: support lemonade #30845 -3572319b4cvim.validate: improve fast form and deprecate spec form -cb84cd5d9fwin32: embed executable icon FIXES -------------------------------------------------------------------------------- -200e7ad157apply the change on more files -6720bd440fassert failure in VimL expression parser -d123202ae6change deprecation presentation -ded15ca8c2completion.enable(false,...) deletes invalid augroup #32121 -7737f89206deps build for ARM64 MSVC -50749f8df8extend the life of vim.tbl_flatten to 0.13 -25abcd243efix broken wasmtime build -b6ab294838fix incorrect search code -46b69aaf14include nvim/ascii_defs.h -01b4da65c2merge all provider healthchecks into a single health.lua -5c245ec3e9remove vim.lsp._with_extend -98ba65b8bereplace NVIM with Nvim in default titlestring (#30348) -6aa42e8f92resolve all remaining LuaLS diagnostics -e71713ba2bshow swapfile warning as a warning (#28971) -0418107074update osc52 termfeatures flag on UIEnter/UILeave (#32756) -0829e7575dwarn when :InspectTree on buffer with no parser #32783 -47f2769b46Man: completion on Mac -89f9f168a5api: alloc and draw cursor window in nvim__redraw -743c5808b6api: allow `scope = 'local'` with `buf` when using `nvim_get_option_value` -487c48ec86api: clamp range lines in `nvim__redraw()` (#31710) -141114c170api: crash on invalid buffer to nvim_buf_del_user_command (#31908) -716adbcc45api: deprecate nvim_subscribe, nvim_unsubscribe #30456 -1e47aa677aapi: deprecated API nvim_get_option does not validate option name #31919 -095c0876c2api: don't override Vimscript SID (#32610) -bff07f6dd0api: don't try to get/set option for invalid option name (#31302) -0e59f6f4c7api: don't use 'winborder' when reconfiguring float (#32984) -cce1eb0806api: error properly with invalid field in nvim_open_win (#30078) -63bbb7c109api: fix 'winborder' preventing splits with nvim_open_win (#32981) -f55213ce0eapi: fix crash/leak with float title/footer on error (#30543) -022449b522api: generic error messages, not using TRY_WRAP #31596 -8de1dc6923api: make `nvim_set_hl()` respect all `cterm` attributes (#31390) -ad60b3fb48api: memory leaks in vim.api.nvim_*get_option #32390 -167a2383b9api: not using TRY_WRAP, generic error messages #31595 -bf48dfadecapi: nvim__complete_set requires completeopt=popup #31177 -d1d7d54680api: nvim_buf_get_text() crashes with large negative column #28740 -6ea45031d5api: nvim_echo free text memory with invalid highlight (#31243) -e2ad251c8dapi: nvim_get_option_value does not clean up on FileType error #31219 -5b9518b436api: nvim_set_decoration_provider callback return type #31912 -01a97d2ad7api: nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576 -40347f6e27api: only flush nvim__redraw when necessary #31250 -36f44b3121api: remove invalid assertions -235cb5bc5fapi: update "range" windows in nvim__redraw #31042 -9c718bc2bcapi: validation, documentation of hl_group #31195 -289c9d21cbautocmds: once=true Lua event-handler may call itself #29544 -ffaab09e99build: <termios.h> is system-dependent #31705 -486076a0e1build: remove USE_FNAME_CASE, redundant with CASE_INSENSITIVE_FILENAME -217e26cb64build: surpress spurious warnings from gcc in -E preprocessor mode -34a2bfdcc5build: vimdoc tags are not validated #32801 -8070988247channel: handle writing to file instead of pipe (#30519) -c49162be59channel: log after (not before) channel-close -965dc81f81checkhealth: disable 'listchars' #31245 -4c9f3689a1checkhealth: failed if 'lua' in plugin name -f5dd30948echeckhealth: handle nested lua/ directory #32918 -c48cf18752checkhealth: module not found when `&rtp` has nested paths #32988 -2495e7e22aclipboard: tmux clipboard depends on $TMUX #31268 -847c28f6f6cmdline: always show cmdline when it is a prompt #31866 -af4231d407cmdline: cmdline completion of _defer_require() modules #33007 -a70ad5cdb6cmdline: ext_cmdline block events for conditionals -bbf36ef8efcmdline: prevent cmdline_show events after exiting cmdline #32033 -092042b43dcmdline: simplify and correct grapheme cluster adjustment -86ae59c612colorscheme: distinguish CursorLine/Folded/StatusLineNC highlights #32256 -9b9f54e2c1colorscheme: underline StatusLineNC with 'notermguicolors' #28810 -8bc28978b6column: apply custom highlight to last 'statuscolumn' segment (#32182) -3cb1e825e6column: check if signcolumn changed in all windows #31439 -1dcda86559column: clamp line number for legacy signs -f2083bd55ccolumn: crash with 'signcolumn' set to "number" (#29003) -f9a49fab0ccolumn: modifying a sign should update placed signs (#29750) -d5f6f61879column: set signcolumn width after splitting window (#30556) -063b69bab4column: unnecessary redraws with resized 'statuscolumn' (#32944) -0a2218f965comment: fall back to using trimmed comment markers (#28938) -e788d1a3a9completion: avoid deleting text when completion leader changes #31448 -bfa365a872completion: don't include <Lua function> in -complete= (#30209) -55dc482e75completion: fix inconsistent Enter behavior (#30196) -83a7d97d64coverity: CID 509571 Uninitialized variables #30395 -e1c2179dd9coverity: INTEGER_OVERFLOW #31657 -f9eb68f340coverity: error handling CHECKED_RETURN #31618 -069451bb21coverity: size_t overflow #30497 -ff7832ad3fcoverity/497355: shada_read_when_writing out of bounds read #30665 -c49030b75acoverity/497375: f_strpart cast overflow (#30773) -0fe4362e21coverity/509227/509228: tui driver_ti underflow #30341 -60e1862ccbcoverity/510275: linematch out of bounds access (#30687) -a2008118a0coverity/510436: shada_read_when_writing index out of bounds (#30686) -71507281fbcoverity/530826: validate_opt_idx unchecked negative idx (#32081) -5af9c065addecor: don't draw invalidated virtual lines (#29858) -a8fbe1d409decor: don't use separate DecorSignHighlight for url (#30096) -34ded4d97bdecor: exclude invalid marks from meta total -87610d82dbdecor: set invalid flag for end of invalidated paired marks -33ff546b50decoration: fix crash when on_lines decor provider modifies marktree -0e299ebf75decorator: noisy errors from decoration provider #31418 -f2173b1aa2defaults: cannot remove "How-to disable mouse" menu item #30375 -61aabe0730defaults: default @/Q broken when 'ignorecase' is set (#29343) -8323398bc6defaults: don't replace keycodes in Visual search mappings (#31460) -f6f2334ac2defaults: error messages UX for unimpaired mappings #30884 -59a171fd99defaults: improve visual search mappings #32378 -01739d4673defaults: missing ]Q/[Q unimpaired mappings #30943 -c644228e1ddefaults: omit empty line from unimpaired mapping messages (#31347) -ff93cccbc1defaults: omit extraneous info from unimpaired mapping errors (#30983) -4075e613b2defaults: properly pass count to quickfix commands (#30632) -289380bc40defaults: use "range" instead of "count" for some mappings (#30642) -573fcb8b66deps: revert accidental test commits (#30864) -de794f2d24diagnostic: broken variable reference #31557 -c78728a384diagnostic: clear autocmd only for valid buf (#32861) -f1fcf653cbdiagnostic: clear virtual_lines autocmd only for valid buf #32979 -921dc22fc0diagnostic: correct `severity` type on `setqflist`, `setloclist` (#30506) -0e8e4a07f5diagnostic: don't include diagnostic code when using custom formatter #32464 -d918ebe3b8diagnostic: fix backwards compatibility for goto_next and goto_prev (#29593) -f69937fdbddiagnostic: fix float scope filtering (#29134) -5bc948c050diagnostic: improve current_line refresh logic #32275 -4b3be56a03diagnostic: make docs agree with code (#29561) -fd902b1cb2diagnostic: only store quickfix id when creating a new one #31466 -3b1d0e7f70diagnostic: remove deprecated `severity_limit` option -5eda7aafe9diagnostic: setqflist() is stuck after vim.lsp.buf.document_symbol #31553 -9a43ec13e6diagnostic: show backtrace for deprecation warnings -4cbeb6fa3cdiagnostic: silence :chistory #31701 -6c975515c5diagnostic: vim.diagnostic.setqflist() opens loclist on first call #31585 -17c25a66fcdiagnostic: virtual lines should scroll horizontally -fb842dfc22diagnostic: virtual_lines diagnostic columns (#32703) -e5e81262afdiagnostics: don't apply extmarks to invalid lines #29321 -c65646c247diff: use mmfile_t in linematch -81ea44fa6adisplay: adjust winline info for concealed lines below last line (#32708) -f25dd7a8d5display: correctly store winline info for concealed lines (#32656) -a901fb875fdocs: add missing properties to hl_info #30032 -cc26cf0400docs: do not treat indexes as `short_link` -056009f741docs: markdown instead of vimdoc in meta docstrings #30680 -8801b77ed0docs: missing `@returns` desc in _meta/api.lua #30673 -09bcb31068docs: replace `yxx` mappings with `g==` #31947 -efe92f9dffdocs: update context type in `vim.lsp.LocationOpts.OnList` -b8135a76b7docs: wrong return value annotation for `nvim_buf_get_extmarks` -376de1483edrawline: correct highlight priority with Visual selection (#30706) -9a0239fdc8drawline: don't draw beyond end of window (#29035) -b1c439cef6drawline: don't draw beyond end of window with 'rnu' (#29406) -34344b939ceditor: avoid scrolling :substitute confirm message #32149 -9e7b0bcf51editorconfig: fix indent style for `local.mk` (#31342) -b0a1d35f69eval: don't shorten $HOME in v:stacktrace (#32634) -2a3561819eeval: handle wrong v:lua in expr option properly (#29953) -4317d36669event-loop: process input before events in getchar() (#32322) -f05a6666cfevents: always allow some events to be nested (#32706) -e9f4ceeb74events: don't expand `args.file` for Lua callback (#31473) -1f49a59b8bevents: fix incorrect capitalization of Cmdwin* events (#32813) -8c2d45be77exit: close memfiles after processing events (#30872) -c7ec010adeextmark: builtin completion can still affect nearby extmarks #31387 -93278e7720extmark: clearer error message for invalid ephemeral mark usage -43a2019f09extmarks: issues with revalidating marks #28961 -84ad95fdc9fileio: copy to correct buffer position when reading -93347a67bffiletype: fix :filetype detect error with -u NONE (#29991) -aa9f21ee95filetype: fix typos in filetype detection -032e024f8afiletype: handle .in files with no filename (#30487) -1077843b9bfiletype: make filetype detection work with :doautocmd (#31470) -21cbd90007filetype: normalize full path before matching #32227 -5a8a34dafafiletype: source ftdetect/* after creating scripts.vim autocmds (#29445) -cff5fa49fcfloat: "Not enough room" error for 1-line float #25192 -07c5f41da3float: can set title/footer without setting border #32594 -be01b361d8float: cannot set title/footer independently #31993 -ff1791c9e5float: close preview float window when no selected #29745 -d2cca606a1float: ensure floating window width can fit title -8ddcf9d939float: handle error in win_float_create() (#29742) -8b2b1fba2afloat: missing default highlight for title -df915f3afcfloat: properly find last window of tabpage (#30571) -17383870ddfloat: re-sort layers when grid zindex changed #30259 -206f8f24a2fs: make vim.fs.root work for relative paths and unnamed buffers (#28964) -2c160f39d3ftplugin/man.vim: hide signcolumn (auto) -214ce8d33cgen_help_html: first tag in h2 is broken #30720 -ceea6898a8gen_help_html: handle delimiter, heading #29415 -6c3f7e7e27gen_vimdoc: correctly generate function fields -913e81c35fgetchar: do not simplify keycodes in terminal mode -b109b1abceglob: avoid `subcapture nesting too deep` error (#29520) -4bd86120d4glob: handle overlapping `{}` condition elements #29236 -b47b0b3f75grid: double grid_line_start() with ext_messages #31292 -fe87656f29grid: grid_line_start NULL access with 'redrawdebug' -a9c89bcbf6gx: allow `@` in url -570a8da01bhealth: "q" should not close last window #31876 -2e3f1069f4health: better layout of vim.treesitter health check -10f9173519health: broken ruby detect #28804 -84e85aeb10health: check more "old" files #30421 -5b778a64echealth: fix fetching url with python in provider health (#29594) -b4b4cf46a7health: fix pyenv root and python exepath detect issue -237d2aef4dhealth: return correct name from 'path2name()' -5e90406487health: set nomodifiable in checkhealth buffers -9177371014help: remove runnable code virtual text -ff75f345abhighlight: 'winhl' shouldn't take priority over API (#31288) -458473acb8highlight: add `StatusLineTerm`/`StatusLineTermNC` to `:color vim` (#29313) -6bcefad5a6highlight: fix the seg fault caused by the invalid linked hl ids -8e81212e15highlight: floating windows inherit NormalFloat from global-ns -6719276040highlight: make TablineSel more noticeable with 'notermguicolors' #31905 -b67fcd0488highlight: make `TablineSel` more noticeable #31896 -862679c70fhighlight: update `PmenuSel` for colored completion items #30183 -59e130b6cainccommand: ensure cursor is where it belongs -16f63b964finput: handle vim.on_key() properly with ALT and K_SPECIAL (#29677) -b52ffd0a59inspect: always show priority -9c278af7ccinspect: show priority for treesitter highlights -22fd52325binspector: update semantic token namespace (#32157) -efe1732c6fjobs: do not block UI when jobwait() doesn't block (#31803) -574ea6a191keycodes: recognize <Find>, <Select> #28431 -67bb0cfa79loader: follow the style of the error message for built-in loaders -44740e561flog: RPC log format #32337 -851137f679log: log unset $TMPDIR at "debug" level #32137 -c908c2560dlog: unify error messages for vim.ui_attach/decor providers #33005 -a6f219b06blog: unintuitive message for undefined $TMPDIR -2e6d295f79lsp: account for changedtick version gap on modified reset (#29170) -fac96b72a5lsp: add foldingrange method support check #31463 -8263ed4670lsp: add textDocument/documentLink to capability map (#28838) -a41b6fd173lsp: autocmds to close lsp preview windows not cleared -b42dc232c5lsp: autotrigger should only trigger on client's triggerCharacters (#32266) -7031949be0lsp: avoid reusing diagnostics from different servers in actions (#30002) -fc9b70826elsp: avoid vim.keymap.del error when stopping a client (#29478) -39d79efa1elsp: better multi-client support for callHierarchy -bdfba8598blsp: cancel pending requests before refreshing -f9bf64d746lsp: check buffer is loaded and valid #30330 -c2bf09ddfflsp: check for configuration workspace folders when reusing clients -81b372fecdlsp: check for nil response from server (#29196) -a9cdf76e3alsp: check for valid buf before processing semantic tokens response -230bc34ca5lsp: check if buffer is valid before LspDetach autocmd (#29162) -af200c10cflsp: check if buffer was detached in on_init callback (#28914) -02097e43c8lsp: check if sig_help window is focusable when configuring cycle keymap -025c874415lsp: clear lsp client diagnostics (#29050) -c374f26430lsp: clear word when expand multi-lines word (#32393) -adf7c98d60lsp: compare URI instead of workspace folder name (#30962) -b4599acbf8lsp: correct hover result handling (#30995) -f8d5811c71lsp: correctly check for "codeAction/resolve" support -7d8db54441lsp: delete b:lsp_floating_preview buf var after win close -2a1f604c77lsp: delete bufvar inside WinClosed event -879d17ea8dlsp: detach all clients on_reload to force buf_state reload (#28875) -292365fa1blsp: do not detach from buffer if there are uninitialized clients (#29029) -37bf4c572alsp: do not reset buf version when detaching client (#29242) -d56ba71af1lsp: document_symbol uses loclist by default #32070 -720b309c78lsp: don't send foreign diagnostics to servers in buf.code_action (#29501) -1f2f460b4alsp: don't show codelens for buffers that don't support it (#29690) -5f527f24f0lsp: don't use completion filterText if prefix is empty -305012ea07lsp: enable `additionalPropertiesSupport` -9d9ee3476elsp: ensure watcher cancel -aec7f1979alsp: fallback to `label` for completion items if all others are missing (#29522) -33d10db5b7lsp: filter completion candidates based on completeopt (#30945) -b3109084c2lsp: fix cursor position after snippet expansion (#30659) -4b001f297alsp: fix infinite loop -983953858elsp: fix isIncomplete condition in completion trigger (#30130) -2ce4a4d91elsp: fix reverse sorting of same position text edits (#29212) -8654a97006lsp: handle empty call hierarchy items #30349 -f279d1ae33lsp: handle encoding bounds in str_utfindex_enc -882a450a29lsp: handle locations exceeding line length #30253 -008782208dlsp: handle mixed encoding in tagfunc params -e0a5c3bb58lsp: handle multiline signature help labels #30460 -8512f669f0lsp: handle nil bytes in strings -f03b1622adlsp: handle nil root_dir in health check (#29007) -ed07167261lsp: handle non-existent configs in lsp.config/enable -003b8a251dlsp: handle out-of-bounds character positions #30288 -5187be81c2lsp: handle using array as open_floating_preview title (#33016) -d9a2acdab3lsp: hide layout in codelenses in virtual text (#28794) (#28807) -f54266dbedlsp: hover border type can be string (#31013) -9a681ad09elsp: hover keymap (#31208) -a14fca432blsp: improve LSP floating preview window cleanup #31353 -e29f245a10lsp: inlay hints are rendered in the correct order (#29707) -0086ee90ddlsp: list all workspace folders in healthcheck #30966 -0e394f136flsp: log when receiving markup messages (#30065) -203e7a43d1lsp: mention function name in warning #31301 -a4f575abd8lsp: minimum height for floating popup #31990 -4fd2694f20lsp: missing method parameter when canceling requests -be8d87014clsp: on detach, cancel pending foldingRange requests #31509 -7d5866d471lsp: open_floating_preview() ignores max_height (#32716) -86770108e2lsp: open_floating_preview() zindex relative to current window #31886 -724d1110b1lsp: pre-filter matches on label if filterText is missing (#29491) -a450fda4edlsp: prefer `on_list` over `loclist` in default handler -6bb40f3dbflsp: prevent desync due to empty buffer (#29904) -eb629cce91lsp: redundant spaces in lsp log (#29970) -43581011e4lsp: remove superfluous on_detach callback from semantic tokens module (#29174) -d76f7fef13lsp: reset active request when reporting an error -6bc7979044lsp: reset the applied hints on `refresh` request #32446 -47aaddfa0dlsp: resize hover window for concealed lines -081beb3659lsp: restore get_language_id behaviour -29c72cdf4alsp: retrigger diagnostics request on server cancellation (#31345) -d9ccd828b0lsp: return call hierarchy item, not the index (#30145) -9c20342297lsp: reuse client if configs match and no root dir -6e45cd7f00lsp: revert buf_versions deprecation/replacement (#29217) -bdff50dee5lsp: revert text edit application order change (#29877) -e8a6c1b021lsp: schedule call to vim.lsp.start for async root_dir (#31998) -a108852b00lsp: semantic token functions allow "0" bufnr #28849 -c3cb702ac7lsp: set 'smoothscroll' in docs hover #30748 -8a236c242alsp: set floating window filetype after setup #32112 -3c51058d76lsp: set tagstack on jump via goto methods -24d7debdfblsp: signature_help highlights wrong parameter #32382 -80e37aa533lsp: str_byteindex_enc bounds checking #30747 -629a5b71b5lsp: support multiple clients in typehierarchy -e48179f31elsp: suppress completion request if completion is active (#30028) -50f006b617lsp: tagfunc fails in unusual buffer #30700 -5ac8db10f0lsp: trigger LspDetach on buffer delete (#28795) -19be3d2683lsp: trim trailing whitespace from completion words (#29122) -aa47af7e69lsp: tune completion word extraction for decorated labels (#29331) -38838fb00alsp: type-errors, other nits in vim.lsp.log #31235 -8d7eb03040lsp: unify get_completion_word for textEdits/insertText -fe5ae88b20lsp: update request name to capability map #30098 -5aa9906676lsp: use client.id instead of pairs index (#29143) -c8d7d65679lsp: use correct method for prepareTypehierarchy -b9e6fa7ec8lsp: use filterText as word if textEdit/label doesn't match -5d08b65ac2lsp: use unresolved code action when `codeAction/resolve` fails -0a7e4e9e5flsp: vim.lsp.enable(...,false) does not disable #32002 -888a803755lsp: vim.lsp.start fails if existing client has no workspace_folders #31608 -42ed0ffad9lsp: when prefix is non word add all result into matches (#30044) -55bdb077b7lsp: wrapped ctx in opts before passed to vim.lsp.completion.trigger #32837 -2dcbfe78fclsp.buf: use correct offset_encoding for all requests -3275ae830dlsp.protocal: improve typing of constants -acbc6a7f91lsp.util: inconsistent handling of offset_encoding -564173e556lsp.util: wrong arguments to 'validate' function -614c9322d5lua: SIGSEGV in luv callback with error(nil) #32595 -b283736388lua: `@private` => `@nodoc` #32587 -b6e350a6b4lua: allows tables with integer keys to be merged in tbl_deep_extend -c8b64b7a43lua: always use vim.inspect() for :lua= (#32715) -0e42c81c7flua: avoid recursive vim.on_key() callback (#30753) -fe1e2eff06lua: avoid vim._with() double-free with cmdmod (#31505) -487f44a6c1lua: change some vim.fn.expand() to vim.fs.normalize() (#29583) -43bd9c9c1clua: don't clamp -1 or v:maxcol in vim.highlight.range() (#29203) -bdc6e38781lua: don't include text after cursor in completion pattern (#29587) -e2aca58bcclua: don't override script ID from :source (#32626) -d40481322alua: ensure inspect_pos() only shows visible highlight extmarks -948f2beed4lua: find length of completion prefix earlier (#29384) -ebb963a4a0lua: format errors from luv callbacks using __tostring -65a703e060lua: ignore stdout and stderr for xdg-open -6b00c9acfdlua: no omni/cmdline completion for vim.env (#33044) -c6d2cbf8f5lua: pop retval for fast context LuaRef -a5b1b83a26lua: prevent SIGSEGV when lua error is NULL in libuv_worker -3d707e6f14lua: remove vim.loader.disable() #31344 -3a88113246lua: revert vim.tbl_extend behavior change and document it -3688a33354lua: show stacktrace for error in vim.on_key() callback (#31021) -40a149e7f9lua: types for vim.api.keyset.win_config #32700 -7f33c1967blua: use rawget() to get __call in vim.is_callable() (#29536) -960fdc775alua: vim.deprecate does not support major>0 -d832518ec6lua: vim.hl.on_yank highlights wrong region with yi' (#32850) -cd3855fb2blua: vim.tbl_get({}, nil, 1) should return nil #32218 -89d6d6f25clua: wrong script context for option set by func from nvim_exec2 (#32659) -9eb0426002luacats: allow all types inside tuples -ee5aaba215man: avoid setting v:errmsg (#30052) -7588ff2d89man: check if buffer is valid before restoring 'tagfunc' (#30180) -da6f68ee69man: filter OSC 8 hyperlink markup #29171 -7940ec6913man.lua: `:Man <tab>` does not complete #31569 -e08e3d15f6man.lua: skip `Attrs.None` highlights #32262 -d6653e1cc9marks: ensure decor is removed with proper range (#32973) -906ad04dddmarks: handle composing in inline virt_text with 'nowrap' (#32477) -8452032554marks: handle double-with inline virt_text with 'nowrap' (#32476) -86046c5a31marks: ineffective conceal_line callback optimization (#32662) -72f630f92dmarks: issues with invalid marks and marks beyond eob (#32862) -8da59060c6marks: mark winline as invalid if change is in a concealed line (#32766) -012db2b0f5marks: revalidate marks whose position did not change -5cc93ef472marks: revise metadata for start mark of revalidated pair #32017 -c4f76299f0marks: skip right_gravity marks when deleting text -cdedfc3743marks: truncate double-width inline virt_text consistently (#32560) -7371abf755marks: wrong winline info for concealed line with below virt line (#32747) -a9287dd882mbyte: check for utf8proc_map() failure (#30531) -50a576ba57mbyte: mark any 0xFE0F sequence as a TUI ambiguous width char -15bc930fcamemline: don't check line count for closed memline #32403 -aa976f0d93messages: add a trailing space to inputlist() etc. prompts (#32328) -37c77ab46bmessages: attaching/detaching ext_messages causes asserts #31952 -d98827b634messages: avoid empty msg_showmode with 'noshowmode' -31d6885debmessages: better formatting for :highlight with ext_messages #31627 -21718c67ddmessages: better formatting for ext_messages #31839 -92556be33dmessages: compute msg_col after last newline in ext_messages -ad853d1df0messages: improve deadly signal messages #32364 -51853b82bcmessages: incorrect error message splitting and kind #32990 -08f7c22377messages: list_cmd kind for :registers, :au[g] #32531 -7ce27381fbmessages: lsp window/showMessage is not an error -1b6442034fmessages: more ext_messages kinds #31279 -9c6a3703bbmessages: no message kind for :undo messages #31590 -ca760e645bmessages: no message kind for :write messages #31519 -909b18d05amessages: no message kind for completion menu messages #31646 -f111c32ff9messages: no message kind for search pattern #31272 -282f73f067messages: no trailing newline for inputlist, tselect, z= with ext_messages -9fa3a0964emessages: pass previous highlight id to ext chunks -e025f5a5b3messages: proper multiline Lua print() messages #31205 -d1e00a5f6dmessages: typo and unwanted truncation in msg_outtrans_long #31669 -d55b17e2b4messages: verbose kind for nvim_echo() -c8e47f6480meta: do not use hyphens in param names -2cd72258f6mouse: 'statuscolumn' fold and popopmenu handling -81d4e96bc8mouse: don't treat click on hsep as click on statusline (#29565) -102971a396mouse: early return when clicking in padded 'statuscolumn' (#29394) -86c5c8724bmouse: indicate X1 and X2 button clicks on statusline (#30655) -f86864f22fmove: 'scrolloff' cursor correction no longer handles folds properly (#32642) -5947f249f8move: half-page scrolling with resized grid at eob (#28821) -ac7e0ff32fmove: redraw for 'concealcursor' after changing w_wcol (#31276) -af0a2157admove: wrong cursor row on concealed line (#32629) -83479b95abmpack: remove invalid bool definition -d32780de4dmswin: UI may hang on exit -fa99afe35emultibyte: handle backspace of wide clusters in replace mode -de83cc5842netrw: re-add missing comment marker in syntax file -d9585bdcfbnvim__set_complete: pum preview info truncated during completion #32555 -34e2185022options: better handling of empty values -190d0241e2options: fix 'winborder' accepting multiple string values (#32978) -8c532a9ea8options: fix 'winhl' still accepting invalid value (#30896) -1b9dafa67boptions: fix :setglobal not working for 'spelloptions' (#30894) -395f420fc6options: fix some 'belloff' flags not working properly (#30856) -50e63c8171options: missing error check for global 'scl' and 'winhl' (#30919) -e697c1b43dpaste: improve repeating of pasted text (#30438) -052875b9dcpaste: only record a paste when it's from RPC (#30491) -9516997eb0paste: wrong '[ mark after pasting a big string (streamed chunks) #33025 -42aa69b076path: avoid chdir() when resolving path (#28799) -42db8b1759path: crash with nvim_get_runtime_file during wildcard expansion (#32992) -0dfcf3fe12plines: don't count invalidated virt text in char size (#29863) -afc3c43f12popup: new preview_bufnr created when menu item is selected #32819 -ac1c5ccb2cpopup: reuse pum preview float win, set 'winfixbuf' #32636 -d288f7003dpopup: wrong extmark data sync when lines changed in popup preview #30246 -d24fb72c33pum: don't select item when clicking to the left/right (#30967) -73ae7d44a2quickfix: make shortmess+=O work with cmdheight=0 (#29609) -3bcd5624beregexp: fix typo in E888 error message (#30161) -cb924764a4runtime: "E121 Undefined variable s:termguicolors" #32209 -29a47b39ccruntime: E15: Invalid expression in lua file when `gf` -b6c1ce8a95runtime: add commentstring for glsl ftplugin -9ddfcb64bfruntime: add remaining missing commentstrings (#30252) -e641155b02runtime: avoid E31 in ftplugin (#32578) -82b02ae2f2runtime: clean up one-off scripts -9788b81d7eruntime: fully port emoji_list to Lua -74fcc9452cruntime: gO always says "Help TOC" #32971 -69aa33d890runtime: let matchit and matchparen skips fallback on treesitter captures -8369590eb2runtime: remove obsolete ftplugin/calender.lua -41b70a0dearuntime: set 'keywordprg' only once in vim ftplugin -7b16c1fa84runtime: source c ftplugin properly for cpp on Windows (#29053) -12c9791e0fruntime: stop treesitter highlight in b:undo_ftplugin (#29533) -862338255druntime: sync bundled treesitter queries -9e80738f30runtime: sync bundled treesitter queries -5057753431runtime: treat b:undo_ftplugin consistently in Lua ftplugins (#30473) -8f5e908110runtime: update b:undo_ftplugin in Lua runtime files (#29529) -a5bd6665b0scripts: update bundled dependencies in bump_deps -573a71469dscrollbind: properly take filler/virtual lines into account -a8b6fa07c4search: avoid quadratic time complexity when computing fuzzy score (#32153) -648d6426c8server: CID 509282: DEADCODE #30316 -f4921e2b7dshada: ":wshada/:rshada [filename]" with shadafile=NONE #32538 -cd48b72b60shada: restore search pattern length properly (#28929) -608543f8a9snippet: cancel snippet session when leaving the buffer (#29031) -7994fdba6asnippet: don't override unnamed register on tabstop select (#28998) -5fe4ce6678snippet: modify base indentation when there's actually whitespace (#29670) -424f4cc038snippet: wrong indentation when snippet contains "^" #32970 -d46ebd2a74startup: avoid crash with completion from -l script (#32160) -08153ddd1cstartup: ignore broken $XDG_RUNTIME_DIR #30285 -17e00d0cc6startup: report --startuptime error to stderr (#31131) -8a2aec9974startup: server fails if $NVIM_APPNAME is relative dir #30310 -19fc65acbcstatuscolumn: misleading v:lnum for virtual lines #32912 -87e806186cstatusline: overwriting stl_items with nvim_eval_statusline() {-item #32265 -1c30d86c33tabline: restore behavior of click after last tabpage (#30602) -a49f95d887terminal: avoid mismatched `busy_start` without `busy_stop` (#32458) -f3ce67549cterminal: avoid more `busy_start` lacking `busy_stop` (#32509) -3d49c55d3cterminal: avoid rescheduling events onto the same queue (#32755) -69a19295f8terminal: delay when finishing terminal process #32846 -f8c8a245aaterminal: don't crash on unprintable chars -6d997f8068terminal: handle C0 characters in OSC terminator (#30090) -fa46441264terminal: improve cursor refresh handling (#32596) -1d11808bfdterminal: interrupt/got_int hangs terminal (#30056) -3db3947b0eterminal: restore cursor from 'guicursor' on TermLeave (#31620) -c51bf5a6b2terminal: set cursor cell percentage (#31703) -5def8714adterminal: set local values of window options (#29326) -e9c077d197termkey: fix null pointer dereference (#31792) -c8e3618e0etest: "tempdir not a directory" in CI logs -f7e32fb6e6test: better management of tmpfiles -db2c3d1143tests: filter out lines with __typeof__ keyword (#32524) -e61228a214tests: needing two calls to setup a screen is cringe -639734bed4tests: remove the __extension__ keyword in filter_complex_blocks (#32483) -59baa5e8a1tohtml: apply sp color if present #30110 -67c39f5ecatohtml: disable modeline #32822 -e37404f7fetohtml: enclose font-family names in quotation marks -25db0a1385tohtml: extmark text may be out of bounds -8cd9feb501tohtml: ignore lsp inlay hints -eb37241d38tohtml: properly handle multiple hl groups #29012 -2ed6423c7etohtml: replace ipairs with pairs -88c7997503tohtml: show how many warnings are hidden -118ae7e5edtohtml: support ranges again -c63e49cce2treesitter: #trim! range for nodes ending at col 0 #31488 -b63cd8cbaetreesitter: EditQuery shows swapfile ATTENTION #30536 -55b165ac15treesitter: `TSNode:field()` returns all children with the given field -86b737649btreesitter: add 'QuitPre' event to autocommands in inspect_tree -bc1018a8d3treesitter: avoid computing fold levels for empty buffer -a119dab40ftreesitter: avoid computing foldlevels for reloaded buffer #32233 -6696ea7f10treesitter: clean up parsing queue -99acc9de55treesitter: close InspectTree/EditQuery window on BufUnload (#31036) -f50f86b9fftreesitter: compute folds on_changedtree only if not nil -7a20f93a92treesitter: correct condition in `__has_ancestor` -9b25c68db2treesitter: correctly parse queries with combined injections -3abfaafad2treesitter: detect trees with outdated regions in `is_valid()` -9217e0d671treesitter: display fields for anonymous nodes in :InspectTree -da4e8dc5b0treesitter: do not modify highlight state for _on_spell_nav -0e3e1e6b6dtreesitter: don't open fold when o/O adds a line below #28709 -aa2b44fbb0treesitter: don't return error message on success #31955 -b0bbe25c48treesitter: don't spam query errors in the highlighter -b88874d33ctreesitter: empty queries can disable injections (#31748) -d413038b4ftreesitter: ensure syntaxset augroup exists (#29542) -f8e1ebd6f6treesitter: escape things like `"` in omnifunc results -c4eb0b64bdtreesitter: find buffer in multiple windows #28922 -94d42a3e72treesitter: highlight anonymous nodes in inspect_tree -5331f87f61treesitter: indent size for inspect_tree #28727 -6ef80eb42ctreesitter: keep treeview open if source window is still open #31198 -052e048db6treesitter: lint top-level anonymous nodes -4b90952851treesitter: mark supertype nodes as named -096ae3bfd7treesitter: nil access when running string parser async -c3337e357atreesitter: nil check query for has_conceal_line -6711fa27catreesitter: recalculate folds on VimEnter #32240 -05dcda8f9btreesitter: recognize aliased parsers in omnifunc, query linter -d3193afc25treesitter: remove duplicate symbol names in language.inspect() -cdc9baeaf8treesitter: remove redundant on_bytes callback #31041 -1827ab7a1ftreesitter: separately track the number of valid regions -36990f324dtreesitter: show proper node name error messages -4349bdbd0btreesitter: specify success status in edit_query return value -e7ebc5c13dtreesitter: stop async parsing if buffer is invalid -0f067cd34dtreesitter: suppress get_parser warnings via opts.error -ae917dbd06treesitter: sync queries from upstream -c4e9ff30a6treesitter: sync queries with upstream -d8eec81560treesitter: update lua, markdown queries -6e44a6a289treesitter: update queries -5a54681025treesitter: uv_dlclose after uv_dlerror -e4bc8b5967treesitter.foldexpr: only refresh valid buffers -48acbc4d64treesitter.foldexpr: refresh in the buffers affected by OptionSet -8474f52978treesitter.foldexpr: robustness against ctrl-c -f81131cca2tui: also reset cursor color if it was invisible (#31348) -4846bf05dctui: avoid flushing buffer halfway an OSC 2 sequence (#30793) -720ec5cec2tui: cursor color in suckless terminal #32310 -b5cb69f8a4tui: handle key events for arrow and function keys (#31804) -d7651b27d5tui: move $COLORTERM check to _defaults.lua (#29197) -a811d4babdtui: only reset cursor color if it was changed (#31337) -0c0352783ftui: remove DCS escaping in tmux (#32723) -47c741e30ctui: remove duplicate disabling of synchronized output (#28884) -f32557ca67tui: reset active attr ID when OSC 8 sequence is terminated (#29960) -bc63ffcf39tui: reset clear_region attributes during startup #28713 -b02c839414tui: set id parameter in OSC 8 sequences (#29840) -0231265c8ctui: skip TUI in ui_rgb_attached (#29096) -8b8096500dtutor: incorrect lines marked as correct #29833 -31745b17e6types: add narrower vim.validate types -44410d063atypes: add some vim.fn type annotations -b813075b8atypes: do not mark unstable API as private -e947f226betypes: use vararg return type annotation -a1906c23ddui: Windows :detach is opt-in -594c7f3d77ui: avoid ambiguity about last chunk when flushing halfway (#29718) -216ec73972ui: avoid redundant ext_cmdline events (#32237) -6cdcac4492ui: clamp 'cmdheight' for other tabpages on screen resize (#31419) -318c0415d5ui: correctly pass metadata to get_node_text #30222 -7eba016c86ui: ensure screen update before waiting for input #30576 -5b6477be45ui: flush ext_cmdline events before doing cmdpreview #27950 -6e4df18b45ui: no fast context for prompt message kinds #31224 -6b8c56c7f6ui: schedule UI detach (#32827) -b66106a46cui: superfluous showmode / excessive grid_cursor_goto #29089 -d1fd674df3ui: update title in more cases (#31508) -442d338cb5uri: uri_encode encodes brackets incorrectly for RFC2732 #31284 -d049752e45version: fix vim.version().prerelease -8bdfc2ab2bversion: return nil with empty string -6401b433f7vim.fs: default to follow=false #32859 -47e6b2233fvim.fs: dirname() returns "." on mingw/msys2 #30480 -0bef3b911cvim.fs: joinpath() does not normalize slashes on Windows #31782 -6dc0eb9f41vim.fs.abspath: correctly handle UNC paths -a8ace2c58avim.fs.normalize: normalize case for windows drive letter -4c0d18c197vim.iter: enable optimizations for arrays (lists with holes) (#28781) -734dba04d1vim.system: close pipe handles after process handle -4e130c1ee4vim.system: invalid MAX_TIMEOUT for 32-bit systems #31638 -ad3472e291vim.system: resolve executable paths on windows -33464189bcvim.text: handle very long strings (#30075) -4cff418564vim.text: remove assert from vim.text.hexdecode -d338ec9cb2vim.ui.open: prefer xdg-open on WSL #30302 -8bf79bd13cvim.wo: never allow non-zero bufnr -453f2c52d2vim_snprintf: special-case handling of binary format -32e128f209watch: exclude .git when using inotifywait (#29914) -9e23b4e185watch: ignore nonexistent paths (ENOENT) -a18652ed61win-msi: add bin to PATH per-machine after installation (#29099) -88f07d6ca4win-msi: set installer scope to machine #29895 -4f9311b759window: making float with title/footer non-float leaks memory (#30551) -7b71fdbc1ewindow: respect hide flag of float windows when switching (#30507) -59da82abd9wininfo: when freeing windows, free the lowest priority wininfo PERFORMANCE -------------------------------------------------------------------------------- -48251134eeadd fast path to vim.validate (#28977) -3abd7ed4a4consider only active decorations when drawing lines -8d2ee542a8decor: join predicates and matches cache -48e3ac60c6diagnostics: cache line diagnostics when `current_line` is set #32288 -b8ddd3b6bbevents: remove unnecessary loop in event_nr2name() (#32777) -15f2da55a8events: use hashy for event name lookup (#32802) -abf4b65a51filetype: cache (more) pattern data during "add" time -f61efe3fe7filetype: implement parent pattern pre-matching (#29660) -ff575b3886filetype: optimize internal data structures -dc04ef2a20filetype: skip contents check in `match()` if there is no contents (#29596) -12d4caa9d3keycodes: use hashy for string lookup -f8fc6cb157loader: reduce calls to Loader.cache_file -138a93a057lsp: avoid repeated table lookup in completion.enable -7342e6b00dlsp: do not apply semantic tokens to folded lines -c85d15e0d5lsp: don't construct potentially expensive strings -cc1f2d2ca6lsp: don't copy completion items in filter pass -3e855d533flsp: use faster version of str_byteindex -000129201cmouse: only generate <MouseMove> for a new cell positon (#31103) -3fdc430241treesitter: cache queries strongly -b192d58284treesitter: calculate folds asynchronously -c6abc97006treesitter: do not use tree cursors with a small lifetime -cbad2c6628treesitter: don't block when finding injection ranges -d9ee0d2984treesitter: don't fetch parser for each fold line -562056c875treesitter: only search for injections within the parse range -c57a85e0edtreesitter: remove unnecessary foldexpr loop -64847fbdc9treesitter: use `child_containing_descendant()` in `is_ancestor()` -4b02916334treesitter: use child_containing_descendant() in has-ancestor? (#28512) -3f3e4837d5validate: use lighter version -99b5ffd688vim.text: use lookup table implementation for hex encoding (#30080) BUILD -------------------------------------------------------------------------------- -104800ce2e"popcount" name conflict on NetBSD #28983 -198a952c13add luals check -ef8067a19dadd quotes around `CMAKE_GENERATOR` variable -32e16cb0b6add utf8proc as dependency -b213f5169callow comment after #include for required header (#29722) -382eb878bcbump lua dev dependencies -1d815acd78bump minimum cmake version to 3.16 -5284a2a793bump unibilium to v2.1.2 -ac5a6d9ff5fix RelWithDebInfo optimization flags #31802 -7c65224257fix lint error on macos -046e0956eefix or silence new clang-tidy warnings -5719f2b91afix uncrustify install in nix devShell (#33020) -4a0ee22e77make makefile work on msys -4ee65484b1make makefile work on windows -1b90f4a9c4mark CMake variables advanced #31412 -0f24b0826amove all generator scripts to `src/gen/` -e5ff302033remove -O2 from gen_cflags -d74c74aae3remove `lintcommit` from `lint` target -573bcb2aafremove enforcement of cmake build type -0e9c92a900remove nix flakes (#28863) -f09f5c45fareuse code for deps.txt for both deps and main build -e1dc824b7eset luals checklevel to Hint #32392 -cac86e9b4csilence "po" noise #30469 -07b14c8e2especify POST_BUILD when using add_custom_command -e83ce331dause treesitter's CMakeLists.txt -e268fcbdaawork around bug in make when PATH includes cmake as dir -b288fa8d62bump_deps: abort if archive doesn't exist -7ead328a48cjson: sync with upstream (#32114) -0e2f92ed79clint: make NOLINT work with header checks (#31281) -327110ff8ccmake: remove unnecessary policy code -535c2f8658contrib: add zsh completion (#32617) -51d85f7ea5deps: drop unused bundled bash, python parsers and queries -9216bc927cdeps: fix formatc target on MSVC -b3641b8008deps: remove libtermkey dependency -1247684ae1deps: remove msgpack-c dependency -fa79a8ad6ddeps: vendor libvterm at v0.3.3 -c614969570docs: update CSS #28896 -0a087f2073generator: add dependencies on hashy (#32796) -e178331488lpeg: search for lpeg.so on MacOS -7e099cf3ebmacos: disable deduplication in link step -f4d9a2983arelease.sh: fix hang when generating docs (#33026) -b923fcbaf0vim-patch.sh: don't ignore changes to version*.txt (#29425) -7aaa4a51b7vim-patch.sh: include commit subject #28767 -3146433190vim-patch.sh: use 7 hex digits for runtime patch file name (#29940)