mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim). Following is a list of fixes/features commits. BREAKING -------------------------------------------------------------------------------- -649dd00fe2remove deprecated functions -0370e4def0remove neovim qt -880f7d12feremove vimballs (#22402) -c48b1421afrename "playground" => "dev" #23919 -2f85bbe615rewrite TOhtml in lua -abe39f2b24api: change return type of nvim_win_text_height to Dict (#24365) -7180ef6901api: nvim_open_win: noautocmd blocks all autocmds #28192 -700cab0068events: trigger CursorMoved later on switching window (#23711) -e4a136f713ex_cmds: remove :behave -e5e0bda41blsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958) -5a363ccac8lsp: deprecate trim_empty_lines -5a2536de0clsp: move changetracking to separate file (#26577) -58618d208alsp: promote LspRequest to a full autocmd and enrich with additional data (#23694) -1b9ccd38a1lsp: rename vim.lsp.get_active_clients to get_clients (#24113) -eb1f0e8fcclsp: replace snippet parser by lpeg grammar -448907f65dlsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512 -7caf0eafd8lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440) -747264320cmappings: remove #n as a notation for a function key (#17318) -f7da472257options: graduate shortmess+=f flag -c3d1d9445coptions: graduate some more shortmess flags -5df4fdf253options: make OptionSet `v:` values use typval -881d17a113options: remove compatible behaviours for vim 5.0 and earlier -e19cc9c9b7options: unify `set_option` and `set_string_option` -db590e96d5startup: "nvim -l" message does not end with newline #24215 -2ca076e45ftreesitter: incremental injection parsing -f5dc453109treesitter: new standard capture names -fc0ee871detreesitter: remove deprecated legacy injection format -6debb18523treesitter: remove duplicated diagnostic code (#24976) -18da6964ccvim.iter: remove vim.iter.map/filter/totable #26138 -9b028bd64fvim.iter: rename xxback() => rxx() #28503 -8d4a53fe6evim.json: remove global options, "null", "array_mt" #24070 -40ce857797vim.ui: change open() to return `result|nil, errmsg|nil` #28612 -e0d92b9cc2vim.ui: change open() to return pcall-like values #28502 FEATURES -------------------------------------------------------------------------------- -a66b0fdfaaNVIM_APPNAME supports relative paths #25233 -c0beb8173fadd .luarc.json (#24592) -14b7ffcf89add __call typing for vim.inspect() -ca7e488cfeadd link in issue template to minimal config template -4bf47222c9add vim.text module (#26069) -0ebc4de0ffallow opting in to builtin clipboard providers (#28083) -e8d3c4cccbgenerate types and docs for v variables -29fe883aa9ignore swapfile for running Nvim processes #25336 -28d1640dd6improve return type annotations for vim.api.* -199a990c9ereport "build" in vim.version() #23925 -e688793253tostring(vim.version()) -c559ab0ae6update unicode tables (#27317) -ecdb6465e2vim.version() returns a Version object -4b60267f82:source: source current ft=lua buffer as Lua code (#23802) -428edcde70api: add forward and back mouse buttons -037ea6e786api: add nvim__redraw for more granular redrawing -ca9f6f5694api: add nvim_tabpage_set_win (#27222) -db8fe63a93api: add nvim_win_text_height (#24236) -16513b3033api: allow floats to be opened in non-current tabpage (#28480) -6b4970f6e0api: allow open_win/win_set_buf in the cmdwin in some cases -5d921e28c1api: allow win_close in cmdwin to close wins except previous -472271199eapi: allow win_hide to close cmdwin or non-previous windows -6bba4becedapi: make nvim_open_win support non-floating windows (#25550) -b162adbb7capi: pass 0 to nvim_get_chan_info for current channel (#27321) -42bbc4fabcapi: support abbreviations in nvim_set_keymap -98a4ed0a11api: support getting abbreviations (#26868) -d3d7d763f3builtin: improve types -748bc4d22dclipboard: add OSC 52 clipboard support -db57df04b6clipboard: enable OSC 52 clipboard provider by default (#26064) -734848dc1acolorscheme: add semantic tokens modifiers to builtin color scheme -1e0996b572colorscheme: update treesitter groups -73de98256ccomment: add built-in commenting -ae4ca4edf8complete: support f flag for complete buffer part -01c51a4913completion: support completing more string options -ae3685798ddecoration: allow conceal_char to be a composing char -30a5c28c87decoration_provider: log errors as error messages -9711370c26defaults: add :Inspect to right-click menu (#28181) -2613ba5000defaults: enable 'termguicolors' by default when supported by terminal -513fc46195defaults: improve :grep defaults #28545 -c26dc1f77cdefaults: map Q and @x to repeat in Visual mode (#26495) -8758c6fb87defaults: set g:netrw_use_errorwindow = 0 #24179 -1d81d7a268defaults: treat "•" as a list item prefix #24623 -20b38677c2defaults: use ripgrep (rg) for 'grepprg' if available -61063653b0defaults: visual CTRL-R for LSP mappings #28537 -4ee656e4f3diagnostic: add `vim.diagnostic.count()` (#26807) -73034611c2diagnostic: add default mappings for diagnostics (#16230) -fc6d713dd8diagnostic: add support for many namespaces filtering in GetOpts (#28045) -5ed9916a28diagnostic: enable(…, opts) -e780177506diagnostic: filter diagnostics by specific severities (#24736) -b13e63db1ddiagnostic: goto functions jump to highest severity (#28490) -26765e8461diagnostic: is_enabled, enable(…, enable:boolean) -9cb7e00b97diagnostic: provide more control over virtual text display (#24724) -ee41153a94diagnostic: revert default behaviour of goto_next/prev() -07b60efd80diagnostic: specify diagnostic virtual text prefix as a function -a3b3978474diagnostics: support numhl and linehl for diagnostic signs -0381f5af5bdiff: grouping optimization for linematch algorithm -42333ea98ddocs: generate builtin.txt (#24493) -9beb40a4dbdocs: replace lua2dox.lua -1d4a5cd185eval: exists() function supports checking v:lua functions (#26485) -4a1ad676ceex_cmds: no error on :lua with {range} and {code} (#27290) -c2433589dcex_cmds: ranged :lua #27167 -b04286a187extmark: support proper multiline ranges -1c032ad703extmark: window scoped extmark -68cb4a7405extmarks: add "undo_restore" flag to opt out of undo-restoring -4e6f559b8cextmarks: add 'invalidate' property to extmarks -c249058758extmarks: add sign name to extmark "details" array -bbd5c6363cextmarks: add virt_text_repeat_linebreak flag (#26625) -15e77a56b7extmarks: subpriorities (relative to declaration order) (#27131) -f0884f21faextmarks: support hl_mode "combine" for inline virt_text (#24099) -372aa2eb3dfloat: add fclose command -35570e4a11float: implement footer -4200a0f167float: support toggle show float window -1233ac467dfold: transparent foldtext -71530cc972folds: support virtual text format for 'foldtext' (#25209) -38b9c322c9fs: add vim.fs.root (#28477) -e3e6fadfd8fs: expose join_paths as `vim.fs.joinpath` (#23685) -bc67cf3ccdgen_help_html: add anchors to help tags #25112 -b0cf9c5feegen_help_html: ignore pi_netrw.txt errors -81d8fce8f9gen_help_html: non-default vimdoc.so parser -da09f9b551gen_lsp.lua: protocol.Methods #24504 -f41496ce74gen_lsp.lua: sort by name, handle failure #24504 -3692fd4c87gen_lsp.lua: validate CLI args #26514 -2ff2785c39health: checkhealth buffer can show in a split window (#26714) -4382d2ed56health: fold successful healthchecks #22866 -d1bc6fca71health: list attached buffers in LSP report #23561 -2877672d70health: make :checkhealth support more split modifiers (#26731) -ddda5e0a48help: hide filename of "gO" outline using conceal #27547 -e72c0cd920highlight: Allow hyphens (-) in highlight group names (#24714) -986bf7e78dhighlight: add `FloatFooter` highlight group -574519d9d6highlight: tweak default color scheme -64a14026d7highlight: update default color scheme -a79694a08eissue_template: instruct not to include a package manager -69ffbb76c2iter: add `Iter.take` (#26525) -cebc00603el10n: update Turkish translations #24246 -fec51229c4l10n: update Ukrainian translations (#24882) -996dd36c77lsp: add actionable advice to lsp client quit error msg (#24510) -4ff3217bbdlsp: add fswatch watchfunc backend -643546b82blsp: add handlers for inlay hints (#23736) -317c80f460lsp: add method filter to get_active_clients (#24319) -6888607415lsp: add more LSP defaults (#28500) -0fe86f7e24lsp: add opts paramater to vim.lsp.codelens.refresh -131a1ee82dlsp: add original LSP Location as item's user_data in locations_to_items (#23743) -f1775da07flsp: add snippet API (#25301) -db0ec84fb4lsp: add type annotations for lsp.util.locations_to_items (#26694) -f190f758aclsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388) -451bc50d40lsp: deprecate severity_limit -e9b85acfbblsp: enable workspace/didChangeWatchedFiles by default (#23190) -4a09c178a1lsp: fallback to code-action command on resolve failure (#25464) -2f22ed6a00lsp: handle multiple clients in omnifunc (#24381) -63b3408551lsp: implement textDocument/diagnostic (#24128) -5e3cf9fb4blsp: improve control over placement of floating windows (#24494) -15641f38cflsp: include positionEncodings in default client capabilities -ddd92a70d2lsp: initial support for dynamic capabilities (#23681) -ca5de9306clsp: inlay hints #23984 -350d818564lsp: inlay_hint.is_enabled({filter}) #28523 -33e1a8cd70lsp: map K to hover by default #24331 -97bea3163alsp: more annotations -37079fca58lsp: move inlay_hint() to vim.lsp (#24130) -12c2c16acflsp: opt-in to dynamicRegistration for inlay hints (#24102) -a49924a318lsp: remove notify from vim.lsp.buf_detach_client (#25140) -8149bd089elsp: report fswatch errors -fb54e6980elsp: set client offset_encoding if server supports positionEncoding -96e19533f6lsp: set kind in select call for codelens #23889 -9af3559643lsp: set workDoneToken in initialize request (#28182) -f736b075d3lsp: snippet parsing using lpeg -134b9ec483lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104) -63f9c2da9alsp: support completion itemDefaults -3f788e73b3lsp: support connect via named pipes/unix domain sockets (#26032) -7e36c8e972lsp: support for choice snippet nodes -5c40f3e86alsp: support vim.lsp.ListOpts.loclist in location_handler() -abd2352bd8lsp: update LSP protocol 3.18 typings to date (#28730) -cfd4a9dfaflsp: use treesitter for stylize markdown -d5063f4b29lsp: vim.lsp.inlay_hint.enable(nil) applies to all buffers #28543 -c0952e62fdlua: add `vim.system()` -9248dd77aclua: add hl priority opts on yank (#23509) -6425869771lua: add meta file for vim submodules (#24525) -3734519e3blua: add noref to deepcopy -7c661207cclua: add ringbuffer (#22894) -877d04d0fblua: add vim.func._memoize -ab1edecfb7lua: add vim.iter (#23029) -d675bd01b1lua: allow vim.F.if_nil to take multiple arguments (#22903) -c379d72c49lua: allow vim.wo to be double indexed (#20288) -e52c25b761lua: deprecate vim.tbl_add_reverse_lookup -f1dfe32bf5lua: enable(enable:boolean, filter:table) #28374 -5b40a1c09dlua: implement Iter:join() (#26416) -c01e624b07lua: more specific error messages for vim.api type checking -e1ff2c51calua: pass keys before mapping to vim.on_key() callback (#28098) -2db719f6c2lua: rename vim.loop -> vim.uv (#22846) -6c0812d92elua: specific error messages for type checking `opts` params -fd089c8e50lua: typing for vim.fn.* (#24473) -302d3cfb96lua: use callable table as iterator in vim.iter (#23957) -51c754b62elua: use keyset type information -8e5c48b08dlua: vim.fs.normalize() resolves ".", ".." #28203 -7e70ca0b48lua: vim.keycode (#22960) -9e86f473e0lua: vim.region accepts getpos() arg (#22635) -4d04feb662lua: vim.tbl_contains supports general tables and predicates (#23040) -48d533272elua-types: types for vim.api.* (#24523) -25e7299707man: allow opening pages in current window (#27861) -08db61b19bman: respect 'wrapmargin' when wrapping man pages (#24091) -f9944a78bcmeta: add types for vim.lpeg -deb6fd6704msgpack-rpc: show actual request id in error message -01fe6b9e6amsgpack_rpc: support out-of-order responses on `msgpack-rpc` -619407eb54nvim_open_term: convert LF => CRLF (#26384) -e98decf9a6quickfix: support -q - to read 'errorfile' from stdin (#27303) -7b0123dd6aremote: avoid --remote-ui infinite loop (#24465) -cca6c4c698rpc: allow empty string key in msgpack => Vim conversion -d0d4160dd1runtime: highlight hl groups in syntax.txt (#25050) -5f4895200ascripts: add lsp_types.lua (#23750) -4e6096a67fserver: allow embed with listen (#25709) -170c890dcashortmess: "q" flag fully hides recording message (#27415) -d3582e102bstatuscolumn: re-evaluate for every screen line (#25885) -224f303ee5stdlib: add vim.base64 module (#25843) -fa131de9adtabline: middle mouse button now closes tab (#27522) -c855eee919term: enable reflow by default (#21124) -cd1b14f027termdebug: improve `:Evaluate` floating window (#26621) -cffdf102d4terminal: allow :terminal to take modifiers (#15427) -0c89854da1terminal: close shell terminals automatically -7589336120terminal: respond to OSC background and foreground request (#17197) -beca827212terminal: trigger TermRequest autocommand events (#22159) -c6ec7fa8d7treesitter: add 'injection.self' and 'injection.parent' -6cfca21bactreesitter: add `@injection.filename` -5d8ab32f38treesitter: add a query editor (#24703) -cb0a1a10b2treesitter: add bash parser and queries -bb15fa0356treesitter: add folding for `InspectTree` (#27518) -9ce1623837treesitter: add foldtext with treesitter highlighting (#25391) -31c4ed26bctreesitter: add injection language fallback (#24659) -28f54a7878treesitter: add lang parameter to the query editor (#25181) -88c8803aa1treesitter: add python parser and queries -c194acbfc4treesitter: add query_linter from nvim-treesitter/playground (#22784) -af040c3a07treesitter: add support for setting query depths -11844dde81treesitter: bundle markdown parser and queries (#22481) -5e6240ffc2treesitter: handle quantified fold captures -f69658bc35treesitter: highlight Lua files by default (#26824) -988b472d90treesitter: highlight help files by default (#26347) -845d5b8b64treesitter: improve query error message -189fb62032treesitter: improved logging (#23638) -c0b99bb1detreesitter: show root nodes in :InspectTree (#26944) -cb46f6e467treesitter: support URLs (#27132) -ff6092b4eetreesitter: update Bash parser and queries to v0.21.0 -8dda630ae9treesitter: update C parser and queries to v0.21.0 -3836eeb901treesitter: update C queries from upstream -aca4ad430btreesitter: update Lua parser and queries to v0.1.0 -5e875ae8d0treesitter: update Markdown parsers and queries to v0.2.1 -8a3385dde7treesitter: update Python parser and queries to v0.21.0 -20dcbaaaf8treesitter: update Vim parser and queries to v0.4.0 -987dff6713treesitter: update Vimdoc parser and queries to v2.4.0 -1384bebd5atreesitter: update query parser to v0.2.0 -668f16bac7treesitter: upstream query omnifunc from playground (#23394) -a478bf936btreesitter: use 0-based indexing to show ranges in `:InspectTree` -ac8ed77afbtui: add 'termsync' option (#25871) -4ee9e58056tui: query extended underline support using DECRQSS (#28052) -b4b7ca2d54tui: support DCS responses in TermResponse event (#26061) -622ae2f53etui: support Super and Meta modifiers (#24357) -a142670360tui: support undercurl in WezTerm (#28037) -56627ca242tui: use TermResponse event for OSC responses (#25868) -32b49448b2tutor: add Japanese tutor #27268 -9c2270b834types: add `test/.luarc.json` -d3a8e9217fui: add chdir UI event (#27093) -6ea6b3fee2ui: add support for OSC 8 hyperlinks (#27109) -b72931e704ui: allow non-zero 'cmdheight' with ext_messages -2615ed879eui: allow to get the highlight namespace -e38027ef69ui: completeopt support popup like vim -2e4e12756aui: indicate margins for the area used by win_viewport -efa9b299a7ui: inline virtual text -dacd34364fui-ext: make 'mousehide' into proper ui_option (#25532) -43ded8d358version: unverbose ":version", ":verbose version" #24195 -0a598c13b1vim.deprecate: only issue warning if neovim version is high enough -a767c046f4vim.iter: add Iter:flatten (#26786) -af6e6ccf3dvim.ui: vim.ui.open, "gx" without netrw -fa4b02fa67vim.version: add `vim.version.le` and `vim.version.ge` -27a566f3f8vimdoc: support Markdown code blocks (#25127) FIXES -------------------------------------------------------------------------------- -f5573fba3dRemove nested for_each_tree in TSTreeView (#26328) -ae28ef327eadjust error message for error in UI event callback (#28200) -ebe489d8f0allow multiline message for echoerr (#25380) -592bc831ceavoid ui_grid_cursor_goto when drawing window separators -d6483793e1buffer overrun in lmpack_session_receive -3bbb0aa399checkhealth warning even if init.lua exists #25306 -5cb906e91ccorrect versions in deprecation warnings -118fd8367cdeduplicate gen_cflags -eb4676c67fdisallow removing extmarks in on_lines callbacks (#23219) -6e9b204afbdoc errors -77d3526a3dexplain that user should run nvim with -V1 to see more information -fd791db0ecfix ASAN errors on clang 17 (#25469) -bb38c066a9fix compiler warning from clang -478273a423fix iter_matches call in query linter (#27496) -bb7324292cflush UI state before blocking in vim.wait (#25938) -44d4ae448dfunction was renamed (#23772) -1dd700a8d9gf fails on "foo/bar.txt:1:2" on Windows -6e703f778fhandle argv not present in nvim_get_chan_info -56dc8b9212heap-buffer-overflow in file_name_in_line -74b2f6c3d9ignore non-existent properties during header generation -f5a09f1b03invoke changed_bytes when rewriting <Tab> char #25125 -b8273c9a33lua annotations -69d49727d7luacheck -4ce3159e24missing case in setxattr error handling (#26176) -41fb98d6famove fswatch linux check inside of vim.schedule (#27824) -ba58c6f8a4only attempt to close timer if not already closing (#26047) -b400b947f3prevent child processes from inheriting ui channel file descriptors -99b8a343e1quick update, squash later -83b51b36aaraise TS min version -a090d43d61splitting of big UI messages -2424c3e696support UNC paths in vim.fs.normalize -43e76cc346tostring(vim.version()) fails if build is NIL #24097 -8c7a8be274transposed xcalloc arguments (#28695) -35f453f65dtype warnings in shared.lua -f112ac73bdunreliable "checkhealth completions" test -b32b5b2711use BEL to terminate OSC 11 request (#26335) -d95e3a4c9cuse no_ff instead of ffdos as condition -a1bec02c1euse snprintf instead of sprintf -ca887b80a9version-range < and <= #23539 -c1ee187f82vim.loop in luv threads (#23924) -fe4583127fvim.validate() order is not deterministic #28377 -be8b15200dwindows timeouts have exit code 1 -1f8fb7c000:let: fix error when applying operator to boolean option (#24030) -5a3752889cNVIM_APPNAME: show error message if $NVIM_APPNAME is invalid -c4ad15ae32PVS/V009: add top-level message -128e194f64PVS/V1001: variable is assigned but is not used -1bbbca267dPVS/V547: expression is always true/false -592e4472daPVS/V564: the '|' operator is applied to bool type value -30d311ebcfPVS/V592: expression is enclosed by parentheses twice -3ecd45ded0api: allow negative column arguments for nvim_buf_set_text (#23501) -3ac952d4e2api: avoid assertion when autocmd group id is 0 (#23210) -b2a8a93147api: avoid immediate TextChanged with nvim_create_buf (#25492) -ef7ae66eefapi: avoid integer truncation -b1e24f240bapi: avoid open_win UAF if target buf deleted by autocmds -0a81ec14a4api: better topline adjustments in nvim_buf_set_lines -c18f3cfcdbapi: crash after nvim_win_set_config title/footer validation error (#26606) -aa4e47f704api: disallow some more functions during textlock -22d9338afcapi: disallow win_set_buf from changing cmdwin's old curbuf (#24745) -da979ae04bapi: do not re-apply win_config.style when missing -344906a08fapi: do not update grid position in nvim_win_set_cursor (#28235) -22205f36a6api: don't change title when setting buffer in a window (#23492) -711a2f5ff6api: don't leak memory with nvim_win_get_ns (#27570) -1cf51a07a6api: don't set coladd of mark (#26648) -5fd1bac65eapi: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501) -a3751f5de2api: dont change curwin for nvim_win_set_height -1ff4562502api: dont change curwin for nvim_win_set_width -59fed8bb64api: extmark highlight groups not always included in details (#23179) -9b9030ff2capi: fix inconsistent behavior of topline touched in recent refactor -fc2a56fe61api: fix set_lines viewport adjustment, but this time good -b7763d7f6bapi: get virtual text with multiple hl properly (#25307) -b3be7b7413api: handle NUL in nvim_err_write() and nvim_out_write() (#25354) -132bbd1cbdapi: handle clearing out last line of non-current buffer -d942c2b943api: handle win_split_ins failure properly -5cfdaaaeacapi: ignore 'autochdir' when renaming other buf (#28376) -2fc2343728api: ignore 'autochdir' when setting buf in other win (#28371) -7367838359api: limit depth of nvim_cmd (#27225) -0da27e9bdeapi: load buffer first on nvim_buf_set_lines (#25823) -4e5c633ed4api: make getting explicit empty hl in virtual text work (#28697) -d05d63a18fapi: make nvim_get_hl not return non-existing groups -a70eae57bdapi: make open_win block only enter/leave events if !enter && !noautocmd -5d58136cccapi: make open_win/win_set_config check if splitting allowed -4ec8fd43bfapi: make width/height for split by nvim_open_win work (#28341) -b1577d371aapi: make win_set_config with "win" for splits need "split/vertical" -0330dd9e69api: mark nvim__complete_set as experimental #28579 -d22172f36bapi: more intuitive cursor updates in nvim_buf_set_text -b051b131f5api: nvim_buf_get_offset in a new buffer with zero or one lines -e0453d7f57api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181 -6091df6b7aapi: nvim_create_buf assert fails if autocmds set &swapfile -d5c23d72a5api: nvim_create_buf leaks memory if buffer is loaded early -b7708eac24api: nvim_get_hl should return default flag -a741c7fd04api: nvim_parse_cmd error message in pcall() #23297 -e55a502ed4api: open_win fire Buf* events when !enter && !noautocmd if entered early -a873f33993api: open_win fire BufWinEnter for other buffer when !enter && !noautocmd -e7c262f555api: patch some cmdwin/textlock holes -a9968912b7api: redundant error when using `nvim_cmd` (#24010) -dbcba26bf1api: revert unintended change of optional bool params -b25753381capi: set script context when using nvim_set_hl (#28123) -d3ea9a04bcapi: update "w_scwidth" in nvim_eval_statusline() -c971f538abapi: update grid cursor in nvim_win_set_cursor() -130cb4815aapi: use a conditional stack for nvim_cmd (#26341) -cf9f002f31api: use correct buffer for "range" in nvim__redraw (#28614) -77118d0da8api: use text_locked() to check textlock -bcb70eeac4api: win_set_config autocmds crash when moving win to other tabpage -233649bc75api: win_set_config fires unnecessary autocmds -b52d15853eapi: win_set_config set tp_curwin of win moved from other tabpage -54022a2946api: win_set_config update statuslines after removing splits -a9cd8467cbapi: wrong nvim_buf_set_extmark error for invalid hl_mode -4d3a38ac07api, lua: handle setting v: variables properly (#25325) -92760a7f42api, lua: make blank lines in a message work properly (#24244) -08fc1ebbaaapi/buffer: fix handling of viewport of non-current buffer -24e3ee9d07api/options: validate buf and win -139e6f68f9autocmd: API functions accept garbage after event name #25523 -02d00cf3eebackup: E1509 when writing extended attr to symlink (#28014) -746a153bc1base64: only check padding if leftover index is set (#25854) -533e01a75bbase64: properly handle embedded NULLs when decoding (#28349) -095bd8d0f8buffer: do not filter help buffer -e5d9b15044buffer_updates: correct buffer updates when splitting empty line -11865dbe39build: better deps for doc -ffaf74f147build: distinguish vim.mpack from global require'mpack' -f9416470b1build: include FindPackageHandleStandardArgs -ade42d531bbuild: teach cmake about vvars -da7178cbbfbuiltin: fix incorrect optional fields for fn.sign_define -6fa0f303d7builtin: parameter mismatch between winsaveview and winrestview -3159a2c28fchange: update fold after on_bytes (#26364) -342c7da4bdchannel: use os_write() instead of fwrite() for stderr (#26689) -cd6458123fcharset: fix wrong display of 0xffff (#24158) -603f3b36a4checkhealth: error in node.js check #28348 -b0978fca6bcheckhealth: fix crash due to incorrect argument type -7f94a032e1checkhealth: shell_error and cpanm module -bfdec5b0e7clang: null pointer dereference in parse_msgpack #25389 -1027ccac6dclangd: check size of array before applying qsort on it -cdd8017469clangd: set block pointer to null in case map is empty -6851b265baclipboard: don't pass --foreground to wl-copy (#25481) -c3de6524a5clipboard: ignore exit caused by signal #23378 -3128cff6b1clipboard: increase OSC 52 wait timeout (#25936) -46ceefb52bclipboard: make getreg() accurate for clipboard registers (#26740) -d2983dcdb1clipboard: make osc52 work with PUC Lua (#26014) -e51e524175cmake: restore previously undocumented workround, now documented -3688735c2bcmdline: don't redraw 'tabline' in Ex mode (#24123) -c72d877c33cmdline: wrong 'incsearch' highlighting after :redraw (#27947) -bc67bbe446codelens: add buffer and line checks before displaying codelens (#23887) -2b1a6e7597colorscheme: add missing LSP groups -0c850add3ecolorscheme: default statusline groups usability #26921 -8b23653695colorscheme: link LSP semantic tokens to treesitter groups -62e0e0349ccolorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727) -eca72def1fcolorscheme: typo -d4bd6b1eaacolorscheme: use explicit normal foreground in syntax groups -3c724fe1f3column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967) -cdc028e97dcolumn: add truncated width during estimation for 'statuscolumn' -e89071522ccolumn: always set b_signcols.max -c126a3756acolumn: apply numhl signs when 'signcolumn' is "no" (#26167) -2ded2e75f4column: avoid exceeding configured 'signcolumn' width -b50fdcba4acolumn: clear "b_signcols" before moving saved marks -13d50c3b13column: clear "b_signcols" when marktree is cleared -ec74538044column: correct width after truncated 'statuscolumn' error (#26737) -2bdef6dd2acolumn: don't overflow sign column with extmark signs (#23854) -bab4bcdefbcolumn: don't reset 'statuscolumn' width after it has been drawn -c509f4907bcolumn: fill 'statuscolumn' clickdefs with evaluated width (#26891) -25e62697c3column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268) -dbf6be296dcolumn: full redraw with 'stc, 'rnu' and inserted lines (#27712) -7d0a23973bcolumn: handle unprintable chars in 'statuscolumn' (#24198) -0db6946b39column: handle w_redr_statuscol at end filler lines (#27365) -97122eaa1ccolumn: ignore empty signcols range (#28177) -967c7abde3column: keep track of number of lines with number of signs -f871fee8b6column: pass kFalse when initializing "b_signcols.count" -44d4f03573column: rebuild status column when sign column is invalid -c6864b0d14column: redraw 'statuscolumn' on wrapped lines with 'relativenumber' -35cec0de4acolumn: redraw and update signcols for paired extmark -d88814ef68column: remove sign from line it was previously on with undo -df399ea0d2column: reset decor state before starting from top -5a4e0b837fcolumn: use a single path for sign sorting (#27431) -a878e02d5dcolumn: use maxwidth to allocate/fill 'statuscolumn' click defs #24190 -783b0aba41completion: check that healthcheck name is string (#28458) -fbeef0d4efcompletion: don't add backslashes to runtime pattern (#24296) -cdc8bacc79completion: filter results with complete+=f (#26029) -af8500af64completion: improve popup window position (#26739) -d1b2a5cf5fcompletion: make sure the buffer name is valid (#25975) -e9b9a86cd5context: don't crash on invalid arg to nvim_get_context (#25977) -fdaf6bc557context: don't leak memory on multiple invalid objects (#25979) -55be4a4e26coverity: dead code #25562 -6d698c86d0coverity: unhandled retval for marktree_itr_get_overlap() #26518 -6f49ed58c3coverity/348240: memory leak in put_view() -9d48266bedcoverity/471380: null dereference in get_local_additions() -ae48d965d7coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022) -2b0acacb3cdecor: allow adding providers during redraw -5ca330859cdecor: check decor kind before accessing union field (#27205) -60d320dea3decoration_provider: don't leak memory on error (#24410) -65738202f8decorations: better approximation of botline #24794 -2accf24805decorations: crash with revised mark with changed decoration flags -a0e9ef09d7decorations: do not apply sign highlight id as range attr id -fba17d5b88decorations: fix imbalanced sign count -444f37fe51decorations: incompletely displayed line should also get decorations -dc48a98f9adecorations: validate botline for on_win -328a237351defaults: auto-close terminal for &shell with args (#28276) -5aa1ba3efedefaults: background detection in tmux (#26557) -5e98439f6ddefaults: diagnostic mappings descriptions #28646 -ccb5a76e5adefaults: don't use nvim_feedkeys in default mappings (#24520) -85cb0b0ddcdefaults: make terminal autoclose not block other events (#27581) -aa1d0ac095defaults: only repeat macro for each selected line if linewise (#28289) -eef2aedff6defaults: remove tmux background detection passthrough (#27571) -5b45efbee6defaults: set 'fsync' #26034 -8df3742378defaults: use augroup for default autocommands (#26933) -a8e4ee2f2bdefaults: validate 'channel' before responding to OSC request (#27594) -6318edadc3defaults: visual hash (#) on text with "?" -abd380e28ddefaults: visual mode star (*,#) is fragile -b9a0e762f1defaults: visual star (*) on text with "?" -9b4b23493ddefaults: wait until VimEnter to set background (#26284) -72e3d8c3f9deps: bump luv to 1.48.0-2 -87db6d894adeps: make sure --force-config takes effect -7aad4643f9deps: remove stray conflict marker -8a6716682edeps: restore functionality of USE_EXISTING_SRC_DIR -d4dc884012deps: restore functionality of USE_EXISTING_SRC_DIR -d272143318diagnostic: always return copies of diagnostic items (#25010) -29d5ff6ac4diagnostic: check for sign namespace instead of sign group -3d8f0cb695diagnostic: check if delete failed in `qf_fill_buffer()` (#25932) -89ffdebd20diagnostic: fix typing on field |diagnostic-severity| -83635e4e3ddiagnostic: get border from config (#28531) -96f59e1b99diagnostic: invalid col number compare in next_diagnostic (#28397) -ad76b050ebdiagnostic: open_float on multi-line diagnostics #28301 -37011bc45ediagnostic: rename buffer → bufnr in type annotation (#23042) -50284d07b6diagnostic: typing -a4fc3bb0e6diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273 -add1b10b79diagnostic: virtual_text prefix function should have index and total (#25801) -35f475d0a5diagnostics: if buffer not loaded, skip handlers that set extmark (#25628) -5a25dcc5a4diff: filler lines for hunks bigger than linematch limit (#24676) -2f9ee9b6cfdoc: improve doc generation of types using lpeg -c4417ae70cdoc: prevent doxygen confusion -67f5332344docs: clean up non-docstring comments for vimdoc gen -ae7020c667docs: fix TSNode incorrect signatures -ab65a98adbdocs: ignore_invalid #24174 -f40df63bdcdocs: make lines not overflow in vim docs -0a90e4b05adocs: match DocSearch style with site theme -0d149bb186docs: the runtimepath is not the runtime path -957d05d16bdocs: too much whitespace around <pre> blocks #24151 -d931b829e9docs: vimdoc syntax errors -036da0d079docs: vimdoc syntax errors -17c59e417fdocs: vimdoc syntax errors -34b57508a7drawline: check filler_todo in place of removed draw_state (#27889) -455bca1ba8drawline: combine extmark highligh with area hl correctly -3299797150drawline: consider position in linebuf for foldcolumn (#26803) -889f81c65fdrawline: don't invoke on_line for filler line (#28219) -2b9d3869f8drawline: don't use temporary "v" variable when not needed (#26777) -06694203e5drawline: fix missing Visual hl on double-width fold char (#24308) -d5488633f6drawline: initialize linebuf_attr to 0 instead of -1 (#27840) -e9280a68f7drawline: initialize variable -2819718873drawline: initialize variable -36941942d6drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273) -37b73cf14bdrawline: make cursorlineopt=screenline work with resized grid -be1d09c427drawline: missing NUL termination when drawing TAB (#27307) -5b31447811drawline: update prev_ptr after getting syntax attrs (#27072) -14839c5d18edit: backspace adds extra spaces for inline virtual text (#28005) -267e90f31dedit: don't go to Terminal mode when stopping Insert mode (#27033) -b2e8c0df20edit: fix K_EVENT interfering with 'digraph' (#24258) -143a178332editorconfig: add missing root validation (#23462) -cbbda3bcd7editorconfig: check that buffer is valid (#23922) -abb8c2c453editorconfig: do not set 'endofline' -df2f5e3912editorconfig: highlight properties with dashes (#24407) -dc45fb4655editorconfig: only warn once on errors -cdbc3e3f3eeditorconfig: syntax error regression -bf0c69e504eval: correct failure return value for readfile/blob (#27722) -5b312cd5f6eval: make has('pythonx') work properly (#27739) -0e4086b741eval: prevent double-free in garbage collection (#22990) -12d123959feval: properly support checking v:lua function in exists() (#27124) -b8c34efe33eval: skip over v:lua properly (#27517) -ad2fad9a3bevent-loop: flush UI when no input is available (#25728) -6725565258event-loop: process input before events (#27358) -58a1ef8e6aevents: avoid unnecessary CursorMoved (#24675) -bf9e92c81cevents: check for WinResized/WinScrolled in terminal mode (#27226) -dd24ea8195events: don't expand non-file as file name -774a32e5feevents: null dereference in autocmd functions -a8cfdf43bcevents: trigger VimResume on next UI request (#24426) -a114a21effex_getln: initialize pointer with NULL -9e7c4fe579exception: remember whether message is multiline (#25351) -4a098b97e5excmd: append original command to error message -75d9c413d4excmd: make :def unknown rather than unimplemented (#23150) -f1dd75c2afexitfree: don't use ex commands to close windows in free_all_mem() -79a558277bextmark: fix crash when stepping out from internal node -a78fd18ed9extmark: fix cursor position with both left and right gravity inline text -320e9c1c21extmark: only invalidate unpaired marks on deleted rows -8e97edb93fextmark: restore extmarks when completing original text -2d33a766a1extmarks: `U` changed_bytes after extmark_splice (#26501) -23c21e7630extmarks: account for rightleft when drawing virt text (#25262) -d54156ed08extmarks: blending space shouldn't overwrite wide char (#26960) -54225bdb02extmarks: crash with sign after many marks -65b1fd00a7extmarks: do not remove decor from invalid old marks -437d35dbf7extmarks: do not remove invalid marks from decor upon deletion -a05bbc60eaextmarks: don't position overlay virt_text halfway a char (#24027) -4dd43e31dbextmarks: don't show virt lines for end mark (#23792) -dfa8b582a6extmarks: draw TAB in virt_text properly with 'rl' (#25381) -a6e4793bafextmarks: draw virt_text below diff filler lines properly (#25170) -958cc22836extmarks: empty inline virt_text interfering with DiffText (#24101) -0534ad8ca5extmarks: empty inline virt_text interfering with Visual highlight -31a51acdc3extmarks: fix heap buffer overflow caused by inline virtual text (#23851) -9c41a81decextmarks: fix virt_text_hide off-by-one hiding (#23795) -a6dd67f5b6extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757) -818d7f6dafextmarks: fix win_col virt_text drawn on wrong screen line (#25264) -c4df2f08b6extmarks: fix wrong highlight after "combine" virt_text (#24281) -b65cd7ff1aextmarks: fix wrong virt_text position after wrapped TAB (#25168) -4c7cec4e29extmarks: handle inline virt_text with empty chunk (#24005) -ee3d4f6b90extmarks: handle overwriting right half of wide char (#26951) -f4f1ce1d16extmarks: hide inline virt_text properly with 'smoothscroll' (#24106) -34a786bc49extmarks: inline virt_text support multiple hl groups (#25303) -5a6c7c805bextmarks: make empty "conceal" respect &conceallevel = 1 (#24785) -510e1f131bextmarks: make right_align and win_col work on wrapped line (#23759) -215244f749extmarks: missing "spell" and "conceal" in details (#27116) -35e50d79c6extmarks: overlay virt_text position after 'showbreak' (#25175) -a0790558c3extmarks: priority order of inline and non-inline virt_text (#27532) -b52bd8a2deextmarks: properly handle virt_text on next screen line (#25166) -a376d979bdextmarks: redraw line on adding/removing conceal (#27463) -2d9e063a63extmarks: redraw pre-undo position (#27437) -2137edbd4fextmarks: redraw properly with scoped inline virt_text (#27569) -1cc358aed6extmarks: restore old position before revalidating -0818d65528extmarks: skip virt_text if it is out of window (#25658) -19d63563e1extmarks: splice earlier when opening new line (#28108) -362df0f793extmarks: wrong display when changing text with virt_lines (#24879) -d5a85d737af_wait: flush UI before blocking (#25962) -81f67b79e8file_search: path with spaces in finddir() and findfile() (#25493) -a69c720639fileio: fix off-by-one in rename_with_tmp (#27780) -c6c21db82bfiletype: add typing and dry (#24573) -020d1f626afiletype: call on_detect before setting buffer filetype -fdf5013e21filetype: correctly detect bash-fc-{id} files as "sh" -d6f406db45filetype: don't use fnamemodify() with :e for extension (#27976) -670c7609c8filetype: make sure buffer is valid before call nvim_buf_call (#24922) -af38b46a25filetype: return on_detect function when matching by file contents -2955c921cefiletype: use unexpanded file name (#27931) -e32af31ee8flake: clang-tools moved to nativeBuildInputs (#26955) -fd08fd3de3float: add fixd option -884470124dfloat: allow floating window in cmdline area -9ecb43b637float: apply 'winblend' to title/footer highlight (#25999) -898371fc9ffloat: don't relative flaot win itself -fcdfbb4303float: fix some other crashes with :unhide or :all (#25328) -3ea124a8d9float: improve error message when reconfig failed (#25076) -c5abf487f1float: make "fixed" work with relative=win (#25243) -03e8b5fc91float: make bufpos work properly with resized parent grid -437ed3cee2float: trigger winnew event when float window create -f5953edbacfloat: update position of anchored windows first (#25133) -9de157bce4float: win_get_bordertext_col returning negative column number (#25752) -5f18dd3013float: wrong position when bufpos is set -0e01e81552folds: allow overlay virtual text on folded line (#23892) -ee986ee044folds: combined Folded and Visual highlights (#23752) -ded01a819afolds: don't show search or match highlighting on fold (#24084) -811140e276folds: fix missing virt_lines above when fold is hidden (#24274) -678548a2b4folds: show Folded highlight in Visual selection (#23741) -58f9486144folds: update folds in Insert mode with fdm=indent (#24402) -38e38d1b40fs: allow backslash characters in unix paths -8a7e3353ebfs: make `normalize()` work with '/' path (#24047) -ae5095cac9fs: use generics for better typing -e4da418ba8fs.lua: normalize slash truncation (#23753) -06fcf71bd0fswatch: --latency is locale dependent -502a7a0558ftplugin: respect runtimepath ordering -03a2c5b772ftplugin: source Lua files after Vimscript files per directory (#23801) -be5cf33836gen_help_html: type warnings, spell_ignore_files #27254 -6c35fb421egen_lsp.lua: improve type name, and fix wrong type inheritance -214b125132gen_lsp.lua: no notifications in lsp.Methods #24530 -765729a145gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds -ccf328172bgen_vimfn_types: don't include tag before signature's line (#24492) -86c9d8b53cgen_vimvim: correctly add aliases to vimAutoEvent (#23429) -240c41e1afgenvimvim: add special abbreviations of :delete (#23172) -51ea753747genvimvim: generate prefixed boolean options properly (#27487) -9f32deba56grid: add start column when getting char on line (#25627) -4ed1c2a8afgrid: don't draw beyond max column (#26172) -9c202b9392grid: handle clearing half a double-width char (#27023) -6a486c44e6gx: move to to _init_default_mappings #24420 -67b2ed1004gx: visual selection, expand env vars -e39b6d0c52health: "attempt to concatenate nil" -7ffe450173health: check for _host_prog variables properly (#23014) -50cd5ed360health: check more "old" files -f6dcc464f2health: check unmatching python_glob as empty table (#28215) -6818ba271chealth: clients may not support watchfiles #28710 -03a021f378health: combine python and virtualenv healthchecks (#23004) -c67efe3a9chealth: correctly expand and resolve PYENV_ROOT (#26953) -88eb0ad149health: fix tmux RGB capability detection (#26886) -cde4892b49health: fix typo in function name -63a17322ddhealth: improve python executable check error handling (#26954) -ba88fd886ahealth: malformed call to warn() #26217 -8c6f97bef8health: properly use the value of $PYENV_VERSION (#23109) -c8ebb04e92health: replace healthFoo with DiagnosticFoo (#23475) -843c1bed95health: stop job properly on timeout (#23877) -96d0c709b6healthcheck: expand vimrc variable (#28379) -4229bbe514helptags: make multibyte help tags work properly (#23975) -7b6d041baeheredoc: allow missing end marker for scripts -a2f17e97echighlight: add `FloatFooter` to 'highlight_defs.h' (#25577) -837f268093highlight: add `Nvim{Light,Dark}Gray{1,2,3,4}` colors -8afb3a49c0highlight: add create param in nvim_get_hl -f8ea49cfe1highlight: add force in nvim_set_hl -4ce0ada0d4highlight: add missing g: prefix for colors_name (#22952) -03ca36d1f8highlight: apply 'winblend' to NormalNC (#23555) -6c3e170e56highlight: apply 'winblend' to float border (#25981) -d4872377fehighlight: attr set all when normal attr changed -dcaf207336highlight: combine ColorColumn with low-priority CursorLine (#23017) -66925f14dehighlight: consistently spell "Goldenrod" -5183651773highlight: correct hi command output -ca7dd33fa7highlight: don't show CursorColumn on current line (#27848) -59289fb987highlight: make CurSearch work properly with 'winhl' (#24448) -b11a8c1b5dhighlight: remove unnecessary assignment to char_attr for 'spell' (#23713) -9a2c98087bhighlight: update `IncSearch` to link to `CurSearch` -ab92575753highlight: winhl receive wrong argument -b60a2ab4cbinccommand: block errors when parsing command line again (#24374) -bc5b0da84einccommand: don't crash with "split" and 'n' flag -382ea4d402inccommand: don't preview in Ex mode (#26587) -c1c2a1b5ddinccommand: don't save information of a buffer twice (#24501) -ef44e59729inccommand: don't set an invalid 'undolevels' value (#24575) -ba9f86a9ceinccommand: improve preview buffer number handling (#27087) -643bea31b8inccommand: restrict cmdpreview undo calls (#24289) -1dba570e63inccommand: save and restore '[ and '] marks (#26442) -35ffe58ea4inccommand: update topline after moving cursor (#27341) -a14c780918input: set termkey buffer size to read stream capacity -b61575ba70intro: clear intro if new buffer is shown in focused float -9530a23016intro: link showing intro to state at start -0570a19c8aintro: make intro explicitly stateful -d1a30221fcintro: redrawing intro exposing pseudo-randomness -21360523cdintro: still show intro message with floating window -6b96122453iter: add tag to packed table -2ee8ace217iter: make pipeline termination conditions consistent (#24614) -9489406879iter: remove special case totable for map-like tables -57ccd82417job-control: fix use after free (#25223) -1c71c32b29job-control: make jobwait() flush UI after hiding cursor (#25927) -e057b38e70json: allow objects with empty keys #25564 -af6537bc66jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461 -017ff93b02keycodes: recognize <t_xx> as a key (#24700) -6709f7f8f1keycodes: simplify S- properly when D- is present (#27316) -4447cefa48l10n: update Japanese translations (#27856) -7d17ab5b6fl10n: update Ukrainian translations (#26819) -908843df61languagetree: apply `resolve_lang` to `metadata['injection.language']` -e353c869celanguagetree: don't treat unparsed nodes as occupying full range -6b5f44817elanguagetree: remove double recursion in LanguageTree:parse -f5530bf566linematch: initialize array -766f4978d6lint: lint warnings #24226 -5465adcbablint: use tbl_contains -0804034c07loader: cache path ambiguity #24491 -89135cff03loader: remove cyclic dependency on vim.fs (when --luamod-dev) -66c66d8db8loader: reset hashes when running the loader -ec80e4cb4dlog: increase size of buffer for nvim instance name -4d0f4c3de9lsp: E403 if doc contains multiple codeblocks #24458 -20c331915flsp: SignatureHelp docstring is not escaped #16702 -01691c5447lsp: abort callHierarchy on no result (#28102) -9abced6ad9lsp: account for border height in max floating popup height (#25539) -3e016fa8d4lsp: actually send diagnostic-tags back to the server -37d8e50459lsp: add "silent" option to vim.lsp.start (#28478) -2e1f5055aclsp: add assertion for explicit bufnr in apply_text_edits (#27614) -542c910a1dlsp: add missing LSP semantic token highlight links -be5e361154lsp: add param assert in client_is_stopped (#23857) -ac0e8323dclsp: add parentheses to generated union array types (#27560) -0fcbda5987lsp: add snippet regression test (#27618) -e42fdaad21lsp: add spacing for inlay hints separately #24079 -48bcc7b971lsp: advertise workspace.didChangeConfiguration capability (#26028) -c07dceba33lsp: allow Lua pattern chars in code action filter (#24041) -3bf887f6e0lsp: always return boolean in lsp.buf_client_attach (#24077) -966eb8e0b3lsp: announce publishDiagnostics.dataSupport (#24442) -39fc340276lsp: avoid assertion when `client_hints` do not exist (#28461) -47dbda97d2lsp: buffer messages until connected to server (#28507) -adbe7f3683lsp: call `on_list()` even for single location (#25830) -15983cf2c6lsp: cancel session when leaving snippet region (#25762) -816b56f878lsp: cancel watchers when closing a client -9b8a075539lsp: change `silent` in lsp.start.Opts to optional (#28524) -d3e0352574lsp: check if inlay hints are enabled for a buffer before disabling (#24074) -fa9a85ae46lsp: clean up duplicate and unused meta type annotations -8bd6f7c20blsp: clear codelens on LspDetach (#24903) -97c0a52416lsp: correct deprecation message #28403 -aa62898ae3lsp: correct the error message's cmd on spawning (#27632) -77a9f3395blsp: create codelens request parameters for each buffer (#27699) -9281edb334lsp: create per client params in lsp.buf.code_action -39cc38a87blsp: defer writing error msgs (#27688) -1b679ac192lsp: define LspInlayHint highlight group #24073 -dc8c086c7elsp: directly rename the existing buffers when renaming (#27690) -c1a95d9653lsp: disable didChangeWatchedFiles on Linux -2fde6295dflsp: display initialization errors (#25409) -94127cb5dflsp: do not add extra indentation -cc87dda31alsp: do not assume client capability exists in watchfiles check (#24550) -0fe0cf5adalsp: do not cancel snippet when selecting placeholder (#25835) -073035a030lsp: don't register didChangeWatchedFiles when capability not set (#23689) -5eee633c97lsp: don't start additional client if attach failed (#28744) -21fa19f3e8lsp: don't use hl_mode = combine for inlay hints #24276 -96b94f8d77lsp: duplicate on_detach, on_reload callbacks #24067 -b95b6ed975lsp: empty commands should not be considered executable (#28216) -c3c673cdeclsp: enable() does not activate inlay hints on open buffers #28629 -b2c26a875blsp: ensure buffer is not attached more than once -fa0a25dcb3lsp: error in reset_timer on second detach #24117 -72e64a1afelsp: extra "." when completing with tsserver #24646 -031088fc0alsp: filetype matching to documentSelector in dynamic capabilities (#25425) -d191bdf9d5lsp: fix attempt to call non existent function (#24212) -dd3fa64573lsp: fix dynamic registration of code actions (#23826) -ce4ea638c7lsp: fix incorrect typing and doc for `vim.lsp.rpc` -f487e5af01lsp: fix infinite loop on vim.lsp.tagfunc -74bd4aba57lsp: fix multi client handling workspace_folder methods (#18839) -5e5f5174e3lsp: fix off-by-one error for omnifunc word boundary -ba6761eafelsp: fix omnicomplete in middle of the line (#25787) -075a72d5fflsp: fix relative patterns for `workspace/didChangeWatchedFiles` (#23548) -840e1864c2lsp: handle NUL bytes in popup text (#25612) -345bd91db2lsp: handle absence of a trailing newline #25194 -0e9a33572dlsp: handle adjacent snippet tabstops -853f647da6lsp: handle reverse lookup in capabilities -91f67fabe6lsp: handle stale bufnr on LspRequest autocmd trigger (#24013) -849d82b80blsp: handle stale bufnr on LspRequest autocmd trigger (#27981) -2eecb1b85dlsp: highlight active parameter in signature help #25663 -e55e80d51clsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469 -7968322e7alsp: inlay_hint nil reference error #24202 -ba8f19ebb6lsp: lint warnings, default offset_encoding #24046 -3304449946lsp: log unknown diagnostic tags instead of showing a warning (#25705) -251ca45ac9lsp: markdown code fence should allow space before info string #24364 -add7e106d5lsp: noisy warning about offset_encodings #24441 -c235959fd9lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535) -1dacf2eceelsp: prevent code-lens refresh from becoming a permanent no-op (#28228) -597ecf7516lsp: re-add client.commands and mark private -94a904b453lsp: reapplying already-applied hints #24114 -4ecc71f6fclsp: reduce diagnostics and add more types (#23948) -bc7f86209dlsp: redundant vim.snippet.jumpable #28560 -ee156ca60elsp: refactor escaping snippet text (#25611) -2ecba65b4blsp: remove unknown LSP protocol property (#24345) -7311958e12lsp: remove unnecessary file load/write when renaming (#27621) -e14e750998lsp: rename LspProgress data.result => data.params #28632 -f0e61e6d92lsp: rename fails on missing parent directory #27291 -b413f5d048lsp: rename undofile when renaming (#27684) -d09957e0a0lsp: rename: load and list new buffer if attached to window (#27408) -7668f89d5blsp: replace @private with @nodoc for public client functions (#24415) -52823616bclsp: replace bug-prone ternary operation #28627 -5282d3299clsp: restore marks after apply_text_edits() #14630 -cf5f1492d7lsp: revert change to buf.clear_references() #24238 -917172dd96lsp: semantic token defer loading -3be2536ca0lsp: send back diagnostic tags to the server -a37d568082lsp: send empty "added" list when removing workspace folder #24440 -3c6d971e54lsp: set extra info only when it has a value (#23868) -5785c32f11lsp: set fallback client name properly -370232dbeflsp: track snippet deletion -ca26ec3438lsp: use only utf-16 in default client positionEncodings (#23903) -b302da9ad2lsp: use percentage format on lsp.status (#23971) -2c8f36a3b0lsp: use plain loop for non-list-like table of protocol values -8addd27504lsp: when renaming directory, check path prefix of buffer names (#27603) -597355deaelsp: wrong iterator in registerCapability handler (#24971) -b2d471ab33lua: allow nil values in serialized Lua arrays (#26329) -68f12e7fcblua: annotate that TSNode functions can return nil (#24621) -4ffc20c951lua: avoid internal error when :luado deletes lines (#27262) -3198038224lua: correct return value for on_key with no arguments (#25911) -84bbe4b0calua: disallow vim.wait() in fast contexts -22eb2ba183lua: do not schedule events if Nvim is exiting -7d279a09e0lua: handle array with holes in luaeval() (#26630) -c43c745a14lua: improve annotations for stricter luals diagnostics (#24609) -2f779b94e7lua: inspect_pos respect bufnr when get syntax info (#23098) -e2e63bd045lua: make highlight.on_yank use win-local highlight (#27349) -b40170f7a3lua: memory leak when using invalid syntax with exists() (#26530) -4ab9c5fa46lua: not using global value in vim.opt_global (#25196) -20ec4c776alua: only disable vim.schedule() when closing main loop (#26090) -f150b62423lua: only free luarefs when returning from API (#28373) -0190771713lua: remove uri fragment from file paths (#27647) -5aa14e1231lua: return after assert returns assert message (#27064) -5331d5772flua: show error message when failing to set variable (#25321) -1294e221a2lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate -37c58226a8lua: vim.fs typing (#24608) -5db076c7cclua: vim.region on linewise selection #25467 -622b1ae38alua: vim.split may trim inner empty items -a7df0415ablua2dox: filter out the entire `---@alias` block -32e69bd397luarc.json: ignore test directory to save memory -6f936c9d85man: make :Man with a range work (#25922) -59aadf33efman: pass modifiers also to :tag (#27878) -a9b4dc9614man: set the nested flag for the BufReadCmd autocommand (#26285) -c8d1d8b254man.lua: don't continue on command error (#23009) -a4c4b39d55man.lua: hardwrapped manpage is not resized #25646 -209ed16f57man.lua: return support of all sections -3a7c30dc93man.vim: q quits after jump to different tag in MANPAGER modified (#28495) -3c667d3e0fmappings: fix mapset() not replacing map with backslash (#26719) -0451391ec5mark: properly init mark views (#22996) -d432bba4e4marks: handle switching buffer properly (#25763) -62306a29admarktree: correct qsort usage -585549625dmarktree: off-by-one error in `marktree_move` -34be915f6bmarktree: preserve ordering in `marktree_move` -b97d5038f1marktree: some marks counted twice when checking for overlap -ad5a155b1fmbyte: fix bugs in utf_cp_*_off() functions -b028233991memline: more curbuf stuff -91ef26decemessages: :map output with ext_messages (#26126) -eabf9de1dcmessages: allow more prompt in headless mode with UI (#27905) -60fb8a6a8bmessages: avoid crash with :intro and ch=0 (#28343) -61a0aa6c51messages: avoid passing negative length to strnlen() (#28753) -ca258db156messages: clear new lines when increasing 'cmdheight' (#27421) -c9f47fca8bmessages: ensure msg_grid is at top at more prompt (#23584) -2f17ef1fc4messages: use "Vimscript" instead of "VimL" #24111 -55dbf5c379messages: validate msg_grid before using msg_grid_pos (#26189) -4db77017fbmeta: add nil return types to lpeg functions -5198a2555dmeta: cleanup lpeg operators -dae6770b76meta: include vim.json -d31f7648ecmkspell: prevent Unicode character overflow (#23760) -a8a93e517fmouse: avoid dragging after click label popupmenu callback (#26187) -6a2a37b1e1mouse: avoid dragging when clicking next to popupmenu (#26201) -091eb4c8c7mouse: click after eol with conceal and virtual text (#27897) -2b475cb5ccmouse: click on 'statuscolumn' with 'rightleft' (#25090) -e25cf47ad3mouse: click on empty line with 'foldcolumn' -84a4319545mouse: cmdline click registered as statuscolumn (#23163) -bf52fb7193mouse: copy the line before syntax matching (#24320) -5fb4c397a1mouse: drag vsep of window with 'statuscolumn' (#24462) -dc394b9641mouse: fix popup menu position check with winbar (#23456) -7c1921e9d6mouse: fix popup_setpos position check with ext_multigrid (#23436) -a3fba5cafcmouse: handle folded lines with virt_lines attached to line above (#23912) -64aa0f7d0bmove: check for filler lines properly (#28307) -366d0c7887move: check the correct buffer (#25698) -780509aedfmove: fix using the wrong window (#28312) -60d1e3e471msgpack: store grid line event as a value -c52dfb6e84normal: don't check conceal when pressing 'r' (#27892) -088cdf69e3normal: make "g$" work properly with resized grid -a1ded1b113oldtest: always use a 64-bit int for swapfile block number -92c59c39c3ops.c: remove duplicate u_save_cursor() -9d01385c6coptions: `'modified'` showing incorrect value for scratch buffers -c3e176f6e2options: correct condition for calling did_set_option() (#25026) -9af03bcd47options: do not change inccommand during preview (#25462) -796df966f3options: don't update curswant for 'winhl' or 'winbl' (#27515) -d956bc6379options: setting 'scroll' with resized grid (#26628) -c8a27bae3foptions: use a union for def_val (#27169) -804c828e68optionstr.c: incorrect use of curbuf/curwin -a9df0c5ce6osc52: do not use 'vim.iter' (#27218) -5d75d9aef2osc52: enable OSC 52 by default in tmux sessions (#26072) -86c2213b5eosc52: use `p` for primary selection instead of `s` (#26076) -1045659097osc52: use nvim_chan_send() to stderr for copying (#26690) -e3bd04f2afpager: handle consecutive newlines properly (#27913) -1e7e9ee91fpath: accept special characters on Windows (#25424) -f064e72b9bpath: check return value of append_path() (#28309) -f5eabaa940path: restore space separation in 'path' (#25571) -908f247c22plines: count 'showbreak' for virtual text at eol -a0cbf1d8d5plines: cursor position with 'showbreak' and resized grid (#28067) -317038e7cbplines: don't return very large height on very long line (#24260) -7955c90621plines: folded lines with virt_lines attached to line above -35c3275b48plines: handle inline virtual text after last char (#24241) -cbadb39d16plines.c: initialize cts_max_head_vcol (#24855) -fc14928719printf: make positional %zd and %zu work (#24722) -d0b3c87219process: avoid potential data race on exit (#27769) -3e569d440bprocess: close handles and timer in pty_process_close() (#27760) -268066e014process: start pty process eof timer on main thread (#27625) -49983387ffprompt: emit change event for prompt newline (#28260) -7bd6bd1ef7provider: cannot detect python3.12 #25316 -61ecb3e16cprovider/pythonx: import the correct module (#25342) -540941ef83pum: don't position too far with resized parent grid (#23442) -f186224dfcpum: fix missing rightmost column with 'rightleft' (#23445) -8bc973c6f5pum: fix missing scrollbar with 'rightleft' (#23448) -a7550a20e0pum: handle right-click menu repositioning with multigrid (#26975) -fbaa278773pum: make :popup position correctly with float border -a3dfe1bc89pum: position properly with ext_multigrid (#23336) -c1331a65ddpum: show right-click menu above cmdline area (#23298) -dd0e77d48aquery_error: multiline bug -5ac2e47accredo: make redo of Lua mappings in op-pending mode work (#23566) -60f69014a8redraw: multibyte characters are wrapped at the end of a line (#23696) -cb34d0ddd0redraw: overwrite double-width char with virt_text properly (#23708) -d184933cdcredraw: update Visual selection properly with splits (#27343) -54044e6dcerelease.sh: ze version is too big -cce9460524remote: make --remote-expr print to stdout (#23980) -bde59e8147remote: restore previous --remote-expr output formatting (#23988) -468292dcb7rpc: "grid_line" event parsing crashes (#25581) -4d4092ac9erpc: assertion failure due to invalid msgpack input -8921d56053rpc: do not crash when no input is consumed -c422722b2erpc: fix hang with channel closed while waiting for response -adb2258345rplugin: dont create data dir if it's a broken symlink #25726 -65dd3c1180ruler: show ruler of curwin with no statusline in cmdline -f5231d61a5runtime: add commentstring for C# ftplugin (#23039) -3387dc4a46runtime: add commentstring for D ftplugin (#25362) -615b48aca6runtime: add more Nvim-only highlight groups to Vim syntax -aee6f08ce1runtime: do not allow breakcheck inside runtime path calculation -df297e3c2bruntime: don't set gx mapping if already mapped (#24262) -9176b5e10aruntime: respect 'fileignorecase' when sourcing (#24344) -dbb840da01runtime: respect 'rtp' order for all runtime files (#24335) -70a0049296runtime: source c ftplugins in correct order (#27377) -d431a4d410runtime: source old color scheme in bundled color schemes (#26641) -3ab6f60dc8runtime: update 'vim' color scheme to use new tree-sitter groups -67fba9affaruntime/tutor: don't try to close fold when there is none (#24953) -ee56daebb6shada: update deleted marks (#24936) -517dfdf0fcshada: update marks when using delmarks! (#24978) -4d52b0cf67showcmd: clear the rest properly (#28420) -fcd9905291sign: avoid deleting from sign map while looping over it (#27158) -a84b454ebesign: do not error when defining sign without attributes (#26106) -a5ade3c63dsnippet: correct indent with newline -4625394a76snippet: do not add extra indent on newlines (#28538) -a1bdf2852dsnippet: remove misleading comment about TM_FILENAME_BASE (#26465) -8c044f0862spell: always accept ':' as filename char in 'spellfile' (#27172) -a803bff89cspell: extmark with spell=false should disable spell (#23400) -eceb2dffcespell: splice extmarks on :spellrepall (#23929) -aa65bd478astartup: "nvim -l foo.lua" may not set arg0 #24161 -628f6cce80startup: don't truncate when printing with -l (#24216) -c0fa721adestartup: make recovery mode work without --headless (#24477) -8e739af064startup: multiprocess startuptime #26790 -8f10362cdcstartup: only send one default_colors_set event during startup -559c4cfd52startup: run embedded Nvim with real path (#24282) -b21d960119startup: set full_screen when in ex_mode -9637b7dae4startup: stop TUI properly when quitting at swap dialog (#25337) -d7359a8742startup: trigger UIEnter for the correct channel (#25860) -01e273c340statuscolumn: don't update clicks if current width is 0 (#24459) -afd0c648a8statuscolumn: force full redraw when signcolumn is invalid (#24859) -dc6c11394bstatuscolumn: update number hl for each screen line (#25277) -a4b2400804statusline: also allow right click when 'mousemodel' is "popup*" (#23258) -4ecf6fdfd8statusline: bail out properly on negative row (#23535) -70da793c5estatusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823) -d7bb19e013statusline: fill for double-width char after moving items (#24207) -54f5602038statusline: fix uninitialized variable and possible overflow -9f15a18fa5statusline: missing offset when showing 'keymap' (#27270) -7b973c71eastatusline: redraw when VIsual_mode changes (#23933) -dbc0fa9bd6stdpath: remove duplicate directories (#26653) -1907abb4c2stream: do not close handle if it is already closing (#26537) -9dd48f7832substitute: properly check if preview is needed (#23809) -9753cda591syntax: use correct diagnostic group for checkhealth (#23538) -400b7842a9termcap: escape escapes in passthrough sequence (#26301) -e527842211termcap: only call callback for requested capabilities (#26546) -ffeb31c2f9termcap: set 'nested' on TermResponse autocommand -b7831c7f99termcap: use tmux passthrough sequence when running in tmux (#26281) -e6d3f87dfdtermdebug: handle partial lines passed to callback (#22950) -c413b42c45termdebug: prompt mode breaks with &splitbelow set -8aad4b8425termdebug: send SIGINT when interrupting prompt mode -af78060b18termdebug: trim suffixed "\r" in CommOutput -684e93054bterminal: assign channel to terminal earlier (#25771) -82b1a389baterminal: avoid Insert mode in Terminal buffer (#25820) -99288ecc77terminal: block input when there is pending TermRequest (#27589) -f2ce31d3dcterminal: call validate_cursor() before screen update (#24425) -e09adfdcffterminal: check if mouse on statusline/tabline/winbar/vsep (#26892) -e115732465terminal: check terminal size at end of screen update (#25480) -120c4ec855terminal: disable reflow again -c881092ffeterminal: don't lose focus on <MouseMove> (#25845) -16a416cb3cterminal: don't pass incomplete UTF-8 sequence to libvterm (#27922) -d0d132fbd0terminal: don't send unknown special keys to terminal (#24378) -74776dfb2aterminal: fix duplicate recording with mouse click (#28103) -21d466c1b9terminal: forward horizontal mouse scrolling (#24552) -d401b33314terminal: handle horizontal scrolling in another window (#24828) -5e78fd7784terminal: ignore $VIM and $VIMRUNTIME in pty jobs -0a7fda6fa0terminal: include modifiers when forwarding mouse (#24549) -d4c2fc6ff6terminal: keep focus when scrolling number column of another window (#25848) -5ca6c9e046terminal: make backslashes in 'shell' work on Windows -aba954b662terminal: never propagate $COLORTERM from outer env (#26440) -b74262a336terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418) -0fd8eb8aaeterminal: set $COLORTERM unconditionally in :terminal (#24763) -fa17a5ab49terminal: use terminal buffer for TermRequest autocommand (#26974) -5999214c24termkey: accept BEL (0x07) as OSC terminator -ce2f770aaatermkey: do not sign extend mode value -50f5864dd2termkey: include IO header on Windows -52e6059415test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905) -c5528e7fd8test: clean up inline virtual text tests a little -380b634ac9test: fix "indeterminism" warnings in UI tests -f4c97da262test: fix strings_spec.lua for AArch64 -477458f7bftest: more tests for marktree -d8e330bcectest: remove test/compat.lua -a7bbda121dtest: typing -8861ad83fdtest/tui_spec: pass the expected NULL-sentinel to execl() -f859d16aeatests: set SHELL=sh #24941 -3d44340ceatests: use more global highlight definitions -e9bfbe99cdtextformat: remove unnecessary changed_bytes() (#26027) -255e547e18timer: allow timer_info() to get info about current timer -a8131aee9etohtml: replace hex escape with digit escape (#27728) -0246f1a897tohtml: set filetype of generated HTML to `html` -ccc0980f86treesitter: Use the correct replacement args for #gsub! directive (#23015) -71d9b7d15ctreesitter: _trees may not be list-like -a4743487b7treesitter: `language.add` - only register parser if it exists -4a8bf24ac6treesitter: adjust indentation in inspector highlights (#26302) -ef64e225f6treesitter: allow foldexpr without highlights (#23672) -6a264e0897treesitter: allow optional directive captures (#28664) -cf612c64b0treesitter: allow passing lang to vim.treesitter.get_node() now correctly takes opts.lang (#26360) -32849d5667treesitter: avoid # of nil in _query_linter -3fd7449d5atreesitter: check that buf is loaded in autocommands (#25679) -e7f50f43c8treesitter: clip end row early -6b19170d44treesitter: correctly calculate bytes for text sources (#23655) -bd5008de07treesitter: correctly handle query quantifiers (#24738) -fba18a3b62treesitter: do not calc folds on unloaded buffers -c30ebb17f6treesitter: document more standard highlight groups -040369e1e4treesitter: don't forcefully open folds -72ed99319dtreesitter: don't invalidate parser when discovering injections -4607807f9ftreesitter: don't update fold if tree is unchanged -26b5405d18treesitter: enforce lowercase language names (#28546) -3a8265266etreesitter: escape "\" in :InspectTree #28613 -369f58797dtreesitter: escape quotes in :InspectTree view #24582 -6e45567b49treesitter: fix TSNode:tree() double free (#24796) -50a03c0e99treesitter: fix another TSNode:tree() double free -7c6f9690f7treesitter: fix indexing in foldexpr -01b91deec7treesitter: fix parens stacking in inspector display (#26304) -f40a109716treesitter: fix trim predicate -1f551e068ftreesitter: fixup for InspectTree -26cc946226treesitter: foldexpr tweaks -e85e7fc7bctreesitter: handle empty region when logging (#24173) -12faaf40f4treesitter: highlight injections properly -6f75facb9dtreesitter: improve vim.treesitter.foldexpr -6c8387067dtreesitter: inspect-tree remember opts on buf change -8179d68dc1treesitter: logger memory leak -b6e339eb90treesitter: make InspectTree correctly handle nested injections (#26085) -3af59a415ctreesitter: make Visual hl work consistently with foldtext (#25484) -c7e7f1d4b4treesitter: make foldexpr work without highlighting (#24167) -0211f889b9treesitter: make sure injections don't return empty ranges (#24595) -0df681a91dtreesitter: make tests for memoize more robust -7fa292c52dtreesitter: outdated highlight due to tree with outdated region -617d1b28d6treesitter: prefix treesitter types with vim -90a12d4a16treesitter: prepare highlight states for [s, ]s -7e5ce42977treesitter: properly combine injection.combined regions -19a793545ftreesitter: redraw added/removed injections properly (#23287) -7a76fb8547treesitter: remove more double recursion -e124672ce9treesitter: reset cursor max_start_depth -7d97150084treesitter: return correct match table in iter_captures() -3b29b39e6dtreesitter: revert to using iter_captures in highlighter -315c711700treesitter: set cursor position when opening inspector -48085e40bbtreesitter: stop() should treat 0 as current buffer #24450 -32dc484ec9treesitter: support subfiletypes in get_lang (#23605) -b6fdde5224treesitter: text alignment in checkhealth vim.treesitter -0f85aeb478treesitter: treecursor regression -26143d7a5ctreesitter: update @markup default links -9ff59517cbtreesitter: update c queries -c44d819ae1treesitter: update folds in all relevant windows (#24230) -ffb340bf63treesitter: update folds only once on InsertLeave -edf9a897f0treesitter: update highlights for query (#23699) -b697c0cd4ftreesitter: update lua parser and queries (#24148) -ad95b36985treesitter: update markdown parser and queries (#24429) -39a0e6bf3ctreesitter: update parsers and queries -3d4eb9d544treesitter: update queries -c97de026e3treesitter: update vimdoc and vimscript queries -dc7ccd6bcatreesitter: use 0 as initial value for computing maximum (#27837) -7bc5ee7f93treesitter: use proper query syntax for inspector (#26274) -00e6651880treesitter: use tree range instead of tree root node range -8c9dab3e0dtreesitter: use vim.highlight.priorities instead of hardcoded 100 (#24052) -674f2513d4treesitter: validate language alias for injections -2bf3e82676treesitter: validate window before updating preview highlights -ab2811746etreesitter playground: fix the wrong range of a node displayed i… (#23209) -f85aa2e67ftreesitter.c: improve comments on fenv usage -c5b9fb2f25treesitter.foldexpr: check for all insert submodes -b3bda2f043tui: `space_buf` overflow when clearing screen (#27352) -cb2b5e2780tui: disable DECRQM and DECRQSS queries for Terminal.app (#28453) -405bad5e08tui: do not toggle cursor visibility when flushing the buffer (#26055) -b76cc974b9tui: don't forget to update cursor visibility (#26523) -911f3d9623tui: don't overwrite an assertion faliure message on exit -168e69ae01tui: don't set cursor color when there is none (#28236) -5a08b5be3ctui: don't set tty background if &bg was set before VimEnter (#23701) -00b7428b3btui: don't use DECRQSS in screen or tmux (#28086) -846714ca3etui: don't use tui->params[] for 'termsync' (#26565) -197827321atui: grid_clear properly clears the screen -884a83049btui: grow termkey's internal buffer for large escape sequences (#26309) -ad867fee26tui: handle cursor visibility properly (#26091) -fd50185492tui: initialize clear attrs with current terminal background -c26b39a9aatui: make :cquit work properly with remote TUI (#25313) -3ae62c4706tui: make disabling title restore old title from stack (#23585) -4c31a1b807tui: make setcellwidths() work for non-ambiwidth chars (#28322) -4f235e3caftui: position cursor at bottom-left before stopping (#23369) -0f1b511f23tui: redraw on SIGWINCH even if size didn't change -8e69716953tui: restore title before exiting alternate screen (#23776) -999e167a52tui: start flush earlier (#26463) -367e52cc79tui: use buflen to calculate remaining buffer size (#26942) -3198598e69tui: use uv_timer_t instead of TimeWatcher for input (#26435) -0ce065a332tui: v:argv does not report the original argv[0] #24015 -bc6fc0123dtutor: Tutor steps don't work on Windows #25251 -bf5703042btutor: don't use concealed text in expected lines #24316 -e34c23b701tutor: set a value for ":syntax iskeyword" (#27833) -04232a19cctype: remove incorrect arguments from vim.rpc* -21152f7905types: add more annotations to eval.lua -b7d5b55f74types: add some return/parameter type annotations (#24867) -e6947bb1e8types: make filetype.add parameters optional -191cca2566types: move type annotation for `IterMod` -813dd36b72types: rename win_get_config return type to win_config -b3342171d5typing: vim.fn.execute -1355861b92typval: don't treat v:null as truthy (#23281) -0592fd5e17ui: "resize -1" with cmdheight=0 #24758 -ab1c2220f0ui: activating all ext capabilities without remote UI #28555 -5b111a8f00ui: adjust 'smoothscroll' for inner dimensions -389f5ca39dui: adjust the cursor when inserting virtual text -046c9a83f7ui: always use stl/stlnc fillchars when drawing statusline (#25267) -0c86828ac5ui: avoid ambiguity about chunk that clears part of line (#24982) -e778e01161ui: avoid recursiveness and invalid memory access #28578 -0ce3910868ui: cursor pos with left gravity inline virt_text at eol (#24329) -91a4938edfui: data corruption in remote_ui_raw_line -1de82e16c1ui: delay win_viewport until screen update #24182 -a916523574ui: doesn't trigger au event when enter is false -b5a38530baui: don't force 'cmdheight' to zero with ext_messages -fdc8e966a9ui: don't send empty grid_line with redrawdebug=compositor (#23899) -13f55750e9ui: empty line before the next message after :silent command -d41b8d4758ui: ext_cmdline should not move cursor to curwin -a38d7f9984ui: fix cursor position with multiple inline virtual text -e0707d3529ui: fix edge case around flushing -75f350aac6ui: fix incorrect highlighting when virtual text next to match -332b70d2edui: fix incorrect highlighting when virtual text wraps with number -0c7fa3bdccui: fix multi-byte characters highlight in virtual text -a37c990483ui: fix overflowing nowrap virtual text not displaying if tab follows -5d7afb2e9fui: fix tabs not being spaced properly after virtual text with no wrap -34d862942cui: fix virtual text not displaying when two overlapping inlines (nowrap) -c5bf838f8aui: fix visual and search highlighting interfering with virtual text -1936285d98ui: fixes incorrect rendering when virtual text is not visable and nowrap -64e8a3c4d1ui: handle virtual text with multiple hl in more cases (#25304) -981acc2922ui: propagate line wrapping state on grid_line events -b8c1b36061ui: set 'cmdheight' to zero for all open tabpages -a8522f02e9ui: startup intro message should be visible with ext_multigrid -1cd7824dd6ui: trigger TabNewEntered after split new tab -7626f431d8ui: update ext_ui widgets when attaching non-remote UI -128091a256ui: wrong cursor position with left gravity inline virt text at eol -a9418ef8cfui: wrong display with 0-width inline virt_text at eol (#24854) -e8b3ed74bcui-ext: "scroll_delta" handle topfill and skipcol (#24249) -43d66c0ebbui-ext: send title to newly-attached UI -519b9929e9ui.open: some URLs fail on Windows -4d654472e6ui_client: check return code of dup() -633bf61d3bui_client: check return value of channel_job_start (#27729) -71ad771ea4ui_compositor: only reset skipstart at first column (#24776) -840749d6c9undo: fix crash caused by checking undolevels in wrong buffer -c0a29931e2unhide: close floating windows first (#25318) -9afbfb4d64unittests: ignore __s128 and __u128 types in ffi -9e79f7433eusercmd: Fix buffer overflow in uc_list() (#23225) -9802de9334userfunc: fix possible out of bound access -5a8fe0769cvim.deprecate: show deprecation warning in devel versions as well -ca6dbf3558vim.iter: use correct cmp function when truncating tail in `take` (#27998) -e15991c811vim.json: properly treat luanil options as booleans (#28622) -fec5e3ab24vim.region: handle multibyte inclusive selection properly (#26129) -2afb04758cvim.system: close check handle (#24270) -9b7cf4f0bevim.system: don't process non-fast events during wait() (#27300) -a44521f46evim.system: let on_exit handle cleanup after kill -6d5f12efd2vim.system: make timeout work properly -57adf8c6e0vim.ui: open() may wait indefinitely #28325 -e644e7ce0bvim.ui.open: return (don't show) error message -fd085d9082vim.ui.open: try wslview before explorer.exe #28424 -5e4a5f1aaavim.ui.open: use explorer.exe instead of wslview #26947 -6cc76011cawatchfiles: skip Created events when poll starts (#23139) -9bd4a28079window: :close crash if WinClosed from float closes window (#27794) -731e7f51eewindow: :close crash with autocmd, floats and tabpage (#27793) -33dfb5a383window: :close may cause Nvim to quit with autocmd and float -2cbfa4b9afwindow: don't go to unfocusable float when closing (#28455) -a47be0b2d9window: prevent win_size_restore from changing cmdheight -4bfc7802f0windows: set stdout to binary mode for --api-info PERFORMANCE -------------------------------------------------------------------------------- -a9c551e5e3cache breakindent/showbreak width in win_lbr_chartabsize -b5653984e5don't decode utf8 character multiple times in getvcol() -cca8a78ea2improve utf_char2cells() performance (#27353) -2f2f12122fremove loop for computing last position in getvcol() -32a4c9f4f9remove redundant strlen in skipwhite (#26177) -cdf848a314reuse fast character size calculation algorithm from getvcol() -2289ca273ccolumn: avoid counting when max signs are removed from a range -4a34da82c1column: keep track of number of lines that hold up the 'signcolumn' -f4001d27efcolumn: only invalidate lines affected by added sign -7f084770c2diagnostic: avoid table copies to filter by severity (#28491) -1cb6040554events: store autocommands in flat vectors (#23256) -9af2be292dextmarks: add metadata for efficient filtering of special decorations -929e1b7f1cextmarks: avoid unnecessary invalidations for virt_text (#27435) -19fb573ad9extmarks: avoid unnecessary marktree traversal with folds (#24306) -d44ed3a885extmarks: better track whether namespace has extmarks (#28615) -ef94fb69c6extmarks: don't handle inline virt_text if there is none (#24322) -8bb67d64e2fs: normalize path only once in fs.dir -40db569014iter: make ListIter.totable more efficient (#23714) -ef1801cc7citer: reduce number of table allocations -dcdefd0428loader: use a quicker version of vim.fs.normalize -648f777931lsp: load buffer contents once when processing semantic tokens responses (#23484) -2f4792943alsp: only joinpath for dirs in watchdirs -edf05b005flsp: process semantic tokens response in a coroutine that yields every 5ms (#23375) -79a5b89d66lsp: reduce polling handles for workspace/didChangeWatchedFiles (#23500) -4d3a04279dlsp: remove grouping logic from lsp.status (#24096) -de28a0f84clsp: replace file polling on linux with per dir watcher (#26108) -7e97c773e3lsp: use async fs_stat for file watching on linux (#26123) -cdd87222c8lua: avoid spairs in vim.validate happy path -c5af5c0b9alua: faster vim.deprecate() #28470 -c5990f2cdcos/env: os_getenv() allocation when there is no env var set -18e62c1bdbredraw: only redraw Visual area when cursor has moved (#27340) -94085cfce8redraw: reduce redraw with undo and extmarks or 'spell' (#27442) -516b173780rtp: reduce rtp scans (#24191) -0e11bf0e1asubstitute: don't reallocate new_start every time (#24997) -4fd852b8cbtreesitter: cache fold query (#24222) -07080f67fetreesitter: do not scan past given line for predicate match -c0cb1e8e94treesitter: filter out trees outside the visible range early -2b6c9bbe7ftreesitter: incremental foldupdate -3ba930844ctreesitter: insert/remove items efficiently (#23443) -a76b689b47ui-ext: approximate scroll_delta when scrolling too much (#24234) -0d1bc795f8ui_client: skip some initialization not necessary for ui client -14a5813c20vim.fs.normalize: use iterator BUILD -------------------------------------------------------------------------------- -c1ff216668actually export symbols on mac -664f2749e6add "ci" configure preset to reduce verbosity -1094d0c0dbadd CMAKE_C_FLAGS to --version output -1290121722add CMakePresets for deps build to reduce verbosity -ce6075f82aadd check to clint to prevent non-defs header includes -624de849deadd function add_target -82bb7bbc48add luajit runtime files when installing (#23514) -831d662ac6add sub-targets to the doc target -1bf29a0ae1add system lua include dir for lpeg -4cc69f45b4add ubsan default options -4880385809adjust clang-tidy warning exclusion logic -b80a8e2c16adjust how find order is prioritized -d561830a52align .clang-format rules with uncrustify config -c18d7941efallow sccache as compiler cache -cd097ab8ccallow using system rocks -54d357dce0bump lpeg to 1.1.0 (#25016) -7840760776bump minimum cmake version to 3.13 -7a5effb0f9bump required minimum libvterm version to 0.3.3 -2835b0daadbump uncrustify to version 0.77 -77c0d5415bbump uncrustify to version 0.78.1 -87a45ad9b9bump uncrustify to version 0.79.0 (#28756) -1798a4b5e9bump uncrustify version -826b95203abundle uncrustify -37bc73e9bcchange dependency URLs to cache variables -1086016477cmake cleanup -404fdb0f36cmake fixes -f8310beeedcreate BINARY_LIB_DIR directory before adding parser -9909668111create a text file for specifying dependency information -5a7280ba68create helper function for simplifying luarocks installation -f936a962d0create separate targets for nvim with and without runtime files -bcaff309b6disable UnusedIncludes from clangd -7a80e169c5disable all compiler warnings from dependencies -8fdc84d0aadisable conversion warnings for GCC -310fb2efc3disable conversion warnings for older GCC versions -a1c2da56ecdo not use GIT_REPOSITORY for local dependencies -da2130934bdon't allow Xcode as generator -543e0256c1don't define FUNC_ATTR_* as empty in headers (#26317) -24b60b0f71don't format deleted files -c2e47e7becdon't print installed files locally -f30844008bdownload busted from own neovim/deps repository -5abba97d77download dependencies with unreliable mirrors from deps repo -71384129f7download libiconv and gettext from `deps` repository -801ac2accbdrop diff.exe from windows builds -f0eb3ca916eliminate semicolons from --version string -397b92e02denable ASAN for MSVC -40139738ebenable IWYU on mac -25cfe3fd43enable formatting during rebase -517f0cc634enable lintlua for scripts/ dir #26391 -45fe4d11adenable lintlua for src/ dir #26395 -59d117ec99enable lintlua for test/ dir -c3836e40a2enable lintlua for test/unit/ dir #26396 -03c3f7887denforce PREFER_LUA -7cb29a572bensure `make clean` doesn't remove source files -0a3645a723find system luv on ubuntu -5bb17958c5fix "make iwyu" not working (#24873) -12ccea5967fix --luamod-dev not working properly (#24519) -75b80516d5fix link error for `_BitScanForward64` (#28173) -3f188bc533fix parser installation location -4fb1739e6ffix uncrustify -896b400bfffix universal mac builds -01e4a70d66improve git-cliff CHANGELOG output -ef92b5a994include all dependency directories when generating headers -187ae67735introduce variable DEPS_IGNORE_SHA for skipping dependency hash check -30a0299bc6make dependency URL variables non-cached (#23577) -b4da4783f9make genappimage.sh work with existing CMAKE_INSTALL_PREFIX -9f9cef1b56make lpeg an imported library -c1a05f6112make the vimdoc generation depend on the nvim target (#25876) -8b8e607284move luarocks and rocks installation to main build -d1bb9bffd5remove BUSTED_PRG dead code (#23340) -8206954a67remove LOG_DEBUG option -c48f94d1f3remove LOG_LIST_ACTIONS option and related code -353a4be7e8remove PVS -88366641adremove USE_BUNDLED_BUSTED option -ca243f06ddremove `lintdoc` from `lint` target -675522af18remove clint checks and style text covered by uncrustify -8be24fed8fremove config-specific find_package search for libuv -c40872acbdremove duplicate include directories in --version output -ebb10d6248remove functionaltest-lua target -8ae39eb584remove git requirement -9f8f287c61remove luarocks -339011f59cremove uninstall target -c8fd82b26dreorder compiler option setting -78239f0bbcreorganize cmake files -55793bcfa1revert accidental permission changes (#23319) -f31f260f0crework --version generation -a827003e30rework IWYU mapping files -e5d7003b02rework formatting to use add_glob_target -1997ef134aset char to always be signed -a75ef40f4cset deps default build type to Release (#27495) -a1550dbf0asilence new clang-tidy warnings -383018dbb8simplify policy-setting for dependencies -4788abf2dastop installing parser.h from treesitter -26033eee1dsuppress bugprone-reserved-identifier warnings -34509bbea3sync IWYU and clint to ignore the same headers (#26228) -0a8e66898dupdate builtin terminfo (#27272) -a388c852c4update libtermkey commit -706f871014update uncrustify to 0.76 -f4136c9d42use -O3 optimization for release builds -2c1e8f7e96use `GIT_REPOSITORY` for local URLs -e0d97d264fuse built nvim artifact to generate eval files (#25875) -3d3717de4euse libvterm commit with generated *.inc files -4f526b9fd8use neovim/libtermkey instead of neovim/deps for libtermkey -8405649f92use neovim/libvterm instead of neovim/deps for libvterm -2a57613b9buse stylua with add_glob_target -ae3eed53d6various build improvements -c8667c8756various cmake fixes -5cefec7349various cmake fixes -bec2ebebdavarious cmake fixes -c50951a4d0various fixes -4c91194611various fixes -bf0be0f63evarious improvements -404043e74cvendor libtermkey -e38a053692IWYU: export generated headers -71141e8cf5IWYU: fix headers for arabic.h -8b428ca8b7IWYU: fix includes for func_attr.h -f4aedbae4cIWYU: fix includes for undo_defs.h -17d81ac2abIWYU: map everything in the C99 specification -c2a5105e88IWYU: remove arabic_defs.h (#26235) -38a20dd89fIWYU: replace most private mappings with pragmas (#26247) -09541d514dIWYU: replace public-to-public mappings with pragmas (#26237) -39771b2238Makefile: add nvim to oldtest phony target -6823fdb20bPVS: exclude build directory -5d387c3388ci: ensure correct headers are used on macOS -dcb11c1091clint: don't allow INIT() in non-header files (#27407) -c98ef2d7c6clint: fix deprecation and linter warnings -7e2387f41bclint: more precise check for "defs" headers (#26236) -cf8b2c0e74iwyu: add a few more _defs.h mappings (#25435) -5f03a1eaablint: remove unnecessary clint.py rules -eecddd2416lint: use stylua without add_glob_target -25e51d393alua: vendor coxpcall -4dc86477b6luarc.json: disable luadoc-miss-see-name #24108 -fd9ac5aa8emakefile: remove a phony target uninstall (#24349) -978962f9a0release.sh: regenerate docs after changing NVIM_API_PRERELEASE (#28229) -9ca81b0259release.sh: set VIMRUNTIME when regenerating docs (#28765) -4399c4932drelease.sh: use git cliff, drop old script -d0ae529861scripts: allow a git ref for lsp_types #24377 -bfb81e1a85snap: remove obsolete snapcraft.yaml -981301d11fterminfo: include user capabilities in comments (#28066) -6801befcc5uninstall: don't build if installation manifest not found -345dcba629windows: set longPathAware in manifest #28389
31 KiB
31 KiB