diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2026-03-29 18:16:17 +0200 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2026-03-29 18:16:17 +0200 |
| commit | fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a (patch) | |
| tree | 0a0adbaca46b74d86cc75a1cf5af78495845d510 /scripts/lintcommit.lua | |
| parent | d9d3822a7b1bbfb3604819cece4cd664f4bc8dfd (diff) | |
| download | rneovim-fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a.tar.gz rneovim-fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a.tar.bz2 rneovim-fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a.zip | |
NVIM v0.12.0
Following is a list of commits (fixes/features only) in this release.
See `:help news` in Nvim for release notes.
BREAKING
--------------------------------------------------------------------------------
- 9acb52c8f386 diagnostic: remove deprecated diagnostic APIs (#33072)
- 79bfeecdb483 editor: insert-mode ctrl-r should work like paste #35477
- f72c13341afb lsp: pass entire entry to format function (#34166)
- fe23168e2bc1 lsp: reimplement `textDocument/codeLens` as decoration provider
- caa941935545 optwin.lua #36505
- c123b7245c43 path: support RFC3986 in path_with_url() #36564
- a57c7238f9c3 plugins: remove shellmenu #35815
- ade58885c478 provider: drop Python 3.7, 3.8 support #33088
- 59eadebe335f runtime: move "tohtml" to pack/dist/opt/ #34557
- 1d5b3b5b4c86 treesitter: apply `offset!` directive to all captures #34383
- fd1e019e90e7 treesitter: get_parser return nil on error #37276
- a728eb7af162 treesitter: remove "all" option of Query:iter_matches #33070
- 4369d7d9a780 ui: decouple ext_messages from message grid #27963
FEATURES
--------------------------------------------------------------------------------
- 78f4994627b7 ":restart +cmd [cmd]" #34788 #35045 #35223
- b40ca5a01c39 channel: support :detach, :restart on Windows #37977
- ce2742313207 ":wall ++p" creates parent dirs for each buf #36121
- f3c2eb49bab3 vim.Pos, vim.Range #36397
- 9044d64af94d has('terminfo')
- 70d797943956 render tuple types for API methods
- 5151f635ca29 serverlist({peer=true}) returns peer addresses #34806
- 7ba043f0f31c api: add "max_height" argument to nvim_win_text_height (#32835)
- e80d19142bdb api: add nvim_open_tabpage
- 6ebeb07c5614 api: experimental nvim__exec_lua_fast #35758
- 1e7406fa38ee api: nvim_cmd supports plus ("+cmd", "++opt") flags #30103
- 8b171852a925 api: nvim_echo can emit Progress messages/events #34846
- 612b2e785087 api: nvim_get_commands returns function fields #36415
- 4d04d0123d25 api: nvim_set_hl{update:boolean} #37546
- 4998b8d7b5f9 api: nvim_win_set_config accepts unchanged "noautocmd" #36463
- e2a0748cb28f api: nvim_win_set_config can move floatwin to another tabpage
- 094b297a3b33 api: nvim_win_set_config can move split to other tp as floatwin
- 88774965e5c0 api: relax contract, allow return-type void => non-void #34811
- 85d33514f999 api: set nvim_echo() kind for ext_messages (#33998)
- cf0f90fe14f5 async: add `vim._async`
- e1ffa8d33b5e build: HAVE_UNIBILIUM
- 1f004970f00b build: build.zig MVP: build and run functionaltests on linux
- dc6cf3add95a build: build.zig windows support
- e25b99c5b63c build: make build.zig run unittests
- c4501e98f2c3 build: make build.zig use luajit on main plattforms
- 8e0692cdc501 build: support full runtime distribution work
- 6d9031390cfc build.zig: add option to use system dependencies
- 5ec0c1ca07f9 build.zig: install parsers in install step
- 75fe54050081 checkhealth: emoji for OK/WARN/ERROR #33172
- 63323a9c81a8 checkhealth: trigger FileType event after showing report #33677
- 9722bd7b1b47 clipboard: g:clipboard="foo" forces the "foo" clipboard tool #33235
- 3a35fdc3471e clipboard: wayclip primary clipboard and correct mimetype (#33990)
- 6228acb74f94 cmdline: completion for :TOhtml #37045
- 3bdebfb87f11 defaults: don't enable treesitter query linter
- 41cac54325e9 defaults: exclude temp dirs from 'shada' oldfiles #37631
- 5d06eade2599 defaults: map "grt" to LSP type_definition #34642
- 06befe1e348b defaults: map "grx" to vim.lsp.codelens.run() #37689
- 249f305bbcdd defaults: per-platform 'guifont' default #37175
- d77d961b350d defaults: shelltemp=false #33012
- b10cb0296ae2 defaults: store spellfile in stdpath('data') #33048
- 4fae013a21a9 diagnostic: add `enabled` filter (#33981)
- 2f24ae8de471 diagnostic: add `format` option to `setloclist`/`setqflist` (#33977)
- c65817774d66 diagnostic: add `on_jump` callback option
- 7e09fedf43fa diagnostic: config.status #36693
- caf780859197 diagnostic: custom status format function #36696
- 01666aae64d1 diagnostic: fromqflist({merge_lines}) #37416
- 410744210386 diagnostic: highlights in diagnostic.status() #36685
- 68e316e3f910 diagnostic: jump to related info location from `open_float` #34837
- 2767eac320ef diagnostics: stack DiagnosticUnnecessary,DiagnosticDeprecated highlights #36590
- a5b8cf145d1f diff: merge adjacent blocks using inline:word (#37085)
- 45b4bbac281b difftool: replace old "nvim -d" automatically #38057
- d5cfca5b768c docs: numbered listitems
- 4dabeff30822 editor: 'autowriteall' on SIGHUP/SIGQUIT #32843
- 55a0843b7cf7 editor: :source can run Lua codeblock / ts injection #36799
- f5829957f25c env: remove VIM_VERSION_NODOT macro #34890
- 551bb63d449f events: MarkSet event, aucmd_defer() #35793
- 23bf4c0531ac exrc: search in parent directories (#33889)
- 8d397fa458a9 exrc: stop searching in parent directories by unsetting 'exrc'
- dc67ba948eec exrc: user must view and explicitly run ":trust" #35069
- bffca6e26bf3 extmark: support end_col=-1 if strict=false #28169
- 302e59f734ec extui: assign 'filetype' to extui windows (#33924)
- f2988e05db45 extui: don't enter pager for routed message #34679
- 8defe1afb2d1 extui: route to "more" window if it is open (#34190)
- 3c9484b550eb extui: show dismissed message in cmdline (#34745)
- 94677318655e extui: support paging in the dialog window (#35310)
- 7526fb449de3 extui: use winborder for msg window #34859
- 8a626e5c4a52 float: 'statusline' in floating windows #36521
- 216cc893bf1b float: 'winborder' "bold" style #33189
- dcbe5bdd9674 ftplugin: treesitter default highlighting for markdown
- c1fa3c7c377b gen_help_html: generate helptags.json, helptag.html #35442
- 322a6d305d08 glob: new Glob implementation based on Peglob #33605
- 8c63d84be157 health: check `vim.ui.open()` tool #37569
- 13ed22505410 health: create a bug report #31842
- 043f5a291a7c health: show available queries for `treesitter` (#37005)
- 5a94edad70f9 health: summary in section heading #33388
- 47b0a718c3d9 help: gx opens help tag in web browser #35778
- 16f7440cc7b5 help: super K (":help!") guesses tag at cursor #36205
- cb8c9186e6ff highlight: support more SGR attributes #37901
- 0aabe7ae7680 inspect: update to a8ca312
- 8a0cbf04d6a6 iter: peek(), skip(predicate) for non-list iterators #37604
- 448f15ca396a json: pretty-format (indent) with vim.json.encode() #35424
- a897cc17a5ee json: vim.json.encode() sort_keys #35574
- abfe6c9ef7f4 logging: rename ".nvimlog" => "nvim.log" #37935
- 4eed85f9bd0e logs: show full paths in lsp logs (#33886)
- 7486c2f6aa6d lsp: <Plug> mapping for signature help cycling #34039
- 903335a6d50b lsp: `Client:stop()` defaults to `exit_timeout` #36783
- 6577d72d819d lsp: `root_markers` can control priority #33485
- d6a6eed4f3bc lsp: attach to buftype=help buffers #38412
- 63abb1a88f2c lsp: builtin :lsp command
- 7c9b865bdd1a lsp: deprecate `vim.lsp.stop_client` (#36459)
- b877aa34cf36 lsp: detach LSP clients when 'filetype' changes #33707
- 371aa1c5663c lsp: diagnostic related documents support
- 15ff45444325 lsp: display codelens as virtual lines, not virtual text #36469
- 63594ffa04cc lsp: do completionItem/resolve if completeopt=popup #32820
- c5c6ddba91b4 lsp: document method types (#35934)
- d08b26511154 lsp: enable document_color by default #35086
- 66339e06412d lsp: generate method to client capability map
- acfb9bc614ed lsp: graduate ClientConfig `exit_timeout` #36750
- 957093da0da9 lsp: handle deprecated document symbols (#34751)
- 492ea28612b2 lsp: handle disabled code actions (#34453)
- 8876413e2dcc lsp: highlighting the symbol being renamed (#37390)
- d26db4bfbfd6 lsp: improve signature help display #35190
- f99e3a8a2a3f lsp: incremental selection via "textDocument/selectionRange" #34011
- e82aef2e22a5 lsp: incremental-selection operator-pending mode #36575
- a4b2192690d7 lsp: lsp.enable() auto-escalates forced shutdown #36458
- 4430c9a42477 lsp: migrate `document_color` to capability framework (#38344)
- e855a23c02a7 lsp: on_accept can return item to customize behavior #37092
- 729e0acd269f lsp: pass client ID in code action filter (#36046)
- 32f30c4874a0 lsp: pass resolved config to cmd() #34550
- 8ed68fda5014 lsp: semantic token range improvements #37451
- 23ddb2028bce lsp: semanticTokens/range #36705
- 3e8a4e10920d lsp: show color preview in completion items #32138
- 145548a24ae6 lsp: show snippet preview if completeopt=popup #32553
- 654303079baa lsp: skip invalid header lines #36402
- 4bc7bac88425 lsp: start/stop LSPs as necessary during vim.lsp.enable() #33702
- d75ffa59344b lsp: static registration support (#34371)
- cc518cf9bab0 lsp: support CompletionItem.labelDetails #38403
- 8f5bd569c541 lsp: support `documentColor` dynamic registration #33800
- 4745270bf124 lsp: support `textDocument/colorPresentation` (#34823)
- 9ff12396347b lsp: support `textDocument/documentColor`
- 05bd4398c507 lsp: support `textDocument/documentLink` (#37644)
- 0e70aa0e8687 lsp: support `textDocument/inlineCompletion`
- 77e3efecee4e lsp: support `textDocument/onTypeFormatting` (#34637)
- 03d6cf7aae4a lsp: support `version` in `textDocument/publishDiagnostics` #36754
- 965468fca1e7 lsp: support `workspace/codeLens/refresh`
- 835f11595fb0 lsp: support annotated text edits (#34508)
- 02cd56489650 lsp: support auto-force escalation in client stop (#36378)
- 02067a989207 lsp: support diagnostic refresh request
- 2031287e9329 lsp: support diagnostic related information (#34474)
- 0f3e3c87b738 lsp: support dynamic registration for diagnostics (#36841)
- c5167ffc185a lsp: support linked editing ranges #34388
- 76d213efbee8 lsp: support multiline semantic tokens #34458
- 9278f792c374 lsp: support range + full semantic token requests #37611
- 016335a7d09f lsp: support refreshing workspace diagnostics
- 7cc07e838332 lsp: support signature help noActiveParameterSupport #34838
- d7e0d46ffa8f lsp: use stricter types for methods
- c22b03c77166 lsp: user-specified sorting of lsp.completion multi-server results #36401
- e406c4efd620 lsp: vim.lsp.get_configs() #37237
- 6888f65be177 lsp: vim.lsp.inline_completion on_accept #35507
- 03d378fda68f lsp: vim.lsp.is_enabled() #33703
- 054eaf8493cb lsp: warn about unknown filetype #36910
- cb4559bc3204 lsp: workspace diagnostic support (#34262)
- 90d15227c55c lsp: workspace_required #31824
- a8edf6e4459d lsp.util: deprecate vim.lsp.util.stylize_markdown
- 98f8224c1948 lua: `vim.pos`/`vim.range`
- 0c46ea7d38dc lua: add `Iter:unique()` (#37592)
- cf9b36f3d97b lua: add vim.list.unique()
- 7499c9f9a754 lua: conversion between cursor positions
- 62b45b8fe4ce lua: conversion between extmark positions
- 9f5b309d824a lua: conversion between vim and lsp position/range
- 047a10bfde53 lua: function `behavior` for tbl_extend, tbl_deep_extend #33819
- 4d3a67cd6201 lua: replace `buffer` with `buf` in vim.keymap.set/del #38360
- 6e1745e96e3d lua: support vim.Range:has(vim.pos) #37879
- 7ed8cbd09580 lua: vim.list.bisect() #35108
- d8a88256794f lua: vim.wait() returns callback results #35588
- f68a5c40f01d messages: add "prev_cmd" argument to msg_history_show (#34779)
- fc2dee17368d messages: cleanup Lua error messages
- 0d13945bbb0e messages: drop hardcoded 'showmode' delay #38029
- 0741d2520dd7 messages: hl-StderrMsg, hl-StdoutMsg #33429
- 0ee5a4d48155 meta: vendor luv meta files
- 7cd5356a6f89 net: vim.net.request(), :edit [url] #34140
- f29b3b5d458b net: vim.net.request(outbuf) writes response to buffer #36164
- fb0dc825e9bb option: custom chars in 'winborder' #33772
- 28e31f5d3d16 options: default statusline expression #33036
- 5973328edaed options: per-buffer 'busy' status #34493
- 0412527a4078 outline: smaller indentation #34005
- 2728b4efe030 pack: add `[[` and `]]` mappings in confirmation buffer
- a9db6ec6fa12 pack: add `active` field to `PackChanged` event data
- d21b8c949ad7 pack: add built-in plugin manager `vim.pack`
- 4a637107d071 pack: add checkhealth
- 98e3a571ddf4 pack: add code actions in confirmation buffer
- d7db552394ea pack: add initial lockfile tracking
- 8c28507fcf6f pack: allow choosing update target in `update()`
- dd828690c747 pack: allow function `opts.load` in `add()`
- c9965491d01f pack: allow running `update()` without Internet connection
- acff86601efd pack: allow skip install confirmation in `add()`
- a41703d107da pack: confirm "Always" to install all plugins #35733
- c339b83a4ab9 pack: hint in confirmation buffer that plugin is not active
- dc8235c48c8b pack: prefer using revision from lockfile during install
- c522cb0e96da pack: support user-defined `data` in plugin spec #35360
- 2e533e364e2d pack: update `add()` to handle source change for installed plugin
- 069be911064d pack: use `nvim_echo{kind=progress}` to report progress #35625
- a20396153505 pack: use colored `nvim_echo` chunks to show progress report
- 7853cde29a08 pack: vim.pack.get() gets VCS info #35631
- fec02ae8e411 plugins: nvim.difftool can compare directories #35448
- 8a12a0146665 progress: better default format + history sync #35533
- 7b7e8cc72458 progress: disable cmdline progress msg via messagesopt' #36730
- 4b643d7068e8 progress: set Progress-event pattern to "source" #38495
- 24684f90eac2 progress: status api, 'statusline' integration #35428
- 286371b4d22a prompt: multiline prompt input #33371
- 8ab511bba524 prompt: plugins can update prompt during user input #37743
- a940b77cb25a prompt: prompt_appendbuf() appends to prompt buffer #37763
- 5ae41ddde350 prompt: prompt_getinput() gets current input #34491
- 5f8d4a248a97 provider: detect venv python via "pynvim-python" tool #35273
- f01419f3d563 runtime: accept predicates in take and skip (#34657)
- 8c81ed86786a runtime: revert cfilter, ccomplete to legacy Vim
- 9e1d3f487070 runtime: undotree #35627
- c9d846802030 search: increase `MAX_COUNT` to 999
- 6ba32713ada1 secure: allow 'path' parameter for trust action 'allow' (#38001)
- 71455173b482 shada: don't store jumplist if '0 in 'shada'
- 840cdb958969 shada: shada should not store nobuflisted buffers #21818
- 701258921ed1 snippet: highlight active tabstop (#35378)
- 4e1644d4d3cb spell: opt-out of confirm when downloading spellfiles #36836
- 1d40f677760d ssh: SSH configuration parser #35027
- cf874cee330d startup: provide v:argf for file arguments #35889
- 32aee065a898 startup: warn if NVIM_LOG_FILE is inaccessible #38070
- 4719b944437b statusline: option to specify stacking highlight groups #37153
- b79ff967ac91 statusline: vim.diagnostic.status() #33723
- 72a63346d866 stdlib: vim.fs.ext() returns file extension #36997
- 6b4ec2264e1d stdlib: vim.json.decode() can allow comments #37795
- eac2f0443e03 tag: respect jumpoptions=view when popping tagstack (#37021)
- a94568644489 term: increase max scrollback to 1000000
- 6bc0b8ae870c terminal: detect suspended PTY process (#37845)
- 03377b955233 terminal: include sequence terminator in TermRequest event (#37152)
- 71f3a9c5900f terminal: parse current buffer contents in nvim_open_term() (#33720)
- 2368a9edbd6c terminal: support SGR dim, overline attributes #37997
- c8693051a8b6 terminal: surface exit code via virttext + nvim_get_chan_info #37987
- b38173e49333 terminal: synchronized output (mode 2026) #38284
- 72d3a57f270f treesitter: incremental selection
- 586b1b2d9bcf tui: add nvim_ui_send (#35406)
- 981ea41abbec tui: ghostty builtin terminfo #36963
- 8eb096453788 tui: native progress bars for Progress events #35973
- de87ceb3beaa tui: support APC queries in TermResponse (#34426)
- 977e91b424f4 tui: use DA1 response to determine OSC 52 support
- abb40ecedd92 ui: "append" parameter for "msg_show" UI events
- fafc329bbd1e ui: 'pumborder' (popup menu border) #25541
- 649bb372f665 ui: :connect command #34586
- 7ba0f623d75a ui: avoid setting 'cmdheight' with vim.ui_attach()
- 2b4c1127ad1c ui: emit "msg_clear" event after clearing the screen (#34035)
- 2c1c0b7af50b ui: ext_cmdline/messages for the TUI #27855
- f29856d03444 ui: include compositor info with multigrid
- 9bbbeb60e355 ui: no delay for errors with ext_messages (#33693)
- 07d0da64ed51 ui: overlay scrollbar on 'pumborder' #36273
- a2b92a5efbb4 ui: show "empty" cursor behind unfocused floatwin #37624
- 97549ad7cf23 ui: specify whether msg_show event comes from typed command
- 8ae9a44d3841 ui: support grid=0 in nvim_input_mouse #32535
- 08c484f2ca4b ui: use builtin completion popupmenu with ext_cmdline (#31269)
- fbac2e5edc8b ui2: configure maximum window heights #38392
- 32e0d05d53f4 ui2: configure targets per message kind #38091
- 9fc985bc9868 ui2: more predictable routing #35028
- db2a54996ecf ui2: replace message by its ID #37672
- e268760e46ae ui2: show active paging keys in dialog float title #37919
- 875212c5b3b8 ui2: support routing "typed_cmd" trigger to target
- 81d2d88f70e0 undotree: set 'filetype' #36091
- 9595f074255c ux: sexy intro #38378
- 51961625402b version: support multiple Vim versions
- 361671870e14 vim-patch.sh: -M lists all ported patches
- 7fe02126f948 vim-patch.sh: add n flag to list possible N/A patches (#36431)
- 2f0fbdaa480c vim.fs: root() can specify "equal priority" #34276
- eae2d3b145c7 vim.hl: allow multiple timed highlights simultaneously #33283
- ea124068f246 vim.pack: lockfile support #35827
- 773075b2bce8 vim.version: add `vim.version.intersect()`
- aeb8bca12ddf vim.version: make `tostring()` return human-readable version range
- e42050f4aed5 vimscript: log function name in "fast" message #32616
- 6edae880528b vimscript: scripts can detect 'android', 'termux' #38218
FIXES
--------------------------------------------------------------------------------
- b233f71b1bd6 :ball w_locked check, reset b_nwindows in free_all_mem() #38484
- f2e60d000ed3 `fn.exists()` typos (#34390)
- 379c37fa0b1b bug in stylize_markdown
- 2c9d21f722f9 cursor shape don't resume after `:append`
- 7fdf9f739923 define `vim.mpack`
- bc4bddbb214f don't use logical diagnostic position in `get_prev` and `get_next` #35282
- 3567b7d75175 ignore Nvim local config #37805
- fd45bc8caba2 lsp.enable() don't work correctly inside FileType event #37538
- 0694ca8822b5 map wincmd instead of remap #34635
- eeba0dc2ed4e memory leak from double buffer initialization in read_stdin #35413
- dfa5d79d05d8 misc typos #37471
- cd4c98fded94 nvim_open_tabpage cleanup, fixes, more tests
- 874e2149931f remove exec permission from .gitattributes #33140
- bcc9242bc75e remove quotes around `nil` deprecation alternatives (#36047)
- 7b99e1f0c307 remove typo from buffer-local LSP docs (#35841)
- e991133058f2 remove unnecessary `nvim -l` from `gen` command #33676
- 92b2a2677239 resolve all remaining LuaLS warnings in `src/`
- 431004dda2bb screenchar()/screenstring() with hidden floating windows #35560
- 1999c4cdc11c screenchar()/screenstring() with multigrid #32494
- 9204b7541d27 silence LuaLS's `no-unknown` warnings in `src/`
- 020d5e0f7e7f stale lines("w$") after nvim_win_set_height when splitkeep=screen #36056
- 2e68e9c051dc temporarily disable 0.12 deprecation tests
- 3b6084ddf4f0 type fixes
- 38aac21083a5 type of nvim_echo
- d21e2463fd98 update deps hash for zig 0.14.0
- fa8e4e65caeb update lua types for commands
- 9170178ee5af use correct window dimension for range estimation
- 62ba6e8a76f3 use nvim namespace convention #34010
- 28157738e3de vim.lsp.omnifunc should not throw away other items #35346
- 71a22e20ad15 vim.ui_attach handles messages during `-l`/`--headless` #36884
- 9c5ade9212d8 wait() checks condition twice on each interval (#37837)
- 9287c73df9f5 :connect: don't use freed memory (#38512)
- 7cd22e916bbb :connect: formalize connect event #38543
- 49d7f694a850 :ls: check for finished terminal properly (#37303)
- 6af1b7e5e8da :print: don't use schar_from_ascii() for illegal byte (#34046)
- 5cfbc35aa838 api: add missing nargs field to user command Lua callbacks #34210
- eeacd7bd718a api: adjust fix for reconfiguring float "relative" (#34287)
- 3cb462a9608f api: autocmds mess up nvim_get_option_value's dummy buffer
- 612cd99a0017 api: buffer overflow in nvim_buf_get_extmarks overlap #37184
- 006361fc6b98 api: buffer updates in quickfix buffer #31105
- 76d0206342a2 api: count parameter in nvim_parse_cmd, nvim_cmd #34253
- c553008e74e5 api: crash when moving curwin to other tabpage #35679
- b7070778b98a api: cterm type in highlight keyset #37802
- 853eea859fd3 api: disallow moving window between tabpages in more cases
- 0bef1c88f362 api: do not allow opening float to closing buffer
- ef084b5c225c api: don't config split as floatwin relative to itself
- 4362132b101a api: don't re-apply minimal style if unchanged #38152
- 3165e94a64b0 api: ensure win_get_config() "border" is reciprocal (#34322)
- c7c3f9fc9c3a api: fix crash in command preview with % #35228
- 7b9512e613e1 api: fix not capturing output in cmdline mode (#35322)
- d788864cdea7 api: ignore split_disallowed when opening a float
- 3115e3d0d11e api: improve external window validation
- d707ccf98808 api: inconsistent scrolling when deleting before topline (#36301)
- 137d5ab01dfa api: merge split window config only on success
- 22df6492101f api: nvim_create_user_command addr option should allow ranges #35077
- 6f12663de56b api: nvim_get_option_value FileType autocmd handling #37414
- 7e2e11634369 api: nvim_get_option_value dummy buffer crashes
- 0c1ed63c05fe api: nvim_open_tabpage "after" like :[count]tab
- 97b064c9ac84 api: nvim_open_tabpage positional "enter"
- d7472c061759 api: nvim_open_win default to half-size for splits (#36088)
- 19f5f05ac2b9 api: nvim_open_win respects requested split window size (#35601)
- 652c3e76c712 api: nvim_parse_cmd "range" when ea.addr_count=0 #33536
- 72b0bfa1fb7e api: nvim_parse_cmd handle nextcmd for commands without EX_TRLBAR (#36055)
- f3ec657ebc02 api: nvim_parse_cmd on range-only, modifier-only commands #36665
- c7f38e3bc8fb api: nvim_parse_cmd parses :map incorrectly #34068
- 63cbc95d4517 api: nvim_set_current_win doesn't reset Visual mode (#37340)
- 9383a096eb7e api: nvim_set_hl boolean false corrupts underline styles (#38504)
- d19dc6339de7 api: nvim_set_hl crashes when url= key is passed
- ec18ebcb417b api: nvim_set_keymap() throws error even in pcall() #33228
- 7da4d6abe249 api: on_bytes gets stale data on :substitute #36487
- 2211953266f7 api: on_detach consistently before buf_freeall autocmds
- a2b97209395e api: open_win leak from naughty autocommands
- 5226801be264 api: parse_expression crash with ident and curly
- a5e5ec8910ea api: parse_expression crash with unopened ] and node
- d523750de0b3 api: populate lhsrawalt in nvim_get_keymap response
- 88dc44260f83 api: preserve WinConfig style when converting float to split #37264
- 963308439a5d api: reconfiguring float "relative" does not clear "win" (#34271)
- e13e85051751 api: redraw after setting minimal style
- 7be4ae796faa api: relax config validation for "win"
- 1901832f26fa api: return "style" in nvim_win_get_config() #38122
- 15d57ab0ba5e api: single-line visual block insert triggers extra on_lines #35098
- f5d03ec93089 api: style=minimal not applied immediately for unmoved split
- 0ee8323f2b5c api: unnecessary errors when not moving split
- af82f36108ce api: update topline when flushing with nvim__redraw() (#34346)
- 99529577cc9f api: use E226 instead of E227 for duplicate abbreviation (#33159)
- 0d73ec583465 api: use original LHS in keymap error message #33135
- 680d25e5b3c1 api: use standard error messages
- 1ec74fa7b1ba api: win_config `border` type #38030
- c924c2a7b316 api: win_config_float_tp grid removal, redraw
- da39966a3a0a api: win_set_config error message for splitting from a float #35650
- 65170e8dad90 api: wrong return value with reverse range + overlap #32956
- 285c04e2d0e3 api,lsp: call on_detach before wiping out the buffer #35355
- acecdbff1f57 api,lua: handle converting NULL funcref/partial (#37060)
- 4daa8eb5abca appimage: wrong $ARCH used by linuxdeploy #36712
- 5871d2677909 autocmd: 'cmdheight' OptionSet with valid window grids (#34619)
- 19379d125555 autocmd: deferred TermResponse lacks "data", may not fire (#37778)
- 05a83265f9a4 autocmd: fire TabClosed after freeing tab page
- f36dd7557a98 autocmd: heap UAF with :bwipe in Syntax autocmd
- 6d2330f50d07 autocmd: parsing of comma-separated buflocal patterns
- d945a93d69c9 autocmd: potential TabClosed UAF, always set abuf
- 1cde71233fcf autocmd: skip empty comma-separated patterns properly
- f9ef1a4cab74 buffer: defer w_buffer clearing to prevent dict watcher crash #36748
- 14d65dae91b1 buffer: don't allow changedtick watcher to delete buffer (#36764)
- 23aa4853b3fd buffer: don't reuse 1-line terminal buffer (#37261)
- 2700f6642aef buffer: switching buffer should respect jumpoptions+=view (#36969)
- fa24df32641c bufwrite.c: handle invalid byte sequences #37363
- c26f989b2fe1 build: also check os_win sources with uncrustify in CI
- 8069df266150 build: build.zig: use luajit for windows
- 576e8f62c262 build: disable problematic marktree assert in RelWithDebInfo builds
- 88b45614e945 build: gen_help_html fails #36359
- f0d981544b38 build: glibc 2.43 happened
- e69beb9b1aba build: invalid help tags cause reports to fail #36356
- 3268f51d202f build: musl libc build.zig
- f98b5ee61921 build: remove .tar.gz workaround for bug fixed in zig 0.15.2
- a2b0be19bf8f build: remove deprecated aliases in build.zig removed for zig 0.15
- b4db223d33e7 build: treesitter parsers are not ReleaseSafe
- 921f8b0df728 build: use correct cmake expression for $<CONFIG>
- ec8a0c73402b build: workaround errors in zig build due to stale cache
- 6741c134e17f build: zig build can has git version
- 41bc3020c46f build.zig: format build.zig to keep lines under 100 chars
- 565cfa04eb00 build.zig: replace slashes in filepaths #37111
- 64ce5382bd53 channel: crash on failed sockconnect() (#37811)
- 886efcb8535e channel: possible hang after connecting with TCP times out (#37813)
- 4399250e9063 channel: unreference list after callback finishes (#37358)
- 5f9f5bc04d0b checkhealth: check g:loaded_xx_provider for all providers #33168
- e87d2ae3836c checkhealth: check outdated pynvim version properly #33175
- 78d2e0b43e7a checkhealth: don't override user "q" keymap #33132
- 16fbde83c46f checkhealth: don't wrap command in cmd.exe (#38158)
- bd45e2be634b checkhealth: wrong ABI version for treesitter parsers #35327
- ad22d0ace996 cjson: fix `strbuf_set_length` incorrectness #35565
- f5cbf1164421 client: avoid :connect race with server detach
- 2483d5ad8af7 clint.py: replace deprecated codecs.open #36593
- 41199c45d6bb clipboard: avoid using stale register width (#36178)
- 95dfb063daa7 clipboard: correct blockwise register width computation (#35038)
- ac12dc49cc35 clipboard: enable cache for function providers #34470
- 310d01d8faa5 clipboard: tmux clipboard data may be stale #36787
- d00f680c0d2c clipboard: use tmux only in a tmux session #36407
- 8aacce90b4b6 cmake: linker flags, doc generation for cross-compilation #38215
- 9763834170dd cmake: use host nlua0 binary when cross-compiling #38089
- 69cae6259e91 cmd: :update does not write new, unmodified buffer #35929
- fcf752476a33 cmd: :update writes new file buffers only for real files #35939
- a5c55d200b18 cmd: bar "|" not allowed after :fclose #34613
- 5de2ec76a3b0 cmdline: :checkhealth completion with multiple args (#35060)
- f4ee0ab2f1a1 cmdline: avoid empty @: register after :<CR> (#33126)
- fde1c07891e0 cmdline: cmdline_block events for :lua debug.debug() #38171
- 0015a105ca7c cmdline: do not move UI cursor when entering cmdline #33729
- 236d831d77d6 cmdline: don't treat c_CTRL-D as wildmenu (#36067)
- 95ab723995f1 cmdline: empty ext_cmdline block events for :<CR> #33118
- 7f2298ad32a6 cmdline: fix inconsistent behavior with ext_popupmenu (#35688)
- 677446c70f8c cmdline: make sure pum is removed on leave (#36608)
- dc05598d0201 cmdline: set search cursor after ui_flush() (#34418)
- 5977bdba0566 cmdline: trigger CmdlineChanged after command preview (#35254)
- efd0fa55c8b1 cmdline: validate 'incsearch' cursor for "cmdline_show" redraw (#34630)
- 28ff4deda7a0 colorscheme: adjust `StatusLine[NC]` for diagnostics #36719
- 4a706a709282 column: don't count signs on lines beyond eob #33410
- b40e658717b3 column: missing redraw with virt_lines_leftcol (#34650)
- 8f78591f9ac0 column: wrong alignment and highlight with empty 'display' (#35495)
- 69419f8b3e76 completion: CompleteDone reason="discard" when candidate text remains #38169
- 51caf0a3af59 completion: avoid freeing uninitialized value (#33459)
- b25838217697 completion: complete drive-letter filepath on Windows #36353
- 634f6424aaac completion: set 'wrap' and scrolloff=0 in preview window (#37327)
- 3f10bb87efad completion: wrong CompleteDone reason for auto-inserted sole match #38280
- e1b3ca66291a compositor: clear old position with last known dimensions #38229
- 6f632a8615e0 compositor: don't blend uninitialized background cells #34364
- 150490d365a3 conceal: assert tripped during startup #36136
- ad8bce667496 conceal: check for concealed lines on invalid row (#36084)
- ab72799841c8 coverity/530026,530028: free resources on early exit in nlua_exec_file #33502
- 079159410143 coverity/530033: free lp->sl_info to fix resource leak #36198
- 0ed5e00077dc coverity/532324: free skip_until to prevent leak #36109
- 3e303231350e coverity/554963: preallocate msg.items to avoid FORWARD_NULL #34484
- 501a21f33390 coverity/637363: out-of-bounds write #37878
- c5b8ed870b8e coverity/644326: NULL ptr deref in socket_address_is_tcp #38010
- 20b2dd39ccfe decor: clamp last column by decor provider range
- ca16b54c866b decor: enable decoration provider in on_start #33337
- 6adf48b66d52 decor: extmark highlight not applied (#33858)
- 9492df027d07 defaults: 'guifont' "monospace" fallback, trim spaces #37930
- 57b4fb5c5318 defaults: enable :terminal [[,]] motion in operator-pending mode #33217
- 3ebde5ea147c defaults: keywordprg=:help on Windows #33336
- 9567fb050795 defaults: silent `gx` if no `textDocument/documentLink` support #37969
- dc6fc11b8753 defaults: start exrc search from parent directory
- cb247e06f0ba defaults: visual-mode [[,]] for :terminal shell prompts #33201
- 1c96b72dfa41 deps: make script/bump_deps.lua update build.zig.zon versions in sync
- 6e12ef4a7b4c desktop: cannot open filename with spaces using OS file manager #33161
- 2e0158650a3b diagnostic: accept multiple namespace in `open_float()` (#34073)
- c681336e3c35 diagnostic: accept multiple namespaces when setting loclist/qflist (#33982)
- d567f899efb7 diagnostic: allow virtual_{lines,text} cursor exclusivity #33517
- 3ac76977bca5 diagnostic: check for extmark in get_logical_pos #37127
- 68eece8b849d diagnostic: check if the buffer is loaded #35125
- dbe17da1206d diagnostic: deprecate `float` in `vim.diagnostic.Opts.Jump` (#34037)
- efa6d91132c7 diagnostic: display 1-based related information line/col numbers (#37093)
- 2b21c9c23f88 diagnostic: ensure autocmd always is always sent diagnostics
- e34e2289c228 diagnostic: fix flaky error
- 583308f5991c diagnostic: handle stale diagnostic extmark ids #38060
- 88a72efb465c diagnostic: open_float() handles config.float function #31577
- 09266830bdf4 diagnostic: show diagnostics on buffer load #35866
- 9833f0da5f35 diagnostic: unstable sorting by severity #37154
- f7b573f80a33 diagnostics: assert adjusted diagnostic position #37210
- 7a051a4c3894 diagnostics: avoid jumping to diagnostics in deleted ranges #35088
- 9641ad9369f6 diagnostics: diagnostic just after EOL is not highlighted #34085
- e4a100a1e1c0 diagnostics: extend conversion support from/to quickfix format (#34006)
- 19efabafc568 diagnostics: fixed virtual_text cursormoved autocmd error (#34017)
- 0a113013fb85 diagnostics: position diagnostics using extmarks #34014
- a1bc5d0ae6a9 diagnostics: showing stale diagnostics in handlers #35890
- 3594c213a7fe diagnostics: validate opts.signs #34565
- 60d0b7d0c3f7 diff: fix incorrect item size of dout_ga (#34338)
- 0b8a9bde0eee diff: set default diff flags properly (#35450)
- aaec3e5b0dab difftool: add check for window number when cleaning up layout #36161
- c1e60f36f3fb difftool: don't reset quickfix list when closing quickfix window #38088
- c9b74f8b7e38 difftool: ensure split layout, use systemlist #36145
- c6113da5a999 difftool: fully resolve symlinks when comparing paths #36147
- a88c7962a82f difftool: handle "no differences found" #36671
- d59064462096 difftool: silence :only command in setup_layout #36168
- 97a625944252 display: adjust setting winline info for concealed lines (#33717)
- cb2ca54331cd display: cursor moves when searching with "n", "*" #29446
- ce0c0c31a089 display: scroll logic does not take into account concealed topline (#33054)
- 5b1561bb717e display: scroll redrawing doesn't account for virt_lines above fold #33374
- 7e8b7bba21cf display: wrong cursor column with 'concealcursor' = "n" and virt_text (#33218)
- 5582005ac766 docs: add `--clean` arg to LSP bug report (#36530)
- e74753a221f8 docs: callback annotation for `vim.ui.input` #34507
- 4a910a2a4ed6 docs: dev.txt is "new layout"
- 9da316fcc45c docs: force blank line after numbered list items #35950
- 4397c4b117d1 docs: improve adjacent list items
- 8a76129d9f61 docs: include `?` in list items #35945
- b2722181b001 edit: clear showcmd after clearing last put char (#34517)
- 9a864d0a3c91 edit: handle cindent properly with completion (#36711)
- 3647b821ea69 editor: respect [+cmd] when executing :drop #33339
- 966b1da1831e editorconfig: a custom property is treated as a section (#34445)
- b618511ef906 editorconfig: use 4 spaces indentation for zig files
- fd973c0a4ec0 env.c: drop envmap, free os_getenv() result #32683
- df9e4a037ad6 eval: 0 should mean current tabpage in gettabvar() (#36891)
- 8156eece2413 eval: fix crash with :breakadd expr when calling user func
- 981d4ba45ed1 eval: winnr('$') counts non-current hidden/unfocusable windows #34207
- 1e1619de830e eval: winnrs of unfocusable/hidden windows #35474
- 57c6b61cf2d1 event-loop: don't call uv_stop() when loop isn't running (#37984)
- 1dbede5b932f events: avoid superfluous CursorMovedI on first autocmd (#33588)
- 0b61bc898230 events: crash on SIGTSTP (Ctrl-Z) #33258
- 0a0c349b6fee events: crash on WinScrolled #35995
- 29494f042c28 ex: error handling for `:lsp` #37061
- 2f352217742c excmd: :trust executed even when inside false condition (#36032)
- c1f142322b20 excmd: correct :connect abbreviation
- 781ea5b41b2d exit: stop listening before closing channels (#38480)
- ed9abb1851e3 exrc: ensure consistent 'exrc' loading sequence #35148
- f7c939fa7af9 exrc: exrc knows its own location (#34638)
- a39334767321 extmark: adjust invalidate range by one for deleted lines #37897
- 589232c0e065 extmark: wrong eol_right_align width calculation (#37034)
- 6dee1672ccc9 extui: "box" window width calculated on last line (#33881)
- ff95d7ff9a04 extui: adjust "more" window routing (#34251)
- cc78f882012b extui: adjust which messages are sent to "more" window
- 9784bc134624 extui: append consecutive :echon messages
- e512efe3696b extui: attempt to perform arithmetic on field 'last_emsg' (#35047)
- 70eb4164591e extui: better message highlighting after carriage return (#34034)
- 9e968635efc4 extui: check if buffers/windows exist before deleting (#34886)
- 3c7c824bdc08 extui: check option values after VimEnter (#33768)
- 5046ef4c8f8d extui: clear cmdline buffer for first message (#34490)
- db702782e016 extui: close cmdwin to enter "more" window (#33860)
- c916bdf32986 extui: close message window with `q`
- 39a5b7f239fb extui: cmdline visibility, cmdheight cursor position (#33774)
- 5e4700152b79 extui: copy window config to new tabpage (#34308)
- 8c6ea76ebcdf extui: disable cmdline highlighter when showing a message (#34887)
- 9efdd4fe98e7 extui: drop "more" window that is no longer floating #33861
- be5a4851eaa5 extui: ensure temporary cmdline config is not restored #35301
- 1256daeead27 extui: ensure windows are valid in scheduled on_key (#35106)
- cd7cf4bd16e7 extui: error on :call input('') (#35515)
- 4d56dc43c0ea extui: handle carriage return in messages
- f1295fe76f49 extui: hide inactive "more" window (#33831)
- 3828856233d9 extui: incorrect cmdline cursor position (#34201)
- a59b052857ca extui: map wincmd instead of remapped key (#34151)
- d4ecfc423495 extui: message may overwrite active cmdline #33846
- 76f76fb08391 extui: only append messages exceeding 'cmdheight' to "more"
- 33b0a004eb20 extui: properly setup "more" window for changed buffer
- 5e83d0f5ad4a extui: reposition "more" window after entering cmdwin
- 7077c5929529 extui: reset message state after "search_cmd" message (#34119)
- 7e787f6a4f16 extui: route interactive messages to more-window (#33885)
- b2a5105c66e1 extui: search highlighting in extui "more" pager #33792
- d0aedd36dfe0 extui: set 'modifiable', 'noswapfile' for buffers (#34582)
- 56709ca1689a extui: setup buffers after activating `eventignorewin` (#35915)
- 8e8f4523c687 extui: translate <Tab> in cmdline text (#34055)
- cb036cae5fb1 extui: use visible to determine active "more" (#34327)
- a96665cf4867 extui: using tracked message column in cleared buffer (#34154)
- c973c7ae6f56 extui: write each message chunk pattern separately (#34188)
- 8af28ab9cb9a filetype: error when `vim.filetype.match{buf=fn.bufadd('a.sh')}` #34155
- 7500f76e6131 filetype: fix typo (#37286)
- 095b9f98f3e3 filetype: handle invalid `bufnr` in _getlines(), _getline() #36272
- e2cb67570522 filetype: move fallback logic to vim.filetype.match() #30141
- d131d67e67a8 float: clamp floating window above cmdline #37899
- 3ccba4cdffb8 float: crash from nasty :fclose autocmds (#36134)
- d4f2b9050dc6 float: cursor visible in "hidden" floating window #30866
- 66e4784f5ace float: ensure relative window grid is allocated (#34459)
- eb3201c77210 float: null pointer dereference, redundant call #36727
- 3b6e8e484edf float: prevent truncation of title that fits exactly #36880
- 31c814a0ed0e float: respect statusline=3, don't inherit local 'statusline' #36716
- 5943a81fe79a float: style=minimal leaks into normal windows #25185
- cb171ee7cba0 float: tail truncate long title #28387
- 9269a1da355b floatwin: handle viewport width properly at end of window (#35490)
- 66dddd8b515a folds: adjust filler text drawing for transparent folds
- 1d9990daac37 folds: avoid unnecessary loop with horizontal scrolling (#33932)
- d73cfefed5e4 folds: error when deleting lines at end of buffer #35396
- 19715e6e8a71 fs: expand drive-relative paths on Windows #37084
- d22fcf291746 gO: use non-breaking space #34197
- ac6cf5b03ba0 gen: alias /doc/user/helptag.html to /doc/user/helptag/ #38156
- 805dd5d04780 gen: prevent "make doc" failure due to temporary files
- 67fede0fc94b gen_help_html: ASCII art rendering in docs #35262
- a49bf5e1d3c8 gen_help_html: parser override
- 4b02d1f6f6e2 gen_vimdoc: unnecessary assert for non-source files
- d2ca90d87e32 glob: handle numeric literals in pattern matching (#37257)
- 3991f146215b glob: handling commas in letter pattern #34170
- aeebc5185171 grid: assert crash during extreme resize layouts #36847
- 1ad9cdd4036b grid: check allocated grid size when suspicious scrolling
- 856391bc7fa9 health: "q" keymap not set when health.style=float #37007
- a33284c2c068 health: accept TERM=tmux-direct #35511
- c28113dd9d09 health: add back `vim.cmd.redraw()` call (#37576)
- 3fb53abe2a7f health: attempt to concatenate table value #36369
- 8a901a52e1f0 health: avoid silent failure
- 2422fbdd5f90 health: bad format() call #34904
- 672f6e60c165 health: bug-report formatting, version check #36809
- 61678811d8d3 health: check more "old" files #38028
- 31cb37687a03 health: check shell performance using vim.fn.system() #36980
- 16c8a908ef67 health: check stable release for non-nightly build #36715
- d927a87ed607 health: checkhealth float opens extra empty buffer #33648
- f19653e3706d health: emit Progress message #37123
- cfe10b4014ec health: errors in :checkhealth with pyenv-virtualenv #35865
- bd37348939a7 health: expecting nonexistent "inotifywait" function #33312
- 28b7c2df5217 health: floating window closes when opening TOC (gO) #34794
- e4ce0c7270e5 health: git check and autocmd clean #36713
- 6152bcf42ef0 health: hard fail on invalid "python-*" bin #35382
- 6942dec9b29d health: highlight group conflicts with help #34616
- bfc7bae421fe health: improve version check for nightly builds #38147
- 07f048a8d764 health: message should mention "vim.provider" #33095
- e9d03b92b67c health: redraw after emitting progress message #37567
- 06e4b159ed08 health: show full curl output
- f311c96973a5 health: update advice for Python #35564
- ae93639ec440 health: use FileType autocmd for bug report winbar #37486
- 1c52e90cd57c help: :help can focus unfocusable/hide window #34442
- 4a4de7304306 help: better align local-additions #38097
- 25322a3a3b22 help: only set url for help files in $VIMRUNTIME #36165
- e49a59259507 help: retry once if async parsing fails #36592
- 62d3a2110df4 help: wrong tag url in third-party help docs #36115
- 625c59fe5fc2 highlight: Normal-linked groups shouldn't override CursorLine #35026
- 64966ba52cea highlight: allow ephemeral extmarks past final newline #35888
- e23c083d133b highlight: avoid null deref, misc issues #38164
- 444c195edb33 highlight: blend underline check and use struct key for attr cache
- d5a8c9d76667 highlight: correct change detection in do_highlight for gui colors
- e3c36f31e3a0 highlight: ensure extmark range is within buffer bounds #35928
- a7177e34c318 highlight: link HLF_8 to something more prominent #34910
- 3af43cffa028 highlight: no match highlight during :substitute prompt #33262
- 336b46a87945 highlight: preserve background transparency in 'winblend' #34302
- 5803994a1c4a highlight: preserve bg transparency with winblend=100 #34825
- bd12aef78476 highlight: refresh highlight attrs before message output #25737
- 6af89580555f highlight: respect 'winhighlight' in CursorLine Normal check #36927
- f8d59cfab958 highlight: setting 'winhl' doesn't work with global ns (#37868)
- 64753b5c37cf highlight: spurious underline in 'winblend' floating window #34614
- a26cdcb20e68 inccommand: skip input() during preview #35272
- f348c0ebba2c incsearch: include compsing characters with Ctrl-L
- a04c73cc17f5 input: discard following keys when discarding <Cmd>/K_LUA (#36498)
- 592582ba4886 input: don't exit on EOF when peeking for input with -es (#36948)
- 29c8dabd414c insexpand: update showmode when updating the screen (#34466)
- e0308dc14730 install: only install "tee" on Windows #36629
- cd7122125098 intro: crash on small screen #38397
- 4fe51dfdae84 iter: ArrayIter:last returns nil when filtered to empty #34697
- eaa9aca1308b jobs: jobstart(term=true) accepts width/height #33904
- 11e82c108da6 l10n: update Ukrainian translations #37654
- 16c133439958 langmap: assert failure on mapping to char >= 256 (#37291)
- 14fe37056436 logging: don't overwrite NameBuff (#38004)
- ea5007b37fbe lps: separate namespaces for pull/push diagnostics #37938
- bf4710d8c398 lsp: "attempt to index nil config" #36189
- f068386c9f70 lsp: "bold" border for vim.lsp.buf.hover #33395
- a9b8a8dc6c1f lsp: _cancel_all_requests() tries to cancel completed requests #34105
- 97ab24b9c7d9 lsp: _get_workspace_folders does not handle root_dir() function #36071
- a03ab03a10ad lsp: `:lsp restart` restarts on client exit #37125
- 6005fcf6719b lsp: `opts.wrap` always `true`
- 4b0700c618bf lsp: `vim.Range` check in `document_color.color_presentation()` (#38374)
- d6fffe6b321e lsp: access correct client capability path in `supports_registration`
- 3eaa6c5a6659 lsp: add `RequestFailed` error code constant #34645
- c3589753a0e1 lsp: add `vim.deprecate` call to `vim.lsp.with` (#37960)
- bd41f6eb6c66 lsp: add deprecation comment to `gen_lsp` (#36185)
- 9f99bf48ea8d lsp: add missing argument validations (#34519)
- 378435968f64 lsp: adjust codelens position based on the server-provided range
- 35756022cbcd lsp: advertise supported fold kinds (#34461)
- 4db58f78b49f lsp: announce `normalizesLineEndings` capability (#34175)
- bac133e4b6ea lsp: announce diagnostic tag support (#34436)
- fed9069b8da1 lsp: avoid `foldclose()` after current window-buffer changed #33901
- 2debe2f30a45 lsp: avoid automatic request after leaving insert mode (#35767)
- fde0b487fb61 lsp: avoid re-enabling `document_color` on `registerCapability` (#35774)
- 6f733f4a9bf0 lsp: avoid scheduling client deletion before LspNotify #37685
- 2ee896201c46 lsp: better handling of "*" configs
- 0501c5fd0959 lsp: call `on_list` before reading `loclist` #37645
- 653871da1b55 lsp: check `nvim.lsp.enable` before `doautoall` #36518
- e94d8f03b959 lsp: check for lens range in `vim.lsp.codelens.run()` (#35294)
- 1bc85d29c135 lsp: check for non-nil buffer state on reset (#36519)
- bbfcde3ab20e lsp: check if buffer is valid in scheduled client:on_attach() #35672
- c789d799663d lsp: check if buffer is valid when resolving code lenses (#35092)
- 0862c1036a8e lsp: check if client is stopping before reuse #33796
- 42f244bf18a1 lsp: check whether buffer is valid when scheduled #35461
- 0dc900d74443 lsp: clear document_color autocmds #34573
- ace254c9fff1 lsp: close floating preview window correctly #34946
- a702534c501f lsp: close timer when client exits (#36795)
- b4ba27c238ec lsp: codelens extmark line out of range (#35070)
- f2d0b06ecbb5 lsp: completion word includes leading space from label #38435
- 3342aead1df9 lsp: consistent use of `vim.notify`/logging with unsupported methods
- 55e3a75217d9 lsp: convert the encoded position to line byte (#34824)
- 8165427b4d92 lsp: correct capability checks for dynamic registration (#36932)
- 82d0883c2d96 lsp: correct diagnostic data support and related info capabilities (#34454)
- 2822c38f2e73 lsp: correct iteration through attached buffers (#36517)
- 213360c389de lsp: custom 'winborder' in make_floating_popup_options() #34868
- 342974773c53 lsp: cycling signatures with the default `config.focusable`
- 40aef0d02e1a lsp: decode 'null' in server responses as vim.NIL #34849
- b67eff38fe19 lsp: deduplicate completion items #36166
- e62dd13f83a2 lsp: default ClientConfig.exit_timeout to false #36811
- 70ea589d79f6 lsp: deprecate `vim.lsp.get_buffers_by_client_id` (#36449)
- b938638d2d06 lsp: deprecate `vim.lsp.protocol.Methods` (#35998)
- f7802dd5d572 lsp: deprecate vim.lsp.set_log_level, vim.lsp.get_log_path #35274
- 83156974497d lsp: detect if Client:request resolved synchronously #33624
- 0cc4f53b4066 lsp: do not clear the codelens on the last line #38226
- 18e8839c804e lsp: don't create an `'LspAttach'` `document_color` autocommand
- 90abd2613d7f lsp: don't empty server start-boundary by next client response #37665
- 0472119fe61a lsp: don't immediately force shutdown when using a timeout (#36455)
- c2c5a0297e00 lsp: don't overlay insertion-style inline completions (#36477)
- afebbd0f34ca lsp: don't override `config.title` in `vim.lsp.buf.signature_help()` #35075
- 729111d3a3cd lsp: don't treat MarkedString[] with language id as empty #35518
- ff792f8e6908 lsp: enable insertReplaceSupport for use in adjust_start_col #36569
- 8495d9623809 lsp: ensure `bufstate` when calling `vim.lsp.document_color.is_enabled`
- f168d215cfa2 lsp: ensure augroup before querying autocmds #38254
- e239179871c4 lsp: ensure bufnr is passed for buffer-local requests (#36325)
- 40dc2d02a851 lsp: ensure the codelens on the first line is visible
- 9f77124b78ec lsp: error on omnifunc completion (#37790)
- 82b844fefef5 lsp: fallback to empty `capability_path` in `supports_registration`
- 927927e143bd lsp: fix error with InsertReplaceEdit events #33973
- 23f4fab0bdfe lsp: fix incorrect params because of typo (#36871)
- 34116bbd9b61 lsp: fix nil-index error for `:lsp enable` (#37411)
- 20a392fe3843 lsp: fix window to set cursor for inline completion (#36444)
- 4ee2e365a583 lsp: fix workspace diagnostic request to follow spec (#34674)
- 913b05bf630d lsp: format_item should return string (#36025)
- 7c3df3e2ea13 lsp: get_namespace signature (#38449)
- a8ffa6e323d8 lsp: guard dynamic capability attachment #38382
- abc96ba0ce30 lsp: handle `nil` buffer state in `documentColor` clear (#33746)
- 8e48c0206155 lsp: handle array with empty string when checking empty hover (#35423)
- 507cd63418ac lsp: handle completion/resolve response arriving after on_insert_leave
- 1de77c608fa9 lsp: handle nil request in semantic tokens #36780
- 26cc42e426d7 lsp: handle nil response in references request #35139
- 5653b25e9b8f lsp: handle non-string documentation in completion items #38291
- 95dce376f330 lsp: handle providers without subcapabilities
- eaacdc9bdffd lsp: ignore empty response on trigger completion #37663
- a0678a5849d3 lsp: ignore inline completions after leaving insert mode (#36476)
- 7ebfc5077512 lsp: ignore invalid fold ranges (#36708)
- 8bfb91accce7 lsp: ignore stale codelens resolve responses (#38153)
- 5d1fd4aca58c lsp: improper diagnostic end_col computation
- 1f558f8d0960 lsp: improve diagnostics handling and comments
- ed562c296abe lsp: improve dynamic registration handling #37161
- 5c15df449a87 lsp: improve error completion message #33812
- cd06e0c9d6be lsp: include client ID when receiving unknown fold kind (#34535)
- 6005bc68b29e lsp: include context for each client in multi-handler results (#34669)
- b459bf5961fd lsp: include missing LSP methods and update type annotations
- 18d6436ad2c6 lsp: inlineCompletion: ignore out-of-range items #35990
- 820fb89172b7 lsp: make thematic break parsing conform to GFM spec (#35162)
- 13cf80deefe7 lsp: map all LSP methods to server capabilities (#37910)
- 2f78ff816b03 lsp: misleading logs in non-applicable filetypes #35749
- d9768348649b lsp: nil error in ColorScheme autocmd
- 3c4acc0f1a2b lsp: noisy log message when enabling server without config #36264
- 91e116f3a671 lsp: only auto-detach lsp.config clients #33834
- e5c5b563ec1e lsp: only auto-detach lsp.config enabled clients #34325
- eb90f5d9e3a6 lsp: only resolve LSP configs once (#38007)
- 6926fc1615c9 lsp: opts.reuse_win does not jump if buf is already open #33476
- 4778a4c20179 lsp: prevent flicker in codelens virtual text #34888
- 9e93bfdb5fce lsp: prioritize showing active signature
- b98aefc5841a lsp: properly handle `documentColor` from multiple servers #33656
- c39d18ee939c lsp: raise error when lsp config is invalid type (#37508)
- addd408b3955 lsp: redraw codelens after request completed #38352
- 03032d1f73d8 lsp: remove `vim.lsp.diagnostic.reset()` (#35938)
- 285ea2525fdf lsp: remove extra notify on empty hover
- 34815777b280 lsp: remove side-effects if `vim.lsp.enable()` raises an error (#37571)
- 181df6053382 lsp: remove unused `ns` field
- 371ad48135ed lsp: replace `string` types with LSP method alias type annotations where appropriate. (#36180)
- 6a49a277f517 lsp: request diagnostics from all registrations
- 0da982767332 lsp: respect documentation markup kind in completion preview #38338
- 4ef562472988 lsp: restore Client:stop() force-stopping behavior (#35800)
- 0db8efcbe4fc lsp: restore virtual document color visibility (#38407)
- 4dd9137215f8 lsp: reuse_win prioritizes windows/tabs currently displayed #36486
- 70460d557c51 lsp: scope inline_completion autocmds to buffer (#35965)
- 323d5527eed6 lsp: set 'linebreak' in floating windows (#36275)
- 4b8980949cd4 lsp: set concealcursor='' in LSP floating windows #36596
- c3991b8ef4f0 lsp: show notification with empty hover response (#35014)
- 5b1b46ea5a4f lsp: show title when global winborder is set (#35181)
- 8a94daf80ead lsp: simplify semantic tokens range request logic #36950
- 4ed597389c33 lsp: snippet preview blocked completionItem/resolve request #38428
- 0197f13ed4fa lsp: sort items when completeopt include fuzzy #36974
- d53d542359de lsp: stop and close timer when `Capability` is destroyed
- a768d0a95b52 lsp: stop repeatedly resuming dead coroutine #35743
- 1d8e9b5d070c lsp: store result id for unchanged diagnostic reports
- 8b5d8dfc732e lsp: support `containerName` in symbol requests #35029
- 17c18efbe561 lsp: support v:count in selection_range() #34551
- a1895f024a4c lsp: support workspace/configuation with no section #27510
- bd225422a5b7 lsp: tests for :lsp, rename start/stop
- e69b81ad94da lsp: treat 2-triggers-at-once as "last char wins" #35435
- 1f63735f175d lsp: treat nil inlay hint result as empty array (#35458)
- f67306cc67e8 lsp: typos in method names #36077
- 29c6176f0842 lsp: unify LSP error logging prefixes #38354
- 9139c4f90ff8 lsp: update capability maps (#35227)
- db1b7f74129e lsp: update completion items on `TextChangedP`
- 7a8d31687940 lsp: update metamodel (#38174)
- 6c3e9b557341 lsp: update on `CursorHoldI` cause users unable to `select()`
- 848c7a789470 lsp: update window title when cycling through signatures #35407
- 006101360d6f lsp: use LSP method type in more places (#36069)
- 36db6ff2c128 lsp: use LSP textEdit range for completion start boundary (#37491)
- 34c769dd897d lsp: use `bufnr` when getting clients in `symbols_to_items` (#33760)
- 807bc00dd68d lsp: use `vim.notify` with action-less `showMessage` requests (#34720)
- 5fbc5ab81073 lsp: use correct `workspace.diagnostics` capability key (#35937)
- 00ad477419f2 lsp: use correct deprecation function (#34518)
- 6fe68abdf5a3 lsp: use entire line as completion word (#37949)
- 1d7823451e2a lsp: use vim.notify for all message types #34489
- f90cd620c56b lsp: vim.lsp.completion clean up triggers on client detach (#38009)
- 5c4b64aae59d lsp: wait for exit_timeout on quit #37597
- 6bb6b4793327 lsp: wait to display exit message #37925
- 5554fcc28683 lsp: warn on missing config in :checkhealth #33087
- 0cda01834514 lsp/diagnostic: key resultId by client and identifier
- 7a5e9ef0aab8 lsp/diagnostic: use diagnostic provider identifier for code actions #38401
- f0c0c24ed777 lsp/health: always use vim.inspect to show root_markers (#34667)
- 5ad01184f3c3 lsp/health: ensure valid table before concatenating (#34092)
- 1906da52dbc9 lua: close vim.defer_fn() timer if vim.schedule() failed (#37647)
- 103ddaf9ae80 lua: correct line number reporting for options set in coroutines (#37463)
- b986fd96bc8d lua: coverity "unreachable" warning #35874
- 40f5115ac430 lua: disable `strict_indexing` when converting LSP positions
- 1264d1156ce1 lua: don't leak timer when vim._watch.watch() fails (#35768)
- c08139d790b7 lua: don't remove first char of non-file stacktrace source (#37008)
- 9a5641b4b570 lua: drop support for boolean `buf` in `vim.keymap` #38432
- 66066d0f6a22 lua: extra CR (\r) in `nvim -l` output #38048
- b87bdef2a864 lua: relax `vim.wait()` timeout validation #36900
- 6a330f893bf1 lua: report error in Lua Funcref callback properly (#35555)
- 1aa26f5d5555 lua: separate vim.{g,b,w,t} types #37081
- 94144d46787f lua: vim._with() doesn't save boolean options properly (#37354)
- 89b946aa87d2 lua: vim.diff is nil in uv.new_work() thread #34909
- 40351bbbbe78 lua: vim.validate `message` param #33675
- bc0635a9fc9c lua: vim.wait(math.huge) fails #36885
- b3324be0d8a1 man.lua: :Man ignores section of gzipped manpage #38235
- 87bd16e470b2 man.lua: :Man slow/hangs if MANPAGER is set #36689
- 5333d6371bfa man.lua: E95 when piping to :Man #33068
- a8dd5c7e41dd man.lua: noisy "ENOENT" error on Windows #33409
- 46220afef806 man.lua: show_toc condition may cause infinite loop #36979
- b8763cb21525 man.lua: useless executability check #33438
- 84d3bbef23d0 map: use names like Map_key_value not Map_keyvalue
- 218ea9fff775 mappings: always include replace_keycodes in mapping dicts (#37272)
- 3341ab07764e marks: clamp conceal_lines corrected line number #33464
- 5773f0e99463 marks: make jumpoptions=view work with 'smoothscroll' (#38339)
- 064ff74cdbe6 marks: wrong display after inserting/deleting lines #33389
- 033f1123cd91 marks: wrong line('w$', win) with conceal_lines (#37047)
- 37c0efb21cfb marktree: fix edge case bug regarding changing intersections
- 2154d325d526 memfile: avoid potential crash on OOM (#37946)
- 5e470c7af556 menu: fix listing of submenus (#34315)
- 8f9278d7c258 menu: right-click menu fails with E335 when using V after i_ctrl-o #37349
- b47b0caba858 message: concatenate multi-chunk nvim_echo({err}) for exception message #38131
- 3d5ef97a9829 message: no wait return for delayed exception error #35881
- 2de284e50b6d message: set replace_last for completion "scanning" messages #37967
- 3b85046ed5f2 messages: "list_cmd" kind for :command, :version (#34529)
- ac670989980a messages: "list_cmd" kind for mark commands #33874
- dc3a30cfbb83 messages: 'exrc' / secure messages
- 96e1acfa427f messages: add "list_cmd" kind to :colorscheme #37561
- 29f2cb89f01b messages: add append parameter to history entries (#34467)
- 8bdfd286e584 messages: adjust msg_show "empty" kind logic (#37427)
- 83037cf21857 messages: allocate message history kind string #38292
- c85313bac7e6 messages: always assign msg_id to msg_show events #37671
- bf1d4e9793fc messages: capture execute("messages") with ext_messages (#34342)
- 276860b5380d messages: clear 'showmode' message after insert_expand #33607
- 1b2b715389c5 messages: disallow user-defined integer message-id #38359
- 81828e66b99a messages: emit empty msg_show event for :echo #38467
- 53aad276b62a messages: exclude "search hit BOTTOM" msg from history #36961
- 73157c994db4 messages: heap-buffer-overflow with shell command (#37855)
- 7a490d65c57e messages: increment message ID without ext_messages #37714
- 912388f51786 messages: list_cmd kind for buffer line messages (#33855)
- d86d4bacc14b messages: make swapfile attention message part of prompt (#34414)
- 49c19a1fe3cb messages: message not flushed at end of command #37904
- 7c43f8e4336c messages: messages added to history missing from ext_messages "g<" #33907
- a81b059a45ba messages: non-fast and append for "shell_*" kinds #38188
- 10a03e83e357 messages: only msg_clear for UPD_CLEAR #34688
- e876a739eeb1 messages: recognize cmdline one_key/number prompt State (#34206)
- 96957d80c6c3 messages: reinstate 'showmode' message delay #37992
- e63346dfe91b messages: reset redirection message column at message start #38068
- a5f236291c0c messages: single event for multi-expr :echo (#34393)
- f1dcde6cba3b messages: single msg_show event for :global command #37728
- 986b92eb0713 messages: single msg_show event for multiple :set options #33555
- 3898f34c5a21 message