<feed xmlns='http://www.w3.org/2005/Atom'>
<title>neovim/runtime/nvim.appdata.xml, branch master</title>
<subtitle>Vim-fork focused on extensibility and usability</subtitle>
<id>http://git.waynecole.info/neovim/atom?h=master</id>
<link rel='self' href='http://git.waynecole.info/neovim/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/'/>
<updated>2026-04-14T16:09:19Z</updated>
<entry>
<title>fix(build): fix `make appimage`</title>
<updated>2026-04-14T16:09:19Z</updated>
<author>
<name>Olivia Kinnear</name>
<email>git@superatomic.dev</email>
</author>
<published>2026-04-14T04:19:20Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=5181b8952cfdc45df2bc540b48e45bd64377f667'/>
<id>urn:sha1:5181b8952cfdc45df2bc540b48e45bd64377f667</id>
<content type='text'>
</content>
</entry>
<entry>
<title>NVIM v0.12.0</title>
<updated>2026-03-29T16:16:17Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2026-03-29T16:16:17Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a'/>
<id>urn:sha1:fc7e5cf6c93fef08effc183087a2c8cc9bf0d75a</id>
<content type='text'>
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 =&gt; 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" =&gt; "nvim.log" #37935
- 4eed85f9bd0e logs: show full paths in lsp logs (#33886)
- 7486c2f6aa6d lsp: &lt;Plug&gt; 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 $&lt;CONFIG&gt;
- 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 :&lt;CR&gt; (#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 :&lt;CR&gt; #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-&gt;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 &lt;Tab&gt; 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 &lt;Cmd&gt;/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 &gt;= 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&lt;" #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 messages: spurious newline with --headless + cmdheight=0 #38494
- 41336a35905b messages: swedish translation #37395
- 39c4e0f33667 messages: unwanted ext_messages newlines for confirm() #38045
- 4260f73e1396 messages: unwanted newlines with ext_messages #37733
- 98f5aa2564c3 messages: verbose message emitted without kind #33305
- 18fa61049a9e mouse: crash with click on win-separator in statusline (#33091)
- 7432781e7184 mouse: do not fetch clipboard twice when pasting with middle button #33494
- 2f8fb4f28ab9 mouse: mouseclick after conceal_lines is miscalculated #33451
- 32325a66ca0d move: adjust for concealed lines above topline after scrolling up (#33211)
- 6ce2877327b1 move: consume skipcol before revealing filler lines (#34143)
- 2069be281c72 mpack: boundary values for negative integer encoding #37255
- b8ee354f127c msgpack: flush incomplete big UI event before packing RPC event
- 7f2d5d6883b5 msgpack: use fixstr encoding for strings of length 20-31 #36737
- 41068c77aa1b normal: assertion failure with "gk" in narrow window (#37444)
- 911337eb3c4c normal: crash using :norm from vim.ui_attach shell message event #38283
- 4485e715fb6a options: deprecate 'gdefault', 'magic'
- c2136e359008 options: increase t_Co buffer size (#35859)
- 9910445125bb options: make 'cdhome' take effect on any platform
- f4f1149292aa options: vim.opt fails for 'fillchars' #37141
- 1f2883e87976 outline: use 2-space indent instead of 1-space
- 3d37aa3116ab pack: account for Git's "insteadOf" in `:checkhealth` #38393
- bac4cde9cd43 pack: actually checkout proper version of submodules
- b02d1303b80f pack: add trailing newline to lockfile #38469
- 46648c38677d pack: close confirmation buffer's tabpage by ID #34971
- 0f73873d4f42 pack: close confirmation buffer, not tabpage #37756
- ee3239fcb682 pack: consistently use "revision" instead of "state"
- f00abc6a5669 pack: ensure `data` spec is passed in events during lockfile sync #38139
- d3bea4ace94a pack: ensure consistent order of changelog during update
- ed73ed828374 pack: ensure explicit default `version` in events (where possible)
- 14003bd1c563 pack: ensure plugin directory is created during first usage attempt
- 539b8027a309 pack: explicitly close confirmation window #37861
- fa3920282da0 pack: handle Git environment variables #35626
- 3b860653ca0c pack: handle lockfile in case of install errors #36064
- 3f34f083db06 pack: ignore 'loadplugins' when sourcing 'after/plugin' scripts
- 28e2a5c1513d pack: improve `vim.pack.add()` input validation
- 89a72f11e5fe pack: make newer version suggestions more robust
- 2e62f3576f7f pack: open confirmation buffer in tabpage after the current one
- e4e660594366 pack: relax minimal Git version to be 2.0 #36573
- f492f62c3d5f pack: rename confirmation buffer to again use `nvim-pack://` scheme
- 0fa96585dc1d pack: set `source` in progress report #38511
- 474e9e9408e3 pack: show more informative error message if no `git` executable
- 5468e6a45272 pack: skip :redraw! if headless #37782
- 8f0b8a2c279f pack: skip `git stash` during install
- b337c6e0fc0a pack: update `add()` to have default `load=false` during startup
- 1ee18b406114 pack: use 'coxpcall.lua' on non-LuaJIT
- 8200223ee7a8 pack: use `vim.pack:` as message/progress prefix
- f3f509563084 pack: use full hashes in lockfile and revision description
- eff01b7620cf pack: use more correct URI for confirmation buffer name
- 267bbe64cb4f pack: validate installed plugins in `update()` and `del()`
- a5d69326860f paste: don't use :echo immediately before :redraw (#35773)
- 42aae632beb0 plines: count 'showbreak' in EOL inline virt_text in line size (#35921)
- 6291256868f0 process: avoid buffering unnecessary UI event with PTY CWD (#37582)
- 19a3b6778979 process: avoid unexpected behavior when PTY chdir failed (#37614)
- e05171890809 process: don't limit PTY master remaining data size
- 97509aa2be00 process: handle poll() interrupted by a signal (#38024)
- 8a4719e11744 process: use poll() to drain PTY master on Linux (#38005)
- 974bc1b0444b process: wrong exit code for SIGHUP on Windows (#38242)
- e5ba875a956c progress: memory leak on progress-message with history=false
- 2415d8f4247e progress: message-id not sent to ui with history set to false
- 7bf83cc2a651 progress: require "source" for progress-message #38514
- 0af01948f30a progress: show progress-status only in curwin #38458
- bc6737250d61 progress: simplify ui-event, introduce default presentation #35527
- 25000be8457f prompt: "%" prefix repeated on newlines with formatoptions+=r #34584
- ed4c549ea243 prompt: also store column info in ': mark #36194
- a5eb023a5393 prompt: clear undo when changing/appending prompt
- 807a65b2da53 prompt: cursor on prompt line, disallow ":edit" #34736
- 689a149b0890 prompt: don't implicitly set 'modified' #38118
- dbb3986f331f prompt: ensure prompt-mark col gets reseted properly #37669
- 1349233cd150 prompt: heap-buffer-overflow in prompt_setprompt
- 4afbc2543282 prompt: heap-buffer-overflows with invalid ': col
- bf9d3e4bf8d3 prompt: lnum update via nvim_buf_set_lines if buf != curbuf #34833
- b3096b5860ca prompt: ml_get error with invalid ': lnum
- ed7ff848a02d prompt: prompt mark not placed after text edits correctly #34671
- 602cbbe1d930 prompt: prompt_setprompt cursor col adjustment
- 3a10405214ac prompt: prompt_setprompt does not adjust extmarks, no on_bytes
- 2a5d687cc92b prompt: prompt_setprompt sets cursor col unnecessarily
- 16bf7652b7b2 prompt: prompt_setprompt with unloaded buffer, ': with lnum 0
- 51dc752e6cfa prompt: wrong changed lnum in init_prompt
- 7641177c5f98 prompt: wrong cursor col after prompt_setprompt, no on_lines
- 466b2ac1929a prompt: wrong cursor position with cursor keys (#36196)
- acb99b8a6572 prompt_buffer: plugins can't set `':` mark #35624
- b4906577c9f1 provider: misleading :checkhealth if user sets g:loaded_python3_provider=1 #32696
- 51aa64488ddd provider: support python3.14 #38419
- 7be4e4dd6596 pty: prevent orphan conhost.exe on Windows 10 #38244
- ef0386fe9ae2 pum: adjust info window column offset when scrollbar is present (#37069)
- 76fdd9b88248 pum: crash when resizing grid with pumborder set (#36404)
- 2681e1fce3c4 pum: fix heap-buffer-overflow with 'rightleft' (#33146)
- 7d569abb2067 pum: handle RightDrag on parent grid properly (#33626)
- 922816877feb pum: hide info floating window when insufficient space (#37107)
- d87972f92000 pum: keep info window aligned with pum when above #38251
- 445cb751e6cb pum: pumborder=shadow not blending properly (#37328)
- 0712a9c87bfe pum: separate scrollbar from shadow border (#37448)
- 686e7aca40b8 pum: simplify 'pummaxwidth' truncation and avoid crash
- 5a6532168443 pum: text overflows into border on truncation (#37438)
- 106cacc93be1 pumblend: do not apply special highlight attrs from bg layer #36186
- c80bb5b63e0a pumborder: wrong layout with pumborder=none #36208
- 6256adde2f8b quickfix: always split from current window #33807
- 69c379dc4411 quickfix: use correct lnume when appending (#34611)
- 7ed8e969941c redraw: update curswant for Visual selection (#34241)
- a141fd2c4d21 remote: remote-ui connect timeout on slow networks #36800
- 39d8aa0a1ac1 rpc: don't overwrite already received results on error (#37339)
- abd0c882b37a rpc: handle more cases when identifying loopback #36100
- e142e01d570c rpc: include write failure reason in log (#37959)
- db2b774a1641 runtime: 'includeexpr' with non-Nvim-style Lua modules #33867
- 9076fdc1238c runtime: add "Added", "Changed", "Removed" to "vim" colorscheme (#35704)
- f048298e9abc runtime: conceal paths in help, man ToC loclist #33764
- 09f9d72c2495 runtime: coverity STRING_NULL #569464 (#34795)
- 923efaea28ff runtime: cpoptions is reset in Lua file #33671
- 76f6868e0a40 runtime: no conceal in qf on :lopen #34854
- 59c45b22d961 runtime: remove erroneously added syntax tests
- 39bb5d7ca233 runtime: stop treesitter highlight in b:undo_ftplugin #38459
- c4c2112b5d6b runtimepath: crash in :packadd splice optimization #38129
- d995142dbdd5 scripts: collect_typos.lua: show commit message on failure
- 9f9099293442 scripts: gen_terminfo clears Windows terminfo definitions #36736
- 130ef73e39ee scripts: release.sh
- d04cbb65b948 scripts: use right syntax for choosing ref in "zig fetch"
- 7a7123539906 server: serverlist({peer=true}) does not find peer servers #35506
- fc21433167fe session: spacebar heater not warm enough #38434
- 2d3dc070ce6b session: window sizes not stored with float windows (#37344)
- 0dcdd65dcc08 shada: check return value is 0
- 36dbd2686f45 shada: don't add '0' mark if f0 in 'shada'
- 1f503ac7c0df shada: don't store empty replacement string
- a6591950f6bc shada: don't store search and sub patterns if /0 in 'shada'
- 198c9e9bca75 shada: preserve marks after delete across sessions (#35795)
- b98eefd8030c shada: prevent 'nobuflisted' buffers in v:oldfiles #34373
- 6bee2f686fcf shada: prevent use-after-free when mapping file marks (#34446)
- 5581a53437c7 shell: ceci n'est pas une pipe
- 6f904cfef15b snippet: adjacent tabstops without placeholders (#35167)
- ecded994c173 snippet: early return for final tabstop #35115
- 628d569a594c snippet: jumping backwards to choice node (#35062)
- dff78f580dfa snippet: setting end_right_gravity (#35061)
- 196802900323 snippet: sync tabstop text also if pmenu is visible (#35250)
- 019b2050e135 snippet: use &lt;cmd&gt;call cursor() for visual range
- d077a24f5c0b socket: avoid stack-use-after-return after timeout (#36405)
- bfe9fa0f8e93 socket: remove stale socket files (#37378)
- 44f1dbee0da3 spell: save spell files to stdpath('data')/site/spell #33528
- 9436e7c9785b spell: wrong VimEnter autocommands (#36339)
- 0f64f0f5b66b startup: crash in read_stdin #35699
- 30dae87de4c6 startup: file buf is lost if stdin is empty and "-" is last #35402
- c8c78b531bdb startup: make startup windows if there are only floating windows (#34349)
- 5c51b45a8223 startup: respect $NVIM_APPNAME in $XDG_CONFIG_DIRS paths
- c785d5cdf062 startup: source init.lua from XDG_CONFIG_DIRS
- 5cbb9d613bf6 startup: wait for bg detection before user config #37075
- 32d3dd06504e statusline: broken statusline on error #38000
- c3a4d125296c statusline: check buf valid before redraw #35123
- 8305af9bd2eb statusline: clear ruler when it is no longer drawn #33765
- ad330e99d1fe statusline: diagnostics spacing #36897
- 1af5ec5b51a1 statusline: don't require'vim.diagnostic' unless already used
- 0ca9849387cf statusline: missing info/hint diagnostics #38307
- af0f7b59b1fc statusline: redraw if Visual selection other end changes (#36281)
- e9b6474ae7ea statusline: scope truncation bookkeeping
- 63ece2b151e3 swapfile: don't use uninitialized memory (#35813)
- cbfa7f0d7b55 swapfile: handle newlines in swapfile list message #35802
- 8b9500c886bd system: don't treat NUL at start as no input (#34167)
- 6e2b514813f4 system: handle SIGINT in --headless mode #36557
- d6d1bfd20da0 term: terminal attr index may exceed TERM_ATTRS_MAX #34318
- 3e6db5b2ec6f termdebug: use mark `:` to get prompt line in prompt buffer #37336
- 295fb3fdb2a3 terminal: :edit should respect 'bufhidden' with exited job (#37301)
- 196df35cca7d terminal: &lt;Ignore&gt; should be no-op (#37494)
- ad1dfc92a0fc terminal: add various missing redraws
- 520568f40f22 terminal: adjust marks when deleting scrollback lines (#36294)
- 379e307148e0 terminal: also don't propagate $COLORTERM on Windows (#37699)
- 1519a34e43df terminal: autocmds leave terminal open to wiped buffer
- 61217e361821 terminal: avoid events messing up topline of focused terminal
- 366251a5d2eb terminal: avoid multiple terminals writing to same buffer (#37219)
- 5e521c3b5ac3 terminal: avoid tailed cursor in focused terminal in events
- 16da47f4749b terminal: changing height may lead to wrong scrollback (#37824)
- 747da13f44ef terminal: check `buf` before deleting extmark #38314
- d07cbb2f4225 terminal: check size when creating new tabpage
- e56292071a4b terminal: check size when switching buffers
- f3feae0bbfd4 terminal: crash after deleting buffer lines (#37921)
- 7297e9d339c6 terminal: crash when TermClose deletes other buffers
- ad85871ca133 terminal: crash when TermClose switches back to terminal buffer
- b67ac8cc6b5e terminal: crash with race between buffer close and OSC 2 (#37225)
- 459cffc55f76 terminal: deleting from wrong buffer (#36289)
- b4039ec0b026 terminal: don't allow b:term_title watcher to delete buffer
- 3cd07709ba57 terminal: don't always leave if enter autocmds delete buffer #38324
- 6a71239cd5ea terminal: don't disable scrolloff for non-terminal buffers (#34451)
- 7d6b6b2d14e5 terminal: don't poll for output during scrollback refresh (#38365)
- 875958c9a1d1 terminal: don't refresh for sync flush when exiting (#38363)
- 6a409e050717 terminal: don't trigger TextChangedT for unrelated redraws
- ee143aaf65a0 terminal: emit Termrequest for all OSC sequences #33181
- b5aef05b8f65 terminal: fix OSC 8 parsing (#34424)
- a2f01953b878 terminal: free the "[Process exited]" msg extmark #38246
- e254688016a4 terminal: handle ED 3 (clear scrollback) properly (#21412)
- 40bf38fefc72 terminal: handle OSC 8 split into multiple fragments
- f6ca9262b89c terminal: handle closing terminal with pending TermRequest (#37227)
- e6fae6445445 terminal: handle opening terminal on unloaded buffer (#37894)
- 814f2629cbcf terminal: handle split composing chars at right edge (#37694)
- 1c57e4cb4f17 terminal: heap UAF from autocmds when entering #38316
- b40880f88ffb terminal: heap UAF if buffer deleted during TermRequest (#37612)
- 3621af9b970c terminal: inconsistent mode change when switching buffer (#37215)
- 4ef7aa83c4c6 terminal: keep last cursor if it's on the last row
- df21ac729cf6 terminal: losing output if BufFile* poll for events (#37580)
- b6befc7b0333 terminal: losing scrollback when TermOpen polls for events (#37573)
- 9cbc430cfb92 terminal: missing refresh with partial mappings (#37839)
- c845f1923d0f terminal: patch various autocommand-related holes
- 9540e7470beb terminal: possible heap-use-after-free during Nvim exit
- 72ac9ac9a108 terminal: possible memory leak on exit (#37532)
- 238d4fa71ad9 terminal: possible missing refresh with buffer updates (#38388)
- e6ba78919c22 terminal: possibly wrong wrow/wcol in active terminal
- 99e754ae0289 terminal: remove condition that buf is curbuf (#33721)
- ba6440c106f9 terminal: reset `w_leftcol` after resizing terminal
- 25ce44845d2a terminal: restore options properly when switching buffer (#37485)
- 1a1a60bd0526 terminal: resuming doesn't work with command in fish (#37857)
- cc7022c5444c terminal: scrollback may still be wrong on height increase (#37835)
- 1b627f6c5999 terminal: set b_locked when setting &amp;buftype (#37787)
- b28bbee53962 terminal: skip setting `string_initial` to false on no-op (#34176)
- 4f6b3e5c15ff terminal: spurious buffer update with empty buf (#37920)
- 756751afa370 terminal: stack overflow when too many csi args (#34012)
- 5c156fdc6421 terminal: update size after closing window
- b7124ae7684d terminal: update winopts and focus when switching terminals
- b88b7f95912b terminal: wrong colors with nvim_open_term() in non-curbuf (#37579)
- 67832710a5d3 terminal: wrong row in TermRequest with full scrollback (#36298)
- 97d9b85bf985 terminal: wrong scrollback with BufFile* autocommand (#37601)
- 54468c1c3c2e terminal: wrong scrollback with nvim_open_term() on buffer (#37791)
- 8707ec264462 termkey: out-of-bounds write in array #33868
- 272e04178060 tests: don't surpress stderr output
- e702f97518cd tests: ignore vector math types
- 2d4b028d02c1 tests: use correct include path for unittest
- d84e786112fd tests: use correct signature for unpacker_teardown()
- c81af9428c08 tests: use uv.spawn instead of io.popen for unittest helpers
- 61f166ec409b textformat: don't swallow "space" with auto-formatting enabled (#38181)
- e5c2ce590580 treesitter: ":EditQuery [lang]" with injected languages #34914
- 08f4811061c9 treesitter: :InspectTree wrong title for non-relative path #37965
- 16aab4cb48e1 treesitter: InspectTree only show the largest injection #37906
- 60af1a1db285 treesitter: clear parse options state #33437
- 5a2edc483dff treesitter: close `:InspectTree` with `q`
- b4016f4525dd treesitter: don't add final newline if not present #35970
- 28eaec5e1526 treesitter: don't memoize modified headings (#33186)
- 8d75910ef968 treesitter: eliminate flicker for single windows #33842
- 5fe582448c41 treesitter: enable a gc for wasmtime
- 168bf0024ece treesitter: ensure TSLuaTree is always immutable
- 99e629481943 treesitter: ensure TSNode's tree is immutable
- 58d85cd03dc8 treesitter: ensure window is valid in async parsing #34385
- d8e03d5d5ae1 treesitter: escape hyphen in lua pattern
- 284b0e4fa25c treesitter: fix `:InspectTree` incorrect injections
- 86c939ba91e9 treesitter: fix spell navigation on first line (#37361)
- d0822bbd1557 treesitter: highlight group for EditQuery captures #36265
- ea878f456a8b treesitter: ignore stale fold refresh callbacks
- 18e0301e1f6d treesitter: inconsistent highlight of multiline combined injection #32619
- 0977f70f4dd3 treesitter: injected lang ranges may cross capture boundaries #32549
- 2aa794826611 treesitter: invalidate conceal_lines cache earlier #33875
- 927453261558 treesitter: invalidate conceal_lines marks #33828
- 4e2ed1d03c08 treesitter: missing `nowait` for :InspectTree keymaps #36804
- 63737e6e73d4 treesitter: no injection highlighting on last line #36951
- 01817eb6f335 treesitter: normalize language aliases
- cf59631f6539 treesitter: not refreshing virtualtext contents #33361
- f82219c490a5 treesitter: parser metadata annotations
- de45b8e2754f treesitter: proper tree `contains()` logic with combined injections
- baabc3598745 treesitter: properly clip nested injections
- f2bfde9140ca treesitter: reset next_col when performing intermediate highlights
- 3ec63cdab848 treesitter: run FileType autocmds in the context of `&lt;abuf&gt;`
- faae1e72a27b treesitter: scope highlight state per window #34347
- 3eab5bd38a56 treesitter: set local values of window options
- 29c5559ce10c treesitter: show capture-level priorities in :Inspect #35443
- 8b41df185c30 treesitter: support multiple `@injection.content` captures
- f8ac713448c9 treesitter: use metadata in :EditQuery captures #37116
- 5119c03be7a9 treesitter: use subpriorities for tree ordering
- 756e1eb017aa treesitter.foldexpr: duplicate callbacks #37048
- b15b22fc73be trust: :trust command on Windows #36509
- 272dba7f07f8 trust: support for trusting directories #33617
- 03eb331abf90 tui: CSI is not ESC (sync mode)
- fb5a51e77570 tui: avoid memory leak and compiler warning on Windows (#34225)
- 1949452bd360 tui: avoid using uv_pipe_t as uv_tty_t (#37479)
- 5048d9aa2ab2 tui: call tcdrain() on stdout and stderr on exit (#38154)
- e65c0a0810cb tui: check for title support correctly (#34866)
- 17e13ce3b65a tui: clear primary device callback before invoking it (#34032)
- 218ff601c48b tui: do not emit resize screen sequence after host terminal is resized (#35335)
- b1679f0ab6a3 tui: do not remove SIGWINCH handler when resize events are enabled (#35221)
- 69bddc089fb8 tui: don't call tinput_init() twice (#36386)
- 331de6afa6ff tui: don't crash when nvim__screenshot() is called with bad path (#34594)
- c35dde03c800 tui: don't process UI events when suspending or stopping (#33710)
- df23952ce950 tui: don't treat remote TUI as GUI (#36319)
- adbd33027f5f tui: don't try to add unsupported modifiers (#33799)
- 4a69847df45d tui: don't wait for DA1 response when stdin is closed (#35745)
- d62bbe24cbe5 tui: enable vtpcon strikethrough feature #36762
- 82f08f33c101 tui: ensure all pending escape sequences are processed before exiting #32151
- 142f9140897e tui: feature detect vsplit scrolling in xterm-like terminals
- 4b5364b42318 tui: forward C0 control codes literally (#33759)
- f64475a22693 tui: handle sequence larger than entire buffer
- 50a38d9698e6 tui: heap-use-after-free when resuming (#36387)
- 1f0dbfea2f2e tui: log chdir failure properly #37591
- bb6f5c3b318b tui: reset cursor style on exit (#36261)
- 5b5b7eb8d4b9 tui: reset cursor to default style when guicursor is disabled #38219
- 16680e57baca tui: use 0x7f as Backspace on Windows with VT input (#37679)
- 460738e02de0 tui: use the correct offset for invisible cursor after sync
- 2dba5abcb2ee tui: wait for embedded server's exit code
- b80d390765b0 tui: wrong default input key encoding (#36440)
- bff7d3fd9f20 tutor: cannot find tutors in pack/*/start/* #34689
- 4143bcbd3757 tutor: escape tutor filename #36539
- e5665754d1b2 tutor: l:lang is undefined
- f2691199fadd tutor: use invalidate field in nvim_buf_set_extmark() #34989
- db1542af3d03 tutor: use legacy syntax for lesson 3.1 #34996
- 9988d7142d65 types: add missing @return annotations
- ef48104c3120 types: nvim_get_win_config return type #35639
- 1427b94200d6 typval: allocated dynamic size must be at least the static size
- 072f126453e8 ui: 'pumborder' parsing, shadow #36127
- 027b7d6bbb4f ui: :intro not displayed with ui2 #37472
- 531442ddd8df ui: apply 'pumborder' to mouse menu, fix overflow #36193
- 5f9f7064622c ui: check for cmdline mode properly (#35202)
- 8aec33e3221f ui: clear msg_ruler event with 'rulerformat' #37675
- a8a0bba2f8e0 ui: close outdated cmdline pum on redraw (#36815)
- a33e5fb1bbce ui: cmdline_block events for exmode #37751
- 8d6963a6a0f0 ui: cmdline_show is not fired after clearing the screen (#36451)
- f02484118c85 ui: correct condition for "wrap" flag in a floating grid
- 7ca3a56258b9 ui: don't crash if maximum UI count reached (#37636)
- ad438b6b14af ui: exclude hidden windows from tabline window count #36779
- d01b2611a6d5 ui: exclude unfocusable windows from 'complete' "w" completion
- c1648cf820ed ui: forward 'rulerformat' to msg_ruler event #35707
- d909de2dc271 ui: ignore textlock for vim.ui_attach() callbacks #36278
- 1a3d3b77bb8d ui: no empty message for substitution match with ext_messages #37600
- d30d91f3a49e ui: only internal messages are unsafe #37462
- 3277dc3b4ee7 ui: postpone UI callbacks during textlock #36803
- 7b8deacc3f1d ui: preview float doesn't respond to mouse scroll #38270
- 61b6553ee94b ui: proper event ordering for nested cmdline_block events (#35344)
- 506dd7252a8c ui: remember cursor shape when obscured #37704
- 6657cc36712d ui: repaint separator connectors after all window updates #37852
- 424d30fe97a8 ui: send multigrid message position and size when the UI is refreshed
- 1d57374c41e6 ui: textlock still causes issues for UI callbacks #37513
- 703f4037c475 ui: wincmd _ should not increase 'cmdheight' above 0 (#33056)
- c87d92c3b4a9 ui.open: use "start" instead of deprecated "rundll32" #36731
- ae2829ee35c1 ui2: ENTER may focus pager in insert/terminal mode #38497
- e19803714800 ui2: always route to dialog when cmdline is open #37730
- 8c7bbfba3d02 ui2: callbacks reference stale message-window handles #37673
- 9655bd560f6c ui2: don't adjust dialog pos for pum wildmenu (#37695)
- 29a46a11aa08 ui2: don't change configured message target implicitly #37924
- d8cea8d45d66 ui2: don't scroll beyond eob in dialog window #36116
- b9451dfd4c06 ui2: emit FileType event after setting default pager options #36315
- b6c020eb593a ui2: ensure expanded cmdline is closed after :&lt;Esc&gt; (#38187)
- ba6fc90b6fb7 ui2: hide search highlights in msg window #36626
- 6275f533d1a3 ui2: immediately open target windows on new tabpage (#38170)
- 179e7fccd74b ui2: incomplete :echon message in g&lt; pager #37819
- 4ef217e272c4 ui2: leftover empty lines in msg window #38059
- dff3028fe7df ui2: move windows to current tabpage
- 844caca881f8 ui2: multiline/color replaced message, expanded cmdline, error messages #38044
- d80d7a3eb448 ui2: no paging in dialog below expanded cmdline #38489
- 72a557c61b42 ui2: only copy highlight marks when expanding cmdline #37709
- 301c7065cacf ui2: only highlight Ex command lines in the cmdline #38182
- c4ac36bfd9bc ui2: only redraw when necessary #36457
- 16495e686371 ui2: only set dialog on_key callback once #37905
- b2adfe775d5e ui2: show messages in dialog window when entering expanded cmdline #38465
- c94b7b93c0d9 ui2: start treesitter after deleting cmdline buffer (#36274)
- ea70d2ad8581 ui2: unset Search highlighting (#36633)
- 52dd62aa6ecc ui2: use pager to list consecutively typed commands #38272
- 3038f0191e9d ui2: wildmenu hidden behind dialog window #37684
- e58a84274977 ui2: wrong condition used to detect active pager
- ce9dbd398b4a undo: u_savecommon uses wrong buffer
- 382963891c9b undotree: check foldmethod before invoking fold (#36192)
- f40672be9935 undotree: clear autocmd correctly #36124
- 645206e87f64 undotree: error on `undotree.open()` with title as string #36085
- 26bd9bfab8ce undotree: highlight extmarks like normal text #36087
- 4598305e0b65 undotree: mark title field annotation as optional (#36102)
- 9c89212de1ea undotree: sync scroll pos with undo #36117
- af5ac7c7eaf2 unittests: use -1ULL to mean UNSIGNED MATH.MAX
- c82f83abb0e3 ux: drop "Sorry" from messages #38318
- d93e15088855 vim-patch: add N/A files and re-sort (#37544)
- d2517acdc5fb vim-patch.sh: 'vim-patch:&lt;hash&gt;' token for 'non-patch' commits #36534
- 8bce9342d101 vim-patch.sh: don't treat 1-file runtime-only patch as N/A (#36525)
- 533cc0ab354d vim.diagnostic: improve typing
- 1f9d9cb2e56c vim.fs: abspath(".") returns "/…/." #36583
- 825e182139ee vim.fs: avoid fn.fnamemodify in fs.root #37162
- dc5d313d66c6 vim.fs: joinpath() should ignore empty items #38077
- 14c708634efe vim.fs: make `rm()` work with symlink to a directory
- f11f8546e7fe vim.fs: root() should always return absolute path #36466
- 28e819018520 vim.hl: nvim_buf_del_extmark on invalid buffer #33331
- da650de277b0 vim.json: fix truncation of decoded numbers outside lua_Integer's range #35702
- 7a69fefdb95d vim.json: loss of precision on integers &gt;14 digits #34876
- 78bbe53f7615 vim.loader: randomized AppImage path pollutes luac cache #35636
- 1363ef7d50bb vim.loader: randomized AppImage path pollutes luac cache #36944
- 1fb0126a086d vim.lsp.enable: don't eagerly enable LSP configs during startup #33762
- 49756ebc70dc vim.lsp.inlay_hint: requesting inlay_hints even when disabled #32999
- 10ca09a2cbe4 vim.net: always pass response body to on_response #38460
- 69b286c3bfb3 vim.net: filetype detection, mark unmodified #36297
- 12689c73d882 vim.pack: add() stops unexpectedly on package load error #34787
- 89d26d61d271 vim.pack: increase default timeout #36992
- 8e740db70c04 vim.pack: skip checkout on bad `version` #36038
- 731e616a79d0 vim.system: clear_env=true gives an invalid env to uv.spawn #33955
- 4eebc4693000 vim.system: env=nil passes env=nil to uv.spawn
- 532610388bb0 vim.system: improve error message when cwd does not exist
- 223ac7782e24 vim.system: unclear non-executable message #33455
- 649ff924d990 vim.version: improve construction of '&lt;=a.b.c' and '&gt;a.b.c' ranges
- 092962b07c57 vim.version: vim.VersionRange:has(&lt;prerelease&gt;) (#33324)
- e40c5cb06d1c vterm: handle split UTF-8 after ASCII properly (#37721)
- d9d8c660fd55 watch: invalid joined path #37973
- bc814cfb2cfa winblend: treat braille blank (\u2800) as whitespace #32741
- de950f827236 window: avoid referencing cmdline_win after it is closed #35617
- c14de47f1a12 window: crash closing only non-float if autocmds :tabonly (#37218)
- df62cb3e6944 window: crash closing split if autocmds close other splits (#37233)
- 0e7479bb7637 window: crash on negative window height with 'winbar' #33250
- 4fadc21e3854 window: disallow closing autocmd window in other tabpage
- bf5f7c1591d0 window: don't add a hsep when out of room if global stl is off
- 0d658660c29e window: don't enter unfocusable or hidden prevwin (#34486)
- b4e3461e3fdf window: don't leak fold memory with style=minimal #38287
- c7fd0c17b12f window: don't make hidden/unfocusable previous window current #36142
- 7f5b5d34cfeb window: don't store invalid height in window config (#34885)
- 3a36df9b13a5 window: handle closing the only non-float in other tabpage
- 9813c00dd376 window: restore b_nwindows if win_close_othertab keeps window
- 403fcacfc16f window: skip unfocusable and hidden floats with "{count}&lt;C-W&gt;w" #33810
- 84d84e9b5bef window: style=minimal window loses local options when switching buffers #38138
- da8de99d0bdc window: use real last buffer of closed window
- d1189ea508c8 window: win_move_after UAF from naughty autocmds (#37065)
- 52991d8728c8 windows: don't set window icon on SIGHUP #34260
- 2c04ae9fcc9c windows: wrong RT_MANIFEST ID in nvim.rc #36406
- 3325536150ed winfloat: last_status when changing split to floatwin

PERFORMANCE
--------------------------------------------------------------------------------
- 5edbabdbec0a add on_range in treesitter highlighting
- f9ce939bf53b scheduler priority clamping on macOS #35488
- 14e94f46177d api: reduce redundant `win_find_tabpage` calls (#35643)
- 4adfc4b7bcd1 events: skip Progress prep if there are no subscribers #35871
- bfe42c84de05 extui: delay creating windows, buffers and parser (#34665)
- babdab2f704e filetype: vim.filetype.get_option cache miss when option value is false #37593
- f9d2115a359c highlight: allow decoration providers to skip ranges without data
- 1629493f72e8 lsp: avoid textDocument/definition requests during tag completion (#37260)
- f486f1742e54 lsp: include `previousResultId` in `DocumentDiagnosticParams` #32887
- 42657e70b8a8 lsp: optimize content length extraction from rpc headers
- f517fcd14847 lsp: use string.buffer for rpc loop
- 92e7d5eaf2a9 pack: reduce number of 'opt/' directory computations
- 3aa04f7ee4b0 runtime: hardware accelerated "packadd opt_package"
- 5e64d9241173 runtime: vim.trim for long only whitespace strings
- d3e495ce03e3 snippet: use "[count]|" to move cursor #33571
- 098da1fc2c9b treesitter: parse multiple ranges in languagetree, eliminate flickering #36503
- e656d7be2ee1 tui: faster implementation of terminfo

BUILD
--------------------------------------------------------------------------------
- 4f97239661eb USE_BUNDLED_UNIBILIUM=0 fails #36623
- fb2d736481ee add script to collect typo PRs (#35824)
- 813457d5a6fe adjust parallel functionaltest target names (#38144)
- 8e922c657c2d allow comments in deps.txt #35765
- 3f416ef524a0 bump lua-bitop to 1.0.3 #35063
- 374e869504ed distclean: remove zig-related dirs #38013
- d589ce28b002 drop BUNDLED_CMAKE_FLAG, BUNDLED_LUA_CMAKE_FLAG
- 0ddba68607a9 ensure toolchain is passed to bundled deps #37587
- 10c11c4644e3 haiku os support #36639
- 8a7c9c971f93 ignore out-of-source build folder #33191
- 8c5bd841edff lint decorations_spec etc. with lintlua (#34182)
- 6b936002cc1a make build.zig generate helptags without running "nvim" binary
- 1d70c96e5b39 move shared.lua to _core/
- f51c54ace654 noisy readability-implicit-bool-conversion warning #38282
- a053186aa71d redundant variable in cmake/Deps.cmake #35924
- 6063ecb64921 remove reference to runtime/indent/Makefile (#35935)
- 20e77c5d886a ship "_core/*" as bytecode (built-into Nvim binary)
- 1bf9a07b3e77 slience new clang-tidy warnings #34539
- 845cb5a527d2 slience some unwanted clang-tidy warnings
- c56734017173 support Cygwin + bundled luajit #36417
- e91224bfaa04 support static build #34728
- 20225fc330a4 suppress -Wfree-nonheap-object false positives in lua_cjson #37250
- 092e49d020ae unset $TMUX when running tests (#34178)
- 3dbba90ba764 update-alternatives during deb install #37980
- 19ba5899460f contrib: add bash completion for nvim #35843
- 4b2cbc21544f desktop: declare "Development" category #37794
- d73f2d9657ff emmyrc.json: use StyLua formatter in .emmyrc.json #35196
- 0980617c0df7 msvc: suppress msvc build warning for different enum types (#34591)
- ceb7eb523049 windows: restore tee.exe on Windows #36363
- 5bb8734fb639 windows: vendor xxd.c #36746

VIM PATCHES
--------------------------------------------------------------------------------
- e27e4052c852 2566a9f: check.vim: Improve po message checks
- 5e6f0e58ed16 32a5faa: check.vim complains about overlong comment lines
- cae4fbf973de 3456303: check.vim: Use silent command modifier
- 5f86b4b70d98 4105ef1: Drop superfluous execute permissions for readable files
- 282a794febc4 41adebe: check.vim: detect trailing whitespace
- fc4188ded870 6f585da: Overlong translation files may cause repo to become "dirty"
- c2e0fd1c35c2 7.4.1886 (#36945)
- 8a4977e286fa 7a734b7: tests: fix typo in comment (after v9.1.1511)
- 5299967551f2 8.0.0287: debug mode: cannot access function arguments (#36772)
- c6f0a1920630 8.1.0425: ml_get error and crash with appendbufline()
- 5a14a2679d6a 8.1.0579: cannot attach properties to text
- 36fc266e8689 8.1.0636: line2byte() gives wrong values with text properties
- b5e20d7dff32 8.1.0654: when deleting a line text property flags are not adjusted
- 76729a204469 8.1.0655: when appending a line text property flags are not added
- ef522420f2f5 8.1.0753: printf format not checked for semsg() (#37248)
- 441d222c0df7 8.1.0857: indent functionality is not separated
- 1e81b5407542 8.1.0977: blob not tested with Ruby
- 0c0ef489f95f 8.1.1136: decoding of mouse click escape sequence is not tested (#35551)
- b3d29f396d7d 8.1.1259: crash when exiting early (#35552)
- 00c2e7d89c28 8.1.1526: no numerical value for the patchlevel
- 4765d4e05997 8.1.1584: the evalfunc.c file is getting too big
- 83f38800e7f9 8.1.1681: insert stray "{" when listener gets buffer line
- c9b35360ac42 8.1.1700: listener callback called for the wrong buffer
- 750c350be86b 8.1.1711: listener callback called at the wrong moment
- b79ed66e4a21 8.1.1736: viminfo support is spread out
- 89e2f346a8e1 8.1.1751: when redrawing popups plines_win() may be called often
- 582e0714b5fc 8.1.1752: resizing hashtable is inefficient (#35563)
- 85bd0b6a0374 8.1.1891: functions used in one file are global
- f7c86742e7bf 8.1.1920: cannot always close a popup when filter consumes all events
- b38ce04283e3 8.1.1939: code for handling v: variables in generic eval file (#36312)
- 681ec17b507a 8.1.1940: script tests fail
- 4aac5908edae 8.1.1957: more code can be moved to evalvars.c
- f89e1eb036f1 8.1.1964: crash when using nested map() and filter() (#35715)
- ed0f46af6280 8.1.1978: the eval.c file is too big
- 183f8cc59d85 8.1.1979: code for handling file names is spread out (#36176)
- 3051e8bbb11f 8.1.1981: the evalfunc.c file is too big
- d06fdecb974e 8.1.2008: error for invalid range when using listener and undo
- 860a7e4d210a 8.1.2021: some global functions can be local to the file
- 406f9e3c8c66 8.1.2077: the ops.c file is too big
- fadbc0e71734 8.1.2127: the indent.c file is a bit big
- 5f3d00a5a609 8.1.2371: FEAT_TEXT_PROP is a confusing name (#35466)
- c81f7aeee2d8 8.2.0098: exe stack length can be wrong without being detected (#37136)
- 7048c36ba8d1 8.2.0115: byte2line() does not work correctly with text properties
- 0c24ddb4d82f 8.2.0200: Vim9 script commands not sufficiently tested
- 3fc3f5f194da 8.2.0223: some instructions not yet tested
- d632ffa24366 8.2.0307: Python 3 vim.eval not well tested
- 992eaac08218 8.2.0370: the typebuf_was_filled flag is sometimes not reset (#37404)
- f3cfe9a94bd5 8.2.0371: crash with combination of terminal popup and autocmd (#37433)
- f2df98e849b7 8.2.0443: clipboard code is spread out #35949
- 758e6db06c0b 8.2.0512: Vim9: no optional arguments in func type
- ed012b817d70 8.2.0844: text properties crossing lines not handled correctly
- 088ba835ed5f 8.2.0845: text properties crossing lines not handled correctly (#35483)
- dc2d4b07a89f 8.2.0853: ml_delete() often called with FALSE argument
- 474c47713420 8.2.1123: Python 3 test is old style
- b95413f60198 8.2.1555: not all tests are executed on Github Actions
- d65f5a06fe2b 8.2.1618: Vim9: cannot pass "true" to setloclist()
- ffb45263767d 8.2.1667: local function name cannot shadow a global function name
- 865a28155e7b 8.2.1672: v_lock is used when it is not initialized (#35416)
- 8d3742ae8da4 8.2.1679: ":*" is not recognized as a range (#37052)
- b95848a8f11d 8.2.1756: Vim9: :let will soon be disallowed (#37063)
- 7ae8860674e2 8.2.1912: with Python 3.9 some tests fail
- d6607dae41ed 8.2.1939: invalid memory access in Ex mode with global command
- 1b1a8895bdd8 8.2.1941: Ex mode test fails on MS-Windows with GUI
- 3694fcec2867 8.2.1983: ml_get error when using &lt;Cmd&gt; to open a terminal (#34759)
- ff8edbaa6ce8 8.2.2198: ml_get error when resizing window and using text property
- b3490536b923 8.2.2403: Vim9: profiling if/elseif/endif not correct
- 1ae7c11392eb 8.2.2404: Vim9: profiling try/catch not correct
- ffdee3a2e1bd 8.2.2409: Vim9: profiling only works for one function
- 8b79c3273586 8.2.2411: profile test fails on MS-Windows
- b764a1ba932a 8.2.2423: missing error message
- 7995e7a89bfe 8.2.2456: Coverity warning for strcpy() into fixed size array
- dccc35e6e93d 8.2.2571: test may leave file behind
- d7cf1b31d5ca 8.2.2834: Vim9: :cexpr does not work with local variables
- 9a5b3a39f32b 8.2.2905: no error when defaults.vim cannot be loaded
- 525c348c29a6 8.2.2992: Vim9: completion for :disassemble is incomplete
- b480b0cd5d12 8.2.3159: cursor displayed in wrong position after deleting line
- e77d15cc5d63 8.2.3348: line2byte() returns wrong value after adding textprop
- cd25ca5e0caf 8.2.3377: Vim9: :disass completion does not understand "s:"
- 4f71d9ce355d 8.2.3383: Vim9: completion for :disassemble adds parenthesis
- e0dcdef1810b 8.2.3431: completion for :disas sorts local functions first
- cba2f65ee4da 8.2.3602: Python3 test fails with Python 3.10 on MS-Windows
- 398cf6d8d39e 8.2.3657: Vim9: debug text misses one line of return statement
- a331d187ba75 8.2.3662: illegal memory access if malloc() fails (#36939)
- 9f84e01dfb0d 8.2.3673: crash when allocating signal stack fails
- f15c28ed7a85 8.2.3766: converting a funcref to a string leaves out "g:"
- a274bdf2d16b 8.2.3767: crash when using NULL partial
- 15d3a83999db 8.2.3795: too many #ifdefs
- 992543c36163 8.2.3841: Vim9: outdated TODO items, disabled tests that work (#37900)
- f211af3ab747 8.2.3962: build fails for missing error message
- 24675ffa97d4 8.2.3968: build failure
- 09964b7ef0e3 8.2.4379: an empty change is reported to a listener
- 08eb133c3f7c 8.2.4474: memory allocation failures not tested in quickfix code
- ce0599082303 8.2.4528: crash when using null_function for a partial
- 7ce17cd2a265 8.2.4529: Vim9: comparing partial with function fails
- 2ba44af7e05d 8.2.4548: script-local function is deleted when used in a funcref
- 0c70fbf0d639 8.2.4633: Visual range does not work before command modifiers
- 78292dcc3d0e 8.2.4636: not using Visual range
- 0fa678c02f56 8.2.4637: warning for using uninitialized variable
- cc95a7d8b8a5 8.2.4738: Esc on commandline executes command instead of abandoning it
- cd543d618dcf 8.2.4763: using invalid pointer with "V:" in Ex mode
- ffdb316491a1 8.2.4772: old Coverity warning for not checking ftell() return value
- e96c61d92d4f 8.2.4773: build failure without the +eval feature
- a979a6237e63 8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer (#37073)
- 90b1202cfb66 8.2.4851: compiler warning for uninitialized variable
- b6d0c391fc12 8.2.4878: valgrind warning for using uninitialized variable
- eb67f3a6ba52 8.2.5017: gcc 12.1 warns for uninitialized variable
- edd99f09c7ac 8.2.5092: using "'&lt;,'&gt;" in Ex mode may compare unrelated pointers
- f4a33929d9cd 8.2.5161: might still access invalid memory
- 26641c0c5614 9.0.0010: returning 0 for has('patch-9.0.0') is inconsistent
- 2c560d85447f 9.0.0025: accessing beyond allocated memory with the cmdline window
- 0d3ee2686092 9.0.0057: has('patch-xxx') returns true
- 96a514ed464d 9.0.0106: illegal byte regexp test doesn't fail when fix is reversed
- d4a8d169a297 9.0.0113: has() is not strict about parsing the patch version
- 899ec829be85 9.0.0145: substitute that joins lines drops text properties (#37108)
- efacb1070926 9.0.0154: text properties wrong after splitting a line
- 27eb0aba3c1b 9.0.0433: Coverity warns for not checking allocation failure
- 9b15d4c756a6 9.0.0688: debugger does not display the whole command
- 58ee249c2cd9 9.0.0729: the rightleft and arabic features are disabled
- f60051e00d1a 9.0.0874: using freed memory when executing unmenu at more prompt
- e51f5e17e184 9.0.0909: error message for layout change does not match action (#37436)
- 72d3506ce945 9.0.1033: tiny build fails because of conflicting typedef
- 3ac981e83810 9.0.1066: test function name is wrong
- 69bed0431c4d 9.0.1427: warning for uninitialized variable
- 08e193633b76 9.0.1480: using popup menu may leave text in the command line
- 827cfe4a7644 9.0.1653: Amiga: default 'viewdir' may not work
- bd0555ecd497 9.0.1654: MS-Windows: test for default 'viewdir' fails
- b869cf8ddc9c 9.0.1689: python 3.12 produces warnings and fails test
- 53fd3657ccf5 9.0.1758: vim9 no class identifiers in stack dumps
- 1afdcb8f2b3b 9.0.1899: potential buffer overflow in PBYTE macro
- 7c38f428f445 9.0.2023: need more tests for :cq
- d6e5286d2c53 9.1.0059: No event triggered before creating a window
- 3e655d3e42ee 9.1.0063: GTK code can be improved
- 4544cec168e0 9.1.0117: Stop split-moving from firing WinNew and WinNewPre autocommands
- 60a0e3d0a0f7 9.1.0151: ml_get_buf_len() does not consider text properties (#37094)
- 2a28149efc70 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
- 453dfbf7d668 9.1.0535: newline escape wrong in ex mode
- 6ce964aed6aa 9.1.0539: Not enough tests for what v9.1.0535 fixed
- 17601e709f5d 9.1.0546: vim-tiny fails on CTRL-X/CTRL-A
- d5a6040967d8 9.1.0598: fuzzy completion does not work with default completion
- a9aedfbc5880 9.1.0605: internal error with fuzzy completion
- 9757b11aaf58 9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completion
- d9f4c1db23bf 9.1.0634: Ctrl-P not working by default
- f4ddbaeb9e3d 9.1.0654: completion does not respect completeslash with fuzzy
- 786c5fbdec79 9.1.0671: Problem:  crash with WinNewPre autocommand
- 69a9a25fccd3 9.1.0689: [security]: buffer-overflow in do_search() with 'rightleft'
- 71662bbb4903 9.1.0695: tests: test_crash leaves Untitled file around
- 50423942418b 9.1.0697: [security]: heap-buffer-overflow in ins_typebuf (#37372)
- 532cc88604c6 9.1.0698: tests: "Untitled" file not removed when running Test_crash1_3 alone
- 11b369925287 9.1.0700: crash with 2byte encoding and glob2regpat()
- 0de85e322a83 9.1.0701: crash with NFA regex engine when searching for composing chars
- 8c31b3eeac4e 9.1.0702: Patch 9.1.0700 broke CI
- 094d3dd3d413 9.1.0703: crash with 2byte encoding and glob2regpat()
- 767a52ba3086 9.1.0705: Sorting of fuzzy filename completion is not stable
- 0eb708aa8a1a 9.1.0721: tests: test_mksession does not consider XDG_CONFIG_HOME
- fbac2545110b 9.1.0733: keyword completion does not work with fuzzy
- 70bb7999f7ec 9.1.0748: :keep* commmands are sometimes misidentified as :k
- 62822d750d4e 9.1.0877: tests: missing test for termdebug + decimal signs
- 94f7302e6696 9.1.0893: No test that undofile format does not regress (#37193)
- c5dbee7910b1 9.1.0918: tiny Vim crashes with fuzzy buffer completion
- 9cc93b6def0c 9.1.0974: typo in change of commit v9.1.0873
- 44f70b4be146 9.1.1006: PmenuMatch completion highlight can be combined
- c17caca9b7a5 9.1.1008: tests: test for patch 9.1.1006 doesn't fail without the patch
- 20a7e7444419 9.1.1043: [security]: segfault in win_line()
- 30293575204b 9.1.1131: potential out-of-memory issue in search.c
- 0af6d6ff5e0a 9.1.1147: preview-window does not scroll correctly
- 90d59e6c8aa6 9.1.1178: not possible to generate completion candidates using fuzzy matching
- 17db70f3af38 9.1.1181: Unnecessary STRLEN() calls in insexpand.c
- 10fde593f177 9.1.1182: No cmdline completion for 'completefuzzycollect'
- cd95ea5d48da 9.1.1185: endless loop with completefuzzycollect and no match found
- 28f61994748e 9.1.1197: process_next_cpt_value() uses wrong condition
- e39cdafed968 9.1.1201: 'completefuzzycollect' does not handle dictionary correctly
- e3990f8643c9 9.1.1202: Missing TabClosedPre autocommand
- 0d3ed7904a17 9.1.1211: TabClosedPre is triggered just before the tab is being freed
- dc00b379658f 9.1.1212: filetype: logrotate'd pacmanlogs are not recognized (#33412)
- 162edf7b30dd 9.1.1214: matchfuzzy() can be improved for camel case matches
- f9280cde0ae1 9.1.1217: tests: typos in test_matchfuzzy.vim
- 797195e0ea55 9.1.1219: Strange error with wrong type for matchfuzzy() "camelcase"
- 750e1836afb4 9.1.1224: cannot :put while keeping indent (#33076)
- 0af780e8df84 9.1.1228: completion: current position column wrong after got a match
- 2331c52affe6 9.1.1243: diff mode is lacking for changes within lines
- b20fc95c1a20 9.1.1245: need some more tests for curly braces evaluation
- e2e0f92f17c8 9.1.1246: coverity complains about some changes in v9.1.1243
- ae98d0a560b0 9.1.1247: fragile setup to get (preferred) keys from key_name_entry (#33102)
- e4172bcbdf1c 9.1.1249: tests: no test that 'listchars' "eol" doesn't affect "gM"
- 62da4e2949cc 9.1.1250: cannot set the maximum popup menu width
- cb31663663b9 9.1.1252: typos in code and docs related to 'diffopt' "inline:" (#33143)
- 36d143e70722 9.1.1253: abort when closing window with attached quickfix data
- 675ee057e065 9.1.1255: missing test condition for 'pummaxwidth' setting
- 52b19e012474 9.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw()
- 89bc9455543a 9.1.1258: regexp: max \U and \%U value is limited by INT_MAX (#33156)
- 431c037709d1 9.1.1260: Hang when filtering buffer with NUL bytes (#33192)
- e4f37481ff37 9.1.1261: No test for 'pummaxwidth' non-truncated items (#33193)
- b64c2d763e8f 9.1.1262: heap-buffer-overflow with narrow 'pummaxwidth' value
- 76cbe9c8f874 9.1.1263: string length wrong in get_last_inserted_save() (#33194)
- 8a40213eb38d 9.1.1265: tests: no tests for typing normal char during completion (#33239)
- e5ddf7ae7dbd 9.1.1266: MS-Windows: type conversion warnings (#33264)
- 5cdfa3324f4c 9.1.1268: filetype: dax files are not recognized
- 8cf413e450bf 9.1.1269: completion: compl_shown_match is updated when starting keyword completion
- 4983fa45fcfb 9.1.1271: filetype: Power Query files are not recognized
- b01921cb55d7 9.1.1272: completion: in keyword completion Ctrl_P cannot go back after Ctrl_N
- e8785c2e9450 9.1.1276: inline word diff treats multibyte chars as word char (#33323)
- 00eff4b19652 9.1.1283: quickfix stack is limited to 10 items
- 1c723b2e6f51 9.1.1284: not possible to configure pum truncation char
- 8af9f8ab5ecd 9.1.1286: filetype: help files not detected when 'iskeyword' includes ":" (#33377)
- 454abde1aa99 9.1.1287: quickfix code can be further improved
- c73a82756408 9.1.1288: Using wrong window in ll_resize_stack() (#33397)
- 51a967d58acc 9.1.1289: tests: no test for matchparen plugin with WinScrolled event (#33411)
- 7c15987444ff 9.1.1290: tests: missing cleanup in test_filetype.vim (#33420)
- aba33c72f0d0 9.1.1291: too many strlen() calls in buffer.c
- f3b38b46ebbe 9.1.1292: statusline not correctly evaluated
- 6e5671b00df1 9.1.1296: completion: incorrect truncation logic
- aa47c8efa90f 9.1.1297: Ctrl-D scrolling can get stuck #33453
- fd76646a95e3 9.1.1298: define_function() is too long (#33457)
- 287955cfb401 9.1.1299: filetype: mbsyncrc files are not recognized
- 9272dc959729 9.1.1300: wrong detection of -inf (#33474)
- 7651c432525f 9.1.1301: completion: cannot configure completion functions with 'complete'
- c249389adb8a 9.1.1302: Coverity warns about using uninitialized value
- d2d1b5e944b5 9.1.1303: missing out-of-memory check in linematch.c (#33487)
- 7da1639a14f9 9.1.1304: filetype: some man files are not recognized
- b0f97177d470 9.1.1305: completion menu active after switching windows/tabs (#33488)
- 54d605509828 9.1.1306: completion menu rendering can be improved
- e3e8dfe99c89 9.1.1307: make syntax does not reliably detect different flavors (#33498)
- 1de276bbcd8f 9.1.1308: completion: cannot order matches by distance to cursor (#33491)
- afca5b564e76 9.1.1309: tests: no test for 'pummaxwidth' with non-truncated "kind"
- f9f6dc4262ea 9.1.1310: completion: redundant check for preinsert effect (#33505)
- b6acf6112bf6 9.1.1311: completion: not possible to limit number of matches
- 95a255a54840 9.1.1312: tests: Test_backupskip() fails when HOME is defined (#33504)
- 857ff5cae936 9.1.1313: compile warning about uninitialized value
- ccdb37b075c6 9.1.1314: max allowed string width too small
- b4c759716a9e 9.1.1315: completion: issue with fuzzy completion and 'completefuzzycollect' (#33520)
- e2e6c159d3dc 9.1.1317: noisy error when restoring folds from session fails
- 0251a25541a3 9.1.1318: tests: test_format fails
- c67398d31bd9 9.1.1319: Various typos in the code, issue with test_inst_complete.vim (#33527)
- 255bf6e5b11e 9.1.1320: filetype: alsoft config files are not recognized
- 1b0dedb81c12 9.1.1321: filetype: MS ixx and mpp files are not recognized
- dca8b3fede61 9.1.1322: small delete register cannot paste multi-line correctly (#33531)
- 328640aed0ff 9.1.1323: b:undo_ftplugin not executed when re-using buffer
- da20804a6abb 9.1.1325: tests: not checking error numbers properly
- d3cded796c3b 9.1.1326: invalid cursor position after 'tagfunc' (#33556)
- 9fafdcb99cc9 9.1.1327: filetype: nroff detection can be improved
- 98ec3fdf744f 9.1.1328: too many strlen() calls in indent.c (#33563)
- f3c4fec43ffe 9.1.1329: cannot get information about command line completion
- 07d60e8f195c 9.1.1331: Leaking memory with cmdcomplete()
- 63689deb4573 9.1.1337: Undo corrupted with 'completeopt' "preinsert" when switching buffer (#33600)
- 3d126ec89f23 9.1.1338: Calling expand() interferes with cmdcomplete_info()
- ac8ae1596cda 9.1.1340: cannot complete :filetype arguments (#33602)
- fcabbc2283c5 9.1.1341: cannot define completion triggers
- 41179a6bc125 9.1.1342: Shebang filetype detection can be improved
- 4ddd31de14dc 9.1.1343: filetype: IPython files are not recognized
- 31e31273bc03 9.1.1344: double free in f_complete_match() (after v9.1.1341)
- 766cd01ff2ff 9.1.1346: missing out-of-memory check in textformat.c (#33639)
- d75410b0918c 9.1.1349: CmdlineLeavePre may trigger twice
- c64cada12e8c 9.1.1350: tests: typo in Test_CmdlineLeavePre_cabbr()
- afcc4e95d5cb 9.1.1351: Return value of getcmdline() inconsistent in CmdlineLeavePre
- d107375f0cb2 9.1.1353: missing change from v9.1.1350
- 65a4c8f3caf8 9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer
- 074a6abd55af 9.1.1359: filetype: GNU Radio config files are not recognized
- da3eeb4b32bd 9.1.1360: filetype: GNU Radio companion files are not recognized
- 627c648252e1 9.1.1361: [security]: possible use-after-free when closing a buffer (#33820)
- 73f2286f08ca 9.1.1370: CI Tests favor GTK2 over GTK3
- 6b955af8755b 9.1.1373: 'completeopt' checking logic can be simplified
- 15d31fe7a6c8 9.1.1374: completion: 'smartcase' not respected when filtering matches
- 05dab80d8d8f 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer
- d95b0a5396ec 9.1.1376: quickfix dummy buffer may remain as dummy buffer
- 8605f5655bd8 9.1.1378: sign without text overwrites number option (#33942)
- ef5c5dc99b48 9.1.1380: 'eventignorewin' only checked for current buffer
- 4b3a9ac4133c 9.1.1381: completion: cannot return to original text (#33966)
- e4c4d672b581 9.1.1383: completion: 'isexpand' option does not handle space char correct (#33999)
- e01f196e445a 9.1.1384: still some problem with the new tutors filetype plugin
- d539a952da25 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling (#33992)
- 6b9665a507b1 9.1.1387: memory leak when buflist_new() fails to reuse curbuf
- f87b6230f124 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling (#34023)
- f2aec4bc0579 9.1.1389: completion: still some issue when 'isexpand' contains a space (#34026)
- 2fda267faf0b 9.1.1393: missing test for switching buffers and reusing curbuf
- ec5f054dc957 9.1.1395: search_stat not reset when pattern differs in case (#34058)
- 99384fcd9c29 9.1.1396: 'grepformat' is a global option (#34060)
- dc6885dc24c9 9.1.1398: completion: trunc does not follow Pmenu highlighting attributes (#34084)
- 153a91089768 9.1.1402: multi-byte mappings not properly stored in session file (#34131)
- f791ae82e5b1 9.1.1404: wrong link to Chapter 2 in new-tutor
- 071dcab68f81 9.1.1405: tests: no test for mapping with special keys in session file (#34146)
- bd01bd656479 9.1.1407: Can't use getpos('v') in OptionSet when using setbufvar() (#34177)
- f2373a89d783 9.1.1408: not easily possible to complete from register content (#34198)
- eeff6ca8ff90 9.1.1409: using f-flag in 'complete' conflicts with Neovim
- 2411f924a320 9.1.1410: out-of-bounds access with 'completefunc'
- c4e52d604c9a 9.1.1413: spurious CursorHold triggered in GUI on startup (#34195)
- bec1449cc510 9.1.1416: completion limits not respected for fuzzy completions
- 6c4ddf607f0b 9.1.1417: missing info about register completion in complete_info() (#34219)
- 2763d061008a 9.1.1419: It is difficult to ignore all but some events (#34245)
- 0471cc75954d 9.1.1420: tests: could need some more tests for shebang lines
- f1f106be3d24 9.1.1421: tests: need a test for the new-style tutor.tutor (#34267)
- 9bfd0162dc11 9.1.1422: scheduling of complete function can be improved
- 525c02a89f96 9.1.1424: PMenu selection broken with multi-line selection and limits
- eb108528044d 9.1.1426: completion: register contents not completed
- 97ca92f9ddd7 9.1.1428: completion: register completion needs cleanup
- f89381e05cb5 9.1.1431: Hit-Enter Prompt when loading session files
- 1c417b565ec8 9.1.1432: GTK GUI: Buffer menu does not handle unicode correctly (#34313)
- 6171ab7f4ec6 9.1.1433: Unnecessary :if when writing session
- 552983515f2a 9.1.1435: completion: various flaws in fuzzy completion (#34335)
- 2b79d9ba1a03 9.1.1437: MS-Windows: internal compile error in uc_list() (#34379)
- d2dad3089841 9.1.1439: Last diff folds not merged (#34380)
- bcfc22853af1 9.1.1441: completion: code can be improved
- 78e2f6251675 9.1.1442: tests: Test_diff_fold_redraw() is insufficient (#34407)
- 7a58cf4b962c 9.1.1443: potential buffer underflow in insertchar() (#34408)
- 72f4bb9ae861 9.1.1444: Unused assignment in set_fuzzy_score()
- bcba067dc212 9.1.1445: negative matchfuzzy scores although there is a match (#34409)
- 2c80b05cbd9a 9.1.1446: filetype: cuda-gdb config files are not recognized
- ac772706cccb 9.1.1447: completion: crash when backspacing with fuzzy completion
- 5075043823c0 9.1.1449: typo in pum_display()
- 612f8e7c9e81 9.1.1450: Session has wrong arglist with :tcd and :arglocal (#34430)
- 1abcd9fe28b1 9.1.1452: completion: redundant check for completion flags (#34434)
- 3a2ac2300b7b 9.1.1454: tests: no test for pum at line break position (#34462)
- 3e984cf02bdc 9.1.1463: Integer overflow in getmarklist() after linewise operation (#34532)
- ae0981070e25 9.1.1464: gv does not work in operator-pending mode (#34534)
- 5cf135f9a0ac 9.1.1466: filetype: not all lex files are recognized
- fb8dba413f2b 9.1.1467: too many strlen() calls (#34572)
- 487112d6749d 9.1.1468: filetype: bright(er)script files are not recognized
- 8ed6f00ab06d 9.1.1471: completion: inconsistent ordering with CTRL-P (#34571)
- ee2fc31b3664 9.1.1473: inconsistent range arg for :diffget/diffput (#34588)
- 534ec8d44725 9.1.1475: completion: regression when "nearest" in 'completeopt' (#34607)
- 7f3249fa0de0 9.1.1476: missing out-of-memory checks in cmdexpand.c (#34624)
- 7138cdaef84b 9.1.1477: no easy way to deduplicate text
- 11f8e8eb6316 9.1.1478: Unused assignment in ex_uniq()
- a0f3fdba582f 9.1.1479: regression when displaying localized percentage position
- 3bf27b2c74aa 9.1.1481: gcc complains about uninitialized variable
- 0b91e9f83b88 9.1.1482: scrolling with 'splitkeep' and line() (#34670)
- a565774bfc17 9.1.1483: not possible to translation position in buffer (#37099)
- 504327020d6c 9.1.1484: tests: Turkish locale tests fails on Mac
- dd707246fd83 9.1.1490: 'wildchar' does not work in search contexts
- ee717447dd7e 9.1.1491: missing out-of-memory checks in cmdexpand.c
- 9a44bbd57410 9.1.1493: manually comparing positions on buffer
- 66f02ee1fea2 9.1.1498: completion: 'complete' funcs behave different to 'omnifunc' (#34718)
- da42f99eb414 9.1.1501: filetype: flix files are not recognized
- 18cfbf8fb2c7 9.1.1502: filetype: quickbms files are not recognized
- 0a14ac326106 9.1.1503: filetype: haxe files are not recognized
- fc1be07d28ac 9.1.1504: filetype: numbat files are not recognized
- 6ebcb4a4d6ce 9.1.1505: not possible to return completion type for :ex command
- eef62e815df0 9.1.1506: tests: missing cleanup in Test_search_cmdline_incsearch_highlight() (#34748)
- bb75610d998c 9.1.1507: symlinks are resolved on :cd commands (#34758)
- c48dea20f5ad 9.1.1508: string manipulation can be improved in cmdexpand.c (#34755)
- 9c04eb02adde 9.1.1509: patch 9.1.1505 was not good
- 46727a7feb15 9.1.1510: Search completion may use invalid memory
- 11e967d5af19 9.1.1511: tests: two edit tests change v:testing from 1 to 0
- 85e6feedb0de 9.1.1512: completion: can only complete from keyword characters (#34798)
- cf5506f0fde1 9.1.1516: tests: no test that 'incsearch' is updated after search completion (#34808)
- 3177841bdf35 9.1.1517: filetype: autopkgtest files are not recognized
- 6fd2a3040f7d 9.1.1518: getcompletiontype() may crash (#34819)
- 842ca1fd5cfb 9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail
- 27daeb0d688e 9.1.1520: completion: search completion doesn't handle 'smartcase' well (#34840)
- c3c8d25293fd 9.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect' (#34836)
- ef0ec7edac5b 9.1.1526: completion: search completion match may differ in case
- 5fe310c5e689 9.1.1528: completion: crash with getcompletion()
- db7c2acbc610 9.1.1532: termdebug: not enough ways to configure breakpoints (#34851)
- 00f8f94d5b06 9.1.1535: the maximum search count uses hard-coded value 99 (#34873)
- d4074b812d0b 9.1.1538: tests: string options in gen_opt_test.vim not fully sorted (#34891)
- f487ae90cfc4 9.1.1539: completion: messages don't respect 'shm' setting (#34923)
- 7631302ad620 9.1.1544: :retab cannot be limited to indentation only (#34939)
- 4195b82ec9ed 9.1.1548: filetype: OpenFGA files are not recognized
- 8bccd0797252 9.1.1549: filetype: pkl files are not recognized
- 8964ad45dab9 9.1.1550: defaults: 'showcmd' is not enabled in non-compatible mode on Unix
- 5cfdd4d8b901 9.1.1551: [security]: path traversal issue in zip.vim (#34951)
- 77c6cae25bc3 9.1.1552: [security]: path traversal issue in tar.vim
- 436ae1d23e30 9.1.1554: crash when omni-completion opens command-line window
- fcec1610e7ba 9.1.1555: completion: repeated insertion of leader (#34962)
- e6ce067f02ed 9.1.1556: string handling in cmdexpand.c can be improved (#34966)
- 4f0ab9877bef 9.1.1557: not possible to anchor specific lines in diff mode (#34967)
- be3586431896 9.1.1559: tests: Test_popup_complete_info_01() fails when run alone
- 9d1333a385fc 9.1.1563: completion: ruler may disappear (#34977)
- b91613f42c33 9.1.1567: crash when using inline diff mode (#35005)
- 0f9b5dd0b4b8 9.1.1570: Copilot suggested some improvements in cmdexpand.c (#35006)
- bbc368dfce25 9.1.1571: CmdlineChanged triggered to often
- b6b793634a63 9.1.1572: expanding $var does not escape whitespace for 'path' (#35010)
- 22d1fb8c014f 9.1.1573: Memory leak when pressing Ctrl-D in cmdline mode
- 9377db254509 9.1.1576: cannot easily trigger wildcard expansion (#35022)
- f7af0cff359f 9.1.1590: cannot perform autocompletion (#35141)
- e40199c6c6cd 9.1.1594: completion: search completion throws errors (#35198)
- 5aaee7d2afdd 9.1.1596: tests: Test_search_wildmenu_iminsert() depends on help file (#35210)
- 1f7ab25915f1 9.1.1598: filetype: waybar config file is not recognized
- 53ac2ad20ab2 9.1.1599: :bnext doesn't go to unlisted help buffers (#35216)
- 52c251909572 9.1.1600: using diff anchors with hidden buffers fails silently (#35218)
- 7230296bdb71 9.1.1601: Patch v8.1.0425 was wrong
- 62f2b10db3f3 9.1.1602: filetype: requirements-*.txt files are not recognized
- b1e35cbd7b32 9.1.1603: completion: cannot use autoloaded funcs in 'complete' F{func}
- 36361d6e4a18 9.1.1604: completion: incsearch highlight might be lost (#35236)
- 798cb0f19a3b 9.1.1605: cannot specify scope for chdir() (#35239)
- e3913c0fc22f 9.1.1606: filetype: a few more files are not recognized (#35268)
- e7dfbf13439f 9.1.1607: :apple command detected as :append (#35237)
- fe42c81f2e07 9.1.1608: No command-line completion for :unsilent {command}
- 5f23aaba00dc 9.1.1609: complete: Heap-buffer overflow with complete function
- 1969f685af98 9.1.1610: completion: hang or E684 when 'tagfunc' calls complete() (#35243)
- 77500c5ad5c6 9.1.1611: possible undefined behaviour in mb_decompose() (#35275)
- 1eca030fb2dd 9.1.1612: Ctrl-G/Ctrl-T do not ignore the end search delimiter
- 9e8d551b1eef 9.1.1613: tests: test_search leaves a few swapfiles behind
- f79430e2ce2e 9.1.1615: diff format erroneously detected (#35276)
- f0d834198438 9.1.1618: completion: incorrect selected index returned from complete_info() (#35284)
- dae79f2b67ba 9.1.1619: Incorrect E535 error message (#35285)
- 47e3aecb78c7 9.1.1620: filetype: composer.lock and symfony.lock files not recognized (#35291)
- dd306bd48abc 9.1.1621: flicker in popup menu during cmdline autocompletion
- 9d85f086d9a9 9.1.1622: Patch v9.1.1432 causes performance regressions (#35288)
- 013af17ed906 9.1.1623: Buffer menu does not handle unicode names correctly (#35353)
- 50ceac4054fd 9.1.1625: Autocompletion slow with include- and tag-completion (#35318)
- 35be59cc7b8d 9.1.1626: cindent: does not handle compound literals (#35319)
- 869000e7ce4e 9.1.1627: fuzzy matching can be improved
- 2619a749a532 9.1.1628: fuzzy.c has a few issues
- e38e65b86c47 9.1.1630: tests: fuzzy bufname completion test doesn't match successfully
- 7afcfb6c9ac5 9.1.1632: memory leak in fuzzy.c
- 8d154e5927d7 9.1.1633: Search pattern shown incorrectly with negative offset (#35337)
- 4019d3050d19 9.1.1638: completion: not possible to delay the autcompletion
- 577f9fa1becf 9.1.1640: Unicode has deprecated some code-points (#35358)
- 37119ad0d24f 9.1.1645: fuzzy.c can be further improved (#35371)
- 43bf045005b0 9.1.1646: MS-Windows: completion cannot handle implicit drive letters
- ba25f3e4d40f 9.1.1647: filetype: Cangjie files are not recognized
- 3e57c5216fad 9.1.1648: MS-Windows: some style issues with patch v9.1.1646
- 25bc41847e49 9.1.1649: attrs allocation and fuzzy growarray could leak (#35383)
- 6ef996a082e3 9.1.1657: Autocompletion adds delay
- b9699d5701bb 9.1.1665: Outdated comment in eval.c (#35436)
- 639f9f4cdaa3 9.1.1667: Another outdated comment in eval.c (#35438)
- 963ead29d9f0 9.1.1670: completion: autocomplete breaks second completion
- 810a234978d3 9.1.1672: completion: cannot add timeouts for 'cpt' sources (#35447)
- 3b5337ab6c0a 9.1.1676: completion: long line shown twice
- 29f30ad91c59 9.1.1679: unclear what key causes CmdlineLeave autocommand (#35677)
- 523371b0447e 9.1.1681: tests: no test for actually moving cursor with 'acl' (#35452)
- 821bfc02fbae 9.1.1685: Missing changes from PR 18068 (#35482)
- dab31a363793 9.1.1687: filetype: autoconf filetype not always correct
- 4263ec21c238 9.1.1688: potential buffer overrun in bufwrite.c (#35497)
- c74192788314 9.1.1689: CmdlineChanged not triggered by &lt;Del&gt; (#35496)
- b116ed7b126e 9.1.1690: Missing recursion guard in dos/unix_expandpath() (#35499)
- 8a1afac65361 9.1.1693: tests: test_filetype fails in shadow dir
- 117b129378be 9.1.1694: filetype: Buck eXtension Lang files are not recognized (#35504)
- 3586e047e64d 9.1.1695: Need more Vim script specific tests (#35500)
- 61712cbc3abc 9.1.1697: tests: no test for aclocal.m4
- 2ac00f13502f 9.1.1698: Some error numbers are not documented (#35522)
- 24020ef2dd3d 9.1.1700: Multiline ignorecase specific pattern does not match with 'ignorecase' (#35520)
- c96136140691 9.1.1701: tests: failure on CI with GUI and ASAN in test_edit.res
- a3b115994950 9.1.1702: tests: test_edit still fails on CI
- c333d64663d3 9.1.1709: filetype: kyaml files are not recognized
- 68a2e0ef7821 9.1.1713: filetype: fvwm2m4 files are no longer detected
- 1359578abbcf 9.1.1714: completion: wildmode=longest:full selects wrong item
- 8fc1db043a50 9.1.1717: filetype: AWS cli alias file is not recognized #35581
- 06df3376170f 9.1.1718: filetype: kubectl config file is not recognized #35583
- c4c69c5012e2 9.1.1724: Compiler warning about ununitialized variable in ex_docmd. (#35595)
- 17da1ad8f44f 9.1.1730: filetype: vivado journal/log files are not recognized (#35613)
- 0bf4b7898cd6 9.1.1731: Not using const qualifier for opchars (#35634)
- 0bafbe872b2f 9.1.1732: filetype: .inc file detection can be improved (#35635)
- 51af2797c2fe 9.1.1734: Memory leak when allocating match fails (#35646)
- f2bda1effc17 9.1.1737: Patch v9.1.1714 introduce a regression for wildmenu
- b51eba927324 9.1.1738: cmdline-autocompletion breaks history navigation
- d784ed7013b1 9.1.1739: Matches may be listed twice with wildmode=longest,list
- 18f24b85c34a 9.1.1740: Memory leak with wildmode=longest,full and wildoptions=pum
- eb19206e032a 9.1.1742: complete: preinsert does not work well with 'autocomplete' (#35692)
- 223f9622df50 9.1.1744: tests: Test_skip_wildtrigger_hist_navigation() may fail
- f6ed46c2a747 9.1.1747: completion: redo (.) broken with preinsert and autocompletion (#35698)
- 5a7586a10960 9.1.1750: completion: preinserted text highlighed using ComplMatchIns
- e084a99040db 9.1.1751: potential buffer-overflow in find_pattern_in_path() (#35705)
- aa33ea86e1ce 9.1.1752: tests: need another test for v9.1.1750 behaviour
- cf9b7a37cc3c 9.1.1753: defaults: 'diffopt' option value can be improved (#35727)
- ae588c183f03 9.1.1754: :helptags doesn't skip examples with syntax
- 7b8b9d270f6e 9.1.1758: Diff mode crashes when adding text property in autocommand (#35760)
- 61d7d983d6b7 9.1.1761: 'ruler' is set in defaults.vim
- 051b8b88c812 9.1.1762: completion: selected item not cleared on &lt;BS&gt; with 'ac'
- 114336ac1d26 9.1.1763: filetype: kitty config files are not recognized
- e7ff13270824 9.1.1764: filetype: CODEOWNERS file not recognized (#35789)
- 95267b664cc1 9.1.1769: completion: "preinsert" insert wrong word with 'smartcase' and 'autocomplete' (#35834)
- 0763a85f43fb 9.1.1771: complete: some redraw issues with 'autocomplete'
- e2166661d483 9.1.1772: completion: inconsistent selection of first item with 'autocomplete' (#35835)
- c9f62674028d 9.1.1773: Crash in BufLeave after BufUnload closes other windows (#35830)
- 39a21d749d9f 9.1.1774: cannot calculate sha256 of a Blob
- e3f15d5424ca 9.1.1775: filetype: Mamba configuration files are not recognized #35829
- f91d416403e9 9.1.1776: completion: "adding" expansion doesn't work with cfc=keyword (#35850)
- d3bd1fba6acb 9.1.1777: Mouse click to open fold doesn't work with utf-8 "foldclose" chars (#35851)
- a5955e5cc533 9.1.1778: sha256() treats empty blob and null blob differently
- a70997442e0c 9.1.1779: completion: 'autocomplete' cannot be enabled per buffer (#35853)
- e887602eb545 9.1.1780: mbyte contains overlapping list of utf_classes table (#35869)
- 0f01cc85bdee 9.1.1781: some functions could be defined static
- 7cdf3bb68a15 9.1.1783: ins_compl_leader() too far away from ins_compl_leader_len()
- 0c23b863f472 9.1.1787: filetype: not all Sway config files are recognized
- d9fa4956084e 9.1.1790: completion: Enter does not insert match with "noinsert" (#35917)
- 7b9c063d1160 9.1.1797: completion: autocompletion can be improved
- 2aab242a0110 9.1.1798: Wrong display with 'sms' and long wrapped virt text at EOL (#35930)
- 35fc4fda999f 9.1.1799: completion: crash with autcompletion (#35963)
- f30a33858f23 9.1.1800: completion: strange behaviour with 'ac' completeopt=longest,preinsert
- 0fa0717d4ed7 9.1.1802: 'nowrap' in a modeline may hide malicious code (#35946)
- ff564237d248 9.1.1807: :set doesn't clear local insecure flag like :setlocal does
- 42f1864b62be 9.1.1808: Option insecure flags not copied when splitting window
- 756e55dc490d 9.1.1810: completion: "longest" doesn't work for manual completion with 'ac'
- c881bc537eac 9.1.1817: popup: there are some position logic bugs (#36075)
- df0b9e7a5dc8 9.1.1818: possible crash when calculating topline in diff.c
- b6b80824cc71 9.1.1819: Cannot configure the inner foldlevel indicator (#36010)
- 8151fc59cf28 9.1.1820: completion: some issues with 'acl' (#36007)
- 2c76a50e20de 9.1.1821: filetype: Not all PKL files are recognized (#36008)
- 0fca343d641c 9.1.1823: diff: w_topline may be invalidated (#36018)
- 94bd212dbcdf 9.1.1824: tests: no test for displaying 'foldcolumn' with Unicode "foldinner" (#36019)
- f8b50bf3b0f6 9.1.1825: completion: flicker when LSP server is slow (#36020)
- fbaf48cb2322 9.1.1827: completion: v9.1.1797 broke Ctrl-Y behaviour (#36040)
- a4a88381780a 9.1.1829: filetype: KerML and SysML files are not recognized (#36042)
- 7923e847ca5d 9.1.1831: stray vseps in right-most 'winfixwidth' window
- d9153d620ade 9.1.1833: completion: fuzzy candidates are not sorted (#36062)
- e47529ab567b 9.1.1834: MS-Windows: not possible to highlight the title bar
- ba47cb7edab3 9.1.1836: 'culopt' "screenline" not redrawn with line("w0") and :retab
- 28355050a878 9.1.1839: Window may have wrong height if resized from another tabpage (#36093)
- b1c41a332d18 9.1.1843: tests: Test_search_stat_option() may fail on slow systems (#36110)
- 92b834fc7a66 9.1.1849: CTRL-F and CTRL-B don't work in more prompt
- 83c7193c119f 9.1.1850: completion: not triggered after i_Ctrl-W/i_Ctrl-U (#36156)
- 93d1473732e0 9.1.1853: Ctrl-F and Ctrl-B at more prompt not working with key protocol
- d78215f6a221 9.1.1854: unnecessary code in optionstr.c (#36170)
- aeeadddac43b 9.1.1858: v:register not reset after Visual mode command (#36215)
- a08aa77e4084 9.1.1859: completion: whitespace not cleared with 'ai' (#36218)
- 68a54bfda65f 9.1.1868: v:register is wrong in v_: command (#36238)
- 737dd83d1fca 9.1.1869: tests: test failures with Python 3.14 and test_python3 (#36310)
- fb6fd17f26a6 9.1.1870: :Tutor may not work as expected (#36343)
- 5db35449917d 9.1.1871: Wrong 'showcmd' in the cmdwin (#36320)
- 2407833ba163 9.1.1872: Cmdline history not updated when mapping &lt;Up&gt; and &lt;CR&gt; (#36334)
- 070f4d3da08c 9.1.1875: username parsing bug in netrw plugin (#36348)
- 155efabb1513 9.1.1876: pre-inserted text not exposed in complete_info() (#36342)
- f0cf4886981e 9.1.1877: cindent: wrong indentation after an array declaration (#36340)
- 35d04394aa0a 9.1.1878: filetype: Soy files are not recognized (#36346)
- 21ea0537e0d6 9.1.1880: Allocation error with complete_info() (#36360)
- c2781d3db3ef 9.1.1883: Wrong display with 'smoothscroll' with -diff (#36372)
- 3fb56ff8af5b 9.1.1885: Wrong restored cursor pos when re-entering buffer after changes
- 3c1464689619 9.1.1886: filetype: Android aconfig files are not recognized (#36374)
- c75f5478390e 9.1.1888: Wrong display with cpo+=$, matchparen and wrapped line (#36385)
- 1fddd74da742 9.1.1889: filetype: not all AppleScript files are recognized (#36411)
- d4106bade78b 9.1.1890: %P in 'statusline' doesn't behave as documented
- b92b95e2c26d 9.1.1891: g&lt;End&gt; does not move to last non-blank in visual mode (#36354)
- 003b429a8671 9.1.1892: Not possible to know once Vim is done with sourcing vimrc (#36429)
- d847548a1cf1 9.1.1893: ICCF charity will dissolve (#36427)
- 97cb0d55717f 9.1.1906: filetype: not all Ruby files are recognized (#36526)
- 02760a30ce34 9.1.1908: tests: test_crash.vim times out in CI ASAN builds
- 756043760b59 9.1.1909: filetype: .mom files recognized as nroff files (#36543)
- 16e9c21d8d81 9.1.1913: Error message with :unlet! and non-existing dictionary item (#36549)
- dc682bcbcf2a 9.1.1915: :breaklist accepts unprocessed arguments. (#36561)
- 8d72d1ceb4b2 9.1.1916: WinEnter autocommand confuses Vim when closing tabpage (#36567)
- ef0c522077ab 9.1.1918: completion: crash with fuzzy completion (#36578)
- a8b9660ca345 9.1.1920: tests: not enough testing for wildtrigger() pum redrawing (#36642)
- 1eec08d1a24e 9.1.1922: Wrong virtcol('$') with virtual text at EOL (#36643)
- 30a09bdd7e96 9.1.1923: wrong error when assigning to read-only register (#36644)
- 4dc337cda86f 9.1.1924: 'commentstring' requires +folding feature (#36645)
- a212fc7745ce 9.1.1929: completion: spell completion wrong with fuzzy (#36709)
- 812186e2dce3 9.1.1930: completion: 'completefuzzycollect' is too obscure
- 19d5b289774d 9.1.1931: completion: wrong item selected with fuzzy and noinsert (#36725)
- 2c6469aca451 9.1.1933: completion: complete_match() is not useful (#36726)
- da6edcb91b82 9.1.1934: filetype: not all starlark files are recognized (#36743)
- 8310f2052636 9.1.1935: filetype: not all Erlang files are recognized
- 3f8e51cee792 9.1.1936: filetype: Erlang lexical files are not recognized
- 3c605982397f 9.1.1937: tests: Test_matchfuzzy_initialized() fails
- c9f63d13b602 9.1.1938: tests: excessive wait in Test_matchfuzzy_initialized
- d13e8f1a34bf 9.1.1939: tests: test_matchfuzzy() leaves swapfiles behind
- 7452a8a56892 9.1.1941: tests: Test_execute_register() leaves swapfile behind
- b64e36cef099 9.1.1943: Memory leak with :breakadd expr
- e8fdc7ef9ac6 9.1.1944: getwininfo() does not return if statusline is visible (#36828)
- c3c8a18af789 9.1.1945: tests: Test_getbufwintabinfo() leaves swapfiles behind
- ac3e2ca67565 9.1.1947: [security]: Windows: Vim may execute commands from current directory
- bfe007a1872a 9.1.1948: Windows: Vim adds current directory to search path
- 69f4fd84aaa8 9.1.1949: :stag does not use 'swichtbuf' option
- 132567c71f41 9.1.1950: tests: Test_tagjump.vim leaves swapfiles behind
- c758423cf215 9.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds
- ffdc632ea1d2 9.1.1952: tests: need better tests for tf files
- 4450a454662a 9.1.1954: Setting a byte in a blob, accepts values outside 0-255
- d6be2b33125d 9.1.1957: filetype: bpftrace files are not recognized (#36838)
- 647f11e6ae79 9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved (#36851)
- ff90032aa5e8 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab"
- 2f9f77cd722a 9.1.1962: filetype: Erlang application resource files are not recognized (#36868)
- 3bc9a5b5d273 9.1.1963: diff: missing diff size limit for xdiff (#36877)
- 5235f3663fb4 9.1.1964: Wrong display when using setline() at hit-enter prompt (#36878)
- 747cf30c373f 9.1.1965: q can accidentally start recording at more prompt (#36879)
- 08d7744e13bc 9.1.1967: if_python: 64bit numbers truncated (#37245)
- 18642a63be4f 9.1.1969: Wrong cursor position after formatting with long 'formatprg' (#36918)
- 2b02dfa0202c 9.1.1970: visual end column returns wrong value after block edit (#36923)
- e9da68effe35 9.1.1971: Crash when buffer gets deleted inside charconvert during save
- 384a039db789 9.1.1974: tests: missing cleanup in Test_bwipe_during_save()
- f494ce77f133 9.1.1978: tests: Test_smoothscroll_number() may fail (#36965)
- 3985257496f4 9.1.1979: :helpclose allows range and counts (#36966)
- f5e39560ff61 9.1.1980: filetype: N-Quads files are not recognized (#36967)
- 7a866e6b2008 9.1.1981: tests: test suite may stop on error in gen_opt_test.vim (#36988)
- 6061169183c0 9.1.1983: Vim9: class_name definition can be improved
- 4cce77e54775 9.1.1984: terminal OSC52 support can be improved (#37543)
- 544bde3accf3 9.1.1987: assert_equal() prepends unnecessary ':' when typed
- 3264dfee7574 9.1.1989: Vim intro screen shows register message
- c172fd9f464d 9.1.1991: :setlocal changes effective global 'omnifunc' (#37013)
- 2860d1e018c8 9.1.1998: tests: not enough tests for :setlocal omnifunc (#37023)
- f89558848b11 9.1.2001: cursor may end up in wrong window after :botright copen (#37056)
- 92910a8ab875 9.1.2007: filetype: bpftrace hashbang lines are not recognized
- 471be48d5612 9.1.2008: filetype: hylo files are not recognized
- 49b1a6540f50 9.1.2009: tests: "Xm4" test directory may not be deleted
- 2a2c366a3e48 9.1.2016: cindent wrong indentation after do-while loop (#37087)
- d7b882697b5d 9.1.2017: getregionpos() depends on 'linebreak' setting (#37088)
- e53accf8ec5a 9.1.2019: inconsistent cursor encoding past EOL with ve=all
- 7b5276b382ac 9.1.2020: tests: test_virtualedit.vim leaves swapfiles behind (#37115)
- c11153b3204a 9.1.2021: filetype: fluent files are not recognized (#37117)
- 6fa2ebec6b24 9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd
- 1e44a001ecdb 9.1.2024: 'fsync' option cannot be set per buffer (#37129)
- f4eabcca4f14 9.1.2026: tests: patch 9.1.2019 not tested properly
- 7f1d7271d5d3 9.1.2027: filetype: bicep filetype used for 2 bicep file types (#37130)
- 444e1ffe3e9c 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars (#37133)
- e916f0327728 9.1.2030: inefficient use of ga_concat() (#37151)
- 8e80e544784e 9.1.2034: filetype: Fennel fnml files are not recognized (#37176)
- bd10f781b842 9.1.2035: filetype: filetype: Fennel fnlm files are not recognized (#37178)
- acc3554439e5 9.1.2037: undo: cursor position not correctly restored (#37195)
- 01177619bc9f 9.1.2038: tests: test_marks.vim leaves swapfiles behind
- 6deb1c1bf3e0 9.1.2040: :tlunmenu incorrectly accepts a range (#37206)
- b7efbbec5115 9.1.2041: tests: test_menu.vim leaves swapfiles behind
- ca731d2e55f8 9.1.2042: filetype: systemd quadlet files are not recognized (#37208)
- 067b5743f543 9.1.2043: filetype: kos files are not reconized
- 6c3502d85ab4 9.1.2050: tests: Test_cd_completion may fail
- 0dfac6892877 9.1.2051: tests: fix Test_cd_completion fails in Appveyor (#37266)
- 97bfc0c99b33 9.1.2055: Division by zero in :file after failing to wipe buffer (#37268)
- 661455cc4757 9.1.2056: tests: inconsistent indent and line breaking in Test_maparg() (#37269)
- 5f871007d7a8 9.1.2058: b_locked_split is not checked for :sbuffer
- b075656279db 9.1.2059: filetype: Nickel files are not recognized
- a6df0db11f55 9.1.2060: filetype: Rasi include files are not recognized
- 0bbbe236aa23 9.1.2061: filetype: Koka files are not recognized
- a84bf386d241 9.1.2062: filetype: djot files are not recognized
- 885426f1bfe7 9.1.2064: completion: segfault during file name completion (#37316)
- 681d00654998 9.1.2066: :wqall! doesn't close a terminal like :qall! does (#37314)
- e002e4d7fcee 9.1.2068: :bd/bw may try to switch to a closing buffer
- aa959f7b8584 9.1.2069: Search wrap indicator not shown w/out 'shm-S' (#37332)
- 930817f1009d 9.1.2070: completion: autocomplete breaks with large dict (#37331)
- 562bc0b37117 9.1.2071: tests: test_ins_complete.vim leaves swapfiles behind
- 2ae56fbb39e7 9.1.2075: tests: wrong change to test_ins_complete.vim
- e790c87cd8bf 9.1.2078: A few more typos in various files (#37368)
- aed1f8c37730 9.1.2079: use-after-free with 'qftf' wiping buffer (#37364)
- 40fb2818b636 9.1.2085: Use-after-free in winframe_remove()
- ba1d50fdc37f 9.1.2086: Memory leak when skipping invalid literal dict
- eb5a7cc0ddf0 9.1.2087: Crash when using :tabonly in BufUnload
- 03494ad04879 9.1.2088: Redundant NULL checks in find_pattern_in_path() (#37432)
- 960cba7b3bf9 9.1.2090: Last buffer not freed with EXITFREE
- 30bcb25341b7 9.1.2093: heap-use-after-free when wiping buffer in TabClosedPre
- c52f6eb49a95 9.1.2094: filetype: tiger files are not recognized
- b4e602dde544 9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost
- 7470e6326068 9.1.2097: TabClosedPre may be triggered twice for the same tab page
- 64057d266c29 9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A (#37466)
- 87276db7f9b2 9.1.2100: filetype: tiltfiles are not recognized (#37477)
- b3242af1872e 9.1.2102: foldtext not reversed and cut off in 'rightleft' mode
- cd624f24f69b 9.1.2103: tests: test_fold.vim leaves swapfiles behind
- e0b724de09c2 9.1.2105: tests: not enough tests for using plain_vgetc() (#37521)
- f10a1dcf4d73 9.1.2107: :normal may change cmdline history (#37523)
- 5a354db7fa2f 9.1.2108: tests: Test_foldtextresult_rightleft() does not restore 'columns'
- 798ee6428776 9.1.2109: filetype: NetLinx fires are not recognized
- d982c0084677 9.1.2110: filetype: skhd files are not recognized
- a8a097d17841 9.1.2112: long statusline may crash if using singlebyte encoding (#37605)
- ebfbe4db498c 9.1.2116: crash when using 'tagfunc' (#37627)
- 47ce93ad6d71 9.1.2118: 'cursorline' missing after :diffput to empty buf (#37628)
- 5e1a3df5ae0c 9.1.2119: tests: Test_language_cmd fails on OpenBSD (#37503)
- 270c7b46afab 9.1.2123: using NOT with a float returns a float in legacy script (#37639)
- fede56869291 9.1.2128: Heap use after free in buf_check_timestamp()
- bdd886622d4d 9.1.2130: Page scrolling in Insert mode beeps (#37710)
- db133879b2a1 9.1.2132: [security]: buffer-overflow in 'helpfile' option handling (#37735)
- 15061d322dcd 9.1.2133: Another case of buffer overflow with 'helpfile' (#37746)
- 6dd0a7d60a28 9.1.2135: tests: tar plugin does not consider 'nowrapscan' (#37752)
- e70452990935 9.1.2136: :tab sbuffer may close old tabpage (#37765)
- ed8fbd2e2992 9.1.2138: win_execute() and 'autochdir' can corrupt buffer name (#37767)
- 39d8a9c353d6 9.1.2146: filetype: cel files are not recognized (#37834)
- ff142a7a7403 9.1.2147: Compile warning in strings.c (#37842)
- 8605b0b7a9f2 9.1.{1755,1759} (#35787)
- 7d8653575f2a 9.2.0004: Changing hidden prompt buffer cancels :startinsert/:stopinsert (#37881)
- b59eba3ada13 9.2.0007: cindent: recognizing labels within commented lines
- 77d396caf409 9.2.0009: tests: test_cindent are not ordered
- ac84a3f3b6ee 9.2.0020: Wrong shortened buffer after :cd with duplicate slashes (#37955)
- 134782b99eff 9.2.0023: fix integer overflow in ml_append_int() for long lines
- fadf5fc8dbf9 9.2.0024: Reading files with very long lines crashes with a segfault
- e98a6979eee8 9.2.0025: filetype: cshtml incorrectly recognized (#37957)
- c78e276881eb 9.2.0027: filetype: yara files are not recognized
- 785ac9f2285a 9.2.0028: matchadd() conceal may use unrelated syntax cchar (#37974)
- 08b8fe5ab36e 9.2.0030: completion: non-prefix matches shown when leader is NULL
- b3a3028fd9bb 9.2.0031: Inefficient use of ga_concat()
- 6e8a1a898856 9.2.0032: completion: hang with line completion and fuzzy
- 93a8acb1b804 9.2.0033: filetype: sh filetype used for env files
- 30d9970cd74d 9.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy" (#37996)
- 3f4ef487da80 9.2.0040: completion: preinsert wrong with register completion (#38003)
- b775c722dd4f 9.2.0041: Not always using GA_CONCAT_LITERAL
- 327dcb897024 9.2.0046: filetype: neon files are not recoginzed (#38049)
- a89b9750ee88 9.2.0050: WM_SETFOCUS not handled immediately
- 1fe1b2525f7e 9.2.0054: eval_addblob() is inefficient (#38067)
- 9288357d59d2 9.2.0055: memory leak in ExpandFromContext() (#38066)
- 7852993f4927 9.2.0061: Not possible to know when a session will be loaded (#38071)
- cd4c7850d05f 9.2.0070: tests: various tests leave swapfiles around
- 95ddabdb2b09 9.2.0074: [security]: Crash with overlong emacs tag file
- e85fc92a6ba4 9.2.0075: [security]: Buffer underflow with emacs tag file
- 7e8bdd348c3b 9.2.0077: [security]: Crash when recovering a corrupted swap file (#38104)
- a416494e648b 9.2.0078: [security]: stack-buffer-overflow in build_stl_str_hl() (#38102)
- 563f9ef7994a 9.2.0081: Failed "z=" does not reset 'nospell' setting (#38109)
- 3e8107229345 9.2.0088: cannot display tabs for indentation
- 518aa46158c5 9.2.0090: "leadtab" behavior inconsistent on line with only TABs
- 0cfeedb088ee 9.2.0091: missing out-of-memory checks in quickfix.c
- 0676503ab551 9.2.0097: Memory leak in qf_push_dir()
- 6ddcc84a6cd7 9.2.0102: 'listchars' "leadtab" not used in :list (#38142)
- a22c699ecb4e 9.2.0106: memory leak in expand_findfunc()
- 843bc1aa8d15 9.2.0108: byteidx_common() and f_utf16idx() call ptr2len() twice (#38159)
- f1e65bde0222 9.2.0120: tests: test_normal fails
- 9a9b9c581ccd 9.2.0121: patch memory leak in list_extend_func() in list.c (#38205)
- f21c56da845f 9.2.0125: tests: test_textformat.vim leaves swapfiles behind
- 9734a6ce473c 9.2.0130: missing range flags for the :tab command (#38216)
- c1dcb8dac2f9 9.2.0131: potential buffer overflow in regdump() (#38217)
- 3a7ade847f10 9.2.0132: tests: Test_recover_corrupted_swap_file1 fails on be systems (#38238)
- e5667b9c157a 9.2.0137: [security]: crash with composing char in collection range (#38261)
- f847aa620881 9.2.0140: file reading performance can be improved (#38266)
- 6dd634b02541 9.2.0143: termdebug: no support for thread and condition in :Break
- 878c9739e13d 9.2.0147: blob: concatenation can be improved (#38276)
- d3bca3b7fab4 9.2.0152: concatenating strings is slow (#38286)
- f58d24040a32 9.2.0155: filetype: ObjectScript are not recognized (#38288)
- 80684a418b50 9.2.0159: Crash when reading quickfix line
- 1aaa8e8e3ac9 9.2.0162: tests: unnecessary CheckRunVimInTerminal in test_quickfix
- 0082cd313485 9.2.0165: tests: perleval fails in the sandbox
- 9ab6c607ccc7 9.2.0180: possible crash with winminheight=0 (#38335)
- 33b357d01fd0 9.2.0182: autocmds may leave windows with w_locked set #38332
- e2c3106b85ed 9.2.0201: filetype: Wireguard config files not recognized
- f577e055221e 9.2.0202: [security]: command injection via newline in glob() (#38385)
- a18d51a9580e 9.2.0204: filetype: cps files are not recognized
- d36e7787c1e7 9.2.0209: freeze during wildmenu completion (#38386)
- 0655a359ae73 9.2.0217: filetype: cto files are not recognized (#38400)
- a969e922497d 9.2.0219: call stack can be corrupted (#38406)
- 11b9ec38d267 9.2.0222: "zb" scrolls incorrectly with cursor on fold (#38423)
- e51f217be700 9.2.0223: Option handling for key:value suboptions is limited (#38426)
- fae782557c8e 9.2.0226: No 'incsearch' highlighting support for :uniq (#38425)
- 416e5429927f 9.2.0233: Compiler warning in strings.c (#38450)
- 1de1c0821007 9.2.0235: filetype: wks files are not recognized (#38451)
- 6dfcb2b78463 9.2.0237: filetype: ObjectScript routines are not recognized (#38479)
- f806c773918d 9.2.0239: signcolumn may cause flicker (#38477)
- 5a7df03b428f 9.2.0265: unnecessary restrictions for defining dictionary function names (#38524)
- ba89354a4543 9.2.0270: test: trailing spaces used in tests
- 965f54cf5027 96dab9c: check.vim: Further improve po message checks
- 5a83f23430bf 98a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() (#36919)
- 95b6215f0a9d c858382: Problem:  Commit 6f585d breaks CI
- 1244fe157f9f ecf90b9: CI: make dependabot monitor `.github/actions` directory (#38383)
- 96e9041a7886 partial:8.1.1939: code for handling v: variables in generic eval file (#35968)
- 2a267d1cbfc3 partial:8.2.1328: no space allowed before comma in list
- e31cfc5eac47 partial:8.2.2400: Vim9: compiled functions are not profiled
- df65f87fd771 partial:8.2.3149: some plugins have a problem with the error check
- 00bec1fd90a3 partial:8f7256a (#34368)
- 50efe61c3cf6 partial:9.0.0323: using common name in tests leads to flaky tests
- 5671b61327bf partial:9.0.0877: using freed memory with :comclear while listing commands
- 92596a37e721 partial:9.0.0907: restoring window after WinScrolled may fail
- 62de643b897c partial:9.0.1570: some tests are slow
- dff515205c34 partial:9.1.0613: tests: termdebug test may fail and leave file around
- 3f62fe4bd891 partial:9.1.0973: too many strlen() calls in fileio.c
- 42640c62d1a3 partial:9.1.1004: tests: a few termdebug tests are flaky
- dfd3ac6f4832 partial:9.1.1110: Vim tests are slow and flaky
- 5c4d9261a421 partial:9.1.1110: Vim tests are slow and flaky
- ab5c15610f50 partial:9.1.1371: style: indentation and brace issues in insexpand.c
- a16064ff298b partial:9.1.1639: completion: popup may be misplaced
- cbec4603a041 partial:9.1.1668: items() does not work for Blobs
- 4edeaaa6e2c1 partial:9.1.1708: tests: various tests can be improved (#35548)
- 7468db518730 partial:9.1.1847: No cmdline completion for :echoconsole and :echowindow (#36157)
- c70e8ef9b7fc partial:9.1.1887: string handling in strings.c can be improved
- 5370b7a2e0a0 partial:9.1.1955: sort() does not handle large numbers correctly (#36840)
- 147190d8e7dd partial:9.1.2044: Inefficient use of ga_concat() (#37209)
- 72eb9fe87ce9 partial:9.1.2137: test: Update tests for OpenBSD (#37766)
- 18c5f06c9f60 partial:9.2.0068: Inefficient use of list_append_string() (#38083)
- b23d00ce9909 partial:9.2.0096: has() function is slow due to linear feature scan (#38135)
- 29fa072b34ac partial:9.2.0126: String handling can be improved (#38214)
- 4c48f19e5163 partial:9.2.0193: using copy_option_part() can be improved (#38369)
</content>
</entry>
<entry>
<title>NVIM v0.11.0</title>
<updated>2025-03-26T13:48:09Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2025-03-26T13:48:09Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=a99c469e547fc59472d6d105c0fae323958297a1'/>
<id>urn:sha1:a99c469e547fc59472d6d105c0fae323958297a1</id>
<content type='text'>
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).

Following is a list of fixes/features commits.

BREAKING
--------------------------------------------------------------------------------
- 0f4f7d32ce5d remove `nvim` and `provider` module for checkhealth
- 7dbbaaec3fae rename 'jumpoptions' flag "unload" to "clean" (#30418)
- 35c5e2310783 store artifact shasums in a single shasum.txt file
- 188ec19894e4 turn off translations by default
- 328ea02eb7de use utf8proc full casefolding
- 737f58e23230 api: rename Dictionary =&gt; Dict
- a389dc2f950e clipboard: use OSC 52 as fallback clipboard provider (#31730)
- ad70c9892d5b column: rework 'statuscolumn' %r/l items
- eb60cd74fb5c deps: bump tree-sitter to HEAD, wasmtime to v29.0.1 (#32200)
- a119aae4d3de diagnostic: filter diagnostics by severity before passing to handlers (#30070)
- 51ccd12b3dbc diagnostic: make virtual text handler opt-in (#32079)
- a9e725b26e08 diagnostics: sort underline severity_sort (#30898)
- e8b5dd1e89bf lsp: `symbol_to_item` requires `offset_encoding`
- 8260e4860b27 lsp: multiple client support for vim.lsp.buf.hover()
- debabaf884fc lsp: pass buffer number to root_dir function
- 9b357e30fdd0 lsp: remove client-server handlers from vim.lsp.handlers
- 3e3775961fd2 lsp: rename lsp.completion.trigger() to get() (#32911)
- 0083e03d6fa7 lsp: support multiple clients in goto methods (#30877)
- dff684fdb3d2 lsp: support multiple clients in lsp.buf.references
- 970a27927eb3 lua: do not use typed table for empty dict
- de48fbbd5f88 messages: vim.ui_attach message callbacks are unsafe
- a27419f3fc54 options: disallow setting hidden options #28400
- b922b7d6d788 options: use OptVal for option defaults #26691
- 4d9a1b9852ca provider/python: add python 3.13, drop 3.7 and 3.8 (EOL) #33022
- 318676ad1348 release: remove backwards compatible releases
- ad191be65e2b signs: place higher-priority signs from the left #27781
- 0dd933265ff2 terminal: cursor shape and blink (#31562)
- 35e5307af257 terminal: include cursor position in TermRequest event data (#31609)
- 3cf602486ce5 terminal: make 'belloff' and 'visualbell' apply to terminal bell (#30859)
- 041d98fe8d89 treesitter: add default fallback to `ft_to_lang` lookups
- 6913c5e1d975 treesitter: default to correct behavior for quantified captures (#30193)
- bd4ca22d0334 treesitter: don't parse tree in get_parser() or start()
- a0b52e7cb3d2 treesitter: enforce buffer is loaded when creating parser
- 99e0facf3a00 treesitter: use return values in `language.add()`
- bda63d5b97df typval: remove distinction of binary and nonbinary strings
- 48e2a73610ca ui: emit prompt "messages" as cmdline events #31525
- ca5fca29121a windows: drop cat and tee executables from windows
- be89d520d7e9 windows: only support UCRT, even for mingw

FEATURES
--------------------------------------------------------------------------------
- efa45832ea02 add "jump" options to vim.diagnostic.config() (#29067)
- 0631492f9c80 add vim.fs.relpath
- f864b68c5b0f allow gx to function for markdown links
- f3632e14e3a7 get/set namespace properties #28728
- a66424617156 remove deprecated features
- ead5683ff999 api: add err field to nvim_echo() opts
- aec4938a21a0 api: broadcast events to ALL channels #28487
- 34d808b73cbc api: combined highlights in nvim_eval_statusline()
- 19b25f3feacf api: deprecate nvim_buf_add_highlight()
- 5c92b40b4b17 api: deprecate nvim_out/err_write(ln)
- d84a95da7e11 api: nvim_get_autocmds filter by id#31549
- 25d8c3a5ad7e api: nvim_open_win() relative to tabline and laststatus #32006
- e00d67ef310c checkhealth: group parsers by name and path in output
- 563051a53ef9 clipboard: support g:clipboard="osc52" #33021
- 60ea0467411d clipboard: try cygutils, clip on Windows #30215
- 2c629ad13f19 column: apply appropriate numhl highlight to virt_lines (#32400)
- 65c7033cbe75 comment: allow commentstring to be determined from node metadata
- 268a3de0a773 complete: CompleteDone reason "cancel", "discard" #32600
- a616272f568a complete: specify reason for CompleteDone
- f1748b78e316 default: bind `vim.lsp.buf.signature_help` in select mode (#31223)
- ac207c3ac200 defaults: "Show Diagnostics" in mouse popupmenu #32122
- 2c6b6358722b defaults: add LSP default mappings (again) (#28650)
- bb7604eddafb defaults: add default unimpaired style mappings (#28525)
- 4662ad5643b2 defaults: completeopt=popup #32909
- e8e3b443f804 defaults: disable 'foldcolumn' in terminal buffers (#31480)
- cc6992f1ca44 defaults: dot-repeat [&lt;Space&gt; #31186
- 6db830e40e92 defaults: enable diffopt "linematch" #32346
- b31132f1c1fa defaults: jump between :terminal shell prompts with ]]/[[ #32736
- 0b7cc014fc0e defaults: map gO to LSP document_symbol #30781
- 26e765f905cb defaults: map gri to vim.lsp.buf.implementation() (#30764)
- 76aa3e52be7a defaults: popupmenu "Open in browser", "Go to definition" #30261
- 09d76afe84dd defaults: pretty :help headings #30544
- 079e5f4f9b67 defaults: unimpaired empty line below/above cursor #30984
- 1c6d9200521a defaults: use vim.diagnostic.jump() for default mappings (#29066)
- c9c17fda80d8 deprecations: vim._defer_deprecated_module()
- 38a52caec09e diagnostic: add `current_line` option for `virtual_text` handler
- 8ba73f0e4cc6 diagnostic: add vim.diagnostic.jump() (#26745)
- 445ecca39840 diagnostic: format() can filter diagnostics by returning nil #32302
- 99e7323aa386 diagnostic: inherit parent 'path' option in open_float (#31273)
- 21961967ffef diagnostic: update quickfix list by title #31486
- 7579af3c514c diagnostic: vim.diagnostic.setqflist improvements #30868
- 1759b7844a2d diagnostic: virtual_lines #31959
- fd65422b99c7 diff: do not try external when out of memory
- 0c296ab22484 docs: "yxx" runs Lua/Vimscript code examples #31904
- 6628741ada73 docs: improve `@see` meta docstrings #30693
- 23290e7676e6 editor: handle new multibyte sequences in normal mode replacement
- cb6c0fda718e editorconfig: add support for spelling_language (#28638)
- 4817547ec463 ex_cmds: :sleep! hides the cursor while sleeping (#31493)
- 4f9260d06a48 ext_messages: add hl_id to ext_messages chunks
- 4cced601c8cd extmark: stack multiple highlight groups in `hl_group`
- 931ee5591fa7 extmarks: virtual text can be right-aligned, truncated #31921
- 62d9fab9af21 float: add winborder option (#31074)
- 9b8907d90508 float: allow enabling mouse for non-focusable window (#30844)
- 511b991e6689 fs.lua: add vim.fs.rm()
- 054a287dbe6f ftplugin: change 'commentstring' to `// %s` for C/C++ (#29085)
- f398e3a61abb ftplugin: set Lua 'omnifunc' to vim.lua_omnifunc #32491
- b61051ccb4c2 func: allow manual cache invalidation for _memoize
- 548f19ccc301 health: close checkhealth buffers with q #31870
- f2fa4ca97ea3 health: highlight headings #30525
- b12b91c27439 health: show :checkhealth in floating window #31086
- 6592873f773b help: use treesitter for table of contents
- 3e09fbdf82a1 highlight: add StatusLineTerm and StatusLineTermNC groups
- 295920845ebd highlight: make `PmenuMatch` and `PmenuMatchSel` bold
- 5b1136a99c7f inccommand: preview 'nomodifiable' buffers #32034
- 61025c9e7aa4 install: mention standard paths, XDG vars in Windows installer #29101
- 8ef41f590224 jobs: jobstart(…,{term=true}), deprecate termopen() #31343
- e7020306a19a jumplist: allow opting out of removing unloaded buffers (#29347)
- 8d55cc218cfe keysets: teach Union and LuaRefOf
- 5931f780e028 log: use "ui" as default name for TUI client #30345
- e4c6e732fd04 lsp: add select kind in showMessageRequest #32387
- f20335a54ce7 lsp: add support for completionItem.command resolving
- 3f1d09bc94d0 lsp: add vim.lsp.config and vim.lsp.enable
- 6072153796d1 lsp: announce codeLens resolveSupport (#29956)
- 1f5bcc7c4ed7 lsp: completion opts support custom item conversion (#30060)
- ff097f2091e7 lsp: completion side effects
- 7a7747f1e4d9 lsp: deprecate execute_command with client:exec_cmd
- 454ae672aad1 lsp: deprecate non-method client functions
- 54249d051c3e lsp: deprecate vim.lsp.buf.completion
- e56437cd48f7 lsp: deprecate vim.lsp.start_client #31341
- 55e4301036bb lsp: drop fswatch, use inotifywait (#29374)
- dad55f5e763f lsp: export diagnostic conversion functions (#30064)
- 44229bb85b6c lsp: highlight hover target/range #31110
- 27f3750817b1 lsp: improve LSP doc hover rendering #30695
- 67221497762a lsp: include `end_col` and `end_lnum` in `vim.lsp.buf.symbols_to_items`
- 20f22f75ee62 lsp: include end_col, end_lnum in vim.lsp.buf.locations_to_items #29164
- 4e90bc30237a lsp: lsp.completion support set deprecated (#29882)
- 6e68fed37441 lsp: multi-client support for signature_help
- 629483e24eed lsp: require `offset_encoding` param #31249
- e00cd1ab4060 lsp: return resolved config for vim.lsp.config[name]
- 130b5fd85f07 lsp: return table from lsp/ files on runtimepath (#31663)
- ce678043e346 lsp: show server name in code actions #30830
- 07d5dc8938a7 lsp: show server version in `:checkhealth` #31611
- a1e313ded6e4 lsp: support `textDocument/foldingRange` (#31311)
- 3b0fe2659e74 lsp: support completion context #32793
- 41b07b128ccb lsp: support for resolving code action command (#32704)
- 35247b00a44e lsp: support function for client root_dir (#31630)
- 45e76acaa053 lsp: support hostname in rpc.connect #30238
- b2bad0ac91dd lsp: support postfix snippets in completion
- d3e4ffafff42 lsp: support utf-8 and utf-32 position encodings
- 5d26934c7cda lsp: update LSP healthcheck format (#28980)
- ae2fd91b411d lsp: update LSP types
- 0df2c6b5d09f lsp: use fuzzy match on filterText instead of prefix match
- e4c1f6667b14 lsp: use the meta model to generate server capability map
- 5581a95534e4 lsp: vim.lsp.buf.format() supports textDocument/rangesFormatting #27323
- 92e4e3fb76c2 lsp.util: fix type errors
- ff1d7d429959 lsp.util: get_bufs_with_prefix -&gt; get_writeable_bufs
- cbc82011ce19 lsp.util: improve offset_encoding type annotations
- a18fa2f11c3a lsp.util: minor codestyle
- 1944c0d610ce lsp.util: refactor get_border_size()
- f0973d42272e lsp.util: refactor symbols_to_items()
- 0e8568d72c88 lsp.util: remove lsp spec extract
- 0621718e3b5f lsp.util: remove metatable in locations_to_items
- 3f87e222f79b lsp.util: remove some aliases
- e954a16063e6 lsp.util: remove some variables
- 5bec7288a5b5 lsp.util: remove uneeded do-end
- 8ad000ef7cf0 lsp.util: remove unneeded table
- d44d36b8ff6c lsp.util: simplify some bounds checking
- 0066dd0f653e lsp.util: use faster version of vim.validate
- 1edfe5c09ebc lsp.util: use vim.api alias
- 97119a236937 lsp.util: use vim.w/b
- cd53db2157f0 lua: add `context.env` (environment variables) to `vim._with()`
- 9afa1fd35510 lua: add `vim._with`
- 518070731003 lua: add `vim.fs.abspath`
- b34e137e43d3 lua: allow vim.on_key() callback to consume the key (#30939)
- d5ae5c84e94a lua: completion for vim.fn, vim.v, vim.o #30472
- 0a5a0efda64c lua: don't complete private (_) fields after dot (.) #32690
- 07cc559cdf11 lua: update `vim._with` to allow more granular option contexts
- af0ef2ac9dd1 lua: vim.hl.range() "timeout" #32012
- be1fbe38b31b lua: vim.text.indent()
- fdeb01cd7740 main: expand file ~\ or ~/ prefix on Windows (#28515)
- ea5b748f2438 man.vim: "q" always closes window #30819
- f58e7d5fac1c marks: add conceal_lines to nvim_buf_set_extmark()
- 51cf84daf961 marks: virtual lines support horizontal scrolling (#32497)
- cfdf68a7acde mbyte: support extended grapheme clusters including more emoji
- 124c655f56bc messages: "g&lt;" mapping for ext_messages
- cb7b4e296238 messages: "verbose" message kind #31991
- 5bae80899d9d messages: add :!cmd shell message kinds
- e16bec41b650 messages: confirm kind for z=, :tselect, inputlist() #32521
- 21151144c6ee meta: add type for quickfix entries
- 82a215cb2dc2 options: add 'eventignorewin' (#32152)
- d831392b1560 paste: unify cancel and error behavior (#30476)
- 08c328b8b079 runtime: Lua ftplugin 'includeexpr' #32719
- f5714994bc4f runtime: Lua ftplugin sets 'omnifunc', 'foldexpr' #32697
- e6cfcaed184d snippet: add default keymaps during snippet session
- 123f8d229eef snippet: set snippet keymaps permanent instead of dynamic (#31887)
- 96128a5076b7 startup: validate --listen address
- 230b0c7f021a stdlib: overload vim.str_byteindex, vim.str_utfindex #30735
- 517ecb85f58e stdlib: vim.json.encode(...,{escape_slash:boolean}) #30561
- 8df6736ca14d term: enable reflow by default (#21124)
- 4199671047b0 term: support OSC 8 hyperlinks in :terminal (#30050)
- 93480f7fbaa5 term: trigger TermRequest for APC (#32407)
- 3ad977f01d97 terminal: add support for copying with OSC 52 in embedded terminal (#29117)
- 6f0bde11ccd8 terminal: add support for kitty keyboard protocol
- 06a1f82f1cc3 terminal: forward X1 and X2 mouse events
- e3bfcf2fd4a4 terminal: support grapheme clusters, including emoji
- f1c45fc7a4a5 terminal: support theme update notifications (DEC mode 2031) (#31999)
- 56d11b494b54 terminal: disable 'number', 'relativenumber', and 'signcolumn' in terminal buffers (#31443)
- 34cd94812d42 test: support and document lua test case debugging
- b8c75a31e6f4 treesitter: #trim! can trim all whitespace
- ec8922978eb1 treesitter: add more metadata to `language.inspect()` (#32657)
- bd3b6ec8360e treesitter: add node_for_range function
- 688b961d13bd treesitter: add support for wasm parsers
- 8543aa406c4a treesitter: allow LanguageTree:is_valid() to accept a range
- 44ccd9ca24dd treesitter: allow `iter_captures` to accept `opts`
- 8b5a0a00c8cf treesitter: allow disabling captures and patterns on TSQuery (#32790)
- 1af55bfcf21b treesitter: allow get_node to return anonymous nodes
- a94a2927d00a treesitter: allow passing lang to InspectTree
- 45e606b1fddb treesitter: async parsing
- 3dfb9e6f60d9 treesitter: include capture id in return value of `get_captures_at_pos()` #30559
- 267c7525f738 treesitter: introduce child_with_descendant()
- 09f9f0a94625 treesitter: show which nodes are missing in InspectTree
- b9b408a56c7e treesitter: start moving get_parser to return nil #30313
- da0ae9534900 treesitter: support modelines in `query.set()` (#30257)
- 2e5b560482fb treesitter: table of contents for checkhealth, markdown (#32282)
- 8ba047e33fe3 treesitter: vertical conceal support for highlighter
- ff85e54939b0 tui: builtin UI (TUI) sets client info #30397
- 4fb3b57a19cb tui: handle kitty key events in libtermkey (#31727)
- f93ecd2760f5 tui: parse CSI subparams in termkey (#29805)
- 44dbfcfba4b0 tui: recognize X1 and X2 mouse events
- e41368f3bc1d tui: support in-band resize events (#29791)
- d460928263d0 tui: update 'background' on theme change events (#31350)
- 45e319ade639 tutor: give hints to satisfy the line checker #30952
- 4b0e2605eaf9 ui: UI :detach command
- 394f69a25dc3 ui: additional arguments for cmdline_show/hide events
- a0e3fe57417f ui: cascading style inheritance for Pmenu* highlights #29980
- f85bc41c800d ui: don't show unfocusable windows in :tabs, 'tabline' #27984
- 9762c5e3406c ui: gx: use url extmark attribute and tree-sitter directive (#30192)
- 43d552c56648 ui: more intuitive :substitute confirm prompt #31787
- 433b342baa04 ui: sign/statuscolumn can combine highlight attrs #31575
- a10636fbe7bb ui: specify whether msg_show event is added to history
- e049c6e4c08a ui: statusline text inherits highlights #29976
- 611ef354919f vim.fs: find(), dir() can "follow" symlinks #31551
- 3f15e57b2614 vim.ui: configurable "gx" / vim.ui.open() tool
- f4b620c4e643 vim.ui.open: support lemonade #30845
- 3572319b4cb1 vim.validate: improve fast form and deprecate spec form
- cb84cd5d9fba win32: embed executable icon

FIXES
--------------------------------------------------------------------------------
- 200e7ad15786 apply the change on more files
- 6720bd440f19 assert failure in VimL expression parser
- d123202ae6ef change deprecation presentation
- ded15ca8c210 completion.enable(false,...) deletes invalid augroup #32121
- 7737f892063a deps build for ARM64 MSVC
- 50749f8df89d extend the life of vim.tbl_flatten to 0.13
- 25abcd243e41 fix broken wasmtime build
- b6ab29483842 fix incorrect search code
- 46b69aaf14a7 include nvim/ascii_defs.h
- 01b4da65c229 merge all provider healthchecks into a single health.lua
- 5c245ec3e955 remove vim.lsp._with_extend
- 98ba65b8be8c replace NVIM with Nvim in default titlestring (#30348)
- 6aa42e8f92bd resolve all remaining LuaLS diagnostics
- e71713ba2b5c show swapfile warning as a warning (#28971)
- 04181070746a update osc52 termfeatures flag on UIEnter/UILeave (#32756)
- 0829e7575d63 warn when :InspectTree on buffer with no parser #32783
- 47f2769b462e Man: completion on Mac
- 89f9f168a5c4 api: alloc and draw cursor window in nvim__redraw
- 743c5808b616 api: allow `scope = 'local'` with `buf` when using `nvim_get_option_value`
- 487c48ec8689 api: clamp range lines in `nvim__redraw()` (#31710)
- 141114c170d6 api: crash on invalid buffer to nvim_buf_del_user_command (#31908)
- 716adbcc4563 api: deprecate nvim_subscribe, nvim_unsubscribe #30456
- 1e47aa677a24 api: deprecated API nvim_get_option does not validate option name #31919
- 095c0876c201 api: don't override Vimscript SID (#32610)
- bff07f6dd0d8 api: don't try to get/set option for invalid option name (#31302)
- 0e59f6f4c7cd api: don't use 'winborder' when reconfiguring float (#32984)
- cce1eb0806cc api: error properly with invalid field in nvim_open_win (#30078)
- 63bbb7c109a5 api: fix 'winborder' preventing splits with nvim_open_win (#32981)
- f55213ce0e2b api: fix crash/leak with float title/footer on error (#30543)
- 022449b52236 api: generic error messages, not using TRY_WRAP #31596
- 8de1dc692339 api: make `nvim_set_hl()` respect all `cterm` attributes (#31390)
- ad60b3fb4806 api: memory leaks in vim.api.nvim_*get_option #32390
- 167a2383b996 api: not using TRY_WRAP, generic error messages #31595
- bf48dfadeccc api: nvim__complete_set requires completeopt=popup #31177
- d1d7d5468091 api: nvim_buf_get_text() crashes with large negative column #28740
- 6ea45031d584 api: nvim_echo free text memory with invalid highlight (#31243)
- e2ad251c8d01 api: nvim_get_option_value does not clean up on FileType error #31219
- 5b9518b43663 api: nvim_set_decoration_provider callback return type #31912
- 01a97d2ad75a api: nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576
- 40347f6e27f1 api: only flush nvim__redraw when necessary #31250
- 36f44b3121fc api: remove invalid assertions
- 235cb5bc5f25 api: update "range" windows in nvim__redraw #31042
- 9c718bc2bce5 api: validation, documentation of hl_group #31195
- 289c9d21cb91 autocmds: once=true Lua event-handler may call itself #29544
- ffaab09e9986 build: &lt;termios.h&gt; is system-dependent #31705
- 486076a0e1ee build: remove USE_FNAME_CASE, redundant with CASE_INSENSITIVE_FILENAME
- 217e26cb641f build: surpress spurious warnings from gcc in -E preprocessor mode
- 34a2bfdcc5ce build: vimdoc tags are not validated #32801
- 807098824762 channel: handle writing to file instead of pipe (#30519)
- c49162be5958 channel: log after (not before) channel-close
- 965dc81f818e checkhealth: disable 'listchars' #31245
- 4c9f3689a1c0 checkhealth: failed if 'lua' in plugin name
- f5dd30948e67 checkhealth: handle nested lua/ directory #32918
- c48cf1875225 checkhealth: module not found when `&amp;rtp` has nested paths #32988
- 2495e7e22a0d clipboard: tmux clipboard depends on $TMUX #31268
- 847c28f6f6cc cmdline: always show cmdline when it is a prompt #31866
- af4231d4070c cmdline: cmdline completion of _defer_require() modules #33007
- a70ad5cdb6de cmdline: ext_cmdline block events for conditionals
- bbf36ef8ef86 cmdline: prevent cmdline_show events after exiting cmdline #32033
- 092042b43d58 cmdline: simplify and correct grapheme cluster adjustment
- 86ae59c61286 colorscheme: distinguish CursorLine/Folded/StatusLineNC highlights #32256
- 9b9f54e2c1cd colorscheme: underline StatusLineNC with 'notermguicolors' #28810
- 8bc28978b632 column: apply custom highlight to last 'statuscolumn' segment (#32182)
- 3cb1e825e679 column: check if signcolumn changed in all windows #31439
- 1dcda865591b column: clamp line number for legacy signs
- f2083bd55caf column: crash with 'signcolumn' set to "number" (#29003)
- f9a49fab0c90 column: modifying a sign should update placed signs (#29750)
- d5f6f61879ba column: set signcolumn width after splitting window (#30556)
- 063b69bab4ab column: unnecessary redraws with resized 'statuscolumn' (#32944)
- 0a2218f965ac comment: fall back to using trimmed comment markers (#28938)
- e788d1a3a903 completion: avoid deleting text when completion leader changes #31448
- bfa365a87267 completion: don't include &lt;Lua function&gt; in -complete= (#30209)
- 55dc482e757e completion: fix inconsistent Enter behavior (#30196)
- 83a7d97d64a6 coverity: CID 509571 Uninitialized variables #30395
- e1c2179dd93e coverity: INTEGER_OVERFLOW #31657
- f9eb68f340f9 coverity: error handling CHECKED_RETURN #31618
- 069451bb214b coverity: size_t overflow #30497
- ff7832ad3fce coverity/497355: shada_read_when_writing out of bounds read #30665
- c49030b75ad8 coverity/497375: f_strpart cast overflow (#30773)
- 0fe4362e216e coverity/509227/509228: tui driver_ti underflow #30341
- 60e1862ccba7 coverity/510275: linematch out of bounds access (#30687)
- a2008118a0f2 coverity/510436: shada_read_when_writing index out of bounds (#30686)
- 71507281fb86 coverity/530826: validate_opt_idx unchecked negative idx (#32081)
- 5af9c065ada5 decor: don't draw invalidated virtual lines (#29858)
- a8fbe1d409e0 decor: don't use separate DecorSignHighlight for url (#30096)
- 34ded4d97b78 decor: exclude invalid marks from meta total
- 87610d82db91 decor: set invalid flag for end of invalidated paired marks
- 33ff546b50f7 decoration: fix crash when on_lines decor provider modifies marktree
- 0e299ebf7559 decorator: noisy errors from decoration provider #31418
- f2173b1aa2be defaults: cannot remove "How-to disable mouse" menu item #30375
- 61aabe0730b5 defaults: default @/Q broken when 'ignorecase' is set (#29343)
- 8323398bc608 defaults: don't replace keycodes in Visual search mappings (#31460)
- f6f2334ac28f defaults: error messages UX for unimpaired mappings #30884
- 59a171fd99a7 defaults: improve visual search mappings #32378
- 01739d4673ee defaults: missing ]Q/[Q unimpaired mappings #30943
- c644228e1dfe defaults: omit empty line from unimpaired mapping messages (#31347)
- ff93cccbc1ce defaults: omit extraneous info from unimpaired mapping errors (#30983)
- 4075e613b2d3 defaults: properly pass count to quickfix commands (#30632)
- 289380bc40c7 defaults: use "range" instead of "count" for some mappings (#30642)
- 573fcb8b6641 deps: revert accidental test commits (#30864)
- de794f2d2409 diagnostic: broken variable reference #31557
- c78728a3844c diagnostic: clear autocmd only for valid buf (#32861)
- f1fcf653cb7c diagnostic: clear virtual_lines autocmd only for valid buf #32979
- 921dc22fc090 diagnostic: correct `severity` type on `setqflist`, `setloclist` (#30506)
- 0e8e4a07f515 diagnostic: don't include diagnostic code when using custom formatter #32464
- d918ebe3b8a5 diagnostic: fix backwards compatibility for goto_next and goto_prev (#29593)
- f69937fdbd16 diagnostic: fix float scope filtering (#29134)
- 5bc948c050ce diagnostic: improve current_line refresh logic #32275
- 4b3be56a0369 diagnostic: make docs agree with code (#29561)
- fd902b1cb246 diagnostic: only store quickfix id when creating a new one #31466
- 3b1d0e7f701b diagnostic: remove deprecated `severity_limit` option
- 5eda7aafe995 diagnostic: setqflist() is stuck after vim.lsp.buf.document_symbol #31553
- 9a43ec13e6f1 diagnostic: show backtrace for deprecation warnings
- 4cbeb6fa3cc7 diagnostic: silence :chistory #31701
- 6c975515c560 diagnostic: vim.diagnostic.setqflist() opens loclist on first call #31585
- 17c25a66fcea diagnostic: virtual lines should scroll horizontally
- fb842dfc224d diagnostic: virtual_lines diagnostic columns (#32703)
- e5e81262af88 diagnostics: don't apply extmarks to invalid lines #29321
- c65646c2474d diff: use mmfile_t in linematch
- 81ea44fa6aca display: adjust winline info for concealed lines below last line (#32708)
- f25dd7a8d548 display: correctly store winline info for concealed lines (#32656)
- a901fb875f69 docs: add missing properties to hl_info #30032
- cc26cf040028 docs: do not treat indexes as `short_link`
- 056009f74146 docs: markdown instead of vimdoc in meta docstrings #30680
- 8801b77ed098 docs: missing `@returns` desc in _meta/api.lua #30673
- 09bcb310681e docs: replace `yxx` mappings with `g==` #31947
- efe92f9dff93 docs: update context type in `vim.lsp.LocationOpts.OnList`
- b8135a76b71f docs: wrong return value annotation for `nvim_buf_get_extmarks`
- 376de1483ee5 drawline: correct highlight priority with Visual selection (#30706)
- 9a0239fdc8b3 drawline: don't draw beyond end of window (#29035)
- b1c439cef6ca drawline: don't draw beyond end of window with 'rnu' (#29406)
- 34344b939c06 editor: avoid scrolling :substitute confirm message #32149
- 9e7b0bcf5192 editorconfig: fix indent style for `local.mk` (#31342)
- b0a1d35f69b4 eval: don't shorten $HOME in v:stacktrace (#32634)
- 2a3561819e0e eval: handle wrong v:lua in expr option properly (#29953)
- 4317d366691b event-loop: process input before events in getchar() (#32322)
- f05a6666cfcb events: always allow some events to be nested (#32706)
- e9f4ceeb7467 events: don't expand `args.file` for Lua callback (#31473)
- 1f49a59b8bde events: fix incorrect capitalization of Cmdwin* events (#32813)
- 8c2d45be7729 exit: close memfiles after processing events (#30872)
- c7ec010ade08 extmark: builtin completion can still affect nearby extmarks #31387
- 93278e7720b2 extmark: clearer error message for invalid ephemeral mark usage
- 43a2019f09e8 extmarks: issues with revalidating marks #28961
- 84ad95fdc9d4 fileio: copy to correct buffer position when reading
- 93347a67bf91 filetype: fix :filetype detect error with -u NONE (#29991)
- aa9f21ee953d filetype: fix typos in filetype detection
- 032e024f8ab9 filetype: handle .in files with no filename (#30487)
- 1077843b9bee filetype: make filetype detection work with :doautocmd (#31470)
- 21cbd9000748 filetype: normalize full path before matching #32227
- 5a8a34dafa2a filetype: source ftdetect/* after creating scripts.vim autocmds (#29445)
- cff5fa49fc5a float: "Not enough room" error for 1-line float #25192
- 07c5f41da3ad float: can set title/footer without setting border #32594
- be01b361d8ff float: cannot set title/footer independently #31993
- ff1791c9e59b float: close preview float window when no selected #29745
- d2cca606a1b6 float: ensure floating window width can fit title
- 8ddcf9d93900 float: handle error in win_float_create() (#29742)
- 8b2b1fba2abf float: missing default highlight for title
- df915f3afccb float: properly find last window of tabpage (#30571)
- 17383870dd3b float: re-sort layers when grid zindex changed #30259
- 206f8f24a247 fs: make vim.fs.root work for relative paths and unnamed buffers (#28964)
- 2c160f39d329 ftplugin/man.vim: hide signcolumn (auto)
- 214ce8d33c11 gen_help_html: first tag in h2 is broken #30720
- ceea6898a8bd gen_help_html: handle delimiter, heading #29415
- 6c3f7e7e27a0 gen_vimdoc: correctly generate function fields
- 913e81c35f16 getchar: do not simplify keycodes in terminal mode
- b109b1abce8c glob: avoid `subcapture nesting too deep` error (#29520)
- 4bd86120d41e glob: handle overlapping `{}` condition elements #29236
- b47b0b3f757d grid: double grid_line_start() with ext_messages #31292
- fe87656f29e9 grid: grid_line_start NULL access with 'redrawdebug'
- a9c89bcbf69a gx: allow `@` in url
- 570a8da01b55 health: "q" should not close last window #31876
- 2e3f1069f499 health: better layout of vim.treesitter health check
- 10f917351906 health: broken ruby detect #28804
- 84e85aeb10ae health: check more "old" files #30421
- 5b778a64ec2e health: fix fetching url with python in provider health (#29594)
- b4b4cf46a7a2 health: fix pyenv root and python exepath detect issue
- 237d2aef4d70 health: return correct name from 'path2name()'
- 5e9040648739 health: set nomodifiable in checkhealth buffers
- 91773710145e help: remove runnable code virtual text
- ff75f345ab5f highlight: 'winhl' shouldn't take priority over API (#31288)
- 458473acb8d6 highlight: add `StatusLineTerm`/`StatusLineTermNC` to `:color vim` (#29313)
- 6bcefad5a671 highlight: fix the seg fault caused by the invalid linked hl ids
- 8e81212e151a highlight: floating windows inherit NormalFloat from global-ns
- 67192760409b highlight: make TablineSel more noticeable with 'notermguicolors' #31905
- b67fcd048874 highlight: make `TablineSel` more noticeable #31896
- 862679c70fa0 highlight: update `PmenuSel` for colored completion items #30183
- 59e130b6cacd inccommand: ensure cursor is where it belongs
- 16f63b964fc4 input: handle vim.on_key() properly with ALT and K_SPECIAL (#29677)
- b52ffd0a59df inspect: always show priority
- 9c278af7cc96 inspect: show priority for treesitter highlights
- 22fd52325bf6 inspector: update semantic token namespace (#32157)
- efe1732c6fd8 jobs: do not block UI when jobwait() doesn't block (#31803)
- 574ea6a1911b keycodes: recognize &lt;Find&gt;, &lt;Select&gt; #28431
- 67bb0cfa79bc loader: follow the style of the error message for built-in loaders
- 44740e561fc9 log: RPC log format #32337
- 851137f67905 log: log unset $TMPDIR at "debug" level #32137
- c908c2560db8 log: unify error messages for vim.ui_attach/decor providers #33005
- a6f219b06beb log: unintuitive message for undefined $TMPDIR
- 2e6d295f799c lsp: account for changedtick version gap on modified reset (#29170)
- fac96b72a59e lsp: add foldingrange method support check #31463
- 8263ed467066 lsp: add textDocument/documentLink to capability map (#28838)
- a41b6fd17341 lsp: autocmds to close lsp preview windows not cleared
- b42dc232c532 lsp: autotrigger should only trigger on client's triggerCharacters (#32266)
- 7031949be065 lsp: avoid reusing diagnostics from different servers in actions (#30002)
- fc9b70826ec8 lsp: avoid vim.keymap.del error when stopping a client (#29478)
- 39d79efa1e1e lsp: better multi-client support for callHierarchy
- bdfba8598b41 lsp: cancel pending requests before refreshing
- f9bf64d74641 lsp: check buffer is loaded and valid #30330
- c2bf09ddff49 lsp: check for configuration workspace folders when reusing clients
- 81b372fecd74 lsp: check for nil response from server (#29196)
- a9cdf76e3a14 lsp: check for valid buf before processing semantic tokens response
- 230bc34ca541 lsp: check if buffer is valid before LspDetach autocmd (#29162)
- af200c10cf9d lsp: check if buffer was detached in on_init callback (#28914)
- 02097e43c8cf lsp: check if sig_help window is focusable when configuring cycle keymap
- 025c87441502 lsp: clear lsp client diagnostics (#29050)
- c374f264305f lsp: clear word when expand multi-lines word (#32393)
- adf7c98d607b lsp: compare URI instead of workspace folder name (#30962)
- b4599acbf8e3 lsp: correct hover result handling (#30995)
- f8d5811c717b lsp: correctly check for "codeAction/resolve" support
- 7d8db544417e lsp: delete b:lsp_floating_preview buf var after win close
- 2a1f604c77a1 lsp: delete bufvar inside WinClosed event
- 879d17ea8d62 lsp: detach all clients on_reload to force buf_state reload (#28875)
- 292365fa1b8f lsp: do not detach from buffer if there are uninitialized clients (#29029)
- 37bf4c572a8f lsp: do not reset buf version when detaching client (#29242)
- d56ba71af11c lsp: document_symbol uses loclist by default #32070
- 720b309c786c lsp: don't send foreign diagnostics to servers in buf.code_action (#29501)
- 1f2f460b4a77 lsp: don't show codelens for buffers that don't support it (#29690)
- 5f527f24f0ea lsp: don't use completion filterText if prefix is empty
- 305012ea0732 lsp: enable `additionalPropertiesSupport`
- 9d9ee3476e64 lsp: ensure watcher cancel
- aec7f1979ada lsp: fallback to `label` for completion items if all others are missing (#29522)
- 33d10db5b7a7 lsp: filter completion candidates based on completeopt (#30945)
- b3109084c2c3 lsp: fix cursor position after snippet expansion (#30659)
- 4b001f297ae2 lsp: fix infinite loop
- 983953858e56 lsp: fix isIncomplete condition in completion trigger (#30130)
- 2ce4a4d91e4a lsp: fix reverse sorting of same position text edits (#29212)
- 8654a9700690 lsp: handle empty call hierarchy items #30349
- f279d1ae33ee lsp: handle encoding bounds in str_utfindex_enc
- 882a450a2982 lsp: handle locations exceeding line length #30253
- 008782208d82 lsp: handle mixed encoding in tagfunc params
- e0a5c3bb5817 lsp: handle multiline signature help labels #30460
- 8512f669f0e0 lsp: handle nil bytes in strings
- f03b1622ad1b lsp: handle nil root_dir in health check (#29007)
- ed071672613b lsp: handle non-existent configs in lsp.config/enable
- 003b8a251dc1 lsp: handle out-of-bounds character positions #30288
- 5187be81c2eb lsp: handle using array as open_floating_preview title (#33016)
- d9a2acdab3bf lsp: hide layout in codelenses in virtual text (#28794) (#28807)
- f54266dbed6f lsp: hover border type can be string (#31013)
- 9a681ad09e2a lsp: hover keymap (#31208)
- a14fca432b96 lsp: improve LSP floating preview window cleanup #31353
- e29f245a1082 lsp: inlay hints are rendered in the correct order (#29707)
- 0086ee90dd2f lsp: list all workspace folders in healthcheck #30966
- 0e394f136fcb lsp: log when receiving markup messages (#30065)
- 203e7a43d1f2 lsp: mention function name in warning #31301
- a4f575abd85e lsp: minimum height for floating popup #31990
- 4fd2694f20d6 lsp: missing method parameter when canceling requests
- be8d87014c0c lsp: on detach, cancel pending foldingRange requests #31509
- 7d5866d47174 lsp: open_floating_preview() ignores max_height (#32716)
- 86770108e2c6 lsp: open_floating_preview() zindex relative to current window #31886
- 724d1110b1e4 lsp: pre-filter matches on label if filterText is missing (#29491)
- a450fda4eded lsp: prefer `on_list` over `loclist` in default handler
- 6bb40f3dbffb lsp: prevent desync due to empty buffer (#29904)
- eb629cce9171 lsp: redundant spaces in lsp log (#29970)
- 43581011e41b lsp: remove superfluous on_detach callback from semantic tokens module (#29174)
- d76f7fef13e5 lsp: reset active request when reporting an error
- 6bc79790449f lsp: reset the applied hints on `refresh` request #32446
- 47aaddfa0dda lsp: resize hover window for concealed lines
- 081beb3659bd lsp: restore get_language_id behaviour
- 29c72cdf4a49 lsp: retrigger diagnostics request on server cancellation (#31345)
- d9ccd828b0d4 lsp: return call hierarchy item, not the index (#30145)
- 9c2034229739 lsp: reuse client if configs match and no root dir
- 6e45cd7f0026 lsp: revert buf_versions deprecation/replacement (#29217)
- bdff50dee56e lsp: revert text edit application order change (#29877)
- e8a6c1b02122 lsp: schedule call to vim.lsp.start for async root_dir (#31998)
- a108852b008b lsp: semantic token functions allow "0" bufnr #28849
- c3cb702ac7a5 lsp: set 'smoothscroll' in docs hover #30748
- 8a236c242a76 lsp: set floating window filetype after setup #32112
- 3c51058d7611 lsp: set tagstack on jump via goto methods
- 24d7debdfb77 lsp: signature_help highlights wrong parameter #32382
- 80e37aa53357 lsp: str_byteindex_enc bounds checking #30747
- 629a5b71b55e lsp: support multiple clients in typehierarchy
- e48179f31e65 lsp: suppress completion request if completion is active (#30028)
- 50f006b61774 lsp: tagfunc fails in unusual buffer #30700
- 5ac8db10f042 lsp: trigger LspDetach on buffer delete (#28795)
- 19be3d26830c lsp: trim trailing whitespace from completion words (#29122)
- aa47af7e69bb lsp: tune completion word extraction for decorated labels (#29331)
- 38838fb00ab3 lsp: type-errors, other nits in vim.lsp.log #31235
- 8d7eb03040c2 lsp: unify get_completion_word for textEdits/insertText
- fe5ae88b20f5 lsp: update request name to capability map #30098
- 5aa9906676f3 lsp: use client.id instead of pairs index (#29143)
- c8d7d65679f8 lsp: use correct method for prepareTypehierarchy
- b9e6fa7ec81c lsp: use filterText as word if textEdit/label doesn't match
- 5d08b65ac2f6 lsp: use unresolved code action when `codeAction/resolve` fails
- 0a7e4e9e5f28 lsp: vim.lsp.enable(...,false) does not disable  #32002
- 888a803755c5 lsp: vim.lsp.start fails if existing client has no workspace_folders #31608
- 42ed0ffad985 lsp: when prefix is non word add all result into matches (#30044)
- 55bdb077b706 lsp: wrapped ctx in opts before passed to vim.lsp.completion.trigger #32837
- 2dcbfe78fcec lsp.buf: use correct offset_encoding for all requests
- 3275ae830da9 lsp.protocal: improve typing of constants
- acbc6a7f91d1 lsp.util: inconsistent handling of offset_encoding
- 564173e5568c lsp.util: wrong arguments to 'validate' function
- 614c9322d500 lua: SIGSEGV in luv callback with error(nil) #32595
- b28373638848 lua: `@private` =&gt; `@nodoc` #32587
- b6e350a6b4df lua: allows tables with integer keys to be merged in tbl_deep_extend
- c8b64b7a4397 lua: always use vim.inspect() for :lua= (#32715)
- 0e42c81c7fd4 lua: avoid recursive vim.on_key() callback (#30753)
- fe1e2eff0626 lua: avoid vim._with() double-free with cmdmod (#31505)
- 487f44a6c14f lua: change some vim.fn.expand() to vim.fs.normalize() (#29583)
- 43bd9c9c1cac lua: don't clamp -1 or v:maxcol in vim.highlight.range() (#29203)
- bdc6e3878132 lua: don't include text after cursor in completion pattern (#29587)
- e2aca58bcc4f lua: don't override script ID from :source (#32626)
- d40481322a79 lua: ensure inspect_pos() only shows visible highlight extmarks
- 948f2beed4ea lua: find length of completion prefix earlier (#29384)
- ebb963a4a082 lua: format errors from luv callbacks using __tostring
- 65a703e06063 lua: ignore stdout and stderr for xdg-open
- 6b00c9acfde9 lua: no omni/cmdline completion for vim.env (#33044)
- c6d2cbf8f51a lua: pop retval for fast context LuaRef
- a5b1b83a2693 lua: prevent SIGSEGV when lua error is NULL in libuv_worker
- 3d707e6f14b7 lua: remove vim.loader.disable() #31344
- 3a8811324604 lua: revert vim.tbl_extend behavior change and document it
- 3688a3335442 lua: show stacktrace for error in vim.on_key() callback (#31021)
- 40a149e7f992 lua: types for vim.api.keyset.win_config #32700
- 7f33c1967b78 lua: use rawget() to get __call in vim.is_callable() (#29536)
- 960fdc775a88 lua: vim.deprecate does not support major&gt;0
- d832518ec6b4 lua: vim.hl.on_yank highlights wrong region with yi' (#32850)
- cd3855fb2be7 lua: vim.tbl_get({}, nil, 1) should return nil #32218
- 89d6d6f25cf2 lua: wrong script context for option set by func from nvim_exec2 (#32659)
- 9eb042600269 luacats: allow all types inside tuples
- ee5aaba21560 man: avoid setting v:errmsg (#30052)
- 7588ff2d8986 man: check if buffer is valid before restoring 'tagfunc' (#30180)
- da6f68ee6966 man: filter OSC 8 hyperlink markup #29171
- 7940ec69136f man.lua: `:Man &lt;tab&gt;` does not complete #31569
- e08e3d15f66d man.lua: skip `Attrs.None` highlights #32262
- d6653e1cc957 marks: ensure decor is removed with proper range (#32973)
- 906ad04dddff marks: handle composing in inline virt_text with 'nowrap' (#32477)
- 84520325547d marks: handle double-with inline virt_text with 'nowrap' (#32476)
- 86046c5a3103 marks: ineffective conceal_line callback optimization (#32662)
- 72f630f92dc8 marks: issues with invalid marks and marks beyond eob (#32862)
- 8da59060c6dc marks: mark winline as invalid if change is in a concealed line (#32766)
- 012db2b0f509 marks: revalidate marks whose position did not change
- 5cc93ef4729c marks: revise metadata for start mark of revalidated pair #32017
- c4f76299f039 marks: skip right_gravity marks when deleting text
- cdedfc3743df marks: truncate double-width inline virt_text consistently (#32560)
- 7371abf7554e marks: wrong winline info for concealed line with below virt line (#32747)
- a9287dd882e0 mbyte: check for utf8proc_map() failure (#30531)
- 50a576ba576b mbyte: mark any 0xFE0F sequence as a TUI ambiguous width char
- 15bc930fca94 memline: don't check line count for closed memline #32403
- aa976f0d9327 messages: add a trailing space to inputlist() etc. prompts (#32328)
- 37c77ab46baa messages: attaching/detaching ext_messages causes asserts #31952
- d98827b634af messages: avoid empty msg_showmode with 'noshowmode'
- 31d6885deba0 messages: better formatting for :highlight with ext_messages #31627
- 21718c67dd96 messages: better formatting for ext_messages #31839
- 92556be33d04 messages: compute msg_col after last newline in ext_messages
- ad853d1df093 messages: improve deadly signal messages #32364
- 51853b82bc95 messages: incorrect error message splitting and kind #32990
- 08f7c2237767 messages: list_cmd kind for :registers, :au[g] #32531
- 7ce27381fb49 messages: lsp window/showMessage is not an error
- 1b6442034f6a messages: more ext_messages kinds #31279
- 9c6a3703bb15 messages: no message kind for :undo messages #31590
- ca760e645ba4 messages: no message kind for :write messages #31519
- 909b18d05a8d messages: no message kind for completion menu messages #31646
- f111c32ff9dc messages: no message kind for search pattern #31272
- 282f73f067cb messages: no trailing newline for inputlist, tselect, z= with ext_messages
- 9fa3a0964e9b messages: pass previous highlight id to ext chunks
- e025f5a5b30a messages: proper multiline Lua print() messages #31205
- d1e00a5f6dce messages: typo and unwanted truncation in msg_outtrans_long #31669
- d55b17e2b4e0 messages: verbose kind for nvim_echo()
- c8e47f648052 meta: do not use hyphens in param names
- 2cd72258f6be mouse: 'statuscolumn' fold and popopmenu handling
- 81d4e96bc868 mouse: don't treat click on hsep as click on statusline (#29565)
- 102971a39672 mouse: early return when clicking in padded 'statuscolumn' (#29394)
- 86c5c8724bd8 mouse: indicate X1 and X2 button clicks on statusline (#30655)
- f86864f22fef move: 'scrolloff' cursor correction no longer handles folds properly (#32642)
- 5947f249f838 move: half-page scrolling with resized grid at eob (#28821)
- ac7e0ff32ff1 move: redraw for 'concealcursor' after changing w_wcol (#31276)
- af0a2157ad29 move: wrong cursor row on concealed line (#32629)
- 83479b95abae mpack: remove invalid bool definition
- d32780de4daf mswin: UI may hang on exit
- fa99afe35eb5 multibyte: handle backspace of wide clusters in replace mode
- de83cc5842c9 netrw: re-add missing comment marker in syntax file
- d9585bdcfb5b nvim__set_complete: pum preview info truncated during completion #32555
- 34e2185022ab options: better handling of empty values
- 190d0241e2a0 options: fix 'winborder' accepting multiple string values (#32978)
- 8c532a9ea8a0 options: fix 'winhl' still accepting invalid value (#30896)
- 1b9dafa67ba9 options: fix :setglobal not working for 'spelloptions' (#30894)
- 395f420fc65c options: fix some 'belloff' flags not working properly (#30856)
- 50e63c8171d4 options: missing error check for global 'scl' and 'winhl' (#30919)
- e697c1b43dfb paste: improve repeating of pasted text (#30438)
- 052875b9dc3d paste: only record a paste when it's from RPC (#30491)
- 9516997eb0ad paste: wrong '[ mark after pasting a big string (streamed chunks) #33025
- 42aa69b076cb path: avoid chdir() when resolving path (#28799)
- 42db8b17594e path: crash with nvim_get_runtime_file during wildcard expansion (#32992)
- 0dfcf3fe12ac plines: don't count invalidated virt text in char size (#29863)
- afc3c43f12e2 popup: new preview_bufnr created when menu item is selected #32819
- ac1c5ccb2c04 popup: reuse pum preview float win, set 'winfixbuf' #32636
- d288f7003d25 popup: wrong extmark data sync when lines changed in popup preview #30246
- d24fb72c335b pum: don't select item when clicking to the left/right (#30967)
- 73ae7d44a281 quickfix: make shortmess+=O work with cmdheight=0 (#29609)
- 3bcd5624beec regexp: fix typo in E888 error message (#30161)
- cb924764a40d runtime: "E121 Undefined variable s:termguicolors" #32209
- 29a47b39ccd0 runtime: E15: Invalid expression in lua file when `gf`
- b6c1ce8a9545 runtime: add commentstring for glsl ftplugin
- 9ddfcb64bfdb runtime: add remaining missing commentstrings (#30252)
- e641155b023c runtime: avoid E31 in ftplugin (#32578)
- 82b02ae2f2af runtime: clean up one-off scripts
- 9788b81d7e53 runtime: fully port emoji_list to Lua
- 74fcc9452cd9 runtime: gO always says "Help TOC" #32971
- 69aa33d89046 runtime: let matchit and matchparen skips fallback on treesitter captures
- 8369590eb215 runtime: remove obsolete ftplugin/calender.lua
- 41b70a0dea4d runtime: set 'keywordprg' only once in vim ftplugin
- 7b16c1fa8451 runtime: source c ftplugin properly for cpp on Windows (#29053)
- 12c9791e0fef runtime: stop treesitter highlight in b:undo_ftplugin (#29533)
- 862338255da6 runtime: sync bundled treesitter queries
- 9e80738f3073 runtime: sync bundled treesitter queries
- 50577534318b runtime: treat b:undo_ftplugin consistently in Lua ftplugins (#30473)
- 8f5e90811025 runtime: update b:undo_ftplugin in Lua runtime files (#29529)
- a5bd6665b00a scripts: update bundled dependencies in bump_deps
- 573a71469d37 scrollbind: properly take filler/virtual lines into account
- a8b6fa07c4d9 search: avoid quadratic time complexity when computing fuzzy score (#32153)
- 648d6426c863 server: CID 509282: DEADCODE #30316
- f4921e2b7deb shada: ":wshada/:rshada [filename]" with shadafile=NONE #32538
- cd48b72b60af shada: restore search pattern length properly (#28929)
- 608543f8a90b snippet: cancel snippet session when leaving the buffer (#29031)
- 7994fdba6a1e snippet: don't override unnamed register on tabstop select (#28998)
- 5fe4ce6678c0 snippet: modify base indentation when there's actually whitespace (#29670)
- 424f4cc0389e snippet: wrong indentation when snippet contains "^" #32970
- d46ebd2a7403 startup: avoid crash with completion from -l script (#32160)
- 08153ddd1c14 startup: ignore broken $XDG_RUNTIME_DIR #30285
- 17e00d0cc63c startup: report --startuptime error to stderr (#31131)
- 8a2aec997482 startup: server fails if $NVIM_APPNAME is relative dir #30310
- 19fc65acbc67 statuscolumn: misleading v:lnum for virtual lines #32912
- 87e806186c72 statusline: overwriting stl_items with nvim_eval_statusline() {-item #32265
- 1c30d86c337e tabline: restore behavior of click after last tabpage (#30602)
- a49f95d887a2 terminal: avoid mismatched `busy_start` without `busy_stop` (#32458)
- f3ce67549c94 terminal: avoid more `busy_start` lacking `busy_stop` (#32509)
- 3d49c55d3c33 terminal: avoid rescheduling events onto the same queue (#32755)
- 69a19295f8fe terminal: delay when finishing terminal process #32846
- f8c8a245aa5b terminal: don't crash on unprintable chars
- 6d997f8068a8 terminal: handle C0 characters in OSC terminator (#30090)
- fa46441264b2 terminal: improve cursor refresh handling (#32596)
- 1d11808bfd28 terminal: interrupt/got_int hangs terminal (#30056)
- 3db3947b0ed2 terminal: restore cursor from 'guicursor' on TermLeave (#31620)
- c51bf5a6b249 terminal: set cursor cell percentage (#31703)
- 5def8714ad70 terminal: set local values of window options (#29326)
- e9c077d197a8 termkey: fix null pointer dereference (#31792)
- c8e3618e0e68 test: "tempdir not a directory" in CI logs
- f7e32fb6e626 test: better management of tmpfiles
- db2c3d1143fb tests: filter out lines with __typeof__ keyword (#32524)
- e61228a214eb tests: needing two calls to setup a screen is cringe
- 639734bed4ef tests: remove the __extension__ keyword  in filter_complex_blocks (#32483)
- 59baa5e8a1f9 tohtml: apply sp color if present #30110
- 67c39f5ecae0 tohtml: disable modeline #32822
- e37404f7fecc tohtml: enclose font-family names in quotation marks
- 25db0a138537 tohtml: extmark text may be out of bounds
- 8cd9feb50166 tohtml: ignore lsp inlay hints
- eb37241d38ad tohtml: properly handle multiple hl groups #29012
- 2ed6423c7e9d tohtml: replace ipairs with pairs
- 88c7997503e1 tohtml: show how many warnings are hidden
- 118ae7e5ed6c tohtml: support ranges again
- c63e49cce2d2 treesitter: #trim! range for nodes ending at col 0 #31488
- b63cd8cbaec1 treesitter: EditQuery shows swapfile ATTENTION #30536
- 55b165ac15a7 treesitter: `TSNode:field()` returns all children with the given field
- 86b737649bb8 treesitter: add 'QuitPre' event to autocommands in inspect_tree
- bc1018a8d3ee treesitter: avoid computing fold levels for empty buffer
- a119dab40f93 treesitter: avoid computing foldlevels for reloaded buffer #32233
- 6696ea7f1038 treesitter: clean up parsing queue
- 99acc9de559a treesitter: close InspectTree/EditQuery window on BufUnload (#31036)
- f50f86b9ff5d treesitter: compute folds on_changedtree only if not nil
- 7a20f93a929a treesitter: correct condition in `__has_ancestor`
- 9b25c68db21c treesitter: correctly parse queries with combined injections
- 3abfaafad255 treesitter: detect trees with outdated regions in `is_valid()`
- 9217e0d671b7 treesitter: display fields for anonymous nodes in :InspectTree
- da4e8dc5b04a treesitter: do not modify highlight state for _on_spell_nav
- 0e3e1e6b6d83 treesitter: don't open fold when o/O adds a line below #28709
- aa2b44fbb07f treesitter: don't return error message on success #31955
- b0bbe25c4808 treesitter: don't spam query errors in the highlighter
- b88874d33c15 treesitter: empty queries can disable injections (#31748)
- d413038b4fd7 treesitter: ensure syntaxset augroup exists (#29542)
- f8e1ebd6f626 treesitter: escape things like `"` in omnifunc results
- c4eb0b64bd49 treesitter: find buffer in multiple windows #28922
- 94d42a3e7239 treesitter: highlight anonymous nodes in inspect_tree
- 5331f87f6145 treesitter: indent size for inspect_tree #28727
- 6ef80eb42c73 treesitter: keep treeview open if source window is still open #31198
- 052e048db676 treesitter: lint top-level anonymous nodes
- 4b9095285160 treesitter: mark supertype nodes as named
- 096ae3bfd707 treesitter: nil access when running string parser async
- c3337e357a83 treesitter: nil check query for has_conceal_line
- 6711fa27ca6e treesitter: recalculate folds on VimEnter #32240
- 05dcda8f9b05 treesitter: recognize aliased parsers in omnifunc, query linter
- d3193afc2559 treesitter: remove duplicate symbol names in language.inspect()
- cdc9baeaf89e treesitter: remove redundant on_bytes callback #31041
- 1827ab7a1f9a treesitter: separately track the number of valid regions
- 36990f324de2 treesitter: show proper node name error messages
- 4349bdbd0bd0 treesitter: specify success status in edit_query return value
- e7ebc5c13d2d treesitter: stop async parsing if buffer is invalid
- 0f067cd34d09 treesitter: suppress get_parser warnings via opts.error
- ae917dbd06cb treesitter: sync queries from upstream
- c4e9ff30a6b6 treesitter: sync queries with upstream
- d8eec8156098 treesitter: update lua, markdown queries
- 6e44a6a289c5 treesitter: update queries
- 5a54681025ec treesitter: uv_dlclose after uv_dlerror
- e4bc8b5967d2 treesitter.foldexpr: only refresh valid buffers
- 48acbc4d645f treesitter.foldexpr: refresh in the buffers affected by OptionSet
- 8474f529780b treesitter.foldexpr: robustness against ctrl-c
- f81131cca2b4 tui: also reset cursor color if it was invisible (#31348)
- 4846bf05dc63 tui: avoid flushing buffer halfway an OSC 2 sequence (#30793)
- 720ec5cec2df tui: cursor color in suckless terminal #32310
- b5cb69f8a4a3 tui: handle key events for arrow and function keys (#31804)
- d7651b27d54a tui: move $COLORTERM check to _defaults.lua (#29197)
- a811d4babd22 tui: only reset cursor color if it was changed (#31337)
- 0c0352783fca tui: remove DCS escaping in tmux (#32723)
- 47c741e30c87 tui: remove duplicate disabling of synchronized output (#28884)
- f32557ca679c tui: reset active attr ID when OSC 8 sequence is terminated (#29960)
- bc63ffcf39e8 tui: reset clear_region attributes during startup #28713
- b02c83941493 tui: set id parameter in OSC 8 sequences (#29840)
- 0231265c8cf8 tui: skip TUI in ui_rgb_attached (#29096)
- 8b8096500d08 tutor: incorrect lines marked as correct #29833
- 31745b17e60d types: add narrower vim.validate types
- 44410d063ad2 types: add some vim.fn type annotations
- b813075b8a55 types: do not mark unstable API as private
- e947f226bebe types: use vararg return type annotation
- a1906c23ddab ui: Windows :detach is opt-in
- 594c7f3d7726 ui: avoid ambiguity about last chunk when flushing halfway (#29718)
- 216ec7397214 ui: avoid redundant ext_cmdline events (#32237)
- 6cdcac4492cc ui: clamp 'cmdheight' for other tabpages on screen resize (#31419)
- 318c0415d5b1 ui: correctly pass metadata to get_node_text #30222
- 7eba016c8681 ui: ensure screen update before waiting for input #30576
- 5b6477be45c5 ui: flush ext_cmdline events before doing cmdpreview #27950
- 6e4df18b457e ui: no fast context for prompt message kinds #31224
- 6b8c56c7f6da ui: schedule UI detach (#32827)
- b66106a46c5c ui: superfluous showmode / excessive grid_cursor_goto #29089
- d1fd674df3eb ui: update title in more cases (#31508)
- 442d338cb50e uri: uri_encode encodes brackets incorrectly for RFC2732 #31284
- d049752e45c3 version: fix vim.version().prerelease
- 8bdfc2ab2b25 version: return nil with empty string
- 6401b433f7c0 vim.fs: default to follow=false #32859
- 47e6b2233fef vim.fs: dirname() returns "." on mingw/msys2 #30480
- 0bef3b911cc2 vim.fs: joinpath() does not normalize slashes on Windows #31782
- 6dc0eb9f41e6 vim.fs.abspath: correctly handle UNC paths
- a8ace2c58a31 vim.fs.normalize: normalize case for windows drive letter
- 4c0d18c19773 vim.iter: enable optimizations for arrays (lists with holes) (#28781)
- 734dba04d13b vim.system: close pipe handles after process handle
- 4e130c1ee446 vim.system: invalid MAX_TIMEOUT for 32-bit systems #31638
- ad3472e29169 vim.system: resolve executable paths on windows
- 33464189bc02 vim.text: handle very long strings (#30075)
- 4cff4185647c vim.text: remove assert from vim.text.hexdecode
- d338ec9cb299 vim.ui.open: prefer xdg-open on WSL #30302
- 8bf79bd13c4d vim.wo: never allow non-zero bufnr
- 453f2c52d291 vim_snprintf: special-case handling of binary format
- 32e128f20992 watch: exclude .git when using inotifywait (#29914)
- 9e23b4e1852f watch: ignore nonexistent paths (ENOENT)
- a18652ed619b win-msi: add bin to PATH per-machine after installation (#29099)
- 88f07d6ca4a6 win-msi: set installer scope to machine #29895
- 4f9311b759ff window: making float with title/footer non-float leaks memory (#30551)
- 7b71fdbc1e9f window: respect hide flag of float windows when switching (#30507)
- 59da82abd91e wininfo: when freeing windows, free the lowest priority wininfo

PERFORMANCE
--------------------------------------------------------------------------------
- 48251134ee59 add fast path to vim.validate (#28977)
- 3abd7ed4a4cd consider only active decorations when drawing lines
- 8d2ee542a82a decor: join predicates and matches cache
- 48e3ac60c633 diagnostics: cache line diagnostics when `current_line` is set #32288
- b8ddd3b6bbfb events: remove unnecessary loop in event_nr2name() (#32777)
- 15f2da55a8de events: use hashy for event name lookup (#32802)
- abf4b65a51b2 filetype: cache (more) pattern data during "add" time
- f61efe3fe77c filetype: implement parent pattern pre-matching (#29660)
- ff575b388640 filetype: optimize internal data structures
- dc04ef2a20bf filetype: skip contents check in `match()` if there is no contents (#29596)
- 12d4caa9d3e4 keycodes: use hashy for string lookup
- f8fc6cb15755 loader: reduce calls to Loader.cache_file
- 138a93a057da lsp: avoid repeated table lookup in completion.enable
- 7342e6b00d5e lsp: do not apply semantic tokens to folded lines
- c85d15e0d557 lsp: don't construct potentially expensive strings
- cc1f2d2ca6ca lsp: don't copy completion items in filter pass
- 3e855d533f44 lsp: use faster version of str_byteindex
- 000129201c54 mouse: only generate &lt;MouseMove&gt; for a new cell positon (#31103)
- 3fdc43024159 treesitter: cache queries strongly
- b192d58284a7 treesitter: calculate folds asynchronously
- c6abc97006ee treesitter: do not use tree cursors with a small lifetime
- cbad2c662873 treesitter: don't block when finding injection ranges
- d9ee0d2984e5 treesitter: don't fetch parser for each fold line
- 562056c87573 treesitter: only search for injections within the parse range
- c57a85e0eda0 treesitter: remove unnecessary foldexpr loop
- 64847fbdc908 treesitter: use `child_containing_descendant()` in `is_ancestor()`
- 4b0291633453 treesitter: use child_containing_descendant() in has-ancestor? (#28512)
- 3f3e4837d5f7 validate: use lighter version
- 99b5ffd68824 vim.text: use lookup table implementation for hex encoding (#30080)

BUILD
--------------------------------------------------------------------------------
- 104800ce2ead "popcount" name conflict on NetBSD #28983
- 198a952c13a1 add luals check
- ef8067a19d98 add quotes around `CMAKE_GENERATOR` variable
- 32e16cb0b6b0 add utf8proc as dependency
- b213f5169c33 allow comment after #include for required header (#29722)
- 382eb878bcbf bump lua dev dependencies
- 1d815acd78e5 bump minimum cmake version to 3.16
- 5284a2a79316 bump unibilium to v2.1.2
- ac5a6d9ff56b fix RelWithDebInfo optimization flags #31802
- 7c652242579b fix lint error on macos
- 046e0956eeb3 fix or silence new clang-tidy warnings
- 5719f2b91a31 fix uncrustify install in nix devShell (#33020)
- 4a0ee22e77d1 make makefile work on msys
- 4ee65484b16d make makefile work on windows
- 1b90f4a9c472 mark CMake variables advanced #31412
- 0f24b0826a27 move all generator scripts to `src/gen/`
- e5ff3020330e remove -O2 from gen_cflags
- d74c74aae35e remove `lintcommit` from `lint` target
- 573bcb2aaf3e remove enforcement of cmake build type
- 0e9c92a90043 remove nix flakes (#28863)
- f09f5c45facc reuse code for deps.txt for both deps and main build
- e1dc824b7ef4 set luals checklevel to Hint #32392
- cac86e9b4c14 silence "po" noise #30469
- 07b14c8e2ed2 specify POST_BUILD when using add_custom_command
- e83ce331da91 use treesitter's CMakeLists.txt
- e268fcbdaa1e work around bug in make when PATH includes cmake as dir
- b288fa8d62c3 bump_deps: abort if archive doesn't exist
- 7ead328a4858 cjson: sync with upstream (#32114)
- 0e2f92ed79e3 clint: make NOLINT work with header checks (#31281)
- 327110ff8c59 cmake: remove unnecessary policy code
- 535c2f8658c4 contrib: add zsh completion (#32617)
- 51d85f7ea58b deps: drop unused bundled bash, python parsers and queries
- 9216bc927c00 deps: fix formatc target on MSVC
- b3641b80083d deps: remove libtermkey dependency
- 1247684ae14e deps: remove msgpack-c dependency
- fa79a8ad6dee deps: vendor libvterm at v0.3.3
- c614969570ac docs: update CSS #28896
- 0a087f207331 generator: add dependencies on hashy (#32796)
- e178331488a0 lpeg: search for lpeg.so on MacOS
- 7e099cf3eb1f macos: disable deduplication in link step
- f4d9a2983a49 release.sh: fix hang when generating docs (#33026)
- b923fcbaf062 vim-patch.sh: don't ignore changes to version*.txt (#29425)
- 7aaa4a51b76f vim-patch.sh: include commit subject #28767
- 314643319080 vim-patch.sh: use 7 hex digits for runtime patch file name (#29940)
</content>
</entry>
<entry>
<title>NVIM v0.10.0</title>
<updated>2024-05-16T12:34:32Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2024-05-16T12:34:32Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=27fb62988e922c2739035f477f93cc052a4fee1e'/>
<id>urn:sha1:27fb62988e922c2739035f477f93cc052a4fee1e</id>
<content type='text'>
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).
Following is a list of fixes/features commits.

BREAKING
--------------------------------------------------------------------------------
- 649dd00fe2e5 remove deprecated functions
- 0370e4def0c0 remove neovim qt
- 880f7d12fea3 remove vimballs (#22402)
- c48b1421af28 rename "playground" =&gt; "dev" #23919
- 2f85bbe61513 rewrite TOhtml in lua
- abe39f2b243d api: change return type of nvim_win_text_height to Dict (#24365)
- 7180ef690180 api: nvim_open_win: noautocmd blocks all autocmds #28192
- 700cab00680f events: trigger CursorMoved later on switching window (#23711)
- e4a136f71375 ex_cmds: remove :behave
- e5e0bda41b64 lsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958)
- 5a363ccac8ff lsp: deprecate trim_empty_lines
- 5a2536de0c4b lsp: move changetracking to separate file (#26577)
- 58618d208acd lsp: promote LspRequest to a full autocmd and enrich with additional data (#23694)
- 1b9ccd38a12f lsp: rename vim.lsp.get_active_clients to get_clients (#24113)
- eb1f0e8fcca7 lsp: replace snippet parser by lpeg grammar
- 448907f65d67 lsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512
- 7caf0eafd83b lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440)
- 747264320c6d mappings: remove #n as a notation for a function key (#17318)
- f7da47225706 options: graduate shortmess+=f flag
- c3d1d9445c70 options: graduate some more shortmess flags
- 5df4fdf253f9 options: make OptionSet `v:` values use typval
- 881d17a11393 options: remove compatible behaviours for vim 5.0 and earlier
- e19cc9c9b715 options: unify `set_option` and `set_string_option`
- db590e96d593 startup: "nvim -l" message does not end with newline #24215
- 2ca076e45fb3 treesitter: incremental injection parsing
- f5dc45310941 treesitter: new standard capture names
- fc0ee871de2f treesitter: remove deprecated legacy injection format
- 6debb1852355 treesitter: remove duplicated diagnostic code (#24976)
- 18da6964cc61 vim.iter: remove vim.iter.map/filter/totable #26138
- 9b028bd64f42 vim.iter: rename xxback() =&gt; rxx() #28503
- 8d4a53fe6e20 vim.json: remove global options, "null", "array_mt" #24070
- 40ce8577977f vim.ui: change open() to return `result|nil, errmsg|nil` #28612
- e0d92b9cc20b vim.ui: change open() to return pcall-like values #28502

FEATURES
--------------------------------------------------------------------------------
- a66b0fdfaa35 NVIM_APPNAME supports relative paths #25233
- c0beb8173fe2 add .luarc.json (#24592)
- 14b7ffcf89bc add __call typing for vim.inspect()
- ca7e488cfeb1 add link in issue template to minimal config template
- 4bf47222c973 add vim.text module (#26069)
- 0ebc4de0ff93 allow opting in to builtin clipboard providers (#28083)
- e8d3c4cccb9d generate types and docs for v variables
- 29fe883aa916 ignore swapfile for running Nvim processes #25336
- 28d1640dd604 improve return type annotations for vim.api.*
- 199a990c9e4e report "build" in vim.version() #23925
- e68879325393 tostring(vim.version())
- c559ab0ae6be update unicode tables (#27317)
- ecdb6465e272 vim.version() returns a Version object
- 4b60267f82ef :source: source current ft=lua buffer as Lua code (#23802)
- 428edcde7068 api: add forward and back mouse buttons
- 037ea6e786b5 api: add nvim__redraw for more granular redrawing
- ca9f6f56949d api: add nvim_tabpage_set_win (#27222)
- db8fe63a9398 api: add nvim_win_text_height (#24236)
- 16513b303375 api: allow floats to be opened in non-current tabpage (#28480)
- 6b4970f6e0ac api: allow open_win/win_set_buf in the cmdwin in some cases
- 5d921e28c1cc api: allow win_close in cmdwin to close wins except previous
- 472271199e48 api: allow win_hide to close cmdwin or non-previous windows
- 6bba4becedae api: make nvim_open_win support non-floating windows (#25550)
- b162adbb7ca4 api: pass 0 to nvim_get_chan_info for current channel (#27321)
- 42bbc4fabcf9 api: support abbreviations in nvim_set_keymap
- 98a4ed0a1106 api: support getting abbreviations (#26868)
- d3d7d763f3e1 builtin: improve types
- 748bc4d22d35 clipboard: add OSC 52 clipboard support
- db57df04b6af clipboard: enable OSC 52 clipboard provider by default (#26064)
- 734848dc1a9e colorscheme: add semantic tokens modifiers to builtin color scheme
- 1e0996b57230 colorscheme: update treesitter groups
- 73de98256cf3 comment: add built-in commenting
- ae4ca4edf89e complete: support f flag for complete buffer part
- 01c51a491330 completion: support completing more string options
- ae3685798dea decoration: allow conceal_char to be a composing char
- 30a5c28c8740 decoration_provider: log errors as error messages
- 9711370c2645 defaults: add :Inspect to right-click menu (#28181)
- 2613ba5000d4 defaults: enable 'termguicolors' by default when supported by terminal
- 513fc461957f defaults: improve :grep defaults #28545
- c26dc1f77c79 defaults: map Q and @x to repeat in Visual mode (#26495)
- 8758c6fb875f defaults: set g:netrw_use_errorwindow = 0 #24179
- 1d81d7a268f5 defaults: treat "•" as a list item prefix #24623
- 20b38677c22b defaults: use ripgrep (rg) for 'grepprg' if available
- 61063653b06b defaults: visual CTRL-R for LSP mappings #28537
- 4ee656e4f357 diagnostic: add `vim.diagnostic.count()` (#26807)
- 73034611c25d diagnostic: add default mappings for diagnostics (#16230)
- fc6d713dd806 diagnostic: add support for many namespaces filtering in GetOpts (#28045)
- 5ed9916a28b9 diagnostic: enable(…, opts)
- e7801775060e diagnostic: filter diagnostics by specific severities (#24736)
- b13e63db1dbc diagnostic: goto functions jump to highest severity (#28490)
- 26765e8461c1 diagnostic: is_enabled, enable(…, enable:boolean)
- 9cb7e00b9748 diagnostic: provide more control over virtual text display (#24724)
- ee41153a9458 diagnostic: revert default behaviour of goto_next/prev()
- 07b60efd8058 diagnostic: specify diagnostic virtual text prefix as a function
- a3b39784744f diagnostics: support numhl and linehl for diagnostic signs
- 0381f5af5bdc diff: grouping optimization for linematch algorithm
- 42333ea98dfc docs: generate builtin.txt (#24493)
- 9beb40a4db56 docs: replace lua2dox.lua
- 1d4a5cd18537 eval: exists() function supports checking v:lua functions (#26485)
- 4a1ad676ce0b ex_cmds: no error on :lua with {range} and {code} (#27290)
- c2433589dca0 ex_cmds: ranged :lua #27167
- b04286a187d5 extmark: support proper multiline ranges
- 1c032ad703a1 extmark: window scoped extmark
- 68cb4a7405ea extmarks: add "undo_restore" flag to opt out of undo-restoring
- 4e6f559b8c5f extmarks: add 'invalidate' property to extmarks
- c249058758af extmarks: add sign name to extmark "details" array
- bbd5c6363c25 extmarks: add virt_text_repeat_linebreak flag (#26625)
- 15e77a56b711 extmarks: subpriorities (relative to declaration order) (#27131)
- f0884f21fa0c extmarks: support hl_mode "combine" for inline virt_text (#24099)
- 372aa2eb3db3 float: add fclose command
- 35570e4a11be float: implement footer
- 4200a0f1678c float: support toggle show float window
- 1233ac467de7 fold: transparent foldtext
- 71530cc97257 folds: support virtual text format for 'foldtext' (#25209)
- 38b9c322c97b fs: add vim.fs.root (#28477)
- e3e6fadfd828 fs: expose join_paths as `vim.fs.joinpath` (#23685)
- bc67cf3ccdf9 gen_help_html: add anchors to help tags #25112
- b0cf9c5feeae gen_help_html: ignore pi_netrw.txt errors
- 81d8fce8f9e1 gen_help_html: non-default vimdoc.so parser
- da09f9b551ba gen_lsp.lua: protocol.Methods #24504
- f41496ce74fb gen_lsp.lua: sort by name, handle failure #24504
- 3692fd4c873a gen_lsp.lua: validate CLI args #26514
- 2ff2785c396e health: checkhealth buffer can show in a split window (#26714)
- 4382d2ed564b health: fold successful healthchecks #22866
- d1bc6fca7123 health: list attached buffers in LSP report #23561
- 2877672d70e7 health: make :checkhealth support more split modifiers (#26731)
- ddda5e0a488b help: hide filename of "gO" outline using conceal #27547
- e72c0cd92090 highlight: Allow hyphens (-) in highlight group names (#24714)
- 986bf7e78d09 highlight: add `FloatFooter` highlight group
- 574519d9d68f highlight: tweak default color scheme
- 64a14026d76b highlight: update default color scheme
- a79694a08ede issue_template: instruct not to include a package manager
- 69ffbb76c237 iter: add `Iter.take` (#26525)
- cebc00603ea3 l10n: update Turkish translations #24246
- fec51229c4a0 l10n: update Ukrainian translations (#24882)
- 996dd36c7732 lsp: add actionable advice to lsp client quit error msg (#24510)
- 4ff3217bbd87 lsp: add fswatch watchfunc backend
- 643546b82b4b lsp: add handlers for inlay hints (#23736)
- 317c80f460a7 lsp: add method filter to get_active_clients (#24319)
- 688860741589 lsp: add more LSP defaults (#28500)
- 0fe86f7e2403 lsp: add opts paramater to vim.lsp.codelens.refresh
- 131a1ee82d15 lsp: add original LSP Location as item's user_data in locations_to_items (#23743)
- f1775da07fe4 lsp: add snippet API (#25301)
- db0ec84fb46b lsp: add type annotations for lsp.util.locations_to_items (#26694)
- f190f758ac58 lsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388)
- 451bc50d40ee lsp: deprecate severity_limit
- e9b85acfbb8d lsp: enable workspace/didChangeWatchedFiles by default (#23190)
- 4a09c178a190 lsp: fallback to code-action command on resolve failure (#25464)
- 2f22ed6a00db lsp: handle multiple clients in omnifunc (#24381)
- 63b340855156 lsp: implement textDocument/diagnostic (#24128)
- 5e3cf9fb4bc7 lsp: improve control over placement of floating windows (#24494)
- 15641f38cf4b lsp: include positionEncodings in default client capabilities
- ddd92a70d2aa lsp: initial support for dynamic capabilities (#23681)
- ca5de9306c00 lsp: inlay hints #23984
- 350d81856473 lsp: inlay_hint.is_enabled({filter}) #28523
- 33e1a8cd7042 lsp: map K to hover by default #24331
- 97bea3163a3f lsp: more annotations
- 37079fca58f3 lsp: move inlay_hint() to vim.lsp (#24130)
- 12c2c16acf70 lsp: opt-in to dynamicRegistration for inlay hints (#24102)
- a49924a31852 lsp: remove notify from vim.lsp.buf_detach_client (#25140)
- 8149bd089e15 lsp: report fswatch errors
- fb54e6980ea6 lsp: set client offset_encoding if server supports positionEncoding
- 96e19533f60a lsp: set kind in select call for codelens #23889
- 9af355964306 lsp: set workDoneToken in initialize request (#28182)
- f736b075d371 lsp: snippet parsing using lpeg
- 134b9ec48361 lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104)
- 63f9c2da9aab lsp: support completion itemDefaults
- 3f788e73b345 lsp: support connect via named pipes/unix domain sockets (#26032)
- 7e36c8e972f0 lsp: support for choice snippet nodes
- 5c40f3e86a81 lsp: support vim.lsp.ListOpts.loclist in location_handler()
- abd2352bd8b8 lsp: update LSP protocol 3.18 typings to date (#28730)
- cfd4a9dfaf5f lsp: use treesitter for stylize markdown
- d5063f4b290e lsp: vim.lsp.inlay_hint.enable(nil) applies to all buffers #28543
- c0952e62fd0e lua: add `vim.system()`
- 9248dd77ac58 lua: add hl priority opts on yank (#23509)
- 642586977158 lua: add meta file for vim submodules (#24525)
- 3734519e3b4b lua: add noref to deepcopy
- 7c661207cc43 lua: add ringbuffer (#22894)
- 877d04d0fb83 lua: add vim.func._memoize
- ab1edecfb7c7 lua: add vim.iter (#23029)
- d675bd01b1e7 lua: allow vim.F.if_nil to take multiple arguments (#22903)
- c379d72c4905 lua: allow vim.wo to be double indexed (#20288)
- e52c25b7617a lua: deprecate vim.tbl_add_reverse_lookup
- f1dfe32bf555 lua: enable(enable:boolean, filter:table) #28374
- 5b40a1c09dda lua: implement Iter:join() (#26416)
- c01e624b0762 lua: more specific error messages for vim.api type checking
- e1ff2c51cad7 lua: pass keys before mapping to vim.on_key() callback (#28098)
- 2db719f6c2b6 lua: rename vim.loop -&gt; vim.uv (#22846)
- 6c0812d92e0c lua: specific error messages for type checking `opts` params
- fd089c8e50c2 lua: typing for vim.fn.* (#24473)
- 302d3cfb96d7 lua: use callable table as iterator in vim.iter (#23957)
- 51c754b62e79 lua: use keyset type information
- 8e5c48b08dad lua: vim.fs.normalize() resolves ".", ".." #28203
- 7e70ca0b4808 lua: vim.keycode (#22960)
- 9e86f473e0f4 lua: vim.region accepts getpos() arg (#22635)
- 4d04feb6629c lua: vim.tbl_contains supports general tables and predicates (#23040)
- 48d533272e57 lua-types: types for vim.api.* (#24523)
- 25e729970712 man: allow opening pages in current window (#27861)
- 08db61b19b8f man: respect 'wrapmargin' when wrapping man pages (#24091)
- f9944a78bcd3 meta: add types for vim.lpeg
- deb6fd670479 msgpack-rpc: show actual request id in error message
- 01fe6b9e6a84 msgpack_rpc: support out-of-order responses on `msgpack-rpc`
- 619407eb548c nvim_open_term: convert LF =&gt; CRLF (#26384)
- e98decf9a68e quickfix: support -q - to read 'errorfile' from stdin (#27303)
- 7b0123dd6a06 remote: avoid --remote-ui infinite loop (#24465)
- cca6c4c6986a rpc: allow empty string key in msgpack =&gt; Vim conversion
- d0d4160dd13f runtime: highlight hl groups in syntax.txt (#25050)
- 5f4895200a49 scripts: add lsp_types.lua (#23750)
- 4e6096a67fe9 server: allow embed with listen (#25709)
- 170c890dca8f shortmess: "q" flag fully hides recording message (#27415)
- d3582e102b7b statuscolumn: re-evaluate for every screen line (#25885)
- 224f303ee54c stdlib: add vim.base64 module (#25843)
- fa131de9adb7 tabline: middle mouse button now closes tab (#27522)
- c855eee919f2 term: enable reflow by default (#21124)
- cd1b14f027f3 termdebug: improve `:Evaluate` floating window (#26621)
- cffdf102d4f0 terminal: allow :terminal to take modifiers (#15427)
- 0c89854da189 terminal: close shell terminals automatically
- 7589336120a2 terminal: respond to OSC background and foreground request (#17197)
- beca827212b1 terminal: trigger TermRequest autocommand events (#22159)
- c6ec7fa8d741 treesitter: add 'injection.self' and 'injection.parent'
- 6cfca21bac6b treesitter: add `@injection.filename`
- 5d8ab32f3871 treesitter: add a query editor (#24703)
- cb0a1a10b224 treesitter: add bash parser and queries
- bb15fa035610 treesitter: add folding for `InspectTree` (#27518)
- 9ce1623837a8 treesitter: add foldtext with treesitter highlighting (#25391)
- 31c4ed26bc27 treesitter: add injection language fallback (#24659)
- 28f54a787823 treesitter: add lang parameter to the query editor (#25181)
- 88c8803aa167 treesitter: add python parser and queries
- c194acbfc479 treesitter: add query_linter from nvim-treesitter/playground (#22784)
- af040c3a079f treesitter: add support for setting query depths
- 11844dde81c4 treesitter: bundle markdown parser and queries (#22481)
- 5e6240ffc24e treesitter: handle quantified fold captures
- f69658bc355e treesitter: highlight Lua files by default (#26824)
- 988b472d902e treesitter: highlight help files by default (#26347)
- 845d5b8b6419 treesitter: improve query error message
- 189fb6203262 treesitter: improved logging (#23638)
- c0b99bb1de8d treesitter: show root nodes in :InspectTree (#26944)
- cb46f6e46726 treesitter: support URLs (#27132)
- ff6092b4ee3c treesitter: update Bash parser and queries to v0.21.0
- 8dda630ae942 treesitter: update C parser and queries to v0.21.0
- 3836eeb90182 treesitter: update C queries from upstream
- aca4ad430bdc treesitter: update Lua parser and queries to v0.1.0
- 5e875ae8d07d treesitter: update Markdown parsers and queries to v0.2.1
- 8a3385dde75f treesitter: update Python parser and queries to v0.21.0
- 20dcbaaaf880 treesitter: update Vim parser and queries to v0.4.0
- 987dff6713af treesitter: update Vimdoc parser and queries to v2.4.0
- 1384bebd5aa3 treesitter: update query parser to v0.2.0
- 668f16bac779 treesitter: upstream query omnifunc from playground (#23394)
- a478bf936b2a treesitter: use 0-based indexing to show ranges in `:InspectTree`
- ac8ed77afb35 tui: add 'termsync' option (#25871)
- 4ee9e58056a9 tui: query extended underline support using DECRQSS (#28052)
- b4b7ca2d548a tui: support DCS responses in TermResponse event (#26061)
- 622ae2f53e77 tui: support Super and Meta modifiers (#24357)
- a14267036076 tui: support undercurl in WezTerm (#28037)
- 56627ca2423e tui: use TermResponse event for OSC responses (#25868)
- 32b49448b227 tutor: add Japanese tutor #27268
- 9c2270b83459 types: add `test/.luarc.json`
- d3a8e9217f39 ui: add chdir UI event (#27093)
- 6ea6b3fee27d ui: add support for OSC 8 hyperlinks (#27109)
- b72931e70407 ui: allow non-zero 'cmdheight' with ext_messages
- 2615ed879e66 ui: allow to get the highlight namespace
- e38027ef69f7 ui: completeopt support popup like vim
- 2e4e12756a69 ui: indicate margins for the area used by win_viewport
- efa9b299a7cb ui: inline virtual text
- dacd34364ff3 ui-ext: make 'mousehide' into proper ui_option (#25532)
- 43ded8d35844 version: unverbose ":version", ":verbose version" #24195
- 0a598c13b186 vim.deprecate: only issue warning if neovim version is high enough
- a767c046f4e6 vim.iter: add Iter:flatten  (#26786)
- af6e6ccf3dee vim.ui: vim.ui.open, "gx" without netrw
- fa4b02fa67e5 vim.version: add `vim.version.le` and `vim.version.ge`
- 27a566f3f8e0 vimdoc: support Markdown code blocks (#25127)

FIXES
--------------------------------------------------------------------------------
- f5573fba3d46 Remove nested for_each_tree in TSTreeView (#26328)
- ae28ef327e02 adjust error message for error in UI event callback (#28200)
- ebe489d8f0ed allow multiline message for echoerr (#25380)
- 592bc831ce4b avoid ui_grid_cursor_goto when drawing window separators
- d6483793e1c3 buffer overrun in lmpack_session_receive
- 3bbb0aa3993f checkhealth warning even if init.lua exists #25306
- 5cb906e91cb5 correct versions in deprecation warnings
- 118fd8367c39 deduplicate gen_cflags
- eb4676c67f5d disallow removing extmarks in on_lines callbacks (#23219)
- 6e9b204afbe5 doc errors
- 77d3526a3d08 explain that user should run nvim with -V1 to see more information
- fd791db0eceb fix ASAN errors on clang 17 (#25469)
- bb38c066a965 fix compiler warning from clang
- 478273a4233d fix iter_matches call in query linter (#27496)
- bb7324292cda flush UI state before blocking in vim.wait (#25938)
- 44d4ae448d0a function was renamed (#23772)
- 1dd700a8d927 gf fails on "foo/bar.txt:1:2" on Windows
- 6e703f778fe7 handle argv not present in nvim_get_chan_info
- 56dc8b9212ef heap-buffer-overflow in file_name_in_line
- 74b2f6c3d956 ignore non-existent properties during header generation
- f5a09f1b0352 invoke changed_bytes when rewriting &lt;Tab&gt; char #25125
- b8273c9a3396 lua annotations
- 69d49727d776 luacheck
- 4ce3159e24e1 missing case in setxattr error handling (#26176)
- 41fb98d6fab5 move fswatch linux check inside of vim.schedule (#27824)
- ba58c6f8a44c only attempt to close timer if not already closing (#26047)
- b400b947f368 prevent child processes from inheriting ui channel file descriptors
- 99b8a343e197 quick update, squash later
- 83b51b36aa46 raise TS min version
- a090d43d61b5 splitting of big UI messages
- 2424c3e6967e support UNC paths in vim.fs.normalize
- 43e76cc3462b tostring(vim.version()) fails if build is NIL #24097
- 8c7a8be27437 transposed xcalloc arguments (#28695)
- 35f453f65df2 type warnings in shared.lua
- f112ac73bd34 unreliable "checkhealth completions" test
- b32b5b2711ed use BEL to terminate OSC 11 request (#26335)
- d95e3a4c9c8f use no_ff instead of ffdos as condition
- a1bec02c1e10 use snprintf instead of sprintf
- ca887b80a911 version-range &lt; and &lt;= #23539
- c1ee187f8214 vim.loop in luv threads (#23924)
- fe4583127f0a vim.validate() order is not deterministic #28377
- be8b15200d70 windows timeouts have exit code 1
- 1f8fb7c00048 :let: fix error when applying operator to boolean option (#24030)
- 5a3752889c5b NVIM_APPNAME: show error message if $NVIM_APPNAME is invalid
- c4ad15ae324f PVS/V009: add top-level message
- 128e194f64b0 PVS/V1001: variable is assigned but is not used
- 1bbbca267d05 PVS/V547: expression is always true/false
- 592e4472da5f PVS/V564: the '|' operator is applied to bool type value
- 30d311ebcf94 PVS/V592: expression is enclosed by parentheses twice
- 3ecd45ded044 api: allow negative column arguments for nvim_buf_set_text (#23501)
- 3ac952d4e27f api: avoid assertion when autocmd group id is 0 (#23210)
- b2a8a9314798 api: avoid immediate TextChanged with nvim_create_buf (#25492)
- ef7ae66eef4e api: avoid integer truncation
- b1e24f240bae api: avoid open_win UAF if target buf deleted by autocmds
- 0a81ec14a4c0 api: better topline adjustments in nvim_buf_set_lines
- c18f3cfcdb8f api: crash after nvim_win_set_config title/footer validation error (#26606)
- aa4e47f704c5 api: disallow some more functions during textlock
- 22d9338afcea api: disallow win_set_buf from changing cmdwin's old curbuf (#24745)
- da979ae04b7a api: do not re-apply win_config.style when missing
- 344906a08f09 api: do not update grid position in nvim_win_set_cursor (#28235)
- 22205f36a621 api: don't change title when setting buffer in a window (#23492)
- 711a2f5ff67d api: don't leak memory with nvim_win_get_ns (#27570)
- 1cf51a07a6bf api: don't set coladd of mark (#26648)
- 5fd1bac65ed0 api: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501)
- a3751f5de22f api: dont change curwin for nvim_win_set_height
- 1ff4562502e1 api: dont change curwin for nvim_win_set_width
- 59fed8bb6457 api: extmark highlight groups not always included in details (#23179)
- 9b9030ff2ca8 api: fix inconsistent behavior of topline touched in recent refactor
- fc2a56fe61a9 api: fix set_lines viewport adjustment, but this time good
- b7763d7f6b7f api: get virtual text with multiple hl properly (#25307)
- b3be7b741386 api: handle NUL in nvim_err_write() and nvim_out_write() (#25354)
- 132bbd1cbd49 api: handle clearing out last line of non-current buffer
- d942c2b9432d api: handle win_split_ins failure properly
- 5cfdaaaeac0f api: ignore 'autochdir' when renaming other buf (#28376)
- 2fc234372883 api: ignore 'autochdir' when setting buf in other win (#28371)
- 7367838359bf api: limit depth of nvim_cmd (#27225)
- 0da27e9bdec1 api: load buffer first on nvim_buf_set_lines (#25823)
- 4e5c633ed487 api: make getting explicit empty hl in virtual text work (#28697)
- d05d63a18ff8 api: make nvim_get_hl not return non-existing groups
- a70eae57bd44 api: make open_win block only enter/leave events if !enter &amp;&amp; !noautocmd
- 5d58136cccc7 api: make open_win/win_set_config check if splitting allowed
- 4ec8fd43bfdf api: make width/height for split by nvim_open_win work (#28341)
- b1577d371a6d api: make win_set_config with "win" for splits need "split/vertical"
- 0330dd9e69de api: mark nvim__complete_set as experimental #28579
- d22172f36bbe api: more intuitive cursor updates in nvim_buf_set_text
- b051b131f5ce api: nvim_buf_get_offset in a new buffer with zero or one lines
- e0453d7f5743 api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181
- 6091df6b7a06 api: nvim_create_buf assert fails if autocmds set &amp;swapfile
- d5c23d72a5e4 api: nvim_create_buf leaks memory if buffer is loaded early
- b7708eac24c2 api: nvim_get_hl should return default flag
- a741c7fd0465 api: nvim_parse_cmd error message in pcall() #23297
- e55a502ed413 api: open_win fire Buf* events when !enter &amp;&amp; !noautocmd if entered early
- a873f33993ef api: open_win fire BufWinEnter for other buffer when !enter &amp;&amp; !noautocmd
- e7c262f5553c api: patch some cmdwin/textlock holes
- a9968912b741 api: redundant error when using `nvim_cmd` (#24010)
- dbcba26bf1e4 api: revert unintended change of optional bool params
- b25753381c60 api: set script context when using nvim_set_hl (#28123)
- d3ea9a04bc73 api: update "w_scwidth" in nvim_eval_statusline()
- c971f538ab87 api: update grid cursor in nvim_win_set_cursor()
- 130cb4815a5c api: use a conditional stack for nvim_cmd (#26341)
- cf9f002f31c8 api: use correct buffer for "range" in nvim__redraw (#28614)
- 77118d0da8ba api: use text_locked() to check textlock
- bcb70eeac480 api: win_set_config autocmds crash when moving win to other tabpage
- 233649bc7577 api: win_set_config fires unnecessary autocmds
- b52d15853e89 api: win_set_config set tp_curwin of win moved from other tabpage
- 54022a2946ac api: win_set_config update statuslines after removing splits
- a9cd8467cbd5 api: wrong nvim_buf_set_extmark error for invalid hl_mode
- 4d3a38ac074f api, lua: handle setting v: variables properly (#25325)
- 92760a7f42a9 api, lua: make blank lines in a message work properly (#24244)
- 08fc1ebbaa49 api/buffer: fix handling of viewport of non-current buffer
- 24e3ee9d07e1 api/options: validate buf and win
- 139e6f68f937 autocmd: API functions accept garbage after event name #25523
- 02d00cf3eed6 backup: E1509 when writing extended attr to symlink (#28014)
- 746a153bc1a1 base64: only check padding if leftover index is set (#25854)
- 533e01a75b71 base64: properly handle embedded NULLs when decoding (#28349)
- 095bd8d0f834 buffer: do not filter help buffer
- e5d9b15044d5 buffer_updates: correct buffer updates when splitting empty line
- 11865dbe3917 build: better deps for doc
- ffaf74f1477d build: distinguish vim.mpack from global require'mpack'
- f9416470b15b build: include FindPackageHandleStandardArgs
- ade42d531bcc build: teach cmake about vvars
- da7178cbbf4e builtin: fix incorrect optional fields for fn.sign_define
- 6fa0f303d7f0 builtin: parameter mismatch between winsaveview and winrestview
- 3159a2c28f5e change: update fold after on_bytes (#26364)
- 342c7da4bd2c channel: use os_write() instead of fwrite() for stderr (#26689)
- cd6458123fb4 charset: fix wrong display of 0xffff (#24158)
- 603f3b36a4d5 checkhealth: error in node.js check #28348
- b0978fca6b82 checkhealth: fix crash due to incorrect argument type
- 7f94a032e1cf checkhealth: shell_error and cpanm module
- bfdec5b0e719 clang: null pointer dereference in parse_msgpack #25389
- 1027ccac6d0a clangd: check size of array before applying qsort on it
- cdd801746943 clangd: set block pointer to null in case map is empty
- 6851b265ba1d clipboard: don't pass --foreground to wl-copy (#25481)
- c3de6524a53d clipboard: ignore exit caused by signal #23378
- 3128cff6b198 clipboard: increase OSC 52 wait timeout (#25936)
- 46ceefb52be6 clipboard: make getreg() accurate for clipboard registers (#26740)
- d2983dcdb1ca clipboard: make osc52 work with PUC Lua (#26014)
- e51e52417550 cmake: restore previously undocumented workround, now documented
- 3688735c2b63 cmdline: don't redraw 'tabline' in Ex mode (#24123)
- c72d877c3374 cmdline: wrong 'incsearch' highlighting after :redraw (#27947)
- bc67bbe4469b codelens: add buffer and line checks before displaying codelens (#23887)
- 2b1a6e759709 colorscheme: add missing LSP groups
- 0c850add3ece colorscheme: default statusline groups usability #26921
- 8b2365369503 colorscheme: link LSP semantic tokens to treesitter groups
- 62e0e0349c00 colorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727)
- eca72def1f08 colorscheme: typo
- d4bd6b1eaab3 colorscheme: use explicit normal foreground in syntax groups
- 3c724fe1f3ef column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967)
- cdc028e97d98 column: add truncated width during estimation for 'statuscolumn'
- e89071522cb0 column: always set b_signcols.max
- c126a3756a09 column: apply numhl signs when 'signcolumn' is "no" (#26167)
- 2ded2e75f4a6 column: avoid exceeding configured 'signcolumn' width
- b50fdcba4a1d column: clear "b_signcols" before moving saved marks
- 13d50c3b13fb column: clear "b_signcols" when marktree is cleared
- ec7453804421 column: correct width after truncated 'statuscolumn' error (#26737)
- 2bdef6dd2a75 column: don't overflow sign column with extmark signs (#23854)
- bab4bcdefbda column: don't reset 'statuscolumn' width after it has been drawn
- c509f4907bf7 column: fill 'statuscolumn' clickdefs with evaluated width (#26891)
- 25e62697c32e column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268)
- dbf6be296df6 column: full redraw with 'stc, 'rnu' and inserted lines (#27712)
- 7d0a23973b7d column: handle unprintable chars in 'statuscolumn' (#24198)
- 0db6946b39fd column: handle w_redr_statuscol at end filler lines (#27365)
- 97122eaa1cbe column: ignore empty signcols range (#28177)
- 967c7abde3c6 column: keep track of number of lines with number of signs
- f871fee8b699 column: pass kFalse when initializing "b_signcols.count"
- 44d4f0357341 column: rebuild status column when sign column is invalid
- c6864b0d146f column: redraw 'statuscolumn' on wrapped lines with 'relativenumber'
- 35cec0de4acd column: redraw and update signcols for paired extmark
- d88814ef68b3 column: remove sign from line it was previously on with undo
- df399ea0d20e column: reset decor state before starting from top
- 5a4e0b837f90 column: use a single path for sign sorting (#27431)
- a878e02d5de7 column: use maxwidth to allocate/fill 'statuscolumn' click defs #24190
- 783b0aba4116 completion: check that healthcheck name is string (#28458)
- fbeef0d4ef1a completion: don't add backslashes to runtime pattern (#24296)
- cdc8bacc7945 completion: filter results with complete+=f (#26029)
- af8500af6457 completion: improve popup window position (#26739)
- d1b2a5cf5fa5 completion: make sure the buffer name is valid (#25975)
- e9b9a86cd5a5 context: don't crash on invalid arg to nvim_get_context (#25977)
- fdaf6bc5573f context: don't leak memory on multiple invalid objects (#25979)
- 55be4a4e26ea coverity: dead code #25562
- 6d698c86d0bd coverity: unhandled retval for marktree_itr_get_overlap() #26518
- 6f49ed58c3d8 coverity/348240: memory leak in put_view()
- 9d48266bed96 coverity/471380: null dereference in get_local_additions()
- ae48d965d70c coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022)
- 2b0acacb3c2c decor: allow adding providers during redraw
- 5ca330859cf2 decor: check decor kind before accessing union field (#27205)
- 60d320dea3fe decoration_provider: don't leak memory on error (#24410)
- 65738202f8be decorations: better approximation of botline #24794
- 2accf2480530 decorations: crash with revised mark with changed decoration flags
- a0e9ef09d7af decorations: do not apply sign highlight id as range attr id
- fba17d5b882e decorations: fix imbalanced sign count
- 444f37fe510f decorations: incompletely displayed line should also get decorations
- dc48a98f9ac6 decorations: validate botline for on_win
- 328a2373514a defaults: auto-close terminal for &amp;shell with args (#28276)
- 5aa1ba3efe05 defaults: background detection in tmux (#26557)
- 5e98439f6d8c defaults: diagnostic mappings descriptions #28646
- ccb5a76e5a2c defaults: don't use nvim_feedkeys in default mappings (#24520)
- 85cb0b0ddc59 defaults: make terminal autoclose not block other events (#27581)
- aa1d0ac095dc defaults: only repeat macro for each selected line if linewise (#28289)
- eef2aedff631 defaults: remove tmux background detection passthrough (#27571)
- 5b45efbee6eb defaults: set 'fsync' #26034
- 8df374237814 defaults: use augroup for default autocommands (#26933)
- a8e4ee2f2b43 defaults: validate 'channel' before responding to OSC request (#27594)
- 6318edadc32a defaults: visual hash (#) on text with "?"
- abd380e28d48 defaults: visual mode star (*,#) is fragile
- b9a0e762f1d7 defaults: visual star (*) on text with "?"
- 9b4b23493d69 defaults: wait until VimEnter to set background (#26284)
- 72e3d8c3f949 deps: bump luv to 1.48.0-2
- 87db6d894ad2 deps: make sure --force-config takes effect
- 7aad4643f9a6 deps: remove stray conflict marker
- 8a6716682e6e deps: restore functionality of USE_EXISTING_SRC_DIR
- d4dc884012e8 deps: restore functionality of USE_EXISTING_SRC_DIR
- d27214331815 diagnostic: always return copies of diagnostic items (#25010)
- 29d5ff6ac4ea diagnostic: check for sign namespace instead of sign group
- 3d8f0cb695a5 diagnostic: check if delete failed in `qf_fill_buffer()` (#25932)
- 89ffdebd20fd diagnostic: fix typing on field |diagnostic-severity|
- 83635e4e3db9 diagnostic: get border from config (#28531)
- 96f59e1b9902 diagnostic: invalid col number  compare in next_diagnostic (#28397)
- ad76b050eb2c diagnostic: open_float on multi-line diagnostics #28301
- 37011bc45ef3 diagnostic: rename buffer → bufnr in type annotation (#23042)
- 50284d07b6f0 diagnostic: typing
- a4fc3bb0e68c diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273
- add1b10b7901 diagnostic: virtual_text prefix function should have index and total (#25801)
- 35f475d0a51a diagnostics: if buffer not loaded, skip handlers that set extmark (#25628)
- 5a25dcc5a4c7 diff: filler lines for hunks bigger than linematch limit (#24676)
- 2f9ee9b6cfc6 doc: improve doc generation of types using lpeg
- c4417ae70c03 doc: prevent doxygen confusion
- 67f53323446d docs: clean up non-docstring comments for vimdoc gen
- ae7020c667b5 docs: fix TSNode incorrect signatures
- ab65a98adba4 docs: ignore_invalid #24174
- f40df63bdca3 docs: make lines not overflow in vim docs
- 0a90e4b05ad3 docs: match DocSearch style with site theme
- 0d149bb18639 docs: the runtimepath is not the runtime path
- 957d05d16bc8 docs: too much whitespace around &lt;pre&gt; blocks #24151
- d931b829e926 docs: vimdoc syntax errors
- 036da0d07921 docs: vimdoc syntax errors
- 17c59e417f81 docs: vimdoc syntax errors
- 34b57508a78b drawline: check filler_todo in place of removed draw_state (#27889)
- 455bca1ba86a drawline: combine extmark highligh with area hl correctly
- 329979715063 drawline: consider position in linebuf for foldcolumn (#26803)
- 889f81c65fa4 drawline: don't invoke on_line for filler line (#28219)
- 2b9d3869f8f3 drawline: don't use temporary "v" variable when not needed (#26777)
- 06694203e51e drawline: fix missing Visual hl on double-width fold char (#24308)
- d5488633f68f drawline: initialize linebuf_attr to 0 instead of -1 (#27840)
- e9280a68f7ea drawline: initialize variable
- 2819718873a3 drawline: initialize variable
- 36941942d609 drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273)
- 37b73cf14b11 drawline: make cursorlineopt=screenline work with resized grid
- be1d09c42722 drawline: missing NUL termination when drawing TAB (#27307)
- 5b3144781137 drawline: update prev_ptr after getting syntax attrs (#27072)
- 14839c5d18c2 edit: backspace adds extra spaces for inline virtual text (#28005)
- 267e90f31d18 edit: don't go to Terminal mode when stopping Insert mode (#27033)
- b2e8c0df2062 edit: fix K_EVENT interfering with 'digraph' (#24258)
- 143a17833280 editorconfig: add missing root validation (#23462)
- cbbda3bcd775 editorconfig: check that buffer is valid (#23922)
- abb8c2c453d1 editorconfig: do not set 'endofline'
- df2f5e39127e editorconfig: highlight properties with dashes (#24407)
- dc45fb4655f5 editorconfig: only warn once on errors
- cdbc3e3f3e95 editorconfig: syntax error regression
- bf0c69e50410 eval: correct failure return value for readfile/blob (#27722)
- 5b312cd5f676 eval: make has('pythonx') work properly (#27739)
- 0e4086b74189 eval: prevent double-free in garbage collection (#22990)
- 12d123959f56 eval: properly support checking v:lua function in exists() (#27124)
- b8c34efe3399 eval: skip over v:lua properly (#27517)
- ad2fad9a3b07 event-loop: flush UI when no input is available (#25728)
- 672556525893 event-loop: process input before events (#27358)
- 58a1ef8e6a93 events: avoid unnecessary CursorMoved (#24675)
- bf9e92c81c3c events: check for WinResized/WinScrolled in terminal mode (#27226)
- dd24ea819507 events: don't expand non-file as file name
- 774a32e5fe73 events: null dereference in autocmd functions
- a8cfdf43bc62 events: trigger VimResume on next UI request (#24426)
- a114a21eff58 ex_getln: initialize pointer with NULL
- 9e7c4fe57915 exception: remember whether message is multiline (#25351)
- 4a098b97e535 excmd: append original command to error message
- 75d9c413d492 excmd: make :def unknown rather than unimplemented (#23150)
- f1dd75c2af40 exitfree: don't use ex commands to close windows in free_all_mem()
- 79a558277b1b extmark: fix crash when stepping out from internal node
- a78fd18ed92d extmark: fix cursor position with both left and right gravity inline text
- 320e9c1c2181 extmark: only invalidate unpaired marks on deleted rows
- 8e97edb93f01 extmark: restore extmarks when completing original text
- 2d33a766a17b extmarks: `U` changed_bytes after extmark_splice (#26501)
- 23c21e763074 extmarks: account for rightleft when drawing virt text (#25262)
- d54156ed08b8 extmarks: blending space shouldn't overwrite wide char (#26960)
- 54225bdb021e extmarks: crash with sign after many marks
- 65b1fd00a7aa extmarks: do not remove decor from invalid old marks
- 437d35dbf7d9 extmarks: do not remove invalid marks from decor upon deletion
- a05bbc60eaf2 extmarks: don't position overlay virt_text halfway a char (#24027)
- 4dd43e31db8f extmarks: don't show virt lines for end mark (#23792)
- dfa8b582a64a extmarks: draw TAB in virt_text properly with 'rl' (#25381)
- a6e4793bafa0 extmarks: draw virt_text below diff filler lines properly (#25170)
- 958cc22836f1 extmarks: empty inline virt_text interfering with DiffText (#24101)
- 0534ad8ca57b extmarks: empty inline virt_text interfering with Visual highlight
- 31a51acdc353 extmarks: fix heap buffer overflow caused by inline virtual text (#23851)
- 9c41a81dec15 extmarks: fix virt_text_hide off-by-one hiding (#23795)
- a6dd67f5b66c extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757)
- 818d7f6daf30 extmarks: fix win_col virt_text drawn on wrong screen line (#25264)
- c4df2f08b689 extmarks: fix wrong highlight after "combine" virt_text (#24281)
- b65cd7ff1a0a extmarks: fix wrong virt_text position after wrapped TAB (#25168)
- 4c7cec4e2934 extmarks: handle inline virt_text with empty chunk (#24005)
- ee3d4f6b90d0 extmarks: handle overwriting right half of wide char (#26951)
- f4f1ce1d167c extmarks: hide inline virt_text properly with 'smoothscroll' (#24106)
- 34a786bc4959 extmarks: inline virt_text support multiple hl groups (#25303)
- 5a6c7c805b8b extmarks: make empty "conceal" respect &amp;conceallevel = 1 (#24785)
- 510e1f131b56 extmarks: make right_align and win_col work on wrapped line (#23759)
- 215244f74950 extmarks: missing "spell" and "conceal" in details (#27116)
- 35e50d79c630 extmarks: overlay virt_text position after 'showbreak' (#25175)
- a0790558c309 extmarks: priority order of inline and non-inline virt_text (#27532)
- b52bd8a2dea8 extmarks: properly handle virt_text on next screen line (#25166)
- a376d979bda1 extmarks: redraw line on adding/removing conceal (#27463)
- 2d9e063a63f8 extmarks: redraw pre-undo position (#27437)
- 2137edbd4f15 extmarks: redraw properly with scoped inline virt_text (#27569)
- 1cc358aed6fd extmarks: restore old position before revalidating
- 0818d655288e extmarks: skip virt_text if it is out of window (#25658)
- 19d63563e1cc extmarks: splice earlier when opening new line (#28108)
- 362df0f7938a extmarks: wrong display when changing text with virt_lines (#24879)
- d5a85d737aa2 f_wait: flush UI before blocking (#25962)
- 81f67b79e8a3 file_search: path with spaces in finddir() and findfile() (#25493)
- a69c72063994 fileio: fix off-by-one in rename_with_tmp (#27780)
- c6c21db82b31 filetype: add typing and dry (#24573)
- 020d1f626a3f filetype: call on_detect before setting buffer filetype
- fdf5013e218c filetype: correctly detect bash-fc-{id} files as "sh"
- d6f406db4527 filetype: don't use fnamemodify() with :e for extension (#27976)
- 670c7609c855 filetype: make sure buffer is valid before call nvim_buf_call (#24922)
- af38b46a2574 filetype: return on_detect function when matching by file contents
- 2955c921ceaf filetype: use unexpanded file name (#27931)
- e32af31ee89c flake: clang-tools moved to nativeBuildInputs (#26955)
- fd08fd3de302 float: add fixd option
- 884470124db3 float: allow floating window in cmdline area
- 9ecb43b6372f float: apply 'winblend' to title/footer highlight (#25999)
- 898371fc9fae float: don't relative flaot win itself
- fcdfbb430377 float: fix some other crashes with :unhide or :all (#25328)
- 3ea124a8d9f0 float: improve error message when reconfig failed (#25076)
- c5abf487f19e float: make "fixed" work with relative=win (#25243)
- 03e8b5fc91f9 float: make bufpos work properly with resized parent grid
- 437ed3cee2d2 float: trigger winnew event when float window create
- f5953edbac14 float: update position of anchored windows first (#25133)
- 9de157bce4b6 float: win_get_bordertext_col returning negative column number (#25752)
- 5f18dd301375 float: wrong position when bufpos is set
- 0e01e815520e folds: allow overlay virtual text on folded line (#23892)
- ee986ee0449b folds: combined Folded and Visual highlights (#23752)
- ded01a819ab0 folds: don't show search or match highlighting on fold (#24084)
- 811140e276a6 folds: fix missing virt_lines above when fold is hidden (#24274)
- 678548a2b446 folds: show Folded highlight in Visual selection (#23741)
- 58f94861442d folds: update folds in Insert mode with fdm=indent (#24402)
- 38e38d1b401e fs: allow backslash characters in unix paths
- 8a7e3353eb5b fs: make `normalize()` work with '/' path (#24047)
- ae5095cac9b2 fs: use generics for better typing
- e4da418ba838 fs.lua: normalize slash truncation (#23753)
- 06fcf71bd095 fswatch: --latency is locale dependent
- 502a7a0558b0 ftplugin: respect runtimepath ordering
- 03a2c5b77200 ftplugin: source Lua files after Vimscript files per directory (#23801)
- be5cf3383622 gen_help_html: type warnings, spell_ignore_files #27254
- 6c35fb421e88 gen_lsp.lua: improve type name, and fix wrong type inheritance
- 214b12513277 gen_lsp.lua: no notifications in lsp.Methods #24530
- 765729a145d3 gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds
- ccf328172bac gen_vimfn_types: don't include tag before signature's line (#24492)
- 86c9d8b53cd9 gen_vimvim: correctly add aliases to vimAutoEvent (#23429)
- 240c41e1af55 genvimvim: add special abbreviations of :delete (#23172)
- 51ea753747c7 genvimvim: generate prefixed boolean options properly (#27487)
- 9f32deba56ea grid: add start column when getting char on line (#25627)
- 4ed1c2a8afc7 grid: don't draw beyond max column (#26172)
- 9c202b9392f3 grid: handle clearing half a double-width char (#27023)
- 6a486c44e66f gx: move to to _init_default_mappings #24420
- 67b2ed1004ae gx: visual selection, expand env vars
- e39b6d0c5241 health: "attempt to concatenate nil"
- 7ffe450173d2 health: check for _host_prog variables properly (#23014)
- 50cd5ed360ee health: check more "old" files
- f6dcc464f220 health: check unmatching python_glob as empty table (#28215)
- 6818ba271cb4 health: clients may not support watchfiles #28710
- 03a021f378e8 health: combine python and virtualenv healthchecks (#23004)
- c67efe3a9c5b health: correctly expand and resolve PYENV_ROOT (#26953)
- 88eb0ad149d3 health: fix tmux RGB capability detection (#26886)
- cde4892b4955 health: fix typo in function name
- 63a17322dd83 health: improve python executable check error handling (#26954)
- ba88fd886ae8 health: malformed call to warn() #26217
- 8c6f97bef89d health: properly use the value of $PYENV_VERSION (#23109)
- c8ebb04e92c9 health: replace healthFoo with DiagnosticFoo (#23475)
- 843c1bed95d3 health: stop job properly on timeout (#23877)
- 96d0c709b66e healthcheck: expand vimrc variable (#28379)
- 4229bbe514b7 helptags: make multibyte help tags work properly (#23975)
- 7b6d041baed7 heredoc: allow missing end marker for scripts
- a2f17e97ec2d highlight: add `FloatFooter` to 'highlight_defs.h' (#25577)
- 837f26809373 highlight: add `Nvim{Light,Dark}Gray{1,2,3,4}` colors
- 8afb3a49c076 highlight: add create param in nvim_get_hl
- f8ea49cfe1f4 highlight: add force in nvim_set_hl
- 4ce0ada0d4c8 highlight: add missing g: prefix for colors_name (#22952)
- 03ca36d1f8d0 highlight: apply 'winblend' to NormalNC (#23555)
- 6c3e170e5668 highlight: apply 'winblend' to float border (#25981)
- d4872377fef7 highlight: attr set all when normal attr changed
- dcaf2073369c highlight: combine ColorColumn with low-priority CursorLine (#23017)
- 66925f14de81 highlight: consistently spell "Goldenrod"
- 51836517738b highlight: correct hi command output
- ca7dd33fa783 highlight: don't show CursorColumn on current line (#27848)
- 59289fb987bd highlight: make CurSearch work properly with 'winhl' (#24448)
- b11a8c1b5d39 highlight: remove unnecessary assignment to char_attr for 'spell' (#23713)
- 9a2c98087b90 highlight: update `IncSearch` to link to `CurSearch`
- ab9257575387 highlight: winhl receive wrong argument
- b60a2ab4cb7b inccommand: block errors when parsing command line again (#24374)
- bc5b0da84ec4 inccommand: don't crash with "split" and 'n' flag
- 382ea4d40282 inccommand: don't preview in Ex mode (#26587)
- c1c2a1b5dd1d inccommand: don't save information of a buffer twice (#24501)
- ef44e597294e inccommand: don't set an invalid 'undolevels' value (#24575)
- ba9f86a9cee5 inccommand: improve preview buffer number handling (#27087)
- 643bea31b867 inccommand: restrict cmdpreview undo calls (#24289)
- 1dba570e63ed inccommand: save and restore '[ and '] marks (#26442)
- 35ffe58ea4a3 inccommand: update topline after moving cursor (#27341)
- a14c7809181c input: set termkey buffer size to read stream capacity
- b61575ba70f8 intro: clear intro if new buffer is shown in focused float
- 9530a2301680 intro: link showing intro to state at start
- 0570a19c8a84 intro: make intro explicitly stateful
- d1a30221fcb1 intro: redrawing intro exposing pseudo-randomness
- 21360523cd3d intro: still show intro message with floating window
- 6b96122453fd iter: add tag to packed table
- 2ee8ace217b8 iter: make pipeline termination conditions consistent (#24614)
- 94894068794d iter: remove special case totable for map-like tables
- 57ccd8241735 job-control: fix use after free (#25223)
- 1c71c32b2910 job-control: make jobwait() flush UI after hiding cursor (#25927)
- e057b38e7037 json: allow objects with empty keys #25564
- af6537bc66e2 jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461
- 017ff93b020e keycodes: recognize &lt;t_xx&gt; as a key (#24700)
- 6709f7f8f130 keycodes: simplify S- properly when D- is present (#27316)
- 4447cefa4815 l10n: update Japanese translations (#27856)
- 7d17ab5b6f07 l10n: update Ukrainian translations (#26819)
- 908843df61fc languagetree: apply `resolve_lang` to `metadata['injection.language']`
- e353c869cea4 languagetree: don't treat unparsed nodes as occupying full range
- 6b5f44817e93 languagetree: remove double recursion in LanguageTree:parse
- f5530bf566f6 linematch: initialize array
- 766f4978d6cb lint: lint warnings #24226
- 5465adcbab29 lint: use tbl_contains
- 0804034c07ad loader: cache path ambiguity #24491
- 89135cff030b loader: remove cyclic dependency on vim.fs (when --luamod-dev)
- 66c66d8db8ab loader: reset hashes when running the loader
- ec80e4cb4d31 log: increase size of buffer for nvim instance name
- 4d0f4c3de9cb lsp: E403 if doc contains multiple codeblocks #24458
- 20c331915f4e lsp: SignatureHelp docstring is not escaped #16702
- 01691c5447d9 lsp: abort callHierarchy on no result (#28102)
- 9abced6ad95f lsp: account for border height in max floating popup height (#25539)
- 3e016fa8d4f7 lsp: actually send diagnostic-tags back to the server
- 37d8e5045936 lsp: add "silent" option to vim.lsp.start (#28478)
- 2e1f5055acde lsp: add assertion for explicit bufnr in apply_text_edits (#27614)
- 542c910a1d3f lsp: add missing LSP semantic token highlight links
- be5e36115410 lsp: add param assert in client_is_stopped (#23857)
- ac0e8323dc82 lsp: add parentheses to generated union array types (#27560)
- 0fcbda59871e lsp: add snippet regression test (#27618)
- e42fdaad21a8 lsp: add spacing for inlay hints separately #24079
- 48bcc7b9710d lsp: advertise workspace.didChangeConfiguration capability (#26028)
- c07dceba335c lsp: allow Lua pattern chars in code action filter (#24041)
- 3bf887f6e08f lsp: always return boolean in lsp.buf_client_attach (#24077)
- 966eb8e0b3be lsp: announce publishDiagnostics.dataSupport (#24442)
- 39fc340276a4 lsp: avoid assertion when `client_hints` do not exist (#28461)
- 47dbda97d2f4 lsp: buffer messages until connected to server (#28507)
- adbe7f368397 lsp: call `on_list()` even for single location (#25830)
- 15983cf2c64c lsp: cancel session when leaving snippet region (#25762)
- 816b56f878f0 lsp: cancel watchers when closing a client
- 9b8a0755390b lsp: change `silent` in lsp.start.Opts to optional (#28524)
- d3e035257473 lsp: check if inlay hints are enabled for a buffer before disabling (#24074)
- fa9a85ae468b lsp: clean up duplicate and unused meta type annotations
- 8bd6f7c20b40 lsp: clear codelens on LspDetach (#24903)
- 97c0a52416b8 lsp: correct deprecation message #28403
- aa62898ae329 lsp: correct the error message's cmd on spawning (#27632)
- 77a9f3395bd1 lsp: create codelens request parameters for each buffer (#27699)
- 9281edb334a3 lsp: create per client params in lsp.buf.code_action
- 39cc38a87b29 lsp: defer writing error msgs (#27688)
- 1b679ac19287 lsp: define LspInlayHint highlight group #24073
- dc8c086c7e73 lsp: directly rename the existing buffers when renaming (#27690)
- c1a95d9653f3 lsp: disable didChangeWatchedFiles on Linux
- 2fde6295df8c lsp: display initialization errors (#25409)
- 94127cb5df0a lsp: do not add extra indentation
- cc87dda31a5b lsp: do not assume client capability exists in watchfiles check (#24550)
- 0fe0cf5adaab lsp: do not cancel snippet when selecting placeholder (#25835)
- 073035a030f5 lsp: don't register didChangeWatchedFiles when capability not set (#23689)
- 5eee633c9705 lsp: don't start additional client if attach failed (#28744)
- 21fa19f3e8c1 lsp: don't use hl_mode = combine for inlay hints #24276
- 96b94f8d7777 lsp: duplicate on_detach, on_reload callbacks #24067
- b95b6ed9753d lsp: empty commands should not be considered executable (#28216)
- c3c673cdeca2 lsp: enable() does not activate inlay hints on open buffers #28629
- b2c26a875b9d lsp: ensure buffer is not attached more than once
- fa0a25dcb3a4 lsp: error in reset_timer on second detach #24117
- 72e64a1afef0 lsp: extra "." when completing with tsserver #24646
- 031088fc0aff lsp: filetype matching to documentSelector in dynamic capabilities (#25425)
- d191bdf9d5e5 lsp: fix attempt to call non existent function (#24212)
- dd3fa6457355 lsp: fix dynamic registration of code actions (#23826)
- ce4ea638c703 lsp: fix incorrect typing and doc for `vim.lsp.rpc`
- f487e5af019c lsp: fix infinite loop on vim.lsp.tagfunc
- 74bd4aba57d2 lsp: fix multi client handling workspace_folder methods (#18839)
- 5e5f5174e3fa lsp: fix off-by-one error for omnifunc word boundary
- ba6761eafe61 lsp: fix omnicomplete in middle of the line (#25787)
- 075a72d5ff9d lsp: fix relative patterns for `workspace/didChangeWatchedFiles` (#23548)
- 840e1864c2de lsp: handle NUL bytes in popup text (#25612)
- 345bd91db28e lsp: handle absence of a trailing newline #25194
- 0e9a33572dc7 lsp: handle adjacent snippet tabstops
- 853f647da618 lsp: handle reverse lookup in capabilities
- 91f67fabe69f lsp: handle stale bufnr on LspRequest autocmd trigger (#24013)
- 849d82b80b85 lsp: handle stale bufnr on LspRequest autocmd trigger (#27981)
- 2eecb1b85dbb lsp: highlight active parameter in signature help #25663
- e55e80d51ca5 lsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469
- 7968322e7a20 lsp: inlay_hint nil reference error #24202
- ba8f19ebb67c lsp: lint warnings, default offset_encoding #24046
- 330444994616 lsp: log unknown diagnostic tags instead of showing a warning (#25705)
- 251ca45ac948 lsp: markdown code fence should allow space before info string #24364
- add7e106d59b lsp: noisy warning about offset_encodings #24441
- c235959fd909 lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535)
- 1dacf2ecee36 lsp: prevent code-lens refresh from becoming a permanent  no-op (#28228)
- 597ecf751603 lsp: re-add client.commands and mark private
- 94a904b453e5 lsp: reapplying already-applied hints #24114
- 4ecc71f6fc73 lsp: reduce diagnostics and add more types (#23948)
- bc7f86209d39 lsp: redundant vim.snippet.jumpable #28560
- ee156ca60ede lsp: refactor escaping snippet text (#25611)
- 2ecba65b4ba7 lsp: remove unknown LSP protocol property (#24345)
- 7311958e1238 lsp: remove unnecessary file load/write when renaming (#27621)
- e14e75099883 lsp: rename LspProgress data.result =&gt; data.params #28632
- f0e61e6d92b5 lsp: rename fails on missing parent directory #27291
- b413f5d048ab lsp: rename undofile when renaming (#27684)
- d09957e0a06f lsp: rename: load and list new buffer if attached to window (#27408)
- 7668f89d5be6 lsp: replace @private with @nodoc for public client functions (#24415)
- 52823616bc4d lsp: replace bug-prone ternary operation #28627
- 5282d3299c9b lsp: restore marks after apply_text_edits() #14630
- cf5f1492d702 lsp: revert change to buf.clear_references() #24238
- 917172dd9680 lsp: semantic token defer loading
- 3be2536ca039 lsp: send back diagnostic tags to the server
- a37d568082ad lsp: send empty "added" list when removing workspace folder #24440
- 3c6d971e5488 lsp: set extra info only when it has a value (#23868)
- 5785c32f1115 lsp: set fallback client name properly
- 370232dbefb9 lsp: track snippet deletion
- ca26ec34386d lsp: use only utf-16 in default client positionEncodings (#23903)
- b302da9ad220 lsp: use percentage format on lsp.status (#23971)
- 2c8f36a3b0b6 lsp: use plain loop for non-list-like table of protocol values
- 8addd27504e6 lsp: when renaming directory, check path prefix of buffer names (#27603)
- 597355deae2e lsp: wrong iterator in registerCapability handler (#24971)
- b2d471ab337e lua: allow nil values in serialized Lua arrays (#26329)
- 68f12e7fcb1f lua: annotate that TSNode functions can return nil (#24621)
- 4ffc20c95152 lua: avoid internal error when :luado deletes lines (#27262)
- 319803822420 lua: correct return value for on_key with no arguments (#25911)
- 84bbe4b0ca93 lua: disallow vim.wait() in fast contexts
- 22eb2ba18336 lua: do not schedule events if Nvim is exiting
- 7d279a09e0fb lua: handle array with holes in luaeval() (#26630)
- c43c745a14dc lua: improve annotations for stricter luals diagnostics (#24609)
- 2f779b94e7fe lua: inspect_pos respect bufnr when get syntax info (#23098)
- e2e63bd04549 lua: make highlight.on_yank use win-local highlight (#27349)
- b40170f7a3ca lua: memory leak when using invalid syntax with exists() (#26530)
- 4ab9c5fa4684 lua: not using global value in vim.opt_global (#25196)
- 20ec4c776a07 lua: only disable vim.schedule() when closing main loop (#26090)
- f150b62423d5 lua: only free luarefs when returning from API (#28373)
- 019077171324 lua: remove uri fragment from file paths (#27647)
- 5aa14e1231b7 lua: return after assert returns assert message (#27064)
- 5331d5772ffb lua: show error message when failing to set variable (#25321)
- 1294e221a205 lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
- 37c58226a8fd lua: vim.fs typing (#24608)
- 5db076c7ccfe lua: vim.region on linewise selection #25467
- 622b1ae38a36 lua: vim.split may trim inner empty items
- a7df0415ab6a lua2dox: filter out the entire `---@alias` block
- 32e69bd3971c luarc.json: ignore test directory to save memory
- 6f936c9d85a0 man: make :Man with a range work (#25922)
- 59aadf33efc2 man: pass modifiers also to :tag (#27878)
- a9b4dc9614a0 man: set the nested flag for the BufReadCmd autocommand (#26285)
- c8d1d8b2546c man.lua: don't continue on command error (#23009)
- a4c4b39d55db man.lua: hardwrapped manpage is not resized #25646
- 209ed16f57a7 man.lua: return support of all sections
- 3a7c30dc93b9 man.vim: q quits after jump to different tag in MANPAGER modified (#28495)
- 3c667d3e0fe4 mappings: fix mapset() not replacing map with backslash (#26719)
- 0451391ec514 mark: properly init mark views (#22996)
- d432bba4e46c marks: handle switching buffer properly (#25763)
- 62306a29add2 marktree: correct qsort usage
- 585549625d8a marktree: off-by-one error in `marktree_move`
- 34be915f6b93 marktree: preserve ordering in `marktree_move`
- b97d5038f16b marktree: some marks counted twice when checking for overlap
- ad5a155b1f4b mbyte: fix bugs in utf_cp_*_off() functions
- b02823399171 memline: more curbuf stuff
- 91ef26dece6d messages: :map output with ext_messages (#26126)
- eabf9de1dc8c messages: allow more prompt in headless mode with UI (#27905)
- 60fb8a6a8bd9 messages: avoid crash with :intro and ch=0 (#28343)
- 61a0aa6c51fb messages: avoid passing negative length to strnlen() (#28753)
- ca258db15668 messages: clear new lines when increasing 'cmdheight' (#27421)
- c9f47fca8b89 messages: ensure msg_grid is at top at more prompt (#23584)
- 2f17ef1fc4b9 messages: use "Vimscript" instead of "VimL" #24111
- 55dbf5c3798c messages: validate msg_grid before using msg_grid_pos (#26189)
- 4db77017fb7a meta: add nil return types to lpeg functions
- 5198a2555de4 meta: cleanup lpeg operators
- dae6770b761a meta: include vim.json
- d31f7648ecaf mkspell: prevent Unicode character overflow (#23760)
- a8a93e517f9e mouse: avoid dragging after click label popupmenu callback (#26187)
- 6a2a37b1e102 mouse: avoid dragging when clicking next to popupmenu (#26201)
- 091eb4c8c720 mouse: click after eol with conceal and virtual text (#27897)
- 2b475cb5cc21 mouse: click on 'statuscolumn' with 'rightleft' (#25090)
- e25cf47ad3e1 mouse: click on empty line with 'foldcolumn'
- 84a4319545ad mouse: cmdline click registered as statuscolumn (#23163)
- bf52fb7193ca mouse: copy the line before syntax matching (#24320)
- 5fb4c397a1da mouse: drag vsep of window with 'statuscolumn' (#24462)
- dc394b9641f9 mouse: fix popup menu position check with winbar (#23456)
- 7c1921e9d69e mouse: fix popup_setpos position check with ext_multigrid (#23436)
- a3fba5cafcf1 mouse: handle folded lines with virt_lines attached to line above (#23912)
- 64aa0f7d0b70 move: check for filler lines properly (#28307)
- 366d0c7887f7 move: check the correct buffer (#25698)
- 780509aedf5c move: fix using the wrong window (#28312)
- 60d1e3e4718a msgpack: store grid line event as a value
- c52dfb6e8408 normal: don't check conceal when pressing 'r' (#27892)
- 088cdf69e3fa normal: make "g$" work properly with resized grid
- a1ded1b113d2 oldtest: always use a 64-bit int for swapfile block number
- 92c59c39c3d9 ops.c: remove duplicate u_save_cursor()
- 9d01385c6ca6 options: `'modified'` showing incorrect value for scratch buffers
- c3e176f6e24e options: correct condition for calling did_set_option() (#25026)
- 9af03bcd4712 options: do not change inccommand during preview (#25462)
- 796df966f3cb options: don't update curswant for 'winhl' or 'winbl' (#27515)
- d956bc63795f options: setting 'scroll' with resized grid (#26628)
- c8a27bae3fae options: use a union for def_val (#27169)
- 804c828e681e optionstr.c: incorrect use of curbuf/curwin
- a9df0c5ce6ca osc52: do not use 'vim.iter' (#27218)
- 5d75d9aef2b6 osc52: enable OSC 52 by default in tmux sessions (#26072)
- 86c2213b5e45 osc52: use `p` for primary selection instead of `s` (#26076)
- 104565909798 osc52: use nvim_chan_send() to stderr for copying (#26690)
- e3bd04f2aff7 pager: handle consecutive newlines properly (#27913)
- 1e7e9ee91f73 path: accept special characters on Windows (#25424)
- f064e72b9b9c path: check return value of append_path() (#28309)
- f5eabaa9407a path: restore space separation in 'path' (#25571)
- 908f247c224d plines: count 'showbreak' for virtual text at eol
- a0cbf1d8d5a6 plines: cursor position with 'showbreak' and resized grid (#28067)
- 317038e7cb11 plines: don't return very large height on very long line (#24260)
- 7955c90621bb plines: folded lines with virt_lines attached to line above
- 35c3275b4896 plines: handle inline virtual text after last char (#24241)
- cbadb39d16c1 plines.c: initialize cts_max_head_vcol (#24855)
- fc14928719df printf: make positional %zd and %zu work (#24722)
- d0b3c8721921 process: avoid potential data race on exit (#27769)
- 3e569d440b8e process: close handles and timer in pty_process_close() (#27760)
- 268066e01400 process: start pty process eof timer on main thread (#27625)
- 49983387ffd5 prompt: emit change event for prompt newline (#28260)
- 7bd6bd1ef721 provider: cannot detect python3.12 #25316
- 61ecb3e16c22 provider/pythonx: import the correct module (#25342)
- 540941ef8320 pum: don't position too far with resized parent grid (#23442)
- f186224dfcf8 pum: fix missing rightmost column with 'rightleft' (#23445)
- 8bc973c6f59c pum: fix missing scrollbar with 'rightleft' (#23448)
- a7550a20e0c3 pum: handle right-click menu repositioning with multigrid (#26975)
- fbaa27877361 pum: make :popup position correctly with float border
- a3dfe1bc89a5 pum: position properly with ext_multigrid (#23336)
- c1331a65dd12 pum: show right-click menu above cmdline area (#23298)
- dd0e77d48a84 query_error: multiline bug
- 5ac2e47acc99 redo: make redo of Lua mappings in op-pending mode work (#23566)
- 60f69014a801 redraw: multibyte characters are wrapped at the end of a line (#23696)
- cb34d0ddd086 redraw: overwrite double-width char with virt_text properly (#23708)
- d184933cdc70 redraw: update Visual selection properly with splits (#27343)
- 54044e6dce2f release.sh: ze version is too big
- cce9460524aa remote: make --remote-expr print to stdout (#23980)
- bde59e81473f remote: restore previous --remote-expr output formatting (#23988)
- 468292dcb743 rpc: "grid_line" event parsing crashes (#25581)
- 4d4092ac9e98 rpc: assertion failure due to invalid msgpack input
- 8921d56053bb rpc: do not crash when no input is consumed
- c422722b2e94 rpc: fix hang with channel closed while waiting for response
- adb225834540 rplugin: dont create data dir if it's a broken symlink #25726
- 65dd3c1180ce ruler: show ruler of curwin with no statusline in cmdline
- f5231d61a541 runtime: add commentstring for C# ftplugin (#23039)
- 3387dc4a463c runtime: add commentstring for D ftplugin (#25362)
- 615b48aca6bd runtime: add more Nvim-only highlight groups to Vim syntax
- aee6f08ce12a runtime: do not allow breakcheck inside runtime path calculation
- df297e3c2bd7 runtime: don't set gx mapping if already mapped (#24262)
- 9176b5e10a6b runtime: respect 'fileignorecase' when sourcing (#24344)
- dbb840da01c7 runtime: respect 'rtp' order for all runtime files (#24335)
- 70a00492962d runtime: source c ftplugins in correct order (#27377)
- d431a4d410f0 runtime: source old color scheme in bundled color schemes (#26641)
- 3ab6f60dc80d runtime: update 'vim' color scheme to use new tree-sitter groups
- 67fba9affa14 runtime/tutor: don't try to close fold when there is none (#24953)
- ee56daebb646 shada: update deleted marks (#24936)
- 517dfdf0fcf5 shada: update marks when using delmarks! (#24978)
- 4d52b0cf6705 showcmd: clear the rest properly (#28420)
- fcd9905291c0 sign: avoid deleting from sign map while looping over it (#27158)
- a84b454ebe66 sign: do not error when defining sign without attributes (#26106)
- a5ade3c63d88 snippet: correct indent with newline
- 4625394a767f snippet: do not add extra indent on newlines (#28538)
- a1bdf2852d6d snippet: remove misleading comment about TM_FILENAME_BASE (#26465)
- 8c044f0862f4 spell: always accept ':' as filename char in 'spellfile' (#27172)
- a803bff89c89 spell: extmark with spell=false should disable spell (#23400)
- eceb2dffce39 spell: splice extmarks on :spellrepall (#23929)
- aa65bd478a98 startup: "nvim -l foo.lua" may not set arg0 #24161
- 628f6cce80de startup: don't truncate when printing with -l (#24216)
- c0fa721adeab startup: make recovery mode work without --headless (#24477)
- 8e739af064de startup: multiprocess startuptime #26790
- 8f10362cdc58 startup: only send one default_colors_set event during startup
- 559c4cfd52e3 startup: run embedded Nvim with real path (#24282)
- b21d96011934 startup: set full_screen when in ex_mode
- 9637b7dae417 startup: stop TUI properly when quitting at swap dialog (#25337)
- d7359a87425d startup: trigger UIEnter for the correct channel (#25860)
- 01e273c340b5 statuscolumn: don't update clicks if current width is 0 (#24459)
- afd0c648a89f statuscolumn: force full redraw when signcolumn is invalid (#24859)
- dc6c11394b73 statuscolumn: update number hl for each screen line (#25277)
- a4b240080435 statusline: also allow right click when 'mousemodel' is "popup*" (#23258)
- 4ecf6fdfd857 statusline: bail out properly on negative row (#23535)
- 70da793c5eda statusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823)
- d7bb19e0138c statusline: fill for double-width char after moving items (#24207)
- 54f560203897 statusline: fix uninitialized variable and possible overflow
- 9f15a18fa57f statusline: missing offset when showing 'keymap' (#27270)
- 7b973c71ea84 statusline: redraw when VIsual_mode changes (#23933)
- dbc0fa9bd683 stdpath: remove duplicate directories (#26653)
- 1907abb4c278 stream: do not close handle if it is already closing (#26537)
- 9dd48f7832f4 substitute: properly check if preview is needed (#23809)
- 9753cda591e2 syntax: use correct diagnostic group for checkhealth (#23538)
- 400b7842a983 termcap: escape escapes in passthrough sequence (#26301)
- e52784221118 termcap: only call callback for requested capabilities (#26546)
- ffeb31c2f962 termcap: set 'nested' on TermResponse autocommand
- b7831c7f996b termcap: use tmux passthrough sequence when running in tmux (#26281)
- e6d3f87dfd71 termdebug: handle partial lines passed to callback (#22950)
- c413b42c456b termdebug: prompt mode breaks with &amp;splitbelow set
- 8aad4b84250a termdebug: send SIGINT when interrupting prompt mode
- af78060b1882 termdebug: trim suffixed "\r" in CommOutput
- 684e93054b82 terminal: assign channel to terminal earlier (#25771)
- 82b1a389ba98 terminal: avoid Insert mode in Terminal buffer (#25820)
- 99288ecc77e4 terminal: block input when there is pending TermRequest (#27589)
- f2ce31d3dc1c terminal: call validate_cursor() before screen update (#24425)
- e09adfdcffe8 terminal: check if mouse on statusline/tabline/winbar/vsep (#26892)
- e11573246579 terminal: check terminal size at end of screen update (#25480)
- 120c4ec855bc terminal: disable reflow again
- c881092ffe9d terminal: don't lose focus on &lt;MouseMove&gt; (#25845)
- 16a416cb3c17 terminal: don't pass incomplete UTF-8 sequence to libvterm (#27922)
- d0d132fbd055 terminal: don't send unknown special keys to terminal (#24378)
- 74776dfb2ac4 terminal: fix duplicate recording with mouse click (#28103)
- 21d466c1b985 terminal: forward horizontal mouse scrolling (#24552)
- d401b33314a4 terminal: handle horizontal scrolling in another window (#24828)
- 5e78fd778450 terminal: ignore $VIM and $VIMRUNTIME in pty jobs
- 0a7fda6fa006 terminal: include modifiers when forwarding mouse (#24549)
- d4c2fc6ff6c5 terminal: keep focus when scrolling number column of another window (#25848)
- 5ca6c9e04629 terminal: make backslashes in 'shell' work on Windows
- aba954b662cc terminal: never propagate $COLORTERM from outer env (#26440)
- b74262a336d3 terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418)
- 0fd8eb8aae10 terminal: set $COLORTERM unconditionally in :terminal (#24763)
- fa17a5ab49df terminal: use terminal buffer for TermRequest autocommand (#26974)
- 5999214c242d termkey: accept BEL (0x07) as OSC terminator
- ce2f770aaa23 termkey: do not sign extend mode value
- 50f5864dd245 termkey: include IO header on Windows
- 52e6059415ba test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905)
- c5528e7fd852 test: clean up inline virtual text tests a little
- 380b634ac951 test: fix "indeterminism" warnings in UI tests
- f4c97da26242 test: fix strings_spec.lua for AArch64
- 477458f7bf8d test: more tests for marktree
- d8e330bcec91 test: remove test/compat.lua
- a7bbda121d03 test: typing
- 8861ad83fd7f test/tui_spec: pass the expected NULL-sentinel to execl()
- f859d16aea0d tests: set SHELL=sh #24941
- 3d44340cea08 tests: use more global highlight definitions
- e9bfbe99cd71 textformat: remove unnecessary changed_bytes() (#26027)
- 255e547e18e1 timer: allow timer_info() to get info about current timer
- a8131aee9ecc tohtml: replace hex escape with digit escape (#27728)
- 0246f1a897f4 tohtml: set filetype of generated HTML to `html`
- ccc0980f86c6 treesitter: Use the correct replacement args for #gsub! directive (#23015)
- 71d9b7d15c9b treesitter: _trees may not be list-like
- a4743487b71b treesitter: `language.add` - only register parser if it exists
- 4a8bf24ac690 treesitter: adjust indentation in inspector highlights (#26302)
- ef64e225f6f6 treesitter: allow foldexpr without highlights (#23672)
- 6a264e08974b treesitter: allow optional directive captures (#28664)
- cf612c64b0fc treesitter: allow passing lang to vim.treesitter.get_node() now correctly takes opts.lang (#26360)
- 32849d56671c treesitter: avoid # of nil in _query_linter
- 3fd7449d5abe treesitter: check that buf is loaded in autocommands (#25679)
- e7f50f43c822 treesitter: clip end row early
- 6b19170d44ca treesitter: correctly calculate bytes for text sources (#23655)
- bd5008de07d2 treesitter: correctly handle query quantifiers (#24738)
- fba18a3b6231 treesitter: do not calc folds on unloaded buffers
- c30ebb17f6b9 treesitter: document more standard highlight groups
- 040369e1e4b8 treesitter: don't forcefully open folds
- 72ed99319dd6 treesitter: don't invalidate parser when discovering injections
- 4607807f9fcb treesitter: don't update fold if tree is unchanged
- 26b5405d181e treesitter: enforce lowercase language names (#28546)
- 3a8265266e0c treesitter: escape "\" in :InspectTree #28613
- 369f58797dbd treesitter: escape quotes in :InspectTree view #24582
- 6e45567b498c treesitter: fix TSNode:tree() double free (#24796)
- 50a03c0e9975 treesitter: fix another TSNode:tree() double free
- 7c6f9690f74e treesitter: fix indexing in foldexpr
- 01b91deec7b6 treesitter: fix parens stacking in inspector display (#26304)
- f40a109716d7 treesitter: fix trim predicate
- 1f551e068f72 treesitter: fixup for InspectTree
- 26cc946226d9 treesitter: foldexpr tweaks
- e85e7fc7bccc treesitter: handle empty region when logging (#24173)
- 12faaf40f487 treesitter: highlight injections properly
- 6f75facb9d75 treesitter: improve vim.treesitter.foldexpr
- 6c8387067d4e treesitter: inspect-tree remember opts on buf change
- 8179d68dc1a9 treesitter: logger memory leak
- b6e339eb90e1 treesitter: make InspectTree correctly handle nested injections (#26085)
- 3af59a415c98 treesitter: make Visual hl work consistently with foldtext (#25484)
- c7e7f1d4b4b6 treesitter: make foldexpr work without highlighting (#24167)
- 0211f889b953 treesitter: make sure injections don't return empty ranges (#24595)
- 0df681a91d6b treesitter: make tests for memoize more robust
- 7fa292c52d7b treesitter: outdated highlight due to tree with outdated region
- 617d1b28d6d3 treesitter: prefix treesitter types with vim
- 90a12d4a1643 treesitter: prepare highlight states for [s, ]s
- 7e5ce42977d7 treesitter: properly combine injection.combined regions
- 19a793545f15 treesitter: redraw added/removed injections properly (#23287)
- 7a76fb854754 treesitter: remove more double recursion
- e124672ce9a8 treesitter: reset cursor max_start_depth
- 7d9715008470 treesitter: return correct match table in iter_captures()
- 3b29b39e6deb treesitter: revert to using iter_captures in highlighter
- 315c711700a8 treesitter: set cursor position when opening inspector
- 48085e40bb0e treesitter: stop() should treat 0 as current buffer #24450
- 32dc484ec9ec treesitter: support subfiletypes in get_lang (#23605)
- b6fdde522425 treesitter: text alignment in checkhealth vim.treesitter
- 0f85aeb478a6 treesitter: treecursor regression
- 26143d7a5c90 treesitter: update @markup default links
- 9ff59517cbf3 treesitter: update c queries
- c44d819ae1f2 treesitter: update folds in all relevant windows (#24230)
- ffb340bf63af treesitter: update folds only once on InsertLeave
- edf9a897f089 treesitter: update highlights for query (#23699)
- b697c0cd4fb2 treesitter: update lua parser and queries (#24148)
- ad95b3698569 treesitter: update markdown parser and queries (#24429)
- 39a0e6bf3c04 treesitter: update parsers and queries
- 3d4eb9d544cb treesitter: update queries
- c97de026e357 treesitter: update vimdoc and vimscript queries
- dc7ccd6bca81 treesitter: use 0 as initial value for computing maximum (#27837)
- 7bc5ee7f9327 treesitter: use proper query syntax for inspector (#26274)
- 00e6651880c3 treesitter: use tree range instead of tree root node range
- 8c9dab3e0d78 treesitter: use vim.highlight.priorities instead of hardcoded 100 (#24052)
- 674f2513d4d4 treesitter: validate language alias for injections
- 2bf3e82676d5 treesitter: validate window before updating preview highlights
- ab2811746eb7 treesitter playground: fix the wrong range of a node displayed i… (#23209)
- f85aa2e67f3e treesitter.c: improve comments on fenv usage
- c5b9fb2f2565 treesitter.foldexpr: check for all insert submodes
- b3bda2f0438d tui: `space_buf` overflow when clearing screen (#27352)
- cb2b5e2780a6 tui: disable DECRQM and DECRQSS queries for Terminal.app (#28453)
- 405bad5e085f tui: do not toggle cursor visibility when flushing the buffer (#26055)
- b76cc974b9a5 tui: don't forget to update cursor visibility (#26523)
- 911f3d962358 tui: don't overwrite an assertion faliure message on exit
- 168e69ae0156 tui: don't set cursor color when there is none (#28236)
- 5a08b5be3c34 tui: don't set tty background if &amp;bg was set before VimEnter (#23701)
- 00b7428b3bf5 tui: don't use DECRQSS in screen or tmux (#28086)
- 846714ca3e70 tui: don't use tui-&gt;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
</content>
</entry>
<entry>
<title>docs: nvim.appdata.xml, set faq to "flow" layout #28769</title>
<updated>2024-05-16T08:53:33Z</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2024-05-16T08:53:33Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=668b5fc155af0289c21eabb304c711634472dea8'/>
<id>urn:sha1:668b5fc155af0289c21eabb304c711634472dea8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: add wiki FAQ to the runtime documentation (#26539)</title>
<updated>2023-12-13T16:31:39Z</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-12-13T16:31:39Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=ef58ee48f4d553d364c4284870b0860f8cc8427b'/>
<id>urn:sha1:ef58ee48f4d553d364c4284870b0860f8cc8427b</id>
<content type='text'>
Problem: Wiki contents are not discoverable and hard to maintain.
Solution: Move FAQ to runtime docs.

Co-authored-by: Christian Clason &lt;c.clason@uni-graz.at&gt;</content>
</entry>
<entry>
<title>NVIM v0.9.0</title>
<updated>2023-04-07T11:26:29Z</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-04-07T11:26:29Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=040f1459849ab05b04f6bb1e77b3def16b4c2f2b'/>
<id>urn:sha1:040f1459849ab05b04f6bb1e77b3def16b4c2f2b</id>
<content type='text'>
For a summary of notable changes, see runtime/doc/news.txt or run `:help news` within nvim.

BREAKING CHANGES
- Remove hardcopy
- Make iconv a non-optional dep
- Remove has("debug") (#22060)
- Make libintl a required dependency
- Rename vim.pretty_print =&gt; vim.print
- Rename sanitizer options from CLANG_* to ENABLE_*
- Remove the .deb release (#22773)
- **column**: Ensure 'statuscolumn' works with virtual and wrapped lines
- **cscope**: Remove
- **defaults**: Change default 'commentstring' value to empty (#22862)
- **edit**: Remove old c implementation of hebrew keymap
- **editorconfig**: Change editorconfig_enable to editorconfig
- **exepath**: Prefers extensionless for powershell
- **health**: Remove deprecated health.lua
- **lsp**: Add rule-based sem token highlighting (#22022)
- **lua**: Execute Lua with "nvim -l"
- **messages**: Graduate the 'msgsep' feature
- **options**: Deprecate paste, remove pastetoggle (#22647)
- **rpc**: Preseve files when stdio channel is closed (#22137)
- **runtime**: Remove filetype.vim (#20428)
- **treesitter**: Remove g:ts_highlight_lua (#22257)
- **treesitter**: Remove silent option from language.add()
- **treesitter**: Consolidate query util functions
- **treesitter**: Remove deprecated show_tree func
- **treesitter**: Deprecate top level indexes to modules (#22761)
- **treesitter**: Rename help parser to vimdoc

FEATURES
- Added support for @generic to lua2dox.lua
- Added support for optional params to lua2dox
- Added support for specifying types for lua2dox
- Mention ":help news" in intro #20674
- ":write ++p" creates parent dirs #20835
- Add vim.secure.read()
- `vim.inspect_pos`, `vim.show_pos`, `:Inspect`
- $NVIM_APPNAME #22128
- Try to recover from missing tempdir #22573
- Add `vim.filetype.get_option()`
- Add `vim.treesitter.language.get_filetypes()` (#22643)
- Allow function passed to defaulttable to take an argument (#22839)
- **api**: Nvim_select_popupmenu_item support cmdline pum (#20652)
- **api**: Add command name to Lua command callback opts
- **api**: Show more exception info
- **api**: More fields in nvim_list_uis
- **api**: Add filetype option nvim_get_option_value
- **api**: Add nvim_get_hl (#22693)
- **api**: Nvim_exec2(), deprecate nvim_exec() #19032
- **api**: Evaluate 'statuscolumn' with nvim_eval_statusline()
- **api**: Set statuscolumn line number in nvim_eval_statusline()
- **aucmd_win**: Allow crazy things with hidden buffers (#21250)
- **checkhealth**: Improve treesitter report
- **checkhealth**: Check runtime ($VIMRUNTIME)
- **checkhealth**: Use "help" syntax, avoid tabpage #20879
- **clipboard**: Copy to system clipboard in tmux when supported (#20936)
- **clipboard**: Added wayclip support (#21091)
- **diagnostic**: Add `suffix` option to `open_float()` (#21130)
- **diagnostic**: Add `suffix` option to `virt_text` config (#21140)
- **diagnostic**: Don't open quickfix/loclist if no diagnostics #21397
- **diagnostic**: Vim.diagnostic.is_disabled() #21527
- **diagnostic**: Add support for tags
- **docs**: Nested lists in HTML, update :help parser
- **docs**: Format parameters as a list #20485
- **docs**: Update parser, HTML gen #20720
- **docs-html**: Try to use tags for ToC headings
- **editorconfig**: Add builtin EditorConfig support
- **editorconfig**: Add editorconfig syntax file
- **editorconfig**: Allow editorconfig to be toggled dynamically
- **exrc**: Use vim.secure.read() for 'exrc' option
- **exrc**: Support .nvim.lua (#21436)
- **extmarks**: Allow preventing spellchecking with spell = false
- **extmarks**: Extend nvim_buf_get_extmarks()
- **filetype**: Fall back to file extension when matching from hashbang (#22140)
- **float**: Open float relative to mouse #21531
- **fs**: Add opts argument to vim.fs.dir()
- **gen_help_html.lua**: Remove old AWK scripts
- **health**: Detect tmux RGB support via `client_termfeatures`
- **help**: Highlighted codeblocks
- **highlight**: Add DiagnosticOk (and associated) highlight groups (#21286)
- **highlight**: Define the concept of altfont as a (c)term rendering attribute
- **l10n**: Update Turkish translations (#20444)
- **l10n**: Update zh_CN translations (#21085)
- **lsp**: Add bufnr option to lsp.start (#20473)
- **lsp**: Support window/showDocument (#19977)
- **lsp**: Run handler in coroutine to support async response (#21026)
- **lsp**: Support set title in lsp relate floatwindow (#21110)
- **lsp**: Support willSave &amp; willSaveWaitUntil capability (#21315)
- **lsp**: Initial support for semantic token highlighting
- **lsp**: Highlight semantic token modifiers (#21390)
- **lsp**: Add function to get semantic tokens at cursor
- **lsp**: Add function to clear codelens (#21504)
- **lsp**: Show active clients in :checkhealth vim.lsp (#21670)
- **lsp**: Add triggerKind option for vim.lsp.buf.code_action (#21905)
- **lsp**: Implement workspace/didChangeWatchedFiles (#21293)
- **lsp**: Implement workspace/didChangeWatchedFiles (#22405)
- **lsp**: Overwrite omnifunc/tagfunc set by ftplugin #22267
- **lsp**: Render markdown in docs hover #22766
- **lsp**: Create default link from @lsp.type.comment to Comment (#22888)
- **lua**: Send "--" literally to Lua "-l" script
- **lua**: Exit 1 on Lua "-l" script error
- **lua**: Execute stdin ("-") as Lua
- **lua**: Store "nvim -l" scriptname in _G.arg[0]
- **lua**: Low-level interpreter mode (nvim -ll)
- **lua**: Make sure require'bit' always works, even with PUC lua 5.1
- **lua**: Add semver api
- **lua**: Omnifunc for builting lua interpreter
- **lua**: Use vim.empty_dict() for empty return value in new api functions  (#22737)
- **lua**: Allow `:=expr` as a shorter version of `:lua =expr`
- **lua**: Add `vim.loader`
- **lua-api**: Avoid unnecessary allocations (#19877)
- **man**: Add health check
- **man.lua**: Support spaces in manpage names
- **message**: Avoid spam on failed os_msg
- **packaging**: Add start menu and desktop shortcuts on Windows
- **provider**: Add support for Yarn node modules on Windows (#21246)
- **secure**: Add `:trust` command  and vim.secure.trust() (#21107)
- **spell**: Support nospell in treesitter queries
- **spell**: Also source `spell/LANG.lua` when setting `spelllang` (#22111)
- **test**: Add Lua forms for API methods (#20152)
- **treesitter**: Add vim.treesitter.show_tree() (#21322)
- **treesitter**: Add 'lang' option to show_tree() (#21341)
- **treesitter**: Show filetype associated with parser (#17633)
- **treesitter**: Allow capture text to be transformed
- **treesitter**: Add metadata option for get_node_text
- **treesitter**: Respect metadata[id].range for offset!
- **treesitter**: Playground improvements
- **treesitter**: Add filetype -&gt; lang API
- **treesitter**: Upstream foldexpr from nvim-treesitter
- **treesitter**: Expand the API
- **treesitter**: Add :InspectTree command (#22477)
- **treesitter**: Bundle query parser and queries (#22483)
- **treesitter**: Use upstream format for injection queries
- **tui**: Run TUI as external process
- **tui**: Graduate the +tui feature
- **tui**: Support altfont mode in tui.c
- **ui**: Add support to display a title in the border of a float (#20184)
- **ui**: Add 'statuscolumn' option
- **ui**: Restore has('gui_running')
- **ui**: Add scroll_delta to win_viewport event #19270
- **vim-patch**: Mention original author #20772
- **vim.diff**: Allow passing an integer for linematch
- **vim.fs**: Pass path to find() predicate, lazy evaluate #22378
- **vim.fs**: Improve normalize
- **vim.gsplit**: Gain features of vim.split
- **vim.version**: More coercion with strict=false
- **web**: Syntax highlighting via highlight.js
- **window/ui**: Add splitkeep option (#19243)
- **windows**: Show icon in terminal titlebar, taskbar #20607

PERFORMANCE
- **column**: Only build fold/sign column when present in 'statuscolumn'
- **completion**: Use one call to globpath() for .vim and .lua #21942
- **diagnostic**: Use api variable and improve validate (#21111)
- **lsp**: Update semantic tokens algorithm for parsing modifiers (#21383)
- **lsp**: Only redraw the windows containing LSP tokens
- **lsp**: Better binary search mid calculation in semantic token (#22607)
- **statuscolumn**: Only fill click defs array once per redraw (#21884)
- **statusline**: UI elements are always redrawn on K_EVENT
- **treesitter**: Smarter languagetree invalidation
- **treesitter**: More efficient foldexpr
- **ui**: Mitigate redraw latency regression from TUI refactor

BUG FIXES
- Make_filter_cmd for :! powershell
- :! pwsh redirection for `command not found`
- Find multibyte file name in line (#20519)
- Change did_emsg back to int
- 'scroll' is not set correctly for floats with 'splitkeep'
- Setting tabline option not redrawing tabline
- Avoid unsigned overflow in home_replace() (#20854)
- Add lfs to luarc.json (#20979)
- Vim.ui.input always calls callback #21006
- Don't disable compositor widgets when a GUI with multigrid attaches
- Pvs warnings (#21145)
- Clang warnings (#21247)
- Vim.opt_local:append ignoring global option value (#21382)
- Issues with command line if ui elements are externalized
- Properly close builtin popup in ext_popupmenu
- Failing XDG test on Windows CI
- Pass value instead of pointer to isalpha (#21898)
- Use correct number for INT_MAX (#21951)
- Add manifest file to correctly determine Windows version (#21953)
- Uv_tty_set_mode failed in Windows #22264
- Lsp github issue template example (#22285)
- Remove "Features" section from --version/:version (#22315)
- Remove "Compiled by:" from :version/--version (#22316)
- Add missing void as function argument (#22317)
- Windows assertion failure due to incorrect path length (#22324)
- Resolve error from -Werror=maybe-uninitialized
- Address -Wmaybe-uninitialized warnings (#22436)
- Pasting in terminal buffer on windows #22566
- Invalid buffer size argument to snprintf #22729
- Snprintf buffer overflow detected by -D_FORTIFY_SOURCE=3 (#22780)
- **MSVC**: Set the active code page to utf-8 (#22384)
- **Windows**: Restore console title at exit #21922
- **api**: Dynamically allocate line buffer for nvim_out_write (#20537)
- **api**: Nvim_buf_get_text regression (#21071)
- **api**: Nvim_win_set_cursor redraw cursorcolumn for non-current window (#21072)
- **api**: Set correct curbuf when temporarily changing curwin (#21371)
- **api**: "emsg_silent" should imply "silent" in nvim_cmd (#21438)
- **api**: Nvim_create_autocmd crash on invalid types inside pattern array
- **api**: Avoid memory leak with click functions in nvim_eval_statusline() (#21845)
- **api**: Don't allow hiding aucmd_win from another tabpage (#21975)
- **api**: Allow empty Lua table for nested dicts #22268
- **api**: Set script context when setting usercmd or option (#22624)
- **api**: Vim.filetype.get_option() (#22753)
- **api**: Make nvim_get_hl return 'cterm' attrs properly
- **api**: Use local LastSet structure in nvim_get_option_info (#22741)
- **api**: Return both link and attributes with nvim_get_hl (#22824)
- **api**: Avoid double hit-enter prompt with nvim_err_writeln (#22879)
- **autocmd**: Handle recursion for force set (#22820)
- **buffer_updates**: Save and restore current window cursor (#16732)
- **build**: "make clean" fails
- **build**: Duplicate version string "v0.8.0-v0.8.0" #20578
- **build**: Fix invalid use of EXITFREE
- **chansend**: Sending lines to terminal in reverse order on Windows #19315
- **ci**: Skip test on windows (#21502)
- **ci/release/winget**: Bump action version
- **client**: Wait for session to exit
- **clint**: Disable whitespace/newline #20619
- **clipboard**: Prefer xsel #20918
- **clipboard**: Update version regex pattern (#21012)
- **clipboard**: Show provider warning when not during batch changes #21451
- **column**: Avoid drawing columns for virt_lines_leftcol
- **column**: Estimate 'statuscolumn' width appropriately
- **column**: No longer reset nrwidth_line_count for 'statuscolumn'
- **column**: Cmdwin cursor is offset with 'statuscolumn' (#22445)
- **column**: Issues with 'statuscolumn' width (#22542)
- **column**: Rebuild status column when sign column is invalidated (#22690)
- **column**: Invalidate statuscolumn width when UPD_NOT_VALID (#22723)
- **completion**: Set pum_size even if ext_popupmenu is used (#20648)
- **completion**: Correct what modes support fuzzy completion
- **completion**: Include lua syntaxes in :ownsyntax completion (#21941)
- **coverity/433537**: Don't call kv_concat_len() when read_size is 0 (#21664)
- **decoration**: Redraw correctly when re-using ids
- **decoration**: Call providers in win_update() earlier
- **decoration**: Do not reset must_redraw after calling providers (#21459)
- **decoration**: Don't show signcolumn for non-sign_text extmark (#22135)
- **diagnostic**: Correct type annotations; add Diagnostic type (#21120)
- **diagnostic**: Clear stale cache on reset (#21454)
- **diagnostic**: Sort diagnostics by column (#21457)
- **diagnostic**: Revert notification on missing diagnostics (#21632)
- **diagnostic**: Use correct field name for tags (#22835)
- **diff**: Remove size_t underflow (#20929)
- **diff**: Fix a crash in diff mode with linematch enabled (#21070)
- **diff**: Handle long lines without crashing (#21389)
- **diff**: Avoid restoring invalid 'foldcolumn' value (#21650)
- **diff**: "nvim -d" should only diff arglist files #21829
- **diff**: Adjust extmarks after diffput/diffget (#22440)
- **diff**: Add NULL check
- **diff**: Trigger on_bytes only once after diffget/diffput
- **diff.c**: Regression in diffgetput (#20843)
- **docs**: Missing "(" in :help HTML
- **docs**: Nil as viable argument for goto_prev (#20852)
- **docs-html**: Keycodes, taglinks, column_heading #20498
- **docs-html**: Update parser
- **docs-html**: Misaligned tabs after conceal #20690
- **edit**: Don't subtract msg_scrolled when removing double quote (#22630)
- **editorconfig**: Do not highlight unknown properties as errors (#21673)
- **embed**: Handle stdio in server properly
- **eval**: Make error number of charidx() same as Vim
- **eval**: Change some tv_dict_add() usages back to hash_add()
- **events**: Save v:event for cmdline autocommands separately (#21316)
- **events**: Skip WinScrolled for newly-created float windows (#21333)
- **ex_cmds**: Fix a mistake in the porting of Vim patch 8.1.0306 (#21096)
- **exit**: The TUI should not ui_flush() itself (#21625)
- **exit**: Skip unnecessary steps in TUI preserve_exit() (#21897)
- **extmarks**: Adjust extmarks when inserting prompt prefix
- **extmarks**: Problems with folded virtual lines (#21930)
- **extmarks**: Don't leak memory on error (#22507)
- **fileio**: Use first available directory in backupdir for backupcopy (#20655)
- **fileio.c**: Don't use uninitialized memory (#22031)
- **filetype**: Don't pass empty string to detect (#20766)
- **filetype**: Correctly detect tex files
- **filetype**: Make vim.filetype.match() work with contents only (#22181)
- **filetype**: Avoid recursive FileType autocmds (#22813)
- **filetype**: Make recursive work...again (#22826)
- **float**: Make closing float in another tab return to correct window
- **float**: Fix ml_get error with bufpos
- **float**: Fix crash with bufpos and non-existent window (#21319)
- **float**: Remove -1 in height clamp
- **folds**: Fix fold marker multibyte comparison (#20439)
- **folds**: Use long for number of folded lines (#21447)
- **folds**: Cursorline highlight is not always applied on closed folds (#22242)
- **folds**: Handle visual blockwise indent insertion correctly (#22898)
- **fs**: Duplicate path separator #21509
- **health**: Correct tmux rgb verification (#20868)
- **health**: Fix `tmux_esc_time` comparison
- **health**: Iterate using ipairs correctly (#22119)
- **health**: Stop using deprecated ts.language.inspect_language() (#22850)
- **help**: Force tree reparse after local addition insertion
- **helpers**: Restore channel id after a call to WITH_SCRIPT_CONTEXT
- **highlight**: Link more treesitter groups by default (#20711)
- **highlight**: Properly deal with underline mask when listing (#22057)
- **highlight**: Avoid ORing underline flags (#22372)
- **highlight**: Use winhl=Foo:Bar even when Bar is empty
- **inspect**: Alwasy resolve full treesitter lang hl groups
- **intro**: Omit patch version in ":help news" item #20713
- **intro**: Make :help news line easier to translate (#21974)
- **lintcommit**: Capitalized description #22282
- **loader**: Disable profiling by default
- **lsp**: Reporting bogus capabilities in CodeActionKind #20678
- **lsp**: Ignore hover and signatureHelp responses on buffer change (#21121)
- **lsp**: Render &lt;pre&gt;{lang} code blocks and set separator default to false (#21271)
- **lsp**: Remove workspaceFolders field (#21284)
- **lsp**: Call show_document with correct args
- **lsp**: Ensure open_logfile is safe for fast events (#21288)
- **lsp**: Followup fixes for semantic tokens support (#21357)
- **lsp**: Correct some type annotations (#21365)
- **lsp**: Fix get_active_clients bufnr parameter (#21366)
- **lsp**: Ignore null responses for semanticTokens request (#21364)
- **lsp**: Token_edit.data might be null on deletion (#21462)
- **lsp**: Adjust gravity of semantic tokens extmarks (#21574)
- **lsp**: Fix nil client access in get_active_clients (#21524)
- **lsp**: Change vim.lsp.get_active_clients.filter name annotation to string (#21624)
- **lsp**: Correct callHierarchy capability to fix lsp.buf.incoming_calls() (#21665)
- **lsp**: Fix `removed` param value in add_workspace_folder (#21915)
- **lsp**: Assert workspace/applyEdit receives params (#21945)
- **lsp**: Check method is supported when range formatting (#21970)
- **lsp**: Check if the buffer is a directory before w! it (#22289)
- **lsp**: Wrong format of bufnr and client order in error message (#22336)
- **lsp**: Fix some type annotations (#22397)
- **lsp**: CallHierarchy methods also require the callHierarchyProvider (#22427)
- **lsp**: Use buffer scheme for files not stored on disk (#22407)
- **lsp**: Only fire LspDetach for attached buffers (#22468)
- **lsp**: Don't monitor files if workspace_folders is nil (#22531)
- **lsp**: Change LspTokenUpdate to use buffer instead of pattern (#22559)
- **lsp**: Prevent lsp tests from picking up local user config (#22606)
- **lsp**: Send didClose on buffer rename (#22623)
- **lsp**: Use line start/end for visual line selection (#22632)
- **lsp**: Remove_workspace_folders fails if client has no workspace_folders #22633
- **lsp**: Vim.lsp.util.apply_text_edits cursor validation #22636
- **lsp**: Kill buffers after renaming a directory #22618
- **lsp**: Avoid switching buffers on lsp attach (#22689)
- **lsp**: Jump to tag locations reliably when :ltag is used (#22750)
- **lsp**: Add missing silent check in lsp hover handler (#22763)
- **lsp/window_showDocument**: Correctly handle external resources #20867
- **lua**: Properly configure luacheck and remove `local vim = ...` lines (#20551)
- **lua**: Assert failure with vim.regex() error inside :silent! (#20555)
- **lua**: On_yank error with blockwise multibyte region #20162
- **lua**: Pesc, tbl_islist result types #20751
- **lua**: Make `vim.deepcopy` work with `vim.NIL`
- **lua**: Always return nil values in vim.tbl_get when no results
- **lua**: Mark some eval functions that can run in API-fast
- **lua**: Vim.deprecate() shows ":help deprecated" #22677
- **luado**: Get old_line length before executing Lua code
- **man**: Support MacOS 13
- **man**: Handle absolute paths as `:Man` targets (#20624)
- **man**: Use italics for `&lt;bs&gt;_` (#22086)
- **man.lua**: Set modifiable before writing page (#20914)
- **man.lua**: Use `env` command (#21007)
- **man.lua**: Open in current window if it's already a man page (#21987)
- **man.lua**: Tests, naming
- **mappings**: Use all buckets in second round of unmap (#21534)
- **mappings**: Fix check for cpo-B inverted in completion
- **mappings**: Make "&lt;" escaping in completion match Vim
- **mark**: Do not restore view in op-pending mode (#20889)
- **memline**: Use long instead of linenr_T for db_line_count
- **memory**: Fix memory alignment for dynamic allocation
- **messages**: Reset msg_grid_scroll_discount when redrawing (#21000)
- **messages**: Don't set cmdline_row when messages have scrolled (#21015)
- **mouse**: Ensure no scrolling with "ver:0" in 'mousescroll' (#20861)
- **mouse**: Statusline click registered as statuscolumn (#21748)
- **options**: No matter what is said, 'cmdheight' is tab-local (susy baka)
- **options**: Fix local 'sidescrolloff' doesn't work for mouse (#21162)
- **options**: Restore exists() behavior for options (#21510)
- **paste**: Feed keys as typed in cmdline mode (#20959)
- **path**: Don't remove trailing slash when getting absolute path (#20853)
- **powershell**: Wrong length allocation for ":%w !" #20530
- **qflist**: Avoid read of uninitialized memory (#20709)
- **rbuffer**: Handle edge case where write_ptr has wrapped around
- **redraw**: Get the line again after evaluating something
- **remote**: Don't leak memory on failure to connect to server (#21931)
- **rpc**: Don't free args on error in rpc_send_event
- **rpc**: Don't parse msgpack if buflen is 0 (#21899)
- **rpc**: Ignore redraw events when not in UI client (#21892)
- **rpc**: Ignore redraw events when exiting (#22184)
- **runtime**: Properly rely on t_Co for colorschemes (#20602)
- **runtime**: Use `g:terminal_color_{0-15}` in colorschemes (#20637)
- **screen**: Correctly draw background and eob with 'rightleft' (#22640)
- **screen**: Redraw the ruler for a current floating window
- **secure**: Crash when hitting escape in prompt (#21283)
- **shell**: On Windows :make does not echo #22728
- **showcmd**: Assert failure with cmdheight=0 (#21536)
- **sleep**: Correct cursor placement (#22639)
- **spell**: Fix wrong cast (#20810)
- **spell**: Properly source spell/LANG.{vim,lua} (#22716)
- **startup**: Support .exrc or .nvimrc with init.lua (#21181)
- **status**: Handle unprintable chars in the statusline
- **statuscolumn**: Fix crashes and clang/PVS warnings (#21725)
- **statuscolumn**: Fix sign column highlights (#21727)
- **statuscolumn**: Foldcolumn buffer is too small (#21761)
- **statuscolumn**: Make %l/%r respect 'number'/'relativenumber' (#21747)
- **statuscolumn**: Always fill click defs array (#21878)
- **statusline**: Don't show showcmd when not enough space (#21550)
- **statusline**: Make nvim_eval_statusline() work with %S (#21553)
- **statusline**: Don't leak memory with zero-width click labels
- **statusline**: Don't leak memory with truncated click labels
- **stdpath**: Default to /tmp if stdpath('run') cannot be created #20952
- **syntax**: Correct conceal for annotated code blocks (#21272)
- **tabline**: Avoid memory leak in tabline click definitions (#21847)
- **terminal**: Fix 'mousescroll' not respected in terminal mode (#21415)
- **test**: Unset XDG_CONFIG_HOME when running oldtest
- **test**: Fix issues detected by running unittests in ASAN/UBSAN
- **test**: Fix C imports on macOS arm64
- **tests**: Only get the color map once, even for multiple test files
- **tests**: Initialize Screen.colors in API highlight tests
- **tests**: Use -l mode for lsp tests
- **tests**: Fixes for using vim.mpack and more ASAN
- **tests**: Adapt treesitter/highlight_spec priority test
- **treesitter**: Properly restore `'syntax'` (#21358)
- **treesitter**: Really restore syntax
- **treesitter**: Validate language name
- **treesitter**: Fix most diagnostics
- **treesitter**: Don't trample parsers when filetype!=lang
- **treesitter**: Make params optional
- **treesitter**: Fixup language invalidation (#22381)
- **treesitter**: Remove virtual text from playground
- **treesitter**: Ipairs -&gt; pairs
- **treesitter**: Fixup for health
- **treesitter**: Maintain cursor position when toggling anonymous nodes
- **treesitter**: Disallow empty filetypes
- **treesitter**: Typos in _range.lua
- **treesitter**: Break early from loop when match is found (#22499)
- **treesitter**: Raise ts_match_limit to 256 (#22497)
- **treesitter**: Is_in_node_range (#22582)
- **treesitter**: Correct include_bytes arg for parse()
- **treesitter**: Do not error on empty filetype
- **treesitter**: Better lang handling of get_parser()
- **treesitter**: Foldexpr (#22652)
- **treesitter**: InspectTree does not respect 'splitright' #22692
- **treesitter**: Annotations
- **treesitter**: Add missing deprecate
- **treesitter**: Update queries from nvim-treesitter
- **treesitter**: Use capture metadata range if exists
- **treesitter**: Disable folding in inspect_tree() (#22885)
- **treesitter**: Do not track ranges of the root tree (#22912)
- **ts**: Check buffer is loaded when restoring options (#21419)
- **tui**: Resume main thread if suspending isn't implemented (#20523)
- **tui**: Set cursor color param as string when required #21407
- **tui**: More work in the TUI
- **tui**: Do not set ui_client_termname if it is already set (#21607)
- **tui**: Make a copy of data-&gt;params before unibi_format() (#21643)
- **tui**: Do not invoke loop recursively for pad()
- **tui**: Set stdin as "blocking" on exit (#21973)
- **tui**: Detach/attach on suspend/resume (#22040)
- **tui**: Exit on input eof
- **tui**: Set taskbar, icon in Windows #22270
- **tui**: Only forward stdin_fd on first attach (#22293)
- **tui**: Properly check if stdin is a tty (#22321)
- **tui**: Avoid stack-use-after-scope with cursor color (#22435)
- **tutor**: Failing to get buf name #20933
- **ui**: Msg_ext_set_kind for nvim_echo (#20476)
- **ui**: Setting 'cmdheight' with global statusline (#20515)
- **ui**: Send grid_resize events before triggering VimResized (#20760)
- **ui**: Fix some cases of stale highlight definitions
- **ui**: Allow resize commands to set 'cmdheight' to 0
- **ui**: Fix fragile UI_CALL macro invocation (#21656)
- **ui**: Convert title_pos string in nvim_win_get_config
- **ui**: Set stc to empty in floatwin with minimal style (#21720)
- **ui**: Command line issues with external messages (#21709)
- **ui**: Re-organize tty fd handling and fix issues
- **ui**: Make sure screen is valid after resizing
- **ui**: Recording change doesn't trigger statusline redraw
- **ui**: Ruler is not redrawn in cmdline with redrawstatus
- **ui-ext**: Correct message kind in history before vim.ui_attach()
- **ui-ext**: Log and clear error in ui_comp_event (#21147)
- **ui-ext**: Force cursor update after resize in char-based UI
- **unittest**: Delete unused duplicated code
- **unittests**: Do not consider process crash to be a success
- **unittests**: Fix TUI broken test previously ignored
- **vim-patches**: Ensure libfuse is installed
- **vim.diff**: Correctly apply hunk offsets with linematch (#20931)
- **vim.diff**: Fix fastforward off-by-1 (#20937)
- **vim.ui.input**: Return empty string when inputs nothing (#20883)
- **vim.version**: Incorrect version.cmp()
- **vim.version**: Prerelease compare
- **win_close**: Remove float grid after closing buffer (#21551)
- **win_update**: Don't use unintialized memory in edge case (#22266)
- **windows**: Set console icon later in startup
- **windows**: Consistent normalization in fs.find

BUILD SYSTEM!
- Remove unused variable CMAKE_C_COMPILER_ARG1
- Remove code for cross-compilation
- Remove url for 32-bit winyank
- Remove unnecessary translation-related code
- Rely on builtin cmake downloading rather than custom script
- Define EP_PREFIX property
- Only generate compilation database for the nvim target (#20449)
- Remove EXITFREE for debug builds
- Generate compilation database for older cmake versions
- Add clang-tidy configuration file (#15601)
- Fix incorrect clang-tidy identifier rules (#20650)
- Rely on default cmake installation if possible
- Give example on complex regexes
- Preprocess vim patches with uncrustify #20786
- Copy each treesitter parser library individually #20797
- Fix plural messages missing from .po files (#20830)
- Make update-po support optwin.vim (#20840)
- Remove python linting #20851
- Add EXCLUDE option to add_glob_target
- Always ignore user's cmake preset (#20935)
- Allow IWYU to fix includes for all .c files
- Restrict `git describe` to top level source directory (#20993)
- Fix help tags generation when SHELL=fish (#21562)
- Add git sha to version when built with nix flake (#21210)
- Remove workaround for old luajit versions
- Remove workaround for ancient clang versions
- Use modern cmake (#21589)
- Include our libraries before system libraries (#21746)
- Enable iwyu with target properties instead of variables (#21797)
- Exclude tui/terminfo_defs.h from lintc-clint (#21822)
- Enable cmake workflow presets (#21860)
- Remove nvim as a dependency of unittests (#21903)
- Various cmake fixes (#21902)
- Bump MSVC warning to level two (#21890)
- Use CMAKE_POSITION_INDEPENDENT_CODE instead of -fPIC (#21947)
- Make generated source files reproducible #21586
- Remove unnecessary unit test code (#21940)
- Use cmake for all platforms for unibilium and libtermkey (#21926)
- Simplify treesitter installation (#21969)
- Use upstream CMakeLists.txt for unibilium (#21976)
- Delete pthreads import (#21732)
- Remove GNU make check (#21977)
- Remove tests for libtermkey (#21983)
- Use cmake to build treesitter on all platforms (#21984)
- Introduce default build variables (#21991)
- Use cmake to build libvterm on all platform (#21986)
- Check if libvterm version meets requirement (#22010)
- Find unibilium without relying on libfindmacros (#22015)
- Fix dependencies in find modules (#22017)
- Enable ccache by default if available (#22020)
- Enable ccache project-wide (#22045)
- Add uninstall make target (#22059)
- Remove unnecessary file generation (#22099)
- Update release data
- Stop relying on CMAKE_BUILD_TYPE to determine the build type (#22051)
- Unbreak building neovim with multi-config generators (#22104)
- Don't build libnvim when running the CI (#22149)
- Remove duplicate INTERFACE keyword (#22106)
- Prefer -D &lt;variable&gt;=&lt;value&gt; over -D&lt;variable&gt;=&lt;value&gt; (#22164)
- Replace check-single-includes with clang-tidy (#22061)
- Remove unused function get_test_target (#22176)
- Reuse source files with interface library (#22177)
- Create test/CMakeLists.txt and move test-related code (#22179)
- Remove codecov related files (#20859)
- Mark uninteresting variables as advanced (#22208)
- Enable MSVC level 3 warnings (#21934)
- Don't check environment variable to detect CI (#22234)
- Treat clang-tidy warnings as errors (#22238)
- Remove ENABLE_COMPILER_SUGGESTIONS option (#22249)
- Only use HOSTNAME_PRG if HOSTNAME is undefined (#22288)
- Use custom command to create single versiondef (#22290)
- Use libuv config file (#22209)
- Test multi-config generator (#22310)
- Build all dependencies in parallel (#22329)
- Remove unused dependency penlight (#22334)
- Build luajit in parallel (#22327)
- Set libtermkey project language to C (#22410)
- Remove pkgconfig-related code (#22422)
- Remove libfindmacros library (#22423)
- Cmake cleanup (#22251)
- Unset variables ending with "URL" if USE_EXISTING_SRC_DIR is ON
- Show build type specific compiler flags when using --version
- Fix unknown pragma warning with mingw (#22533)
- Consistently use the provided option paths
- Fix USE_EXISTING_SRC_DIR option
- Silence git describe error output
- Remove workaround for incorrectly packaged libluv
- Enable unit testing on release builds (#22554)
- Fix build warning when using gcc 4.9.2
- Explicitly add dependency include dir for header generation
- Sanitizers for gcc
- Set CMAKE_C_STANDARD to 99 for all dependencies
- Drop curl.exe on Windows
- Download wintools executables separately
- Cmake cleanup
- **MSVC**: Enable assertions on RelWithDebInfo build type (#22326)
- **Windows**: Fix redoing version generation (#21880)
- **Windows**: Make bundling nvim-qt optional (#21866)
- **Windows**: Allow building without custom md5sum
- **bump_deps.lua**: Run command -v in shell (#22030)
- **ci**: Let ASAN print tracebacks for more errors (SIGABORT, SIGILL)
- **cmake**: Add modelines to enable syntax highlighting
- **deps**: Restore support for USE_EXISTING_SRC_DIR (#20491)
- **deps**: Add build type for libuv (#20575)
- **deps**: Disable shared library for libvterm. (#20566)
- **deps**: Bump tree-sitter to v0.20.8 (#22663)
- **deps**: Bump luarocks to v3.9.2
- **deps**: Bump coxpcall to 1.17.0-1
- **deps**: Bump luacheck to 1.1.0-1
- **deps**: Bump mpack to 1.0.10
- **deps**: Bump lua parser to v0.0.14 (#20897)
- **deps**: Switch vim parser to maintained fork (#22896)
- **deps**: Bump vimdoc parser to v2.0.0 (#22870)
- **deps**: Set query parser to release (#22603)
- **deps**: Bump libvterm to v0.3.1
- **deps**: Bump msgpack-c to v6.0.0 (#22522)
- **deps**: Bump win32yank to v0.1.1 (#22700)
- **deps**: Bump actions/stale from 7 to 8
- **deps**: Switch to Launchpad for libvterm and libtermkey (#22811)
- **editorconfig**: Set indent_size to 4 for python files (#21135)
- **lint**: Remove clint.py rules for braces #20880
- **lint**: Add more shell scripts to lintsh
- **lintsh**: Double quote to prevent word splitting (#21571)
- **luarocks**: Update busted version to v2.1.1 (#22029)
- **nix**: Change the pkgs to final, add new version of libvterm (#20410)
- **nix**: Update nixpkgs
- **nix**: Clean up nix flake (#21565)
- **nix**: Remove pylint as it has been removed (#21572)
- **nix**: Fixed build (#22918)
- **vim-patch.sh**: Handle added/removed files properly
- **vim-patch.sh**: Checkout files with path for uncrustify (#20863)
- **windows**: Export extern symbols for use in FFI #22756
- **windows**: Specify Windows 8 as the minimum version (#22173)
- **windows**: Work around luarocks not finding its own md5sum

DOCUMENTATION
- Refer to vim.lsp.start() in LSP issue template #20422
- Fix incorrect :help tag (#20511)
- Added proper annotations to functions in shared.lua
- Fix typos
- Fix/remove invalid URLs #20647
- "supported platforms" matrix #19615
- Update vimdoc parser #20747
- ":che" is ":checkhealth" #20147
- .git-blame-ignore-revs (#20820)
- Swap CursorLineFold and CursorLineSign (#20875)
- Add language annotation to Nvim manual
- Add missing docs from some Vim patches (#21296)
- Dark/light color/accessibilty pass for generated html docs #21345
- Add links to extmarks and namespaces (#21378)
- Remove "How-to disable mouse" menu item #21394
- Add security policy (#17338)
- Fix order of numbers in syntax.txt (#21581)
- Clarify line about converse of lua-heredoc (#21592)
- Fix treesitter parsing errors
- Add 'statuscolumn' docstrings (#21717)
- Builtin TUI is no longer channel 0 (#21794)
- Treesitter.add_directive, add_predicate #21206
- Docs: use codeblocks in runtime/doc/options.txt (#21919)
- Clarify :runtime behavior without [where] again (#22003)
- Clarify "pipe" mode for sockconnect
- Reword news.txt to ensure a consistent style (#22215)
- Remove mentions of 'balloonexpr' #22049
- Remove the test badge from the README (#22350)
- Mention getmousepos() for click execute function label
- Naming conventions, guidelines
- Fix more treesitter parsing errors
- Use build/bin/nvim instead of nvim in gen_vimdoc (#22398)
- Fix vim.treesitter tags
- Lua2dox.lua debugging
- Module-level docstrings (@defgroup) #22498
- Add missing highlight groups for floats
- Add removed features in news.txt
- Fix g:terminal_color_x terminal colors #22746
- More details about vim.region (#21116)
- How to debug TUI using gdb/lldb #22771
- Add vim.treesitter.query.get_query() to deprecated.txt
- **README**: Add Kotlin as a language which can use the API (#21567)
- **README**: Fix CI status badge (#22308)
- **api**: Pattern is not expanded for autocommands (#20812)
- **api**: Fix treesitter parsing errors
- **api**: Tweak data arg for nvim_create_autocmd (#22008)
- **api**: Link to nvim_set_hl_ns from nvim_set_hl (#22678)
- **dev-style**: Remove rule about variable declarations (#20446)
- **dev-style**: Remove rules covered by uncrustify
- **diagnostic**: Number → integer (#22512)
- **docstrings**: Fix runtime type annotations
- **editorconfig**: Update news.txt
- **editorconfig**: Add editorconfig.txt
- **editorconfig**: Number → integer (#22514)
- **filetype**: Number → integer (#22516)
- **gen**: Support language annotation in docstrings
- **gitignore**: Correct oldtest path
- **help**: Consistent headers for local additions
- **highlight**: Fix type annotations (#22272)
- **html**: Render @see items as a list #22675
- **inspect**: Number → integer (#22511)
- **lsp**: Add formatting APIs to deprecated.txt (#20487)
- **lsp**: Update buf_notify and rpc.notify params types (#21753)
- **lsp**: Fix type annotation on convert_input_to_markdown_lines (#21772)
- **lsp**: Format arguments to start_client() (#21980)
- **lsp**: Update cmd_env description (#22438)
- **lsp**: Change type annotations from number → integer (#22510)
- **lsp**: Type annotation for lsp.client (#22509)
- **lsp**: More precise type annotations (#22621)
- **lsp**: Opt-out of default LSP "gq" #22615
- **lua**: Add clarifications for fs.find() and fs.normalize() (#21132)
- **lua**: Correct the tags for vim.opt_local and vim.opt_global (#21138)
- **lua**: Correct vim.spell.check example (#21311)
- **lua**: Add guide to using Lua in Neovim (#21137)
- **lua**: Add `vim.json` (#21538)
- **lua**: Fix treesitter parsing errors
- **lua**: Adjust some type annotations
- **lua**: Lua-guide: &lt;Nop&gt; is for rhs of vim.keymap.set(), not lhs (#21814)
- **lua**: Use luaref tag instead of www.lua.org #21813
- **lua**: Number → integer (#22517)
- **luvref**: Fix treesitter parsing errors
- **luvref**: Update to version bump
- **maintain**: CI strategy #20778
- **maintain**: Add note on updating luvref.txt
- **manual**: Fix treesitter parsing errors
- **news**: Add news.txt and link from README (#20426)
- **options**: Remove mentions of 'imactivatefunc' and 'imstatusfunc'
- **shell**: Mention "&amp;" for piping with powershell #20459
- **support**: Update tested versions (#21126)
- **test**: Using cmake directly (without make) #22781
- **treesitter**: Fix predicate syntax (#21016)
- **treesitter**: Change links for `eq?` and `set!` to codeblocks  (#21047)
- **treesitter**: Use full function names in tags (#21321)
- **treesitter**: Fix parse errors
- **treesitter**: Number → integer (#22513)
- **treesitter**: Add query injections
- **tutor**: Fix TODO line demo (#21965)
- **uri**: Number → integer (#22515)
- **usr**: Make usr_05.txt more coherent with Nvim changes (#22428)
- **usr_05**: Update sentence about Nvim default behavior of Q (#20817)
- **vim.fs**: Normalize Windows example was incorrect (#21966)
- **website**: Soft wrap code blocks #21644

REFACTOR
- Remove char_u type and replace with char, uint8_t, etc
- remove STRNCMP (#21208) and STRLCPY (#21235)
- Remove clint error suppression as all errors has been fixed #21782
- Explicitly convert HANDLE to intptr_t for _open_osfhandle()
- Clang-tidy fixes to silence clangd warning (#20683)
- Fix uncrustify lint errors
- Move do_mouse() and its helpers to mouse.c (#20895)
- Fix clang-tidy warnings
- Click definition functions #20923
- Remove stray emsg check after #20992 (#20996)
- Move tabline code to statusline.c (#21008)
- Convert drawline.c draw states to enum (#21067)
- Remove __STDC_ISO_10646__ check
- Deprecate 'secure' option
- Remove old TODO comments that aren't relevant anymore (#21144)
- Maybe suppress a PVS warning
- Rework parameter validation in vim.secure.trust() (#21223)
- Buffer_ensure_loaded()
- Move ex_retab() to indent.c
- Remove COMMA (#21260)
- Make sure getting a callback doesn't modify argument
- Rename mch_msg =&gt; os_msg
- Rename mch_get_acl =&gt; os_get_acl
- Eliminate os_unix.c #21621
- Extract code to open stdin for reading
- Eliminate bump-deps.sh using "nvim -l"
- Fix IWYU mapping file and use IWYU (#21802)
- Format with stylua (#21821)
- Remove E5500, adjust tests
- Fix sign conversion warning from gcc (#21833)
- Use uint8_t for blobs and ga_append() (#21916)
- Use flexible arrays instead of the length-of-one trick (#22072)
- Reduce scope of locals as per the style guide (#22206)
- Move init_default_autocmds to lua
- Rename show_tree =&gt; inspect_tree #22474
- Move ga_loaded to runtime.c (#22626)
- Do more in TRY_WRAP
- Add const and remove unnecessary casts (#22841)
- Use bool type for global variables (#22842)
- Rename local API alias from a to api
- Make error message definitions const
- Remove use of reserved c++ keywords
- **PVS**: Suppress false positive V547 in drawline.c (#21875)
- **PVS/V1048**: Remove unnecessary assignment (#21870)
- **PVS/V1048**: Remove redundant assignment (#21871)
- **PVS/V1048**: Remove duplicated assignments (#21873)
- **PVS/V581**: Merge identical if statements (#22390)
- **api**: Do not allocate temporaries for internal events
- **api**: VALIDATE macros #22187 #22256 #22262
- **build**: Remove unused stdlib function and include checks
- **build**: Graduate HAVE_LOCALE_H feature
- **build**: Graduate libtreesitter features which are 1+ years old
- **build**: Graduate msgpack-c FLOAT32 "feature" since forever
- **build**: Graduate unibilium VAR_FROM feature from 2017
- **build**: Graduate -Wvla, -fno-common and -Og "features"
- **build**: Make installation of runtime/ more effective
- **checkhealth**: Convert "nvim" check to Lua
- **clint**: Convert short to int16_t (#20815)
- **column**: Remove unused build_statuscol_str() arguments
- **completion**: Don't add and remove '^' for Lua (#22702)
- **diagnostic**: Remove deprecated function (#20423)
- **diagnostic**: DRY for loop #21521
- **diff.c**: Reduce scope of variables (#20781)
- **diff.c**: Break up ex_diffgetput()
- **diff.c**: Allocate hunks directly in ga_array
- **diff.c**: Factor out hunk extraction
- **diff.c**: Factor out hunk processing
- **diff.c**: Simplify diff_buf_idx()
- **diff.c**: Internal does not need diffstyle
- **diff.c**: Factor out diffblock deletion
- **diff.c**: Copy lines via memmove
- **drawline.c**: Leadcol/trailcol
- **drawline.c**: Move number column helpers function together
- **drawscreen.c**: Reduce scopes of locals (#20668)
- **eval**: Make get_lval() explicitly check for v:lua
- **eval.c**: Factor out get_number_tv() (#21893)
- **exit**: Pass error message to preserve_exit() (#22097)
- **extmarks**: Some minor internal API changes
- **f_has**: Remove wrong comment (#21561)
- **fileio.c**: Reduce scope of locals
- **fileio.c**: Refactor match_file_path()
- **fileio.c**: Refactor vim_rename()
- **fileio.c**: Refactor buf_write_bytes
- **fileio.c**: Refactor buf_write_bytes (2)
- **fileio.c**: Remove HAS_BW_FLAGS
- **fileio.c**: Factor out autocmd handling from buf_write()
- **fileio.c**: More bools
- **fileio.c**: Reduce scope of locals
- **fileio.c**: Do not use macros for error handling
- **fileio.c**: Factor out buf_write post autocmds
- **fileio.c**: Factor out file info calc
- **fileio.c**: Make unreadable expression readable
- **fileio.c**: Factor out backup creation
- **fileio.c**: Remove HAVE_ACL ifdefs
- **fileio.c**: Normalize ifdefs
- **fs**: Replace vim.fn/vim.env in vim.fs (#20379)
- **highlight**: Rename FloatBorderTitle #20988
- **highlight**: Reshape the HL_UNDER* bits into a 3-bit integer mask
- **highlight_group.c**: Reduce scope of locals
- **intro**: Avoid Coverity warning (#22000)
- **loader**: Use vim.fs
- **loader**: Remove BufWritePost autocmd
- **loader**: Add typing for package.loaders
- **loader**: Simplify tracking logic
- **loader**: Cache hash information
- **log**: Reduce compile time LOG_LEVEL granularity
- **lsp**: Remove deprecated lsp functions (#20421)
- **lsp**: Extract a _create_server method in lsp_spec
- **lsp**: Remove deprecated vim.lsp.buf_get_clients calls (#21337)
- **lsp**: Remove workaround for missing bit module (#22373)
- **lsp**: Remove deprecated code (#22389)
- **lsp**: Remove _resolve_capabilities_compat (#22628)
- **lsp**: Do not parse verbose output when overwriting options (#22810)
- **lua**: Move _G.arg init to nlua_init()
- **lua**: Get all marks instead of iterating over namespaces
- **lua2dox**: Format with stylua
- **main.c**: Remove unreachable use_builtin_ui conditions (#22338)
- **man**: Pass env directly to spawn() (#20591)
- **man**: Add type annotations
- **memory**: Simplify new alignment logic
- **option.c**: Reduce scope of locals
- **option.c**: Add get_varp_from and get_varp_scope_from
- **option.c**: De-nest set_option_value
- **option.c**: Use intermediate for options ref
- **option.c**: Add do_set_num
- **option.c**: Add do_set_bool
- **option.c**: Simplify do_set_string
- **option.c**: Factor out common skip check
- **option.c**: Factor out loop code from do_set()
- **option.c**: Remove goto
- **option.c**: Change nextchar to uint8_t
- **option.c**: Use skiptowhite_esc
- **option.c**: Factor out set op parsing
- **option.c**: Factor out option prefix parsing
- **option.c**: Factor out option name parsing
- **option.c**: Factor out opt_idx validation
- **option.c**: De-nest code in do_set_option
- **option.c**: Move bool prefix check
- **option.c**: Add do_set_option_value
- **option.c**: Factor out some nextchar checks
- **option.c**: Factor out string option special case handling
- **options**: Don't pass negative number to illegal_char() (#21999)
- **optionstr.c**: Reduce scope of locals
- **optionstr.c**: Break up did_set_string_option 1-52
- **optionstr.c**: Remove some simple did_set_* functions
- **optionstr.c**: Add did_set_string_option_for
- **optionstr.c**: Break up did_option_listflags
- **optionstr.c**: Remove some redundant parens
- **optionstr.c**: Break up did_set_expropt
- **optionstr.c**: Move handling of formatlistpat
- **optionstr.c**: Align comments (#22070)
- **params**: Open -s and -w script files after parsing commands
- **pty**: Remove old logic for inheriting termios from host terminal
- **redraw**: No type argument in update_screen()
- **redraw**: Various simplifications
- **redraw**: Make cursor position redraw use the "redraw later" pattern
- **runtime**: Use vim.version to compare versions #22550
- **runtime.c**: Factor out find_script_by_name() (#22620)
- **screen**: Screen.c delenda est
- **sleep**: Simplify rube goldberg implementation of :sleep
- **spell**: Use uint8_t for "byts" variables (#22519)
- **statusline**: Move statusline defs to statusline_defs.h
- **tag**: Remove return type from do_tag()
- **test**: Create an lsp-specific helpers.lua file
- **tests**: Lift retry() into assert_log()
- **tests**: Run unittests using main nvim binary in interpreter mode
- **tests**: Move lua-client into core and use it for functionaltests
- **treesitter**: Add vim.treesitter.get_node() (#22360)
- **treesitter**: Use string.format to create lines
- **treesitter**: Simplify some range functions
- **treesitter**: Delegate region calculation to treesitter (#22553)
- **treesitter**: Use byte ranges from treesitter (#22589)
- **treesitter**: Add Range type aliase for Range4|Range6
- **treesitter**: Delegate region calculation to treesitter (#22576)
- **treesitter**: Move inspect_tree impl
- **tui**: Use nvim_echo() for verbose terminfo
- **tui/input.c**: Remove unused multithreading code (#22342)
- **ui**: Statusbar invalidation to win_set_inner_size()
- **ui**: Devirtualize the ui layer
- **ui**: Cleanup 'redrawdebug', introduce "flush" mode
- **ui**: Don't reimplement redrawing in focus gained handling
- **ui**: Remove some superfluous ui_flush() calls
- **ui**: Ui_log() can now just be a function
- **uncrustify**: Move macros definitions to enable formatting
- **uncrustify**: Improved formatting rules
- **vim.gsplit**: Remove "keepsep"
- **vim.version**: Cleanup
- **vim.version**: Use lazy.nvim semver module
- **vim.version**: Use lazy.nvim semver module
- **win_close**: Remove "force", don't pass on "free_buf" (#21921)
- **win_line**: Rename attr to vi_attr (#21487)
- **win_line**: Move some variables into a struct (#22490)
- **window**: Remove aucmd_win check from one_window() (#21972)
- **window.c**: Reduce scope of locals (#20301)
- **windows**: Move os_icon_xx functions

TESTING
- Introduce skip() #21010
- Remove skip for 32-bit MSVC (#21030)
- Don't skip parser_spec on windows (#20294)
- Add a Lua test for swap file created before boot
- Fix failing tui_spec.lua tests (#21117)
- Use isCI to simplify CI detection (#21134)
- Simplify platform detection (#21020)
- Adding/removing winbar should not cause win_pos events (#21226)
- Use luv.os_uname for fast platform detection (#21157)
- Add more tests for float window bufpos (#21318)
- Convert another test in test_matchadd_conceal.vim to Lua (#21353)
- Remove unused variable (#21552)
- Add test cases for command line issues
- Add more tests for Unicode
- Avoid consecutive mouse input at different positions (#21781)
- Align Test_shell_options, Test_shellslash with Nvim default
- Avoid noise in NVIM_LOG_FILE
- Exepath() returns correct path with cmd.exe, powershell #21928
- Remove unused field ext_float (#22243)
- Make expect_unchanged() less confusing (#22255)
- Make {MATCH:} behave less unexpectedly in screen:expect()
- Don't search entire repo for files
- Move oldtests to test directory (#22536)
- Use a wider screen in the rightleft winhl test (#22641)
- Unskip working Windows tests (#22537)
- Re-bundle cat on windows (#21255)
- Windows not detected in msys shells #22671
- Use exec_capture() in more places (#22787)
- Fix flaky watchfiles tests (#22637)
- Replace lfs with luv and vim.fs
- Improve editor/fold_spec.lua and editor/put_spec.lua (#22916)
- **Windows**: Normalize paths for test summary
- **api**: Migrate screenchar() test in in window API to screen test
- **editorconfig**: Add editorconfig tests
- **exit_spec**: Make sure that autocommands are triggered (#22188)
- **fileio_spec**: Avoid expect_exit() without calling clear() (#21810)
- **float_spec**: Add missing sum_scroll_delta #22648
- **help**: Drop treesitter parse error to 0
- **highlight_spec**: Fix warning in Visual highlight test (#22719)
- **legacy/prompt_buffer_spec**: Align script with oldtest more (#22354)
- **lsp**: Call clear() before willSave tests (#21336)
- **lsp**: Add a screen:expect() between insert() and feed_command() (#21577)
- **lua/diagnostic_spec**: Remove unnecessary after_each()
- **lua/fs_spec**: Fix vim.fs.dir() test (#21503)
- **lua/ui_spec**: Fix Ctrl-C test flakiness (#21039)
- **old**: Test_lambda.vim garbagecollect() -&gt; test_garbagecollect_now()
- **old**: Remove stray test42 files (#20966)
- **old**: Make Test_help_tagjump() test order match upstream
- **old**: Add missing lines from Vim patch 8.2.0522 (#21048)
- **old**: Make ":h local-additions" work properly in test_help.vim
- **old**: Skip Vim9 script with less divergence
- **old**: Change $TMPDIR from Xtest-tmpdir to X-test-tmpdir (#21346)
- **old**: Make test_signs.vim closer to upstream (#21479)
- **old**: Run some part of 'cpoptions' tests
- **old**: Make getting an unused PID work (#22529)
- **old**: Move memfile_test.c to test/old/ (#22567)
- **old**: Unskip working tests on Windows (#22650)
- **shada**: Fix shada syntax definitions test
- **statuscolumn**: Add more tests for wrapped lines (#21718)
- **statuscolumn**: %l should follow default wrap behavior (#21766)
- **statuscolumn_spec**: Remove unnecessary feed('lh')
- **statusline**: UI elements are not redrawn on K_EVENT unnecessarily
- **syn_attr_spec**: Add more information (#21912)
- **termxx_spec**: Fix TermClose bdelete test flakiness (#22463)
- **treesitter/parser_spec**: Correct time unit (#22471)
- **tui_spec**: Don't use nested terminal for resize at startup (#21583)
- **tui_spec**: Avoid race between nvim_paste and nvim_input (#21639)
- **tui_spec**: Improve cursor_address test (#21700)
- **tui_spec**: Doesn't use Unicode in cursor_address test (#21703)
- **tui_spec**: Make rapid resize test test what it wants to test (#21933)
- **tui_spec**: Don't expect exact screen in rapid resize test (#21935)
- **tui_spec**: Remove unnecessary arguments for remote UI
- **tui_spec**: Use RPC request to setup autocommands
- **ui**: Wait for another success with failure after success
- **undo_spec**: Add more tests for writing in Insert mode
- **unit**: Use file:close() properly (#21505)
- **vim.fs.normalize**: Enable test on Windows
</content>
</entry>
<entry>
<title>dist: use valid application id in nvim.appdata.xml #22046</title>
<updated>2023-02-15T23:11:49Z</updated>
<author>
<name>blt__</name>
<email>63462729+blt-r@users.noreply.github.com</email>
</author>
<published>2023-02-15T23:11:49Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=da3cb6ebe4ef40e11192db79925bb5f3dd8defef'/>
<id>urn:sha1:da3cb6ebe4ef40e11192db79925bb5f3dd8defef</id>
<content type='text'>
According to [AppStream spec](https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic),
the &lt;id&gt; element should contain a reverse-DNS scheme:

    {tld}.{vendor}.{product}

Since the flathub requires that, the flatpak build replaces `&lt;id&gt;nvim&lt;/id&gt;` with
`&lt;id&gt;io.neovim.nvim&lt;/id&gt;`. That results in ID mismatch between flatpak version
and version from distribution's repositories. Because of that, software stores
are displaying two different neovims, instead of one neovim with options to
download it either from flatpak or from distribution's repos. We can use the
`&lt;provides&gt;&lt;id&gt;nvim&lt;/id&gt;&lt;/provides&gt;`, for everyone who was expecting the id to
be `nvim`.</content>
</entry>
<entry>
<title>build: update release data</title>
<updated>2023-02-02T13:37:44Z</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-02-02T13:37:44Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=405f0a8c3fb6c9941418c4e205b41e3ad32d0fb0'/>
<id>urn:sha1:405f0a8c3fb6c9941418c4e205b41e3ad32d0fb0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore: forward-port changes from v0.8.2 release</title>
<updated>2022-12-29T16:36:28Z</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-12-29T16:36:28Z</published>
<link rel='alternate' type='text/html' href='http://git.waynecole.info/neovim/commit/?id=4703e561d5bc0eef13da171c4f8f8b6e02ae4883'/>
<id>urn:sha1:4703e561d5bc0eef13da171c4f8f8b6e02ae4883</id>
<content type='text'>
</content>
</entry>
</feed>
