Skip to content
Snippets Groups Projects
Commit 27fb6298 authored by Justin M. Keyes's avatar Justin M. Keyes
Browse files

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
parent 83a32e2d
Branches
Tags v0.10.0
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment