-
- Downloads
NVIM v0.10.0
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim). Following is a list of fixes/features commits. BREAKING -------------------------------------------------------------------------------- - 649dd00f remove deprecated functions - 0370e4de remove neovim qt - 880f7d12 remove vimballs (#22402) - c48b1421 rename "playground" => "dev" #23919 - 2f85bbe6 rewrite TOhtml in lua - abe39f2b api: change return type of nvim_win_text_height to Dict (#24365) - 7180ef69 api: nvim_open_win: noautocmd blocks all autocmds #28192 - 700cab00 events: trigger CursorMoved later on switching window (#23711) - e4a136f7 ex_cmds: remove :behave - e5e0bda4 lsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958) - 5a363cca lsp: deprecate trim_empty_lines - 5a2536de lsp: move changetracking to separate file (#26577) - 58618d20 lsp: promote LspRequest to a full autocmd and enrich with additional data (#23694) - 1b9ccd38 lsp: rename vim.lsp.get_active_clients to get_clients (#24113) - eb1f0e8f lsp: replace snippet parser by lpeg grammar - 448907f6 lsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512 - 7caf0eaf lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440) - 74726432 mappings: remove #n as a notation for a function key (#17318) - f7da4722 options: graduate shortmess+=f flag - c3d1d944 options: graduate some more shortmess flags - 5df4fdf2 options: make OptionSet `v:` values use typval - 881d17a1 options: remove compatible behaviours for vim 5.0 and earlier - e19cc9c9 options: unify `set_option` and `set_string_option` - db590e96 startup: "nvim -l" message does not end with newline #24215 - 2ca076e4 treesitter: incremental injection parsing - f5dc4531 treesitter: new standard capture names - fc0ee871 treesitter: remove deprecated legacy injection format - 6debb185 treesitter: remove duplicated diagnostic code (#24976) - 18da6964 vim.iter: remove vim.iter.map/filter/totable #26138 - 9b028bd6 vim.iter: rename xxback() => rxx() #28503 - 8d4a53fe vim.json: remove global options, "null", "array_mt" #24070 - 40ce8577 vim.ui: change open() to return `result|nil, errmsg|nil` #28612 - e0d92b9c vim.ui: change open() to return pcall-like values #28502 FEATURES -------------------------------------------------------------------------------- - a66b0fdf NVIM_APPNAME supports relative paths #25233 - c0beb817 add .luarc.json (#24592) - 14b7ffcf add __call typing for vim.inspect() - ca7e488c add link in issue template to minimal config template - 4bf47222 add vim.text module (#26069) - 0ebc4de0 allow opting in to builtin clipboard providers (#28083) - e8d3c4cc generate types and docs for v variables - 29fe883a ignore swapfile for running Nvim processes #25336 - 28d1640d improve return type annotations for vim.api.* - 199a990c report "build" in vim.version() #23925 - e6887932 tostring(vim.version()) - c559ab0a update unicode tables (#27317) - ecdb6465 vim.version() returns a Version object - 4b60267f :source: source current ft=lua buffer as Lua code (#23802) - 428edcde api: add forward and back mouse buttons - 037ea6e7 api: add nvim__redraw for more granular redrawing - ca9f6f56 api: add nvim_tabpage_set_win (#27222) - db8fe63a api: add nvim_win_text_height (#24236) - 16513b30 api: allow floats to be opened in non-current tabpage (#28480) - 6b4970f6 api: allow open_win/win_set_buf in the cmdwin in some cases - 5d921e28 api: allow win_close in cmdwin to close wins except previous - 47227119 api: allow win_hide to close cmdwin or non-previous windows - 6bba4bec api: make nvim_open_win support non-floating windows (#25550) - b162adbb api: pass 0 to nvim_get_chan_info for current channel (#27321) - 42bbc4fa api: support abbreviations in nvim_set_keymap - 98a4ed0a api: support getting abbreviations (#26868) - d3d7d763 builtin: improve types - 748bc4d2 clipboard: add OSC 52 clipboard support - db57df04 clipboard: enable OSC 52 clipboard provider by default (#26064) - 734848dc colorscheme: add semantic tokens modifiers to builtin color scheme - 1e0996b5 colorscheme: update treesitter groups - 73de9825 comment: add built-in commenting - ae4ca4ed complete: support f flag for complete buffer part - 01c51a49 completion: support completing more string options - ae368579 decoration: allow conceal_char to be a composing char - 30a5c28c decoration_provider: log errors as error messages - 9711370c defaults: add :Inspect to right-click menu (#28181) - 2613ba50 defaults: enable 'termguicolors' by default when supported by terminal - 513fc461 defaults: improve :grep defaults #28545 - c26dc1f7 defaults: map Q and @x to repeat in Visual mode (#26495) - 8758c6fb defaults: set g:netrw_use_errorwindow = 0 #24179 - 1d81d7a2 defaults: treat "•" as a list item prefix #24623 - 20b38677 defaults: use ripgrep (rg) for 'grepprg' if available - 61063653 defaults: visual CTRL-R for LSP mappings #28537 - 4ee656e4 diagnostic: add `vim.diagnostic.count()` (#26807) - 73034611 diagnostic: add default mappings for diagnostics (#16230) - fc6d713d diagnostic: add support for many namespaces filtering in GetOpts (#28045) - 5ed9916a diagnostic: enable(…, opts) - e7801775 diagnostic: filter diagnostics by specific severities (#24736) - b13e63db diagnostic: goto functions jump to highest severity (#28490) - 26765e84 diagnostic: is_enabled, enable(…, enable:boolean) - 9cb7e00b diagnostic: provide more control over virtual text display (#24724) - ee41153a diagnostic: revert default behaviour of goto_next/prev() - 07b60efd diagnostic: specify diagnostic virtual text prefix as a function - a3b39784 diagnostics: support numhl and linehl for diagnostic signs - 0381f5af diff: grouping optimization for linematch algorithm - 42333ea9 docs: generate builtin.txt (#24493) - 9beb40a4 docs: replace lua2dox.lua - 1d4a5cd1 eval: exists() function supports checking v:lua functions (#26485) - 4a1ad676 ex_cmds: no error on :lua with {range} and {code} (#27290) - c2433589 ex_cmds: ranged :lua #27167 - b04286a1 extmark: support proper multiline ranges - 1c032ad7 extmark: window scoped extmark - 68cb4a74 extmarks: add "undo_restore" flag to opt out of undo-restoring - 4e6f559b extmarks: add 'invalidate' property to extmarks - c2490587 extmarks: add sign name to extmark "details" array - bbd5c636 extmarks: add virt_text_repeat_linebreak flag (#26625) - 15e77a56 extmarks: subpriorities (relative to declaration order) (#27131) - f0884f21 extmarks: support hl_mode "combine" for inline virt_text (#24099) - 372aa2eb float: add fclose command - 35570e4a float: implement footer - 4200a0f1 float: support toggle show float window - 1233ac46 fold: transparent foldtext - 71530cc9 folds: support virtual text format for 'foldtext' (#25209) - 38b9c322 fs: add vim.fs.root (#28477) - e3e6fadf fs: expose join_paths as `vim.fs.joinpath` (#23685) - bc67cf3c gen_help_html: add anchors to help tags #25112 - b0cf9c5f gen_help_html: ignore pi_netrw.txt errors - 81d8fce8 gen_help_html: non-default vimdoc.so parser - da09f9b5 gen_lsp.lua: protocol.Methods #24504 - f41496ce gen_lsp.lua: sort by name, handle failure #24504 - 3692fd4c gen_lsp.lua: validate CLI args #26514 - 2ff2785c health: checkhealth buffer can show in a split window (#26714) - 4382d2ed health: fold successful healthchecks #22866 - d1bc6fca health: list attached buffers in LSP report #23561 - 2877672d health: make :checkhealth support more split modifiers (#26731) - ddda5e0a help: hide filename of "gO" outline using conceal #27547 - e72c0cd9 highlight: Allow hyphens (-) in highlight group names (#24714) - 986bf7e7 highlight: add `FloatFooter` highlight group - 574519d9 highlight: tweak default color scheme - 64a14026 highlight: update default color scheme - a79694a0 issue_template: instruct not to include a package manager - 69ffbb76 iter: add `Iter.take` (#26525) - cebc0060 l10n: update Turkish translations #24246 - fec51229 l10n: update Ukrainian translations (#24882) - 996dd36c lsp: add actionable advice to lsp client quit error msg (#24510) - 4ff3217b lsp: add fswatch watchfunc backend - 643546b8 lsp: add handlers for inlay hints (#23736) - 317c80f4 lsp: add method filter to get_active_clients (#24319) - 68886074 lsp: add more LSP defaults (#28500) - 0fe86f7e lsp: add opts paramater to vim.lsp.codelens.refresh - 131a1ee8 lsp: add original LSP Location as item's user_data in locations_to_items (#23743) - f1775da0 lsp: add snippet API (#25301) - db0ec84f lsp: add type annotations for lsp.util.locations_to_items (#26694) - f190f758 lsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388) - 451bc50d lsp: deprecate severity_limit - e9b85acf lsp: enable workspace/didChangeWatchedFiles by default (#23190) - 4a09c178 lsp: fallback to code-action command on resolve failure (#25464) - 2f22ed6a lsp: handle multiple clients in omnifunc (#24381) - 63b34085 lsp: implement textDocument/diagnostic (#24128) - 5e3cf9fb lsp: improve control over placement of floating windows (#24494) - 15641f38 lsp: include positionEncodings in default client capabilities - ddd92a70 lsp: initial support for dynamic capabilities (#23681) - ca5de930 lsp: inlay hints #23984 - 350d8185 lsp: inlay_hint.is_enabled({filter}) #28523 - 33e1a8cd lsp: map K to hover by default #24331 - 97bea316 lsp: more annotations - 37079fca lsp: move inlay_hint() to vim.lsp (#24130) - 12c2c16a lsp: opt-in to dynamicRegistration for inlay hints (#24102) - a49924a3 lsp: remove notify from vim.lsp.buf_detach_client (#25140) - 8149bd08 lsp: report fswatch errors - fb54e698 lsp: set client offset_encoding if server supports positionEncoding - 96e19533 lsp: set kind in select call for codelens #23889 - 9af35596 lsp: set workDoneToken in initialize request (#28182) - f736b075 lsp: snippet parsing using lpeg - 134b9ec4 lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104) - 63f9c2da lsp: support completion itemDefaults - 3f788e73 lsp: support connect via named pipes/unix domain sockets (#26032) - 7e36c8e9 lsp: support for choice snippet nodes - 5c40f3e8 lsp: support vim.lsp.ListOpts.loclist in location_handler() - abd2352b lsp: update LSP protocol 3.18 typings to date (#28730) - cfd4a9df lsp: use treesitter for stylize markdown - d5063f4b lsp: vim.lsp.inlay_hint.enable(nil) applies to all buffers #28543 - c0952e62 lua: add `vim.system()` - 9248dd77 lua: add hl priority opts on yank (#23509) - 64258697 lua: add meta file for vim submodules (#24525) - 3734519e lua: add noref to deepcopy - 7c661207 lua: add ringbuffer (#22894) - 877d04d0 lua: add vim.func._memoize - ab1edecf lua: add vim.iter (#23029) - d675bd01 lua: allow vim.F.if_nil to take multiple arguments (#22903) - c379d72c lua: allow vim.wo to be double indexed (#20288) - e52c25b7 lua: deprecate vim.tbl_add_reverse_lookup - f1dfe32b lua: enable(enable:boolean, filter:table) #28374 - 5b40a1c0 lua: implement Iter:join() (#26416) - c01e624b lua: more specific error messages for vim.api type checking - e1ff2c51 lua: pass keys before mapping to vim.on_key() callback (#28098) - 2db719f6 lua: rename vim.loop -> vim.uv (#22846) - 6c0812d9 lua: specific error messages for type checking `opts` params - fd089c8e lua: typing for vim.fn.* (#24473) - 302d3cfb lua: use callable table as iterator in vim.iter (#23957) - 51c754b6 lua: use keyset type information - 8e5c48b0 lua: vim.fs.normalize() resolves ".", ".." #28203 - 7e70ca0b lua: vim.keycode (#22960) - 9e86f473 lua: vim.region accepts getpos() arg (#22635) - 4d04feb6 lua: vim.tbl_contains supports general tables and predicates (#23040) - 48d53327 lua-types: types for vim.api.* (#24523) - 25e72997 man: allow opening pages in current window (#27861) - 08db61b1 man: respect 'wrapmargin' when wrapping man pages (#24091) - f9944a78 meta: add types for vim.lpeg - deb6fd67 msgpack-rpc: show actual request id in error message - 01fe6b9e msgpack_rpc: support out-of-order responses on `msgpack-rpc` - 619407eb nvim_open_term: convert LF => CRLF (#26384) - e98decf9 quickfix: support -q - to read 'errorfile' from stdin (#27303) - 7b0123dd remote: avoid --remote-ui infinite loop (#24465) - cca6c4c6 rpc: allow empty string key in msgpack => Vim conversion - d0d4160d runtime: highlight hl groups in syntax.txt (#25050) - 5f489520 scripts: add lsp_types.lua (#23750) - 4e6096a6 server: allow embed with listen (#25709) - 170c890d shortmess: "q" flag fully hides recording message (#27415) - d3582e10 statuscolumn: re-evaluate for every screen line (#25885) - 224f303e stdlib: add vim.base64 module (#25843) - fa131de9 tabline: middle mouse button now closes tab (#27522) - c855eee9 term: enable reflow by default (#21124) - cd1b14f0 termdebug: improve `:Evaluate` floating window (#26621) - cffdf102 terminal: allow :terminal to take modifiers (#15427) - 0c89854d terminal: close shell terminals automatically - 75893361 terminal: respond to OSC background and foreground request (#17197) - beca8272 terminal: trigger TermRequest autocommand events (#22159) - c6ec7fa8 treesitter: add 'injection.self' and 'injection.parent' - 6cfca21b treesitter: add `@injection.filename` - 5d8ab32f treesitter: add a query editor (#24703) - cb0a1a10 treesitter: add bash parser and queries - bb15fa03 treesitter: add folding for `InspectTree` (#27518) - 9ce16238 treesitter: add foldtext with treesitter highlighting (#25391) - 31c4ed26 treesitter: add injection language fallback (#24659) - 28f54a78 treesitter: add lang parameter to the query editor (#25181) - 88c8803a treesitter: add python parser and queries - c194acbf treesitter: add query_linter from nvim-treesitter/playground (#22784) - af040c3a treesitter: add support for setting query depths - 11844dde treesitter: bundle markdown parser and queries (#22481) - 5e6240ff treesitter: handle quantified fold captures - f69658bc treesitter: highlight Lua files by default (#26824) - 988b472d treesitter: highlight help files by default (#26347) - 845d5b8b treesitter: improve query error message - 189fb620 treesitter: improved logging (#23638) - c0b99bb1 treesitter: show root nodes in :InspectTree (#26944) - cb46f6e4 treesitter: support URLs (#27132) - ff6092b4 treesitter: update Bash parser and queries to v0.21.0 - 8dda630a treesitter: update C parser and queries to v0.21.0 - 3836eeb9 treesitter: update C queries from upstream - aca4ad43 treesitter: update Lua parser and queries to v0.1.0 - 5e875ae8 treesitter: update Markdown parsers and queries to v0.2.1 - 8a3385dd treesitter: update Python parser and queries to v0.21.0 - 20dcbaaa treesitter: update Vim parser and queries to v0.4.0 - 987dff67 treesitter: update Vimdoc parser and queries to v2.4.0 - 1384bebd treesitter: update query parser to v0.2.0 - 668f16ba treesitter: upstream query omnifunc from playground (#23394) - a478bf93 treesitter: use 0-based indexing to show ranges in `:InspectTree` - ac8ed77a tui: add 'termsync' option (#25871) - 4ee9e580 tui: query extended underline support using DECRQSS (#28052) - b4b7ca2d tui: support DCS responses in TermResponse event (#26061) - 622ae2f5 tui: support Super and Meta modifiers (#24357) - a1426703 tui: support undercurl in WezTerm (#28037) - 56627ca2 tui: use TermResponse event for OSC responses (#25868) - 32b49448 tutor: add Japanese tutor #27268 - 9c2270b8 types: add `test/.luarc.json` - d3a8e921 ui: add chdir UI event (#27093) - 6ea6b3fe ui: add support for OSC 8 hyperlinks (#27109) - b72931e7 ui: allow non-zero 'cmdheight' with ext_messages - 2615ed87 ui: allow to get the highlight namespace - e38027ef ui: completeopt support popup like vim - 2e4e1275 ui: indicate margins for the area used by win_viewport - efa9b299 ui: inline virtual text - dacd3436 ui-ext: make 'mousehide' into proper ui_option (#25532) - 43ded8d3 version: unverbose ":version", ":verbose version" #24195 - 0a598c13 vim.deprecate: only issue warning if neovim version is high enough - a767c046 vim.iter: add Iter:flatten (#26786) - af6e6ccf vim.ui: vim.ui.open, "gx" without netrw - fa4b02fa vim.version: add `vim.version.le` and `vim.version.ge` - 27a566f3 vimdoc: support Markdown code blocks (#25127) FIXES -------------------------------------------------------------------------------- - f5573fba Remove nested for_each_tree in TSTreeView (#26328) - ae28ef32 adjust error message for error in UI event callback (#28200) - ebe489d8 allow multiline message for echoerr (#25380) - 592bc831 avoid ui_grid_cursor_goto when drawing window separators - d6483793 buffer overrun in lmpack_session_receive - 3bbb0aa3 checkhealth warning even if init.lua exists #25306 - 5cb906e9 correct versions in deprecation warnings - 118fd836 deduplicate gen_cflags - eb4676c6 disallow removing extmarks in on_lines callbacks (#23219) - 6e9b204a doc errors - 77d3526a explain that user should run nvim with -V1 to see more information - fd791db0 fix ASAN errors on clang 17 (#25469) - bb38c066 fix compiler warning from clang - 478273a4 fix iter_matches call in query linter (#27496) - bb732429 flush UI state before blocking in vim.wait (#25938) - 44d4ae44 function was renamed (#23772) - 1dd700a8 gf fails on "foo/bar.txt:1:2" on Windows - 6e703f77 handle argv not present in nvim_get_chan_info - 56dc8b92 heap-buffer-overflow in file_name_in_line - 74b2f6c3 ignore non-existent properties during header generation - f5a09f1b invoke changed_bytes when rewriting <Tab> char #25125 - b8273c9a lua annotations - 69d49727 luacheck - 4ce3159e missing case in setxattr error handling (#26176) - 41fb98d6 move fswatch linux check inside of vim.schedule (#27824) - ba58c6f8 only attempt to close timer if not already closing (#26047) - b400b947 prevent child processes from inheriting ui channel file descriptors - 99b8a343 quick update, squash later - 83b51b36 raise TS min version - a090d43d splitting of big UI messages - 2424c3e6 support UNC paths in vim.fs.normalize - 43e76cc3 tostring(vim.version()) fails if build is NIL #24097 - 8c7a8be2 transposed xcalloc arguments (#28695) - 35f453f6 type warnings in shared.lua - f112ac73 unreliable "checkhealth completions" test - b32b5b27 use BEL to terminate OSC 11 request (#26335) - d95e3a4c use no_ff instead of ffdos as condition - a1bec02c use snprintf instead of sprintf - ca887b80 version-range < and <= #23539 - c1ee187f vim.loop in luv threads (#23924) - fe458312 vim.validate() order is not deterministic #28377 - be8b1520 windows timeouts have exit code 1 - 1f8fb7c0 :let: fix error when applying operator to boolean option (#24030) - 5a375288 NVIM_APPNAME: show error message if $NVIM_APPNAME is invalid - c4ad15ae PVS/V009: add top-level message - 128e194f PVS/V1001: variable is assigned but is not used - 1bbbca26 PVS/V547: expression is always true/false - 592e4472 PVS/V564: the '|' operator is applied to bool type value - 30d311eb PVS/V592: expression is enclosed by parentheses twice - 3ecd45de api: allow negative column arguments for nvim_buf_set_text (#23501) - 3ac952d4 api: avoid assertion when autocmd group id is 0 (#23210) - b2a8a931 api: avoid immediate TextChanged with nvim_create_buf (#25492) - ef7ae66e api: avoid integer truncation - b1e24f24 api: avoid open_win UAF if target buf deleted by autocmds - 0a81ec14 api: better topline adjustments in nvim_buf_set_lines - c18f3cfc api: crash after nvim_win_set_config title/footer validation error (#26606) - aa4e47f7 api: disallow some more functions during textlock - 22d9338a api: disallow win_set_buf from changing cmdwin's old curbuf (#24745) - da979ae0 api: do not re-apply win_config.style when missing - 344906a0 api: do not update grid position in nvim_win_set_cursor (#28235) - 22205f36 api: don't change title when setting buffer in a window (#23492) - 711a2f5f api: don't leak memory with nvim_win_get_ns (#27570) - 1cf51a07 api: don't set coladd of mark (#26648) - 5fd1bac6 api: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501) - a3751f5d api: dont change curwin for nvim_win_set_height - 1ff45625 api: dont change curwin for nvim_win_set_width - 59fed8bb api: extmark highlight groups not always included in details (#23179) - 9b9030ff api: fix inconsistent behavior of topline touched in recent refactor - fc2a56fe api: fix set_lines viewport adjustment, but this time good - b7763d7f api: get virtual text with multiple hl properly (#25307) - b3be7b74 api: handle NUL in nvim_err_write() and nvim_out_write() (#25354) - 132bbd1c api: handle clearing out last line of non-current buffer - d942c2b9 api: handle win_split_ins failure properly - 5cfdaaae api: ignore 'autochdir' when renaming other buf (#28376) - 2fc23437 api: ignore 'autochdir' when setting buf in other win (#28371) - 73678383 api: limit depth of nvim_cmd (#27225) - 0da27e9b api: load buffer first on nvim_buf_set_lines (#25823) - 4e5c633e api: make getting explicit empty hl in virtual text work (#28697) - d05d63a1 api: make nvim_get_hl not return non-existing groups - a70eae57 api: make open_win block only enter/leave events if !enter && !noautocmd - 5d58136c api: make open_win/win_set_config check if splitting allowed - 4ec8fd43 api: make width/height for split by nvim_open_win work (#28341) - b1577d37 api: make win_set_config with "win" for splits need "split/vertical" - 0330dd9e api: mark nvim__complete_set as experimental #28579 - d22172f3 api: more intuitive cursor updates in nvim_buf_set_text - b051b131 api: nvim_buf_get_offset in a new buffer with zero or one lines - e0453d7f api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181 - 6091df6b api: nvim_create_buf assert fails if autocmds set &swapfile - d5c23d72 api: nvim_create_buf leaks memory if buffer is loaded early - b7708eac api: nvim_get_hl should return default flag - a741c7fd api: nvim_parse_cmd error message in pcall() #23297 - e55a502e api: open_win fire Buf* events when !enter && !noautocmd if entered early - a873f339 api: open_win fire BufWinEnter for other buffer when !enter && !noautocmd - e7c262f5 api: patch some cmdwin/textlock holes - a9968912 api: redundant error when using `nvim_cmd` (#24010) - dbcba26b api: revert unintended change of optional bool params - b2575338 api: set script context when using nvim_set_hl (#28123) - d3ea9a04 api: update "w_scwidth" in nvim_eval_statusline() - c971f538 api: update grid cursor in nvim_win_set_cursor() - 130cb481 api: use a conditional stack for nvim_cmd (#26341) - cf9f002f api: use correct buffer for "range" in nvim__redraw (#28614) - 77118d0d api: use text_locked() to check textlock - bcb70eea api: win_set_config autocmds crash when moving win to other tabpage - 233649bc api: win_set_config fires unnecessary autocmds - b52d1585 api: win_set_config set tp_curwin of win moved from other tabpage - 54022a29 api: win_set_config update statuslines after removing splits - a9cd8467 api: wrong nvim_buf_set_extmark error for invalid hl_mode - 4d3a38ac api, lua: handle setting v: variables properly (#25325) - 92760a7f api, lua: make blank lines in a message work properly (#24244) - 08fc1ebb api/buffer: fix handling of viewport of non-current buffer - 24e3ee9d api/options: validate buf and win - 139e6f68 autocmd: API functions accept garbage after event name #25523 - 02d00cf3 backup: E1509 when writing extended attr to symlink (#28014) - 746a153b base64: only check padding if leftover index is set (#25854) - 533e01a7 base64: properly handle embedded NULLs when decoding (#28349) - 095bd8d0 buffer: do not filter help buffer - e5d9b150 buffer_updates: correct buffer updates when splitting empty line - 11865dbe build: better deps for doc - ffaf74f1 build: distinguish vim.mpack from global require'mpack' - f9416470 build: include FindPackageHandleStandardArgs - ade42d53 build: teach cmake about vvars - da7178cb builtin: fix incorrect optional fields for fn.sign_define - 6fa0f303 builtin: parameter mismatch between winsaveview and winrestview - 3159a2c2 change: update fold after on_bytes (#26364) - 342c7da4 channel: use os_write() instead of fwrite() for stderr (#26689) - cd645812 charset: fix wrong display of 0xffff (#24158) - 603f3b36 checkhealth: error in node.js check #28348 - b0978fca checkhealth: fix crash due to incorrect argument type - 7f94a032 checkhealth: shell_error and cpanm module - bfdec5b0 clang: null pointer dereference in parse_msgpack #25389 - 1027ccac clangd: check size of array before applying qsort on it - cdd80174 clangd: set block pointer to null in case map is empty - 6851b265 clipboard: don't pass --foreground to wl-copy (#25481) - c3de6524 clipboard: ignore exit caused by signal #23378 - 3128cff6 clipboard: increase OSC 52 wait timeout (#25936) - 46ceefb5 clipboard: make getreg() accurate for clipboard registers (#26740) - d2983dcd clipboard: make osc52 work with PUC Lua (#26014) - e51e5241 cmake: restore previously undocumented workround, now documented - 3688735c cmdline: don't redraw 'tabline' in Ex mode (#24123) - c72d877c cmdline: wrong 'incsearch' highlighting after :redraw (#27947) - bc67bbe4 codelens: add buffer and line checks before displaying codelens (#23887) - 2b1a6e75 colorscheme: add missing LSP groups - 0c850add colorscheme: default statusline groups usability #26921 - 8b236536 colorscheme: link LSP semantic tokens to treesitter groups - 62e0e034 colorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727) - eca72def colorscheme: typo - d4bd6b1e colorscheme: use explicit normal foreground in syntax groups - 3c724fe1 column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967) - cdc028e9 column: add truncated width during estimation for 'statuscolumn' - e8907152 column: always set b_signcols.max - c126a375 column: apply numhl signs when 'signcolumn' is "no" (#26167) - 2ded2e75 column: avoid exceeding configured 'signcolumn' width - b50fdcba column: clear "b_signcols" before moving saved marks - 13d50c3b column: clear "b_signcols" when marktree is cleared - ec745380 column: correct width after truncated 'statuscolumn' error (#26737) - 2bdef6dd column: don't overflow sign column with extmark signs (#23854) - bab4bcde column: don't reset 'statuscolumn' width after it has been drawn - c509f490 column: fill 'statuscolumn' clickdefs with evaluated width (#26891) - 25e62697 column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268) - dbf6be29 column: full redraw with 'stc, 'rnu' and inserted lines (#27712) - 7d0a2397 column: handle unprintable chars in 'statuscolumn' (#24198) - 0db6946b column: handle w_redr_statuscol at end filler lines (#27365) - 97122eaa column: ignore empty signcols range (#28177) - 967c7abd column: keep track of number of lines with number of signs - f871fee8 column: pass kFalse when initializing "b_signcols.count" - 44d4f035 column: rebuild status column when sign column is invalid - c6864b0d column: redraw 'statuscolumn' on wrapped lines with 'relativenumber' - 35cec0de column: redraw and update signcols for paired extmark - d88814ef column: remove sign from line it was previously on with undo - df399ea0 column: reset decor state before starting from top - 5a4e0b83 column: use a single path for sign sorting (#27431) - a878e02d column: use maxwidth to allocate/fill 'statuscolumn' click defs #24190 - 783b0aba completion: check that healthcheck name is string (#28458) - fbeef0d4 completion: don't add backslashes to runtime pattern (#24296) - cdc8bacc completion: filter results with complete+=f (#26029) - af8500af completion: improve popup window position (#26739) - d1b2a5cf completion: make sure the buffer name is valid (#25975) - e9b9a86c context: don't crash on invalid arg to nvim_get_context (#25977) - fdaf6bc5 context: don't leak memory on multiple invalid objects (#25979) - 55be4a4e coverity: dead code #25562 - 6d698c86 coverity: unhandled retval for marktree_itr_get_overlap() #26518 - 6f49ed58 coverity/348240: memory leak in put_view() - 9d48266b coverity/471380: null dereference in get_local_additions() - ae48d965 coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022) - 2b0acacb decor: allow adding providers during redraw - 5ca33085 decor: check decor kind before accessing union field (#27205) - 60d320de decoration_provider: don't leak memory on error (#24410) - 65738202 decorations: better approximation of botline #24794 - 2accf248 decorations: crash with revised mark with changed decoration flags - a0e9ef09 decorations: do not apply sign highlight id as range attr id - fba17d5b decorations: fix imbalanced sign count - 444f37fe decorations: incompletely displayed line should also get decorations - dc48a98f decorations: validate botline for on_win - 328a2373 defaults: auto-close terminal for &shell with args (#28276) - 5aa1ba3e defaults: background detection in tmux (#26557) - 5e98439f defaults: diagnostic mappings descriptions #28646 - ccb5a76e defaults: don't use nvim_feedkeys in default mappings (#24520) - 85cb0b0d defaults: make terminal autoclose not block other events (#27581) - aa1d0ac0 defaults: only repeat macro for each selected line if linewise (#28289) - eef2aedf defaults: remove tmux background detection passthrough (#27571) - 5b45efbe defaults: set 'fsync' #26034 - 8df37423 defaults: use augroup for default autocommands (#26933) - a8e4ee2f defaults: validate 'channel' before responding to OSC request (#27594) - 6318edad defaults: visual hash (#) on text with "?" - abd380e2 defaults: visual mode star (*,#) is fragile - b9a0e762 defaults: visual star (*) on text with "?" - 9b4b2349 defaults: wait until VimEnter to set background (#26284) - 72e3d8c3 deps: bump luv to 1.48.0-2 - 87db6d89 deps: make sure --force-config takes effect - 7aad4643 deps: remove stray conflict marker - 8a671668 deps: restore functionality of USE_EXISTING_SRC_DIR - d4dc8840 deps: restore functionality of USE_EXISTING_SRC_DIR - d2721433 diagnostic: always return copies of diagnostic items (#25010) - 29d5ff6a diagnostic: check for sign namespace instead of sign group - 3d8f0cb6 diagnostic: check if delete failed in `qf_fill_buffer()` (#25932) - 89ffdebd diagnostic: fix typing on field |diagnostic-severity| - 83635e4e diagnostic: get border from config (#28531) - 96f59e1b diagnostic: invalid col number compare in next_diagnostic (#28397) - ad76b050 diagnostic: open_float on multi-line diagnostics #28301 - 37011bc4 diagnostic: rename buffer → bufnr in type annotation (#23042) - 50284d07 diagnostic: typing - a4fc3bb0 diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273 - add1b10b diagnostic: virtual_text prefix function should have index and total (#25801) - 35f475d0 diagnostics: if buffer not loaded, skip handlers that set extmark (#25628) - 5a25dcc5 diff: filler lines for hunks bigger than linematch limit (#24676) - 2f9ee9b6 doc: improve doc generation of types using lpeg - c4417ae7 doc: prevent doxygen confusion - 67f53323 docs: clean up non-docstring comments for vimdoc gen - ae7020c6 docs: fix TSNode incorrect signatures - ab65a98a docs: ignore_invalid #24174 - f40df63b docs: make lines not overflow in vim docs - 0a90e4b0 docs: match DocSearch style with site theme - 0d149bb1 docs: the runtimepath is not the runtime path - 957d05d1 docs: too much whitespace around <pre> blocks #24151 - d931b829 docs: vimdoc syntax errors - 036da0d0 docs: vimdoc syntax errors - 17c59e41 docs: vimdoc syntax errors - 34b57508 drawline: check filler_todo in place of removed draw_state (#27889) - 455bca1b drawline: combine extmark highligh with area hl correctly - 32997971 drawline: consider position in linebuf for foldcolumn (#26803) - 889f81c6 drawline: don't invoke on_line for filler line (#28219) - 2b9d3869 drawline: don't use temporary "v" variable when not needed (#26777) - 06694203 drawline: fix missing Visual hl on double-width fold char (#24308) - d5488633 drawline: initialize linebuf_attr to 0 instead of -1 (#27840) - e9280a68 drawline: initialize variable - 28197188 drawline: initialize variable - 36941942 drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273) - 37b73cf1 drawline: make cursorlineopt=screenline work with resized grid - be1d09c4 drawline: missing NUL termination when drawing TAB (#27307) - 5b314478 drawline: update prev_ptr after getting syntax attrs (#27072) - 14839c5d edit: backspace adds extra spaces for inline virtual text (#28005) - 267e90f3 edit: don't go to Terminal mode when stopping Insert mode (#27033) - b2e8c0df edit: fix K_EVENT interfering with 'digraph' (#24258) - 143a1783 editorconfig: add missing root validation (#23462) - cbbda3bc editorconfig: check that buffer is valid (#23922) - abb8c2c4 editorconfig: do not set 'endofline' - df2f5e39 editorconfig: highlight properties with dashes (#24407) - dc45fb46 editorconfig: only warn once on errors - cdbc3e3f editorconfig: syntax error regression - bf0c69e5 eval: correct failure return value for readfile/blob (#27722) - 5b312cd5 eval: make has('pythonx') work properly (#27739) - 0e4086b7 eval: prevent double-free in garbage collection (#22990) - 12d12395 eval: properly support checking v:lua function in exists() (#27124) - b8c34efe eval: skip over v:lua properly (#27517) - ad2fad9a event-loop: flush UI when no input is available (#25728) - 67255652 event-loop: process input before events (#27358) - 58a1ef8e events: avoid unnecessary CursorMoved (#24675) - bf9e92c8 events: check for WinResized/WinScrolled in terminal mode (#27226) - dd24ea81 events: don't expand non-file as file name - 774a32e5 events: null dereference in autocmd functions - a8cfdf43 events: trigger VimResume on next UI request (#24426) - a114a21e ex_getln: initialize pointer with NULL - 9e7c4fe5 exception: remember whether message is multiline (#25351) - 4a098b97 excmd: append original command to error message - 75d9c413 excmd: make :def unknown rather than unimplemented (#23150) - f1dd75c2 exitfree: don't use ex commands to close windows in free_all_mem() - 79a55827 extmark: fix crash when stepping out from internal node - a78fd18e extmark: fix cursor position with both left and right gravity inline text - 320e9c1c extmark: only invalidate unpaired marks on deleted rows - 8e97edb9 extmark: restore extmarks when completing original text - 2d33a766 extmarks: `U` changed_bytes after extmark_splice (#26501) - 23c21e76 extmarks: account for rightleft when drawing virt text (#25262) - d54156ed extmarks: blending space shouldn't overwrite wide char (#26960) - 54225bdb extmarks: crash with sign after many marks - 65b1fd00 extmarks: do not remove decor from invalid old marks - 437d35db extmarks: do not remove invalid marks from decor upon deletion - a05bbc60 extmarks: don't position overlay virt_text halfway a char (#24027) - 4dd43e31 extmarks: don't show virt lines for end mark (#23792) - dfa8b582 extmarks: draw TAB in virt_text properly with 'rl' (#25381) - a6e4793b extmarks: draw virt_text below diff filler lines properly (#25170) - 958cc228 extmarks: empty inline virt_text interfering with DiffText (#24101) - 0534ad8c extmarks: empty inline virt_text interfering with Visual highlight - 31a51acd extmarks: fix heap buffer overflow caused by inline virtual text (#23851) - 9c41a81d extmarks: fix virt_text_hide off-by-one hiding (#23795) - a6dd67f5 extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757) - 818d7f6d extmarks: fix win_col virt_text drawn on wrong screen line (#25264) - c4df2f08 extmarks: fix wrong highlight after "combine" virt_text (#24281) - b65cd7ff extmarks: fix wrong virt_text position after wrapped TAB (#25168) - 4c7cec4e extmarks: handle inline virt_text with empty chunk (#24005) - ee3d4f6b extmarks: handle overwriting right half of wide char (#26951) - f4f1ce1d extmarks: hide inline virt_text properly with 'smoothscroll' (#24106) - 34a786bc extmarks: inline virt_text support multiple hl groups (#25303) - 5a6c7c80 extmarks: make empty "conceal" respect &conceallevel = 1 (#24785) - 510e1f13 extmarks: make right_align and win_col work on wrapped line (#23759) - 215244f7 extmarks: missing "spell" and "conceal" in details (#27116) - 35e50d79 extmarks: overlay virt_text position after 'showbreak' (#25175) - a0790558 extmarks: priority order of inline and non-inline virt_text (#27532) - b52bd8a2 extmarks: properly handle virt_text on next screen line (#25166) - a376d979 extmarks: redraw line on adding/removing conceal (#27463) - 2d9e063a extmarks: redraw pre-undo position (#27437) - 2137edbd extmarks: redraw properly with scoped inline virt_text (#27569) - 1cc358ae extmarks: restore old position before revalidating - 0818d655 extmarks: skip virt_text if it is out of window (#25658) - 19d63563 extmarks: splice earlier when opening new line (#28108) - 362df0f7 extmarks: wrong display when changing text with virt_lines (#24879) - d5a85d73 f_wait: flush UI before blocking (#25962) - 81f67b79 file_search: path with spaces in finddir() and findfile() (#25493) - a69c7206 fileio: fix off-by-one in rename_with_tmp (#27780) - c6c21db8 filetype: add typing and dry (#24573) - 020d1f62 filetype: call on_detect before setting buffer filetype - fdf5013e filetype: correctly detect bash-fc-{id} files as "sh" - d6f406db filetype: don't use fnamemodify() with :e for extension (#27976) - 670c7609 filetype: make sure buffer is valid before call nvim_buf_call (#24922) - af38b46a filetype: return on_detect function when matching by file contents - 2955c921 filetype: use unexpanded file name (#27931) - e32af31e flake: clang-tools moved to nativeBuildInputs (#26955) - fd08fd3d float: add fixd option - 88447012 float: allow floating window in cmdline area - 9ecb43b6 float: apply 'winblend' to title/footer highlight (#25999) - 898371fc float: don't relative flaot win itself - fcdfbb43 float: fix some other crashes with :unhide or :all (#25328) - 3ea124a8 float: improve error message when reconfig failed (#25076) - c5abf487 float: make "fixed" work with relative=win (#25243) - 03e8b5fc float: make bufpos work properly with resized parent grid - 437ed3ce float: trigger winnew event when float window create - f5953edb float: update position of anchored windows first (#25133) - 9de157bc float: win_get_bordertext_col returning negative column number (#25752) - 5f18dd30 float: wrong position when bufpos is set - 0e01e815 folds: allow overlay virtual text on folded line (#23892) - ee986ee0 folds: combined Folded and Visual highlights (#23752) - ded01a81 folds: don't show search or match highlighting on fold (#24084) - 811140e2 folds: fix missing virt_lines above when fold is hidden (#24274) - 678548a2 folds: show Folded highlight in Visual selection (#23741) - 58f94861 folds: update folds in Insert mode with fdm=indent (#24402) - 38e38d1b fs: allow backslash characters in unix paths - 8a7e3353 fs: make `normalize()` work with '/' path (#24047) - ae5095ca fs: use generics for better typing - e4da418b fs.lua: normalize slash truncation (#23753) - 06fcf71b fswatch: --latency is locale dependent - 502a7a05 ftplugin: respect runtimepath ordering - 03a2c5b7 ftplugin: source Lua files after Vimscript files per directory (#23801) - be5cf338 gen_help_html: type warnings, spell_ignore_files #27254 - 6c35fb42 gen_lsp.lua: improve type name, and fix wrong type inheritance - 214b1251 gen_lsp.lua: no notifications in lsp.Methods #24530 - 765729a1 gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds - ccf32817 gen_vimfn_types: don't include tag before signature's line (#24492) - 86c9d8b5 gen_vimvim: correctly add aliases to vimAutoEvent (#23429) - 240c41e1 genvimvim: add special abbreviations of :delete (#23172) - 51ea7537 genvimvim: generate prefixed boolean options properly (#27487) - 9f32deba grid: add start column when getting char on line (#25627) - 4ed1c2a8 grid: don't draw beyond max column (#26172) - 9c202b93 grid: handle clearing half a double-width char (#27023) - 6a486c44 gx: move to to _init_default_mappings #24420 - 67b2ed10 gx: visual selection, expand env vars - e39b6d0c health: "attempt to concatenate nil" - 7ffe4501 health: check for _host_prog variables properly (#23014) - 50cd5ed3 health: check more "old" files - f6dcc464 health: check unmatching python_glob as empty table (#28215) - 6818ba27 health: clients may not support watchfiles #28710 - 03a021f3 health: combine python and virtualenv healthchecks (#23004) - c67efe3a health: correctly expand and resolve PYENV_ROOT (#26953) - 88eb0ad1 health: fix tmux RGB capability detection (#26886) - cde4892b health: fix typo in function name - 63a17322 health: improve python executable check error handling (#26954) - ba88fd88 health: malformed call to warn() #26217 - 8c6f97be health: properly use the value of $PYENV_VERSION (#23109) - c8ebb04e health: replace healthFoo with DiagnosticFoo (#23475) - 843c1bed health: stop job properly on timeout (#23877) - 96d0c709 healthcheck: expand vimrc variable (#28379) - 4229bbe5 helptags: make multibyte help tags work properly (#23975) - 7b6d041b heredoc: allow missing end marker for scripts - a2f17e97 highlight: add `FloatFooter` to 'highlight_defs.h' (#25577) - 837f2680 highlight: add `Nvim{Light,Dark}Gray{1,2,3,4}` colors - 8afb3a49 highlight: add create param in nvim_get_hl - f8ea49cf highlight: add force in nvim_set_hl - 4ce0ada0 highlight: add missing g: prefix for colors_name (#22952) - 03ca36d1 highlight: apply 'winblend' to NormalNC (#23555) - 6c3e170e highlight: apply 'winblend' to float border (#25981) - d4872377 highlight: attr set all when normal attr changed - dcaf2073 highlight: combine ColorColumn with low-priority CursorLine (#23017) - 66925f14 highlight: consistently spell "Goldenrod" - 51836517 highlight: correct hi command output - ca7dd33f highlight: don't show CursorColumn on current line (#27848) - 59289fb9 highlight: make CurSearch work properly with 'winhl' (#24448) - b11a8c1b highlight: remove unnecessary assignment to char_attr for 'spell' (#23713) - 9a2c9808 highlight: update `IncSearch` to link to `CurSearch` - ab925757 highlight: winhl receive wrong argument - b60a2ab4 inccommand: block errors when parsing command line again (#24374) - bc5b0da8 inccommand: don't crash with "split" and 'n' flag - 382ea4d4 inccommand: don't preview in Ex mode (#26587) - c1c2a1b5 inccommand: don't save information of a buffer twice (#24501) - ef44e597 inccommand: don't set an invalid 'undolevels' value (#24575) - ba9f86a9 inccommand: improve preview buffer number handling (#27087) - 643bea31 inccommand: restrict cmdpreview undo calls (#24289) - 1dba570e inccommand: save and restore '[ and '] marks (#26442) - 35ffe58e inccommand: update topline after moving cursor (#27341) - a14c7809 input: set termkey buffer size to read stream capacity - b61575ba intro: clear intro if new buffer is shown in focused float - 9530a230 intro: link showing intro to state at start - 0570a19c intro: make intro explicitly stateful - d1a30221 intro: redrawing intro exposing pseudo-randomness - 21360523 intro: still show intro message with floating window - 6b961224 iter: add tag to packed table - 2ee8ace2 iter: make pipeline termination conditions consistent (#24614) - 94894068 iter: remove special case totable for map-like tables - 57ccd824 job-control: fix use after free (#25223) - 1c71c32b job-control: make jobwait() flush UI after hiding cursor (#25927) - e057b38e json: allow objects with empty keys #25564 - af6537bc jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461 - 017ff93b keycodes: recognize <t_xx> as a key (#24700) - 6709f7f8 keycodes: simplify S- properly when D- is present (#27316) - 4447cefa l10n: update Japanese translations (#27856) - 7d17ab5b l10n: update Ukrainian translations (#26819) - 908843df languagetree: apply `resolve_lang` to `metadata['injection.language']` - e353c869 languagetree: don't treat unparsed nodes as occupying full range - 6b5f4481 languagetree: remove double recursion in LanguageTree:parse - f5530bf5 linematch: initialize array - 766f4978 lint: lint warnings #24226 - 5465adcb lint: use tbl_contains - 0804034c loader: cache path ambiguity #24491 - 89135cff loader: remove cyclic dependency on vim.fs (when --luamod-dev) - 66c66d8d loader: reset hashes when running the loader - ec80e4cb log: increase size of buffer for nvim instance name - 4d0f4c3d lsp: E403 if doc contains multiple codeblocks #24458 - 20c33191 lsp: SignatureHelp docstring is not escaped #16702 - 01691c54 lsp: abort callHierarchy on no result (#28102) - 9abced6a lsp: account for border height in max floating popup height (#25539) - 3e016fa8 lsp: actually send diagnostic-tags back to the server - 37d8e504 lsp: add "silent" option to vim.lsp.start (#28478) - 2e1f5055 lsp: add assertion for explicit bufnr in apply_text_edits (#27614) - 542c910a lsp: add missing LSP semantic token highlight links - be5e3611 lsp: add param assert in client_is_stopped (#23857) - ac0e8323 lsp: add parentheses to generated union array types (#27560) - 0fcbda59 lsp: add snippet regression test (#27618) - e42fdaad lsp: add spacing for inlay hints separately #24079 - 48bcc7b9 lsp: advertise workspace.didChangeConfiguration capability (#26028) - c07dceba lsp: allow Lua pattern chars in code action filter (#24041) - 3bf887f6 lsp: always return boolean in lsp.buf_client_attach (#24077) - 966eb8e0 lsp: announce publishDiagnostics.dataSupport (#24442) - 39fc3402 lsp: avoid assertion when `client_hints` do not exist (#28461) - 47dbda97 lsp: buffer messages until connected to server (#28507) - adbe7f36 lsp: call `on_list()` even for single location (#25830) - 15983cf2 lsp: cancel session when leaving snippet region (#25762) - 816b56f8 lsp: cancel watchers when closing a client - 9b8a0755 lsp: change `silent` in lsp.start.Opts to optional (#28524) - d3e03525 lsp: check if inlay hints are enabled for a buffer before disabling (#24074) - fa9a85ae lsp: clean up duplicate and unused meta type annotations - 8bd6f7c2 lsp: clear codelens on LspDetach (#24903) - 97c0a524 lsp: correct deprecation message #28403 - aa62898a lsp: correct the error message's cmd on spawning (#27632) - 77a9f339 lsp: create codelens request parameters for each buffer (#27699) - 9281edb3 lsp: create per client params in lsp.buf.code_action - 39cc38a8 lsp: defer writing error msgs (#27688) - 1b679ac1 lsp: define LspInlayHint highlight group #24073 - dc8c086c lsp: directly rename the existing buffers when renaming (#27690) - c1a95d96 lsp: disable didChangeWatchedFiles on Linux - 2fde6295 lsp: display initialization errors (#25409) - 94127cb5 lsp: do not add extra indentation - cc87dda3 lsp: do not assume client capability exists in watchfiles check (#24550) - 0fe0cf5a lsp: do not cancel snippet when selecting placeholder (#25835) - 073035a0 lsp: don't register didChangeWatchedFiles when capability not set (#23689) - 5eee633c lsp: don't start additional client if attach failed (#28744) - 21fa19f3 lsp: don't use hl_mode = combine for inlay hints #24276 - 96b94f8d lsp: duplicate on_detach, on_reload callbacks #24067 - b95b6ed9 lsp: empty commands should not be considered executable (#28216) - c3c673cd lsp: enable() does not activate inlay hints on open buffers #28629 - b2c26a87 lsp: ensure buffer is not attached more than once - fa0a25dc lsp: error in reset_timer on second detach #24117 - 72e64a1a lsp: extra "." when completing with tsserver #24646 - 031088fc lsp: filetype matching to documentSelector in dynamic capabilities (#25425) - d191bdf9 lsp: fix attempt to call non existent function (#24212) - dd3fa645 lsp: fix dynamic registration of code actions (#23826) - ce4ea638 lsp: fix incorrect typing and doc for `vim.lsp.rpc` - f487e5af lsp: fix infinite loop on vim.lsp.tagfunc - 74bd4aba lsp: fix multi client handling workspace_folder methods (#18839) - 5e5f5174 lsp: fix off-by-one error for omnifunc word boundary - ba6761ea lsp: fix omnicomplete in middle of the line (#25787) - 075a72d5 lsp: fix relative patterns for `workspace/didChangeWatchedFiles` (#23548) - 840e1864 lsp: handle NUL bytes in popup text (#25612) - 345bd91d lsp: handle absence of a trailing newline #25194 - 0e9a3357 lsp: handle adjacent snippet tabstops - 853f647d lsp: handle reverse lookup in capabilities - 91f67fab lsp: handle stale bufnr on LspRequest autocmd trigger (#24013) - 849d82b8 lsp: handle stale bufnr on LspRequest autocmd trigger (#27981) - 2eecb1b8 lsp: highlight active parameter in signature help #25663 - e55e80d5 lsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469 - 7968322e lsp: inlay_hint nil reference error #24202 - ba8f19eb lsp: lint warnings, default offset_encoding #24046 - 33044499 lsp: log unknown diagnostic tags instead of showing a warning (#25705) - 251ca45a lsp: markdown code fence should allow space before info string #24364 - add7e106 lsp: noisy warning about offset_encodings #24441 - c235959f lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535) - 1dacf2ec lsp: prevent code-lens refresh from becoming a permanent no-op (#28228) - 597ecf75 lsp: re-add client.commands and mark private - 94a904b4 lsp: reapplying already-applied hints #24114 - 4ecc71f6 lsp: reduce diagnostics and add more types (#23948) - bc7f8620 lsp: redundant vim.snippet.jumpable #28560 - ee156ca6 lsp: refactor escaping snippet text (#25611) - 2ecba65b lsp: remove unknown LSP protocol property (#24345) - 7311958e lsp: remove unnecessary file load/write when renaming (#27621) - e14e7509 lsp: rename LspProgress data.result => data.params #28632 - f0e61e6d lsp: rename fails on missing parent directory #27291 - b413f5d0 lsp: rename undofile when renaming (#27684) - d09957e0 lsp: rename: load and list new buffer if attached to window (#27408) - 7668f89d lsp: replace @private with @nodoc for public client functions (#24415) - 52823616 lsp: replace bug-prone ternary operation #28627 - 5282d329 lsp: restore marks after apply_text_edits() #14630 - cf5f1492 lsp: revert change to buf.clear_references() #24238 - 917172dd lsp: semantic token defer loading - 3be2536c lsp: send back diagnostic tags to the server - a37d5680 lsp: send empty "added" list when removing workspace folder #24440 - 3c6d971e lsp: set extra info only when it has a value (#23868) - 5785c32f lsp: set fallback client name properly - 370232db lsp: track snippet deletion - ca26ec34 lsp: use only utf-16 in default client positionEncodings (#23903) - b302da9a lsp: use percentage format on lsp.status (#23971) - 2c8f36a3 lsp: use plain loop for non-list-like table of protocol values - 8addd275 lsp: when renaming directory, check path prefix of buffer names (#27603) - 597355de lsp: wrong iterator in registerCapability handler (#24971) - b2d471ab lua: allow nil values in serialized Lua arrays (#26329) - 68f12e7f lua: annotate that TSNode functions can return nil (#24621) - 4ffc20c9 lua: avoid internal error when :luado deletes lines (#27262) - 31980382 lua: correct return value for on_key with no arguments (#25911) - 84bbe4b0 lua: disallow vim.wait() in fast contexts - 22eb2ba1 lua: do not schedule events if Nvim is exiting - 7d279a09 lua: handle array with holes in luaeval() (#26630) - c43c745a lua: improve annotations for stricter luals diagnostics (#24609) - 2f779b94 lua: inspect_pos respect bufnr when get syntax info (#23098) - e2e63bd0 lua: make highlight.on_yank use win-local highlight (#27349) - b40170f7 lua: memory leak when using invalid syntax with exists() (#26530) - 4ab9c5fa lua: not using global value in vim.opt_global (#25196) - 20ec4c77 lua: only disable vim.schedule() when closing main loop (#26090) - f150b624 lua: only free luarefs when returning from API (#28373) - 01907717 lua: remove uri fragment from file paths (#27647) - 5aa14e12 lua: return after assert returns assert message (#27064) - 5331d577 lua: show error message when failing to set variable (#25321) - 1294e221 lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate - 37c58226 lua: vim.fs typing (#24608) - 5db076c7 lua: vim.region on linewise selection #25467 - 622b1ae3 lua: vim.split may trim inner empty items - a7df0415 lua2dox: filter out the entire `---@alias` block - 32e69bd3 luarc.json: ignore test directory to save memory - 6f936c9d man: make :Man with a range work (#25922) - 59aadf33 man: pass modifiers also to :tag (#27878) - a9b4dc96 man: set the nested flag for the BufReadCmd autocommand (#26285) - c8d1d8b2 man.lua: don't continue on command error (#23009) - a4c4b39d man.lua: hardwrapped manpage is not resized #25646 - 209ed16f man.lua: return support of all sections - 3a7c30dc man.vim: q quits after jump to different tag in MANPAGER modified (#28495) - 3c667d3e mappings: fix mapset() not replacing map with backslash (#26719) - 0451391e mark: properly init mark views (#22996) - d432bba4 marks: handle switching buffer properly (#25763) - 62306a29 marktree: correct qsort usage - 58554962 marktree: off-by-one error in `marktree_move` - 34be915f marktree: preserve ordering in `marktree_move` - b97d5038 marktree: some marks counted twice when checking for overlap - ad5a155b mbyte: fix bugs in utf_cp_*_off() functions - b0282339 memline: more curbuf stuff - 91ef26de messages: :map output with ext_messages (#26126) - eabf9de1 messages: allow more prompt in headless mode with UI (#27905) - 60fb8a6a messages: avoid crash with :intro and ch=0 (#28343) - 61a0aa6c messages: avoid passing negative length to strnlen() (#28753) - ca258db1 messages: clear new lines when increasing 'cmdheight' (#27421) - c9f47fca messages: ensure msg_grid is at top at more prompt (#23584) - 2f17ef1f messages: use "Vimscript" instead of "VimL" #24111 - 55dbf5c3 messages: validate msg_grid before using msg_grid_pos (#26189) - 4db77017 meta: add nil return types to lpeg functions - 5198a255 meta: cleanup lpeg operators - dae6770b meta: include vim.json - d31f7648 mkspell: prevent Unicode character overflow (#23760) - a8a93e51 mouse: avoid dragging after click label popupmenu callback (#26187) - 6a2a37b1 mouse: avoid dragging when clicking next to popupmenu (#26201) - 091eb4c8 mouse: click after eol with conceal and virtual text (#27897) - 2b475cb5 mouse: click on 'statuscolumn' with 'rightleft' (#25090) - e25cf47a mouse: click on empty line with 'foldcolumn' - 84a43195 mouse: cmdline click registered as statuscolumn (#23163) - bf52fb71 mouse: copy the line before syntax matching (#24320) - 5fb4c397 mouse: drag vsep of window with 'statuscolumn' (#24462) - dc394b96 mouse: fix popup menu position check with winbar (#23456) - 7c1921e9 mouse: fix popup_setpos position check with ext_multigrid (#23436) - a3fba5ca mouse: handle folded lines with virt_lines attached to line above (#23912) - 64aa0f7d move: check for filler lines properly (#28307) - 366d0c78 move: check the correct buffer (#25698) - 780509ae move: fix using the wrong window (#28312) - 60d1e3e4 msgpack: store grid line event as a value - c52dfb6e normal: don't check conceal when pressing 'r' (#27892) - 088cdf69 normal: make "g$" work properly with resized grid - a1ded1b1 oldtest: always use a 64-bit int for swapfile block number - 92c59c39 ops.c: remove duplicate u_save_cursor() - 9d01385c options: `'modified'` showing incorrect value for scratch buffers - c3e176f6 options: correct condition for calling did_set_option() (#25026) - 9af03bcd options: do not change inccommand during preview (#25462) - 796df966 options: don't update curswant for 'winhl' or 'winbl' (#27515) - d956bc63 options: setting 'scroll' with resized grid (#26628) - c8a27bae options: use a union for def_val (#27169) - 804c828e optionstr.c: incorrect use of curbuf/curwin - a9df0c5c osc52: do not use 'vim.iter' (#27218) - 5d75d9ae osc52: enable OSC 52 by default in tmux sessions (#26072) - 86c2213b osc52: use `p` for primary selection instead of `s` (#26076) - 10456590 osc52: use nvim_chan_send() to stderr for copying (#26690) - e3bd04f2 pager: handle consecutive newlines properly (#27913) - 1e7e9ee9 path: accept special characters on Windows (#25424) - f064e72b path: check return value of append_path() (#28309) - f5eabaa9 path: restore space separation in 'path' (#25571) - 908f247c plines: count 'showbreak' for virtual text at eol - a0cbf1d8 plines: cursor position with 'showbreak' and resized grid (#28067) - 317038e7 plines: don't return very large height on very long line (#24260) - 7955c906 plines: folded lines with virt_lines attached to line above - 35c3275b plines: handle inline virtual text after last char (#24241) - cbadb39d plines.c: initialize cts_max_head_vcol (#24855) - fc149287 printf: make positional %zd and %zu work (#24722) - d0b3c872 process: avoid potential data race on exit (#27769) - 3e569d44 process: close handles and timer in pty_process_close() (#27760) - 268066e0 process: start pty process eof timer on main thread (#27625) - 49983387 prompt: emit change event for prompt newline (#28260) - 7bd6bd1e provider: cannot detect python3.12 #25316 - 61ecb3e1 provider/pythonx: import the correct module (#25342) - 540941ef pum: don't position too far with resized parent grid (#23442) - f186224d pum: fix missing rightmost column with 'rightleft' (#23445) - 8bc973c6 pum: fix missing scrollbar with 'rightleft' (#23448) - a7550a20 pum: handle right-click menu repositioning with multigrid (#26975) - fbaa2787 pum: make :popup position correctly with float border - a3dfe1bc pum: position properly with ext_multigrid (#23336) - c1331a65 pum: show right-click menu above cmdline area (#23298) - dd0e77d4 query_error: multiline bug - 5ac2e47a redo: make redo of Lua mappings in op-pending mode work (#23566) - 60f69014 redraw: multibyte characters are wrapped at the end of a line (#23696) - cb34d0dd redraw: overwrite double-width char with virt_text properly (#23708) - d184933c redraw: update Visual selection properly with splits (#27343) - 54044e6d release.sh: ze version is too big - cce94605 remote: make --remote-expr print to stdout (#23980) - bde59e81 remote: restore previous --remote-expr output formatting (#23988) - 468292dc rpc: "grid_line" event parsing crashes (#25581) - 4d4092ac rpc: assertion failure due to invalid msgpack input - 8921d560 rpc: do not crash when no input is consumed - c422722b rpc: fix hang with channel closed while waiting for response - adb22583 rplugin: dont create data dir if it's a broken symlink #25726 - 65dd3c11 ruler: show ruler of curwin with no statusline in cmdline - f5231d61 runtime: add commentstring for C# ftplugin (#23039) - 3387dc4a runtime: add commentstring for D ftplugin (#25362) - 615b48ac runtime: add more Nvim-only highlight groups to Vim syntax - aee6f08c runtime: do not allow breakcheck inside runtime path calculation - df297e3c runtime: don't set gx mapping if already mapped (#24262) - 9176b5e1 runtime: respect 'fileignorecase' when sourcing (#24344) - dbb840da runtime: respect 'rtp' order for all runtime files (#24335) - 70a00492 runtime: source c ftplugins in correct order (#27377) - d431a4d4 runtime: source old color scheme in bundled color schemes (#26641) - 3ab6f60d runtime: update 'vim' color scheme to use new tree-sitter groups - 67fba9af runtime/tutor: don't try to close fold when there is none (#24953) - ee56daeb shada: update deleted marks (#24936) - 517dfdf0 shada: update marks when using delmarks! (#24978) - 4d52b0cf showcmd: clear the rest properly (#28420) - fcd99052 sign: avoid deleting from sign map while looping over it (#27158) - a84b454e sign: do not error when defining sign without attributes (#26106) - a5ade3c6 snippet: correct indent with newline - 4625394a snippet: do not add extra indent on newlines (#28538) - a1bdf285 snippet: remove misleading comment about TM_FILENAME_BASE (#26465) - 8c044f08 spell: always accept ':' as filename char in 'spellfile' (#27172) - a803bff8 spell: extmark with spell=false should disable spell (#23400) - eceb2dff spell: splice extmarks on :spellrepall (#23929) - aa65bd47 startup: "nvim -l foo.lua" may not set arg0 #24161 - 628f6cce startup: don't truncate when printing with -l (#24216) - c0fa721a startup: make recovery mode work without --headless (#24477) - 8e739af0 startup: multiprocess startuptime #26790 - 8f10362c startup: only send one default_colors_set event during startup - 559c4cfd startup: run embedded Nvim with real path (#24282) - b21d9601 startup: set full_screen when in ex_mode - 9637b7da startup: stop TUI properly when quitting at swap dialog (#25337) - d7359a87 startup: trigger UIEnter for the correct channel (#25860) - 01e273c3 statuscolumn: don't update clicks if current width is 0 (#24459) - afd0c648 statuscolumn: force full redraw when signcolumn is invalid (#24859) - dc6c1139 statuscolumn: update number hl for each screen line (#25277) - a4b24008 statusline: also allow right click when 'mousemodel' is "popup*" (#23258) - 4ecf6fdf statusline: bail out properly on negative row (#23535) - 70da793c statusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823) - d7bb19e0 statusline: fill for double-width char after moving items (#24207) - 54f56020 statusline: fix uninitialized variable and possible overflow - 9f15a18f statusline: missing offset when showing 'keymap' (#27270) - 7b973c71 statusline: redraw when VIsual_mode changes (#23933) - dbc0fa9b stdpath: remove duplicate directories (#26653) - 1907abb4 stream: do not close handle if it is already closing (#26537) - 9dd48f78 substitute: properly check if preview is needed (#23809) - 9753cda5 syntax: use correct diagnostic group for checkhealth (#23538) - 400b7842 termcap: escape escapes in passthrough sequence (#26301) - e5278422 termcap: only call callback for requested capabilities (#26546) - ffeb31c2 termcap: set 'nested' on TermResponse autocommand - b7831c7f termcap: use tmux passthrough sequence when running in tmux (#26281) - e6d3f87d termdebug: handle partial lines passed to callback (#22950) - c413b42c termdebug: prompt mode breaks with &splitbelow set - 8aad4b84 termdebug: send SIGINT when interrupting prompt mode - af78060b termdebug: trim suffixed "\r" in CommOutput - 684e9305 terminal: assign channel to terminal earlier (#25771) - 82b1a389 terminal: avoid Insert mode in Terminal buffer (#25820) - 99288ecc terminal: block input when there is pending TermRequest (#27589) - f2ce31d3 terminal: call validate_cursor() before screen update (#24425) - e09adfdc terminal: check if mouse on statusline/tabline/winbar/vsep (#26892) - e1157324 terminal: check terminal size at end of screen update (#25480) - 120c4ec8 terminal: disable reflow again - c881092f terminal: don't lose focus on <MouseMove> (#25845) - 16a416cb terminal: don't pass incomplete UTF-8 sequence to libvterm (#27922) - d0d132fb terminal: don't send unknown special keys to terminal (#24378) - 74776dfb terminal: fix duplicate recording with mouse click (#28103) - 21d466c1 terminal: forward horizontal mouse scrolling (#24552) - d401b333 terminal: handle horizontal scrolling in another window (#24828) - 5e78fd77 terminal: ignore $VIM and $VIMRUNTIME in pty jobs - 0a7fda6f terminal: include modifiers when forwarding mouse (#24549) - d4c2fc6f terminal: keep focus when scrolling number column of another window (#25848) - 5ca6c9e0 terminal: make backslashes in 'shell' work on Windows - aba954b6 terminal: never propagate $COLORTERM from outer env (#26440) - b74262a3 terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418) - 0fd8eb8a terminal: set $COLORTERM unconditionally in :terminal (#24763) - fa17a5ab terminal: use terminal buffer for TermRequest autocommand (#26974) - 5999214c termkey: accept BEL (0x07) as OSC terminator - ce2f770a termkey: do not sign extend mode value - 50f5864d termkey: include IO header on Windows - 52e60594 test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905) - c5528e7f test: clean up inline virtual text tests a little - 380b634a test: fix "indeterminism" warnings in UI tests - f4c97da2 test: fix strings_spec.lua for AArch64 - 477458f7 test: more tests for marktree - d8e330bc test: remove test/compat.lua - a7bbda12 test: typing - 8861ad83 test/tui_spec: pass the expected NULL-sentinel to execl() - f859d16a tests: set SHELL=sh #24941 - 3d44340c tests: use more global highlight definitions - e9bfbe99 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
Showing
- CMakeLists.txt 2 additions, 2 deletionsCMakeLists.txt
- runtime/doc/diagnostic.txt 0 additions, 3 deletionsruntime/doc/diagnostic.txt
- runtime/doc/lsp.txt 0 additions, 9 deletionsruntime/doc/lsp.txt
- runtime/nvim.appdata.xml 1 addition, 0 deletionsruntime/nvim.appdata.xml
- test/functional/fixtures/api_level_12.mpack 0 additions, 0 deletionstest/functional/fixtures/api_level_12.mpack
Loading
Please register or sign in to comment