From 27fb62988e922c2739035f477f93cc052a4fee1e Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Thu, 16 May 2024 14:34:32 +0200 Subject: [PATCH] NVIM v0.10.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim). Following is a list of fixes/features commits. BREAKING -------------------------------------------------------------------------------- - 649dd00fe2e5 remove deprecated functions - 0370e4def0c0 remove neovim qt - 880f7d12fea3 remove vimballs (#22402) - c48b1421af28 rename "playground" => "dev" #23919 - 2f85bbe61513 rewrite TOhtml in lua - abe39f2b243d api: change return type of nvim_win_text_height to Dict (#24365) - 7180ef690180 api: nvim_open_win: noautocmd blocks all autocmds #28192 - 700cab00680f events: trigger CursorMoved later on switching window (#23711) - e4a136f71375 ex_cmds: remove :behave - e5e0bda41b64 lsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958) - 5a363ccac8ff lsp: deprecate trim_empty_lines - 5a2536de0c4b lsp: move changetracking to separate file (#26577) - 58618d208acd lsp: promote LspRequest to a full autocmd and enrich with additional data (#23694) - 1b9ccd38a12f lsp: rename vim.lsp.get_active_clients to get_clients (#24113) - eb1f0e8fcca7 lsp: replace snippet parser by lpeg grammar - 448907f65d67 lsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512 - 7caf0eafd83b lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440) - 747264320c6d mappings: remove #n as a notation for a function key (#17318) - f7da47225706 options: graduate shortmess+=f flag - c3d1d9445c70 options: graduate some more shortmess flags - 5df4fdf253f9 options: make OptionSet `v:` values use typval - 881d17a11393 options: remove compatible behaviours for vim 5.0 and earlier - e19cc9c9b715 options: unify `set_option` and `set_string_option` - db590e96d593 startup: "nvim -l" message does not end with newline #24215 - 2ca076e45fb3 treesitter: incremental injection parsing - f5dc45310941 treesitter: new standard capture names - fc0ee871de2f treesitter: remove deprecated legacy injection format - 6debb1852355 treesitter: remove duplicated diagnostic code (#24976) - 18da6964cc61 vim.iter: remove vim.iter.map/filter/totable #26138 - 9b028bd64f42 vim.iter: rename xxback() => rxx() #28503 - 8d4a53fe6e20 vim.json: remove global options, "null", "array_mt" #24070 - 40ce8577977f vim.ui: change open() to return `result|nil, errmsg|nil` #28612 - e0d92b9cc20b vim.ui: change open() to return pcall-like values #28502 FEATURES -------------------------------------------------------------------------------- - a66b0fdfaa35 NVIM_APPNAME supports relative paths #25233 - c0beb8173fe2 add .luarc.json (#24592) - 14b7ffcf89bc add __call typing for vim.inspect() - ca7e488cfeb1 add link in issue template to minimal config template - 4bf47222c973 add vim.text module (#26069) - 0ebc4de0ff93 allow opting in to builtin clipboard providers (#28083) - e8d3c4cccb9d generate types and docs for v variables - 29fe883aa916 ignore swapfile for running Nvim processes #25336 - 28d1640dd604 improve return type annotations for vim.api.* - 199a990c9e4e report "build" in vim.version() #23925 - e68879325393 tostring(vim.version()) - c559ab0ae6be update unicode tables (#27317) - ecdb6465e272 vim.version() returns a Version object - 4b60267f82ef :source: source current ft=lua buffer as Lua code (#23802) - 428edcde7068 api: add forward and back mouse buttons - 037ea6e786b5 api: add nvim__redraw for more granular redrawing - ca9f6f56949d api: add nvim_tabpage_set_win (#27222) - db8fe63a9398 api: add nvim_win_text_height (#24236) - 16513b303375 api: allow floats to be opened in non-current tabpage (#28480) - 6b4970f6e0ac api: allow open_win/win_set_buf in the cmdwin in some cases - 5d921e28c1cc api: allow win_close in cmdwin to close wins except previous - 472271199e48 api: allow win_hide to close cmdwin or non-previous windows - 6bba4becedae api: make nvim_open_win support non-floating windows (#25550) - b162adbb7ca4 api: pass 0 to nvim_get_chan_info for current channel (#27321) - 42bbc4fabcf9 api: support abbreviations in nvim_set_keymap - 98a4ed0a1106 api: support getting abbreviations (#26868) - d3d7d763f3e1 builtin: improve types - 748bc4d22d35 clipboard: add OSC 52 clipboard support - db57df04b6af clipboard: enable OSC 52 clipboard provider by default (#26064) - 734848dc1a9e colorscheme: add semantic tokens modifiers to builtin color scheme - 1e0996b57230 colorscheme: update treesitter groups - 73de98256cf3 comment: add built-in commenting - ae4ca4edf89e complete: support f flag for complete buffer part - 01c51a491330 completion: support completing more string options - ae3685798dea decoration: allow conceal_char to be a composing char - 30a5c28c8740 decoration_provider: log errors as error messages - 9711370c2645 defaults: add :Inspect to right-click menu (#28181) - 2613ba5000d4 defaults: enable 'termguicolors' by default when supported by terminal - 513fc461957f defaults: improve :grep defaults #28545 - c26dc1f77c79 defaults: map Q and @x to repeat in Visual mode (#26495) - 8758c6fb875f defaults: set g:netrw_use_errorwindow = 0 #24179 - 1d81d7a268f5 defaults: treat "•" as a list item prefix #24623 - 20b38677c22b defaults: use ripgrep (rg) for 'grepprg' if available - 61063653b06b defaults: visual CTRL-R for LSP mappings #28537 - 4ee656e4f357 diagnostic: add `vim.diagnostic.count()` (#26807) - 73034611c25d diagnostic: add default mappings for diagnostics (#16230) - fc6d713dd806 diagnostic: add support for many namespaces filtering in GetOpts (#28045) - 5ed9916a28b9 diagnostic: enable(…, opts) - e7801775060e diagnostic: filter diagnostics by specific severities (#24736) - b13e63db1dbc diagnostic: goto functions jump to highest severity (#28490) - 26765e8461c1 diagnostic: is_enabled, enable(…, enable:boolean) - 9cb7e00b9748 diagnostic: provide more control over virtual text display (#24724) - ee41153a9458 diagnostic: revert default behaviour of goto_next/prev() - 07b60efd8058 diagnostic: specify diagnostic virtual text prefix as a function - a3b39784744f diagnostics: support numhl and linehl for diagnostic signs - 0381f5af5bdc diff: grouping optimization for linematch algorithm - 42333ea98dfc docs: generate builtin.txt (#24493) - 9beb40a4db56 docs: replace lua2dox.lua - 1d4a5cd18537 eval: exists() function supports checking v:lua functions (#26485) - 4a1ad676ce0b ex_cmds: no error on :lua with {range} and {code} (#27290) - c2433589dca0 ex_cmds: ranged :lua #27167 - b04286a187d5 extmark: support proper multiline ranges - 1c032ad703a1 extmark: window scoped extmark - 68cb4a7405ea extmarks: add "undo_restore" flag to opt out of undo-restoring - 4e6f559b8c5f extmarks: add 'invalidate' property to extmarks - c249058758af extmarks: add sign name to extmark "details" array - bbd5c6363c25 extmarks: add virt_text_repeat_linebreak flag (#26625) - 15e77a56b711 extmarks: subpriorities (relative to declaration order) (#27131) - f0884f21fa0c extmarks: support hl_mode "combine" for inline virt_text (#24099) - 372aa2eb3db3 float: add fclose command - 35570e4a11be float: implement footer - 4200a0f1678c float: support toggle show float window - 1233ac467de7 fold: transparent foldtext - 71530cc97257 folds: support virtual text format for 'foldtext' (#25209) - 38b9c322c97b fs: add vim.fs.root (#28477) - e3e6fadfd828 fs: expose join_paths as `vim.fs.joinpath` (#23685) - bc67cf3ccdf9 gen_help_html: add anchors to help tags #25112 - b0cf9c5feeae gen_help_html: ignore pi_netrw.txt errors - 81d8fce8f9e1 gen_help_html: non-default vimdoc.so parser - da09f9b551ba gen_lsp.lua: protocol.Methods #24504 - f41496ce74fb gen_lsp.lua: sort by name, handle failure #24504 - 3692fd4c873a gen_lsp.lua: validate CLI args #26514 - 2ff2785c396e health: checkhealth buffer can show in a split window (#26714) - 4382d2ed564b health: fold successful healthchecks #22866 - d1bc6fca7123 health: list attached buffers in LSP report #23561 - 2877672d70e7 health: make :checkhealth support more split modifiers (#26731) - ddda5e0a488b help: hide filename of "gO" outline using conceal #27547 - e72c0cd92090 highlight: Allow hyphens (-) in highlight group names (#24714) - 986bf7e78d09 highlight: add `FloatFooter` highlight group - 574519d9d68f highlight: tweak default color scheme - 64a14026d76b highlight: update default color scheme - a79694a08ede issue_template: instruct not to include a package manager - 69ffbb76c237 iter: add `Iter.take` (#26525) - cebc00603ea3 l10n: update Turkish translations #24246 - fec51229c4a0 l10n: update Ukrainian translations (#24882) - 996dd36c7732 lsp: add actionable advice to lsp client quit error msg (#24510) - 4ff3217bbd87 lsp: add fswatch watchfunc backend - 643546b82b4b lsp: add handlers for inlay hints (#23736) - 317c80f460a7 lsp: add method filter to get_active_clients (#24319) - 688860741589 lsp: add more LSP defaults (#28500) - 0fe86f7e2403 lsp: add opts paramater to vim.lsp.codelens.refresh - 131a1ee82d15 lsp: add original LSP Location as item's user_data in locations_to_items (#23743) - f1775da07fe4 lsp: add snippet API (#25301) - db0ec84fb46b lsp: add type annotations for lsp.util.locations_to_items (#26694) - f190f758ac58 lsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388) - 451bc50d40ee lsp: deprecate severity_limit - e9b85acfbb8d lsp: enable workspace/didChangeWatchedFiles by default (#23190) - 4a09c178a190 lsp: fallback to code-action command on resolve failure (#25464) - 2f22ed6a00db lsp: handle multiple clients in omnifunc (#24381) - 63b340855156 lsp: implement textDocument/diagnostic (#24128) - 5e3cf9fb4bc7 lsp: improve control over placement of floating windows (#24494) - 15641f38cf4b lsp: include positionEncodings in default client capabilities - ddd92a70d2aa lsp: initial support for dynamic capabilities (#23681) - ca5de9306c00 lsp: inlay hints #23984 - 350d81856473 lsp: inlay_hint.is_enabled({filter}) #28523 - 33e1a8cd7042 lsp: map K to hover by default #24331 - 97bea3163a3f lsp: more annotations - 37079fca58f3 lsp: move inlay_hint() to vim.lsp (#24130) - 12c2c16acf70 lsp: opt-in to dynamicRegistration for inlay hints (#24102) - a49924a31852 lsp: remove notify from vim.lsp.buf_detach_client (#25140) - 8149bd089e15 lsp: report fswatch errors - fb54e6980ea6 lsp: set client offset_encoding if server supports positionEncoding - 96e19533f60a lsp: set kind in select call for codelens #23889 - 9af355964306 lsp: set workDoneToken in initialize request (#28182) - f736b075d371 lsp: snippet parsing using lpeg - 134b9ec48361 lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104) - 63f9c2da9aab lsp: support completion itemDefaults - 3f788e73b345 lsp: support connect via named pipes/unix domain sockets (#26032) - 7e36c8e972f0 lsp: support for choice snippet nodes - 5c40f3e86a81 lsp: support vim.lsp.ListOpts.loclist in location_handler() - abd2352bd8b8 lsp: update LSP protocol 3.18 typings to date (#28730) - cfd4a9dfaf5f lsp: use treesitter for stylize markdown - d5063f4b290e lsp: vim.lsp.inlay_hint.enable(nil) applies to all buffers #28543 - c0952e62fd0e lua: add `vim.system()` - 9248dd77ac58 lua: add hl priority opts on yank (#23509) - 642586977158 lua: add meta file for vim submodules (#24525) - 3734519e3b4b lua: add noref to deepcopy - 7c661207cc43 lua: add ringbuffer (#22894) - 877d04d0fb83 lua: add vim.func._memoize - ab1edecfb7c7 lua: add vim.iter (#23029) - d675bd01b1e7 lua: allow vim.F.if_nil to take multiple arguments (#22903) - c379d72c4905 lua: allow vim.wo to be double indexed (#20288) - e52c25b7617a lua: deprecate vim.tbl_add_reverse_lookup - f1dfe32bf555 lua: enable(enable:boolean, filter:table) #28374 - 5b40a1c09dda lua: implement Iter:join() (#26416) - c01e624b0762 lua: more specific error messages for vim.api type checking - e1ff2c51cad7 lua: pass keys before mapping to vim.on_key() callback (#28098) - 2db719f6c2b6 lua: rename vim.loop -> vim.uv (#22846) - 6c0812d92e0c lua: specific error messages for type checking `opts` params - fd089c8e50c2 lua: typing for vim.fn.* (#24473) - 302d3cfb96d7 lua: use callable table as iterator in vim.iter (#23957) - 51c754b62e79 lua: use keyset type information - 8e5c48b08dad lua: vim.fs.normalize() resolves ".", ".." #28203 - 7e70ca0b4808 lua: vim.keycode (#22960) - 9e86f473e0f4 lua: vim.region accepts getpos() arg (#22635) - 4d04feb6629c lua: vim.tbl_contains supports general tables and predicates (#23040) - 48d533272e57 lua-types: types for vim.api.* (#24523) - 25e729970712 man: allow opening pages in current window (#27861) - 08db61b19b8f man: respect 'wrapmargin' when wrapping man pages (#24091) - f9944a78bcd3 meta: add types for vim.lpeg - deb6fd670479 msgpack-rpc: show actual request id in error message - 01fe6b9e6a84 msgpack_rpc: support out-of-order responses on `msgpack-rpc` - 619407eb548c nvim_open_term: convert LF => CRLF (#26384) - e98decf9a68e quickfix: support -q - to read 'errorfile' from stdin (#27303) - 7b0123dd6a06 remote: avoid --remote-ui infinite loop (#24465) - cca6c4c6986a rpc: allow empty string key in msgpack => Vim conversion - d0d4160dd13f runtime: highlight hl groups in syntax.txt (#25050) - 5f4895200a49 scripts: add lsp_types.lua (#23750) - 4e6096a67fe9 server: allow embed with listen (#25709) - 170c890dca8f shortmess: "q" flag fully hides recording message (#27415) - d3582e102b7b statuscolumn: re-evaluate for every screen line (#25885) - 224f303ee54c stdlib: add vim.base64 module (#25843) - fa131de9adb7 tabline: middle mouse button now closes tab (#27522) - c855eee919f2 term: enable reflow by default (#21124) - cd1b14f027f3 termdebug: improve `:Evaluate` floating window (#26621) - cffdf102d4f0 terminal: allow :terminal to take modifiers (#15427) - 0c89854da189 terminal: close shell terminals automatically - 7589336120a2 terminal: respond to OSC background and foreground request (#17197) - beca827212b1 terminal: trigger TermRequest autocommand events (#22159) - c6ec7fa8d741 treesitter: add 'injection.self' and 'injection.parent' - 6cfca21bac6b treesitter: add `@injection.filename` - 5d8ab32f3871 treesitter: add a query editor (#24703) - cb0a1a10b224 treesitter: add bash parser and queries - bb15fa035610 treesitter: add folding for `InspectTree` (#27518) - 9ce1623837a8 treesitter: add foldtext with treesitter highlighting (#25391) - 31c4ed26bc27 treesitter: add injection language fallback (#24659) - 28f54a787823 treesitter: add lang parameter to the query editor (#25181) - 88c8803aa167 treesitter: add python parser and queries - c194acbfc479 treesitter: add query_linter from nvim-treesitter/playground (#22784) - af040c3a079f treesitter: add support for setting query depths - 11844dde81c4 treesitter: bundle markdown parser and queries (#22481) - 5e6240ffc24e treesitter: handle quantified fold captures - f69658bc355e treesitter: highlight Lua files by default (#26824) - 988b472d902e treesitter: highlight help files by default (#26347) - 845d5b8b6419 treesitter: improve query error message - 189fb6203262 treesitter: improved logging (#23638) - c0b99bb1de8d treesitter: show root nodes in :InspectTree (#26944) - cb46f6e46726 treesitter: support URLs (#27132) - ff6092b4ee3c treesitter: update Bash parser and queries to v0.21.0 - 8dda630ae942 treesitter: update C parser and queries to v0.21.0 - 3836eeb90182 treesitter: update C queries from upstream - aca4ad430bdc treesitter: update Lua parser and queries to v0.1.0 - 5e875ae8d07d treesitter: update Markdown parsers and queries to v0.2.1 - 8a3385dde75f treesitter: update Python parser and queries to v0.21.0 - 20dcbaaaf880 treesitter: update Vim parser and queries to v0.4.0 - 987dff6713af treesitter: update Vimdoc parser and queries to v2.4.0 - 1384bebd5aa3 treesitter: update query parser to v0.2.0 - 668f16bac779 treesitter: upstream query omnifunc from playground (#23394) - a478bf936b2a treesitter: use 0-based indexing to show ranges in `:InspectTree` - ac8ed77afb35 tui: add 'termsync' option (#25871) - 4ee9e58056a9 tui: query extended underline support using DECRQSS (#28052) - b4b7ca2d548a tui: support DCS responses in TermResponse event (#26061) - 622ae2f53e77 tui: support Super and Meta modifiers (#24357) - a14267036076 tui: support undercurl in WezTerm (#28037) - 56627ca2423e tui: use TermResponse event for OSC responses (#25868) - 32b49448b227 tutor: add Japanese tutor #27268 - 9c2270b83459 types: add `test/.luarc.json` - d3a8e9217f39 ui: add chdir UI event (#27093) - 6ea6b3fee27d ui: add support for OSC 8 hyperlinks (#27109) - b72931e70407 ui: allow non-zero 'cmdheight' with ext_messages - 2615ed879e66 ui: allow to get the highlight namespace - e38027ef69f7 ui: completeopt support popup like vim - 2e4e12756a69 ui: indicate margins for the area used by win_viewport - efa9b299a7cb ui: inline virtual text - dacd34364ff3 ui-ext: make 'mousehide' into proper ui_option (#25532) - 43ded8d35844 version: unverbose ":version", ":verbose version" #24195 - 0a598c13b186 vim.deprecate: only issue warning if neovim version is high enough - a767c046f4e6 vim.iter: add Iter:flatten (#26786) - af6e6ccf3dee vim.ui: vim.ui.open, "gx" without netrw - fa4b02fa67e5 vim.version: add `vim.version.le` and `vim.version.ge` - 27a566f3f8e0 vimdoc: support Markdown code blocks (#25127) FIXES -------------------------------------------------------------------------------- - f5573fba3d46 Remove nested for_each_tree in TSTreeView (#26328) - ae28ef327e02 adjust error message for error in UI event callback (#28200) - ebe489d8f0ed allow multiline message for echoerr (#25380) - 592bc831ce4b avoid ui_grid_cursor_goto when drawing window separators - d6483793e1c3 buffer overrun in lmpack_session_receive - 3bbb0aa3993f checkhealth warning even if init.lua exists #25306 - 5cb906e91cb5 correct versions in deprecation warnings - 118fd8367c39 deduplicate gen_cflags - eb4676c67f5d disallow removing extmarks in on_lines callbacks (#23219) - 6e9b204afbe5 doc errors - 77d3526a3d08 explain that user should run nvim with -V1 to see more information - fd791db0eceb fix ASAN errors on clang 17 (#25469) - bb38c066a965 fix compiler warning from clang - 478273a4233d fix iter_matches call in query linter (#27496) - bb7324292cda flush UI state before blocking in vim.wait (#25938) - 44d4ae448d0a function was renamed (#23772) - 1dd700a8d927 gf fails on "foo/bar.txt:1:2" on Windows - 6e703f778fe7 handle argv not present in nvim_get_chan_info - 56dc8b9212ef heap-buffer-overflow in file_name_in_line - 74b2f6c3d956 ignore non-existent properties during header generation - f5a09f1b0352 invoke changed_bytes when rewriting char #25125 - b8273c9a3396 lua annotations - 69d49727d776 luacheck - 4ce3159e24e1 missing case in setxattr error handling (#26176) - 41fb98d6fab5 move fswatch linux check inside of vim.schedule (#27824) - ba58c6f8a44c only attempt to close timer if not already closing (#26047) - b400b947f368 prevent child processes from inheriting ui channel file descriptors - 99b8a343e197 quick update, squash later - 83b51b36aa46 raise TS min version - a090d43d61b5 splitting of big UI messages - 2424c3e6967e support UNC paths in vim.fs.normalize - 43e76cc3462b tostring(vim.version()) fails if build is NIL #24097 - 8c7a8be27437 transposed xcalloc arguments (#28695) - 35f453f65df2 type warnings in shared.lua - f112ac73bd34 unreliable "checkhealth completions" test - b32b5b2711ed use BEL to terminate OSC 11 request (#26335) - d95e3a4c9c8f use no_ff instead of ffdos as condition - a1bec02c1e10 use snprintf instead of sprintf - ca887b80a911 version-range < and <= #23539 - c1ee187f8214 vim.loop in luv threads (#23924) - fe4583127f0a vim.validate() order is not deterministic #28377 - be8b15200d70 windows timeouts have exit code 1 - 1f8fb7c00048 :let: fix error when applying operator to boolean option (#24030) - 5a3752889c5b NVIM_APPNAME: show error message if $NVIM_APPNAME is invalid - c4ad15ae324f PVS/V009: add top-level message - 128e194f64b0 PVS/V1001: variable is assigned but is not used - 1bbbca267d05 PVS/V547: expression is always true/false - 592e4472da5f PVS/V564: the '|' operator is applied to bool type value - 30d311ebcf94 PVS/V592: expression is enclosed by parentheses twice - 3ecd45ded044 api: allow negative column arguments for nvim_buf_set_text (#23501) - 3ac952d4e27f api: avoid assertion when autocmd group id is 0 (#23210) - b2a8a9314798 api: avoid immediate TextChanged with nvim_create_buf (#25492) - ef7ae66eef4e api: avoid integer truncation - b1e24f240bae api: avoid open_win UAF if target buf deleted by autocmds - 0a81ec14a4c0 api: better topline adjustments in nvim_buf_set_lines - c18f3cfcdb8f api: crash after nvim_win_set_config title/footer validation error (#26606) - aa4e47f704c5 api: disallow some more functions during textlock - 22d9338afcea api: disallow win_set_buf from changing cmdwin's old curbuf (#24745) - da979ae04b7a api: do not re-apply win_config.style when missing - 344906a08f09 api: do not update grid position in nvim_win_set_cursor (#28235) - 22205f36a621 api: don't change title when setting buffer in a window (#23492) - 711a2f5ff67d api: don't leak memory with nvim_win_get_ns (#27570) - 1cf51a07a6bf api: don't set coladd of mark (#26648) - 5fd1bac65ed0 api: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501) - a3751f5de22f api: dont change curwin for nvim_win_set_height - 1ff4562502e1 api: dont change curwin for nvim_win_set_width - 59fed8bb6457 api: extmark highlight groups not always included in details (#23179) - 9b9030ff2ca8 api: fix inconsistent behavior of topline touched in recent refactor - fc2a56fe61a9 api: fix set_lines viewport adjustment, but this time good - b7763d7f6b7f api: get virtual text with multiple hl properly (#25307) - b3be7b741386 api: handle NUL in nvim_err_write() and nvim_out_write() (#25354) - 132bbd1cbd49 api: handle clearing out last line of non-current buffer - d942c2b9432d api: handle win_split_ins failure properly - 5cfdaaaeac0f api: ignore 'autochdir' when renaming other buf (#28376) - 2fc234372883 api: ignore 'autochdir' when setting buf in other win (#28371) - 7367838359bf api: limit depth of nvim_cmd (#27225) - 0da27e9bdec1 api: load buffer first on nvim_buf_set_lines (#25823) - 4e5c633ed487 api: make getting explicit empty hl in virtual text work (#28697) - d05d63a18ff8 api: make nvim_get_hl not return non-existing groups - a70eae57bd44 api: make open_win block only enter/leave events if !enter && !noautocmd - 5d58136cccc7 api: make open_win/win_set_config check if splitting allowed - 4ec8fd43bfdf api: make width/height for split by nvim_open_win work (#28341) - b1577d371a6d api: make win_set_config with "win" for splits need "split/vertical" - 0330dd9e69de api: mark nvim__complete_set as experimental #28579 - d22172f36bbe api: more intuitive cursor updates in nvim_buf_set_text - b051b131f5ce api: nvim_buf_get_offset in a new buffer with zero or one lines - e0453d7f5743 api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181 - 6091df6b7a06 api: nvim_create_buf assert fails if autocmds set &swapfile - d5c23d72a5e4 api: nvim_create_buf leaks memory if buffer is loaded early - b7708eac24c2 api: nvim_get_hl should return default flag - a741c7fd0465 api: nvim_parse_cmd error message in pcall() #23297 - e55a502ed413 api: open_win fire Buf* events when !enter && !noautocmd if entered early - a873f33993ef api: open_win fire BufWinEnter for other buffer when !enter && !noautocmd - e7c262f5553c api: patch some cmdwin/textlock holes - a9968912b741 api: redundant error when using `nvim_cmd` (#24010) - dbcba26bf1e4 api: revert unintended change of optional bool params - b25753381c60 api: set script context when using nvim_set_hl (#28123) - d3ea9a04bc73 api: update "w_scwidth" in nvim_eval_statusline() - c971f538ab87 api: update grid cursor in nvim_win_set_cursor() - 130cb4815a5c api: use a conditional stack for nvim_cmd (#26341) - cf9f002f31c8 api: use correct buffer for "range" in nvim__redraw (#28614) - 77118d0da8ba api: use text_locked() to check textlock - bcb70eeac480 api: win_set_config autocmds crash when moving win to other tabpage - 233649bc7577 api: win_set_config fires unnecessary autocmds - b52d15853e89 api: win_set_config set tp_curwin of win moved from other tabpage - 54022a2946ac api: win_set_config update statuslines after removing splits - a9cd8467cbd5 api: wrong nvim_buf_set_extmark error for invalid hl_mode - 4d3a38ac074f api, lua: handle setting v: variables properly (#25325) - 92760a7f42a9 api, lua: make blank lines in a message work properly (#24244) - 08fc1ebbaa49 api/buffer: fix handling of viewport of non-current buffer - 24e3ee9d07e1 api/options: validate buf and win - 139e6f68f937 autocmd: API functions accept garbage after event name #25523 - 02d00cf3eed6 backup: E1509 when writing extended attr to symlink (#28014) - 746a153bc1a1 base64: only check padding if leftover index is set (#25854) - 533e01a75b71 base64: properly handle embedded NULLs when decoding (#28349) - 095bd8d0f834 buffer: do not filter help buffer - e5d9b15044d5 buffer_updates: correct buffer updates when splitting empty line - 11865dbe3917 build: better deps for doc - ffaf74f1477d build: distinguish vim.mpack from global require'mpack' - f9416470b15b build: include FindPackageHandleStandardArgs - ade42d531bcc build: teach cmake about vvars - da7178cbbf4e builtin: fix incorrect optional fields for fn.sign_define - 6fa0f303d7f0 builtin: parameter mismatch between winsaveview and winrestview - 3159a2c28f5e change: update fold after on_bytes (#26364) - 342c7da4bd2c channel: use os_write() instead of fwrite() for stderr (#26689) - cd6458123fb4 charset: fix wrong display of 0xffff (#24158) - 603f3b36a4d5 checkhealth: error in node.js check #28348 - b0978fca6b82 checkhealth: fix crash due to incorrect argument type - 7f94a032e1cf checkhealth: shell_error and cpanm module - bfdec5b0e719 clang: null pointer dereference in parse_msgpack #25389 - 1027ccac6d0a clangd: check size of array before applying qsort on it - cdd801746943 clangd: set block pointer to null in case map is empty - 6851b265ba1d clipboard: don't pass --foreground to wl-copy (#25481) - c3de6524a53d clipboard: ignore exit caused by signal #23378 - 3128cff6b198 clipboard: increase OSC 52 wait timeout (#25936) - 46ceefb52be6 clipboard: make getreg() accurate for clipboard registers (#26740) - d2983dcdb1ca clipboard: make osc52 work with PUC Lua (#26014) - e51e52417550 cmake: restore previously undocumented workround, now documented - 3688735c2b63 cmdline: don't redraw 'tabline' in Ex mode (#24123) - c72d877c3374 cmdline: wrong 'incsearch' highlighting after :redraw (#27947) - bc67bbe4469b codelens: add buffer and line checks before displaying codelens (#23887) - 2b1a6e759709 colorscheme: add missing LSP groups - 0c850add3ece colorscheme: default statusline groups usability #26921 - 8b2365369503 colorscheme: link LSP semantic tokens to treesitter groups - 62e0e0349c00 colorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727) - eca72def1f08 colorscheme: typo - d4bd6b1eaab3 colorscheme: use explicit normal foreground in syntax groups - 3c724fe1f3ef column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967) - cdc028e97d98 column: add truncated width during estimation for 'statuscolumn' - e89071522cb0 column: always set b_signcols.max - c126a3756a09 column: apply numhl signs when 'signcolumn' is "no" (#26167) - 2ded2e75f4a6 column: avoid exceeding configured 'signcolumn' width - b50fdcba4a1d column: clear "b_signcols" before moving saved marks - 13d50c3b13fb column: clear "b_signcols" when marktree is cleared - ec7453804421 column: correct width after truncated 'statuscolumn' error (#26737) - 2bdef6dd2a75 column: don't overflow sign column with extmark signs (#23854) - bab4bcdefbda column: don't reset 'statuscolumn' width after it has been drawn - c509f4907bf7 column: fill 'statuscolumn' clickdefs with evaluated width (#26891) - 25e62697c32e column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268) - dbf6be296df6 column: full redraw with 'stc, 'rnu' and inserted lines (#27712) - 7d0a23973b7d column: handle unprintable chars in 'statuscolumn' (#24198) - 0db6946b39fd column: handle w_redr_statuscol at end filler lines (#27365) - 97122eaa1cbe column: ignore empty signcols range (#28177) - 967c7abde3c6 column: keep track of number of lines with number of signs - f871fee8b699 column: pass kFalse when initializing "b_signcols.count" - 44d4f0357341 column: rebuild status column when sign column is invalid - c6864b0d146f column: redraw 'statuscolumn' on wrapped lines with 'relativenumber' - 35cec0de4acd column: redraw and update signcols for paired extmark - d88814ef68b3 column: remove sign from line it was previously on with undo - df399ea0d20e column: reset decor state before starting from top - 5a4e0b837f90 column: use a single path for sign sorting (#27431) - a878e02d5de7 column: use maxwidth to allocate/fill 'statuscolumn' click defs #24190 - 783b0aba4116 completion: check that healthcheck name is string (#28458) - fbeef0d4ef1a completion: don't add backslashes to runtime pattern (#24296) - cdc8bacc7945 completion: filter results with complete+=f (#26029) - af8500af6457 completion: improve popup window position (#26739) - d1b2a5cf5fa5 completion: make sure the buffer name is valid (#25975) - e9b9a86cd5a5 context: don't crash on invalid arg to nvim_get_context (#25977) - fdaf6bc5573f context: don't leak memory on multiple invalid objects (#25979) - 55be4a4e26ea coverity: dead code #25562 - 6d698c86d0bd coverity: unhandled retval for marktree_itr_get_overlap() #26518 - 6f49ed58c3d8 coverity/348240: memory leak in put_view() - 9d48266bed96 coverity/471380: null dereference in get_local_additions() - ae48d965d70c coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022) - 2b0acacb3c2c decor: allow adding providers during redraw - 5ca330859cf2 decor: check decor kind before accessing union field (#27205) - 60d320dea3fe decoration_provider: don't leak memory on error (#24410) - 65738202f8be decorations: better approximation of botline #24794 - 2accf2480530 decorations: crash with revised mark with changed decoration flags - a0e9ef09d7af decorations: do not apply sign highlight id as range attr id - fba17d5b882e decorations: fix imbalanced sign count - 444f37fe510f decorations: incompletely displayed line should also get decorations - dc48a98f9ac6 decorations: validate botline for on_win - 328a2373514a defaults: auto-close terminal for &shell with args (#28276) - 5aa1ba3efe05 defaults: background detection in tmux (#26557) - 5e98439f6d8c defaults: diagnostic mappings descriptions #28646 - ccb5a76e5a2c defaults: don't use nvim_feedkeys in default mappings (#24520) - 85cb0b0ddc59 defaults: make terminal autoclose not block other events (#27581) - aa1d0ac095dc defaults: only repeat macro for each selected line if linewise (#28289) - eef2aedff631 defaults: remove tmux background detection passthrough (#27571) - 5b45efbee6eb defaults: set 'fsync' #26034 - 8df374237814 defaults: use augroup for default autocommands (#26933) - a8e4ee2f2b43 defaults: validate 'channel' before responding to OSC request (#27594) - 6318edadc32a defaults: visual hash (#) on text with "?" - abd380e28d48 defaults: visual mode star (*,#) is fragile - b9a0e762f1d7 defaults: visual star (*) on text with "?" - 9b4b23493d69 defaults: wait until VimEnter to set background (#26284) - 72e3d8c3f949 deps: bump luv to 1.48.0-2 - 87db6d894ad2 deps: make sure --force-config takes effect - 7aad4643f9a6 deps: remove stray conflict marker - 8a6716682e6e deps: restore functionality of USE_EXISTING_SRC_DIR - d4dc884012e8 deps: restore functionality of USE_EXISTING_SRC_DIR - d27214331815 diagnostic: always return copies of diagnostic items (#25010) - 29d5ff6ac4ea diagnostic: check for sign namespace instead of sign group - 3d8f0cb695a5 diagnostic: check if delete failed in `qf_fill_buffer()` (#25932) - 89ffdebd20fd diagnostic: fix typing on field |diagnostic-severity| - 83635e4e3db9 diagnostic: get border from config (#28531) - 96f59e1b9902 diagnostic: invalid col number compare in next_diagnostic (#28397) - ad76b050eb2c diagnostic: open_float on multi-line diagnostics #28301 - 37011bc45ef3 diagnostic: rename buffer → bufnr in type annotation (#23042) - 50284d07b6f0 diagnostic: typing - a4fc3bb0e68c diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273 - add1b10b7901 diagnostic: virtual_text prefix function should have index and total (#25801) - 35f475d0a51a diagnostics: if buffer not loaded, skip handlers that set extmark (#25628) - 5a25dcc5a4c7 diff: filler lines for hunks bigger than linematch limit (#24676) - 2f9ee9b6cfc6 doc: improve doc generation of types using lpeg - c4417ae70c03 doc: prevent doxygen confusion - 67f53323446d docs: clean up non-docstring comments for vimdoc gen - ae7020c667b5 docs: fix TSNode incorrect signatures - ab65a98adba4 docs: ignore_invalid #24174 - f40df63bdca3 docs: make lines not overflow in vim docs - 0a90e4b05ad3 docs: match DocSearch style with site theme - 0d149bb18639 docs: the runtimepath is not the runtime path - 957d05d16bc8 docs: too much whitespace around
 blocks #24151
- d931b829e926 docs: vimdoc syntax errors
- 036da0d07921 docs: vimdoc syntax errors
- 17c59e417f81 docs: vimdoc syntax errors
- 34b57508a78b drawline: check filler_todo in place of removed draw_state (#27889)
- 455bca1ba86a drawline: combine extmark highligh with area hl correctly
- 329979715063 drawline: consider position in linebuf for foldcolumn (#26803)
- 889f81c65fa4 drawline: don't invoke on_line for filler line (#28219)
- 2b9d3869f8f3 drawline: don't use temporary "v" variable when not needed (#26777)
- 06694203e51e drawline: fix missing Visual hl on double-width fold char (#24308)
- d5488633f68f drawline: initialize linebuf_attr to 0 instead of -1 (#27840)
- e9280a68f7ea drawline: initialize variable
- 2819718873a3 drawline: initialize variable
- 36941942d609 drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273)
- 37b73cf14b11 drawline: make cursorlineopt=screenline work with resized grid
- be1d09c42722 drawline: missing NUL termination when drawing TAB (#27307)
- 5b3144781137 drawline: update prev_ptr after getting syntax attrs (#27072)
- 14839c5d18c2 edit: backspace adds extra spaces for inline virtual text (#28005)
- 267e90f31d18 edit: don't go to Terminal mode when stopping Insert mode (#27033)
- b2e8c0df2062 edit: fix K_EVENT interfering with 'digraph' (#24258)
- 143a17833280 editorconfig: add missing root validation (#23462)
- cbbda3bcd775 editorconfig: check that buffer is valid (#23922)
- abb8c2c453d1 editorconfig: do not set 'endofline'
- df2f5e39127e editorconfig: highlight properties with dashes (#24407)
- dc45fb4655f5 editorconfig: only warn once on errors
- cdbc3e3f3e95 editorconfig: syntax error regression
- bf0c69e50410 eval: correct failure return value for readfile/blob (#27722)
- 5b312cd5f676 eval: make has('pythonx') work properly (#27739)
- 0e4086b74189 eval: prevent double-free in garbage collection (#22990)
- 12d123959f56 eval: properly support checking v:lua function in exists() (#27124)
- b8c34efe3399 eval: skip over v:lua properly (#27517)
- ad2fad9a3b07 event-loop: flush UI when no input is available (#25728)
- 672556525893 event-loop: process input before events (#27358)
- 58a1ef8e6a93 events: avoid unnecessary CursorMoved (#24675)
- bf9e92c81c3c events: check for WinResized/WinScrolled in terminal mode (#27226)
- dd24ea819507 events: don't expand non-file as file name
- 774a32e5fe73 events: null dereference in autocmd functions
- a8cfdf43bc62 events: trigger VimResume on next UI request (#24426)
- a114a21eff58 ex_getln: initialize pointer with NULL
- 9e7c4fe57915 exception: remember whether message is multiline (#25351)
- 4a098b97e535 excmd: append original command to error message
- 75d9c413d492 excmd: make :def unknown rather than unimplemented (#23150)
- f1dd75c2af40 exitfree: don't use ex commands to close windows in free_all_mem()
- 79a558277b1b extmark: fix crash when stepping out from internal node
- a78fd18ed92d extmark: fix cursor position with both left and right gravity inline text
- 320e9c1c2181 extmark: only invalidate unpaired marks on deleted rows
- 8e97edb93f01 extmark: restore extmarks when completing original text
- 2d33a766a17b extmarks: `U` changed_bytes after extmark_splice (#26501)
- 23c21e763074 extmarks: account for rightleft when drawing virt text (#25262)
- d54156ed08b8 extmarks: blending space shouldn't overwrite wide char (#26960)
- 54225bdb021e extmarks: crash with sign after many marks
- 65b1fd00a7aa extmarks: do not remove decor from invalid old marks
- 437d35dbf7d9 extmarks: do not remove invalid marks from decor upon deletion
- a05bbc60eaf2 extmarks: don't position overlay virt_text halfway a char (#24027)
- 4dd43e31db8f extmarks: don't show virt lines for end mark (#23792)
- dfa8b582a64a extmarks: draw TAB in virt_text properly with 'rl' (#25381)
- a6e4793bafa0 extmarks: draw virt_text below diff filler lines properly (#25170)
- 958cc22836f1 extmarks: empty inline virt_text interfering with DiffText (#24101)
- 0534ad8ca57b extmarks: empty inline virt_text interfering with Visual highlight
- 31a51acdc353 extmarks: fix heap buffer overflow caused by inline virtual text (#23851)
- 9c41a81dec15 extmarks: fix virt_text_hide off-by-one hiding (#23795)
- a6dd67f5b66c extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757)
- 818d7f6daf30 extmarks: fix win_col virt_text drawn on wrong screen line (#25264)
- c4df2f08b689 extmarks: fix wrong highlight after "combine" virt_text (#24281)
- b65cd7ff1a0a extmarks: fix wrong virt_text position after wrapped TAB (#25168)
- 4c7cec4e2934 extmarks: handle inline virt_text with empty chunk (#24005)
- ee3d4f6b90d0 extmarks: handle overwriting right half of wide char (#26951)
- f4f1ce1d167c extmarks: hide inline virt_text properly with 'smoothscroll' (#24106)
- 34a786bc4959 extmarks: inline virt_text support multiple hl groups (#25303)
- 5a6c7c805b8b extmarks: make empty "conceal" respect &conceallevel = 1 (#24785)
- 510e1f131b56 extmarks: make right_align and win_col work on wrapped line (#23759)
- 215244f74950 extmarks: missing "spell" and "conceal" in details (#27116)
- 35e50d79c630 extmarks: overlay virt_text position after 'showbreak' (#25175)
- a0790558c309 extmarks: priority order of inline and non-inline virt_text (#27532)
- b52bd8a2dea8 extmarks: properly handle virt_text on next screen line (#25166)
- a376d979bda1 extmarks: redraw line on adding/removing conceal (#27463)
- 2d9e063a63f8 extmarks: redraw pre-undo position (#27437)
- 2137edbd4f15 extmarks: redraw properly with scoped inline virt_text (#27569)
- 1cc358aed6fd extmarks: restore old position before revalidating
- 0818d655288e extmarks: skip virt_text if it is out of window (#25658)
- 19d63563e1cc extmarks: splice earlier when opening new line (#28108)
- 362df0f7938a extmarks: wrong display when changing text with virt_lines (#24879)
- d5a85d737aa2 f_wait: flush UI before blocking (#25962)
- 81f67b79e8a3 file_search: path with spaces in finddir() and findfile() (#25493)
- a69c72063994 fileio: fix off-by-one in rename_with_tmp (#27780)
- c6c21db82b31 filetype: add typing and dry (#24573)
- 020d1f626a3f filetype: call on_detect before setting buffer filetype
- fdf5013e218c filetype: correctly detect bash-fc-{id} files as "sh"
- d6f406db4527 filetype: don't use fnamemodify() with :e for extension (#27976)
- 670c7609c855 filetype: make sure buffer is valid before call nvim_buf_call (#24922)
- af38b46a2574 filetype: return on_detect function when matching by file contents
- 2955c921ceaf filetype: use unexpanded file name (#27931)
- e32af31ee89c flake: clang-tools moved to nativeBuildInputs (#26955)
- fd08fd3de302 float: add fixd option
- 884470124db3 float: allow floating window in cmdline area
- 9ecb43b6372f float: apply 'winblend' to title/footer highlight (#25999)
- 898371fc9fae float: don't relative flaot win itself
- fcdfbb430377 float: fix some other crashes with :unhide or :all (#25328)
- 3ea124a8d9f0 float: improve error message when reconfig failed (#25076)
- c5abf487f19e float: make "fixed" work with relative=win (#25243)
- 03e8b5fc91f9 float: make bufpos work properly with resized parent grid
- 437ed3cee2d2 float: trigger winnew event when float window create
- f5953edbac14 float: update position of anchored windows first (#25133)
- 9de157bce4b6 float: win_get_bordertext_col returning negative column number (#25752)
- 5f18dd301375 float: wrong position when bufpos is set
- 0e01e815520e folds: allow overlay virtual text on folded line (#23892)
- ee986ee0449b folds: combined Folded and Visual highlights (#23752)
- ded01a819ab0 folds: don't show search or match highlighting on fold (#24084)
- 811140e276a6 folds: fix missing virt_lines above when fold is hidden (#24274)
- 678548a2b446 folds: show Folded highlight in Visual selection (#23741)
- 58f94861442d folds: update folds in Insert mode with fdm=indent (#24402)
- 38e38d1b401e fs: allow backslash characters in unix paths
- 8a7e3353eb5b fs: make `normalize()` work with '/' path (#24047)
- ae5095cac9b2 fs: use generics for better typing
- e4da418ba838 fs.lua: normalize slash truncation (#23753)
- 06fcf71bd095 fswatch: --latency is locale dependent
- 502a7a0558b0 ftplugin: respect runtimepath ordering
- 03a2c5b77200 ftplugin: source Lua files after Vimscript files per directory (#23801)
- be5cf3383622 gen_help_html: type warnings, spell_ignore_files #27254
- 6c35fb421e88 gen_lsp.lua: improve type name, and fix wrong type inheritance
- 214b12513277 gen_lsp.lua: no notifications in lsp.Methods #24530
- 765729a145d3 gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds
- ccf328172bac gen_vimfn_types: don't include tag before signature's line (#24492)
- 86c9d8b53cd9 gen_vimvim: correctly add aliases to vimAutoEvent (#23429)
- 240c41e1af55 genvimvim: add special abbreviations of :delete (#23172)
- 51ea753747c7 genvimvim: generate prefixed boolean options properly (#27487)
- 9f32deba56ea grid: add start column when getting char on line (#25627)
- 4ed1c2a8afc7 grid: don't draw beyond max column (#26172)
- 9c202b9392f3 grid: handle clearing half a double-width char (#27023)
- 6a486c44e66f gx: move to to _init_default_mappings #24420
- 67b2ed1004ae gx: visual selection, expand env vars
- e39b6d0c5241 health: "attempt to concatenate nil"
- 7ffe450173d2 health: check for _host_prog variables properly (#23014)
- 50cd5ed360ee health: check more "old" files
- f6dcc464f220 health: check unmatching python_glob as empty table (#28215)
- 6818ba271cb4 health: clients may not support watchfiles #28710
- 03a021f378e8 health: combine python and virtualenv healthchecks (#23004)
- c67efe3a9c5b health: correctly expand and resolve PYENV_ROOT (#26953)
- 88eb0ad149d3 health: fix tmux RGB capability detection (#26886)
- cde4892b4955 health: fix typo in function name
- 63a17322dd83 health: improve python executable check error handling (#26954)
- ba88fd886ae8 health: malformed call to warn() #26217
- 8c6f97bef89d health: properly use the value of $PYENV_VERSION (#23109)
- c8ebb04e92c9 health: replace healthFoo with DiagnosticFoo (#23475)
- 843c1bed95d3 health: stop job properly on timeout (#23877)
- 96d0c709b66e healthcheck: expand vimrc variable (#28379)
- 4229bbe514b7 helptags: make multibyte help tags work properly (#23975)
- 7b6d041baed7 heredoc: allow missing end marker for scripts
- a2f17e97ec2d highlight: add `FloatFooter` to 'highlight_defs.h' (#25577)
- 837f26809373 highlight: add `Nvim{Light,Dark}Gray{1,2,3,4}` colors
- 8afb3a49c076 highlight: add create param in nvim_get_hl
- f8ea49cfe1f4 highlight: add force in nvim_set_hl
- 4ce0ada0d4c8 highlight: add missing g: prefix for colors_name (#22952)
- 03ca36d1f8d0 highlight: apply 'winblend' to NormalNC (#23555)
- 6c3e170e5668 highlight: apply 'winblend' to float border (#25981)
- d4872377fef7 highlight: attr set all when normal attr changed
- dcaf2073369c highlight: combine ColorColumn with low-priority CursorLine (#23017)
- 66925f14de81 highlight: consistently spell "Goldenrod"
- 51836517738b highlight: correct hi command output
- ca7dd33fa783 highlight: don't show CursorColumn on current line (#27848)
- 59289fb987bd highlight: make CurSearch work properly with 'winhl' (#24448)
- b11a8c1b5d39 highlight: remove unnecessary assignment to char_attr for 'spell' (#23713)
- 9a2c98087b90 highlight: update `IncSearch` to link to `CurSearch`
- ab9257575387 highlight: winhl receive wrong argument
- b60a2ab4cb7b inccommand: block errors when parsing command line again (#24374)
- bc5b0da84ec4 inccommand: don't crash with "split" and 'n' flag
- 382ea4d40282 inccommand: don't preview in Ex mode (#26587)
- c1c2a1b5dd1d inccommand: don't save information of a buffer twice (#24501)
- ef44e597294e inccommand: don't set an invalid 'undolevels' value (#24575)
- ba9f86a9cee5 inccommand: improve preview buffer number handling (#27087)
- 643bea31b867 inccommand: restrict cmdpreview undo calls (#24289)
- 1dba570e63ed inccommand: save and restore '[ and '] marks (#26442)
- 35ffe58ea4a3 inccommand: update topline after moving cursor (#27341)
- a14c7809181c input: set termkey buffer size to read stream capacity
- b61575ba70f8 intro: clear intro if new buffer is shown in focused float
- 9530a2301680 intro: link showing intro to state at start
- 0570a19c8a84 intro: make intro explicitly stateful
- d1a30221fcb1 intro: redrawing intro exposing pseudo-randomness
- 21360523cd3d intro: still show intro message with floating window
- 6b96122453fd iter: add tag to packed table
- 2ee8ace217b8 iter: make pipeline termination conditions consistent (#24614)
- 94894068794d iter: remove special case totable for map-like tables
- 57ccd8241735 job-control: fix use after free (#25223)
- 1c71c32b2910 job-control: make jobwait() flush UI after hiding cursor (#25927)
- e057b38e7037 json: allow objects with empty keys #25564
- af6537bc66e2 jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461
- 017ff93b020e keycodes: recognize  as a key (#24700)
- 6709f7f8f130 keycodes: simplify S- properly when D- is present (#27316)
- 4447cefa4815 l10n: update Japanese translations (#27856)
- 7d17ab5b6f07 l10n: update Ukrainian translations (#26819)
- 908843df61fc languagetree: apply `resolve_lang` to `metadata['injection.language']`
- e353c869cea4 languagetree: don't treat unparsed nodes as occupying full range
- 6b5f44817e93 languagetree: remove double recursion in LanguageTree:parse
- f5530bf566f6 linematch: initialize array
- 766f4978d6cb lint: lint warnings #24226
- 5465adcbab29 lint: use tbl_contains
- 0804034c07ad loader: cache path ambiguity #24491
- 89135cff030b loader: remove cyclic dependency on vim.fs (when --luamod-dev)
- 66c66d8db8ab loader: reset hashes when running the loader
- ec80e4cb4d31 log: increase size of buffer for nvim instance name
- 4d0f4c3de9cb lsp: E403 if doc contains multiple codeblocks #24458
- 20c331915f4e lsp: SignatureHelp docstring is not escaped #16702
- 01691c5447d9 lsp: abort callHierarchy on no result (#28102)
- 9abced6ad95f lsp: account for border height in max floating popup height (#25539)
- 3e016fa8d4f7 lsp: actually send diagnostic-tags back to the server
- 37d8e5045936 lsp: add "silent" option to vim.lsp.start (#28478)
- 2e1f5055acde lsp: add assertion for explicit bufnr in apply_text_edits (#27614)
- 542c910a1d3f lsp: add missing LSP semantic token highlight links
- be5e36115410 lsp: add param assert in client_is_stopped (#23857)
- ac0e8323dc82 lsp: add parentheses to generated union array types (#27560)
- 0fcbda59871e lsp: add snippet regression test (#27618)
- e42fdaad21a8 lsp: add spacing for inlay hints separately #24079
- 48bcc7b9710d lsp: advertise workspace.didChangeConfiguration capability (#26028)
- c07dceba335c lsp: allow Lua pattern chars in code action filter (#24041)
- 3bf887f6e08f lsp: always return boolean in lsp.buf_client_attach (#24077)
- 966eb8e0b3be lsp: announce publishDiagnostics.dataSupport (#24442)
- 39fc340276a4 lsp: avoid assertion when `client_hints` do not exist (#28461)
- 47dbda97d2f4 lsp: buffer messages until connected to server (#28507)
- adbe7f368397 lsp: call `on_list()` even for single location (#25830)
- 15983cf2c64c lsp: cancel session when leaving snippet region (#25762)
- 816b56f878f0 lsp: cancel watchers when closing a client
- 9b8a0755390b lsp: change `silent` in lsp.start.Opts to optional (#28524)
- d3e035257473 lsp: check if inlay hints are enabled for a buffer before disabling (#24074)
- fa9a85ae468b lsp: clean up duplicate and unused meta type annotations
- 8bd6f7c20b40 lsp: clear codelens on LspDetach (#24903)
- 97c0a52416b8 lsp: correct deprecation message #28403
- aa62898ae329 lsp: correct the error message's cmd on spawning (#27632)
- 77a9f3395bd1 lsp: create codelens request parameters for each buffer (#27699)
- 9281edb334a3 lsp: create per client params in lsp.buf.code_action
- 39cc38a87b29 lsp: defer writing error msgs (#27688)
- 1b679ac19287 lsp: define LspInlayHint highlight group #24073
- dc8c086c7e73 lsp: directly rename the existing buffers when renaming (#27690)
- c1a95d9653f3 lsp: disable didChangeWatchedFiles on Linux
- 2fde6295df8c lsp: display initialization errors (#25409)
- 94127cb5df0a lsp: do not add extra indentation
- cc87dda31a5b lsp: do not assume client capability exists in watchfiles check (#24550)
- 0fe0cf5adaab lsp: do not cancel snippet when selecting placeholder (#25835)
- 073035a030f5 lsp: don't register didChangeWatchedFiles when capability not set (#23689)
- 5eee633c9705 lsp: don't start additional client if attach failed (#28744)
- 21fa19f3e8c1 lsp: don't use hl_mode = combine for inlay hints #24276
- 96b94f8d7777 lsp: duplicate on_detach, on_reload callbacks #24067
- b95b6ed9753d lsp: empty commands should not be considered executable (#28216)
- c3c673cdeca2 lsp: enable() does not activate inlay hints on open buffers #28629
- b2c26a875b9d lsp: ensure buffer is not attached more than once
- fa0a25dcb3a4 lsp: error in reset_timer on second detach #24117
- 72e64a1afef0 lsp: extra "." when completing with tsserver #24646
- 031088fc0aff lsp: filetype matching to documentSelector in dynamic capabilities (#25425)
- d191bdf9d5e5 lsp: fix attempt to call non existent function (#24212)
- dd3fa6457355 lsp: fix dynamic registration of code actions (#23826)
- ce4ea638c703 lsp: fix incorrect typing and doc for `vim.lsp.rpc`
- f487e5af019c lsp: fix infinite loop on vim.lsp.tagfunc
- 74bd4aba57d2 lsp: fix multi client handling workspace_folder methods (#18839)
- 5e5f5174e3fa lsp: fix off-by-one error for omnifunc word boundary
- ba6761eafe61 lsp: fix omnicomplete in middle of the line (#25787)
- 075a72d5ff9d lsp: fix relative patterns for `workspace/didChangeWatchedFiles` (#23548)
- 840e1864c2de lsp: handle NUL bytes in popup text (#25612)
- 345bd91db28e lsp: handle absence of a trailing newline #25194
- 0e9a33572dc7 lsp: handle adjacent snippet tabstops
- 853f647da618 lsp: handle reverse lookup in capabilities
- 91f67fabe69f lsp: handle stale bufnr on LspRequest autocmd trigger (#24013)
- 849d82b80b85 lsp: handle stale bufnr on LspRequest autocmd trigger (#27981)
- 2eecb1b85dbb lsp: highlight active parameter in signature help #25663
- e55e80d51ca5 lsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469
- 7968322e7a20 lsp: inlay_hint nil reference error #24202
- ba8f19ebb67c lsp: lint warnings, default offset_encoding #24046
- 330444994616 lsp: log unknown diagnostic tags instead of showing a warning (#25705)
- 251ca45ac948 lsp: markdown code fence should allow space before info string #24364
- add7e106d59b lsp: noisy warning about offset_encodings #24441
- c235959fd909 lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535)
- 1dacf2ecee36 lsp: prevent code-lens refresh from becoming a permanent  no-op (#28228)
- 597ecf751603 lsp: re-add client.commands and mark private
- 94a904b453e5 lsp: reapplying already-applied hints #24114
- 4ecc71f6fc73 lsp: reduce diagnostics and add more types (#23948)
- bc7f86209d39 lsp: redundant vim.snippet.jumpable #28560
- ee156ca60ede lsp: refactor escaping snippet text (#25611)
- 2ecba65b4ba7 lsp: remove unknown LSP protocol property (#24345)
- 7311958e1238 lsp: remove unnecessary file load/write when renaming (#27621)
- e14e75099883 lsp: rename LspProgress data.result => data.params #28632
- f0e61e6d92b5 lsp: rename fails on missing parent directory #27291
- b413f5d048ab lsp: rename undofile when renaming (#27684)
- d09957e0a06f lsp: rename: load and list new buffer if attached to window (#27408)
- 7668f89d5be6 lsp: replace @private with @nodoc for public client functions (#24415)
- 52823616bc4d lsp: replace bug-prone ternary operation #28627
- 5282d3299c9b lsp: restore marks after apply_text_edits() #14630
- cf5f1492d702 lsp: revert change to buf.clear_references() #24238
- 917172dd9680 lsp: semantic token defer loading
- 3be2536ca039 lsp: send back diagnostic tags to the server
- a37d568082ad lsp: send empty "added" list when removing workspace folder #24440
- 3c6d971e5488 lsp: set extra info only when it has a value (#23868)
- 5785c32f1115 lsp: set fallback client name properly
- 370232dbefb9 lsp: track snippet deletion
- ca26ec34386d lsp: use only utf-16 in default client positionEncodings (#23903)
- b302da9ad220 lsp: use percentage format on lsp.status (#23971)
- 2c8f36a3b0b6 lsp: use plain loop for non-list-like table of protocol values
- 8addd27504e6 lsp: when renaming directory, check path prefix of buffer names (#27603)
- 597355deae2e lsp: wrong iterator in registerCapability handler (#24971)
- b2d471ab337e lua: allow nil values in serialized Lua arrays (#26329)
- 68f12e7fcb1f lua: annotate that TSNode functions can return nil (#24621)
- 4ffc20c95152 lua: avoid internal error when :luado deletes lines (#27262)
- 319803822420 lua: correct return value for on_key with no arguments (#25911)
- 84bbe4b0ca93 lua: disallow vim.wait() in fast contexts
- 22eb2ba18336 lua: do not schedule events if Nvim is exiting
- 7d279a09e0fb lua: handle array with holes in luaeval() (#26630)
- c43c745a14dc lua: improve annotations for stricter luals diagnostics (#24609)
- 2f779b94e7fe lua: inspect_pos respect bufnr when get syntax info (#23098)
- e2e63bd04549 lua: make highlight.on_yank use win-local highlight (#27349)
- b40170f7a3ca lua: memory leak when using invalid syntax with exists() (#26530)
- 4ab9c5fa4684 lua: not using global value in vim.opt_global (#25196)
- 20ec4c776a07 lua: only disable vim.schedule() when closing main loop (#26090)
- f150b62423d5 lua: only free luarefs when returning from API (#28373)
- 019077171324 lua: remove uri fragment from file paths (#27647)
- 5aa14e1231b7 lua: return after assert returns assert message (#27064)
- 5331d5772ffb lua: show error message when failing to set variable (#25321)
- 1294e221a205 lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
- 37c58226a8fd lua: vim.fs typing (#24608)
- 5db076c7ccfe lua: vim.region on linewise selection #25467
- 622b1ae38a36 lua: vim.split may trim inner empty items
- a7df0415ab6a lua2dox: filter out the entire `---@alias` block
- 32e69bd3971c luarc.json: ignore test directory to save memory
- 6f936c9d85a0 man: make :Man with a range work (#25922)
- 59aadf33efc2 man: pass modifiers also to :tag (#27878)
- a9b4dc9614a0 man: set the nested flag for the BufReadCmd autocommand (#26285)
- c8d1d8b2546c man.lua: don't continue on command error (#23009)
- a4c4b39d55db man.lua: hardwrapped manpage is not resized #25646
- 209ed16f57a7 man.lua: return support of all sections
- 3a7c30dc93b9 man.vim: q quits after jump to different tag in MANPAGER modified (#28495)
- 3c667d3e0fe4 mappings: fix mapset() not replacing map with backslash (#26719)
- 0451391ec514 mark: properly init mark views (#22996)
- d432bba4e46c marks: handle switching buffer properly (#25763)
- 62306a29add2 marktree: correct qsort usage
- 585549625d8a marktree: off-by-one error in `marktree_move`
- 34be915f6b93 marktree: preserve ordering in `marktree_move`
- b97d5038f16b marktree: some marks counted twice when checking for overlap
- ad5a155b1f4b mbyte: fix bugs in utf_cp_*_off() functions
- b02823399171 memline: more curbuf stuff
- 91ef26dece6d messages: :map output with ext_messages (#26126)
- eabf9de1dc8c messages: allow more prompt in headless mode with UI (#27905)
- 60fb8a6a8bd9 messages: avoid crash with :intro and ch=0 (#28343)
- 61a0aa6c51fb messages: avoid passing negative length to strnlen() (#28753)
- ca258db15668 messages: clear new lines when increasing 'cmdheight' (#27421)
- c9f47fca8b89 messages: ensure msg_grid is at top at more prompt (#23584)
- 2f17ef1fc4b9 messages: use "Vimscript" instead of "VimL" #24111
- 55dbf5c3798c messages: validate msg_grid before using msg_grid_pos (#26189)
- 4db77017fb7a meta: add nil return types to lpeg functions
- 5198a2555de4 meta: cleanup lpeg operators
- dae6770b761a meta: include vim.json
- d31f7648ecaf mkspell: prevent Unicode character overflow (#23760)
- a8a93e517f9e mouse: avoid dragging after click label popupmenu callback (#26187)
- 6a2a37b1e102 mouse: avoid dragging when clicking next to popupmenu (#26201)
- 091eb4c8c720 mouse: click after eol with conceal and virtual text (#27897)
- 2b475cb5cc21 mouse: click on 'statuscolumn' with 'rightleft' (#25090)
- e25cf47ad3e1 mouse: click on empty line with 'foldcolumn'
- 84a4319545ad mouse: cmdline click registered as statuscolumn (#23163)
- bf52fb7193ca mouse: copy the line before syntax matching (#24320)
- 5fb4c397a1da mouse: drag vsep of window with 'statuscolumn' (#24462)
- dc394b9641f9 mouse: fix popup menu position check with winbar (#23456)
- 7c1921e9d69e mouse: fix popup_setpos position check with ext_multigrid (#23436)
- a3fba5cafcf1 mouse: handle folded lines with virt_lines attached to line above (#23912)
- 64aa0f7d0b70 move: check for filler lines properly (#28307)
- 366d0c7887f7 move: check the correct buffer (#25698)
- 780509aedf5c move: fix using the wrong window (#28312)
- 60d1e3e4718a msgpack: store grid line event as a value
- c52dfb6e8408 normal: don't check conceal when pressing 'r' (#27892)
- 088cdf69e3fa normal: make "g$" work properly with resized grid
- a1ded1b113d2 oldtest: always use a 64-bit int for swapfile block number
- 92c59c39c3d9 ops.c: remove duplicate u_save_cursor()
- 9d01385c6ca6 options: `'modified'` showing incorrect value for scratch buffers
- c3e176f6e24e options: correct condition for calling did_set_option() (#25026)
- 9af03bcd4712 options: do not change inccommand during preview (#25462)
- 796df966f3cb options: don't update curswant for 'winhl' or 'winbl' (#27515)
- d956bc63795f options: setting 'scroll' with resized grid (#26628)
- c8a27bae3fae options: use a union for def_val (#27169)
- 804c828e681e optionstr.c: incorrect use of curbuf/curwin
- a9df0c5ce6ca osc52: do not use 'vim.iter' (#27218)
- 5d75d9aef2b6 osc52: enable OSC 52 by default in tmux sessions (#26072)
- 86c2213b5e45 osc52: use `p` for primary selection instead of `s` (#26076)
- 104565909798 osc52: use nvim_chan_send() to stderr for copying (#26690)
- e3bd04f2aff7 pager: handle consecutive newlines properly (#27913)
- 1e7e9ee91f73 path: accept special characters on Windows (#25424)
- f064e72b9b9c path: check return value of append_path() (#28309)
- f5eabaa9407a path: restore space separation in 'path' (#25571)
- 908f247c224d plines: count 'showbreak' for virtual text at eol
- a0cbf1d8d5a6 plines: cursor position with 'showbreak' and resized grid (#28067)
- 317038e7cb11 plines: don't return very large height on very long line (#24260)
- 7955c90621bb plines: folded lines with virt_lines attached to line above
- 35c3275b4896 plines: handle inline virtual text after last char (#24241)
- cbadb39d16c1 plines.c: initialize cts_max_head_vcol (#24855)
- fc14928719df printf: make positional %zd and %zu work (#24722)
- d0b3c8721921 process: avoid potential data race on exit (#27769)
- 3e569d440b8e process: close handles and timer in pty_process_close() (#27760)
- 268066e01400 process: start pty process eof timer on main thread (#27625)
- 49983387ffd5 prompt: emit change event for prompt newline (#28260)
- 7bd6bd1ef721 provider: cannot detect python3.12 #25316
- 61ecb3e16c22 provider/pythonx: import the correct module (#25342)
- 540941ef8320 pum: don't position too far with resized parent grid (#23442)
- f186224dfcf8 pum: fix missing rightmost column with 'rightleft' (#23445)
- 8bc973c6f59c pum: fix missing scrollbar with 'rightleft' (#23448)
- a7550a20e0c3 pum: handle right-click menu repositioning with multigrid (#26975)
- fbaa27877361 pum: make :popup position correctly with float border
- a3dfe1bc89a5 pum: position properly with ext_multigrid (#23336)
- c1331a65dd12 pum: show right-click menu above cmdline area (#23298)
- dd0e77d48a84 query_error: multiline bug
- 5ac2e47acc99 redo: make redo of Lua mappings in op-pending mode work (#23566)
- 60f69014a801 redraw: multibyte characters are wrapped at the end of a line (#23696)
- cb34d0ddd086 redraw: overwrite double-width char with virt_text properly (#23708)
- d184933cdc70 redraw: update Visual selection properly with splits (#27343)
- 54044e6dce2f release.sh: ze version is too big
- cce9460524aa remote: make --remote-expr print to stdout (#23980)
- bde59e81473f remote: restore previous --remote-expr output formatting (#23988)
- 468292dcb743 rpc: "grid_line" event parsing crashes (#25581)
- 4d4092ac9e98 rpc: assertion failure due to invalid msgpack input
- 8921d56053bb rpc: do not crash when no input is consumed
- c422722b2e94 rpc: fix hang with channel closed while waiting for response
- adb225834540 rplugin: dont create data dir if it's a broken symlink #25726
- 65dd3c1180ce ruler: show ruler of curwin with no statusline in cmdline
- f5231d61a541 runtime: add commentstring for C# ftplugin (#23039)
- 3387dc4a463c runtime: add commentstring for D ftplugin (#25362)
- 615b48aca6bd runtime: add more Nvim-only highlight groups to Vim syntax
- aee6f08ce12a runtime: do not allow breakcheck inside runtime path calculation
- df297e3c2bd7 runtime: don't set gx mapping if already mapped (#24262)
- 9176b5e10a6b runtime: respect 'fileignorecase' when sourcing (#24344)
- dbb840da01c7 runtime: respect 'rtp' order for all runtime files (#24335)
- 70a00492962d runtime: source c ftplugins in correct order (#27377)
- d431a4d410f0 runtime: source old color scheme in bundled color schemes (#26641)
- 3ab6f60dc80d runtime: update 'vim' color scheme to use new tree-sitter groups
- 67fba9affa14 runtime/tutor: don't try to close fold when there is none (#24953)
- ee56daebb646 shada: update deleted marks (#24936)
- 517dfdf0fcf5 shada: update marks when using delmarks! (#24978)
- 4d52b0cf6705 showcmd: clear the rest properly (#28420)
- fcd9905291c0 sign: avoid deleting from sign map while looping over it (#27158)
- a84b454ebe66 sign: do not error when defining sign without attributes (#26106)
- a5ade3c63d88 snippet: correct indent with newline
- 4625394a767f snippet: do not add extra indent on newlines (#28538)
- a1bdf2852d6d snippet: remove misleading comment about TM_FILENAME_BASE (#26465)
- 8c044f0862f4 spell: always accept ':' as filename char in 'spellfile' (#27172)
- a803bff89c89 spell: extmark with spell=false should disable spell (#23400)
- eceb2dffce39 spell: splice extmarks on :spellrepall (#23929)
- aa65bd478a98 startup: "nvim -l foo.lua" may not set arg0 #24161
- 628f6cce80de startup: don't truncate when printing with -l (#24216)
- c0fa721adeab startup: make recovery mode work without --headless (#24477)
- 8e739af064de startup: multiprocess startuptime #26790
- 8f10362cdc58 startup: only send one default_colors_set event during startup
- 559c4cfd52e3 startup: run embedded Nvim with real path (#24282)
- b21d96011934 startup: set full_screen when in ex_mode
- 9637b7dae417 startup: stop TUI properly when quitting at swap dialog (#25337)
- d7359a87425d startup: trigger UIEnter for the correct channel (#25860)
- 01e273c340b5 statuscolumn: don't update clicks if current width is 0 (#24459)
- afd0c648a89f statuscolumn: force full redraw when signcolumn is invalid (#24859)
- dc6c11394b73 statuscolumn: update number hl for each screen line (#25277)
- a4b240080435 statusline: also allow right click when 'mousemodel' is "popup*" (#23258)
- 4ecf6fdfd857 statusline: bail out properly on negative row (#23535)
- 70da793c5eda statusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823)
- d7bb19e0138c statusline: fill for double-width char after moving items (#24207)
- 54f560203897 statusline: fix uninitialized variable and possible overflow
- 9f15a18fa57f statusline: missing offset when showing 'keymap' (#27270)
- 7b973c71ea84 statusline: redraw when VIsual_mode changes (#23933)
- dbc0fa9bd683 stdpath: remove duplicate directories (#26653)
- 1907abb4c278 stream: do not close handle if it is already closing (#26537)
- 9dd48f7832f4 substitute: properly check if preview is needed (#23809)
- 9753cda591e2 syntax: use correct diagnostic group for checkhealth (#23538)
- 400b7842a983 termcap: escape escapes in passthrough sequence (#26301)
- e52784221118 termcap: only call callback for requested capabilities (#26546)
- ffeb31c2f962 termcap: set 'nested' on TermResponse autocommand
- b7831c7f996b termcap: use tmux passthrough sequence when running in tmux (#26281)
- e6d3f87dfd71 termdebug: handle partial lines passed to callback (#22950)
- c413b42c456b termdebug: prompt mode breaks with &splitbelow set
- 8aad4b84250a termdebug: send SIGINT when interrupting prompt mode
- af78060b1882 termdebug: trim suffixed "\r" in CommOutput
- 684e93054b82 terminal: assign channel to terminal earlier (#25771)
- 82b1a389ba98 terminal: avoid Insert mode in Terminal buffer (#25820)
- 99288ecc77e4 terminal: block input when there is pending TermRequest (#27589)
- f2ce31d3dc1c terminal: call validate_cursor() before screen update (#24425)
- e09adfdcffe8 terminal: check if mouse on statusline/tabline/winbar/vsep (#26892)
- e11573246579 terminal: check terminal size at end of screen update (#25480)
- 120c4ec855bc terminal: disable reflow again
- c881092ffe9d terminal: don't lose focus on  (#25845)
- 16a416cb3c17 terminal: don't pass incomplete UTF-8 sequence to libvterm (#27922)
- d0d132fbd055 terminal: don't send unknown special keys to terminal (#24378)
- 74776dfb2ac4 terminal: fix duplicate recording with mouse click (#28103)
- 21d466c1b985 terminal: forward horizontal mouse scrolling (#24552)
- d401b33314a4 terminal: handle horizontal scrolling in another window (#24828)
- 5e78fd778450 terminal: ignore $VIM and $VIMRUNTIME in pty jobs
- 0a7fda6fa006 terminal: include modifiers when forwarding mouse (#24549)
- d4c2fc6ff6c5 terminal: keep focus when scrolling number column of another window (#25848)
- 5ca6c9e04629 terminal: make backslashes in 'shell' work on Windows
- aba954b662cc terminal: never propagate $COLORTERM from outer env (#26440)
- b74262a336d3 terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418)
- 0fd8eb8aae10 terminal: set $COLORTERM unconditionally in :terminal (#24763)
- fa17a5ab49df terminal: use terminal buffer for TermRequest autocommand (#26974)
- 5999214c242d termkey: accept BEL (0x07) as OSC terminator
- ce2f770aaa23 termkey: do not sign extend mode value
- 50f5864dd245 termkey: include IO header on Windows
- 52e6059415ba test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905)
- c5528e7fd852 test: clean up inline virtual text tests a little
- 380b634ac951 test: fix "indeterminism" warnings in UI tests
- f4c97da26242 test: fix strings_spec.lua for AArch64
- 477458f7bf8d test: more tests for marktree
- d8e330bcec91 test: remove test/compat.lua
- a7bbda121d03 test: typing
- 8861ad83fd7f test/tui_spec: pass the expected NULL-sentinel to execl()
- f859d16aea0d tests: set SHELL=sh #24941
- 3d44340cea08 tests: use more global highlight definitions
- e9bfbe99cd71 textformat: remove unnecessary changed_bytes() (#26027)
- 255e547e18e1 timer: allow timer_info() to get info about current timer
- a8131aee9ecc tohtml: replace hex escape with digit escape (#27728)
- 0246f1a897f4 tohtml: set filetype of generated HTML to `html`
- ccc0980f86c6 treesitter: Use the correct replacement args for #gsub! directive (#23015)
- 71d9b7d15c9b treesitter: _trees may not be list-like
- a4743487b71b treesitter: `language.add` - only register parser if it exists
- 4a8bf24ac690 treesitter: adjust indentation in inspector highlights (#26302)
- ef64e225f6f6 treesitter: allow foldexpr without highlights (#23672)
- 6a264e08974b treesitter: allow optional directive captures (#28664)
- cf612c64b0fc treesitter: allow passing lang to vim.treesitter.get_node() now correctly takes opts.lang (#26360)
- 32849d56671c treesitter: avoid # of nil in _query_linter
- 3fd7449d5abe treesitter: check that buf is loaded in autocommands (#25679)
- e7f50f43c822 treesitter: clip end row early
- 6b19170d44ca treesitter: correctly calculate bytes for text sources (#23655)
- bd5008de07d2 treesitter: correctly handle query quantifiers (#24738)
- fba18a3b6231 treesitter: do not calc folds on unloaded buffers
- c30ebb17f6b9 treesitter: document more standard highlight groups
- 040369e1e4b8 treesitter: don't forcefully open folds
- 72ed99319dd6 treesitter: don't invalidate parser when discovering injections
- 4607807f9fcb treesitter: don't update fold if tree is unchanged
- 26b5405d181e treesitter: enforce lowercase language names (#28546)
- 3a8265266e0c treesitter: escape "\" in :InspectTree #28613
- 369f58797dbd treesitter: escape quotes in :InspectTree view #24582
- 6e45567b498c treesitter: fix TSNode:tree() double free (#24796)
- 50a03c0e9975 treesitter: fix another TSNode:tree() double free
- 7c6f9690f74e treesitter: fix indexing in foldexpr
- 01b91deec7b6 treesitter: fix parens stacking in inspector display (#26304)
- f40a109716d7 treesitter: fix trim predicate
- 1f551e068f72 treesitter: fixup for InspectTree
- 26cc946226d9 treesitter: foldexpr tweaks
- e85e7fc7bccc treesitter: handle empty region when logging (#24173)
- 12faaf40f487 treesitter: highlight injections properly
- 6f75facb9d75 treesitter: improve vim.treesitter.foldexpr
- 6c8387067d4e treesitter: inspect-tree remember opts on buf change
- 8179d68dc1a9 treesitter: logger memory leak
- b6e339eb90e1 treesitter: make InspectTree correctly handle nested injections (#26085)
- 3af59a415c98 treesitter: make Visual hl work consistently with foldtext (#25484)
- c7e7f1d4b4b6 treesitter: make foldexpr work without highlighting (#24167)
- 0211f889b953 treesitter: make sure injections don't return empty ranges (#24595)
- 0df681a91d6b treesitter: make tests for memoize more robust
- 7fa292c52d7b treesitter: outdated highlight due to tree with outdated region
- 617d1b28d6d3 treesitter: prefix treesitter types with vim
- 90a12d4a1643 treesitter: prepare highlight states for [s, ]s
- 7e5ce42977d7 treesitter: properly combine injection.combined regions
- 19a793545f15 treesitter: redraw added/removed injections properly (#23287)
- 7a76fb854754 treesitter: remove more double recursion
- e124672ce9a8 treesitter: reset cursor max_start_depth
- 7d9715008470 treesitter: return correct match table in iter_captures()
- 3b29b39e6deb treesitter: revert to using iter_captures in highlighter
- 315c711700a8 treesitter: set cursor position when opening inspector
- 48085e40bb0e treesitter: stop() should treat 0 as current buffer #24450
- 32dc484ec9ec treesitter: support subfiletypes in get_lang (#23605)
- b6fdde522425 treesitter: text alignment in checkhealth vim.treesitter
- 0f85aeb478a6 treesitter: treecursor regression
- 26143d7a5c90 treesitter: update @markup default links
- 9ff59517cbf3 treesitter: update c queries
- c44d819ae1f2 treesitter: update folds in all relevant windows (#24230)
- ffb340bf63af treesitter: update folds only once on InsertLeave
- edf9a897f089 treesitter: update highlights for query (#23699)
- b697c0cd4fb2 treesitter: update lua parser and queries (#24148)
- ad95b3698569 treesitter: update markdown parser and queries (#24429)
- 39a0e6bf3c04 treesitter: update parsers and queries
- 3d4eb9d544cb treesitter: update queries
- c97de026e357 treesitter: update vimdoc and vimscript queries
- dc7ccd6bca81 treesitter: use 0 as initial value for computing maximum (#27837)
- 7bc5ee7f9327 treesitter: use proper query syntax for inspector (#26274)
- 00e6651880c3 treesitter: use tree range instead of tree root node range
- 8c9dab3e0d78 treesitter: use vim.highlight.priorities instead of hardcoded 100 (#24052)
- 674f2513d4d4 treesitter: validate language alias for injections
- 2bf3e82676d5 treesitter: validate window before updating preview highlights
- ab2811746eb7 treesitter playground: fix the wrong range of a node displayed i… (#23209)
- f85aa2e67f3e treesitter.c: improve comments on fenv usage
- c5b9fb2f2565 treesitter.foldexpr: check for all insert submodes
- b3bda2f0438d tui: `space_buf` overflow when clearing screen (#27352)
- cb2b5e2780a6 tui: disable DECRQM and DECRQSS queries for Terminal.app (#28453)
- 405bad5e085f tui: do not toggle cursor visibility when flushing the buffer (#26055)
- b76cc974b9a5 tui: don't forget to update cursor visibility (#26523)
- 911f3d962358 tui: don't overwrite an assertion faliure message on exit
- 168e69ae0156 tui: don't set cursor color when there is none (#28236)
- 5a08b5be3c34 tui: don't set tty background if &bg was set before VimEnter (#23701)
- 00b7428b3bf5 tui: don't use DECRQSS in screen or tmux (#28086)
- 846714ca3e70 tui: don't use tui->params[] for 'termsync' (#26565)
- 197827321a39 tui: grid_clear properly clears the screen
- 884a83049b2c tui: grow termkey's internal buffer for large escape sequences (#26309)
- ad867fee26c8 tui: handle cursor visibility properly (#26091)
- fd50185492c7 tui: initialize clear attrs with current terminal background
- c26b39a9aa56 tui: make :cquit work properly with remote TUI (#25313)
- 3ae62c470634 tui: make disabling title restore old title from stack (#23585)
- 4c31a1b807f1 tui: make setcellwidths() work for non-ambiwidth chars (#28322)
- 4f235e3cafba tui: position cursor at bottom-left before stopping (#23369)
- 0f1b511f2302 tui: redraw on SIGWINCH even if size didn't change
- 8e6971695383 tui: restore title before exiting alternate screen (#23776)
- 999e167a521a tui: start flush earlier (#26463)
- 367e52cc79a7 tui: use buflen to calculate remaining buffer size (#26942)
- 3198598e6974 tui: use uv_timer_t instead of TimeWatcher for input (#26435)
- 0ce065a332cb tui: v:argv does not report the original argv[0] #24015
- bc6fc0123d2f tutor: Tutor steps don't work on Windows #25251
- bf5703042b50 tutor: don't use concealed text in expected lines #24316
- e34c23b7016a tutor: set a value for ":syntax iskeyword" (#27833)
- 04232a19ccf0 type: remove incorrect arguments from vim.rpc*
- 21152f7905b5 types: add more annotations to eval.lua
- b7d5b55f74fd types: add some return/parameter type annotations (#24867)
- e6947bb1e80a types: make filetype.add parameters optional
- 191cca2566a8 types: move type annotation for `IterMod`
- 813dd36b7297 types: rename win_get_config return type to win_config
- b3342171d533 typing: vim.fn.execute
- 1355861b926a typval: don't treat v:null as truthy (#23281)
- 0592fd5e17dc ui: "resize -1" with cmdheight=0 #24758
- ab1c2220f0c7 ui: activating all ext capabilities without remote UI #28555
- 5b111a8f00f8 ui: adjust 'smoothscroll' for inner dimensions
- 389f5ca39d27 ui: adjust the cursor when inserting virtual text
- 046c9a83f7ed ui: always use stl/stlnc fillchars when drawing statusline (#25267)
- 0c86828ac574 ui: avoid ambiguity about chunk that clears part of line (#24982)
- e778e0116198 ui: avoid recursiveness and invalid memory access #28578
- 0ce39108684e ui: cursor pos with left gravity inline virt_text at eol (#24329)
- 91a4938edfd3 ui: data corruption in remote_ui_raw_line
- 1de82e16c121 ui: delay win_viewport until screen update #24182
- a91652357413 ui: doesn't trigger au event when enter is false
- b5a38530ba18 ui: don't force 'cmdheight' to zero with ext_messages
- fdc8e966a918 ui: don't send empty grid_line with redrawdebug=compositor (#23899)
- 13f55750e9be ui: empty line before the next message after :silent command
- d41b8d47587b ui: ext_cmdline should not move cursor to curwin
- a38d7f99845d ui: fix cursor position with multiple inline virtual text
- e0707d352959 ui: fix edge case around flushing
- 75f350aac6cd ui: fix incorrect highlighting when virtual text next to match
- 332b70d2ed31 ui: fix incorrect highlighting when virtual text wraps with number
- 0c7fa3bdcc37 ui: fix multi-byte characters highlight in virtual text
- a37c99048359 ui: fix overflowing nowrap virtual text not displaying if tab follows
- 5d7afb2e9f22 ui: fix tabs not being spaced properly after virtual text with no wrap
- 34d862942c33 ui: fix virtual text not displaying when two overlapping inlines (nowrap)
- c5bf838f8aa5 ui: fix visual and search highlighting interfering with virtual text
- 1936285d98f6 ui: fixes incorrect rendering when virtual text is not visable and nowrap
- 64e8a3c4d19e ui: handle virtual text with multiple hl in more cases (#25304)
- 981acc2922ce ui: propagate line wrapping state on grid_line events
- b8c1b36061f4 ui: set 'cmdheight' to zero for all open tabpages
- a8522f02e9a2 ui: startup intro message should be visible with ext_multigrid
- 1cd7824dd69e ui: trigger TabNewEntered after split new tab
- 7626f431d84f ui: update ext_ui widgets when attaching non-remote UI
- 128091a256d6 ui: wrong cursor position with left gravity inline virt text at eol
- a9418ef8cfc0 ui: wrong display with 0-width inline virt_text at eol (#24854)
- e8b3ed74bca4 ui-ext: "scroll_delta" handle topfill and skipcol (#24249)
- 43d66c0ebbe4 ui-ext: send title to newly-attached UI
- 519b9929e94c ui.open: some URLs fail on Windows
- 4d654472e65e ui_client: check return code of dup()
- 633bf61d3b03 ui_client: check return value of channel_job_start (#27729)
- 71ad771ea4b7 ui_compositor: only reset skipstart at first column (#24776)
- 840749d6c971 undo: fix crash caused by checking undolevels in wrong buffer
- c0a29931e29b unhide: close floating windows first (#25318)
- 9afbfb4d646c unittests: ignore __s128 and __u128 types in ffi
- 9e79f7433eb0 usercmd: Fix buffer overflow in uc_list() (#23225)
- 9802de933484 userfunc: fix possible out of bound access
- 5a8fe0769cc9 vim.deprecate: show deprecation warning in devel versions as well
- ca6dbf3558ce vim.iter: use correct cmp function when truncating tail in `take` (#27998)
- e15991c8116c vim.json: properly treat luanil options as booleans (#28622)
- fec5e3ab247b vim.region: handle multibyte inclusive selection properly (#26129)
- 2afb04758c34 vim.system: close check handle (#24270)
- 9b7cf4f0beb3 vim.system: don't process non-fast events during wait() (#27300)
- a44521f46e6f vim.system: let on_exit handle cleanup after kill
- 6d5f12efd286 vim.system: make timeout work properly
- 57adf8c6e01d vim.ui: open() may wait indefinitely #28325
- e644e7ce0b36 vim.ui.open: return (don't show) error message
- fd085d908201 vim.ui.open: try wslview before explorer.exe #28424
- 5e4a5f1aaa15 vim.ui.open: use explorer.exe instead of wslview #26947
- 6cc76011ca28 watchfiles: skip Created events when poll starts (#23139)
- 9bd4a2807960 window: :close crash if WinClosed from float closes window (#27794)
- 731e7f51ee40 window: :close crash with autocmd, floats and tabpage (#27793)
- 33dfb5a383d7 window: :close may cause Nvim to quit with autocmd and float
- 2cbfa4b9af78 window: don't go to unfocusable float when closing (#28455)
- a47be0b2d90b window: prevent win_size_restore from changing cmdheight
- 4bfc7802f056 windows: set stdout to binary mode for --api-info

PERFORMANCE
--------------------------------------------------------------------------------
- a9c551e5e38f cache breakindent/showbreak width in win_lbr_chartabsize
- b5653984e5de don't decode utf8 character multiple times in getvcol()
- cca8a78ea2ac improve utf_char2cells() performance (#27353)
- 2f2f12122f38 remove loop for computing last position in getvcol()
- 32a4c9f4f92d remove redundant strlen in skipwhite (#26177)
- cdf848a314bf reuse fast character size calculation algorithm from getvcol()
- 2289ca273cda column: avoid counting when max signs are removed from a range
- 4a34da82c18e column: keep track of number of lines that hold up the 'signcolumn'
- f4001d27efae column: only invalidate lines affected by added sign
- 7f084770c238 diagnostic: avoid table copies to filter by severity (#28491)
- 1cb60405548e events: store autocommands in flat vectors (#23256)
- 9af2be292db3 extmarks: add metadata for efficient filtering of special decorations
- 929e1b7f1c35 extmarks: avoid unnecessary invalidations for virt_text (#27435)
- 19fb573ad992 extmarks: avoid unnecessary marktree traversal with folds (#24306)
- d44ed3a885e1 extmarks: better track whether namespace has extmarks (#28615)
- ef94fb69c65b extmarks: don't handle inline virt_text if there is none (#24322)
- 8bb67d64e20d fs: normalize path only once in fs.dir
- 40db56901447 iter: make ListIter.totable more efficient (#23714)
- ef1801cc7c3d iter: reduce number of table allocations
- dcdefd042840 loader: use a quicker version of vim.fs.normalize
- 648f777931d4 lsp: load buffer contents once when processing semantic tokens responses (#23484)
- 2f4792943aa9 lsp: only joinpath for dirs in watchdirs
- edf05b005f34 lsp: process semantic tokens response in a coroutine that yields every 5ms (#23375)
- 79a5b89d66db lsp: reduce polling handles for workspace/didChangeWatchedFiles (#23500)
- 4d3a04279d32 lsp: remove grouping logic from lsp.status (#24096)
- de28a0f84c57 lsp: replace file polling on linux with per dir watcher  (#26108)
- 7e97c773e3ba lsp: use async fs_stat for file watching on linux (#26123)
- cdd87222c86c lua: avoid spairs in vim.validate happy path
- c5af5c0b9ab8 lua: faster vim.deprecate() #28470
- c5990f2cdca5 os/env: os_getenv() allocation when there is no env var set
- 18e62c1bdbbb redraw: only redraw Visual area when cursor has moved (#27340)
- 94085cfce821 redraw: reduce redraw with undo and extmarks or 'spell' (#27442)
- 516b173780e3 rtp: reduce rtp scans (#24191)
- 0e11bf0e1af5 substitute: don't reallocate new_start every time (#24997)
- 4fd852b8cb88 treesitter: cache fold query (#24222)
- 07080f67fe7e treesitter: do not scan past given line for predicate match
- c0cb1e8e9437 treesitter: filter out trees outside the visible range early
- 2b6c9bbe7f7a treesitter: incremental foldupdate
- 3ba930844c30 treesitter: insert/remove items efficiently (#23443)
- a76b689b479e ui-ext: approximate scroll_delta when scrolling too much (#24234)
- 0d1bc795f89c ui_client: skip some initialization not necessary for ui client
- 14a5813c2077 vim.fs.normalize: use iterator

BUILD
--------------------------------------------------------------------------------
- c1ff21666862 actually export symbols on mac
- 664f2749e688 add "ci" configure preset to reduce verbosity
- 1094d0c0dbd0 add CMAKE_C_FLAGS to --version output
- 129012172258 add CMakePresets for deps build to reduce verbosity
- ce6075f82a2a add check to clint to prevent non-defs header includes
- 624de849de39 add function add_target
- 82bb7bbc4816 add luajit runtime files when installing (#23514)
- 831d662ac675 add sub-targets to the doc target
- 1bf29a0ae1ff add system lua include dir for lpeg
- 4cc69f45b4a5 add ubsan default options
- 488038580934 adjust clang-tidy warning exclusion logic
- b80a8e2c16b6 adjust how find order is prioritized
- d561830a5242 align .clang-format rules with uncrustify config
- c18d7941effa allow sccache as compiler cache
- cd097ab8ccfd allow using system rocks
- 54d357dce0e1 bump lpeg to 1.1.0 (#25016)
- 7840760776cf bump minimum cmake version to 3.13
- 7a5effb0f95e bump required minimum libvterm version to 0.3.3
- 2835b0daad43 bump uncrustify to version 0.77
- 77c0d5415b4f bump uncrustify to version 0.78.1
- 87a45ad9b98e bump uncrustify to version 0.79.0 (#28756)
- 1798a4b5e9f0 bump uncrustify version
- 826b95203ac9 bundle uncrustify
- 37bc73e9bc2d change dependency URLs to cache variables
- 108601647783 cmake cleanup
- 404fdb0f3683 cmake fixes
- f8310beeed04 create BINARY_LIB_DIR directory before adding parser
- 9909668111f5 create a text file for specifying dependency information
- 5a7280ba687f create helper function for simplifying luarocks installation
- f936a962d04f create separate targets for nvim with and without runtime files
- bcaff309b607 disable UnusedIncludes from clangd
- 7a80e169c5b1 disable all compiler warnings from dependencies
- 8fdc84d0aaec disable conversion warnings for GCC
- 310fb2efc36c disable conversion warnings for older GCC versions
- a1c2da56ecef do not use GIT_REPOSITORY for local dependencies
- da2130934b95 don't allow Xcode as generator
- 543e0256c19f don't define FUNC_ATTR_* as empty in headers (#26317)
- 24b60b0f71e0 don't format deleted files
- c2e47e7bec03 don't print installed files locally
- f30844008bdd download busted from own neovim/deps repository
- 5abba97d77f2 download dependencies with unreliable mirrors from deps repo
- 71384129f754 download libiconv and gettext from `deps` repository
- 801ac2accb6a drop diff.exe from windows builds
- f0eb3ca9163a eliminate semicolons from --version string
- 397b92e02dbe enable ASAN for MSVC
- 40139738eb47 enable IWYU on mac
- 25cfe3fd432d enable formatting during rebase
- 517f0cc634b9 enable lintlua for scripts/ dir #26391
- 45fe4d11add9 enable lintlua for src/ dir #26395
- 59d117ec99b6 enable lintlua for test/ dir
- c3836e40a2bf enable lintlua for test/unit/ dir #26396
- 03c3f7887dbc enforce PREFER_LUA
- 7cb29a572b36 ensure `make clean` doesn't remove source files
- 0a3645a72307 find system luv on ubuntu
- 5bb17958c569 fix "make iwyu" not working (#24873)
- 12ccea596746 fix --luamod-dev not working properly (#24519)
- 75b80516d513 fix link error for `_BitScanForward64` (#28173)
- 3f188bc533bc fix parser installation location
- 4fb1739e6f1f fix uncrustify
- 896b400bff5c fix universal mac builds
- 01e4a70d668d improve git-cliff CHANGELOG output
- ef92b5a9948f include all dependency directories when generating headers
- 187ae6773592 introduce variable DEPS_IGNORE_SHA for skipping dependency hash check
- 30a0299bc6d1 make dependency URL variables non-cached (#23577)
- b4da4783f988 make genappimage.sh work with existing CMAKE_INSTALL_PREFIX
- 9f9cef1b569e make lpeg an imported library
- c1a05f61122d make the vimdoc generation depend on the nvim target (#25876)
- 8b8e60728486 move luarocks and rocks installation to main build
- d1bb9bffd5e8 remove BUSTED_PRG dead code (#23340)
- 8206954a67b9 remove LOG_DEBUG option
- c48f94d1f300 remove LOG_LIST_ACTIONS option and related code
- 353a4be7e84f remove PVS
- 88366641ad8a remove USE_BUNDLED_BUSTED option
- ca243f06dd05 remove `lintdoc` from `lint` target
- 675522af18f5 remove clint checks and style text covered by uncrustify
- 8be24fed8ffa remove config-specific find_package search for libuv
- c40872acbddb remove duplicate include directories in --version output
- ebb10d624825 remove functionaltest-lua target
- 8ae39eb58488 remove git requirement
- 9f8f287c6139 remove luarocks
- 339011f59c25 remove uninstall target
- c8fd82b26d4f reorder compiler option setting
- 78239f0bbcb2 reorganize cmake files
- 55793bcfa17c revert accidental permission changes (#23319)
- f31f260f0c64 rework --version generation
- a827003e3052 rework IWYU mapping files
- e5d7003b02c9 rework formatting to use add_glob_target
- 1997ef134a9a set char to always be signed
- a75ef40f4cde set deps default build type to Release (#27495)
- a1550dbf0ac2 silence new clang-tidy warnings
- 383018dbb8e0 simplify policy-setting for dependencies
- 4788abf2da6b stop installing parser.h from treesitter
- 26033eee1d3b suppress bugprone-reserved-identifier warnings
- 34509bbea3e8 sync IWYU and clint to ignore the same headers (#26228)
- 0a8e66898d73 update builtin terminfo (#27272)
- a388c852c406 update libtermkey commit
- 706f871014b4 update uncrustify to 0.76
- f4136c9d42f7 use -O3 optimization for release builds
- 2c1e8f7e9692 use `GIT_REPOSITORY` for local URLs
- e0d97d264f83 use built nvim artifact to generate eval files (#25875)
- 3d3717de4e51 use libvterm commit with generated *.inc files
- 4f526b9fd864 use neovim/libtermkey instead of neovim/deps for libtermkey
- 8405649f92a8 use neovim/libvterm instead of neovim/deps for libvterm
- 2a57613b9b42 use stylua with add_glob_target
- ae3eed53d610 various build improvements
- c8667c8756a2 various cmake fixes
- 5cefec734961 various cmake fixes
- bec2ebebdacd various cmake fixes
- c50951a4d0cf various fixes
- 4c9119461108 various fixes
- bf0be0f63e71 various improvements
- 404043e74c52 vendor libtermkey
- e38a05369293 IWYU: export generated headers
- 71141e8cf5df IWYU: fix headers for arabic.h
- 8b428ca8b79e IWYU: fix includes for func_attr.h
- f4aedbae4cb1 IWYU: fix includes for undo_defs.h
- 17d81ac2abc4 IWYU: map everything in the C99 specification
- c2a5105e8875 IWYU: remove arabic_defs.h (#26235)
- 38a20dd89f91 IWYU: replace most private mappings with pragmas (#26247)
- 09541d514dd1 IWYU: replace public-to-public mappings with pragmas (#26237)
- 39771b223847 Makefile: add nvim to oldtest phony target
- 6823fdb20b13 PVS: exclude build directory
- 5d387c338828 ci: ensure correct headers are used on macOS
- dcb11c109141 clint: don't allow INIT() in non-header files (#27407)
- c98ef2d7c629 clint: fix deprecation and linter warnings
- 7e2387f41be7 clint: more precise check for "defs" headers (#26236)
- cf8b2c0e74fd iwyu: add a few more _defs.h mappings (#25435)
- 5f03a1eaabfc lint: remove unnecessary clint.py rules
- eecddd24164c lint: use stylua without add_glob_target
- 25e51d393a42 lua: vendor coxpcall
- 4dc86477b674 luarc.json: disable luadoc-miss-see-name #24108
- fd9ac5aa8e1c makefile: remove a phony target uninstall (#24349)
- 978962f9a00c release.sh: regenerate docs after changing NVIM_API_PRERELEASE (#28229)
- 9ca81b025990 release.sh: set VIMRUNTIME when regenerating docs (#28765)
- 4399c4932d7b release.sh: use git cliff, drop old script
- d0ae52986159 scripts: allow a git ref for lsp_types #24377
- bfb81e1a8516 snap: remove obsolete snapcraft.yaml
- 981301d11f83 terminfo: include user capabilities in comments (#28066)
- 6801befcc5c0 uninstall: don't build if installation manifest not found
- 345dcba629c7 windows: set longPathAware in manifest #28389
---
 CMakeLists.txt                              |   4 ++--
 runtime/doc/diagnostic.txt                  |   3 ---
 runtime/doc/lsp.txt                         |   9 ---------
 runtime/nvim.appdata.xml                    |   1 +
 test/functional/fixtures/api_level_12.mpack | Bin 0 -> 32012 bytes
 5 files changed, 3 insertions(+), 14 deletions(-)
 create mode 100644 test/functional/fixtures/api_level_12.mpack

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 87f66732c3..5ad99cbf03 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -143,12 +143,12 @@ endif()
 set(NVIM_VERSION_MAJOR 0)
 set(NVIM_VERSION_MINOR 10)
 set(NVIM_VERSION_PATCH 0)
-set(NVIM_VERSION_PRERELEASE "-dev") # for package maintainers
+set(NVIM_VERSION_PRERELEASE "") # for package maintainers
 
 # API level
 set(NVIM_API_LEVEL 12)        # Bump this after any API change.
 set(NVIM_API_LEVEL_COMPAT 0)  # Adjust this after a _breaking_ API change.
-set(NVIM_API_PRERELEASE true)
+set(NVIM_API_PRERELEASE false)
 
 # Build-type: RelWithDebInfo
 # /Og means something different in MSVC
diff --git a/runtime/doc/diagnostic.txt b/runtime/doc/diagnostic.txt
index ac10b4ea39..36616b9a0d 100644
--- a/runtime/doc/diagnostic.txt
+++ b/runtime/doc/diagnostic.txt
@@ -743,9 +743,6 @@ hide({namespace}, {bufnr})                             *vim.diagnostic.hide()*
 is_enabled({filter})                             *vim.diagnostic.is_enabled()*
     Check whether diagnostics are enabled.
 
-    Note: ~
-      • This API is pre-release (unstable).
-
     Parameters: ~
       • {filter}  (`table?`) Optional filters |kwargs|, or `nil` for all.
                   • {ns_id}? (`integer`) Diagnostic namespace, or `nil` for
diff --git a/runtime/doc/lsp.txt b/runtime/doc/lsp.txt
index 7f6a2e3b73..ab09ba4252 100644
--- a/runtime/doc/lsp.txt
+++ b/runtime/doc/lsp.txt
@@ -1595,9 +1595,6 @@ enable({enable}, {filter})                       *vim.lsp.inlay_hint.enable()*
         vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())
 <
 
-    Note: ~
-      • This API is pre-release (unstable).
-
     Parameters: ~
       • {enable}  (`boolean?`) true/nil to enable, false to disable
       • {filter}  (`table?`) Optional filters |kwargs|, or `nil` for all.
@@ -1622,9 +1619,6 @@ get({filter})                                       *vim.lsp.inlay_hint.get()*
         })
 <
 
-    Note: ~
-      • This API is pre-release (unstable).
-
     Parameters: ~
       • {filter}  (`table?`) Optional filters |kwargs|:
                   • {bufnr} (`integer?`)
@@ -1639,9 +1633,6 @@ get({filter})                                       *vim.lsp.inlay_hint.get()*
 is_enabled({filter})                         *vim.lsp.inlay_hint.is_enabled()*
     Query whether inlay hint is enabled in the {filter}ed scope
 
-    Note: ~
-      • This API is pre-release (unstable).
-
     Parameters: ~
       • {filter}  (`table`) Optional filters |kwargs|, or `nil` for all.
                   • {bufnr} (`integer?`) Buffer number, or 0 for current
diff --git a/runtime/nvim.appdata.xml b/runtime/nvim.appdata.xml
index 1c348ab89c..517b8b20fe 100644
--- a/runtime/nvim.appdata.xml
+++ b/runtime/nvim.appdata.xml
@@ -26,6 +26,7 @@
   
 
   
+    
     
     
     
diff --git a/test/functional/fixtures/api_level_12.mpack b/test/functional/fixtures/api_level_12.mpack
new file mode 100644
index 0000000000000000000000000000000000000000..bab1b5111cc61a18a8239241ec94c1d5a2c3914e
GIT binary patch
literal 32012
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

literal 0
HcmV?d00001