Commit Graph

22 Commits

Author SHA1 Message Date
Justin M. Keyes
fc7e5cf6c9 NVIM v0.12.0
Following is a list of commits (fixes/features only) in this release.
See `:help news` in Nvim for release notes.

BREAKING
--------------------------------------------------------------------------------
- 9acb52c8f3 diagnostic: remove deprecated diagnostic APIs (#33072)
- 79bfeecdb4 editor: insert-mode ctrl-r should work like paste #35477
- f72c13341a lsp: pass entire entry to format function (#34166)
- fe23168e2b lsp: reimplement `textDocument/codeLens` as decoration provider
- caa9419355 optwin.lua #36505
- c123b7245c path: support RFC3986 in path_with_url() #36564
- a57c7238f9 plugins: remove shellmenu #35815
- ade58885c4 provider: drop Python 3.7, 3.8 support #33088
- 59eadebe33 runtime: move "tohtml" to pack/dist/opt/ #34557
- 1d5b3b5b4c treesitter: apply `offset!` directive to all captures #34383
- fd1e019e90 treesitter: get_parser return nil on error #37276
- a728eb7af1 treesitter: remove "all" option of Query:iter_matches #33070
- 4369d7d9a7 ui: decouple ext_messages from message grid #27963

FEATURES
--------------------------------------------------------------------------------
- 78f4994627 ":restart +cmd [cmd]" #34788 #35045 #35223
- b40ca5a01c channel: support :detach, :restart on Windows #37977
- ce27423132 ":wall ++p" creates parent dirs for each buf #36121
- f3c2eb49ba vim.Pos, vim.Range #36397
- 9044d64af9 has('terminfo')
- 70d7979439 render tuple types for API methods
- 5151f635ca serverlist({peer=true}) returns peer addresses #34806
- 7ba043f0f3 api: add "max_height" argument to nvim_win_text_height (#32835)
- e80d19142b api: add nvim_open_tabpage
- 6ebeb07c56 api: experimental nvim__exec_lua_fast #35758
- 1e7406fa38 api: nvim_cmd supports plus ("+cmd", "++opt") flags #30103
- 8b171852a9 api: nvim_echo can emit Progress messages/events #34846
- 612b2e7850 api: nvim_get_commands returns function fields #36415
- 4d04d0123d api: nvim_set_hl{update:boolean} #37546
- 4998b8d7b5 api: nvim_win_set_config accepts unchanged "noautocmd" #36463
- e2a0748cb2 api: nvim_win_set_config can move floatwin to another tabpage
- 094b297a3b api: nvim_win_set_config can move split to other tp as floatwin
- 88774965e5 api: relax contract, allow return-type void => non-void #34811
- 85d33514f9 api: set nvim_echo() kind for ext_messages (#33998)
- cf0f90fe14 async: add `vim._async`
- e1ffa8d33b build: HAVE_UNIBILIUM
- 1f004970f0 build: build.zig MVP: build and run functionaltests on linux
- dc6cf3add9 build: build.zig windows support
- e25b99c5b6 build: make build.zig run unittests
- c4501e98f2 build: make build.zig use luajit on main plattforms
- 8e0692cdc5 build: support full runtime distribution work
- 6d9031390c build.zig: add option to use system dependencies
- 5ec0c1ca07 build.zig: install parsers in install step
- 75fe540500 checkhealth: emoji for OK/WARN/ERROR #33172
- 63323a9c81 checkhealth: trigger FileType event after showing report #33677
- 9722bd7b1b clipboard: g:clipboard="foo" forces the "foo" clipboard tool #33235
- 3a35fdc347 clipboard: wayclip primary clipboard and correct mimetype (#33990)
- 6228acb74f cmdline: completion for :TOhtml #37045
- 3bdebfb87f defaults: don't enable treesitter query linter
- 41cac54325 defaults: exclude temp dirs from 'shada' oldfiles #37631
- 5d06eade25 defaults: map "grt" to LSP type_definition #34642
- 06befe1e34 defaults: map "grx" to vim.lsp.codelens.run() #37689
- 249f305bbc defaults: per-platform 'guifont' default #37175
- d77d961b35 defaults: shelltemp=false #33012
- b10cb0296a defaults: store spellfile in stdpath('data') #33048
- 4fae013a21 diagnostic: add `enabled` filter (#33981)
- 2f24ae8de4 diagnostic: add `format` option to `setloclist`/`setqflist` (#33977)
- c65817774d diagnostic: add `on_jump` callback option
- 7e09fedf43 diagnostic: config.status  #36693
- caf7808591 diagnostic: custom status format function #36696
- 01666aae64 diagnostic: fromqflist({merge_lines}) #37416
- 4107442103 diagnostic: highlights in diagnostic.status() #36685
- 68e316e3f9 diagnostic: jump to related info location from `open_float` #34837
- 2767eac320 diagnostics: stack DiagnosticUnnecessary,DiagnosticDeprecated highlights #36590
- a5b8cf145d diff: merge adjacent blocks using inline:word (#37085)
- 45b4bbac28 difftool: replace old "nvim -d" automatically #38057
- d5cfca5b76 docs: numbered listitems
- 4dabeff308 editor: 'autowriteall' on SIGHUP/SIGQUIT #32843
- 55a0843b7c editor: :source can run Lua codeblock / ts injection #36799
- f5829957f2 env: remove VIM_VERSION_NODOT macro #34890
- 551bb63d44 events: MarkSet event, aucmd_defer() #35793
- 23bf4c0531 exrc: search in parent directories (#33889)
- 8d397fa458 exrc: stop searching in parent directories by unsetting 'exrc'
- dc67ba948e exrc: user must view and explicitly run ":trust" #35069
- bffca6e26b extmark: support end_col=-1 if strict=false #28169
- 302e59f734 extui: assign 'filetype' to extui windows (#33924)
- f2988e05db extui: don't enter pager for routed message #34679
- 8defe1afb2 extui: route to "more" window if it is open (#34190)
- 3c9484b550 extui: show dismissed message in cmdline (#34745)
- 9467731865 extui: support paging in the dialog window (#35310)
- 7526fb449d extui: use winborder for msg window #34859
- 8a626e5c4a float: 'statusline' in floating windows #36521
- 216cc893bf float: 'winborder' "bold" style #33189
- dcbe5bdd96 ftplugin: treesitter default highlighting for markdown
- c1fa3c7c37 gen_help_html: generate helptags.json, helptag.html #35442
- 322a6d305d glob: new Glob implementation based on Peglob #33605
- 8c63d84be1 health: check `vim.ui.open()` tool #37569
- 13ed225054 health: create a bug report #31842
- 043f5a291a health: show available queries for `treesitter` (#37005)
- 5a94edad70 health: summary in section heading #33388
- 47b0a718c3 help: gx opens help tag in web browser #35778
- 16f7440cc7 help: super K (":help!") guesses tag at cursor #36205
- cb8c9186e6 highlight: support more SGR attributes #37901
- 0aabe7ae76 inspect: update to a8ca312
- 8a0cbf04d6 iter: peek(), skip(predicate) for non-list iterators #37604
- 448f15ca39 json: pretty-format (indent) with vim.json.encode() #35424
- a897cc17a5 json: vim.json.encode() sort_keys #35574
- abfe6c9ef7 logging: rename ".nvimlog" => "nvim.log" #37935
- 4eed85f9bd logs: show full paths in lsp logs (#33886)
- 7486c2f6aa lsp: <Plug> mapping for signature help cycling #34039
- 903335a6d5 lsp: `Client:stop()` defaults to `exit_timeout` #36783
- 6577d72d81 lsp: `root_markers` can control priority #33485
- d6a6eed4f3 lsp: attach to buftype=help buffers #38412
- 63abb1a88f lsp: builtin :lsp command
- 7c9b865bdd lsp: deprecate `vim.lsp.stop_client` (#36459)
- b877aa34cf lsp: detach LSP clients when 'filetype' changes #33707
- 371aa1c566 lsp: diagnostic related documents support
- 15ff454443 lsp: display codelens as virtual lines, not virtual text #36469
- 63594ffa04 lsp: do completionItem/resolve if completeopt=popup #32820
- c5c6ddba91 lsp: document method types (#35934)
- d08b265111 lsp: enable document_color by default #35086
- 66339e0641 lsp: generate method to client capability map
- acfb9bc614 lsp: graduate ClientConfig `exit_timeout` #36750
- 957093da0d lsp: handle deprecated document symbols (#34751)
- 492ea28612 lsp: handle disabled code actions (#34453)
- 8876413e2d lsp: highlighting the symbol being renamed (#37390)
- d26db4bfbf lsp: improve signature help display #35190
- f99e3a8a2a lsp: incremental selection via "textDocument/selectionRange" #34011
- e82aef2e22 lsp: incremental-selection operator-pending mode #36575
- a4b2192690 lsp: lsp.enable() auto-escalates forced shutdown  #36458
- 4430c9a424 lsp: migrate `document_color` to capability framework (#38344)
- e855a23c02 lsp: on_accept can return item to customize behavior #37092
- 729e0acd26 lsp: pass client ID in code action filter (#36046)
- 32f30c4874 lsp: pass resolved config to cmd() #34550
- 8ed68fda50 lsp: semantic token range improvements #37451
- 23ddb2028b lsp: semanticTokens/range #36705
- 3e8a4e1092 lsp: show color preview in completion items #32138
- 145548a24a lsp: show snippet preview if completeopt=popup #32553
- 654303079b lsp: skip invalid header lines #36402
- 4bc7bac884 lsp: start/stop LSPs as necessary during vim.lsp.enable() #33702
- d75ffa5934 lsp: static registration support (#34371)
- cc518cf9ba lsp: support CompletionItem.labelDetails #38403
- 8f5bd569c5 lsp: support `documentColor` dynamic registration #33800
- 4745270bf1 lsp: support `textDocument/colorPresentation` (#34823)
- 9ff1239634 lsp: support `textDocument/documentColor`
- 05bd4398c5 lsp: support `textDocument/documentLink` (#37644)
- 0e70aa0e86 lsp: support `textDocument/inlineCompletion`
- 77e3efecee lsp: support `textDocument/onTypeFormatting` (#34637)
- 03d6cf7aae lsp: support `version` in `textDocument/publishDiagnostics` #36754
- 965468fca1 lsp: support `workspace/codeLens/refresh`
- 835f11595f lsp: support annotated text edits (#34508)
- 02cd564896 lsp: support auto-force escalation in client stop (#36378)
- 02067a9892 lsp: support diagnostic refresh request
- 2031287e93 lsp: support diagnostic related information (#34474)
- 0f3e3c87b7 lsp: support dynamic registration for diagnostics (#36841)
- c5167ffc18 lsp: support linked editing ranges #34388
- 76d213efbe lsp: support multiline semantic tokens #34458
- 9278f792c3 lsp: support range + full semantic token requests #37611
- 016335a7d0 lsp: support refreshing workspace diagnostics
- 7cc07e8383 lsp: support signature help noActiveParameterSupport #34838
- d7e0d46ffa lsp: use stricter types for methods
- c22b03c771 lsp: user-specified sorting of lsp.completion multi-server results #36401
- e406c4efd6 lsp: vim.lsp.get_configs() #37237
- 6888f65be1 lsp: vim.lsp.inline_completion on_accept #35507
- 03d378fda6 lsp: vim.lsp.is_enabled() #33703
- 054eaf8493 lsp: warn about unknown filetype #36910
- cb4559bc32 lsp: workspace diagnostic support (#34262)
- 90d15227c5 lsp: workspace_required #31824
- a8edf6e445 lsp.util: deprecate vim.lsp.util.stylize_markdown
- 98f8224c19 lua: `vim.pos`/`vim.range`
- 0c46ea7d38 lua: add `Iter:unique()` (#37592)
- cf9b36f3d9 lua: add vim.list.unique()
- 7499c9f9a7 lua: conversion between cursor positions
- 62b45b8fe4 lua: conversion between extmark positions
- 9f5b309d82 lua: conversion between vim and lsp position/range
- 047a10bfde lua: function `behavior` for tbl_extend, tbl_deep_extend #33819
- 4d3a67cd62 lua: replace `buffer` with `buf` in vim.keymap.set/del #38360
- 6e1745e96e lua: support vim.Range:has(vim.pos) #37879
- 7ed8cbd095 lua: vim.list.bisect() #35108
- d8a8825679 lua: vim.wait() returns callback results #35588
- f68a5c40f0 messages: add "prev_cmd" argument to msg_history_show (#34779)
- fc2dee1736 messages: cleanup Lua error messages
- 0d13945bbb messages: drop hardcoded 'showmode' delay #38029
- 0741d2520d messages: hl-StderrMsg, hl-StdoutMsg #33429
- 0ee5a4d481 meta: vendor luv meta files
- 7cd5356a6f net: vim.net.request(), :edit [url] #34140
- f29b3b5d45 net: vim.net.request(outbuf) writes response to buffer #36164
- fb0dc825e9 option: custom chars in 'winborder' #33772
- 28e31f5d3d options: default statusline expression #33036
- 5973328eda options: per-buffer 'busy' status #34493
- 0412527a40 outline: smaller indentation #34005
- 2728b4efe0 pack: add `[[` and `]]` mappings in confirmation buffer
- a9db6ec6fa pack: add `active` field to `PackChanged` event data
- d21b8c949a pack: add built-in plugin manager `vim.pack`
- 4a637107d0 pack: add checkhealth
- 98e3a571dd pack: add code actions in confirmation buffer
- d7db552394 pack: add initial lockfile tracking
- 8c28507fcf pack: allow choosing update target in `update()`
- dd828690c7 pack: allow function `opts.load` in `add()`
- c9965491d0 pack: allow running `update()` without Internet connection
- acff86601e pack: allow skip install confirmation in `add()`
- a41703d107 pack: confirm "Always" to install all plugins #35733
- c339b83a4a pack: hint in confirmation buffer that plugin is not active
- dc8235c48c pack: prefer using revision from lockfile during install
- c522cb0e96 pack: support user-defined `data` in plugin spec #35360
- 2e533e364e pack: update `add()` to handle source change for installed plugin
- 069be91106 pack: use `nvim_echo{kind=progress}` to report progress #35625
- a203961535 pack: use colored `nvim_echo` chunks to show progress report
- 7853cde29a pack: vim.pack.get() gets VCS info #35631
- fec02ae8e4 plugins: nvim.difftool can compare directories #35448
- 8a12a01466 progress: better default format + history sync #35533
- 7b7e8cc724 progress: disable cmdline progress msg via messagesopt' #36730
- 4b643d7068 progress: set Progress-event pattern to "source" #38495
- 24684f90ea progress: status api, 'statusline' integration #35428
- 286371b4d2 prompt: multiline prompt input #33371
- 8ab511bba5 prompt: plugins can update prompt during user input #37743
- a940b77cb2 prompt: prompt_appendbuf() appends to prompt buffer #37763
- 5ae41ddde3 prompt: prompt_getinput() gets current input #34491
- 5f8d4a248a provider: detect venv python via "pynvim-python" tool #35273
- f01419f3d5 runtime: accept predicates in take and skip (#34657)
- 8c81ed8678 runtime: revert cfilter, ccomplete to legacy Vim
- 9e1d3f4870 runtime: undotree #35627
- c9d8468020 search: increase `MAX_COUNT` to 999
- 6ba32713ad secure: allow 'path' parameter for trust action 'allow' (#38001)
- 71455173b4 shada: don't store jumplist if '0 in 'shada'
- 840cdb9589 shada: shada should not store nobuflisted buffers #21818
- 701258921e snippet: highlight active tabstop (#35378)
- 4e1644d4d3 spell: opt-out of confirm when downloading spellfiles #36836
- 1d40f67776 ssh: SSH configuration parser #35027
- cf874cee33 startup: provide v:argf for file arguments #35889
- 32aee065a8 startup: warn if NVIM_LOG_FILE is inaccessible #38070
- 4719b94443 statusline: option to specify stacking highlight groups #37153
- b79ff967ac statusline: vim.diagnostic.status() #33723
- 72a63346d8 stdlib: vim.fs.ext() returns file extension #36997
- 6b4ec2264e stdlib: vim.json.decode() can allow comments #37795
- eac2f0443e tag: respect jumpoptions=view when popping tagstack (#37021)
- a945686444 term: increase max scrollback to 1000000
- 6bc0b8ae87 terminal: detect suspended PTY process (#37845)
- 03377b9552 terminal: include sequence terminator in TermRequest event (#37152)
- 71f3a9c590 terminal: parse current buffer contents in nvim_open_term() (#33720)
- 2368a9edbd terminal: support SGR dim, overline attributes #37997
- c8693051a8 terminal: surface exit code via virttext + nvim_get_chan_info #37987
- b38173e493 terminal: synchronized output (mode 2026) #38284
- 72d3a57f27 treesitter: incremental selection
- 586b1b2d9b tui: add nvim_ui_send (#35406)
- 981ea41abb tui: ghostty builtin terminfo #36963
- 8eb0964537 tui: native progress bars for Progress events #35973
- de87ceb3be tui: support APC queries in TermResponse (#34426)
- 977e91b424 tui: use DA1 response to determine OSC 52 support
- abb40ecedd ui: "append" parameter for "msg_show" UI events
- fafc329bbd ui: 'pumborder' (popup menu border) #25541
- 649bb372f6 ui: :connect command #34586
- 7ba0f623d7 ui: avoid setting 'cmdheight' with vim.ui_attach()
- 2b4c1127ad ui: emit "msg_clear" event after clearing the screen (#34035)
- 2c1c0b7af5 ui: ext_cmdline/messages for the TUI #27855
- f29856d034 ui: include compositor info with multigrid
- 9bbbeb60e3 ui: no delay for errors with ext_messages (#33693)
- 07d0da64ed ui: overlay scrollbar on 'pumborder' #36273
- a2b92a5efb ui: show "empty" cursor behind unfocused floatwin #37624
- 97549ad7cf ui: specify whether msg_show event comes from typed command
- 8ae9a44d38 ui: support grid=0 in nvim_input_mouse #32535
- 08c484f2ca ui: use builtin completion popupmenu with ext_cmdline (#31269)
- fbac2e5edc ui2: configure maximum window heights #38392
- 32e0d05d53 ui2: configure targets per message kind #38091
- 9fc985bc98 ui2: more predictable routing #35028
- db2a54996e ui2: replace message by its ID #37672
- e268760e46 ui2: show active paging keys in dialog float title #37919
- 875212c5b3 ui2: support routing "typed_cmd" trigger to target
- 81d2d88f70 undotree: set 'filetype' #36091
- 9595f07425 ux: sexy intro #38378
- 5196162540 version: support multiple Vim versions
- 361671870e vim-patch.sh: -M lists all ported patches
- 7fe02126f9 vim-patch.sh: add n flag to list possible N/A patches (#36431)
- 2f0fbdaa48 vim.fs: root() can specify "equal priority" #34276
- eae2d3b145 vim.hl: allow multiple timed highlights simultaneously #33283
- ea124068f2 vim.pack: lockfile support #35827
- 773075b2bc vim.version: add `vim.version.intersect()`
- aeb8bca12d vim.version: make `tostring()` return human-readable version range
- e42050f4ae vimscript: log function name in "fast" message #32616
- 6edae88052 vimscript: scripts can detect 'android', 'termux' #38218

FIXES
--------------------------------------------------------------------------------
- b233f71b1b :ball w_locked check, reset b_nwindows in free_all_mem() #38484
- f2e60d000e `fn.exists()` typos (#34390)
- 379c37fa0b bug in stylize_markdown
- 2c9d21f722 cursor shape don't resume after `:append`
- 7fdf9f7399 define `vim.mpack`
- bc4bddbb21 don't use logical diagnostic position in `get_prev` and `get_next` #35282
- 3567b7d751 ignore Nvim local config #37805
- fd45bc8cab lsp.enable() don't work correctly inside FileType event #37538
- 0694ca8822 map wincmd instead of remap #34635
- eeba0dc2ed memory leak from double buffer initialization in read_stdin #35413
- dfa5d79d05 misc typos #37471
- cd4c98fded nvim_open_tabpage cleanup, fixes, more tests
- 874e214993 remove exec permission from .gitattributes #33140
- bcc9242bc7 remove quotes around `nil` deprecation alternatives (#36047)
- 7b99e1f0c3 remove typo from buffer-local LSP docs (#35841)
- e991133058 remove unnecessary `nvim -l` from `gen` command #33676
- 92b2a26772 resolve all remaining LuaLS warnings in `src/`
- 431004dda2 screenchar()/screenstring() with hidden floating windows #35560
- 1999c4cdc1 screenchar()/screenstring() with multigrid #32494
- 9204b7541d silence LuaLS's `no-unknown` warnings in `src/`
- 020d5e0f7e stale lines("w$") after nvim_win_set_height when splitkeep=screen #36056
- 2e68e9c051 temporarily disable 0.12 deprecation tests
- 3b6084ddf4 type fixes
- 38aac21083 type of nvim_echo
- d21e2463fd update deps hash for zig 0.14.0
- fa8e4e65ca update lua types for commands
- 9170178ee5 use correct window dimension for range estimation
- 62ba6e8a76 use nvim namespace convention #34010
- 28157738e3 vim.lsp.omnifunc should not throw away other items #35346
- 71a22e20ad vim.ui_attach handles messages during `-l`/`--headless` #36884
- 9c5ade9212 wait() checks condition twice on each interval (#37837)
- 9287c73df9 :connect: don't use freed memory (#38512)
- 7cd22e916b :connect: formalize connect event #38543
- 49d7f694a8 :ls: check for finished terminal properly (#37303)
- 6af1b7e5e8 :print: don't use schar_from_ascii() for illegal byte (#34046)
- 5cfbc35aa8 api: add missing nargs field to user command Lua callbacks #34210
- eeacd7bd71 api: adjust fix for reconfiguring float "relative" (#34287)
- 3cb462a960 api: autocmds mess up nvim_get_option_value's dummy buffer
- 612cd99a00 api: buffer overflow in nvim_buf_get_extmarks overlap #37184
- 006361fc6b api: buffer updates in quickfix buffer #31105
- 76d0206342 api: count parameter in nvim_parse_cmd, nvim_cmd #34253
- c553008e74 api: crash when moving curwin to other tabpage #35679
- b7070778b9 api: cterm type in highlight keyset #37802
- 853eea859f api: disallow moving window between tabpages in more cases
- 0bef1c88f3 api: do not allow opening float to closing buffer
- ef084b5c22 api: don't config split as floatwin relative to itself
- 4362132b10 api: don't re-apply minimal style if unchanged #38152
- 3165e94a64 api: ensure win_get_config() "border" is reciprocal (#34322)
- c7c3f9fc9c api: fix crash in command preview with % #35228
- 7b9512e613 api: fix not capturing output in cmdline mode (#35322)
- d788864cde api: ignore split_disallowed when opening a float
- 3115e3d0d1 api: improve external window validation
- d707ccf988 api: inconsistent scrolling when deleting before topline (#36301)
- 137d5ab01d api: merge split window config only on success
- 22df649210 api: nvim_create_user_command addr option should allow ranges #35077
- 6f12663de5 api: nvim_get_option_value FileType autocmd handling #37414
- 7e2e116343 api: nvim_get_option_value dummy buffer crashes
- 0c1ed63c05 api: nvim_open_tabpage "after" like :[count]tab
- 97b064c9ac api: nvim_open_tabpage positional "enter"
- d7472c0617 api: nvim_open_win default to half-size for splits (#36088)
- 19f5f05ac2 api: nvim_open_win respects requested split window size (#35601)
- 652c3e76c7 api: nvim_parse_cmd "range" when ea.addr_count=0 #33536
- 72b0bfa1fb api: nvim_parse_cmd handle nextcmd for commands without EX_TRLBAR (#36055)
- f3ec657ebc api: nvim_parse_cmd on range-only, modifier-only commands #36665
- c7f38e3bc8 api: nvim_parse_cmd parses :map incorrectly #34068
- 63cbc95d45 api: nvim_set_current_win doesn't reset Visual mode (#37340)
- 9383a096eb api: nvim_set_hl boolean false corrupts underline styles (#38504)
- d19dc6339d api: nvim_set_hl crashes when url= key is passed
- ec18ebcb41 api: nvim_set_keymap() throws error even in pcall() #33228
- 7da4d6abe2 api: on_bytes gets stale data on :substitute #36487
- 2211953266 api: on_detach consistently before buf_freeall autocmds
- a2b9720939 api: open_win leak from naughty autocommands
- 5226801be2 api: parse_expression crash with ident and curly
- a5e5ec8910 api: parse_expression crash with unopened ] and node
- d523750de0 api: populate lhsrawalt in nvim_get_keymap response
- 88dc44260f api: preserve WinConfig style when converting float to split #37264
- 963308439a api: reconfiguring float "relative" does not clear "win" (#34271)
- e13e850517 api: redraw after setting minimal style
- 7be4ae796f api: relax config validation for "win"
- 1901832f26 api: return "style" in nvim_win_get_config() #38122
- 15d57ab0ba api: single-line visual block insert triggers extra on_lines #35098
- f5d03ec930 api: style=minimal not applied immediately for unmoved split
- 0ee8323f2b api: unnecessary errors when not moving split
- af82f36108 api: update topline when flushing with nvim__redraw() (#34346)
- 99529577cc api: use E226 instead of E227 for duplicate abbreviation (#33159)
- 0d73ec5834 api: use original LHS in keymap error message #33135
- 680d25e5b3 api: use standard error messages
- 1ec74fa7b1 api: win_config `border` type #38030
- c924c2a7b3 api: win_config_float_tp grid removal, redraw
- da39966a3a api: win_set_config error message for splitting from a float #35650
- 65170e8dad api: wrong return value with reverse range + overlap #32956
- 285c04e2d0 api,lsp: call on_detach before wiping out the buffer #35355
- acecdbff1f api,lua: handle converting NULL funcref/partial (#37060)
- 4daa8eb5ab appimage: wrong $ARCH used by linuxdeploy #36712
- 5871d26779 autocmd: 'cmdheight' OptionSet with valid window grids (#34619)
- 19379d1255 autocmd: deferred TermResponse lacks "data", may not fire (#37778)
- 05a83265f9 autocmd: fire TabClosed after freeing tab page
- f36dd7557a autocmd: heap UAF with :bwipe in Syntax autocmd
- 6d2330f50d autocmd: parsing of comma-separated buflocal patterns
- d945a93d69 autocmd: potential TabClosed UAF, always set abuf
- 1cde71233f autocmd: skip empty comma-separated patterns properly
- f9ef1a4cab buffer: defer w_buffer clearing to prevent dict watcher crash #36748
- 14d65dae91 buffer: don't allow changedtick watcher to delete buffer (#36764)
- 23aa4853b3 buffer: don't reuse 1-line terminal buffer (#37261)
- 2700f6642a buffer: switching buffer should respect jumpoptions+=view (#36969)
- fa24df3264 bufwrite.c: handle invalid byte sequences #37363
- c26f989b2f build: also check os_win sources with uncrustify in CI
- 8069df2661 build: build.zig: use luajit for windows
- 576e8f62c2 build: disable problematic marktree assert in RelWithDebInfo builds
- 88b45614e9 build: gen_help_html fails #36359
- f0d981544b build: glibc 2.43 happened
- e69beb9b1a build: invalid help tags cause reports to fail #36356
- 3268f51d20 build: musl libc build.zig
- f98b5ee619 build: remove .tar.gz workaround for bug fixed in zig 0.15.2
- a2b0be19bf build: remove deprecated aliases in build.zig removed for zig 0.15
- b4db223d33 build: treesitter parsers are not ReleaseSafe
- 921f8b0df7 build: use correct cmake expression for $<CONFIG>
- ec8a0c7340 build: workaround errors in zig build due to stale cache
- 6741c134e1 build: zig build can has git version
- 41bc3020c4 build.zig: format build.zig to keep lines under 100 chars
- 565cfa04eb build.zig: replace slashes in filepaths #37111
- 64ce5382bd channel: crash on failed sockconnect() (#37811)
- 886efcb853 channel: possible hang after connecting with TCP times out (#37813)
- 4399250e90 channel: unreference list after callback finishes (#37358)
- 5f9f5bc04d checkhealth: check g:loaded_xx_provider for all providers #33168
- e87d2ae383 checkhealth: check outdated pynvim version properly #33175
- 78d2e0b43e checkhealth: don't override user "q" keymap #33132
- 16fbde83c4 checkhealth: don't wrap command in cmd.exe (#38158)
- bd45e2be63 checkhealth: wrong ABI version for treesitter parsers #35327
- ad22d0ace9 cjson: fix `strbuf_set_length` incorrectness #35565
- f5cbf11644 client: avoid :connect race with server detach
- 2483d5ad8a clint.py: replace deprecated codecs.open #36593
- 41199c45d6 clipboard: avoid using stale register width (#36178)
- 95dfb063da clipboard: correct blockwise register width computation (#35038)
- ac12dc49cc clipboard: enable cache for function providers #34470
- 310d01d8fa clipboard: tmux clipboard data may be stale #36787
- d00f680c0d clipboard: use tmux only in a tmux session #36407
- 8aacce90b4 cmake: linker flags, doc generation for cross-compilation #38215
- 9763834170 cmake: use host nlua0 binary when cross-compiling #38089
- 69cae6259e cmd: :update does not write new, unmodified buffer #35929
- fcf752476a cmd: :update writes new file buffers only for real files #35939
- a5c55d200b cmd: bar "|" not allowed after :fclose #34613
- 5de2ec76a3 cmdline: :checkhealth completion with multiple args (#35060)
- f4ee0ab2f1 cmdline: avoid empty @: register after :<CR> (#33126)
- fde1c07891 cmdline: cmdline_block events for :lua debug.debug() #38171
- 0015a105ca cmdline: do not move UI cursor when entering cmdline #33729
- 236d831d77 cmdline: don't treat c_CTRL-D as wildmenu (#36067)
- 95ab723995 cmdline: empty ext_cmdline block events for :<CR> #33118
- 7f2298ad32 cmdline: fix inconsistent behavior with ext_popupmenu (#35688)
- 677446c70f cmdline: make sure pum is removed on leave (#36608)
- dc05598d02 cmdline: set search cursor after ui_flush() (#34418)
- 5977bdba05 cmdline: trigger CmdlineChanged after command preview (#35254)
- efd0fa55c8 cmdline: validate 'incsearch' cursor for "cmdline_show" redraw (#34630)
- 28ff4deda7 colorscheme: adjust `StatusLine[NC]` for diagnostics #36719
- 4a706a7092 column: don't count signs on lines beyond eob #33410
- b40e658717 column: missing redraw with virt_lines_leftcol (#34650)
- 8f78591f9a column: wrong alignment and highlight with empty 'display' (#35495)
- 69419f8b3e completion: CompleteDone reason="discard" when candidate text remains #38169
- 51caf0a3af completion: avoid freeing uninitialized value (#33459)
- b258382176 completion: complete drive-letter filepath on Windows #36353
- 634f6424aa completion: set 'wrap' and scrolloff=0 in preview window (#37327)
- 3f10bb87ef completion: wrong CompleteDone reason for auto-inserted sole match #38280
- e1b3ca6629 compositor: clear old position with last known dimensions #38229
- 6f632a8615 compositor: don't blend uninitialized background cells #34364
- 150490d365 conceal: assert tripped during startup #36136
- ad8bce6674 conceal: check for concealed lines on invalid row (#36084)
- ab72799841 coverity/530026,530028: free resources on early exit in nlua_exec_file #33502
- 0791594101 coverity/530033: free lp->sl_info to fix resource leak #36198
- 0ed5e00077 coverity/532324: free skip_until to prevent leak #36109
- 3e30323135 coverity/554963: preallocate msg.items to avoid FORWARD_NULL #34484
- 501a21f333 coverity/637363: out-of-bounds write #37878
- c5b8ed870b coverity/644326: NULL ptr deref in socket_address_is_tcp #38010
- 20b2dd39cc decor: clamp last column by decor provider range
- ca16b54c86 decor: enable decoration provider in on_start #33337
- 6adf48b66d decor: extmark highlight not applied (#33858)
- 9492df027d defaults: 'guifont' "monospace" fallback, trim spaces #37930
- 57b4fb5c53 defaults: enable :terminal [[,]] motion in operator-pending mode #33217
- 3ebde5ea14 defaults: keywordprg=:help on Windows #33336
- 9567fb0507 defaults: silent `gx` if no `textDocument/documentLink` support #37969
- dc6fc11b87 defaults: start exrc search from parent directory
- cb247e06f0 defaults: visual-mode [[,]] for :terminal shell prompts #33201
- 1c96b72dfa deps: make script/bump_deps.lua update build.zig.zon versions in sync
- 6e12ef4a7b desktop: cannot open filename with spaces using OS file manager #33161
- 2e0158650a diagnostic: accept multiple namespace in `open_float()` (#34073)
- c681336e3c diagnostic: accept multiple namespaces when setting loclist/qflist (#33982)
- d567f899ef diagnostic: allow virtual_{lines,text} cursor exclusivity #33517
- 3ac76977bc diagnostic: check for extmark in get_logical_pos #37127
- 68eece8b84 diagnostic: check if the buffer is loaded #35125
- dbe17da120 diagnostic: deprecate `float` in `vim.diagnostic.Opts.Jump` (#34037)
- efa6d91132 diagnostic: display 1-based related information line/col numbers (#37093)
- 2b21c9c23f diagnostic: ensure autocmd always is always sent diagnostics
- e34e2289c2 diagnostic: fix flaky error
- 583308f599 diagnostic: handle stale diagnostic extmark ids #38060
- 88a72efb46 diagnostic: open_float() handles config.float function #31577
- 09266830bd diagnostic: show diagnostics on buffer load #35866
- 9833f0da5f diagnostic: unstable sorting by severity #37154
- f7b573f80a diagnostics: assert adjusted diagnostic position #37210
- 7a051a4c38 diagnostics: avoid jumping to diagnostics in deleted ranges #35088
- 9641ad9369 diagnostics: diagnostic just after EOL is not highlighted #34085
- e4a100a1e1 diagnostics: extend conversion support from/to quickfix format (#34006)
- 19efabafc5 diagnostics: fixed virtual_text cursormoved autocmd error (#34017)
- 0a113013fb diagnostics: position diagnostics using extmarks #34014
- a1bc5d0ae6 diagnostics: showing stale diagnostics in handlers #35890
- 3594c213a7 diagnostics: validate opts.signs #34565
- 60d0b7d0c3 diff: fix incorrect item size of dout_ga (#34338)
- 0b8a9bde0e diff: set default diff flags properly (#35450)
- aaec3e5b0d difftool: add check for window number when cleaning up layout #36161
- c1e60f36f3 difftool: don't reset quickfix list when closing quickfix window #38088
- c9b74f8b7e difftool: ensure split layout, use systemlist #36145
- c6113da5a9 difftool: fully resolve symlinks when comparing paths #36147
- a88c7962a8 difftool: handle "no differences found" #36671
- d590644620 difftool: silence :only command in setup_layout #36168
- 97a6259442 display: adjust setting winline info for concealed lines (#33717)
- cb2ca54331 display: cursor moves when searching with "n", "*" #29446
- ce0c0c31a0 display: scroll logic does not take into account concealed topline (#33054)
- 5b1561bb71 display: scroll redrawing doesn't account for virt_lines above fold #33374
- 7e8b7bba21 display: wrong cursor column with 'concealcursor' = "n" and virt_text (#33218)
- 5582005ac7 docs: add `--clean` arg to LSP bug report (#36530)
- e74753a221 docs: callback annotation for `vim.ui.input` #34507
- 4a910a2a4e docs: dev.txt is "new layout"
- 9da316fcc4 docs: force blank line after numbered list items #35950
- 4397c4b117 docs: improve adjacent list items
- 8a76129d9f docs: include `?` in list items #35945
- b2722181b0 edit: clear showcmd after clearing last put char (#34517)
- 9a864d0a3c edit: handle cindent properly with completion (#36711)
- 3647b821ea editor: respect [+cmd] when executing :drop #33339
- 966b1da183 editorconfig: a custom property is treated as a section (#34445)
- b618511ef9 editorconfig: use 4 spaces indentation for zig files
- fd973c0a4e env.c: drop envmap, free os_getenv() result #32683
- df9e4a037a eval: 0 should mean current tabpage in gettabvar() (#36891)
- 8156eece24 eval: fix crash with :breakadd expr when calling user func
- 981d4ba45e eval: winnr('$') counts non-current hidden/unfocusable windows #34207
- 1e1619de83 eval: winnrs of unfocusable/hidden windows #35474
- 57c6b61cf2 event-loop: don't call uv_stop() when loop isn't running (#37984)
- 1dbede5b93 events: avoid superfluous CursorMovedI on first autocmd (#33588)
- 0b61bc8982 events: crash on SIGTSTP (Ctrl-Z) #33258
- 0a0c349b6f events: crash on WinScrolled #35995
- 29494f042c ex: error handling for `:lsp` #37061
- 2f35221774 excmd: :trust executed even when inside false condition (#36032)
- c1f142322b excmd: correct :connect abbreviation
- 781ea5b41b exit: stop listening before closing channels (#38480)
- ed9abb1851 exrc: ensure consistent 'exrc' loading sequence #35148
- f7c939fa7a exrc: exrc knows its own location (#34638)
- a393347673 extmark: adjust invalidate range by one for deleted lines #37897
- 589232c0e0 extmark: wrong eol_right_align width calculation (#37034)
- 6dee1672cc extui: "box" window width calculated on last line (#33881)
- ff95d7ff9a extui: adjust "more" window routing (#34251)
- cc78f88201 extui: adjust which messages are sent to "more" window
- 9784bc1346 extui: append consecutive :echon messages
- e512efe369 extui: attempt to perform arithmetic on field 'last_emsg' (#35047)
- 70eb416459 extui: better message highlighting after carriage return (#34034)
- 9e968635ef extui: check if buffers/windows exist before deleting (#34886)
- 3c7c824bdc extui: check option values after VimEnter (#33768)
- 5046ef4c8f extui: clear cmdline buffer for first message (#34490)
- db702782e0 extui: close cmdwin to enter "more" window (#33860)
- c916bdf329 extui: close message window with `q`
- 39a5b7f239 extui: cmdline visibility, cmdheight cursor position (#33774)
- 5e4700152b extui: copy window config to new tabpage (#34308)
- 8c6ea76ebc extui: disable cmdline highlighter when showing a message (#34887)
- 9efdd4fe98 extui: drop "more" window that is no longer floating #33861
- be5a4851ea extui: ensure temporary cmdline config is not restored #35301
- 1256daeead extui: ensure windows are valid in scheduled on_key (#35106)
- cd7cf4bd16 extui: error on :call input('') (#35515)
- 4d56dc43c0 extui: handle carriage return in messages
- f1295fe76f extui: hide inactive "more" window (#33831)
- 3828856233 extui: incorrect cmdline cursor position (#34201)
- a59b052857 extui: map wincmd instead of remapped key (#34151)
- d4ecfc4234 extui: message may overwrite active cmdline #33846
- 76f76fb083 extui: only append messages exceeding 'cmdheight' to "more"
- 33b0a004eb extui: properly setup "more" window for changed buffer
- 5e83d0f5ad extui: reposition "more" window after entering cmdwin
- 7077c59295 extui: reset message state after "search_cmd" message (#34119)
- 7e787f6a4f extui: route interactive messages to more-window (#33885)
- b2a5105c66 extui: search highlighting in extui "more" pager #33792
- d0aedd36df extui: set 'modifiable', 'noswapfile' for buffers (#34582)
- 56709ca168 extui: setup buffers after activating `eventignorewin` (#35915)
- 8e8f4523c6 extui: translate <Tab> in cmdline text (#34055)
- cb036cae5f extui: use visible to determine active "more" (#34327)
- a96665cf48 extui: using tracked message column in cleared buffer (#34154)
- c973c7ae6f extui: write each message chunk pattern separately (#34188)
- 8af28ab9cb filetype: error when `vim.filetype.match{buf=fn.bufadd('a.sh')}` #34155
- 7500f76e61 filetype: fix typo (#37286)
- 095b9f98f3 filetype: handle invalid `bufnr` in _getlines(), _getline() #36272
- e2cb675705 filetype: move fallback logic to vim.filetype.match() #30141
- d131d67e67 float: clamp floating window above cmdline #37899
- 3ccba4cdff float: crash from nasty :fclose autocmds (#36134)
- d4f2b9050d float: cursor visible in "hidden" floating window #30866
- 66e4784f5a float: ensure relative window grid is allocated (#34459)
- eb3201c772 float: null pointer dereference, redundant call #36727
- 3b6e8e484e float: prevent truncation of title that fits exactly #36880
- 31c814a0ed float: respect statusline=3, don't inherit local 'statusline' #36716
- 5943a81fe7 float: style=minimal leaks into normal windows #25185
- cb171ee7cb float: tail truncate long title #28387
- 9269a1da35 floatwin: handle viewport width properly at end of window (#35490)
- 66dddd8b51 folds: adjust filler text drawing for transparent folds
- 1d9990daac folds: avoid unnecessary loop with horizontal scrolling (#33932)
- d73cfefed5 folds: error when deleting lines at end of buffer #35396
- 19715e6e8a fs: expand drive-relative paths on Windows #37084
- d22fcf2917 gO: use non-breaking space #34197
- ac6cf5b03b gen: alias /doc/user/helptag.html to /doc/user/helptag/ #38156
- 805dd5d047 gen: prevent "make doc" failure due to temporary files
- 67fede0fc9 gen_help_html: ASCII art rendering in docs #35262
- a49bf5e1d3 gen_help_html: parser override
- 4b02d1f6f6 gen_vimdoc: unnecessary assert for non-source files
- d2ca90d87e glob: handle numeric literals in pattern matching (#37257)
- 3991f14621 glob: handling commas in letter pattern #34170
- aeebc51851 grid: assert crash during extreme resize layouts #36847
- 1ad9cdd403 grid: check allocated grid size when suspicious scrolling
- 856391bc7f health: "q" keymap not set when health.style=float #37007
- a33284c2c0 health: accept TERM=tmux-direct #35511
- c28113dd9d health: add back `vim.cmd.redraw()` call (#37576)
- 3fb53abe2a health: attempt to concatenate table value #36369
- 8a901a52e1 health: avoid silent failure
- 2422fbdd5f health: bad format() call #34904
- 672f6e60c1 health: bug-report formatting, version check #36809
- 61678811d8 health: check more "old" files #38028
- 31cb37687a health: check shell performance using vim.fn.system() #36980
- 16c8a908ef health: check stable release for non-nightly build #36715
- d927a87ed6 health: checkhealth float opens extra empty buffer #33648
- f19653e370 health: emit Progress message #37123
- cfe10b4014 health: errors in :checkhealth with pyenv-virtualenv #35865
- bd37348939 health: expecting nonexistent "inotifywait" function #33312
- 28b7c2df52 health: floating window closes when opening TOC (gO) #34794
- e4ce0c7270 health: git check and autocmd clean #36713
- 6152bcf42e health: hard fail on invalid "python-*" bin #35382
- 6942dec9b2 health: highlight group conflicts with help #34616
- bfc7bae421 health: improve version check for nightly builds #38147
- 07f048a8d7 health: message should mention "vim.provider" #33095
- e9d03b92b6 health: redraw after emitting progress message #37567
- 06e4b159ed health: show full curl output
- f311c96973 health: update advice for Python #35564
- ae93639ec4 health: use FileType autocmd for bug report winbar #37486
- 1c52e90cd5 help: :help can focus unfocusable/hide window #34442
- 4a4de73043 help: better align local-additions #38097
- 25322a3a3b help: only set url for help files in $VIMRUNTIME #36165
- e49a592595 help: retry once if async parsing fails #36592
- 62d3a2110d help: wrong tag url in third-party help docs #36115
- 625c59fe5f highlight: Normal-linked groups shouldn't override CursorLine #35026
- 64966ba52c highlight: allow ephemeral extmarks past final newline #35888
- e23c083d13 highlight: avoid null deref, misc issues #38164
- 444c195edb highlight: blend underline check and use struct key for attr cache
- d5a8c9d766 highlight: correct change detection in do_highlight for gui colors
- e3c36f31e3 highlight: ensure extmark range is within buffer bounds #35928
- a7177e34c3 highlight: link HLF_8 to something more prominent #34910
- 3af43cffa0 highlight: no match highlight during :substitute prompt #33262
- 336b46a879 highlight: preserve background transparency in 'winblend' #34302
- 5803994a1c highlight: preserve bg transparency with winblend=100 #34825
- bd12aef784 highlight: refresh highlight attrs before message output #25737
- 6af8958055 highlight: respect 'winhighlight' in CursorLine Normal check #36927
- f8d59cfab9 highlight: setting 'winhl' doesn't work with global ns (#37868)
- 64753b5c37 highlight: spurious underline in 'winblend' floating window #34614
- a26cdcb20e inccommand: skip input() during preview #35272
- f348c0ebba incsearch: include compsing characters with Ctrl-L
- a04c73cc17 input: discard following keys when discarding <Cmd>/K_LUA (#36498)
- 592582ba48 input: don't exit on EOF when peeking for input with -es (#36948)
- 29c8dabd41 insexpand: update showmode when updating the screen (#34466)
- e0308dc147 install: only install "tee" on Windows #36629
- cd71221250 intro: crash on small screen #38397
- 4fe51dfdae iter: ArrayIter:last returns nil when filtered to empty #34697
- eaa9aca130 jobs: jobstart(term=true) accepts width/height #33904
- 11e82c108d l10n: update Ukrainian translations #37654
- 16c1334399 langmap: assert failure on mapping to char >= 256 (#37291)
- 14fe370564 logging: don't overwrite NameBuff (#38004)
- ea5007b37f lps: separate namespaces for pull/push diagnostics #37938
- bf4710d8c3 lsp: "attempt to index nil config" #36189
- f068386c9f lsp: "bold" border for vim.lsp.buf.hover #33395
- a9b8a8dc6c lsp: _cancel_all_requests() tries to cancel completed requests #34105
- 97ab24b9c7 lsp: _get_workspace_folders does not handle root_dir() function #36071
- a03ab03a10 lsp: `:lsp restart` restarts on client exit #37125
- 6005fcf671 lsp: `opts.wrap` always `true`
- 4b0700c618 lsp: `vim.Range` check in `document_color.color_presentation()` (#38374)
- d6fffe6b32 lsp: access correct client capability path in `supports_registration`
- 3eaa6c5a66 lsp: add `RequestFailed` error code constant #34645
- c3589753a0 lsp: add `vim.deprecate` call to `vim.lsp.with` (#37960)
- bd41f6eb6c lsp: add deprecation comment to `gen_lsp` (#36185)
- 9f99bf48ea lsp: add missing argument validations (#34519)
- 378435968f lsp: adjust codelens position based on the server-provided range
- 35756022cb lsp: advertise supported fold kinds (#34461)
- 4db58f78b4 lsp: announce `normalizesLineEndings` capability (#34175)
- bac133e4b6 lsp: announce diagnostic tag support (#34436)
- fed9069b8d lsp: avoid `foldclose()` after current window-buffer changed #33901
- 2debe2f30a lsp: avoid automatic request after leaving insert mode (#35767)
- fde0b487fb lsp: avoid re-enabling `document_color` on `registerCapability` (#35774)
- 6f733f4a9b lsp: avoid scheduling client deletion before LspNotify #37685
- 2ee896201c lsp: better handling of "*" configs
- 0501c5fd09 lsp: call `on_list` before reading `loclist` #37645
- 653871da1b lsp: check `nvim.lsp.enable` before `doautoall` #36518
- e94d8f03b9 lsp: check for lens range in `vim.lsp.codelens.run()` (#35294)
- 1bc85d29c1 lsp: check for non-nil buffer state on reset (#36519)
- bbfcde3ab2 lsp: check if buffer is valid in scheduled client:on_attach() #35672
- c789d79966 lsp: check if buffer is valid when resolving code lenses (#35092)
- 0862c1036a lsp: check if client is stopping before reuse #33796
- 42f244bf18 lsp: check whether buffer is valid when scheduled #35461
- 0dc900d744 lsp: clear document_color autocmds #34573
- ace254c9ff lsp: close floating preview window correctly #34946
- a702534c50 lsp: close timer when client exits (#36795)
- b4ba27c238 lsp: codelens extmark line out of range (#35070)
- f2d0b06ecb lsp: completion word includes leading space from label #38435
- 3342aead1d lsp: consistent use of `vim.notify`/logging with unsupported methods
- 55e3a75217 lsp: convert the encoded position to line byte (#34824)
- 8165427b4d lsp: correct capability checks for dynamic registration (#36932)
- 82d0883c2d lsp: correct diagnostic data support and related info capabilities (#34454)
- 2822c38f2e lsp: correct iteration through attached buffers (#36517)
- 213360c389 lsp: custom 'winborder' in make_floating_popup_options() #34868
- 342974773c lsp: cycling signatures with the default `config.focusable`
- 40aef0d02e lsp: decode 'null' in server responses as vim.NIL  #34849
- b67eff38fe lsp: deduplicate completion items #36166
- e62dd13f83 lsp: default ClientConfig.exit_timeout to false #36811
- 70ea589d79 lsp: deprecate `vim.lsp.get_buffers_by_client_id` (#36449)
- b938638d2d lsp: deprecate `vim.lsp.protocol.Methods` (#35998)
- f7802dd5d5 lsp: deprecate vim.lsp.set_log_level, vim.lsp.get_log_path #35274
- 8315697449 lsp: detect if Client:request resolved synchronously #33624
- 0cc4f53b40 lsp: do not clear the codelens on the last line #38226
- 18e8839c80 lsp: don't create an `'LspAttach'` `document_color` autocommand
- 90abd2613d lsp: don't empty server start-boundary by next client response #37665
- 0472119fe6 lsp: don't immediately force shutdown when using a timeout (#36455)
- c2c5a0297e lsp: don't overlay insertion-style inline completions (#36477)
- afebbd0f34 lsp: don't override `config.title` in `vim.lsp.buf.signature_help()` #35075
- 729111d3a3 lsp: don't treat MarkedString[] with language id as empty #35518
- ff792f8e69 lsp: enable insertReplaceSupport for use in adjust_start_col #36569
- 8495d96238 lsp: ensure `bufstate` when calling `vim.lsp.document_color.is_enabled`
- f168d215cf lsp: ensure augroup before querying autocmds #38254
- e239179871 lsp: ensure bufnr is passed for buffer-local requests (#36325)
- 40dc2d02a8 lsp: ensure the codelens on the first line is visible
- 9f77124b78 lsp: error on omnifunc completion (#37790)
- 82b844fefe lsp: fallback to empty `capability_path` in `supports_registration`
- 927927e143 lsp: fix error with InsertReplaceEdit events #33973
- 23f4fab0bd lsp: fix incorrect params because of typo (#36871)
- 34116bbd9b lsp: fix nil-index error for `:lsp enable` (#37411)
- 20a392fe38 lsp: fix window to set cursor for inline completion (#36444)
- 4ee2e365a5 lsp: fix workspace diagnostic request to follow spec (#34674)
- 913b05bf63 lsp: format_item should return string (#36025)
- 7c3df3e2ea lsp: get_namespace signature (#38449)
- a8ffa6e323 lsp: guard dynamic capability attachment #38382
- abc96ba0ce lsp: handle `nil` buffer state in `documentColor` clear (#33746)
- 8e48c02061 lsp: handle array with empty string when checking empty hover (#35423)
- 507cd63418 lsp: handle completion/resolve response arriving after on_insert_leave
- 1de77c608f lsp: handle nil request in semantic tokens #36780
- 26cc42e426 lsp: handle nil response in references request #35139
- 5653b25e9b lsp: handle non-string documentation in completion items #38291
- 95dce376f3 lsp: handle providers without subcapabilities
- eaacdc9bdf lsp: ignore empty response on trigger completion #37663
- a0678a5849 lsp: ignore inline completions after leaving insert mode (#36476)
- 7ebfc50775 lsp: ignore invalid fold ranges (#36708)
- 8bfb91accc lsp: ignore stale codelens resolve responses (#38153)
- 5d1fd4aca5 lsp: improper diagnostic end_col computation
- 1f558f8d09 lsp: improve diagnostics handling and comments
- ed562c296a lsp: improve dynamic registration handling #37161
- 5c15df449a lsp: improve error completion message #33812
- cd06e0c9d6 lsp: include client ID when receiving unknown fold kind (#34535)
- 6005bc68b2 lsp: include context for each client in multi-handler results (#34669)
- b459bf5961 lsp: include missing LSP methods and update type annotations
- 18d6436ad2 lsp: inlineCompletion: ignore out-of-range items #35990
- 820fb89172 lsp: make thematic break parsing conform to GFM spec (#35162)
- 13cf80deef lsp: map all LSP methods to server capabilities (#37910)
- 2f78ff816b lsp: misleading logs in non-applicable filetypes #35749
- d976834864 lsp: nil error in ColorScheme autocmd
- 3c4acc0f1a lsp: noisy log message when enabling server without config #36264
- 91e116f3a6 lsp: only auto-detach lsp.config clients #33834
- e5c5b563ec lsp: only auto-detach lsp.config enabled clients #34325
- eb90f5d9e3 lsp: only resolve LSP configs once (#38007)
- 6926fc1615 lsp: opts.reuse_win does not jump if buf is already open #33476
- 4778a4c201 lsp: prevent flicker in codelens virtual text #34888
- 9e93bfdb5f lsp: prioritize showing active signature
- b98aefc584 lsp: properly handle `documentColor` from multiple servers #33656
- c39d18ee93 lsp: raise error when lsp config is invalid type (#37508)
- addd408b39 lsp: redraw codelens after request completed #38352
- 03032d1f73 lsp: remove `vim.lsp.diagnostic.reset()` (#35938)
- 285ea2525f lsp: remove extra notify on empty hover
- 34815777b2 lsp: remove side-effects if `vim.lsp.enable()` raises an error (#37571)
- 181df60533 lsp: remove unused `ns` field
- 371ad48135 lsp: replace `string` types with LSP method alias type annotations where appropriate. (#36180)
- 6a49a277f5 lsp: request diagnostics from all registrations
- 0da9827673 lsp: respect documentation markup kind in completion preview #38338
- 4ef5624729 lsp: restore Client:stop() force-stopping behavior (#35800)
- 0db8efcbe4 lsp: restore virtual document color visibility (#38407)
- 4dd9137215 lsp: reuse_win prioritizes windows/tabs currently displayed #36486
- 70460d557c lsp: scope inline_completion autocmds to buffer (#35965)
- 323d5527ee lsp: set 'linebreak' in floating windows (#36275)
- 4b8980949c lsp: set concealcursor='' in LSP floating windows #36596
- c3991b8ef4 lsp: show notification with empty hover response (#35014)
- 5b1b46ea5a lsp: show title when global winborder is set (#35181)
- 8a94daf80e lsp: simplify semantic tokens range request logic #36950
- 4ed597389c lsp: snippet preview blocked completionItem/resolve request #38428
- 0197f13ed4 lsp: sort items when completeopt include fuzzy #36974
- d53d542359 lsp: stop and close timer when `Capability` is destroyed
- a768d0a95b lsp: stop repeatedly resuming dead coroutine #35743
- 1d8e9b5d07 lsp: store result id for unchanged diagnostic reports
- 8b5d8dfc73 lsp: support `containerName` in symbol requests #35029
- 17c18efbe5 lsp: support v:count in selection_range() #34551
- a1895f024a lsp: support workspace/configuation with no section #27510
- bd225422a5 lsp: tests for :lsp, rename start/stop
- e69b81ad94 lsp: treat 2-triggers-at-once as "last char wins" #35435
- 1f63735f17 lsp: treat nil inlay hint result as empty array (#35458)
- f67306cc67 lsp: typos in method names #36077
- 29c6176f08 lsp: unify LSP error logging prefixes #38354
- 9139c4f90f lsp: update capability maps (#35227)
- db1b7f7412 lsp: update completion items on `TextChangedP`
- 7a8d316879 lsp: update metamodel (#38174)
- 6c3e9b5573 lsp: update on `CursorHoldI` cause users unable to `select()`
- 848c7a7894 lsp: update window title when cycling through signatures #35407
- 006101360d lsp: use LSP method type in more places (#36069)
- 36db6ff2c1 lsp: use LSP textEdit range for completion start boundary (#37491)
- 34c769dd89 lsp: use `bufnr` when getting clients in `symbols_to_items` (#33760)
- 807bc00dd6 lsp: use `vim.notify` with action-less `showMessage` requests (#34720)
- 5fbc5ab810 lsp: use correct `workspace.diagnostics` capability key (#35937)
- 00ad477419 lsp: use correct deprecation function (#34518)
- 6fe68abdf5 lsp: use entire line as completion word (#37949)
- 1d7823451e lsp: use vim.notify for all message types #34489
- f90cd620c5 lsp: vim.lsp.completion clean up triggers on client detach (#38009)
- 5c4b64aae5 lsp: wait for exit_timeout on quit #37597
- 6bb6b47933 lsp: wait to display exit message #37925
- 5554fcc286 lsp: warn on missing config in :checkhealth #33087
- 0cda018345 lsp/diagnostic: key resultId by client and identifier
- 7a5e9ef0aa lsp/diagnostic: use diagnostic provider identifier for code actions #38401
- f0c0c24ed7 lsp/health: always use vim.inspect to show root_markers (#34667)
- 5ad01184f3 lsp/health: ensure valid table before concatenating (#34092)
- 1906da52db lua: close vim.defer_fn() timer if vim.schedule() failed (#37647)
- 103ddaf9ae lua: correct line number reporting for options set in coroutines (#37463)
- b986fd96bc lua: coverity "unreachable" warning #35874
- 40f5115ac4 lua: disable `strict_indexing` when converting LSP positions
- 1264d1156c lua: don't leak timer when vim._watch.watch() fails (#35768)
- c08139d790 lua: don't remove first char of non-file stacktrace source (#37008)
- 9a5641b4b5 lua: drop support for boolean `buf` in `vim.keymap` #38432
- 66066d0f6a lua: extra CR (\r) in `nvim -l` output #38048
- b87bdef2a8 lua: relax `vim.wait()` timeout validation #36900
- 6a330f893b lua: report error in Lua Funcref callback properly (#35555)
- 1aa26f5d55 lua: separate vim.{g,b,w,t} types #37081
- 94144d4678 lua: vim._with() doesn't save boolean options properly (#37354)
- 89b946aa87 lua: vim.diff is nil in uv.new_work() thread #34909
- 40351bbbbe lua: vim.validate `message` param #33675
- bc0635a9fc lua: vim.wait(math.huge) fails #36885
- b3324be0d8 man.lua: :Man ignores section of gzipped manpage #38235
- 87bd16e470 man.lua: :Man slow/hangs if MANPAGER is set #36689
- 5333d6371b man.lua: E95 when piping to :Man #33068
- a8dd5c7e41 man.lua: noisy "ENOENT" error on Windows #33409
- 46220afef8 man.lua: show_toc condition may cause infinite loop #36979
- b8763cb215 man.lua: useless executability check #33438
- 84d3bbef23 map: use names like Map_key_value not Map_keyvalue
- 218ea9fff7 mappings: always include replace_keycodes in mapping dicts (#37272)
- 3341ab0776 marks: clamp conceal_lines corrected line number #33464
- 5773f0e994 marks: make jumpoptions=view work with 'smoothscroll' (#38339)
- 064ff74cdb marks: wrong display after inserting/deleting lines #33389
- 033f1123cd marks: wrong line('w$', win) with conceal_lines (#37047)
- 37c0efb21c marktree: fix edge case bug regarding changing intersections
- 2154d325d5 memfile: avoid potential crash on OOM (#37946)
- 5e470c7af5 menu: fix listing of submenus (#34315)
- 8f9278d7c2 menu: right-click menu fails with E335 when using V after i_ctrl-o #37349
- b47b0caba8 message: concatenate multi-chunk nvim_echo({err}) for exception message #38131
- 3d5ef97a98 message: no wait return for delayed exception error #35881
- 2de284e50b message: set replace_last for completion "scanning" messages #37967
- 3b85046ed5 messages: "list_cmd" kind for :command, :version (#34529)
- ac67098998 messages: "list_cmd" kind for mark commands #33874
- dc3a30cfbb messages: 'exrc' / secure messages
- 96e1acfa42 messages: add "list_cmd" kind to :colorscheme #37561
- 29f2cb89f0 messages: add append parameter to history entries (#34467)
- 8bdfd286e5 messages: adjust msg_show "empty" kind logic (#37427)
- 83037cf218 messages: allocate message history kind string #38292
- c85313bac7 messages: always assign msg_id to msg_show events #37671
- bf1d4e9793 messages: capture execute("messages") with ext_messages (#34342)
- 276860b538 messages: clear 'showmode' message after insert_expand #33607
- 1b2b715389 messages: disallow user-defined integer message-id #38359
- 81828e66b9 messages: emit empty msg_show event for :echo #38467
- 53aad276b6 messages: exclude "search hit BOTTOM" msg from history #36961
- 73157c994d messages: heap-buffer-overflow with shell command (#37855)
- 7a490d65c5 messages: increment message ID without ext_messages #37714
- 912388f517 messages: list_cmd kind for buffer line messages (#33855)
- d86d4bacc1 messages: make swapfile attention message part of prompt (#34414)
- 49c19a1fe3 messages: message not flushed at end of command #37904
- 7c43f8e433 messages: messages added to history missing from ext_messages "g<" #33907
- a81b059a45 messages: non-fast and append for "shell_*" kinds #38188
- 10a03e83e3 messages: only msg_clear for UPD_CLEAR #34688
- e876a739ee messages: recognize cmdline one_key/number prompt State (#34206)
- 96957d80c6 messages: reinstate 'showmode' message delay #37992
- e63346dfe9 messages: reset redirection message column at message start #38068
- a5f236291c messages: single event for multi-expr :echo (#34393)
- f1dcde6cba messages: single msg_show event for :global command #37728
- 986b92eb07 messages: single msg_show event for multiple :set options #33555
- 3898f34c5a messages: spurious newline with --headless + cmdheight=0 #38494
- 41336a3590 messages: swedish translation #37395
- 39c4e0f336 messages: unwanted ext_messages newlines for confirm() #38045
- 4260f73e13 messages: unwanted newlines with ext_messages #37733
- 98f5aa2564 messages: verbose message emitted without kind #33305
- 18fa61049a mouse: crash with click on win-separator in statusline (#33091)
- 7432781e71 mouse: do not fetch clipboard twice when pasting with middle button #33494
- 2f8fb4f28a mouse: mouseclick after conceal_lines is miscalculated #33451
- 32325a66ca move: adjust for concealed lines above topline after scrolling up (#33211)
- 6ce2877327 move: consume skipcol before revealing filler lines (#34143)
- 2069be281c mpack: boundary values for negative integer encoding #37255
- b8ee354f12 msgpack: flush incomplete big UI event before packing RPC event
- 7f2d5d6883 msgpack: use fixstr encoding for strings of length 20-31 #36737
- 41068c77aa normal: assertion failure with "gk" in narrow window (#37444)
- 911337eb3c normal: crash using :norm from vim.ui_attach shell message event #38283
- 4485e715fb options: deprecate 'gdefault', 'magic'
- c2136e3590 options: increase t_Co buffer size (#35859)
- 9910445125 options: make 'cdhome' take effect on any platform
- f4f1149292 options: vim.opt fails for 'fillchars' #37141
- 1f2883e879 outline: use 2-space indent instead of 1-space
- 3d37aa3116 pack: account for Git's "insteadOf" in `:checkhealth` #38393
- bac4cde9cd pack: actually checkout proper version of submodules
- b02d1303b8 pack: add trailing newline to lockfile #38469
- 46648c3867 pack: close confirmation buffer's tabpage by ID #34971
- 0f73873d4f pack: close confirmation buffer, not tabpage #37756
- ee3239fcb6 pack: consistently use "revision" instead of "state"
- f00abc6a56 pack: ensure `data` spec is passed in events during lockfile sync #38139
- d3bea4ace9 pack: ensure consistent order of changelog during update
- ed73ed8283 pack: ensure explicit default `version` in events (where possible)
- 14003bd1c5 pack: ensure plugin directory is created during first usage attempt
- 539b8027a3 pack: explicitly close confirmation window #37861
- fa3920282d pack: handle Git environment variables #35626
- 3b860653ca pack: handle lockfile in case of install errors #36064
- 3f34f083db pack: ignore 'loadplugins' when sourcing 'after/plugin' scripts
- 28e2a5c151 pack: improve `vim.pack.add()` input validation
- 89a72f11e5 pack: make newer version suggestions more robust
- 2e62f3576f pack: open confirmation buffer in tabpage after the current one
- e4e6605943 pack: relax minimal Git version to be 2.0 #36573
- f492f62c3d pack: rename confirmation buffer to again use `nvim-pack://` scheme
- 0fa96585dc pack: set `source` in progress report #38511
- 474e9e9408 pack: show more informative error message if no `git` executable
- 5468e6a452 pack: skip :redraw! if headless #37782
- 8f0b8a2c27 pack: skip `git stash` during install
- b337c6e0fc pack: update `add()` to have default `load=false` during startup
- 1ee18b4061 pack: use 'coxpcall.lua' on non-LuaJIT
- 8200223ee7 pack: use `vim.pack:` as message/progress prefix
- f3f5095630 pack: use full hashes in lockfile and revision description
- eff01b7620 pack: use more correct URI for confirmation buffer name
- 267bbe64cb pack: validate installed plugins in `update()` and `del()`
- a5d6932686 paste: don't use :echo immediately before :redraw (#35773)
- 42aae632be plines: count 'showbreak' in EOL inline virt_text in line size (#35921)
- 6291256868 process: avoid buffering unnecessary UI event with PTY CWD (#37582)
- 19a3b67789 process: avoid unexpected behavior when PTY chdir failed (#37614)
- e051718908 process: don't limit PTY master remaining data size
- 97509aa2be process: handle poll() interrupted by a signal (#38024)
- 8a4719e117 process: use poll() to drain PTY master on Linux (#38005)
- 974bc1b044 process: wrong exit code for SIGHUP on Windows (#38242)
- e5ba875a95 progress: memory leak on progress-message with history=false
- 2415d8f424 progress: message-id not sent to ui with history set to false
- 7bf83cc2a6 progress: require "source" for progress-message #38514
- 0af01948f3 progress: show progress-status only in curwin #38458
- bc6737250d progress: simplify ui-event, introduce default presentation #35527
- 25000be845 prompt: "%" prefix repeated on newlines with formatoptions+=r #34584
- ed4c549ea2 prompt: also store column info in ': mark #36194
- a5eb023a53 prompt: clear undo when changing/appending prompt
- 807a65b2da prompt: cursor on prompt line, disallow ":edit" #34736
- 689a149b08 prompt: don't implicitly set 'modified' #38118
- dbb3986f33 prompt: ensure prompt-mark col gets reseted properly #37669
- 1349233cd1 prompt: heap-buffer-overflow in prompt_setprompt
- 4afbc25432 prompt: heap-buffer-overflows with invalid ': col
- bf9d3e4bf8 prompt: lnum update via nvim_buf_set_lines if buf != curbuf #34833
- b3096b5860 prompt: ml_get error with invalid ': lnum
- ed7ff848a0 prompt: prompt mark not placed after text edits correctly #34671
- 602cbbe1d9 prompt: prompt_setprompt cursor col adjustment
- 3a10405214 prompt: prompt_setprompt does not adjust extmarks, no on_bytes
- 2a5d687cc9 prompt: prompt_setprompt sets cursor col unnecessarily
- 16bf7652b7 prompt: prompt_setprompt with unloaded buffer, ': with lnum 0
- 51dc752e6c prompt: wrong changed lnum in init_prompt
- 7641177c5f prompt: wrong cursor col after prompt_setprompt, no on_lines
- 466b2ac192 prompt: wrong cursor position with cursor keys (#36196)
- acb99b8a65 prompt_buffer: plugins can't set `':` mark #35624
- b4906577c9 provider: misleading :checkhealth if user sets g:loaded_python3_provider=1 #32696
- 51aa64488d provider: support python3.14 #38419
- 7be4e4dd65 pty: prevent orphan conhost.exe on Windows 10 #38244
- ef0386fe9a pum: adjust info window column offset when scrollbar is present (#37069)
- 76fdd9b882 pum: crash when resizing grid with pumborder set (#36404)
- 2681e1fce3 pum: fix heap-buffer-overflow with 'rightleft' (#33146)
- 7d569abb20 pum: handle RightDrag on parent grid properly (#33626)
- 922816877f pum: hide info floating window when insufficient space (#37107)
- d87972f920 pum: keep info window aligned with pum when above #38251
- 445cb751e6 pum: pumborder=shadow not blending properly (#37328)
- 0712a9c87b pum: separate scrollbar from shadow border (#37448)
- 686e7aca40 pum: simplify 'pummaxwidth' truncation and avoid crash
- 5a65321684 pum: text overflows into border on truncation (#37438)
- 106cacc93b pumblend: do not apply special highlight attrs from bg layer #36186
- c80bb5b63e pumborder: wrong layout with pumborder=none #36208
- 6256adde2f quickfix: always split from current window #33807
- 69c379dc44 quickfix: use correct lnume when appending (#34611)
- 7ed8e96994 redraw: update curswant for Visual selection (#34241)
- a141fd2c4d remote: remote-ui connect timeout on slow networks #36800
- 39d8aa0a1a rpc: don't overwrite already received results on error (#37339)
- abd0c882b3 rpc: handle more cases when identifying loopback #36100
- e142e01d57 rpc: include write failure reason in log (#37959)
- db2b774a16 runtime: 'includeexpr' with non-Nvim-style Lua modules #33867
- 9076fdc123 runtime: add "Added", "Changed", "Removed" to "vim" colorscheme (#35704)
- f048298e9a runtime: conceal paths in help, man ToC loclist #33764
- 09f9d72c24 runtime: coverity STRING_NULL #569464 (#34795)
- 923efaea28 runtime: cpoptions is reset in Lua file #33671
- 76f6868e0a runtime: no conceal in qf on :lopen #34854
- 59c45b22d9 runtime: remove erroneously added syntax tests
- 39bb5d7ca2 runtime: stop treesitter highlight in b:undo_ftplugin #38459
- c4c2112b5d runtimepath: crash in :packadd splice optimization #38129
- d995142dbd scripts: collect_typos.lua: show commit message on failure
- 9f90992934 scripts: gen_terminfo clears Windows terminfo definitions #36736
- 130ef73e39 scripts: release.sh
- d04cbb65b9 scripts: use right syntax for choosing ref in "zig fetch"
- 7a71235399 server: serverlist({peer=true}) does not find peer servers #35506
- fc21433167 session: spacebar heater not warm enough #38434
- 2d3dc070ce session: window sizes not stored with float windows (#37344)
- 0dcdd65dcc shada: check return value is 0
- 36dbd2686f shada: don't add '0' mark if f0 in 'shada'
- 1f503ac7c0 shada: don't store empty replacement string
- a6591950f6 shada: don't store search and sub patterns if /0 in 'shada'
- 198c9e9bca shada: preserve marks after delete across sessions (#35795)
- b98eefd803 shada: prevent 'nobuflisted' buffers in v:oldfiles #34373
- 6bee2f686f shada: prevent use-after-free when mapping file marks (#34446)
- 5581a53437 shell: ceci n'est pas une pipe
- 6f904cfef1 snippet: adjacent tabstops without placeholders (#35167)
- ecded994c1 snippet: early return for final tabstop #35115
- 628d569a59 snippet: jumping backwards to choice node (#35062)
- dff78f580d snippet: setting end_right_gravity (#35061)
- 1968029003 snippet: sync tabstop text also if pmenu is visible (#35250)
- 019b2050e1 snippet: use <cmd>call cursor() for visual range
- d077a24f5c socket: avoid stack-use-after-return after timeout (#36405)
- bfe9fa0f8e socket: remove stale socket files (#37378)
- 44f1dbee0d spell: save spell files to stdpath('data')/site/spell #33528
- 9436e7c978 spell: wrong VimEnter autocommands (#36339)
- 0f64f0f5b6 startup: crash in read_stdin #35699
- 30dae87de4 startup: file buf is lost if stdin is empty and "-" is last #35402
- c8c78b531b startup: make startup windows if there are only floating windows (#34349)
- 5c51b45a82 startup: respect $NVIM_APPNAME in $XDG_CONFIG_DIRS paths
- c785d5cdf0 startup: source init.lua from XDG_CONFIG_DIRS
- 5cbb9d613b startup: wait for bg detection before user config #37075
- 32d3dd0650 statusline: broken statusline on error #38000
- c3a4d12529 statusline: check buf valid before redraw #35123
- 8305af9bd2 statusline: clear ruler when it is no longer drawn #33765
- ad330e99d1 statusline: diagnostics spacing #36897
- 1af5ec5b51 statusline: don't require'vim.diagnostic' unless already used
- 0ca9849387 statusline: missing info/hint diagnostics #38307
- af0f7b59b1 statusline: redraw if Visual selection other end changes (#36281)
- e9b6474ae7 statusline: scope truncation bookkeeping
- 63ece2b151 swapfile: don't use uninitialized memory (#35813)
- cbfa7f0d7b swapfile: handle newlines in swapfile list message #35802
- 8b9500c886 system: don't treat NUL at start as no input (#34167)
- 6e2b514813 system: handle SIGINT in --headless mode #36557
- d6d1bfd20d term: terminal attr index may exceed TERM_ATTRS_MAX #34318
- 3e6db5b2ec termdebug: use mark `:` to get prompt line in prompt buffer #37336
- 295fb3fdb2 terminal: :edit should respect 'bufhidden' with exited job (#37301)
- 196df35cca terminal: <Ignore> should be no-op (#37494)
- ad1dfc92a0 terminal: add various missing redraws
- 520568f40f terminal: adjust marks when deleting scrollback lines (#36294)
- 379e307148 terminal: also don't propagate $COLORTERM on Windows (#37699)
- 1519a34e43 terminal: autocmds leave terminal open to wiped buffer
- 61217e3618 terminal: avoid events messing up topline of focused terminal
- 366251a5d2 terminal: avoid multiple terminals writing to same buffer (#37219)
- 5e521c3b5a terminal: avoid tailed cursor in focused terminal in events
- 16da47f474 terminal: changing height may lead to wrong scrollback (#37824)
- 747da13f44 terminal: check `buf` before deleting extmark #38314
- d07cbb2f42 terminal: check size when creating new tabpage
- e56292071a terminal: check size when switching buffers
- f3feae0bbf terminal: crash after deleting buffer lines (#37921)
- 7297e9d339 terminal: crash when TermClose deletes other buffers
- ad85871ca1 terminal: crash when TermClose switches back to terminal buffer
- b67ac8cc6b terminal: crash with race between buffer close and OSC 2 (#37225)
- 459cffc55f terminal: deleting from wrong buffer (#36289)
- b4039ec0b0 terminal: don't allow b:term_title watcher to delete buffer
- 3cd07709ba terminal: don't always leave if enter autocmds delete buffer #38324
- 6a71239cd5 terminal: don't disable scrolloff for non-terminal buffers (#34451)
- 7d6b6b2d14 terminal: don't poll for output during scrollback refresh (#38365)
- 875958c9a1 terminal: don't refresh for sync flush when exiting (#38363)
- 6a409e0507 terminal: don't trigger TextChangedT for unrelated redraws
- ee143aaf65 terminal: emit Termrequest for all OSC sequences #33181
- b5aef05b8f terminal: fix OSC 8 parsing (#34424)
- a2f01953b8 terminal: free the "[Process exited]" msg extmark #38246
- e254688016 terminal: handle ED 3 (clear scrollback) properly (#21412)
- 40bf38fefc terminal: handle OSC 8 split into multiple fragments
- f6ca9262b8 terminal: handle closing terminal with pending TermRequest (#37227)
- e6fae64454 terminal: handle opening terminal on unloaded buffer (#37894)
- 814f2629cb terminal: handle split composing chars at right edge (#37694)
- 1c57e4cb4f terminal: heap UAF from autocmds when entering #38316
- b40880f88f terminal: heap UAF if buffer deleted during TermRequest (#37612)
- 3621af9b97 terminal: inconsistent mode change when switching buffer (#37215)
- 4ef7aa83c4 terminal: keep last cursor if it's on the last row
- df21ac729c terminal: losing output if BufFile* poll for events (#37580)
- b6befc7b03 terminal: losing scrollback when TermOpen polls for events (#37573)
- 9cbc430cfb terminal: missing refresh with partial mappings (#37839)
- c845f1923d terminal: patch various autocommand-related holes
- 9540e7470b terminal: possible heap-use-after-free during Nvim exit
- 72ac9ac9a1 terminal: possible memory leak on exit (#37532)
- 238d4fa71a terminal: possible missing refresh with buffer updates (#38388)
- e6ba78919c terminal: possibly wrong wrow/wcol in active terminal
- 99e754ae02 terminal: remove condition that buf is curbuf (#33721)
- ba6440c106 terminal: reset `w_leftcol` after resizing terminal
- 25ce44845d terminal: restore options properly when switching buffer (#37485)
- 1a1a60bd05 terminal: resuming doesn't work with command in fish (#37857)
- cc7022c544 terminal: scrollback may still be wrong on height increase (#37835)
- 1b627f6c59 terminal: set b_locked when setting &buftype (#37787)
- b28bbee539 terminal: skip setting `string_initial` to false on no-op (#34176)
- 4f6b3e5c15 terminal: spurious buffer update with empty buf (#37920)
- 756751afa3 terminal: stack overflow when too many csi args (#34012)
- 5c156fdc64 terminal: update size after closing window
- b7124ae768 terminal: update winopts and focus when switching terminals
- b88b7f9591 terminal: wrong colors with nvim_open_term() in non-curbuf (#37579)
- 67832710a5 terminal: wrong row in TermRequest with full scrollback (#36298)
- 97d9b85bf9 terminal: wrong scrollback with BufFile* autocommand (#37601)
- 54468c1c3c terminal: wrong scrollback with nvim_open_term() on buffer (#37791)
- 8707ec2644 termkey: out-of-bounds write in array #33868
- 272e041780 tests: don't surpress stderr output
- e702f97518 tests: ignore vector math types
- 2d4b028d02 tests: use correct include path for unittest
- d84e786112 tests: use correct signature for unpacker_teardown()
- c81af9428c tests: use uv.spawn instead of io.popen for unittest helpers
- 61f166ec40 textformat: don't swallow "space" with auto-formatting enabled (#38181)
- e5c2ce5905 treesitter: ":EditQuery [lang]" with injected languages #34914
- 08f4811061 treesitter: :InspectTree wrong title for non-relative path #37965
- 16aab4cb48 treesitter: InspectTree only show the largest injection #37906
- 60af1a1db2 treesitter: clear parse options state #33437
- 5a2edc483d treesitter: close `:InspectTree` with `q`
- b4016f4525 treesitter: don't add final newline if not present #35970
- 28eaec5e15 treesitter: don't memoize modified headings (#33186)
- 8d75910ef9 treesitter: eliminate flicker for single windows #33842
- 5fe582448c treesitter: enable a gc for wasmtime
- 168bf0024e treesitter: ensure TSLuaTree is always immutable
- 99e6294819 treesitter: ensure TSNode's tree is immutable
- 58d85cd03d treesitter: ensure window is valid in async parsing #34385
- d8e03d5d5a treesitter: escape hyphen in lua pattern
- 284b0e4fa2 treesitter: fix `:InspectTree` incorrect injections
- 86c939ba91 treesitter: fix spell navigation on first line (#37361)
- d0822bbd15 treesitter: highlight group for EditQuery captures #36265
- ea878f456a treesitter: ignore stale fold refresh callbacks
- 18e0301e1f treesitter: inconsistent highlight of multiline combined injection #32619
- 0977f70f4d treesitter: injected lang ranges may cross capture boundaries #32549
- 2aa7948266 treesitter: invalidate conceal_lines cache earlier #33875
- 9274532615 treesitter: invalidate conceal_lines marks #33828
- 4e2ed1d03c treesitter: missing `nowait` for :InspectTree keymaps #36804
- 63737e6e73 treesitter: no injection highlighting on last line #36951
- 01817eb6f3 treesitter: normalize language aliases
- cf59631f65 treesitter: not refreshing virtualtext contents #33361
- f82219c490 treesitter: parser metadata annotations
- de45b8e275 treesitter: proper tree `contains()` logic with combined injections
- baabc35987 treesitter: properly clip nested injections
- f2bfde9140 treesitter: reset next_col when performing intermediate highlights
- 3ec63cdab8 treesitter: run FileType autocmds in the context of `<abuf>`
- faae1e72a2 treesitter: scope highlight state per window #34347
- 3eab5bd38a treesitter: set local values of window options
- 29c5559ce1 treesitter: show capture-level priorities in :Inspect #35443
- 8b41df185c treesitter: support multiple `@injection.content` captures
- f8ac713448 treesitter: use metadata in :EditQuery captures #37116
- 5119c03be7 treesitter: use subpriorities for tree ordering
- 756e1eb017 treesitter.foldexpr: duplicate callbacks #37048
- b15b22fc73 trust: :trust command on Windows #36509
- 272dba7f07 trust: support for trusting directories #33617
- 03eb331abf tui: CSI is not ESC (sync mode)
- fb5a51e775 tui: avoid memory leak and compiler warning on Windows (#34225)
- 1949452bd3 tui: avoid using uv_pipe_t as uv_tty_t (#37479)
- 5048d9aa2a tui: call tcdrain() on stdout and stderr on exit (#38154)
- e65c0a0810 tui: check for title support correctly (#34866)
- 17e13ce3b6 tui: clear primary device callback before invoking it (#34032)
- 218ff601c4 tui: do not emit resize screen sequence after host terminal is resized (#35335)
- b1679f0ab6 tui: do not remove SIGWINCH handler when resize events are enabled (#35221)
- 69bddc089f tui: don't call tinput_init() twice (#36386)
- 331de6afa6 tui: don't crash when nvim__screenshot() is called with bad path (#34594)
- c35dde03c8 tui: don't process UI events when suspending or stopping (#33710)
- df23952ce9 tui: don't treat remote TUI as GUI (#36319)
- adbd33027f tui: don't try to add unsupported modifiers (#33799)
- 4a69847df4 tui: don't wait for DA1 response when stdin is closed (#35745)
- d62bbe24cb tui: enable vtpcon strikethrough feature #36762
- 82f08f33c1 tui: ensure all pending escape sequences are processed before exiting #32151
- 142f914089 tui: feature detect vsplit scrolling in xterm-like terminals
- 4b5364b423 tui: forward C0 control codes literally (#33759)
- f64475a226 tui: handle sequence larger than entire buffer
- 50a38d9698 tui: heap-use-after-free when resuming (#36387)
- 1f0dbfea2f tui: log chdir failure properly #37591
- bb6f5c3b31 tui: reset cursor style on exit (#36261)
- 5b5b7eb8d4 tui: reset cursor to default style when guicursor is disabled #38219
- 16680e57ba tui: use 0x7f as Backspace on Windows with VT input (#37679)
- 460738e02d tui: use the correct offset for invisible cursor after sync
- 2dba5abcb2 tui: wait for embedded server's exit code
- b80d390765 tui: wrong default input key encoding (#36440)
- bff7d3fd9f tutor: cannot find tutors in pack/*/start/* #34689
- 4143bcbd37 tutor: escape tutor filename #36539
- e5665754d1 tutor: l:lang is undefined
- f2691199fa tutor: use invalidate field in nvim_buf_set_extmark() #34989
- db1542af3d tutor: use legacy syntax for lesson 3.1 #34996
- 9988d7142d types: add missing @return annotations
- ef48104c31 types: nvim_get_win_config return type #35639
- 1427b94200 typval: allocated dynamic size must be at least the static size
- 072f126453 ui: 'pumborder' parsing, shadow #36127
- 027b7d6bbb ui: :intro not displayed with ui2 #37472
- 531442ddd8 ui: apply 'pumborder' to mouse menu, fix overflow #36193
- 5f9f706462 ui: check for cmdline mode properly (#35202)
- 8aec33e322 ui: clear msg_ruler event with 'rulerformat' #37675
- a8a0bba2f8 ui: close outdated cmdline pum on redraw (#36815)
- a33e5fb1bb ui: cmdline_block events for exmode #37751
- 8d6963a6a0 ui: cmdline_show is not fired after clearing the screen (#36451)
- f02484118c ui: correct condition for "wrap" flag in a floating grid
- 7ca3a56258 ui: don't crash if maximum UI count reached (#37636)
- ad438b6b14 ui: exclude hidden windows from tabline window count #36779
- d01b2611a6 ui: exclude unfocusable windows from 'complete' "w" completion
- c1648cf820 ui: forward 'rulerformat' to msg_ruler event #35707
- d909de2dc2 ui: ignore textlock for vim.ui_attach() callbacks #36278
- 1a3d3b77bb ui: no empty message for substitution match with ext_messages #37600
- d30d91f3a4 ui: only internal messages are unsafe #37462
- 3277dc3b4e ui: postpone UI callbacks during textlock #36803
- 7b8deacc3f ui: preview float doesn't respond to mouse scroll #38270
- 61b6553ee9 ui: proper event ordering for nested cmdline_block events (#35344)
- 506dd7252a ui: remember cursor shape when obscured #37704
- 6657cc3671 ui: repaint separator connectors after all window updates #37852
- 424d30fe97 ui: send multigrid message position and size when the UI is refreshed
- 1d57374c41 ui: textlock still causes issues for UI callbacks #37513
- 703f4037c4 ui: wincmd _ should not increase 'cmdheight' above 0 (#33056)
- c87d92c3b4 ui.open: use "start" instead of deprecated "rundll32" #36731
- ae2829ee35 ui2: ENTER may focus pager in insert/terminal mode #38497
- e198037148 ui2: always route to dialog when cmdline is open #37730
- 8c7bbfba3d ui2: callbacks reference stale message-window handles #37673
- 9655bd560f ui2: don't adjust dialog pos for pum wildmenu (#37695)
- 29a46a11aa ui2: don't change configured message target implicitly #37924
- d8cea8d45d ui2: don't scroll beyond eob in dialog window #36116
- b9451dfd4c ui2: emit FileType event after setting default pager options #36315
- b6c020eb59 ui2: ensure expanded cmdline is closed after :<Esc> (#38187)
- ba6fc90b6f ui2: hide search highlights in msg window #36626
- 6275f533d1 ui2: immediately open target windows on new tabpage (#38170)
- 179e7fccd7 ui2: incomplete :echon message in g< pager #37819
- 4ef217e272 ui2: leftover empty lines in msg window #38059
- dff3028fe7 ui2: move windows to current tabpage
- 844caca881 ui2: multiline/color replaced message, expanded cmdline, error messages #38044
- d80d7a3eb4 ui2: no paging in dialog below expanded cmdline #38489
- 72a557c61b ui2: only copy highlight marks when expanding cmdline #37709
- 301c7065ca ui2: only highlight Ex command lines in the cmdline #38182
- c4ac36bfd9 ui2: only redraw when necessary #36457
- 16495e6863 ui2: only set dialog on_key callback once #37905
- b2adfe775d ui2: show messages in dialog window when entering expanded cmdline #38465
- c94b7b93c0 ui2: start treesitter after deleting cmdline buffer (#36274)
- ea70d2ad85 ui2: unset Search highlighting (#36633)
- 52dd62aa6e ui2: use pager to list consecutively typed commands #38272
- 3038f0191e ui2: wildmenu hidden behind dialog window #37684
- e58a842749 ui2: wrong condition used to detect active pager
- ce9dbd398b undo: u_savecommon uses wrong buffer
- 382963891c undotree: check foldmethod before invoking fold (#36192)
- f40672be99 undotree: clear autocmd correctly #36124
- 645206e87f undotree: error on `undotree.open()` with title as string #36085
- 26bd9bfab8 undotree: highlight extmarks like normal text #36087
- 4598305e0b undotree: mark title field annotation as optional (#36102)
- 9c89212de1 undotree: sync scroll pos with undo #36117
- af5ac7c7ea unittests: use -1ULL to mean UNSIGNED MATH.MAX
- c82f83abb0 ux: drop "Sorry" from messages #38318
- d93e150888 vim-patch: add N/A files and re-sort (#37544)
- d2517acdc5 vim-patch.sh: 'vim-patch:<hash>' token for 'non-patch' commits #36534
- 8bce9342d1 vim-patch.sh: don't treat 1-file runtime-only patch as N/A (#36525)
- 533cc0ab35 vim.diagnostic: improve typing
- 1f9d9cb2e5 vim.fs: abspath(".") returns "/…/." #36583
- 825e182139 vim.fs: avoid fn.fnamemodify in fs.root #37162
- dc5d313d66 vim.fs: joinpath() should ignore empty items #38077
- 14c708634e vim.fs: make `rm()` work with symlink to a directory
- f11f8546e7 vim.fs: root() should always return absolute path #36466
- 28e8190185 vim.hl: nvim_buf_del_extmark on invalid buffer #33331
- da650de277 vim.json: fix truncation of decoded numbers outside lua_Integer's range #35702
- 7a69fefdb9 vim.json: loss of precision on integers >14 digits #34876
- 78bbe53f76 vim.loader: randomized AppImage path pollutes luac cache #35636
- 1363ef7d50 vim.loader: randomized AppImage path pollutes luac cache #36944
- 1fb0126a08 vim.lsp.enable: don't eagerly enable LSP configs during startup #33762
- 49756ebc70 vim.lsp.inlay_hint: requesting inlay_hints even when disabled #32999
- 10ca09a2cb vim.net: always pass response body to on_response #38460
- 69b286c3bf vim.net: filetype detection, mark unmodified #36297
- 12689c73d8 vim.pack: add() stops unexpectedly on package load error #34787
- 89d26d61d2 vim.pack: increase default timeout #36992
- 8e740db70c vim.pack: skip checkout on bad `version` #36038
- 731e616a79 vim.system: clear_env=true gives an invalid env to uv.spawn #33955
- 4eebc46930 vim.system: env=nil passes env=nil to uv.spawn
- 532610388b vim.system: improve error message when cwd does not exist
- 223ac7782e vim.system: unclear non-executable message #33455
- 649ff924d9 vim.version: improve construction of '<=a.b.c' and '>a.b.c' ranges
- 092962b07c vim.version: vim.VersionRange:has(<prerelease>) (#33324)
- e40c5cb06d vterm: handle split UTF-8 after ASCII properly (#37721)
- d9d8c660fd watch: invalid joined path #37973
- bc814cfb2c winblend: treat braille blank (\u2800) as whitespace #32741
- de950f8272 window: avoid referencing cmdline_win after it is closed #35617
- c14de47f1a window: crash closing only non-float if autocmds :tabonly (#37218)
- df62cb3e69 window: crash closing split if autocmds close other splits (#37233)
- 0e7479bb76 window: crash on negative window height with 'winbar' #33250
- 4fadc21e38 window: disallow closing autocmd window in other tabpage
- bf5f7c1591 window: don't add a hsep when out of room if global stl is off
- 0d658660c2 window: don't enter unfocusable or hidden prevwin (#34486)
- b4e3461e3f window: don't leak fold memory with style=minimal #38287
- c7fd0c17b1 window: don't make hidden/unfocusable previous window current #36142
- 7f5b5d34cf window: don't store invalid height in window config (#34885)
- 3a36df9b13 window: handle closing the only non-float in other tabpage
- 9813c00dd3 window: restore b_nwindows if win_close_othertab keeps window
- 403fcacfc1 window: skip unfocusable and hidden floats with "{count}<C-W>w" #33810
- 84d84e9b5b window: style=minimal window loses local options when switching buffers #38138
- da8de99d0b window: use real last buffer of closed window
- d1189ea508 window: win_move_after UAF from naughty autocmds (#37065)
- 52991d8728 windows: don't set window icon on SIGHUP #34260
- 2c04ae9fcc windows: wrong RT_MANIFEST ID in nvim.rc #36406
- 3325536150 winfloat: last_status when changing split to floatwin

PERFORMANCE
--------------------------------------------------------------------------------
- 5edbabdbec add on_range in treesitter highlighting
- f9ce939bf5 scheduler priority clamping on macOS #35488
- 14e94f4617 api: reduce redundant `win_find_tabpage` calls (#35643)
- 4adfc4b7bc events: skip Progress prep if there are no subscribers #35871
- bfe42c84de extui: delay creating windows, buffers and parser (#34665)
- babdab2f70 filetype: vim.filetype.get_option cache miss when option value is false #37593
- f9d2115a35 highlight: allow decoration providers to skip ranges without data
- 1629493f72 lsp: avoid textDocument/definition requests during tag completion (#37260)
- f486f1742e lsp: include `previousResultId` in `DocumentDiagnosticParams` #32887
- 42657e70b8 lsp: optimize content length extraction from rpc headers
- f517fcd148 lsp: use string.buffer for rpc loop
- 92e7d5eaf2 pack: reduce number of 'opt/' directory computations
- 3aa04f7ee4 runtime: hardware accelerated "packadd opt_package"
- 5e64d92411 runtime: vim.trim for long only whitespace strings
- d3e495ce03 snippet: use "[count]|" to move cursor #33571
- 098da1fc2c treesitter: parse multiple ranges in languagetree, eliminate flickering #36503
- e656d7be2e tui: faster implementation of terminfo

BUILD
--------------------------------------------------------------------------------
- 4f97239661 USE_BUNDLED_UNIBILIUM=0 fails #36623
- fb2d736481 add script to collect typo PRs (#35824)
- 813457d5a6 adjust parallel functionaltest target names (#38144)
- 8e922c657c allow comments in deps.txt #35765
- 3f416ef524 bump lua-bitop to 1.0.3 #35063
- 374e869504 distclean: remove zig-related dirs #38013
- d589ce28b0 drop BUNDLED_CMAKE_FLAG, BUNDLED_LUA_CMAKE_FLAG
- 0ddba68607 ensure toolchain is passed to bundled deps #37587
- 10c11c4644 haiku os support #36639
- 8a7c9c971f ignore out-of-source build folder #33191
- 8c5bd841ed lint decorations_spec etc. with lintlua (#34182)
- 6b936002cc make build.zig generate helptags without running "nvim" binary
- 1d70c96e5b move shared.lua to _core/
- f51c54ace6 noisy readability-implicit-bool-conversion warning #38282
- a053186aa7 redundant variable in cmake/Deps.cmake #35924
- 6063ecb649 remove reference to runtime/indent/Makefile (#35935)
- 20e77c5d88 ship "_core/*" as bytecode (built-into Nvim binary)
- 1bf9a07b3e slience new clang-tidy warnings #34539
- 845cb5a527 slience some unwanted clang-tidy warnings
- c567340171 support Cygwin + bundled luajit #36417
- e91224bfaa support static build #34728
- 20225fc330 suppress -Wfree-nonheap-object false positives in lua_cjson #37250
- 092e49d020 unset $TMUX when running tests (#34178)
- 3dbba90ba7 update-alternatives during deb install #37980
- 19ba589946 contrib: add bash completion for nvim #35843
- 4b2cbc2154 desktop: declare "Development" category #37794
- d73f2d9657 emmyrc.json: use StyLua formatter in .emmyrc.json #35196
- 0980617c0d msvc: suppress msvc build warning for different enum types (#34591)
- ceb7eb5230 windows: restore tee.exe on Windows #36363
- 5bb8734fb6 windows: vendor xxd.c #36746

VIM PATCHES
--------------------------------------------------------------------------------
- e27e4052c8 2566a9f: check.vim: Improve po message checks
- 5e6f0e58ed 32a5faa: check.vim complains about overlong comment lines
- cae4fbf973 3456303: check.vim: Use silent command modifier
- 5f86b4b70d 4105ef1: Drop superfluous execute permissions for readable files
- 282a794feb 41adebe: check.vim: detect trailing whitespace
- fc4188ded8 6f585da: Overlong translation files may cause repo to become "dirty"
- c2e0fd1c35 7.4.1886 (#36945)
- 8a4977e286 7a734b7: tests: fix typo in comment (after v9.1.1511)
- 5299967551 8.0.0287: debug mode: cannot access function arguments (#36772)
- c6f0a19206 8.1.0425: ml_get error and crash with appendbufline()
- 5a14a2679d 8.1.0579: cannot attach properties to text
- 36fc266e86 8.1.0636: line2byte() gives wrong values with text properties
- b5e20d7dff 8.1.0654: when deleting a line text property flags are not adjusted
- 76729a2044 8.1.0655: when appending a line text property flags are not added
- ef522420f2 8.1.0753: printf format not checked for semsg() (#37248)
- 441d222c0d 8.1.0857: indent functionality is not separated
- 1e81b54075 8.1.0977: blob not tested with Ruby
- 0c0ef489f9 8.1.1136: decoding of mouse click escape sequence is not tested (#35551)
- b3d29f396d 8.1.1259: crash when exiting early (#35552)
- 00c2e7d89c 8.1.1526: no numerical value for the patchlevel
- 4765d4e059 8.1.1584: the evalfunc.c file is getting too big
- 83f38800e7 8.1.1681: insert stray "{" when listener gets buffer line
- c9b35360ac 8.1.1700: listener callback called for the wrong buffer
- 750c350be8 8.1.1711: listener callback called at the wrong moment
- b79ed66e4a 8.1.1736: viminfo support is spread out
- 89e2f346a8 8.1.1751: when redrawing popups plines_win() may be called often
- 582e0714b5 8.1.1752: resizing hashtable is inefficient (#35563)
- 85bd0b6a03 8.1.1891: functions used in one file are global
- f7c86742e7 8.1.1920: cannot always close a popup when filter consumes all events
- b38ce04283 8.1.1939: code for handling v: variables in generic eval file (#36312)
- 681ec17b50 8.1.1940: script tests fail
- 4aac5908ed 8.1.1957: more code can be moved to evalvars.c
- f89e1eb036 8.1.1964: crash when using nested map() and filter() (#35715)
- ed0f46af62 8.1.1978: the eval.c file is too big
- 183f8cc59d 8.1.1979: code for handling file names is spread out (#36176)
- 3051e8bbb1 8.1.1981: the evalfunc.c file is too big
- d06fdecb97 8.1.2008: error for invalid range when using listener and undo
- 860a7e4d21 8.1.2021: some global functions can be local to the file
- 406f9e3c8c 8.1.2077: the ops.c file is too big
- fadbc0e717 8.1.2127: the indent.c file is a bit big
- 5f3d00a5a6 8.1.2371: FEAT_TEXT_PROP is a confusing name (#35466)
- c81f7aeee2 8.2.0098: exe stack length can be wrong without being detected (#37136)
- 7048c36ba8 8.2.0115: byte2line() does not work correctly with text properties
- 0c24ddb4d8 8.2.0200: Vim9 script commands not sufficiently tested
- 3fc3f5f194 8.2.0223: some instructions not yet tested
- d632ffa243 8.2.0307: Python 3 vim.eval not well tested
- 992eaac082 8.2.0370: the typebuf_was_filled flag is sometimes not reset (#37404)
- f3cfe9a94b 8.2.0371: crash with combination of terminal popup and autocmd (#37433)
- f2df98e849 8.2.0443: clipboard code is spread out #35949
- 758e6db06c 8.2.0512: Vim9: no optional arguments in func type
- ed012b817d 8.2.0844: text properties crossing lines not handled correctly
- 088ba835ed 8.2.0845: text properties crossing lines not handled correctly (#35483)
- dc2d4b07a8 8.2.0853: ml_delete() often called with FALSE argument
- 474c477134 8.2.1123: Python 3 test is old style
- b95413f601 8.2.1555: not all tests are executed on Github Actions
- d65f5a06fe 8.2.1618: Vim9: cannot pass "true" to setloclist()
- ffb4526376 8.2.1667: local function name cannot shadow a global function name
- 865a28155e 8.2.1672: v_lock is used when it is not initialized (#35416)
- 8d3742ae8d 8.2.1679: ":*" is not recognized as a range (#37052)
- b95848a8f1 8.2.1756: Vim9: :let will soon be disallowed (#37063)
- 7ae8860674 8.2.1912: with Python 3.9 some tests fail
- d6607dae41 8.2.1939: invalid memory access in Ex mode with global command
- 1b1a8895bd 8.2.1941: Ex mode test fails on MS-Windows with GUI
- 3694fcec28 8.2.1983: ml_get error when using <Cmd> to open a terminal (#34759)
- ff8edbaa6c 8.2.2198: ml_get error when resizing window and using text property
- b3490536b9 8.2.2403: Vim9: profiling if/elseif/endif not correct
- 1ae7c11392 8.2.2404: Vim9: profiling try/catch not correct
- ffdee3a2e1 8.2.2409: Vim9: profiling only works for one function
- 8b79c32735 8.2.2411: profile test fails on MS-Windows
- b764a1ba93 8.2.2423: missing error message
- 7995e7a89b 8.2.2456: Coverity warning for strcpy() into fixed size array
- dccc35e6e9 8.2.2571: test may leave file behind
- d7cf1b31d5 8.2.2834: Vim9: :cexpr does not work with local variables
- 9a5b3a39f3 8.2.2905: no error when defaults.vim cannot be loaded
- 525c348c29 8.2.2992: Vim9: completion for :disassemble is incomplete
- b480b0cd5d 8.2.3159: cursor displayed in wrong position after deleting line
- e77d15cc5d 8.2.3348: line2byte() returns wrong value after adding textprop
- cd25ca5e0c 8.2.3377: Vim9: :disass completion does not understand "s:"
- 4f71d9ce35 8.2.3383: Vim9: completion for :disassemble adds parenthesis
- e0dcdef181 8.2.3431: completion for :disas sorts local functions first
- cba2f65ee4 8.2.3602: Python3 test fails with Python 3.10 on MS-Windows
- 398cf6d8d3 8.2.3657: Vim9: debug text misses one line of return statement
- a331d187ba 8.2.3662: illegal memory access if malloc() fails (#36939)
- 9f84e01dfb 8.2.3673: crash when allocating signal stack fails
- f15c28ed7a 8.2.3766: converting a funcref to a string leaves out "g:"
- a274bdf2d1 8.2.3767: crash when using NULL partial
- 15d3a83999 8.2.3795: too many #ifdefs
- 992543c361 8.2.3841: Vim9: outdated TODO items, disabled tests that work (#37900)
- f211af3ab7 8.2.3962: build fails for missing error message
- 24675ffa97 8.2.3968: build failure
- 09964b7ef0 8.2.4379: an empty change is reported to a listener
- 08eb133c3f 8.2.4474: memory allocation failures not tested in quickfix code
- ce05990823 8.2.4528: crash when using null_function for a partial
- 7ce17cd2a2 8.2.4529: Vim9: comparing partial with function fails
- 2ba44af7e0 8.2.4548: script-local function is deleted when used in a funcref
- 0c70fbf0d6 8.2.4633: Visual range does not work before command modifiers
- 78292dcc3d 8.2.4636: not using Visual range
- 0fa678c02f 8.2.4637: warning for using uninitialized variable
- cc95a7d8b8 8.2.4738: Esc on commandline executes command instead of abandoning it
- cd543d618d 8.2.4763: using invalid pointer with "V:" in Ex mode
- ffdb316491 8.2.4772: old Coverity warning for not checking ftell() return value
- e96c61d92d 8.2.4773: build failure without the +eval feature
- a979a6237e 8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer (#37073)
- 90b1202cfb 8.2.4851: compiler warning for uninitialized variable
- b6d0c391fc 8.2.4878: valgrind warning for using uninitialized variable
- eb67f3a6ba 8.2.5017: gcc 12.1 warns for uninitialized variable
- edd99f09c7 8.2.5092: using "'<,'>" in Ex mode may compare unrelated pointers
- f4a33929d9 8.2.5161: might still access invalid memory
- 26641c0c56 9.0.0010: returning 0 for has('patch-9.0.0') is inconsistent
- 2c560d8544 9.0.0025: accessing beyond allocated memory with the cmdline window
- 0d3ee26860 9.0.0057: has('patch-xxx') returns true
- 96a514ed46 9.0.0106: illegal byte regexp test doesn't fail when fix is reversed
- d4a8d169a2 9.0.0113: has() is not strict about parsing the patch version
- 899ec829be 9.0.0145: substitute that joins lines drops text properties (#37108)
- efacb10709 9.0.0154: text properties wrong after splitting a line
- 27eb0aba3c 9.0.0433: Coverity warns for not checking allocation failure
- 9b15d4c756 9.0.0688: debugger does not display the whole command
- 58ee249c2c 9.0.0729: the rightleft and arabic features are disabled
- f60051e00d 9.0.0874: using freed memory when executing unmenu at more prompt
- e51f5e17e1 9.0.0909: error message for layout change does not match action (#37436)
- 72d3506ce9 9.0.1033: tiny build fails because of conflicting typedef
- 3ac981e838 9.0.1066: test function name is wrong
- 69bed0431c 9.0.1427: warning for uninitialized variable
- 08e193633b 9.0.1480: using popup menu may leave text in the command line
- 827cfe4a76 9.0.1653: Amiga: default 'viewdir' may not work
- bd0555ecd4 9.0.1654: MS-Windows: test for default 'viewdir' fails
- b869cf8ddc 9.0.1689: python 3.12 produces warnings and fails test
- 53fd3657cc 9.0.1758: vim9 no class identifiers in stack dumps
- 1afdcb8f2b 9.0.1899: potential buffer overflow in PBYTE macro
- 7c38f428f4 9.0.2023: need more tests for :cq
- d6e5286d2c 9.1.0059: No event triggered before creating a window
- 3e655d3e42 9.1.0063: GTK code can be improved
- 4544cec168 9.1.0117: Stop split-moving from firing WinNew and WinNewPre autocommands
- 60a0e3d0a0 9.1.0151: ml_get_buf_len() does not consider text properties (#37094)
- 2a28149efc 9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work
- 453dfbf7d6 9.1.0535: newline escape wrong in ex mode
- 6ce964aed6 9.1.0539: Not enough tests for what v9.1.0535 fixed
- 17601e709f 9.1.0546: vim-tiny fails on CTRL-X/CTRL-A
- d5a6040967 9.1.0598: fuzzy completion does not work with default completion
- a9aedfbc58 9.1.0605: internal error with fuzzy completion
- 9757b11aaf 9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completion
- d9f4c1db23 9.1.0634: Ctrl-P not working by default
- f4ddbaeb9e 9.1.0654: completion does not respect completeslash with fuzzy
- 786c5fbdec 9.1.0671: Problem:  crash with WinNewPre autocommand
- 69a9a25fcc 9.1.0689: [security]: buffer-overflow in do_search() with 'rightleft'
- 71662bbb49 9.1.0695: tests: test_crash leaves Untitled file around
- 5042394241 9.1.0697: [security]: heap-buffer-overflow in ins_typebuf (#37372)
- 532cc88604 9.1.0698: tests: "Untitled" file not removed when running Test_crash1_3 alone
- 11b3699252 9.1.0700: crash with 2byte encoding and glob2regpat()
- 0de85e322a 9.1.0701: crash with NFA regex engine when searching for composing chars
- 8c31b3eeac 9.1.0702: Patch 9.1.0700 broke CI
- 094d3dd3d4 9.1.0703: crash with 2byte encoding and glob2regpat()
- 767a52ba30 9.1.0705: Sorting of fuzzy filename completion is not stable
- 0eb708aa8a 9.1.0721: tests: test_mksession does not consider XDG_CONFIG_HOME
- fbac254511 9.1.0733: keyword completion does not work with fuzzy
- 70bb7999f7 9.1.0748: :keep* commmands are sometimes misidentified as :k
- 62822d750d 9.1.0877: tests: missing test for termdebug + decimal signs
- 94f7302e66 9.1.0893: No test that undofile format does not regress (#37193)
- c5dbee7910 9.1.0918: tiny Vim crashes with fuzzy buffer completion
- 9cc93b6def 9.1.0974: typo in change of commit v9.1.0873
- 44f70b4be1 9.1.1006: PmenuMatch completion highlight can be combined
- c17caca9b7 9.1.1008: tests: test for patch 9.1.1006 doesn't fail without the patch
- 20a7e74444 9.1.1043: [security]: segfault in win_line()
- 3029357520 9.1.1131: potential out-of-memory issue in search.c
- 0af6d6ff5e 9.1.1147: preview-window does not scroll correctly
- 90d59e6c8a 9.1.1178: not possible to generate completion candidates using fuzzy matching
- 17db70f3af 9.1.1181: Unnecessary STRLEN() calls in insexpand.c
- 10fde593f1 9.1.1182: No cmdline completion for 'completefuzzycollect'
- cd95ea5d48 9.1.1185: endless loop with completefuzzycollect and no match found
- 28f6199474 9.1.1197: process_next_cpt_value() uses wrong condition
- e39cdafed9 9.1.1201: 'completefuzzycollect' does not handle dictionary correctly
- e3990f8643 9.1.1202: Missing TabClosedPre autocommand
- 0d3ed7904a 9.1.1211: TabClosedPre is triggered just before the tab is being freed
- dc00b37965 9.1.1212: filetype: logrotate'd pacmanlogs are not recognized (#33412)
- 162edf7b30 9.1.1214: matchfuzzy() can be improved for camel case matches
- f9280cde0a 9.1.1217: tests: typos in test_matchfuzzy.vim
- 797195e0ea 9.1.1219: Strange error with wrong type for matchfuzzy() "camelcase"
- 750e1836af 9.1.1224: cannot :put while keeping indent (#33076)
- 0af780e8df 9.1.1228: completion: current position column wrong after got a match
- 2331c52aff 9.1.1243: diff mode is lacking for changes within lines
- b20fc95c1a 9.1.1245: need some more tests for curly braces evaluation
- e2e0f92f17 9.1.1246: coverity complains about some changes in v9.1.1243
- ae98d0a560 9.1.1247: fragile setup to get (preferred) keys from key_name_entry (#33102)
- e4172bcbdf 9.1.1249: tests: no test that 'listchars' "eol" doesn't affect "gM"
- 62da4e2949 9.1.1250: cannot set the maximum popup menu width
- cb31663663 9.1.1252: typos in code and docs related to 'diffopt' "inline:" (#33143)
- 36d143e707 9.1.1253: abort when closing window with attached quickfix data
- 675ee057e0 9.1.1255: missing test condition for 'pummaxwidth' setting
- 52b19e0124 9.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw()
- 89bc945554 9.1.1258: regexp: max \U and \%U value is limited by INT_MAX (#33156)
- 431c037709 9.1.1260: Hang when filtering buffer with NUL bytes (#33192)
- e4f37481ff 9.1.1261: No test for 'pummaxwidth' non-truncated items (#33193)
- b64c2d763e 9.1.1262: heap-buffer-overflow with narrow 'pummaxwidth' value
- 76cbe9c8f8 9.1.1263: string length wrong in get_last_inserted_save() (#33194)
- 8a40213eb3 9.1.1265: tests: no tests for typing normal char during completion (#33239)
- e5ddf7ae7d 9.1.1266: MS-Windows: type conversion warnings (#33264)
- 5cdfa3324f 9.1.1268: filetype: dax files are not recognized
- 8cf413e450 9.1.1269: completion: compl_shown_match is updated when starting keyword completion
- 4983fa45fc 9.1.1271: filetype: Power Query files are not recognized
- b01921cb55 9.1.1272: completion: in keyword completion Ctrl_P cannot go back after Ctrl_N
- e8785c2e94 9.1.1276: inline word diff treats multibyte chars as word char (#33323)
- 00eff4b196 9.1.1283: quickfix stack is limited to 10 items
- 1c723b2e6f 9.1.1284: not possible to configure pum truncation char
- 8af9f8ab5e 9.1.1286: filetype: help files not detected when 'iskeyword' includes ":" (#33377)
- 454abde1aa 9.1.1287: quickfix code can be further improved
- c73a827564 9.1.1288: Using wrong window in ll_resize_stack() (#33397)
- 51a967d58a 9.1.1289: tests: no test for matchparen plugin with WinScrolled event (#33411)
- 7c15987444 9.1.1290: tests: missing cleanup in test_filetype.vim (#33420)
- aba33c72f0 9.1.1291: too many strlen() calls in buffer.c
- f3b38b46eb 9.1.1292: statusline not correctly evaluated
- 6e5671b00d 9.1.1296: completion: incorrect truncation logic
- aa47c8efa9 9.1.1297: Ctrl-D scrolling can get stuck #33453
- fd76646a95 9.1.1298: define_function() is too long (#33457)
- 287955cfb4 9.1.1299: filetype: mbsyncrc files are not recognized
- 9272dc9597 9.1.1300: wrong detection of -inf (#33474)
- 7651c43252 9.1.1301: completion: cannot configure completion functions with 'complete'
- c249389adb 9.1.1302: Coverity warns about using uninitialized value
- d2d1b5e944 9.1.1303: missing out-of-memory check in linematch.c (#33487)
- 7da1639a14 9.1.1304: filetype: some man files are not recognized
- b0f97177d4 9.1.1305: completion menu active after switching windows/tabs (#33488)
- 54d6055098 9.1.1306: completion menu rendering can be improved
- e3e8dfe99c 9.1.1307: make syntax does not reliably detect different flavors (#33498)
- 1de276bbcd 9.1.1308: completion: cannot order matches by distance to cursor (#33491)
- afca5b564e 9.1.1309: tests: no test for 'pummaxwidth' with non-truncated "kind"
- f9f6dc4262 9.1.1310: completion: redundant check for preinsert effect (#33505)
- b6acf6112b 9.1.1311: completion: not possible to limit number of matches
- 95a255a548 9.1.1312: tests: Test_backupskip() fails when HOME is defined (#33504)
- 857ff5cae9 9.1.1313: compile warning about uninitialized value
- ccdb37b075 9.1.1314: max allowed string width too small
- b4c759716a 9.1.1315: completion: issue with fuzzy completion and 'completefuzzycollect' (#33520)
- e2e6c159d3 9.1.1317: noisy error when restoring folds from session fails
- 0251a25541 9.1.1318: tests: test_format fails
- c67398d31b 9.1.1319: Various typos in the code, issue with test_inst_complete.vim (#33527)
- 255bf6e5b1 9.1.1320: filetype: alsoft config files are not recognized
- 1b0dedb81c 9.1.1321: filetype: MS ixx and mpp files are not recognized
- dca8b3fede 9.1.1322: small delete register cannot paste multi-line correctly (#33531)
- 328640aed0 9.1.1323: b:undo_ftplugin not executed when re-using buffer
- da20804a6a 9.1.1325: tests: not checking error numbers properly
- d3cded796c 9.1.1326: invalid cursor position after 'tagfunc' (#33556)
- 9fafdcb99c 9.1.1327: filetype: nroff detection can be improved
- 98ec3fdf74 9.1.1328: too many strlen() calls in indent.c (#33563)
- f3c4fec43f 9.1.1329: cannot get information about command line completion
- 07d60e8f19 9.1.1331: Leaking memory with cmdcomplete()
- 63689deb45 9.1.1337: Undo corrupted with 'completeopt' "preinsert" when switching buffer (#33600)
- 3d126ec89f 9.1.1338: Calling expand() interferes with cmdcomplete_info()
- ac8ae1596c 9.1.1340: cannot complete :filetype arguments (#33602)
- fcabbc2283 9.1.1341: cannot define completion triggers
- 41179a6bc1 9.1.1342: Shebang filetype detection can be improved
- 4ddd31de14 9.1.1343: filetype: IPython files are not recognized
- 31e31273bc 9.1.1344: double free in f_complete_match() (after v9.1.1341)
- 766cd01ff2 9.1.1346: missing out-of-memory check in textformat.c (#33639)
- d75410b091 9.1.1349: CmdlineLeavePre may trigger twice
- c64cada12e 9.1.1350: tests: typo in Test_CmdlineLeavePre_cabbr()
- afcc4e95d5 9.1.1351: Return value of getcmdline() inconsistent in CmdlineLeavePre
- d107375f0c 9.1.1353: missing change from v9.1.1350
- 65a4c8f3ca 9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer
- 074a6abd55 9.1.1359: filetype: GNU Radio config files are not recognized
- da3eeb4b32 9.1.1360: filetype: GNU Radio companion files are not recognized
- 627c648252 9.1.1361: [security]: possible use-after-free when closing a buffer (#33820)
- 73f2286f08 9.1.1370: CI Tests favor GTK2 over GTK3
- 6b955af875 9.1.1373: 'completeopt' checking logic can be simplified
- 15d31fe7a6 9.1.1374: completion: 'smartcase' not respected when filtering matches
- 05dab80d8d 9.1.1375: [security]: possible heap UAF with quickfix dummy buffer
- d95b0a5396 9.1.1376: quickfix dummy buffer may remain as dummy buffer
- 8605f5655b 9.1.1378: sign without text overwrites number option (#33942)
- ef5c5dc99b 9.1.1380: 'eventignorewin' only checked for current buffer
- 4b3a9ac413 9.1.1381: completion: cannot return to original text (#33966)
- e4c4d672b5 9.1.1383: completion: 'isexpand' option does not handle space char correct (#33999)
- e01f196e44 9.1.1384: still some problem with the new tutors filetype plugin
- d539a952da 9.1.1385: inefficient loop for 'nosmoothscroll' scrolling (#33992)
- 6b9665a507 9.1.1387: memory leak when buflist_new() fails to reuse curbuf
- f87b6230f1 9.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling (#34023)
- f2aec4bc05 9.1.1389: completion: still some issue when 'isexpand' contains a space (#34026)
- 2fda267faf 9.1.1393: missing test for switching buffers and reusing curbuf
- ec5f054dc9 9.1.1395: search_stat not reset when pattern differs in case (#34058)
- 99384fcd9c 9.1.1396: 'grepformat' is a global option (#34060)
- dc6885dc24 9.1.1398: completion: trunc does not follow Pmenu highlighting attributes (#34084)
- 153a910897 9.1.1402: multi-byte mappings not properly stored in session file (#34131)
- f791ae82e5 9.1.1404: wrong link to Chapter 2 in new-tutor
- 071dcab68f 9.1.1405: tests: no test for mapping with special keys in session file (#34146)
- bd01bd6564 9.1.1407: Can't use getpos('v') in OptionSet when using setbufvar() (#34177)
- f2373a89d7 9.1.1408: not easily possible to complete from register content (#34198)
- eeff6ca8ff 9.1.1409: using f-flag in 'complete' conflicts with Neovim
- 2411f924a3 9.1.1410: out-of-bounds access with 'completefunc'
- c4e52d604c 9.1.1413: spurious CursorHold triggered in GUI on startup (#34195)
- bec1449cc5 9.1.1416: completion limits not respected for fuzzy completions
- 6c4ddf607f 9.1.1417: missing info about register completion in complete_info() (#34219)
- 2763d06100 9.1.1419: It is difficult to ignore all but some events (#34245)
- 0471cc7595 9.1.1420: tests: could need some more tests for shebang lines
- f1f106be3d 9.1.1421: tests: need a test for the new-style tutor.tutor (#34267)
- 9bfd0162dc 9.1.1422: scheduling of complete function can be improved
- 525c02a89f 9.1.1424: PMenu selection broken with multi-line selection and limits
- eb10852804 9.1.1426: completion: register contents not completed
- 97ca92f9dd 9.1.1428: completion: register completion needs cleanup
- f89381e05c 9.1.1431: Hit-Enter Prompt when loading session files
- 1c417b565e 9.1.1432: GTK GUI: Buffer menu does not handle unicode correctly (#34313)
- 6171ab7f4e 9.1.1433: Unnecessary :if when writing session
- 552983515f 9.1.1435: completion: various flaws in fuzzy completion (#34335)
- 2b79d9ba1a 9.1.1437: MS-Windows: internal compile error in uc_list() (#34379)
- d2dad30898 9.1.1439: Last diff folds not merged (#34380)
- bcfc22853a 9.1.1441: completion: code can be improved
- 78e2f62516 9.1.1442: tests: Test_diff_fold_redraw() is insufficient (#34407)
- 7a58cf4b96 9.1.1443: potential buffer underflow in insertchar() (#34408)
- 72f4bb9ae8 9.1.1444: Unused assignment in set_fuzzy_score()
- bcba067dc2 9.1.1445: negative matchfuzzy scores although there is a match (#34409)
- 2c80b05cbd 9.1.1446: filetype: cuda-gdb config files are not recognized
- ac772706cc 9.1.1447: completion: crash when backspacing with fuzzy completion
- 5075043823 9.1.1449: typo in pum_display()
- 612f8e7c9e 9.1.1450: Session has wrong arglist with :tcd and :arglocal (#34430)
- 1abcd9fe28 9.1.1452: completion: redundant check for completion flags (#34434)
- 3a2ac2300b 9.1.1454: tests: no test for pum at line break position (#34462)
- 3e984cf02b 9.1.1463: Integer overflow in getmarklist() after linewise operation (#34532)
- ae0981070e 9.1.1464: gv does not work in operator-pending mode (#34534)
- 5cf135f9a0 9.1.1466: filetype: not all lex files are recognized
- fb8dba413f 9.1.1467: too many strlen() calls (#34572)
- 487112d674 9.1.1468: filetype: bright(er)script files are not recognized
- 8ed6f00ab0 9.1.1471: completion: inconsistent ordering with CTRL-P (#34571)
- ee2fc31b36 9.1.1473: inconsistent range arg for :diffget/diffput (#34588)
- 534ec8d447 9.1.1475: completion: regression when "nearest" in 'completeopt' (#34607)
- 7f3249fa0d 9.1.1476: missing out-of-memory checks in cmdexpand.c (#34624)
- 7138cdaef8 9.1.1477: no easy way to deduplicate text
- 11f8e8eb63 9.1.1478: Unused assignment in ex_uniq()
- a0f3fdba58 9.1.1479: regression when displaying localized percentage position
- 3bf27b2c74 9.1.1481: gcc complains about uninitialized variable
- 0b91e9f83b 9.1.1482: scrolling with 'splitkeep' and line() (#34670)
- a565774bfc 9.1.1483: not possible to translation position in buffer (#37099)
- 504327020d 9.1.1484: tests: Turkish locale tests fails on Mac
- dd707246fd 9.1.1490: 'wildchar' does not work in search contexts
- ee717447dd 9.1.1491: missing out-of-memory checks in cmdexpand.c
- 9a44bbd574 9.1.1493: manually comparing positions on buffer
- 66f02ee1fe 9.1.1498: completion: 'complete' funcs behave different to 'omnifunc' (#34718)
- da42f99eb4 9.1.1501: filetype: flix files are not recognized
- 18cfbf8fb2 9.1.1502: filetype: quickbms files are not recognized
- 0a14ac3261 9.1.1503: filetype: haxe files are not recognized
- fc1be07d28 9.1.1504: filetype: numbat files are not recognized
- 6ebcb4a4d6 9.1.1505: not possible to return completion type for :ex command
- eef62e815d 9.1.1506: tests: missing cleanup in Test_search_cmdline_incsearch_highlight() (#34748)
- bb75610d99 9.1.1507: symlinks are resolved on :cd commands (#34758)
- c48dea20f5 9.1.1508: string manipulation can be improved in cmdexpand.c (#34755)
- 9c04eb02ad 9.1.1509: patch 9.1.1505 was not good
- 46727a7feb 9.1.1510: Search completion may use invalid memory
- 11e967d5af 9.1.1511: tests: two edit tests change v:testing from 1 to 0
- 85e6feedb0 9.1.1512: completion: can only complete from keyword characters (#34798)
- cf5506f0fd 9.1.1516: tests: no test that 'incsearch' is updated after search completion (#34808)
- 3177841bdf 9.1.1517: filetype: autopkgtest files are not recognized
- 6fd2a3040f 9.1.1518: getcompletiontype() may crash (#34819)
- 842ca1fd5c 9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail
- 27daeb0d68 9.1.1520: completion: search completion doesn't handle 'smartcase' well (#34840)
- c3c8d25293 9.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect' (#34836)
- ef0ec7edac 9.1.1526: completion: search completion match may differ in case
- 5fe310c5e6 9.1.1528: completion: crash with getcompletion()
- db7c2acbc6 9.1.1532: termdebug: not enough ways to configure breakpoints (#34851)
- 00f8f94d5b 9.1.1535: the maximum search count uses hard-coded value 99 (#34873)
- d4074b812d 9.1.1538: tests: string options in gen_opt_test.vim not fully sorted (#34891)
- f487ae90cf 9.1.1539: completion: messages don't respect 'shm' setting (#34923)
- 7631302ad6 9.1.1544: :retab cannot be limited to indentation only (#34939)
- 4195b82ec9 9.1.1548: filetype: OpenFGA files are not recognized
- 8bccd07972 9.1.1549: filetype: pkl files are not recognized
- 8964ad45da 9.1.1550: defaults: 'showcmd' is not enabled in non-compatible mode on Unix
- 5cfdd4d8b9 9.1.1551: [security]: path traversal issue in zip.vim (#34951)
- 77c6cae25b 9.1.1552: [security]: path traversal issue in tar.vim
- 436ae1d23e 9.1.1554: crash when omni-completion opens command-line window
- fcec1610e7 9.1.1555: completion: repeated insertion of leader (#34962)
- e6ce067f02 9.1.1556: string handling in cmdexpand.c can be improved (#34966)
- 4f0ab9877b 9.1.1557: not possible to anchor specific lines in diff mode (#34967)
- be35864318 9.1.1559: tests: Test_popup_complete_info_01() fails when run alone
- 9d1333a385 9.1.1563: completion: ruler may disappear (#34977)
- b91613f42c 9.1.1567: crash when using inline diff mode (#35005)
- 0f9b5dd0b4 9.1.1570: Copilot suggested some improvements in cmdexpand.c (#35006)
- bbc368dfce 9.1.1571: CmdlineChanged triggered to often
- b6b793634a 9.1.1572: expanding $var does not escape whitespace for 'path' (#35010)
- 22d1fb8c01 9.1.1573: Memory leak when pressing Ctrl-D in cmdline mode
- 9377db2545 9.1.1576: cannot easily trigger wildcard expansion (#35022)
- f7af0cff35 9.1.1590: cannot perform autocompletion (#35141)
- e40199c6c6 9.1.1594: completion: search completion throws errors (#35198)
- 5aaee7d2af 9.1.1596: tests: Test_search_wildmenu_iminsert() depends on help file (#35210)
- 1f7ab25915 9.1.1598: filetype: waybar config file is not recognized
- 53ac2ad20a 9.1.1599: :bnext doesn't go to unlisted help buffers (#35216)
- 52c2519095 9.1.1600: using diff anchors with hidden buffers fails silently (#35218)
- 7230296bdb 9.1.1601: Patch v8.1.0425 was wrong
- 62f2b10db3 9.1.1602: filetype: requirements-*.txt files are not recognized
- b1e35cbd7b 9.1.1603: completion: cannot use autoloaded funcs in 'complete' F{func}
- 36361d6e4a 9.1.1604: completion: incsearch highlight might be lost (#35236)
- 798cb0f19a 9.1.1605: cannot specify scope for chdir() (#35239)
- e3913c0fc2 9.1.1606: filetype: a few more files are not recognized (#35268)
- e7dfbf1343 9.1.1607: :apple command detected as :append (#35237)
- fe42c81f2e 9.1.1608: No command-line completion for :unsilent {command}
- 5f23aaba00 9.1.1609: complete: Heap-buffer overflow with complete function
- 1969f685af 9.1.1610: completion: hang or E684 when 'tagfunc' calls complete() (#35243)
- 77500c5ad5 9.1.1611: possible undefined behaviour in mb_decompose() (#35275)
- 1eca030fb2 9.1.1612: Ctrl-G/Ctrl-T do not ignore the end search delimiter
- 9e8d551b1e 9.1.1613: tests: test_search leaves a few swapfiles behind
- f79430e2ce 9.1.1615: diff format erroneously detected (#35276)
- f0d8341984 9.1.1618: completion: incorrect selected index returned from complete_info() (#35284)
- dae79f2b67 9.1.1619: Incorrect E535 error message (#35285)
- 47e3aecb78 9.1.1620: filetype: composer.lock and symfony.lock files not recognized (#35291)
- dd306bd48a 9.1.1621: flicker in popup menu during cmdline autocompletion
- 9d85f086d9 9.1.1622: Patch v9.1.1432 causes performance regressions (#35288)
- 013af17ed9 9.1.1623: Buffer menu does not handle unicode names correctly (#35353)
- 50ceac4054 9.1.1625: Autocompletion slow with include- and tag-completion (#35318)
- 35be59cc7b 9.1.1626: cindent: does not handle compound literals (#35319)
- 869000e7ce 9.1.1627: fuzzy matching can be improved
- 2619a749a5 9.1.1628: fuzzy.c has a few issues
- e38e65b86c 9.1.1630: tests: fuzzy bufname completion test doesn't match successfully
- 7afcfb6c9a 9.1.1632: memory leak in fuzzy.c
- 8d154e5927 9.1.1633: Search pattern shown incorrectly with negative offset (#35337)
- 4019d3050d 9.1.1638: completion: not possible to delay the autcompletion
- 577f9fa1be 9.1.1640: Unicode has deprecated some code-points (#35358)
- 37119ad0d2 9.1.1645: fuzzy.c can be further improved (#35371)
- 43bf045005 9.1.1646: MS-Windows: completion cannot handle implicit drive letters
- ba25f3e4d4 9.1.1647: filetype: Cangjie files are not recognized
- 3e57c5216f 9.1.1648: MS-Windows: some style issues with patch v9.1.1646
- 25bc41847e 9.1.1649: attrs allocation and fuzzy growarray could leak (#35383)
- 6ef996a082 9.1.1657: Autocompletion adds delay
- b9699d5701 9.1.1665: Outdated comment in eval.c (#35436)
- 639f9f4cda 9.1.1667: Another outdated comment in eval.c (#35438)
- 963ead29d9 9.1.1670: completion: autocomplete breaks second completion
- 810a234978 9.1.1672: completion: cannot add timeouts for 'cpt' sources (#35447)
- 3b5337ab6c 9.1.1676: completion: long line shown twice
- 29f30ad91c 9.1.1679: unclear what key causes CmdlineLeave autocommand (#35677)
- 523371b044 9.1.1681: tests: no test for actually moving cursor with 'acl' (#35452)
- 821bfc02fb 9.1.1685: Missing changes from PR 18068 (#35482)
- dab31a3637 9.1.1687: filetype: autoconf filetype not always correct
- 4263ec21c2 9.1.1688: potential buffer overrun in bufwrite.c (#35497)
- c741927883 9.1.1689: CmdlineChanged not triggered by <Del> (#35496)
- b116ed7b12 9.1.1690: Missing recursion guard in dos/unix_expandpath() (#35499)
- 8a1afac653 9.1.1693: tests: test_filetype fails in shadow dir
- 117b129378 9.1.1694: filetype: Buck eXtension Lang files are not recognized (#35504)
- 3586e047e6 9.1.1695: Need more Vim script specific tests (#35500)
- 61712cbc3a 9.1.1697: tests: no test for aclocal.m4
- 2ac00f1350 9.1.1698: Some error numbers are not documented (#35522)
- 24020ef2dd 9.1.1700: Multiline ignorecase specific pattern does not match with 'ignorecase' (#35520)
- c961361406 9.1.1701: tests: failure on CI with GUI and ASAN in test_edit.res
- a3b1159949 9.1.1702: tests: test_edit still fails on CI
- c333d64663 9.1.1709: filetype: kyaml files are not recognized
- 68a2e0ef78 9.1.1713: filetype: fvwm2m4 files are no longer detected
- 1359578abb 9.1.1714: completion: wildmode=longest:full selects wrong item
- 8fc1db043a 9.1.1717: filetype: AWS cli alias file is not recognized #35581
- 06df337617 9.1.1718: filetype: kubectl config file is not recognized #35583
- c4c69c5012 9.1.1724: Compiler warning about ununitialized variable in ex_docmd. (#35595)
- 17da1ad8f4 9.1.1730: filetype: vivado journal/log files are not recognized (#35613)
- 0bf4b7898c 9.1.1731: Not using const qualifier for opchars (#35634)
- 0bafbe872b 9.1.1732: filetype: .inc file detection can be improved (#35635)
- 51af2797c2 9.1.1734: Memory leak when allocating match fails (#35646)
- f2bda1effc 9.1.1737: Patch v9.1.1714 introduce a regression for wildmenu
- b51eba9273 9.1.1738: cmdline-autocompletion breaks history navigation
- d784ed7013 9.1.1739: Matches may be listed twice with wildmode=longest,list
- 18f24b85c3 9.1.1740: Memory leak with wildmode=longest,full and wildoptions=pum
- eb19206e03 9.1.1742: complete: preinsert does not work well with 'autocomplete' (#35692)
- 223f9622df 9.1.1744: tests: Test_skip_wildtrigger_hist_navigation() may fail
- f6ed46c2a7 9.1.1747: completion: redo (.) broken with preinsert and autocompletion (#35698)
- 5a7586a109 9.1.1750: completion: preinserted text highlighed using ComplMatchIns
- e084a99040 9.1.1751: potential buffer-overflow in find_pattern_in_path() (#35705)
- aa33ea86e1 9.1.1752: tests: need another test for v9.1.1750 behaviour
- cf9b7a37cc 9.1.1753: defaults: 'diffopt' option value can be improved (#35727)
- ae588c183f 9.1.1754: :helptags doesn't skip examples with syntax
- 7b8b9d270f 9.1.1758: Diff mode crashes when adding text property in autocommand (#35760)
- 61d7d983d6 9.1.1761: 'ruler' is set in defaults.vim
- 051b8b88c8 9.1.1762: completion: selected item not cleared on <BS> with 'ac'
- 114336ac1d 9.1.1763: filetype: kitty config files are not recognized
- e7ff132708 9.1.1764: filetype: CODEOWNERS file not recognized (#35789)
- 95267b664c 9.1.1769: completion: "preinsert" insert wrong word with 'smartcase' and 'autocomplete' (#35834)
- 0763a85f43 9.1.1771: complete: some redraw issues with 'autocomplete'
- e2166661d4 9.1.1772: completion: inconsistent selection of first item with 'autocomplete' (#35835)
- c9f6267402 9.1.1773: Crash in BufLeave after BufUnload closes other windows (#35830)
- 39a21d749d 9.1.1774: cannot calculate sha256 of a Blob
- e3f15d5424 9.1.1775: filetype: Mamba configuration files are not recognized #35829
- f91d416403 9.1.1776: completion: "adding" expansion doesn't work with cfc=keyword (#35850)
- d3bd1fba6a 9.1.1777: Mouse click to open fold doesn't work with utf-8 "foldclose" chars (#35851)
- a5955e5cc5 9.1.1778: sha256() treats empty blob and null blob differently
- a70997442e 9.1.1779: completion: 'autocomplete' cannot be enabled per buffer (#35853)
- e887602eb5 9.1.1780: mbyte contains overlapping list of utf_classes table (#35869)
- 0f01cc85bd 9.1.1781: some functions could be defined static
- 7cdf3bb68a 9.1.1783: ins_compl_leader() too far away from ins_compl_leader_len()
- 0c23b863f4 9.1.1787: filetype: not all Sway config files are recognized
- d9fa495608 9.1.1790: completion: Enter does not insert match with "noinsert" (#35917)
- 7b9c063d11 9.1.1797: completion: autocompletion can be improved
- 2aab242a01 9.1.1798: Wrong display with 'sms' and long wrapped virt text at EOL (#35930)
- 35fc4fda99 9.1.1799: completion: crash with autcompletion (#35963)
- f30a33858f 9.1.1800: completion: strange behaviour with 'ac' completeopt=longest,preinsert
- 0fa0717d4e 9.1.1802: 'nowrap' in a modeline may hide malicious code (#35946)
- ff564237d2 9.1.1807: :set doesn't clear local insecure flag like :setlocal does
- 42f1864b62 9.1.1808: Option insecure flags not copied when splitting window
- 756e55dc49 9.1.1810: completion: "longest" doesn't work for manual completion with 'ac'
- c881bc537e 9.1.1817: popup: there are some position logic bugs (#36075)
- df0b9e7a5d 9.1.1818: possible crash when calculating topline in diff.c
- b6b80824cc 9.1.1819: Cannot configure the inner foldlevel indicator (#36010)
- 8151fc59cf 9.1.1820: completion: some issues with 'acl' (#36007)
- 2c76a50e20 9.1.1821: filetype: Not all PKL files are recognized (#36008)
- 0fca343d64 9.1.1823: diff: w_topline may be invalidated (#36018)
- 94bd212dbc 9.1.1824: tests: no test for displaying 'foldcolumn' with Unicode "foldinner" (#36019)
- f8b50bf3b0 9.1.1825: completion: flicker when LSP server is slow (#36020)
- fbaf48cb23 9.1.1827: completion: v9.1.1797 broke Ctrl-Y behaviour (#36040)
- a4a8838178 9.1.1829: filetype: KerML and SysML files are not recognized (#36042)
- 7923e847ca 9.1.1831: stray vseps in right-most 'winfixwidth' window
- d9153d620a 9.1.1833: completion: fuzzy candidates are not sorted (#36062)
- e47529ab56 9.1.1834: MS-Windows: not possible to highlight the title bar
- ba47cb7eda 9.1.1836: 'culopt' "screenline" not redrawn with line("w0") and :retab
- 28355050a8 9.1.1839: Window may have wrong height if resized from another tabpage (#36093)
- b1c41a332d 9.1.1843: tests: Test_search_stat_option() may fail on slow systems (#36110)
- 92b834fc7a 9.1.1849: CTRL-F and CTRL-B don't work in more prompt
- 83c7193c11 9.1.1850: completion: not triggered after i_Ctrl-W/i_Ctrl-U (#36156)
- 93d1473732 9.1.1853: Ctrl-F and Ctrl-B at more prompt not working with key protocol
- d78215f6a2 9.1.1854: unnecessary code in optionstr.c (#36170)
- aeeadddac4 9.1.1858: v:register not reset after Visual mode command (#36215)
- a08aa77e40 9.1.1859: completion: whitespace not cleared with 'ai' (#36218)
- 68a54bfda6 9.1.1868: v:register is wrong in v_: command (#36238)
- 737dd83d1f 9.1.1869: tests: test failures with Python 3.14 and test_python3 (#36310)
- fb6fd17f26 9.1.1870: :Tutor may not work as expected (#36343)
- 5db3544991 9.1.1871: Wrong 'showcmd' in the cmdwin (#36320)
- 2407833ba1 9.1.1872: Cmdline history not updated when mapping <Up> and <CR> (#36334)
- 070f4d3da0 9.1.1875: username parsing bug in netrw plugin (#36348)
- 155efabb15 9.1.1876: pre-inserted text not exposed in complete_info() (#36342)
- f0cf488698 9.1.1877: cindent: wrong indentation after an array declaration (#36340)
- 35d04394aa 9.1.1878: filetype: Soy files are not recognized (#36346)
- 21ea0537e0 9.1.1880: Allocation error with complete_info() (#36360)
- c2781d3db3 9.1.1883: Wrong display with 'smoothscroll' with -diff (#36372)
- 3fb56ff8af 9.1.1885: Wrong restored cursor pos when re-entering buffer after changes
- 3c14646896 9.1.1886: filetype: Android aconfig files are not recognized (#36374)
- c75f547839 9.1.1888: Wrong display with cpo+=$, matchparen and wrapped line (#36385)
- 1fddd74da7 9.1.1889: filetype: not all AppleScript files are recognized (#36411)
- d4106bade7 9.1.1890: %P in 'statusline' doesn't behave as documented
- b92b95e2c2 9.1.1891: g<End> does not move to last non-blank in visual mode (#36354)
- 003b429a86 9.1.1892: Not possible to know once Vim is done with sourcing vimrc (#36429)
- d847548a1c 9.1.1893: ICCF charity will dissolve (#36427)
- 97cb0d5571 9.1.1906: filetype: not all Ruby files are recognized (#36526)
- 02760a30ce 9.1.1908: tests: test_crash.vim times out in CI ASAN builds
- 756043760b 9.1.1909: filetype: .mom files recognized as nroff files (#36543)
- 16e9c21d8d 9.1.1913: Error message with :unlet! and non-existing dictionary item (#36549)
- dc682bcbcf 9.1.1915: :breaklist accepts unprocessed arguments. (#36561)
- 8d72d1ceb4 9.1.1916: WinEnter autocommand confuses Vim when closing tabpage (#36567)
- ef0c522077 9.1.1918: completion: crash with fuzzy completion (#36578)
- a8b9660ca3 9.1.1920: tests: not enough testing for wildtrigger() pum redrawing (#36642)
- 1eec08d1a2 9.1.1922: Wrong virtcol('$') with virtual text at EOL (#36643)
- 30a09bdd7e 9.1.1923: wrong error when assigning to read-only register (#36644)
- 4dc337cda8 9.1.1924: 'commentstring' requires +folding feature (#36645)
- a212fc7745 9.1.1929: completion: spell completion wrong with fuzzy (#36709)
- 812186e2dc 9.1.1930: completion: 'completefuzzycollect' is too obscure
- 19d5b28977 9.1.1931: completion: wrong item selected with fuzzy and noinsert (#36725)
- 2c6469aca4 9.1.1933: completion: complete_match() is not useful (#36726)
- da6edcb91b 9.1.1934: filetype: not all starlark files are recognized (#36743)
- 8310f20526 9.1.1935: filetype: not all Erlang files are recognized
- 3f8e51cee7 9.1.1936: filetype: Erlang lexical files are not recognized
- 3c60598239 9.1.1937: tests: Test_matchfuzzy_initialized() fails
- c9f63d13b6 9.1.1938: tests: excessive wait in Test_matchfuzzy_initialized
- d13e8f1a34 9.1.1939: tests: test_matchfuzzy() leaves swapfiles behind
- 7452a8a568 9.1.1941: tests: Test_execute_register() leaves swapfile behind
- b64e36cef0 9.1.1943: Memory leak with :breakadd expr
- e8fdc7ef9a 9.1.1944: getwininfo() does not return if statusline is visible (#36828)
- c3c8a18af7 9.1.1945: tests: Test_getbufwintabinfo() leaves swapfiles behind
- ac3e2ca675 9.1.1947: [security]: Windows: Vim may execute commands from current directory
- bfe007a187 9.1.1948: Windows: Vim adds current directory to search path
- 69f4fd84aa 9.1.1949: :stag does not use 'swichtbuf' option
- 132567c71f 9.1.1950: tests: Test_tagjump.vim leaves swapfiles behind
- c758423cf2 9.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds
- ffdc632ea1 9.1.1952: tests: need better tests for tf files
- 4450a45466 9.1.1954: Setting a byte in a blob, accepts values outside 0-255
- d6be2b3312 9.1.1957: filetype: bpftrace files are not recognized (#36838)
- 647f11e6ae 9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved (#36851)
- ff90032aa5 9.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab"
- 2f9f77cd72 9.1.1962: filetype: Erlang application resource files are not recognized (#36868)
- 3bc9a5b5d2 9.1.1963: diff: missing diff size limit for xdiff (#36877)
- 5235f3663f 9.1.1964: Wrong display when using setline() at hit-enter prompt (#36878)
- 747cf30c37 9.1.1965: q can accidentally start recording at more prompt (#36879)
- 08d7744e13 9.1.1967: if_python: 64bit numbers truncated (#37245)
- 18642a63be 9.1.1969: Wrong cursor position after formatting with long 'formatprg' (#36918)
- 2b02dfa020 9.1.1970: visual end column returns wrong value after block edit (#36923)
- e9da68effe 9.1.1971: Crash when buffer gets deleted inside charconvert during save
- 384a039db7 9.1.1974: tests: missing cleanup in Test_bwipe_during_save()
- f494ce77f1 9.1.1978: tests: Test_smoothscroll_number() may fail (#36965)
- 3985257496 9.1.1979: :helpclose allows range and counts (#36966)
- f5e39560ff 9.1.1980: filetype: N-Quads files are not recognized (#36967)
- 7a866e6b20 9.1.1981: tests: test suite may stop on error in gen_opt_test.vim (#36988)
- 6061169183 9.1.1983: Vim9: class_name definition can be improved
- 4cce77e547 9.1.1984: terminal OSC52 support can be improved (#37543)
- 544bde3acc 9.1.1987: assert_equal() prepends unnecessary ':' when typed
- 3264dfee75 9.1.1989: Vim intro screen shows register message
- c172fd9f46 9.1.1991: :setlocal changes effective global 'omnifunc' (#37013)
- 2860d1e018 9.1.1998: tests: not enough tests for :setlocal omnifunc (#37023)
- f89558848b 9.1.2001: cursor may end up in wrong window after :botright copen (#37056)
- 92910a8ab8 9.1.2007: filetype: bpftrace hashbang lines are not recognized
- 471be48d56 9.1.2008: filetype: hylo files are not recognized
- 49b1a6540f 9.1.2009: tests: "Xm4" test directory may not be deleted
- 2a2c366a3e 9.1.2016: cindent wrong indentation after do-while loop (#37087)
- d7b882697b 9.1.2017: getregionpos() depends on 'linebreak' setting (#37088)
- e53accf8ec 9.1.2019: inconsistent cursor encoding past EOL with ve=all
- 7b5276b382 9.1.2020: tests: test_virtualedit.vim leaves swapfiles behind (#37115)
- c11153b320 9.1.2021: filetype: fluent files are not recognized (#37117)
- 6fa2ebec6b 9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd
- 1e44a001ec 9.1.2024: 'fsync' option cannot be set per buffer (#37129)
- f4eabcca4f 9.1.2026: tests: patch 9.1.2019 not tested properly
- 7f1d7271d5 9.1.2027: filetype: bicep filetype used for 2 bicep file types (#37130)
- 444e1ffe3e 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars (#37133)
- e916f03277 9.1.2030: inefficient use of ga_concat() (#37151)
- 8e80e54478 9.1.2034: filetype: Fennel fnml files are not recognized (#37176)
- bd10f781b8 9.1.2035: filetype: filetype: Fennel fnlm files are not recognized (#37178)
- acc3554439 9.1.2037: undo: cursor position not correctly restored (#37195)
- 01177619bc 9.1.2038: tests: test_marks.vim leaves swapfiles behind
- 6deb1c1bf3 9.1.2040: :tlunmenu incorrectly accepts a range (#37206)
- b7efbbec51 9.1.2041: tests: test_menu.vim leaves swapfiles behind
- ca731d2e55 9.1.2042: filetype: systemd quadlet files are not recognized (#37208)
- 067b5743f5 9.1.2043: filetype: kos files are not reconized
- 6c3502d85a 9.1.2050: tests: Test_cd_completion may fail
- 0dfac68928 9.1.2051: tests: fix Test_cd_completion fails in Appveyor (#37266)
- 97bfc0c99b 9.1.2055: Division by zero in :file after failing to wipe buffer (#37268)
- 661455cc47 9.1.2056: tests: inconsistent indent and line breaking in Test_maparg() (#37269)
- 5f871007d7 9.1.2058: b_locked_split is not checked for :sbuffer
- b075656279 9.1.2059: filetype: Nickel files are not recognized
- a6df0db11f 9.1.2060: filetype: Rasi include files are not recognized
- 0bbbe236aa 9.1.2061: filetype: Koka files are not recognized
- a84bf386d2 9.1.2062: filetype: djot files are not recognized
- 885426f1bf 9.1.2064: completion: segfault during file name completion (#37316)
- 681d006549 9.1.2066: :wqall! doesn't close a terminal like :qall! does (#37314)
- e002e4d7fc 9.1.2068: :bd/bw may try to switch to a closing buffer
- aa959f7b85 9.1.2069: Search wrap indicator not shown w/out 'shm-S' (#37332)
- 930817f100 9.1.2070: completion: autocomplete breaks with large dict (#37331)
- 562bc0b371 9.1.2071: tests: test_ins_complete.vim leaves swapfiles behind
- 2ae56fbb39 9.1.2075: tests: wrong change to test_ins_complete.vim
- e790c87cd8 9.1.2078: A few more typos in various files (#37368)
- aed1f8c377 9.1.2079: use-after-free with 'qftf' wiping buffer (#37364)
- 40fb2818b6 9.1.2085: Use-after-free in winframe_remove()
- ba1d50fdc3 9.1.2086: Memory leak when skipping invalid literal dict
- eb5a7cc0dd 9.1.2087: Crash when using :tabonly in BufUnload
- 03494ad048 9.1.2088: Redundant NULL checks in find_pattern_in_path() (#37432)
- 960cba7b3b 9.1.2090: Last buffer not freed with EXITFREE
- 30bcb25341 9.1.2093: heap-use-after-free when wiping buffer in TabClosedPre
- c52f6eb49a 9.1.2094: filetype: tiger files are not recognized
- b4e602dde5 9.1.2095: :wqall! doesn't quit when using :quit in BufWritePost
- 7470e63260 9.1.2097: TabClosedPre may be triggered twice for the same tab page
- 64057d266c 9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A (#37466)
- 87276db7f9 9.1.2100: filetype: tiltfiles are not recognized (#37477)
- b3242af187 9.1.2102: foldtext not reversed and cut off in 'rightleft' mode
- cd624f24f6 9.1.2103: tests: test_fold.vim leaves swapfiles behind
- e0b724de09 9.1.2105: tests: not enough tests for using plain_vgetc() (#37521)
- f10a1dcf4d 9.1.2107: :normal may change cmdline history (#37523)
- 5a354db7fa 9.1.2108: tests: Test_foldtextresult_rightleft() does not restore 'columns'
- 798ee64287 9.1.2109: filetype: NetLinx fires are not recognized
- d982c00846 9.1.2110: filetype: skhd files are not recognized
- a8a097d178 9.1.2112: long statusline may crash if using singlebyte encoding (#37605)
- ebfbe4db49 9.1.2116: crash when using 'tagfunc' (#37627)
- 47ce93ad6d 9.1.2118: 'cursorline' missing after :diffput to empty buf (#37628)
- 5e1a3df5ae 9.1.2119: tests: Test_language_cmd fails on OpenBSD (#37503)
- 270c7b46af 9.1.2123: using NOT with a float returns a float in legacy script (#37639)
- fede568692 9.1.2128: Heap use after free in buf_check_timestamp()
- bdd886622d 9.1.2130: Page scrolling in Insert mode beeps (#37710)
- db133879b2 9.1.2132: [security]: buffer-overflow in 'helpfile' option handling (#37735)
- 15061d322d 9.1.2133: Another case of buffer overflow with 'helpfile' (#37746)
- 6dd0a7d60a 9.1.2135: tests: tar plugin does not consider 'nowrapscan' (#37752)
- e704529909 9.1.2136: :tab sbuffer may close old tabpage (#37765)
- ed8fbd2e29 9.1.2138: win_execute() and 'autochdir' can corrupt buffer name (#37767)
- 39d8a9c353 9.1.2146: filetype: cel files are not recognized (#37834)
- ff142a7a74 9.1.2147: Compile warning in strings.c (#37842)
- 8605b0b7a9 9.1.{1755,1759} (#35787)
- 7d8653575f 9.2.0004: Changing hidden prompt buffer cancels :startinsert/:stopinsert (#37881)
- b59eba3ada 9.2.0007: cindent: recognizing labels within commented lines
- 77d396caf4 9.2.0009: tests: test_cindent are not ordered
- ac84a3f3b6 9.2.0020: Wrong shortened buffer after :cd with duplicate slashes (#37955)
- 134782b99e 9.2.0023: fix integer overflow in ml_append_int() for long lines
- fadf5fc8db 9.2.0024: Reading files with very long lines crashes with a segfault
- e98a6979ee 9.2.0025: filetype: cshtml incorrectly recognized (#37957)
- c78e276881 9.2.0027: filetype: yara files are not recognized
- 785ac9f228 9.2.0028: matchadd() conceal may use unrelated syntax cchar (#37974)
- 08b8fe5ab3 9.2.0030: completion: non-prefix matches shown when leader is NULL
- b3a3028fd9 9.2.0031: Inefficient use of ga_concat()
- 6e8a1a8988 9.2.0032: completion: hang with line completion and fuzzy
- 93a8acb1b8 9.2.0033: filetype: sh filetype used for env files
- 30d9970cd7 9.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy" (#37996)
- 3f4ef487da 9.2.0040: completion: preinsert wrong with register completion (#38003)
- b775c722dd 9.2.0041: Not always using GA_CONCAT_LITERAL
- 327dcb8970 9.2.0046: filetype: neon files are not recoginzed (#38049)
- a89b9750ee 9.2.0050: WM_SETFOCUS not handled immediately
- 1fe1b2525f 9.2.0054: eval_addblob() is inefficient (#38067)
- 9288357d59 9.2.0055: memory leak in ExpandFromContext() (#38066)
- 7852993f49 9.2.0061: Not possible to know when a session will be loaded (#38071)
- cd4c7850d0 9.2.0070: tests: various tests leave swapfiles around
- 95ddabdb2b 9.2.0074: [security]: Crash with overlong emacs tag file
- e85fc92a6b 9.2.0075: [security]: Buffer underflow with emacs tag file
- 7e8bdd348c 9.2.0077: [security]: Crash when recovering a corrupted swap file (#38104)
- a416494e64 9.2.0078: [security]: stack-buffer-overflow in build_stl_str_hl() (#38102)
- 563f9ef799 9.2.0081: Failed "z=" does not reset 'nospell' setting (#38109)
- 3e81072293 9.2.0088: cannot display tabs for indentation
- 518aa46158 9.2.0090: "leadtab" behavior inconsistent on line with only TABs
- 0cfeedb088 9.2.0091: missing out-of-memory checks in quickfix.c
- 0676503ab5 9.2.0097: Memory leak in qf_push_dir()
- 6ddcc84a6c 9.2.0102: 'listchars' "leadtab" not used in :list (#38142)
- a22c699ecb 9.2.0106: memory leak in expand_findfunc()
- 843bc1aa8d 9.2.0108: byteidx_common() and f_utf16idx() call ptr2len() twice (#38159)
- f1e65bde02 9.2.0120: tests: test_normal fails
- 9a9b9c581c 9.2.0121: patch memory leak in list_extend_func() in list.c (#38205)
- f21c56da84 9.2.0125: tests: test_textformat.vim leaves swapfiles behind
- 9734a6ce47 9.2.0130: missing range flags for the :tab command (#38216)
- c1dcb8dac2 9.2.0131: potential buffer overflow in regdump() (#38217)
- 3a7ade847f 9.2.0132: tests: Test_recover_corrupted_swap_file1 fails on be systems (#38238)
- e5667b9c15 9.2.0137: [security]: crash with composing char in collection range (#38261)
- f847aa6208 9.2.0140: file reading performance can be improved (#38266)
- 6dd634b025 9.2.0143: termdebug: no support for thread and condition in :Break
- 878c9739e1 9.2.0147: blob: concatenation can be improved (#38276)
- d3bca3b7fa 9.2.0152: concatenating strings is slow (#38286)
- f58d24040a 9.2.0155: filetype: ObjectScript are not recognized (#38288)
- 80684a418b 9.2.0159: Crash when reading quickfix line
- 1aaa8e8e3a 9.2.0162: tests: unnecessary CheckRunVimInTerminal in test_quickfix
- 0082cd3134 9.2.0165: tests: perleval fails in the sandbox
- 9ab6c607cc 9.2.0180: possible crash with winminheight=0 (#38335)
- 33b357d01f 9.2.0182: autocmds may leave windows with w_locked set #38332
- e2c3106b85 9.2.0201: filetype: Wireguard config files not recognized
- f577e05522 9.2.0202: [security]: command injection via newline in glob() (#38385)
- a18d51a958 9.2.0204: filetype: cps files are not recognized
- d36e7787c1 9.2.0209: freeze during wildmenu completion (#38386)
- 0655a359ae 9.2.0217: filetype: cto files are not recognized (#38400)
- a969e92249 9.2.0219: call stack can be corrupted (#38406)
- 11b9ec38d2 9.2.0222: "zb" scrolls incorrectly with cursor on fold (#38423)
- e51f217be7 9.2.0223: Option handling for key:value suboptions is limited (#38426)
- fae782557c 9.2.0226: No 'incsearch' highlighting support for :uniq (#38425)
- 416e542992 9.2.0233: Compiler warning in strings.c (#38450)
- 1de1c08210 9.2.0235: filetype: wks files are not recognized (#38451)
- 6dfcb2b784 9.2.0237: filetype: ObjectScript routines are not recognized (#38479)
- f806c77391 9.2.0239: signcolumn may cause flicker (#38477)
- 5a7df03b42 9.2.0265: unnecessary restrictions for defining dictionary function names (#38524)
- ba89354a45 9.2.0270: test: trailing spaces used in tests
- 965f54cf50 96dab9c: check.vim: Further improve po message checks
- 5a83f23430 98a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() (#36919)
- 95b6215f0a c858382: Problem:  Commit 6f585d breaks CI
- 1244fe157f ecf90b9: CI: make dependabot monitor `.github/actions` directory (#38383)
- 96e9041a78 partial:8.1.1939: code for handling v: variables in generic eval file (#35968)
- 2a267d1cbf partial:8.2.1328: no space allowed before comma in list
- e31cfc5eac partial:8.2.2400: Vim9: compiled functions are not profiled
- df65f87fd7 partial:8.2.3149: some plugins have a problem with the error check
- 00bec1fd90 partial:8f7256a (#34368)
- 50efe61c3c partial:9.0.0323: using common name in tests leads to flaky tests
- 5671b61327 partial:9.0.0877: using freed memory with :comclear while listing commands
- 92596a37e7 partial:9.0.0907: restoring window after WinScrolled may fail
- 62de643b89 partial:9.0.1570: some tests are slow
- dff515205c partial:9.1.0613: tests: termdebug test may fail and leave file around
- 3f62fe4bd8 partial:9.1.0973: too many strlen() calls in fileio.c
- 42640c62d1 partial:9.1.1004: tests: a few termdebug tests are flaky
- dfd3ac6f48 partial:9.1.1110: Vim tests are slow and flaky
- 5c4d9261a4 partial:9.1.1110: Vim tests are slow and flaky
- ab5c15610f partial:9.1.1371: style: indentation and brace issues in insexpand.c
- a16064ff29 partial:9.1.1639: completion: popup may be misplaced
- cbec4603a0 partial:9.1.1668: items() does not work for Blobs
- 4edeaaa6e2 partial:9.1.1708: tests: various tests can be improved (#35548)
- 7468db5187 partial:9.1.1847: No cmdline completion for :echoconsole and :echowindow (#36157)
- c70e8ef9b7 partial:9.1.1887: string handling in strings.c can be improved
- 5370b7a2e0 partial:9.1.1955: sort() does not handle large numbers correctly (#36840)
- 147190d8e7 partial:9.1.2044: Inefficient use of ga_concat() (#37209)
- 72eb9fe87c partial:9.1.2137: test: Update tests for OpenBSD (#37766)
- 18c5f06c9f partial:9.2.0068: Inefficient use of list_append_string() (#38083)
- b23d00ce99 partial:9.2.0096: has() function is slow due to linear feature scan (#38135)
- 29fa072b34 partial:9.2.0126: String handling can be improved (#38214)
- 4c48f19e51 partial:9.2.0193: using copy_option_part() can be improved (#38369)
2026-03-29 18:16:17 +02:00
Justin M. Keyes
a99c469e54 NVIM v0.11.0
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).

Following is a list of fixes/features commits.

BREAKING
--------------------------------------------------------------------------------
- 0f4f7d32ce remove `nvim` and `provider` module for checkhealth
- 7dbbaaec3f rename 'jumpoptions' flag "unload" to "clean" (#30418)
- 35c5e23107 store artifact shasums in a single shasum.txt file
- 188ec19894 turn off translations by default
- 328ea02eb7 use utf8proc full casefolding
- 737f58e232 api: rename Dictionary => Dict
- a389dc2f95 clipboard: use OSC 52 as fallback clipboard provider (#31730)
- ad70c9892d column: rework 'statuscolumn' %r/l items
- eb60cd74fb deps: bump tree-sitter to HEAD, wasmtime to v29.0.1 (#32200)
- a119aae4d3 diagnostic: filter diagnostics by severity before passing to handlers (#30070)
- 51ccd12b3d diagnostic: make virtual text handler opt-in (#32079)
- a9e725b26e diagnostics: sort underline severity_sort (#30898)
- e8b5dd1e89 lsp: `symbol_to_item` requires `offset_encoding`
- 8260e4860b lsp: multiple client support for vim.lsp.buf.hover()
- debabaf884 lsp: pass buffer number to root_dir function
- 9b357e30fd lsp: remove client-server handlers from vim.lsp.handlers
- 3e3775961f lsp: rename lsp.completion.trigger() to get() (#32911)
- 0083e03d6f lsp: support multiple clients in goto methods (#30877)
- dff684fdb3 lsp: support multiple clients in lsp.buf.references
- 970a27927e lua: do not use typed table for empty dict
- de48fbbd5f messages: vim.ui_attach message callbacks are unsafe
- a27419f3fc options: disallow setting hidden options #28400
- b922b7d6d7 options: use OptVal for option defaults #26691
- 4d9a1b9852 provider/python: add python 3.13, drop 3.7 and 3.8 (EOL) #33022
- 318676ad13 release: remove backwards compatible releases
- ad191be65e signs: place higher-priority signs from the left #27781
- 0dd933265f terminal: cursor shape and blink (#31562)
- 35e5307af2 terminal: include cursor position in TermRequest event data (#31609)
- 3cf602486c terminal: make 'belloff' and 'visualbell' apply to terminal bell (#30859)
- 041d98fe8d treesitter: add default fallback to `ft_to_lang` lookups
- 6913c5e1d9 treesitter: default to correct behavior for quantified captures (#30193)
- bd4ca22d03 treesitter: don't parse tree in get_parser() or start()
- a0b52e7cb3 treesitter: enforce buffer is loaded when creating parser
- 99e0facf3a treesitter: use return values in `language.add()`
- bda63d5b97 typval: remove distinction of binary and nonbinary strings
- 48e2a73610 ui: emit prompt "messages" as cmdline events #31525
- ca5fca2912 windows: drop cat and tee executables from windows
- be89d520d7 windows: only support UCRT, even for mingw

FEATURES
--------------------------------------------------------------------------------
- efa45832ea add "jump" options to vim.diagnostic.config() (#29067)
- 0631492f9c add vim.fs.relpath
- f864b68c5b allow gx to function for markdown links
- f3632e14e3 get/set namespace properties #28728
- a664246171 remove deprecated features
- ead5683ff9 api: add err field to nvim_echo() opts
- aec4938a21 api: broadcast events to ALL channels #28487
- 34d808b73c api: combined highlights in nvim_eval_statusline()
- 19b25f3fea api: deprecate nvim_buf_add_highlight()
- 5c92b40b4b api: deprecate nvim_out/err_write(ln)
- d84a95da7e api: nvim_get_autocmds filter by id#31549
- 25d8c3a5ad api: nvim_open_win() relative to tabline and laststatus #32006
- e00d67ef31 checkhealth: group parsers by name and path in output
- 563051a53e clipboard: support g:clipboard="osc52" #33021
- 60ea046741 clipboard: try cygutils, clip on Windows #30215
- 2c629ad13f column: apply appropriate numhl highlight to virt_lines (#32400)
- 65c7033cbe comment: allow commentstring to be determined from node metadata
- 268a3de0a7 complete: CompleteDone reason "cancel", "discard" #32600
- a616272f56 complete: specify reason for CompleteDone
- f1748b78e3 default: bind `vim.lsp.buf.signature_help` in select mode (#31223)
- ac207c3ac2 defaults: "Show Diagnostics" in mouse popupmenu #32122
- 2c6b635872 defaults: add LSP default mappings (again) (#28650)
- bb7604edda defaults: add default unimpaired style mappings (#28525)
- 4662ad5643 defaults: completeopt=popup #32909
- e8e3b443f8 defaults: disable 'foldcolumn' in terminal buffers (#31480)
- cc6992f1ca defaults: dot-repeat [<Space> #31186
- 6db830e40e defaults: enable diffopt "linematch" #32346
- b31132f1c1 defaults: jump between :terminal shell prompts with ]]/[[ #32736
- 0b7cc014fc defaults: map gO to LSP document_symbol #30781
- 26e765f905 defaults: map gri to vim.lsp.buf.implementation() (#30764)
- 76aa3e52be defaults: popupmenu "Open in browser", "Go to definition" #30261
- 09d76afe84 defaults: pretty :help headings #30544
- 079e5f4f9b defaults: unimpaired empty line below/above cursor #30984
- 1c6d920052 defaults: use vim.diagnostic.jump() for default mappings (#29066)
- c9c17fda80 deprecations: vim._defer_deprecated_module()
- 38a52caec0 diagnostic: add `current_line` option for `virtual_text` handler
- 8ba73f0e4c diagnostic: add vim.diagnostic.jump() (#26745)
- 445ecca398 diagnostic: format() can filter diagnostics by returning nil #32302
- 99e7323aa3 diagnostic: inherit parent 'path' option in open_float (#31273)
- 21961967ff diagnostic: update quickfix list by title #31486
- 7579af3c51 diagnostic: vim.diagnostic.setqflist improvements #30868
- 1759b7844a diagnostic: virtual_lines #31959
- fd65422b99 diff: do not try external when out of memory
- 0c296ab224 docs: "yxx" runs Lua/Vimscript code examples #31904
- 6628741ada docs: improve `@see` meta docstrings #30693
- 23290e7676 editor: handle new multibyte sequences in normal mode replacement
- cb6c0fda71 editorconfig: add support for spelling_language (#28638)
- 4817547ec4 ex_cmds: :sleep! hides the cursor while sleeping (#31493)
- 4f9260d06a ext_messages: add hl_id to ext_messages chunks
- 4cced601c8 extmark: stack multiple highlight groups in `hl_group`
- 931ee5591f extmarks: virtual text can be right-aligned, truncated #31921
- 62d9fab9af float: add winborder option (#31074)
- 9b8907d905 float: allow enabling mouse for non-focusable window (#30844)
- 511b991e66 fs.lua: add vim.fs.rm()
- 054a287dbe ftplugin: change 'commentstring' to `// %s` for C/C++ (#29085)
- f398e3a61a ftplugin: set Lua 'omnifunc' to vim.lua_omnifunc #32491
- b61051ccb4 func: allow manual cache invalidation for _memoize
- 548f19ccc3 health: close checkhealth buffers with q #31870
- f2fa4ca97e health: highlight headings #30525
- b12b91c274 health: show :checkhealth in floating window #31086
- 6592873f77 help: use treesitter for table of contents
- 3e09fbdf82 highlight: add StatusLineTerm and StatusLineTermNC groups
- 295920845e highlight: make `PmenuMatch` and `PmenuMatchSel` bold
- 5b1136a99c inccommand: preview 'nomodifiable' buffers #32034
- 61025c9e7a install: mention standard paths, XDG vars in Windows installer #29101
- 8ef41f5902 jobs: jobstart(…,{term=true}), deprecate termopen() #31343
- e7020306a1 jumplist: allow opting out of removing unloaded buffers (#29347)
- 8d55cc218c keysets: teach Union and LuaRefOf
- 5931f780e0 log: use "ui" as default name for TUI client #30345
- e4c6e732fd lsp: add select kind in showMessageRequest #32387
- f20335a54c lsp: add support for completionItem.command resolving
- 3f1d09bc94 lsp: add vim.lsp.config and vim.lsp.enable
- 6072153796 lsp: announce codeLens resolveSupport (#29956)
- 1f5bcc7c4e lsp: completion opts support custom item conversion (#30060)
- ff097f2091 lsp: completion side effects
- 7a7747f1e4 lsp: deprecate execute_command with client:exec_cmd
- 454ae672aa lsp: deprecate non-method client functions
- 54249d051c lsp: deprecate vim.lsp.buf.completion
- e56437cd48 lsp: deprecate vim.lsp.start_client #31341
- 55e4301036 lsp: drop fswatch, use inotifywait (#29374)
- dad55f5e76 lsp: export diagnostic conversion functions (#30064)
- 44229bb85b lsp: highlight hover target/range #31110
- 27f3750817 lsp: improve LSP doc hover rendering #30695
- 6722149776 lsp: include `end_col` and `end_lnum` in `vim.lsp.buf.symbols_to_items`
- 20f22f75ee lsp: include end_col, end_lnum in vim.lsp.buf.locations_to_items #29164
- 4e90bc3023 lsp: lsp.completion support set deprecated (#29882)
- 6e68fed374 lsp: multi-client support for signature_help
- 629483e24e lsp: require `offset_encoding` param #31249
- e00cd1ab40 lsp: return resolved config for vim.lsp.config[name]
- 130b5fd85f lsp: return table from lsp/ files on runtimepath (#31663)
- ce678043e3 lsp: show server name in code actions #30830
- 07d5dc8938 lsp: show server version in `:checkhealth` #31611
- a1e313ded6 lsp: support `textDocument/foldingRange` (#31311)
- 3b0fe2659e lsp: support completion context #32793
- 41b07b128c lsp: support for resolving code action command (#32704)
- 35247b00a4 lsp: support function for client root_dir (#31630)
- 45e76acaa0 lsp: support hostname in rpc.connect #30238
- b2bad0ac91 lsp: support postfix snippets in completion
- d3e4ffafff lsp: support utf-8 and utf-32 position encodings
- 5d26934c7c lsp: update LSP healthcheck format (#28980)
- ae2fd91b41 lsp: update LSP types
- 0df2c6b5d0 lsp: use fuzzy match on filterText instead of prefix match
- e4c1f6667b lsp: use the meta model to generate server capability map
- 5581a95534 lsp: vim.lsp.buf.format() supports textDocument/rangesFormatting #27323
- 92e4e3fb76 lsp.util: fix type errors
- ff1d7d4299 lsp.util: get_bufs_with_prefix -> get_writeable_bufs
- cbc82011ce lsp.util: improve offset_encoding type annotations
- a18fa2f11c lsp.util: minor codestyle
- 1944c0d610 lsp.util: refactor get_border_size()
- f0973d4227 lsp.util: refactor symbols_to_items()
- 0e8568d72c lsp.util: remove lsp spec extract
- 0621718e3b lsp.util: remove metatable in locations_to_items
- 3f87e222f7 lsp.util: remove some aliases
- e954a16063 lsp.util: remove some variables
- 5bec7288a5 lsp.util: remove uneeded do-end
- 8ad000ef7c lsp.util: remove unneeded table
- d44d36b8ff lsp.util: simplify some bounds checking
- 0066dd0f65 lsp.util: use faster version of vim.validate
- 1edfe5c09e lsp.util: use vim.api alias
- 97119a2369 lsp.util: use vim.w/b
- cd53db2157 lua: add `context.env` (environment variables) to `vim._with()`
- 9afa1fd355 lua: add `vim._with`
- 5180707310 lua: add `vim.fs.abspath`
- b34e137e43 lua: allow vim.on_key() callback to consume the key (#30939)
- d5ae5c84e9 lua: completion for vim.fn, vim.v, vim.o #30472
- 0a5a0efda6 lua: don't complete private (_) fields after dot (.) #32690
- 07cc559cdf lua: update `vim._with` to allow more granular option contexts
- af0ef2ac9d lua: vim.hl.range() "timeout" #32012
- be1fbe38b3 lua: vim.text.indent()
- fdeb01cd77 main: expand file ~\ or ~/ prefix on Windows (#28515)
- ea5b748f24 man.vim: "q" always closes window #30819
- f58e7d5fac marks: add conceal_lines to nvim_buf_set_extmark()
- 51cf84daf9 marks: virtual lines support horizontal scrolling (#32497)
- cfdf68a7ac mbyte: support extended grapheme clusters including more emoji
- 124c655f56 messages: "g<" mapping for ext_messages
- cb7b4e2962 messages: "verbose" message kind #31991
- 5bae80899d messages: add :!cmd shell message kinds
- e16bec41b6 messages: confirm kind for z=, :tselect, inputlist() #32521
- 21151144c6 meta: add type for quickfix entries
- 82a215cb2d options: add 'eventignorewin' (#32152)
- d831392b15 paste: unify cancel and error behavior (#30476)
- 08c328b8b0 runtime: Lua ftplugin 'includeexpr' #32719
- f5714994bc runtime: Lua ftplugin sets 'omnifunc', 'foldexpr' #32697
- e6cfcaed18 snippet: add default keymaps during snippet session
- 123f8d229e snippet: set snippet keymaps permanent instead of dynamic (#31887)
- 96128a5076 startup: validate --listen address
- 230b0c7f02 stdlib: overload vim.str_byteindex, vim.str_utfindex #30735
- 517ecb85f5 stdlib: vim.json.encode(...,{escape_slash:boolean}) #30561
- 8df6736ca1 term: enable reflow by default (#21124)
- 4199671047 term: support OSC 8 hyperlinks in :terminal (#30050)
- 93480f7fba term: trigger TermRequest for APC (#32407)
- 3ad977f01d terminal: add support for copying with OSC 52 in embedded terminal (#29117)
- 6f0bde11cc terminal: add support for kitty keyboard protocol
- 06a1f82f1c terminal: forward X1 and X2 mouse events
- e3bfcf2fd4 terminal: support grapheme clusters, including emoji
- f1c45fc7a4 terminal: support theme update notifications (DEC mode 2031) (#31999)
- 56d11b494b terminal: disable 'number', 'relativenumber', and 'signcolumn' in terminal buffers (#31443)
- 34cd94812d test: support and document lua test case debugging
- b8c75a31e6 treesitter: #trim! can trim all whitespace
- ec8922978e treesitter: add more metadata to `language.inspect()` (#32657)
- bd3b6ec836 treesitter: add node_for_range function
- 688b961d13 treesitter: add support for wasm parsers
- 8543aa406c treesitter: allow LanguageTree:is_valid() to accept a range
- 44ccd9ca24 treesitter: allow `iter_captures` to accept `opts`
- 8b5a0a00c8 treesitter: allow disabling captures and patterns on TSQuery (#32790)
- 1af55bfcf2 treesitter: allow get_node to return anonymous nodes
- a94a2927d0 treesitter: allow passing lang to InspectTree
- 45e606b1fd treesitter: async parsing
- 3dfb9e6f60 treesitter: include capture id in return value of `get_captures_at_pos()` #30559
- 267c7525f7 treesitter: introduce child_with_descendant()
- 09f9f0a946 treesitter: show which nodes are missing in InspectTree
- b9b408a56c treesitter: start moving get_parser to return nil #30313
- da0ae95349 treesitter: support modelines in `query.set()` (#30257)
- 2e5b560482 treesitter: table of contents for checkhealth, markdown (#32282)
- 8ba047e33f treesitter: vertical conceal support for highlighter
- ff85e54939 tui: builtin UI (TUI) sets client info #30397
- 4fb3b57a19 tui: handle kitty key events in libtermkey (#31727)
- f93ecd2760 tui: parse CSI subparams in termkey (#29805)
- 44dbfcfba4 tui: recognize X1 and X2 mouse events
- e41368f3bc tui: support in-band resize events (#29791)
- d460928263 tui: update 'background' on theme change events (#31350)
- 45e319ade6 tutor: give hints to satisfy the line checker #30952
- 4b0e2605ea ui: UI :detach command
- 394f69a25d ui: additional arguments for cmdline_show/hide events
- a0e3fe5741 ui: cascading style inheritance for Pmenu* highlights #29980
- f85bc41c80 ui: don't show unfocusable windows in :tabs, 'tabline' #27984
- 9762c5e340 ui: gx: use url extmark attribute and tree-sitter directive (#30192)
- 43d552c566 ui: more intuitive :substitute confirm prompt #31787
- 433b342baa ui: sign/statuscolumn can combine highlight attrs #31575
- a10636fbe7 ui: specify whether msg_show event is added to history
- e049c6e4c0 ui: statusline text inherits highlights #29976
- 611ef35491 vim.fs: find(), dir() can "follow" symlinks #31551
- 3f15e57b26 vim.ui: configurable "gx" / vim.ui.open() tool
- f4b620c4e6 vim.ui.open: support lemonade #30845
- 3572319b4c vim.validate: improve fast form and deprecate spec form
- cb84cd5d9f win32: embed executable icon

FIXES
--------------------------------------------------------------------------------
- 200e7ad157 apply the change on more files
- 6720bd440f assert failure in VimL expression parser
- d123202ae6 change deprecation presentation
- ded15ca8c2 completion.enable(false,...) deletes invalid augroup #32121
- 7737f89206 deps build for ARM64 MSVC
- 50749f8df8 extend the life of vim.tbl_flatten to 0.13
- 25abcd243e fix broken wasmtime build
- b6ab294838 fix incorrect search code
- 46b69aaf14 include nvim/ascii_defs.h
- 01b4da65c2 merge all provider healthchecks into a single health.lua
- 5c245ec3e9 remove vim.lsp._with_extend
- 98ba65b8be replace NVIM with Nvim in default titlestring (#30348)
- 6aa42e8f92 resolve all remaining LuaLS diagnostics
- e71713ba2b show swapfile warning as a warning (#28971)
- 0418107074 update osc52 termfeatures flag on UIEnter/UILeave (#32756)
- 0829e7575d warn when :InspectTree on buffer with no parser #32783
- 47f2769b46 Man: completion on Mac
- 89f9f168a5 api: alloc and draw cursor window in nvim__redraw
- 743c5808b6 api: allow `scope = 'local'` with `buf` when using `nvim_get_option_value`
- 487c48ec86 api: clamp range lines in `nvim__redraw()` (#31710)
- 141114c170 api: crash on invalid buffer to nvim_buf_del_user_command (#31908)
- 716adbcc45 api: deprecate nvim_subscribe, nvim_unsubscribe #30456
- 1e47aa677a api: deprecated API nvim_get_option does not validate option name #31919
- 095c0876c2 api: don't override Vimscript SID (#32610)
- bff07f6dd0 api: don't try to get/set option for invalid option name (#31302)
- 0e59f6f4c7 api: don't use 'winborder' when reconfiguring float (#32984)
- cce1eb0806 api: error properly with invalid field in nvim_open_win (#30078)
- 63bbb7c109 api: fix 'winborder' preventing splits with nvim_open_win (#32981)
- f55213ce0e api: fix crash/leak with float title/footer on error (#30543)
- 022449b522 api: generic error messages, not using TRY_WRAP #31596
- 8de1dc6923 api: make `nvim_set_hl()` respect all `cterm` attributes (#31390)
- ad60b3fb48 api: memory leaks in vim.api.nvim_*get_option #32390
- 167a2383b9 api: not using TRY_WRAP, generic error messages #31595
- bf48dfadec api: nvim__complete_set requires completeopt=popup #31177
- d1d7d54680 api: nvim_buf_get_text() crashes with large negative column #28740
- 6ea45031d5 api: nvim_echo free text memory with invalid highlight (#31243)
- e2ad251c8d api: nvim_get_option_value does not clean up on FileType error #31219
- 5b9518b436 api: nvim_set_decoration_provider callback return type #31912
- 01a97d2ad7 api: nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576
- 40347f6e27 api: only flush nvim__redraw when necessary #31250
- 36f44b3121 api: remove invalid assertions
- 235cb5bc5f api: update "range" windows in nvim__redraw #31042
- 9c718bc2bc api: validation, documentation of hl_group #31195
- 289c9d21cb autocmds: once=true Lua event-handler may call itself #29544
- ffaab09e99 build: <termios.h> is system-dependent #31705
- 486076a0e1 build: remove USE_FNAME_CASE, redundant with CASE_INSENSITIVE_FILENAME
- 217e26cb64 build: surpress spurious warnings from gcc in -E preprocessor mode
- 34a2bfdcc5 build: vimdoc tags are not validated #32801
- 8070988247 channel: handle writing to file instead of pipe (#30519)
- c49162be59 channel: log after (not before) channel-close
- 965dc81f81 checkhealth: disable 'listchars' #31245
- 4c9f3689a1 checkhealth: failed if 'lua' in plugin name
- f5dd30948e checkhealth: handle nested lua/ directory #32918
- c48cf18752 checkhealth: module not found when `&rtp` has nested paths #32988
- 2495e7e22a clipboard: tmux clipboard depends on $TMUX #31268
- 847c28f6f6 cmdline: always show cmdline when it is a prompt #31866
- af4231d407 cmdline: cmdline completion of _defer_require() modules #33007
- a70ad5cdb6 cmdline: ext_cmdline block events for conditionals
- bbf36ef8ef cmdline: prevent cmdline_show events after exiting cmdline #32033
- 092042b43d cmdline: simplify and correct grapheme cluster adjustment
- 86ae59c612 colorscheme: distinguish CursorLine/Folded/StatusLineNC highlights #32256
- 9b9f54e2c1 colorscheme: underline StatusLineNC with 'notermguicolors' #28810
- 8bc28978b6 column: apply custom highlight to last 'statuscolumn' segment (#32182)
- 3cb1e825e6 column: check if signcolumn changed in all windows #31439
- 1dcda86559 column: clamp line number for legacy signs
- f2083bd55c column: crash with 'signcolumn' set to "number" (#29003)
- f9a49fab0c column: modifying a sign should update placed signs (#29750)
- d5f6f61879 column: set signcolumn width after splitting window (#30556)
- 063b69bab4 column: unnecessary redraws with resized 'statuscolumn' (#32944)
- 0a2218f965 comment: fall back to using trimmed comment markers (#28938)
- e788d1a3a9 completion: avoid deleting text when completion leader changes #31448
- bfa365a872 completion: don't include <Lua function> in -complete= (#30209)
- 55dc482e75 completion: fix inconsistent Enter behavior (#30196)
- 83a7d97d64 coverity: CID 509571 Uninitialized variables #30395
- e1c2179dd9 coverity: INTEGER_OVERFLOW #31657
- f9eb68f340 coverity: error handling CHECKED_RETURN #31618
- 069451bb21 coverity: size_t overflow #30497
- ff7832ad3f coverity/497355: shada_read_when_writing out of bounds read #30665
- c49030b75a coverity/497375: f_strpart cast overflow (#30773)
- 0fe4362e21 coverity/509227/509228: tui driver_ti underflow #30341
- 60e1862ccb coverity/510275: linematch out of bounds access (#30687)
- a2008118a0 coverity/510436: shada_read_when_writing index out of bounds (#30686)
- 71507281fb coverity/530826: validate_opt_idx unchecked negative idx (#32081)
- 5af9c065ad decor: don't draw invalidated virtual lines (#29858)
- a8fbe1d409 decor: don't use separate DecorSignHighlight for url (#30096)
- 34ded4d97b decor: exclude invalid marks from meta total
- 87610d82db decor: set invalid flag for end of invalidated paired marks
- 33ff546b50 decoration: fix crash when on_lines decor provider modifies marktree
- 0e299ebf75 decorator: noisy errors from decoration provider #31418
- f2173b1aa2 defaults: cannot remove "How-to disable mouse" menu item #30375
- 61aabe0730 defaults: default @/Q broken when 'ignorecase' is set (#29343)
- 8323398bc6 defaults: don't replace keycodes in Visual search mappings (#31460)
- f6f2334ac2 defaults: error messages UX for unimpaired mappings #30884
- 59a171fd99 defaults: improve visual search mappings #32378
- 01739d4673 defaults: missing ]Q/[Q unimpaired mappings #30943
- c644228e1d defaults: omit empty line from unimpaired mapping messages (#31347)
- ff93cccbc1 defaults: omit extraneous info from unimpaired mapping errors (#30983)
- 4075e613b2 defaults: properly pass count to quickfix commands (#30632)
- 289380bc40 defaults: use "range" instead of "count" for some mappings (#30642)
- 573fcb8b66 deps: revert accidental test commits (#30864)
- de794f2d24 diagnostic: broken variable reference #31557
- c78728a384 diagnostic: clear autocmd only for valid buf (#32861)
- f1fcf653cb diagnostic: clear virtual_lines autocmd only for valid buf #32979
- 921dc22fc0 diagnostic: correct `severity` type on `setqflist`, `setloclist` (#30506)
- 0e8e4a07f5 diagnostic: don't include diagnostic code when using custom formatter #32464
- d918ebe3b8 diagnostic: fix backwards compatibility for goto_next and goto_prev (#29593)
- f69937fdbd diagnostic: fix float scope filtering (#29134)
- 5bc948c050 diagnostic: improve current_line refresh logic #32275
- 4b3be56a03 diagnostic: make docs agree with code (#29561)
- fd902b1cb2 diagnostic: only store quickfix id when creating a new one #31466
- 3b1d0e7f70 diagnostic: remove deprecated `severity_limit` option
- 5eda7aafe9 diagnostic: setqflist() is stuck after vim.lsp.buf.document_symbol #31553
- 9a43ec13e6 diagnostic: show backtrace for deprecation warnings
- 4cbeb6fa3c diagnostic: silence :chistory #31701
- 6c975515c5 diagnostic: vim.diagnostic.setqflist() opens loclist on first call #31585
- 17c25a66fc diagnostic: virtual lines should scroll horizontally
- fb842dfc22 diagnostic: virtual_lines diagnostic columns (#32703)
- e5e81262af diagnostics: don't apply extmarks to invalid lines #29321
- c65646c247 diff: use mmfile_t in linematch
- 81ea44fa6a display: adjust winline info for concealed lines below last line (#32708)
- f25dd7a8d5 display: correctly store winline info for concealed lines (#32656)
- a901fb875f docs: add missing properties to hl_info #30032
- cc26cf0400 docs: do not treat indexes as `short_link`
- 056009f741 docs: markdown instead of vimdoc in meta docstrings #30680
- 8801b77ed0 docs: missing `@returns` desc in _meta/api.lua #30673
- 09bcb31068 docs: replace `yxx` mappings with `g==` #31947
- efe92f9dff docs: update context type in `vim.lsp.LocationOpts.OnList`
- b8135a76b7 docs: wrong return value annotation for `nvim_buf_get_extmarks`
- 376de1483e drawline: correct highlight priority with Visual selection (#30706)
- 9a0239fdc8 drawline: don't draw beyond end of window (#29035)
- b1c439cef6 drawline: don't draw beyond end of window with 'rnu' (#29406)
- 34344b939c editor: avoid scrolling :substitute confirm message #32149
- 9e7b0bcf51 editorconfig: fix indent style for `local.mk` (#31342)
- b0a1d35f69 eval: don't shorten $HOME in v:stacktrace (#32634)
- 2a3561819e eval: handle wrong v:lua in expr option properly (#29953)
- 4317d36669 event-loop: process input before events in getchar() (#32322)
- f05a6666cf events: always allow some events to be nested (#32706)
- e9f4ceeb74 events: don't expand `args.file` for Lua callback (#31473)
- 1f49a59b8b events: fix incorrect capitalization of Cmdwin* events (#32813)
- 8c2d45be77 exit: close memfiles after processing events (#30872)
- c7ec010ade extmark: builtin completion can still affect nearby extmarks #31387
- 93278e7720 extmark: clearer error message for invalid ephemeral mark usage
- 43a2019f09 extmarks: issues with revalidating marks #28961
- 84ad95fdc9 fileio: copy to correct buffer position when reading
- 93347a67bf filetype: fix :filetype detect error with -u NONE (#29991)
- aa9f21ee95 filetype: fix typos in filetype detection
- 032e024f8a filetype: handle .in files with no filename (#30487)
- 1077843b9b filetype: make filetype detection work with :doautocmd (#31470)
- 21cbd90007 filetype: normalize full path before matching #32227
- 5a8a34dafa filetype: source ftdetect/* after creating scripts.vim autocmds (#29445)
- cff5fa49fc float: "Not enough room" error for 1-line float #25192
- 07c5f41da3 float: can set title/footer without setting border #32594
- be01b361d8 float: cannot set title/footer independently #31993
- ff1791c9e5 float: close preview float window when no selected #29745
- d2cca606a1 float: ensure floating window width can fit title
- 8ddcf9d939 float: handle error in win_float_create() (#29742)
- 8b2b1fba2a float: missing default highlight for title
- df915f3afc float: properly find last window of tabpage (#30571)
- 17383870dd float: re-sort layers when grid zindex changed #30259
- 206f8f24a2 fs: make vim.fs.root work for relative paths and unnamed buffers (#28964)
- 2c160f39d3 ftplugin/man.vim: hide signcolumn (auto)
- 214ce8d33c gen_help_html: first tag in h2 is broken #30720
- ceea6898a8 gen_help_html: handle delimiter, heading #29415
- 6c3f7e7e27 gen_vimdoc: correctly generate function fields
- 913e81c35f getchar: do not simplify keycodes in terminal mode
- b109b1abce glob: avoid `subcapture nesting too deep` error (#29520)
- 4bd86120d4 glob: handle overlapping `{}` condition elements #29236
- b47b0b3f75 grid: double grid_line_start() with ext_messages #31292
- fe87656f29 grid: grid_line_start NULL access with 'redrawdebug'
- a9c89bcbf6 gx: allow `@` in url
- 570a8da01b health: "q" should not close last window #31876
- 2e3f1069f4 health: better layout of vim.treesitter health check
- 10f9173519 health: broken ruby detect #28804
- 84e85aeb10 health: check more "old" files #30421
- 5b778a64ec health: fix fetching url with python in provider health (#29594)
- b4b4cf46a7 health: fix pyenv root and python exepath detect issue
- 237d2aef4d health: return correct name from 'path2name()'
- 5e90406487 health: set nomodifiable in checkhealth buffers
- 9177371014 help: remove runnable code virtual text
- ff75f345ab highlight: 'winhl' shouldn't take priority over API (#31288)
- 458473acb8 highlight: add `StatusLineTerm`/`StatusLineTermNC` to `:color vim` (#29313)
- 6bcefad5a6 highlight: fix the seg fault caused by the invalid linked hl ids
- 8e81212e15 highlight: floating windows inherit NormalFloat from global-ns
- 6719276040 highlight: make TablineSel more noticeable with 'notermguicolors' #31905
- b67fcd0488 highlight: make `TablineSel` more noticeable #31896
- 862679c70f highlight: update `PmenuSel` for colored completion items #30183
- 59e130b6ca inccommand: ensure cursor is where it belongs
- 16f63b964f input: handle vim.on_key() properly with ALT and K_SPECIAL (#29677)
- b52ffd0a59 inspect: always show priority
- 9c278af7cc inspect: show priority for treesitter highlights
- 22fd52325b inspector: update semantic token namespace (#32157)
- efe1732c6f jobs: do not block UI when jobwait() doesn't block (#31803)
- 574ea6a191 keycodes: recognize <Find>, <Select> #28431
- 67bb0cfa79 loader: follow the style of the error message for built-in loaders
- 44740e561f log: RPC log format #32337
- 851137f679 log: log unset $TMPDIR at "debug" level #32137
- c908c2560d log: unify error messages for vim.ui_attach/decor providers #33005
- a6f219b06b log: unintuitive message for undefined $TMPDIR
- 2e6d295f79 lsp: account for changedtick version gap on modified reset (#29170)
- fac96b72a5 lsp: add foldingrange method support check #31463
- 8263ed4670 lsp: add textDocument/documentLink to capability map (#28838)
- a41b6fd173 lsp: autocmds to close lsp preview windows not cleared
- b42dc232c5 lsp: autotrigger should only trigger on client's triggerCharacters (#32266)
- 7031949be0 lsp: avoid reusing diagnostics from different servers in actions (#30002)
- fc9b70826e lsp: avoid vim.keymap.del error when stopping a client (#29478)
- 39d79efa1e lsp: better multi-client support for callHierarchy
- bdfba8598b lsp: cancel pending requests before refreshing
- f9bf64d746 lsp: check buffer is loaded and valid #30330
- c2bf09ddff lsp: check for configuration workspace folders when reusing clients
- 81b372fecd lsp: check for nil response from server (#29196)
- a9cdf76e3a lsp: check for valid buf before processing semantic tokens response
- 230bc34ca5 lsp: check if buffer is valid before LspDetach autocmd (#29162)
- af200c10cf lsp: check if buffer was detached in on_init callback (#28914)
- 02097e43c8 lsp: check if sig_help window is focusable when configuring cycle keymap
- 025c874415 lsp: clear lsp client diagnostics (#29050)
- c374f26430 lsp: clear word when expand multi-lines word (#32393)
- adf7c98d60 lsp: compare URI instead of workspace folder name (#30962)
- b4599acbf8 lsp: correct hover result handling (#30995)
- f8d5811c71 lsp: correctly check for "codeAction/resolve" support
- 7d8db54441 lsp: delete b:lsp_floating_preview buf var after win close
- 2a1f604c77 lsp: delete bufvar inside WinClosed event
- 879d17ea8d lsp: detach all clients on_reload to force buf_state reload (#28875)
- 292365fa1b lsp: do not detach from buffer if there are uninitialized clients (#29029)
- 37bf4c572a lsp: do not reset buf version when detaching client (#29242)
- d56ba71af1 lsp: document_symbol uses loclist by default #32070
- 720b309c78 lsp: don't send foreign diagnostics to servers in buf.code_action (#29501)
- 1f2f460b4a lsp: don't show codelens for buffers that don't support it (#29690)
- 5f527f24f0 lsp: don't use completion filterText if prefix is empty
- 305012ea07 lsp: enable `additionalPropertiesSupport`
- 9d9ee3476e lsp: ensure watcher cancel
- aec7f1979a lsp: fallback to `label` for completion items if all others are missing (#29522)
- 33d10db5b7 lsp: filter completion candidates based on completeopt (#30945)
- b3109084c2 lsp: fix cursor position after snippet expansion (#30659)
- 4b001f297a lsp: fix infinite loop
- 983953858e lsp: fix isIncomplete condition in completion trigger (#30130)
- 2ce4a4d91e lsp: fix reverse sorting of same position text edits (#29212)
- 8654a97006 lsp: handle empty call hierarchy items #30349
- f279d1ae33 lsp: handle encoding bounds in str_utfindex_enc
- 882a450a29 lsp: handle locations exceeding line length #30253
- 008782208d lsp: handle mixed encoding in tagfunc params
- e0a5c3bb58 lsp: handle multiline signature help labels #30460
- 8512f669f0 lsp: handle nil bytes in strings
- f03b1622ad lsp: handle nil root_dir in health check (#29007)
- ed07167261 lsp: handle non-existent configs in lsp.config/enable
- 003b8a251d lsp: handle out-of-bounds character positions #30288
- 5187be81c2 lsp: handle using array as open_floating_preview title (#33016)
- d9a2acdab3 lsp: hide layout in codelenses in virtual text (#28794) (#28807)
- f54266dbed lsp: hover border type can be string (#31013)
- 9a681ad09e lsp: hover keymap (#31208)
- a14fca432b lsp: improve LSP floating preview window cleanup #31353
- e29f245a10 lsp: inlay hints are rendered in the correct order (#29707)
- 0086ee90dd lsp: list all workspace folders in healthcheck #30966
- 0e394f136f lsp: log when receiving markup messages (#30065)
- 203e7a43d1 lsp: mention function name in warning #31301
- a4f575abd8 lsp: minimum height for floating popup #31990
- 4fd2694f20 lsp: missing method parameter when canceling requests
- be8d87014c lsp: on detach, cancel pending foldingRange requests #31509
- 7d5866d471 lsp: open_floating_preview() ignores max_height (#32716)
- 86770108e2 lsp: open_floating_preview() zindex relative to current window #31886
- 724d1110b1 lsp: pre-filter matches on label if filterText is missing (#29491)
- a450fda4ed lsp: prefer `on_list` over `loclist` in default handler
- 6bb40f3dbf lsp: prevent desync due to empty buffer (#29904)
- eb629cce91 lsp: redundant spaces in lsp log (#29970)
- 43581011e4 lsp: remove superfluous on_detach callback from semantic tokens module (#29174)
- d76f7fef13 lsp: reset active request when reporting an error
- 6bc7979044 lsp: reset the applied hints on `refresh` request #32446
- 47aaddfa0d lsp: resize hover window for concealed lines
- 081beb3659 lsp: restore get_language_id behaviour
- 29c72cdf4a lsp: retrigger diagnostics request on server cancellation (#31345)
- d9ccd828b0 lsp: return call hierarchy item, not the index (#30145)
- 9c20342297 lsp: reuse client if configs match and no root dir
- 6e45cd7f00 lsp: revert buf_versions deprecation/replacement (#29217)
- bdff50dee5 lsp: revert text edit application order change (#29877)
- e8a6c1b021 lsp: schedule call to vim.lsp.start for async root_dir (#31998)
- a108852b00 lsp: semantic token functions allow "0" bufnr #28849
- c3cb702ac7 lsp: set 'smoothscroll' in docs hover #30748
- 8a236c242a lsp: set floating window filetype after setup #32112
- 3c51058d76 lsp: set tagstack on jump via goto methods
- 24d7debdfb lsp: signature_help highlights wrong parameter #32382
- 80e37aa533 lsp: str_byteindex_enc bounds checking #30747
- 629a5b71b5 lsp: support multiple clients in typehierarchy
- e48179f31e lsp: suppress completion request if completion is active (#30028)
- 50f006b617 lsp: tagfunc fails in unusual buffer #30700
- 5ac8db10f0 lsp: trigger LspDetach on buffer delete (#28795)
- 19be3d2683 lsp: trim trailing whitespace from completion words (#29122)
- aa47af7e69 lsp: tune completion word extraction for decorated labels (#29331)
- 38838fb00a lsp: type-errors, other nits in vim.lsp.log #31235
- 8d7eb03040 lsp: unify get_completion_word for textEdits/insertText
- fe5ae88b20 lsp: update request name to capability map #30098
- 5aa9906676 lsp: use client.id instead of pairs index (#29143)
- c8d7d65679 lsp: use correct method for prepareTypehierarchy
- b9e6fa7ec8 lsp: use filterText as word if textEdit/label doesn't match
- 5d08b65ac2 lsp: use unresolved code action when `codeAction/resolve` fails
- 0a7e4e9e5f lsp: vim.lsp.enable(...,false) does not disable  #32002
- 888a803755 lsp: vim.lsp.start fails if existing client has no workspace_folders #31608
- 42ed0ffad9 lsp: when prefix is non word add all result into matches (#30044)
- 55bdb077b7 lsp: wrapped ctx in opts before passed to vim.lsp.completion.trigger #32837
- 2dcbfe78fc lsp.buf: use correct offset_encoding for all requests
- 3275ae830d lsp.protocal: improve typing of constants
- acbc6a7f91 lsp.util: inconsistent handling of offset_encoding
- 564173e556 lsp.util: wrong arguments to 'validate' function
- 614c9322d5 lua: SIGSEGV in luv callback with error(nil) #32595
- b283736388 lua: `@private` => `@nodoc` #32587
- b6e350a6b4 lua: allows tables with integer keys to be merged in tbl_deep_extend
- c8b64b7a43 lua: always use vim.inspect() for :lua= (#32715)
- 0e42c81c7f lua: avoid recursive vim.on_key() callback (#30753)
- fe1e2eff06 lua: avoid vim._with() double-free with cmdmod (#31505)
- 487f44a6c1 lua: change some vim.fn.expand() to vim.fs.normalize() (#29583)
- 43bd9c9c1c lua: don't clamp -1 or v:maxcol in vim.highlight.range() (#29203)
- bdc6e38781 lua: don't include text after cursor in completion pattern (#29587)
- e2aca58bcc lua: don't override script ID from :source (#32626)
- d40481322a lua: ensure inspect_pos() only shows visible highlight extmarks
- 948f2beed4 lua: find length of completion prefix earlier (#29384)
- ebb963a4a0 lua: format errors from luv callbacks using __tostring
- 65a703e060 lua: ignore stdout and stderr for xdg-open
- 6b00c9acfd lua: no omni/cmdline completion for vim.env (#33044)
- c6d2cbf8f5 lua: pop retval for fast context LuaRef
- a5b1b83a26 lua: prevent SIGSEGV when lua error is NULL in libuv_worker
- 3d707e6f14 lua: remove vim.loader.disable() #31344
- 3a88113246 lua: revert vim.tbl_extend behavior change and document it
- 3688a33354 lua: show stacktrace for error in vim.on_key() callback (#31021)
- 40a149e7f9 lua: types for vim.api.keyset.win_config #32700
- 7f33c1967b lua: use rawget() to get __call in vim.is_callable() (#29536)
- 960fdc775a lua: vim.deprecate does not support major>0
- d832518ec6 lua: vim.hl.on_yank highlights wrong region with yi' (#32850)
- cd3855fb2b lua: vim.tbl_get({}, nil, 1) should return nil #32218
- 89d6d6f25c lua: wrong script context for option set by func from nvim_exec2 (#32659)
- 9eb0426002 luacats: allow all types inside tuples
- ee5aaba215 man: avoid setting v:errmsg (#30052)
- 7588ff2d89 man: check if buffer is valid before restoring 'tagfunc' (#30180)
- da6f68ee69 man: filter OSC 8 hyperlink markup #29171
- 7940ec6913 man.lua: `:Man <tab>` does not complete #31569
- e08e3d15f6 man.lua: skip `Attrs.None` highlights #32262
- d6653e1cc9 marks: ensure decor is removed with proper range (#32973)
- 906ad04ddd marks: handle composing in inline virt_text with 'nowrap' (#32477)
- 8452032554 marks: handle double-with inline virt_text with 'nowrap' (#32476)
- 86046c5a31 marks: ineffective conceal_line callback optimization (#32662)
- 72f630f92d marks: issues with invalid marks and marks beyond eob (#32862)
- 8da59060c6 marks: mark winline as invalid if change is in a concealed line (#32766)
- 012db2b0f5 marks: revalidate marks whose position did not change
- 5cc93ef472 marks: revise metadata for start mark of revalidated pair #32017
- c4f76299f0 marks: skip right_gravity marks when deleting text
- cdedfc3743 marks: truncate double-width inline virt_text consistently (#32560)
- 7371abf755 marks: wrong winline info for concealed line with below virt line (#32747)
- a9287dd882 mbyte: check for utf8proc_map() failure (#30531)
- 50a576ba57 mbyte: mark any 0xFE0F sequence as a TUI ambiguous width char
- 15bc930fca memline: don't check line count for closed memline #32403
- aa976f0d93 messages: add a trailing space to inputlist() etc. prompts (#32328)
- 37c77ab46b messages: attaching/detaching ext_messages causes asserts #31952
- d98827b634 messages: avoid empty msg_showmode with 'noshowmode'
- 31d6885deb messages: better formatting for :highlight with ext_messages #31627
- 21718c67dd messages: better formatting for ext_messages #31839
- 92556be33d messages: compute msg_col after last newline in ext_messages
- ad853d1df0 messages: improve deadly signal messages #32364
- 51853b82bc messages: incorrect error message splitting and kind #32990
- 08f7c22377 messages: list_cmd kind for :registers, :au[g] #32531
- 7ce27381fb messages: lsp window/showMessage is not an error
- 1b6442034f messages: more ext_messages kinds #31279
- 9c6a3703bb messages: no message kind for :undo messages #31590
- ca760e645b messages: no message kind for :write messages #31519
- 909b18d05a messages: no message kind for completion menu messages #31646
- f111c32ff9 messages: no message kind for search pattern #31272
- 282f73f067 messages: no trailing newline for inputlist, tselect, z= with ext_messages
- 9fa3a0964e messages: pass previous highlight id to ext chunks
- e025f5a5b3 messages: proper multiline Lua print() messages #31205
- d1e00a5f6d messages: typo and unwanted truncation in msg_outtrans_long #31669
- d55b17e2b4 messages: verbose kind for nvim_echo()
- c8e47f6480 meta: do not use hyphens in param names
- 2cd72258f6 mouse: 'statuscolumn' fold and popopmenu handling
- 81d4e96bc8 mouse: don't treat click on hsep as click on statusline (#29565)
- 102971a396 mouse: early return when clicking in padded 'statuscolumn' (#29394)
- 86c5c8724b mouse: indicate X1 and X2 button clicks on statusline (#30655)
- f86864f22f move: 'scrolloff' cursor correction no longer handles folds properly (#32642)
- 5947f249f8 move: half-page scrolling with resized grid at eob (#28821)
- ac7e0ff32f move: redraw for 'concealcursor' after changing w_wcol (#31276)
- af0a2157ad move: wrong cursor row on concealed line (#32629)
- 83479b95ab mpack: remove invalid bool definition
- d32780de4d mswin: UI may hang on exit
- fa99afe35e multibyte: handle backspace of wide clusters in replace mode
- de83cc5842 netrw: re-add missing comment marker in syntax file
- d9585bdcfb nvim__set_complete: pum preview info truncated during completion #32555
- 34e2185022 options: better handling of empty values
- 190d0241e2 options: fix 'winborder' accepting multiple string values (#32978)
- 8c532a9ea8 options: fix 'winhl' still accepting invalid value (#30896)
- 1b9dafa67b options: fix :setglobal not working for 'spelloptions' (#30894)
- 395f420fc6 options: fix some 'belloff' flags not working properly (#30856)
- 50e63c8171 options: missing error check for global 'scl' and 'winhl' (#30919)
- e697c1b43d paste: improve repeating of pasted text (#30438)
- 052875b9dc paste: only record a paste when it's from RPC (#30491)
- 9516997eb0 paste: wrong '[ mark after pasting a big string (streamed chunks) #33025
- 42aa69b076 path: avoid chdir() when resolving path (#28799)
- 42db8b1759 path: crash with nvim_get_runtime_file during wildcard expansion (#32992)
- 0dfcf3fe12 plines: don't count invalidated virt text in char size (#29863)
- afc3c43f12 popup: new preview_bufnr created when menu item is selected #32819
- ac1c5ccb2c popup: reuse pum preview float win, set 'winfixbuf' #32636
- d288f7003d popup: wrong extmark data sync when lines changed in popup preview #30246
- d24fb72c33 pum: don't select item when clicking to the left/right (#30967)
- 73ae7d44a2 quickfix: make shortmess+=O work with cmdheight=0 (#29609)
- 3bcd5624be regexp: fix typo in E888 error message (#30161)
- cb924764a4 runtime: "E121 Undefined variable s:termguicolors" #32209
- 29a47b39cc runtime: E15: Invalid expression in lua file when `gf`
- b6c1ce8a95 runtime: add commentstring for glsl ftplugin
- 9ddfcb64bf runtime: add remaining missing commentstrings (#30252)
- e641155b02 runtime: avoid E31 in ftplugin (#32578)
- 82b02ae2f2 runtime: clean up one-off scripts
- 9788b81d7e runtime: fully port emoji_list to Lua
- 74fcc9452c runtime: gO always says "Help TOC" #32971
- 69aa33d890 runtime: let matchit and matchparen skips fallback on treesitter captures
- 8369590eb2 runtime: remove obsolete ftplugin/calender.lua
- 41b70a0dea runtime: set 'keywordprg' only once in vim ftplugin
- 7b16c1fa84 runtime: source c ftplugin properly for cpp on Windows (#29053)
- 12c9791e0f runtime: stop treesitter highlight in b:undo_ftplugin (#29533)
- 862338255d runtime: sync bundled treesitter queries
- 9e80738f30 runtime: sync bundled treesitter queries
- 5057753431 runtime: treat b:undo_ftplugin consistently in Lua ftplugins (#30473)
- 8f5e908110 runtime: update b:undo_ftplugin in Lua runtime files (#29529)
- a5bd6665b0 scripts: update bundled dependencies in bump_deps
- 573a71469d scrollbind: properly take filler/virtual lines into account
- a8b6fa07c4 search: avoid quadratic time complexity when computing fuzzy score (#32153)
- 648d6426c8 server: CID 509282: DEADCODE #30316
- f4921e2b7d shada: ":wshada/:rshada [filename]" with shadafile=NONE #32538
- cd48b72b60 shada: restore search pattern length properly (#28929)
- 608543f8a9 snippet: cancel snippet session when leaving the buffer (#29031)
- 7994fdba6a snippet: don't override unnamed register on tabstop select (#28998)
- 5fe4ce6678 snippet: modify base indentation when there's actually whitespace (#29670)
- 424f4cc038 snippet: wrong indentation when snippet contains "^" #32970
- d46ebd2a74 startup: avoid crash with completion from -l script (#32160)
- 08153ddd1c startup: ignore broken $XDG_RUNTIME_DIR #30285
- 17e00d0cc6 startup: report --startuptime error to stderr (#31131)
- 8a2aec9974 startup: server fails if $NVIM_APPNAME is relative dir #30310
- 19fc65acbc statuscolumn: misleading v:lnum for virtual lines #32912
- 87e806186c statusline: overwriting stl_items with nvim_eval_statusline() {-item #32265
- 1c30d86c33 tabline: restore behavior of click after last tabpage (#30602)
- a49f95d887 terminal: avoid mismatched `busy_start` without `busy_stop` (#32458)
- f3ce67549c terminal: avoid more `busy_start` lacking `busy_stop` (#32509)
- 3d49c55d3c terminal: avoid rescheduling events onto the same queue (#32755)
- 69a19295f8 terminal: delay when finishing terminal process #32846
- f8c8a245aa terminal: don't crash on unprintable chars
- 6d997f8068 terminal: handle C0 characters in OSC terminator (#30090)
- fa46441264 terminal: improve cursor refresh handling (#32596)
- 1d11808bfd terminal: interrupt/got_int hangs terminal (#30056)
- 3db3947b0e terminal: restore cursor from 'guicursor' on TermLeave (#31620)
- c51bf5a6b2 terminal: set cursor cell percentage (#31703)
- 5def8714ad terminal: set local values of window options (#29326)
- e9c077d197 termkey: fix null pointer dereference (#31792)
- c8e3618e0e test: "tempdir not a directory" in CI logs
- f7e32fb6e6 test: better management of tmpfiles
- db2c3d1143 tests: filter out lines with __typeof__ keyword (#32524)
- e61228a214 tests: needing two calls to setup a screen is cringe
- 639734bed4 tests: remove the __extension__ keyword  in filter_complex_blocks (#32483)
- 59baa5e8a1 tohtml: apply sp color if present #30110
- 67c39f5eca tohtml: disable modeline #32822
- e37404f7fe tohtml: enclose font-family names in quotation marks
- 25db0a1385 tohtml: extmark text may be out of bounds
- 8cd9feb501 tohtml: ignore lsp inlay hints
- eb37241d38 tohtml: properly handle multiple hl groups #29012
- 2ed6423c7e tohtml: replace ipairs with pairs
- 88c7997503 tohtml: show how many warnings are hidden
- 118ae7e5ed tohtml: support ranges again
- c63e49cce2 treesitter: #trim! range for nodes ending at col 0 #31488
- b63cd8cbae treesitter: EditQuery shows swapfile ATTENTION #30536
- 55b165ac15 treesitter: `TSNode:field()` returns all children with the given field
- 86b737649b treesitter: add 'QuitPre' event to autocommands in inspect_tree
- bc1018a8d3 treesitter: avoid computing fold levels for empty buffer
- a119dab40f treesitter: avoid computing foldlevels for reloaded buffer #32233
- 6696ea7f10 treesitter: clean up parsing queue
- 99acc9de55 treesitter: close InspectTree/EditQuery window on BufUnload (#31036)
- f50f86b9ff treesitter: compute folds on_changedtree only if not nil
- 7a20f93a92 treesitter: correct condition in `__has_ancestor`
- 9b25c68db2 treesitter: correctly parse queries with combined injections
- 3abfaafad2 treesitter: detect trees with outdated regions in `is_valid()`
- 9217e0d671 treesitter: display fields for anonymous nodes in :InspectTree
- da4e8dc5b0 treesitter: do not modify highlight state for _on_spell_nav
- 0e3e1e6b6d treesitter: don't open fold when o/O adds a line below #28709
- aa2b44fbb0 treesitter: don't return error message on success #31955
- b0bbe25c48 treesitter: don't spam query errors in the highlighter
- b88874d33c treesitter: empty queries can disable injections (#31748)
- d413038b4f treesitter: ensure syntaxset augroup exists (#29542)
- f8e1ebd6f6 treesitter: escape things like `"` in omnifunc results
- c4eb0b64bd treesitter: find buffer in multiple windows #28922
- 94d42a3e72 treesitter: highlight anonymous nodes in inspect_tree
- 5331f87f61 treesitter: indent size for inspect_tree #28727
- 6ef80eb42c treesitter: keep treeview open if source window is still open #31198
- 052e048db6 treesitter: lint top-level anonymous nodes
- 4b90952851 treesitter: mark supertype nodes as named
- 096ae3bfd7 treesitter: nil access when running string parser async
- c3337e357a treesitter: nil check query for has_conceal_line
- 6711fa27ca treesitter: recalculate folds on VimEnter #32240
- 05dcda8f9b treesitter: recognize aliased parsers in omnifunc, query linter
- d3193afc25 treesitter: remove duplicate symbol names in language.inspect()
- cdc9baeaf8 treesitter: remove redundant on_bytes callback #31041
- 1827ab7a1f treesitter: separately track the number of valid regions
- 36990f324d treesitter: show proper node name error messages
- 4349bdbd0b treesitter: specify success status in edit_query return value
- e7ebc5c13d treesitter: stop async parsing if buffer is invalid
- 0f067cd34d treesitter: suppress get_parser warnings via opts.error
- ae917dbd06 treesitter: sync queries from upstream
- c4e9ff30a6 treesitter: sync queries with upstream
- d8eec81560 treesitter: update lua, markdown queries
- 6e44a6a289 treesitter: update queries
- 5a54681025 treesitter: uv_dlclose after uv_dlerror
- e4bc8b5967 treesitter.foldexpr: only refresh valid buffers
- 48acbc4d64 treesitter.foldexpr: refresh in the buffers affected by OptionSet
- 8474f52978 treesitter.foldexpr: robustness against ctrl-c
- f81131cca2 tui: also reset cursor color if it was invisible (#31348)
- 4846bf05dc tui: avoid flushing buffer halfway an OSC 2 sequence (#30793)
- 720ec5cec2 tui: cursor color in suckless terminal #32310
- b5cb69f8a4 tui: handle key events for arrow and function keys (#31804)
- d7651b27d5 tui: move $COLORTERM check to _defaults.lua (#29197)
- a811d4babd tui: only reset cursor color if it was changed (#31337)
- 0c0352783f tui: remove DCS escaping in tmux (#32723)
- 47c741e30c tui: remove duplicate disabling of synchronized output (#28884)
- f32557ca67 tui: reset active attr ID when OSC 8 sequence is terminated (#29960)
- bc63ffcf39 tui: reset clear_region attributes during startup #28713
- b02c839414 tui: set id parameter in OSC 8 sequences (#29840)
- 0231265c8c tui: skip TUI in ui_rgb_attached (#29096)
- 8b8096500d tutor: incorrect lines marked as correct #29833
- 31745b17e6 types: add narrower vim.validate types
- 44410d063a types: add some vim.fn type annotations
- b813075b8a types: do not mark unstable API as private
- e947f226be types: use vararg return type annotation
- a1906c23dd ui: Windows :detach is opt-in
- 594c7f3d77 ui: avoid ambiguity about last chunk when flushing halfway (#29718)
- 216ec73972 ui: avoid redundant ext_cmdline events (#32237)
- 6cdcac4492 ui: clamp 'cmdheight' for other tabpages on screen resize (#31419)
- 318c0415d5 ui: correctly pass metadata to get_node_text #30222
- 7eba016c86 ui: ensure screen update before waiting for input #30576
- 5b6477be45 ui: flush ext_cmdline events before doing cmdpreview #27950
- 6e4df18b45 ui: no fast context for prompt message kinds #31224
- 6b8c56c7f6 ui: schedule UI detach (#32827)
- b66106a46c ui: superfluous showmode / excessive grid_cursor_goto #29089
- d1fd674df3 ui: update title in more cases (#31508)
- 442d338cb5 uri: uri_encode encodes brackets incorrectly for RFC2732 #31284
- d049752e45 version: fix vim.version().prerelease
- 8bdfc2ab2b version: return nil with empty string
- 6401b433f7 vim.fs: default to follow=false #32859
- 47e6b2233f vim.fs: dirname() returns "." on mingw/msys2 #30480
- 0bef3b911c vim.fs: joinpath() does not normalize slashes on Windows #31782
- 6dc0eb9f41 vim.fs.abspath: correctly handle UNC paths
- a8ace2c58a vim.fs.normalize: normalize case for windows drive letter
- 4c0d18c197 vim.iter: enable optimizations for arrays (lists with holes) (#28781)
- 734dba04d1 vim.system: close pipe handles after process handle
- 4e130c1ee4 vim.system: invalid MAX_TIMEOUT for 32-bit systems #31638
- ad3472e291 vim.system: resolve executable paths on windows
- 33464189bc vim.text: handle very long strings (#30075)
- 4cff418564 vim.text: remove assert from vim.text.hexdecode
- d338ec9cb2 vim.ui.open: prefer xdg-open on WSL #30302
- 8bf79bd13c vim.wo: never allow non-zero bufnr
- 453f2c52d2 vim_snprintf: special-case handling of binary format
- 32e128f209 watch: exclude .git when using inotifywait (#29914)
- 9e23b4e185 watch: ignore nonexistent paths (ENOENT)
- a18652ed61 win-msi: add bin to PATH per-machine after installation (#29099)
- 88f07d6ca4 win-msi: set installer scope to machine #29895
- 4f9311b759 window: making float with title/footer non-float leaks memory (#30551)
- 7b71fdbc1e window: respect hide flag of float windows when switching (#30507)
- 59da82abd9 wininfo: when freeing windows, free the lowest priority wininfo

PERFORMANCE
--------------------------------------------------------------------------------
- 48251134ee add fast path to vim.validate (#28977)
- 3abd7ed4a4 consider only active decorations when drawing lines
- 8d2ee542a8 decor: join predicates and matches cache
- 48e3ac60c6 diagnostics: cache line diagnostics when `current_line` is set #32288
- b8ddd3b6bb events: remove unnecessary loop in event_nr2name() (#32777)
- 15f2da55a8 events: use hashy for event name lookup (#32802)
- abf4b65a51 filetype: cache (more) pattern data during "add" time
- f61efe3fe7 filetype: implement parent pattern pre-matching (#29660)
- ff575b3886 filetype: optimize internal data structures
- dc04ef2a20 filetype: skip contents check in `match()` if there is no contents (#29596)
- 12d4caa9d3 keycodes: use hashy for string lookup
- f8fc6cb157 loader: reduce calls to Loader.cache_file
- 138a93a057 lsp: avoid repeated table lookup in completion.enable
- 7342e6b00d lsp: do not apply semantic tokens to folded lines
- c85d15e0d5 lsp: don't construct potentially expensive strings
- cc1f2d2ca6 lsp: don't copy completion items in filter pass
- 3e855d533f lsp: use faster version of str_byteindex
- 000129201c mouse: only generate <MouseMove> for a new cell positon (#31103)
- 3fdc430241 treesitter: cache queries strongly
- b192d58284 treesitter: calculate folds asynchronously
- c6abc97006 treesitter: do not use tree cursors with a small lifetime
- cbad2c6628 treesitter: don't block when finding injection ranges
- d9ee0d2984 treesitter: don't fetch parser for each fold line
- 562056c875 treesitter: only search for injections within the parse range
- c57a85e0ed treesitter: remove unnecessary foldexpr loop
- 64847fbdc9 treesitter: use `child_containing_descendant()` in `is_ancestor()`
- 4b02916334 treesitter: use child_containing_descendant() in has-ancestor? (#28512)
- 3f3e4837d5 validate: use lighter version
- 99b5ffd688 vim.text: use lookup table implementation for hex encoding (#30080)

BUILD
--------------------------------------------------------------------------------
- 104800ce2e "popcount" name conflict on NetBSD #28983
- 198a952c13 add luals check
- ef8067a19d add quotes around `CMAKE_GENERATOR` variable
- 32e16cb0b6 add utf8proc as dependency
- b213f5169c allow comment after #include for required header (#29722)
- 382eb878bc bump lua dev dependencies
- 1d815acd78 bump minimum cmake version to 3.16
- 5284a2a793 bump unibilium to v2.1.2
- ac5a6d9ff5 fix RelWithDebInfo optimization flags #31802
- 7c65224257 fix lint error on macos
- 046e0956ee fix or silence new clang-tidy warnings
- 5719f2b91a fix uncrustify install in nix devShell (#33020)
- 4a0ee22e77 make makefile work on msys
- 4ee65484b1 make makefile work on windows
- 1b90f4a9c4 mark CMake variables advanced #31412
- 0f24b0826a move all generator scripts to `src/gen/`
- e5ff302033 remove -O2 from gen_cflags
- d74c74aae3 remove `lintcommit` from `lint` target
- 573bcb2aaf remove enforcement of cmake build type
- 0e9c92a900 remove nix flakes (#28863)
- f09f5c45fa reuse code for deps.txt for both deps and main build
- e1dc824b7e set luals checklevel to Hint #32392
- cac86e9b4c silence "po" noise #30469
- 07b14c8e2e specify POST_BUILD when using add_custom_command
- e83ce331da use treesitter's CMakeLists.txt
- e268fcbdaa work around bug in make when PATH includes cmake as dir
- b288fa8d62 bump_deps: abort if archive doesn't exist
- 7ead328a48 cjson: sync with upstream (#32114)
- 0e2f92ed79 clint: make NOLINT work with header checks (#31281)
- 327110ff8c cmake: remove unnecessary policy code
- 535c2f8658 contrib: add zsh completion (#32617)
- 51d85f7ea5 deps: drop unused bundled bash, python parsers and queries
- 9216bc927c deps: fix formatc target on MSVC
- b3641b8008 deps: remove libtermkey dependency
- 1247684ae1 deps: remove msgpack-c dependency
- fa79a8ad6d deps: vendor libvterm at v0.3.3
- c614969570 docs: update CSS #28896
- 0a087f2073 generator: add dependencies on hashy (#32796)
- e178331488 lpeg: search for lpeg.so on MacOS
- 7e099cf3eb macos: disable deduplication in link step
- f4d9a2983a release.sh: fix hang when generating docs (#33026)
- b923fcbaf0 vim-patch.sh: don't ignore changes to version*.txt (#29425)
- 7aaa4a51b7 vim-patch.sh: include commit subject #28767
- 3146433190 vim-patch.sh: use 7 hex digits for runtime patch file name (#29940)
2025-03-26 14:48:09 +01:00
Justin M. Keyes
27fb62988e NVIM v0.10.0
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).
Following is a list of fixes/features commits.

BREAKING
--------------------------------------------------------------------------------
- 649dd00fe2 remove deprecated functions
- 0370e4def0 remove neovim qt
- 880f7d12fe remove vimballs (#22402)
- c48b1421af rename "playground" => "dev" #23919
- 2f85bbe615 rewrite TOhtml in lua
- abe39f2b24 api: change return type of nvim_win_text_height to Dict (#24365)
- 7180ef6901 api: nvim_open_win: noautocmd blocks all autocmds #28192
- 700cab0068 events: trigger CursorMoved later on switching window (#23711)
- e4a136f713 ex_cmds: remove :behave
- e5e0bda41b lsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958)
- 5a363ccac8 lsp: deprecate trim_empty_lines
- 5a2536de0c lsp: move changetracking to separate file (#26577)
- 58618d208a lsp: promote LspRequest to a full autocmd and enrich with additional data (#23694)
- 1b9ccd38a1 lsp: rename vim.lsp.get_active_clients to get_clients (#24113)
- eb1f0e8fcc lsp: replace snippet parser by lpeg grammar
- 448907f65d lsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512
- 7caf0eafd8 lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440)
- 747264320c mappings: remove #n as a notation for a function key (#17318)
- f7da472257 options: graduate shortmess+=f flag
- c3d1d9445c options: graduate some more shortmess flags
- 5df4fdf253 options: make OptionSet `v:` values use typval
- 881d17a113 options: remove compatible behaviours for vim 5.0 and earlier
- e19cc9c9b7 options: unify `set_option` and `set_string_option`
- db590e96d5 startup: "nvim -l" message does not end with newline #24215
- 2ca076e45f treesitter: incremental injection parsing
- f5dc453109 treesitter: new standard capture names
- fc0ee871de treesitter: remove deprecated legacy injection format
- 6debb18523 treesitter: remove duplicated diagnostic code (#24976)
- 18da6964cc vim.iter: remove vim.iter.map/filter/totable #26138
- 9b028bd64f vim.iter: rename xxback() => rxx() #28503
- 8d4a53fe6e vim.json: remove global options, "null", "array_mt" #24070
- 40ce857797 vim.ui: change open() to return `result|nil, errmsg|nil` #28612
- e0d92b9cc2 vim.ui: change open() to return pcall-like values #28502

FEATURES
--------------------------------------------------------------------------------
- a66b0fdfaa NVIM_APPNAME supports relative paths #25233
- c0beb8173f add .luarc.json (#24592)
- 14b7ffcf89 add __call typing for vim.inspect()
- ca7e488cfe add link in issue template to minimal config template
- 4bf47222c9 add vim.text module (#26069)
- 0ebc4de0ff allow opting in to builtin clipboard providers (#28083)
- e8d3c4cccb generate types and docs for v variables
- 29fe883aa9 ignore swapfile for running Nvim processes #25336
- 28d1640dd6 improve return type annotations for vim.api.*
- 199a990c9e report "build" in vim.version() #23925
- e688793253 tostring(vim.version())
- c559ab0ae6 update unicode tables (#27317)
- ecdb6465e2 vim.version() returns a Version object
- 4b60267f82 :source: source current ft=lua buffer as Lua code (#23802)
- 428edcde70 api: add forward and back mouse buttons
- 037ea6e786 api: add nvim__redraw for more granular redrawing
- ca9f6f5694 api: add nvim_tabpage_set_win (#27222)
- db8fe63a93 api: add nvim_win_text_height (#24236)
- 16513b3033 api: allow floats to be opened in non-current tabpage (#28480)
- 6b4970f6e0 api: allow open_win/win_set_buf in the cmdwin in some cases
- 5d921e28c1 api: allow win_close in cmdwin to close wins except previous
- 472271199e api: allow win_hide to close cmdwin or non-previous windows
- 6bba4beced api: make nvim_open_win support non-floating windows (#25550)
- b162adbb7c api: pass 0 to nvim_get_chan_info for current channel (#27321)
- 42bbc4fabc api: support abbreviations in nvim_set_keymap
- 98a4ed0a11 api: support getting abbreviations (#26868)
- d3d7d763f3 builtin: improve types
- 748bc4d22d clipboard: add OSC 52 clipboard support
- db57df04b6 clipboard: enable OSC 52 clipboard provider by default (#26064)
- 734848dc1a colorscheme: add semantic tokens modifiers to builtin color scheme
- 1e0996b572 colorscheme: update treesitter groups
- 73de98256c comment: add built-in commenting
- ae4ca4edf8 complete: support f flag for complete buffer part
- 01c51a4913 completion: support completing more string options
- ae3685798d decoration: allow conceal_char to be a composing char
- 30a5c28c87 decoration_provider: log errors as error messages
- 9711370c26 defaults: add :Inspect to right-click menu (#28181)
- 2613ba5000 defaults: enable 'termguicolors' by default when supported by terminal
- 513fc46195 defaults: improve :grep defaults #28545
- c26dc1f77c defaults: map Q and @x to repeat in Visual mode (#26495)
- 8758c6fb87 defaults: set g:netrw_use_errorwindow = 0 #24179
- 1d81d7a268 defaults: treat "•" as a list item prefix #24623
- 20b38677c2 defaults: use ripgrep (rg) for 'grepprg' if available
- 61063653b0 defaults: visual CTRL-R for LSP mappings #28537
- 4ee656e4f3 diagnostic: add `vim.diagnostic.count()` (#26807)
- 73034611c2 diagnostic: add default mappings for diagnostics (#16230)
- fc6d713dd8 diagnostic: add support for many namespaces filtering in GetOpts (#28045)
- 5ed9916a28 diagnostic: enable(…, opts)
- e780177506 diagnostic: filter diagnostics by specific severities (#24736)
- b13e63db1d diagnostic: goto functions jump to highest severity (#28490)
- 26765e8461 diagnostic: is_enabled, enable(…, enable:boolean)
- 9cb7e00b97 diagnostic: provide more control over virtual text display (#24724)
- ee41153a94 diagnostic: revert default behaviour of goto_next/prev()
- 07b60efd80 diagnostic: specify diagnostic virtual text prefix as a function
- a3b3978474 diagnostics: support numhl and linehl for diagnostic signs
- 0381f5af5b diff: grouping optimization for linematch algorithm
- 42333ea98d docs: generate builtin.txt (#24493)
- 9beb40a4db docs: replace lua2dox.lua
- 1d4a5cd185 eval: exists() function supports checking v:lua functions (#26485)
- 4a1ad676ce ex_cmds: no error on :lua with {range} and {code} (#27290)
- c2433589dc ex_cmds: ranged :lua #27167
- b04286a187 extmark: support proper multiline ranges
- 1c032ad703 extmark: window scoped extmark
- 68cb4a7405 extmarks: add "undo_restore" flag to opt out of undo-restoring
- 4e6f559b8c extmarks: add 'invalidate' property to extmarks
- c249058758 extmarks: add sign name to extmark "details" array
- bbd5c6363c extmarks: add virt_text_repeat_linebreak flag (#26625)
- 15e77a56b7 extmarks: subpriorities (relative to declaration order) (#27131)
- f0884f21fa extmarks: support hl_mode "combine" for inline virt_text (#24099)
- 372aa2eb3d float: add fclose command
- 35570e4a11 float: implement footer
- 4200a0f167 float: support toggle show float window
- 1233ac467d fold: transparent foldtext
- 71530cc972 folds: support virtual text format for 'foldtext' (#25209)
- 38b9c322c9 fs: add vim.fs.root (#28477)
- e3e6fadfd8 fs: expose join_paths as `vim.fs.joinpath` (#23685)
- bc67cf3ccd gen_help_html: add anchors to help tags #25112
- b0cf9c5fee gen_help_html: ignore pi_netrw.txt errors
- 81d8fce8f9 gen_help_html: non-default vimdoc.so parser
- da09f9b551 gen_lsp.lua: protocol.Methods #24504
- f41496ce74 gen_lsp.lua: sort by name, handle failure #24504
- 3692fd4c87 gen_lsp.lua: validate CLI args #26514
- 2ff2785c39 health: checkhealth buffer can show in a split window (#26714)
- 4382d2ed56 health: fold successful healthchecks #22866
- d1bc6fca71 health: list attached buffers in LSP report #23561
- 2877672d70 health: make :checkhealth support more split modifiers (#26731)
- ddda5e0a48 help: hide filename of "gO" outline using conceal #27547
- e72c0cd920 highlight: Allow hyphens (-) in highlight group names (#24714)
- 986bf7e78d highlight: add `FloatFooter` highlight group
- 574519d9d6 highlight: tweak default color scheme
- 64a14026d7 highlight: update default color scheme
- a79694a08e issue_template: instruct not to include a package manager
- 69ffbb76c2 iter: add `Iter.take` (#26525)
- cebc00603e l10n: update Turkish translations #24246
- fec51229c4 l10n: update Ukrainian translations (#24882)
- 996dd36c77 lsp: add actionable advice to lsp client quit error msg (#24510)
- 4ff3217bbd lsp: add fswatch watchfunc backend
- 643546b82b lsp: add handlers for inlay hints (#23736)
- 317c80f460 lsp: add method filter to get_active_clients (#24319)
- 6888607415 lsp: add more LSP defaults (#28500)
- 0fe86f7e24 lsp: add opts paramater to vim.lsp.codelens.refresh
- 131a1ee82d lsp: add original LSP Location as item's user_data in locations_to_items (#23743)
- f1775da07f lsp: add snippet API (#25301)
- db0ec84fb4 lsp: add type annotations for lsp.util.locations_to_items (#26694)
- f190f758ac lsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388)
- 451bc50d40 lsp: deprecate severity_limit
- e9b85acfbb lsp: enable workspace/didChangeWatchedFiles by default (#23190)
- 4a09c178a1 lsp: fallback to code-action command on resolve failure (#25464)
- 2f22ed6a00 lsp: handle multiple clients in omnifunc (#24381)
- 63b3408551 lsp: implement textDocument/diagnostic (#24128)
- 5e3cf9fb4b lsp: improve control over placement of floating windows (#24494)
- 15641f38cf lsp: include positionEncodings in default client capabilities
- ddd92a70d2 lsp: initial support for dynamic capabilities (#23681)
- ca5de9306c lsp: inlay hints #23984
- 350d818564 lsp: inlay_hint.is_enabled({filter}) #28523
- 33e1a8cd70 lsp: map K to hover by default #24331
- 97bea3163a lsp: more annotations
- 37079fca58 lsp: move inlay_hint() to vim.lsp (#24130)
- 12c2c16acf lsp: opt-in to dynamicRegistration for inlay hints (#24102)
- a49924a318 lsp: remove notify from vim.lsp.buf_detach_client (#25140)
- 8149bd089e lsp: report fswatch errors
- fb54e6980e lsp: set client offset_encoding if server supports positionEncoding
- 96e19533f6 lsp: set kind in select call for codelens #23889
- 9af3559643 lsp: set workDoneToken in initialize request (#28182)
- f736b075d3 lsp: snippet parsing using lpeg
- 134b9ec483 lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104)
- 63f9c2da9a lsp: support completion itemDefaults
- 3f788e73b3 lsp: support connect via named pipes/unix domain sockets (#26032)
- 7e36c8e972 lsp: support for choice snippet nodes
- 5c40f3e86a lsp: support vim.lsp.ListOpts.loclist in location_handler()
- abd2352bd8 lsp: update LSP protocol 3.18 typings to date (#28730)
- cfd4a9dfaf lsp: use treesitter for stylize markdown
- d5063f4b29 lsp: vim.lsp.inlay_hint.enable(nil) applies to all buffers #28543
- c0952e62fd lua: add `vim.system()`
- 9248dd77ac lua: add hl priority opts on yank (#23509)
- 6425869771 lua: add meta file for vim submodules (#24525)
- 3734519e3b lua: add noref to deepcopy
- 7c661207cc lua: add ringbuffer (#22894)
- 877d04d0fb lua: add vim.func._memoize
- ab1edecfb7 lua: add vim.iter (#23029)
- d675bd01b1 lua: allow vim.F.if_nil to take multiple arguments (#22903)
- c379d72c49 lua: allow vim.wo to be double indexed (#20288)
- e52c25b761 lua: deprecate vim.tbl_add_reverse_lookup
- f1dfe32bf5 lua: enable(enable:boolean, filter:table) #28374
- 5b40a1c09d lua: implement Iter:join() (#26416)
- c01e624b07 lua: more specific error messages for vim.api type checking
- e1ff2c51ca lua: pass keys before mapping to vim.on_key() callback (#28098)
- 2db719f6c2 lua: rename vim.loop -> vim.uv (#22846)
- 6c0812d92e lua: specific error messages for type checking `opts` params
- fd089c8e50 lua: typing for vim.fn.* (#24473)
- 302d3cfb96 lua: use callable table as iterator in vim.iter (#23957)
- 51c754b62e lua: use keyset type information
- 8e5c48b08d lua: vim.fs.normalize() resolves ".", ".." #28203
- 7e70ca0b48 lua: vim.keycode (#22960)
- 9e86f473e0 lua: vim.region accepts getpos() arg (#22635)
- 4d04feb662 lua: vim.tbl_contains supports general tables and predicates (#23040)
- 48d533272e lua-types: types for vim.api.* (#24523)
- 25e7299707 man: allow opening pages in current window (#27861)
- 08db61b19b man: respect 'wrapmargin' when wrapping man pages (#24091)
- f9944a78bc meta: add types for vim.lpeg
- deb6fd6704 msgpack-rpc: show actual request id in error message
- 01fe6b9e6a msgpack_rpc: support out-of-order responses on `msgpack-rpc`
- 619407eb54 nvim_open_term: convert LF => CRLF (#26384)
- e98decf9a6 quickfix: support -q - to read 'errorfile' from stdin (#27303)
- 7b0123dd6a remote: avoid --remote-ui infinite loop (#24465)
- cca6c4c698 rpc: allow empty string key in msgpack => Vim conversion
- d0d4160dd1 runtime: highlight hl groups in syntax.txt (#25050)
- 5f4895200a scripts: add lsp_types.lua (#23750)
- 4e6096a67f server: allow embed with listen (#25709)
- 170c890dca shortmess: "q" flag fully hides recording message (#27415)
- d3582e102b statuscolumn: re-evaluate for every screen line (#25885)
- 224f303ee5 stdlib: add vim.base64 module (#25843)
- fa131de9ad tabline: middle mouse button now closes tab (#27522)
- c855eee919 term: enable reflow by default (#21124)
- cd1b14f027 termdebug: improve `:Evaluate` floating window (#26621)
- cffdf102d4 terminal: allow :terminal to take modifiers (#15427)
- 0c89854da1 terminal: close shell terminals automatically
- 7589336120 terminal: respond to OSC background and foreground request (#17197)
- beca827212 terminal: trigger TermRequest autocommand events (#22159)
- c6ec7fa8d7 treesitter: add 'injection.self' and 'injection.parent'
- 6cfca21bac treesitter: add `@injection.filename`
- 5d8ab32f38 treesitter: add a query editor (#24703)
- cb0a1a10b2 treesitter: add bash parser and queries
- bb15fa0356 treesitter: add folding for `InspectTree` (#27518)
- 9ce1623837 treesitter: add foldtext with treesitter highlighting (#25391)
- 31c4ed26bc treesitter: add injection language fallback (#24659)
- 28f54a7878 treesitter: add lang parameter to the query editor (#25181)
- 88c8803aa1 treesitter: add python parser and queries
- c194acbfc4 treesitter: add query_linter from nvim-treesitter/playground (#22784)
- af040c3a07 treesitter: add support for setting query depths
- 11844dde81 treesitter: bundle markdown parser and queries (#22481)
- 5e6240ffc2 treesitter: handle quantified fold captures
- f69658bc35 treesitter: highlight Lua files by default (#26824)
- 988b472d90 treesitter: highlight help files by default (#26347)
- 845d5b8b64 treesitter: improve query error message
- 189fb62032 treesitter: improved logging (#23638)
- c0b99bb1de treesitter: show root nodes in :InspectTree (#26944)
- cb46f6e467 treesitter: support URLs (#27132)
- ff6092b4ee treesitter: update Bash parser and queries to v0.21.0
- 8dda630ae9 treesitter: update C parser and queries to v0.21.0
- 3836eeb901 treesitter: update C queries from upstream
- aca4ad430b treesitter: update Lua parser and queries to v0.1.0
- 5e875ae8d0 treesitter: update Markdown parsers and queries to v0.2.1
- 8a3385dde7 treesitter: update Python parser and queries to v0.21.0
- 20dcbaaaf8 treesitter: update Vim parser and queries to v0.4.0
- 987dff6713 treesitter: update Vimdoc parser and queries to v2.4.0
- 1384bebd5a treesitter: update query parser to v0.2.0
- 668f16bac7 treesitter: upstream query omnifunc from playground (#23394)
- a478bf936b treesitter: use 0-based indexing to show ranges in `:InspectTree`
- ac8ed77afb tui: add 'termsync' option (#25871)
- 4ee9e58056 tui: query extended underline support using DECRQSS (#28052)
- b4b7ca2d54 tui: support DCS responses in TermResponse event (#26061)
- 622ae2f53e tui: support Super and Meta modifiers (#24357)
- a142670360 tui: support undercurl in WezTerm (#28037)
- 56627ca242 tui: use TermResponse event for OSC responses (#25868)
- 32b49448b2 tutor: add Japanese tutor #27268
- 9c2270b834 types: add `test/.luarc.json`
- d3a8e9217f ui: add chdir UI event (#27093)
- 6ea6b3fee2 ui: add support for OSC 8 hyperlinks (#27109)
- b72931e704 ui: allow non-zero 'cmdheight' with ext_messages
- 2615ed879e ui: allow to get the highlight namespace
- e38027ef69 ui: completeopt support popup like vim
- 2e4e12756a ui: indicate margins for the area used by win_viewport
- efa9b299a7 ui: inline virtual text
- dacd34364f ui-ext: make 'mousehide' into proper ui_option (#25532)
- 43ded8d358 version: unverbose ":version", ":verbose version" #24195
- 0a598c13b1 vim.deprecate: only issue warning if neovim version is high enough
- a767c046f4 vim.iter: add Iter:flatten  (#26786)
- af6e6ccf3d vim.ui: vim.ui.open, "gx" without netrw
- fa4b02fa67 vim.version: add `vim.version.le` and `vim.version.ge`
- 27a566f3f8 vimdoc: support Markdown code blocks (#25127)

FIXES
--------------------------------------------------------------------------------
- f5573fba3d Remove nested for_each_tree in TSTreeView (#26328)
- ae28ef327e adjust error message for error in UI event callback (#28200)
- ebe489d8f0 allow multiline message for echoerr (#25380)
- 592bc831ce avoid ui_grid_cursor_goto when drawing window separators
- d6483793e1 buffer overrun in lmpack_session_receive
- 3bbb0aa399 checkhealth warning even if init.lua exists #25306
- 5cb906e91c correct versions in deprecation warnings
- 118fd8367c deduplicate gen_cflags
- eb4676c67f disallow removing extmarks in on_lines callbacks (#23219)
- 6e9b204afb doc errors
- 77d3526a3d explain that user should run nvim with -V1 to see more information
- fd791db0ec fix ASAN errors on clang 17 (#25469)
- bb38c066a9 fix compiler warning from clang
- 478273a423 fix iter_matches call in query linter (#27496)
- bb7324292c flush UI state before blocking in vim.wait (#25938)
- 44d4ae448d function was renamed (#23772)
- 1dd700a8d9 gf fails on "foo/bar.txt:1:2" on Windows
- 6e703f778f handle argv not present in nvim_get_chan_info
- 56dc8b9212 heap-buffer-overflow in file_name_in_line
- 74b2f6c3d9 ignore non-existent properties during header generation
- f5a09f1b03 invoke changed_bytes when rewriting <Tab> char #25125
- b8273c9a33 lua annotations
- 69d49727d7 luacheck
- 4ce3159e24 missing case in setxattr error handling (#26176)
- 41fb98d6fa move fswatch linux check inside of vim.schedule (#27824)
- ba58c6f8a4 only attempt to close timer if not already closing (#26047)
- b400b947f3 prevent child processes from inheriting ui channel file descriptors
- 99b8a343e1 quick update, squash later
- 83b51b36aa raise TS min version
- a090d43d61 splitting of big UI messages
- 2424c3e696 support UNC paths in vim.fs.normalize
- 43e76cc346 tostring(vim.version()) fails if build is NIL #24097
- 8c7a8be274 transposed xcalloc arguments (#28695)
- 35f453f65d type warnings in shared.lua
- f112ac73bd unreliable "checkhealth completions" test
- b32b5b2711 use BEL to terminate OSC 11 request (#26335)
- d95e3a4c9c use no_ff instead of ffdos as condition
- a1bec02c1e use snprintf instead of sprintf
- ca887b80a9 version-range < and <= #23539
- c1ee187f82 vim.loop in luv threads (#23924)
- fe4583127f vim.validate() order is not deterministic #28377
- be8b15200d windows timeouts have exit code 1
- 1f8fb7c000 :let: fix error when applying operator to boolean option (#24030)
- 5a3752889c NVIM_APPNAME: show error message if $NVIM_APPNAME is invalid
- c4ad15ae32 PVS/V009: add top-level message
- 128e194f64 PVS/V1001: variable is assigned but is not used
- 1bbbca267d PVS/V547: expression is always true/false
- 592e4472da PVS/V564: the '|' operator is applied to bool type value
- 30d311ebcf PVS/V592: expression is enclosed by parentheses twice
- 3ecd45ded0 api: allow negative column arguments for nvim_buf_set_text (#23501)
- 3ac952d4e2 api: avoid assertion when autocmd group id is 0 (#23210)
- b2a8a93147 api: avoid immediate TextChanged with nvim_create_buf (#25492)
- ef7ae66eef api: avoid integer truncation
- b1e24f240b api: avoid open_win UAF if target buf deleted by autocmds
- 0a81ec14a4 api: better topline adjustments in nvim_buf_set_lines
- c18f3cfcdb api: crash after nvim_win_set_config title/footer validation error (#26606)
- aa4e47f704 api: disallow some more functions during textlock
- 22d9338afc api: disallow win_set_buf from changing cmdwin's old curbuf (#24745)
- da979ae04b api: do not re-apply win_config.style when missing
- 344906a08f api: do not update grid position in nvim_win_set_cursor (#28235)
- 22205f36a6 api: don't change title when setting buffer in a window (#23492)
- 711a2f5ff6 api: don't leak memory with nvim_win_get_ns (#27570)
- 1cf51a07a6 api: don't set coladd of mark (#26648)
- 5fd1bac65e api: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501)
- a3751f5de2 api: dont change curwin for nvim_win_set_height
- 1ff4562502 api: dont change curwin for nvim_win_set_width
- 59fed8bb64 api: extmark highlight groups not always included in details (#23179)
- 9b9030ff2c api: fix inconsistent behavior of topline touched in recent refactor
- fc2a56fe61 api: fix set_lines viewport adjustment, but this time good
- b7763d7f6b api: get virtual text with multiple hl properly (#25307)
- b3be7b7413 api: handle NUL in nvim_err_write() and nvim_out_write() (#25354)
- 132bbd1cbd api: handle clearing out last line of non-current buffer
- d942c2b943 api: handle win_split_ins failure properly
- 5cfdaaaeac api: ignore 'autochdir' when renaming other buf (#28376)
- 2fc2343728 api: ignore 'autochdir' when setting buf in other win (#28371)
- 7367838359 api: limit depth of nvim_cmd (#27225)
- 0da27e9bde api: load buffer first on nvim_buf_set_lines (#25823)
- 4e5c633ed4 api: make getting explicit empty hl in virtual text work (#28697)
- d05d63a18f api: make nvim_get_hl not return non-existing groups
- a70eae57bd api: make open_win block only enter/leave events if !enter && !noautocmd
- 5d58136ccc api: make open_win/win_set_config check if splitting allowed
- 4ec8fd43bf api: make width/height for split by nvim_open_win work (#28341)
- b1577d371a api: make win_set_config with "win" for splits need "split/vertical"
- 0330dd9e69 api: mark nvim__complete_set as experimental #28579
- d22172f36b api: more intuitive cursor updates in nvim_buf_set_text
- b051b131f5 api: nvim_buf_get_offset in a new buffer with zero or one lines
- e0453d7f57 api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181
- 6091df6b7a api: nvim_create_buf assert fails if autocmds set &swapfile
- d5c23d72a5 api: nvim_create_buf leaks memory if buffer is loaded early
- b7708eac24 api: nvim_get_hl should return default flag
- a741c7fd04 api: nvim_parse_cmd error message in pcall() #23297
- e55a502ed4 api: open_win fire Buf* events when !enter && !noautocmd if entered early
- a873f33993 api: open_win fire BufWinEnter for other buffer when !enter && !noautocmd
- e7c262f555 api: patch some cmdwin/textlock holes
- a9968912b7 api: redundant error when using `nvim_cmd` (#24010)
- dbcba26bf1 api: revert unintended change of optional bool params
- b25753381c api: set script context when using nvim_set_hl (#28123)
- d3ea9a04bc api: update "w_scwidth" in nvim_eval_statusline()
- c971f538ab api: update grid cursor in nvim_win_set_cursor()
- 130cb4815a api: use a conditional stack for nvim_cmd (#26341)
- cf9f002f31 api: use correct buffer for "range" in nvim__redraw (#28614)
- 77118d0da8 api: use text_locked() to check textlock
- bcb70eeac4 api: win_set_config autocmds crash when moving win to other tabpage
- 233649bc75 api: win_set_config fires unnecessary autocmds
- b52d15853e api: win_set_config set tp_curwin of win moved from other tabpage
- 54022a2946 api: win_set_config update statuslines after removing splits
- a9cd8467cb api: wrong nvim_buf_set_extmark error for invalid hl_mode
- 4d3a38ac07 api, lua: handle setting v: variables properly (#25325)
- 92760a7f42 api, lua: make blank lines in a message work properly (#24244)
- 08fc1ebbaa api/buffer: fix handling of viewport of non-current buffer
- 24e3ee9d07 api/options: validate buf and win
- 139e6f68f9 autocmd: API functions accept garbage after event name #25523
- 02d00cf3ee backup: E1509 when writing extended attr to symlink (#28014)
- 746a153bc1 base64: only check padding if leftover index is set (#25854)
- 533e01a75b base64: properly handle embedded NULLs when decoding (#28349)
- 095bd8d0f8 buffer: do not filter help buffer
- e5d9b15044 buffer_updates: correct buffer updates when splitting empty line
- 11865dbe39 build: better deps for doc
- ffaf74f147 build: distinguish vim.mpack from global require'mpack'
- f9416470b1 build: include FindPackageHandleStandardArgs
- ade42d531b build: teach cmake about vvars
- da7178cbbf builtin: fix incorrect optional fields for fn.sign_define
- 6fa0f303d7 builtin: parameter mismatch between winsaveview and winrestview
- 3159a2c28f change: update fold after on_bytes (#26364)
- 342c7da4bd channel: use os_write() instead of fwrite() for stderr (#26689)
- cd6458123f charset: fix wrong display of 0xffff (#24158)
- 603f3b36a4 checkhealth: error in node.js check #28348
- b0978fca6b checkhealth: fix crash due to incorrect argument type
- 7f94a032e1 checkhealth: shell_error and cpanm module
- bfdec5b0e7 clang: null pointer dereference in parse_msgpack #25389
- 1027ccac6d clangd: check size of array before applying qsort on it
- cdd8017469 clangd: set block pointer to null in case map is empty
- 6851b265ba clipboard: don't pass --foreground to wl-copy (#25481)
- c3de6524a5 clipboard: ignore exit caused by signal #23378
- 3128cff6b1 clipboard: increase OSC 52 wait timeout (#25936)
- 46ceefb52b clipboard: make getreg() accurate for clipboard registers (#26740)
- d2983dcdb1 clipboard: make osc52 work with PUC Lua (#26014)
- e51e524175 cmake: restore previously undocumented workround, now documented
- 3688735c2b cmdline: don't redraw 'tabline' in Ex mode (#24123)
- c72d877c33 cmdline: wrong 'incsearch' highlighting after :redraw (#27947)
- bc67bbe446 codelens: add buffer and line checks before displaying codelens (#23887)
- 2b1a6e7597 colorscheme: add missing LSP groups
- 0c850add3e colorscheme: default statusline groups usability #26921
- 8b23653695 colorscheme: link LSP semantic tokens to treesitter groups
- 62e0e0349c colorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727)
- eca72def1f colorscheme: typo
- d4bd6b1eaa colorscheme: use explicit normal foreground in syntax groups
- 3c724fe1f3 column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967)
- cdc028e97d column: add truncated width during estimation for 'statuscolumn'
- e89071522c column: always set b_signcols.max
- c126a3756a column: apply numhl signs when 'signcolumn' is "no" (#26167)
- 2ded2e75f4 column: avoid exceeding configured 'signcolumn' width
- b50fdcba4a column: clear "b_signcols" before moving saved marks
- 13d50c3b13 column: clear "b_signcols" when marktree is cleared
- ec74538044 column: correct width after truncated 'statuscolumn' error (#26737)
- 2bdef6dd2a column: don't overflow sign column with extmark signs (#23854)
- bab4bcdefb column: don't reset 'statuscolumn' width after it has been drawn
- c509f4907b column: fill 'statuscolumn' clickdefs with evaluated width (#26891)
- 25e62697c3 column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268)
- dbf6be296d column: full redraw with 'stc, 'rnu' and inserted lines (#27712)
- 7d0a23973b column: handle unprintable chars in 'statuscolumn' (#24198)
- 0db6946b39 column: handle w_redr_statuscol at end filler lines (#27365)
- 97122eaa1c column: ignore empty signcols range (#28177)
- 967c7abde3 column: keep track of number of lines with number of signs
- f871fee8b6 column: pass kFalse when initializing "b_signcols.count"
- 44d4f03573 column: rebuild status column when sign column is invalid
- c6864b0d14 column: redraw 'statuscolumn' on wrapped lines with 'relativenumber'
- 35cec0de4a column: redraw and update signcols for paired extmark
- d88814ef68 column: remove sign from line it was previously on with undo
- df399ea0d2 column: reset decor state before starting from top
- 5a4e0b837f column: use a single path for sign sorting (#27431)
- a878e02d5d column: use maxwidth to allocate/fill 'statuscolumn' click defs #24190
- 783b0aba41 completion: check that healthcheck name is string (#28458)
- fbeef0d4ef completion: don't add backslashes to runtime pattern (#24296)
- cdc8bacc79 completion: filter results with complete+=f (#26029)
- af8500af64 completion: improve popup window position (#26739)
- d1b2a5cf5f completion: make sure the buffer name is valid (#25975)
- e9b9a86cd5 context: don't crash on invalid arg to nvim_get_context (#25977)
- fdaf6bc557 context: don't leak memory on multiple invalid objects (#25979)
- 55be4a4e26 coverity: dead code #25562
- 6d698c86d0 coverity: unhandled retval for marktree_itr_get_overlap() #26518
- 6f49ed58c3 coverity/348240: memory leak in put_view()
- 9d48266bed coverity/471380: null dereference in get_local_additions()
- ae48d965d7 coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022)
- 2b0acacb3c decor: allow adding providers during redraw
- 5ca330859c decor: check decor kind before accessing union field (#27205)
- 60d320dea3 decoration_provider: don't leak memory on error (#24410)
- 65738202f8 decorations: better approximation of botline #24794
- 2accf24805 decorations: crash with revised mark with changed decoration flags
- a0e9ef09d7 decorations: do not apply sign highlight id as range attr id
- fba17d5b88 decorations: fix imbalanced sign count
- 444f37fe51 decorations: incompletely displayed line should also get decorations
- dc48a98f9a decorations: validate botline for on_win
- 328a237351 defaults: auto-close terminal for &shell with args (#28276)
- 5aa1ba3efe defaults: background detection in tmux (#26557)
- 5e98439f6d defaults: diagnostic mappings descriptions #28646
- ccb5a76e5a defaults: don't use nvim_feedkeys in default mappings (#24520)
- 85cb0b0ddc defaults: make terminal autoclose not block other events (#27581)
- aa1d0ac095 defaults: only repeat macro for each selected line if linewise (#28289)
- eef2aedff6 defaults: remove tmux background detection passthrough (#27571)
- 5b45efbee6 defaults: set 'fsync' #26034
- 8df3742378 defaults: use augroup for default autocommands (#26933)
- a8e4ee2f2b defaults: validate 'channel' before responding to OSC request (#27594)
- 6318edadc3 defaults: visual hash (#) on text with "?"
- abd380e28d defaults: visual mode star (*,#) is fragile
- b9a0e762f1 defaults: visual star (*) on text with "?"
- 9b4b23493d defaults: wait until VimEnter to set background (#26284)
- 72e3d8c3f9 deps: bump luv to 1.48.0-2
- 87db6d894a deps: make sure --force-config takes effect
- 7aad4643f9 deps: remove stray conflict marker
- 8a6716682e deps: restore functionality of USE_EXISTING_SRC_DIR
- d4dc884012 deps: restore functionality of USE_EXISTING_SRC_DIR
- d272143318 diagnostic: always return copies of diagnostic items (#25010)
- 29d5ff6ac4 diagnostic: check for sign namespace instead of sign group
- 3d8f0cb695 diagnostic: check if delete failed in `qf_fill_buffer()` (#25932)
- 89ffdebd20 diagnostic: fix typing on field |diagnostic-severity|
- 83635e4e3d diagnostic: get border from config (#28531)
- 96f59e1b99 diagnostic: invalid col number  compare in next_diagnostic (#28397)
- ad76b050eb diagnostic: open_float on multi-line diagnostics #28301
- 37011bc45e diagnostic: rename buffer → bufnr in type annotation (#23042)
- 50284d07b6 diagnostic: typing
- a4fc3bb0e6 diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273
- add1b10b79 diagnostic: virtual_text prefix function should have index and total (#25801)
- 35f475d0a5 diagnostics: if buffer not loaded, skip handlers that set extmark (#25628)
- 5a25dcc5a4 diff: filler lines for hunks bigger than linematch limit (#24676)
- 2f9ee9b6cf doc: improve doc generation of types using lpeg
- c4417ae70c doc: prevent doxygen confusion
- 67f5332344 docs: clean up non-docstring comments for vimdoc gen
- ae7020c667 docs: fix TSNode incorrect signatures
- ab65a98adb docs: ignore_invalid #24174
- f40df63bdc docs: make lines not overflow in vim docs
- 0a90e4b05a docs: match DocSearch style with site theme
- 0d149bb186 docs: the runtimepath is not the runtime path
- 957d05d16b docs: too much whitespace around <pre> blocks #24151
- d931b829e9 docs: vimdoc syntax errors
- 036da0d079 docs: vimdoc syntax errors
- 17c59e417f docs: vimdoc syntax errors
- 34b57508a7 drawline: check filler_todo in place of removed draw_state (#27889)
- 455bca1ba8 drawline: combine extmark highligh with area hl correctly
- 3299797150 drawline: consider position in linebuf for foldcolumn (#26803)
- 889f81c65f drawline: don't invoke on_line for filler line (#28219)
- 2b9d3869f8 drawline: don't use temporary "v" variable when not needed (#26777)
- 06694203e5 drawline: fix missing Visual hl on double-width fold char (#24308)
- d5488633f6 drawline: initialize linebuf_attr to 0 instead of -1 (#27840)
- e9280a68f7 drawline: initialize variable
- 2819718873 drawline: initialize variable
- 36941942d6 drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273)
- 37b73cf14b drawline: make cursorlineopt=screenline work with resized grid
- be1d09c427 drawline: missing NUL termination when drawing TAB (#27307)
- 5b31447811 drawline: update prev_ptr after getting syntax attrs (#27072)
- 14839c5d18 edit: backspace adds extra spaces for inline virtual text (#28005)
- 267e90f31d edit: don't go to Terminal mode when stopping Insert mode (#27033)
- b2e8c0df20 edit: fix K_EVENT interfering with 'digraph' (#24258)
- 143a178332 editorconfig: add missing root validation (#23462)
- cbbda3bcd7 editorconfig: check that buffer is valid (#23922)
- abb8c2c453 editorconfig: do not set 'endofline'
- df2f5e3912 editorconfig: highlight properties with dashes (#24407)
- dc45fb4655 editorconfig: only warn once on errors
- cdbc3e3f3e editorconfig: syntax error regression
- bf0c69e504 eval: correct failure return value for readfile/blob (#27722)
- 5b312cd5f6 eval: make has('pythonx') work properly (#27739)
- 0e4086b741 eval: prevent double-free in garbage collection (#22990)
- 12d123959f eval: properly support checking v:lua function in exists() (#27124)
- b8c34efe33 eval: skip over v:lua properly (#27517)
- ad2fad9a3b event-loop: flush UI when no input is available (#25728)
- 6725565258 event-loop: process input before events (#27358)
- 58a1ef8e6a events: avoid unnecessary CursorMoved (#24675)
- bf9e92c81c events: check for WinResized/WinScrolled in terminal mode (#27226)
- dd24ea8195 events: don't expand non-file as file name
- 774a32e5fe events: null dereference in autocmd functions
- a8cfdf43bc events: trigger VimResume on next UI request (#24426)
- a114a21eff ex_getln: initialize pointer with NULL
- 9e7c4fe579 exception: remember whether message is multiline (#25351)
- 4a098b97e5 excmd: append original command to error message
- 75d9c413d4 excmd: make :def unknown rather than unimplemented (#23150)
- f1dd75c2af exitfree: don't use ex commands to close windows in free_all_mem()
- 79a558277b extmark: fix crash when stepping out from internal node
- a78fd18ed9 extmark: fix cursor position with both left and right gravity inline text
- 320e9c1c21 extmark: only invalidate unpaired marks on deleted rows
- 8e97edb93f extmark: restore extmarks when completing original text
- 2d33a766a1 extmarks: `U` changed_bytes after extmark_splice (#26501)
- 23c21e7630 extmarks: account for rightleft when drawing virt text (#25262)
- d54156ed08 extmarks: blending space shouldn't overwrite wide char (#26960)
- 54225bdb02 extmarks: crash with sign after many marks
- 65b1fd00a7 extmarks: do not remove decor from invalid old marks
- 437d35dbf7 extmarks: do not remove invalid marks from decor upon deletion
- a05bbc60ea extmarks: don't position overlay virt_text halfway a char (#24027)
- 4dd43e31db extmarks: don't show virt lines for end mark (#23792)
- dfa8b582a6 extmarks: draw TAB in virt_text properly with 'rl' (#25381)
- a6e4793baf extmarks: draw virt_text below diff filler lines properly (#25170)
- 958cc22836 extmarks: empty inline virt_text interfering with DiffText (#24101)
- 0534ad8ca5 extmarks: empty inline virt_text interfering with Visual highlight
- 31a51acdc3 extmarks: fix heap buffer overflow caused by inline virtual text (#23851)
- 9c41a81dec extmarks: fix virt_text_hide off-by-one hiding (#23795)
- a6dd67f5b6 extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757)
- 818d7f6daf extmarks: fix win_col virt_text drawn on wrong screen line (#25264)
- c4df2f08b6 extmarks: fix wrong highlight after "combine" virt_text (#24281)
- b65cd7ff1a extmarks: fix wrong virt_text position after wrapped TAB (#25168)
- 4c7cec4e29 extmarks: handle inline virt_text with empty chunk (#24005)
- ee3d4f6b90 extmarks: handle overwriting right half of wide char (#26951)
- f4f1ce1d16 extmarks: hide inline virt_text properly with 'smoothscroll' (#24106)
- 34a786bc49 extmarks: inline virt_text support multiple hl groups (#25303)
- 5a6c7c805b extmarks: make empty "conceal" respect &conceallevel = 1 (#24785)
- 510e1f131b extmarks: make right_align and win_col work on wrapped line (#23759)
- 215244f749 extmarks: missing "spell" and "conceal" in details (#27116)
- 35e50d79c6 extmarks: overlay virt_text position after 'showbreak' (#25175)
- a0790558c3 extmarks: priority order of inline and non-inline virt_text (#27532)
- b52bd8a2de extmarks: properly handle virt_text on next screen line (#25166)
- a376d979bd extmarks: redraw line on adding/removing conceal (#27463)
- 2d9e063a63 extmarks: redraw pre-undo position (#27437)
- 2137edbd4f extmarks: redraw properly with scoped inline virt_text (#27569)
- 1cc358aed6 extmarks: restore old position before revalidating
- 0818d65528 extmarks: skip virt_text if it is out of window (#25658)
- 19d63563e1 extmarks: splice earlier when opening new line (#28108)
- 362df0f793 extmarks: wrong display when changing text with virt_lines (#24879)
- d5a85d737a f_wait: flush UI before blocking (#25962)
- 81f67b79e8 file_search: path with spaces in finddir() and findfile() (#25493)
- a69c720639 fileio: fix off-by-one in rename_with_tmp (#27780)
- c6c21db82b filetype: add typing and dry (#24573)
- 020d1f626a filetype: call on_detect before setting buffer filetype
- fdf5013e21 filetype: correctly detect bash-fc-{id} files as "sh"
- d6f406db45 filetype: don't use fnamemodify() with :e for extension (#27976)
- 670c7609c8 filetype: make sure buffer is valid before call nvim_buf_call (#24922)
- af38b46a25 filetype: return on_detect function when matching by file contents
- 2955c921ce filetype: use unexpanded file name (#27931)
- e32af31ee8 flake: clang-tools moved to nativeBuildInputs (#26955)
- fd08fd3de3 float: add fixd option
- 884470124d float: allow floating window in cmdline area
- 9ecb43b637 float: apply 'winblend' to title/footer highlight (#25999)
- 898371fc9f float: don't relative flaot win itself
- fcdfbb4303 float: fix some other crashes with :unhide or :all (#25328)
- 3ea124a8d9 float: improve error message when reconfig failed (#25076)
- c5abf487f1 float: make "fixed" work with relative=win (#25243)
- 03e8b5fc91 float: make bufpos work properly with resized parent grid
- 437ed3cee2 float: trigger winnew event when float window create
- f5953edbac float: update position of anchored windows first (#25133)
- 9de157bce4 float: win_get_bordertext_col returning negative column number (#25752)
- 5f18dd3013 float: wrong position when bufpos is set
- 0e01e81552 folds: allow overlay virtual text on folded line (#23892)
- ee986ee044 folds: combined Folded and Visual highlights (#23752)
- ded01a819a folds: don't show search or match highlighting on fold (#24084)
- 811140e276 folds: fix missing virt_lines above when fold is hidden (#24274)
- 678548a2b4 folds: show Folded highlight in Visual selection (#23741)
- 58f9486144 folds: update folds in Insert mode with fdm=indent (#24402)
- 38e38d1b40 fs: allow backslash characters in unix paths
- 8a7e3353eb fs: make `normalize()` work with '/' path (#24047)
- ae5095cac9 fs: use generics for better typing
- e4da418ba8 fs.lua: normalize slash truncation (#23753)
- 06fcf71bd0 fswatch: --latency is locale dependent
- 502a7a0558 ftplugin: respect runtimepath ordering
- 03a2c5b772 ftplugin: source Lua files after Vimscript files per directory (#23801)
- be5cf33836 gen_help_html: type warnings, spell_ignore_files #27254
- 6c35fb421e gen_lsp.lua: improve type name, and fix wrong type inheritance
- 214b125132 gen_lsp.lua: no notifications in lsp.Methods #24530
- 765729a145 gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds
- ccf328172b gen_vimfn_types: don't include tag before signature's line (#24492)
- 86c9d8b53c gen_vimvim: correctly add aliases to vimAutoEvent (#23429)
- 240c41e1af genvimvim: add special abbreviations of :delete (#23172)
- 51ea753747 genvimvim: generate prefixed boolean options properly (#27487)
- 9f32deba56 grid: add start column when getting char on line (#25627)
- 4ed1c2a8af grid: don't draw beyond max column (#26172)
- 9c202b9392 grid: handle clearing half a double-width char (#27023)
- 6a486c44e6 gx: move to to _init_default_mappings #24420
- 67b2ed1004 gx: visual selection, expand env vars
- e39b6d0c52 health: "attempt to concatenate nil"
- 7ffe450173 health: check for _host_prog variables properly (#23014)
- 50cd5ed360 health: check more "old" files
- f6dcc464f2 health: check unmatching python_glob as empty table (#28215)
- 6818ba271c health: clients may not support watchfiles #28710
- 03a021f378 health: combine python and virtualenv healthchecks (#23004)
- c67efe3a9c health: correctly expand and resolve PYENV_ROOT (#26953)
- 88eb0ad149 health: fix tmux RGB capability detection (#26886)
- cde4892b49 health: fix typo in function name
- 63a17322dd health: improve python executable check error handling (#26954)
- ba88fd886a health: malformed call to warn() #26217
- 8c6f97bef8 health: properly use the value of $PYENV_VERSION (#23109)
- c8ebb04e92 health: replace healthFoo with DiagnosticFoo (#23475)
- 843c1bed95 health: stop job properly on timeout (#23877)
- 96d0c709b6 healthcheck: expand vimrc variable (#28379)
- 4229bbe514 helptags: make multibyte help tags work properly (#23975)
- 7b6d041bae heredoc: allow missing end marker for scripts
- a2f17e97ec highlight: add `FloatFooter` to 'highlight_defs.h' (#25577)
- 837f268093 highlight: add `Nvim{Light,Dark}Gray{1,2,3,4}` colors
- 8afb3a49c0 highlight: add create param in nvim_get_hl
- f8ea49cfe1 highlight: add force in nvim_set_hl
- 4ce0ada0d4 highlight: add missing g: prefix for colors_name (#22952)
- 03ca36d1f8 highlight: apply 'winblend' to NormalNC (#23555)
- 6c3e170e56 highlight: apply 'winblend' to float border (#25981)
- d4872377fe highlight: attr set all when normal attr changed
- dcaf207336 highlight: combine ColorColumn with low-priority CursorLine (#23017)
- 66925f14de highlight: consistently spell "Goldenrod"
- 5183651773 highlight: correct hi command output
- ca7dd33fa7 highlight: don't show CursorColumn on current line (#27848)
- 59289fb987 highlight: make CurSearch work properly with 'winhl' (#24448)
- b11a8c1b5d highlight: remove unnecessary assignment to char_attr for 'spell' (#23713)
- 9a2c98087b highlight: update `IncSearch` to link to `CurSearch`
- ab92575753 highlight: winhl receive wrong argument
- b60a2ab4cb inccommand: block errors when parsing command line again (#24374)
- bc5b0da84e inccommand: don't crash with "split" and 'n' flag
- 382ea4d402 inccommand: don't preview in Ex mode (#26587)
- c1c2a1b5dd inccommand: don't save information of a buffer twice (#24501)
- ef44e59729 inccommand: don't set an invalid 'undolevels' value (#24575)
- ba9f86a9ce inccommand: improve preview buffer number handling (#27087)
- 643bea31b8 inccommand: restrict cmdpreview undo calls (#24289)
- 1dba570e63 inccommand: save and restore '[ and '] marks (#26442)
- 35ffe58ea4 inccommand: update topline after moving cursor (#27341)
- a14c780918 input: set termkey buffer size to read stream capacity
- b61575ba70 intro: clear intro if new buffer is shown in focused float
- 9530a23016 intro: link showing intro to state at start
- 0570a19c8a intro: make intro explicitly stateful
- d1a30221fc intro: redrawing intro exposing pseudo-randomness
- 21360523cd intro: still show intro message with floating window
- 6b96122453 iter: add tag to packed table
- 2ee8ace217 iter: make pipeline termination conditions consistent (#24614)
- 9489406879 iter: remove special case totable for map-like tables
- 57ccd82417 job-control: fix use after free (#25223)
- 1c71c32b29 job-control: make jobwait() flush UI after hiding cursor (#25927)
- e057b38e70 json: allow objects with empty keys #25564
- af6537bc66 jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461
- 017ff93b02 keycodes: recognize <t_xx> as a key (#24700)
- 6709f7f8f1 keycodes: simplify S- properly when D- is present (#27316)
- 4447cefa48 l10n: update Japanese translations (#27856)
- 7d17ab5b6f l10n: update Ukrainian translations (#26819)
- 908843df61 languagetree: apply `resolve_lang` to `metadata['injection.language']`
- e353c869ce languagetree: don't treat unparsed nodes as occupying full range
- 6b5f44817e languagetree: remove double recursion in LanguageTree:parse
- f5530bf566 linematch: initialize array
- 766f4978d6 lint: lint warnings #24226
- 5465adcbab lint: use tbl_contains
- 0804034c07 loader: cache path ambiguity #24491
- 89135cff03 loader: remove cyclic dependency on vim.fs (when --luamod-dev)
- 66c66d8db8 loader: reset hashes when running the loader
- ec80e4cb4d log: increase size of buffer for nvim instance name
- 4d0f4c3de9 lsp: E403 if doc contains multiple codeblocks #24458
- 20c331915f lsp: SignatureHelp docstring is not escaped #16702
- 01691c5447 lsp: abort callHierarchy on no result (#28102)
- 9abced6ad9 lsp: account for border height in max floating popup height (#25539)
- 3e016fa8d4 lsp: actually send diagnostic-tags back to the server
- 37d8e50459 lsp: add "silent" option to vim.lsp.start (#28478)
- 2e1f5055ac lsp: add assertion for explicit bufnr in apply_text_edits (#27614)
- 542c910a1d lsp: add missing LSP semantic token highlight links
- be5e361154 lsp: add param assert in client_is_stopped (#23857)
- ac0e8323dc lsp: add parentheses to generated union array types (#27560)
- 0fcbda5987 lsp: add snippet regression test (#27618)
- e42fdaad21 lsp: add spacing for inlay hints separately #24079
- 48bcc7b971 lsp: advertise workspace.didChangeConfiguration capability (#26028)
- c07dceba33 lsp: allow Lua pattern chars in code action filter (#24041)
- 3bf887f6e0 lsp: always return boolean in lsp.buf_client_attach (#24077)
- 966eb8e0b3 lsp: announce publishDiagnostics.dataSupport (#24442)
- 39fc340276 lsp: avoid assertion when `client_hints` do not exist (#28461)
- 47dbda97d2 lsp: buffer messages until connected to server (#28507)
- adbe7f3683 lsp: call `on_list()` even for single location (#25830)
- 15983cf2c6 lsp: cancel session when leaving snippet region (#25762)
- 816b56f878 lsp: cancel watchers when closing a client
- 9b8a075539 lsp: change `silent` in lsp.start.Opts to optional (#28524)
- d3e0352574 lsp: check if inlay hints are enabled for a buffer before disabling (#24074)
- fa9a85ae46 lsp: clean up duplicate and unused meta type annotations
- 8bd6f7c20b lsp: clear codelens on LspDetach (#24903)
- 97c0a52416 lsp: correct deprecation message #28403
- aa62898ae3 lsp: correct the error message's cmd on spawning (#27632)
- 77a9f3395b lsp: create codelens request parameters for each buffer (#27699)
- 9281edb334 lsp: create per client params in lsp.buf.code_action
- 39cc38a87b lsp: defer writing error msgs (#27688)
- 1b679ac192 lsp: define LspInlayHint highlight group #24073
- dc8c086c7e lsp: directly rename the existing buffers when renaming (#27690)
- c1a95d9653 lsp: disable didChangeWatchedFiles on Linux
- 2fde6295df lsp: display initialization errors (#25409)
- 94127cb5df lsp: do not add extra indentation
- cc87dda31a lsp: do not assume client capability exists in watchfiles check (#24550)
- 0fe0cf5ada lsp: do not cancel snippet when selecting placeholder (#25835)
- 073035a030 lsp: don't register didChangeWatchedFiles when capability not set (#23689)
- 5eee633c97 lsp: don't start additional client if attach failed (#28744)
- 21fa19f3e8 lsp: don't use hl_mode = combine for inlay hints #24276
- 96b94f8d77 lsp: duplicate on_detach, on_reload callbacks #24067
- b95b6ed975 lsp: empty commands should not be considered executable (#28216)
- c3c673cdec lsp: enable() does not activate inlay hints on open buffers #28629
- b2c26a875b lsp: ensure buffer is not attached more than once
- fa0a25dcb3 lsp: error in reset_timer on second detach #24117
- 72e64a1afe lsp: extra "." when completing with tsserver #24646
- 031088fc0a lsp: filetype matching to documentSelector in dynamic capabilities (#25425)
- d191bdf9d5 lsp: fix attempt to call non existent function (#24212)
- dd3fa64573 lsp: fix dynamic registration of code actions (#23826)
- ce4ea638c7 lsp: fix incorrect typing and doc for `vim.lsp.rpc`
- f487e5af01 lsp: fix infinite loop on vim.lsp.tagfunc
- 74bd4aba57 lsp: fix multi client handling workspace_folder methods (#18839)
- 5e5f5174e3 lsp: fix off-by-one error for omnifunc word boundary
- ba6761eafe lsp: fix omnicomplete in middle of the line (#25787)
- 075a72d5ff lsp: fix relative patterns for `workspace/didChangeWatchedFiles` (#23548)
- 840e1864c2 lsp: handle NUL bytes in popup text (#25612)
- 345bd91db2 lsp: handle absence of a trailing newline #25194
- 0e9a33572d lsp: handle adjacent snippet tabstops
- 853f647da6 lsp: handle reverse lookup in capabilities
- 91f67fabe6 lsp: handle stale bufnr on LspRequest autocmd trigger (#24013)
- 849d82b80b lsp: handle stale bufnr on LspRequest autocmd trigger (#27981)
- 2eecb1b85d lsp: highlight active parameter in signature help #25663
- e55e80d51c lsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469
- 7968322e7a lsp: inlay_hint nil reference error #24202
- ba8f19ebb6 lsp: lint warnings, default offset_encoding #24046
- 3304449946 lsp: log unknown diagnostic tags instead of showing a warning (#25705)
- 251ca45ac9 lsp: markdown code fence should allow space before info string #24364
- add7e106d5 lsp: noisy warning about offset_encodings #24441
- c235959fd9 lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535)
- 1dacf2ecee lsp: prevent code-lens refresh from becoming a permanent  no-op (#28228)
- 597ecf7516 lsp: re-add client.commands and mark private
- 94a904b453 lsp: reapplying already-applied hints #24114
- 4ecc71f6fc lsp: reduce diagnostics and add more types (#23948)
- bc7f86209d lsp: redundant vim.snippet.jumpable #28560
- ee156ca60e lsp: refactor escaping snippet text (#25611)
- 2ecba65b4b lsp: remove unknown LSP protocol property (#24345)
- 7311958e12 lsp: remove unnecessary file load/write when renaming (#27621)
- e14e750998 lsp: rename LspProgress data.result => data.params #28632
- f0e61e6d92 lsp: rename fails on missing parent directory #27291
- b413f5d048 lsp: rename undofile when renaming (#27684)
- d09957e0a0 lsp: rename: load and list new buffer if attached to window (#27408)
- 7668f89d5b lsp: replace @private with @nodoc for public client functions (#24415)
- 52823616bc lsp: replace bug-prone ternary operation #28627
- 5282d3299c lsp: restore marks after apply_text_edits() #14630
- cf5f1492d7 lsp: revert change to buf.clear_references() #24238
- 917172dd96 lsp: semantic token defer loading
- 3be2536ca0 lsp: send back diagnostic tags to the server
- a37d568082 lsp: send empty "added" list when removing workspace folder #24440
- 3c6d971e54 lsp: set extra info only when it has a value (#23868)
- 5785c32f11 lsp: set fallback client name properly
- 370232dbef lsp: track snippet deletion
- ca26ec3438 lsp: use only utf-16 in default client positionEncodings (#23903)
- b302da9ad2 lsp: use percentage format on lsp.status (#23971)
- 2c8f36a3b0 lsp: use plain loop for non-list-like table of protocol values
- 8addd27504 lsp: when renaming directory, check path prefix of buffer names (#27603)
- 597355deae lsp: wrong iterator in registerCapability handler (#24971)
- b2d471ab33 lua: allow nil values in serialized Lua arrays (#26329)
- 68f12e7fcb lua: annotate that TSNode functions can return nil (#24621)
- 4ffc20c951 lua: avoid internal error when :luado deletes lines (#27262)
- 3198038224 lua: correct return value for on_key with no arguments (#25911)
- 84bbe4b0ca lua: disallow vim.wait() in fast contexts
- 22eb2ba183 lua: do not schedule events if Nvim is exiting
- 7d279a09e0 lua: handle array with holes in luaeval() (#26630)
- c43c745a14 lua: improve annotations for stricter luals diagnostics (#24609)
- 2f779b94e7 lua: inspect_pos respect bufnr when get syntax info (#23098)
- e2e63bd045 lua: make highlight.on_yank use win-local highlight (#27349)
- b40170f7a3 lua: memory leak when using invalid syntax with exists() (#26530)
- 4ab9c5fa46 lua: not using global value in vim.opt_global (#25196)
- 20ec4c776a lua: only disable vim.schedule() when closing main loop (#26090)
- f150b62423 lua: only free luarefs when returning from API (#28373)
- 0190771713 lua: remove uri fragment from file paths (#27647)
- 5aa14e1231 lua: return after assert returns assert message (#27064)
- 5331d5772f lua: show error message when failing to set variable (#25321)
- 1294e221a2 lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
- 37c58226a8 lua: vim.fs typing (#24608)
- 5db076c7cc lua: vim.region on linewise selection #25467
- 622b1ae38a lua: vim.split may trim inner empty items
- a7df0415ab lua2dox: filter out the entire `---@alias` block
- 32e69bd397 luarc.json: ignore test directory to save memory
- 6f936c9d85 man: make :Man with a range work (#25922)
- 59aadf33ef man: pass modifiers also to :tag (#27878)
- a9b4dc9614 man: set the nested flag for the BufReadCmd autocommand (#26285)
- c8d1d8b254 man.lua: don't continue on command error (#23009)
- a4c4b39d55 man.lua: hardwrapped manpage is not resized #25646
- 209ed16f57 man.lua: return support of all sections
- 3a7c30dc93 man.vim: q quits after jump to different tag in MANPAGER modified (#28495)
- 3c667d3e0f mappings: fix mapset() not replacing map with backslash (#26719)
- 0451391ec5 mark: properly init mark views (#22996)
- d432bba4e4 marks: handle switching buffer properly (#25763)
- 62306a29ad marktree: correct qsort usage
- 585549625d marktree: off-by-one error in `marktree_move`
- 34be915f6b marktree: preserve ordering in `marktree_move`
- b97d5038f1 marktree: some marks counted twice when checking for overlap
- ad5a155b1f mbyte: fix bugs in utf_cp_*_off() functions
- b028233991 memline: more curbuf stuff
- 91ef26dece messages: :map output with ext_messages (#26126)
- eabf9de1dc messages: allow more prompt in headless mode with UI (#27905)
- 60fb8a6a8b messages: avoid crash with :intro and ch=0 (#28343)
- 61a0aa6c51 messages: avoid passing negative length to strnlen() (#28753)
- ca258db156 messages: clear new lines when increasing 'cmdheight' (#27421)
- c9f47fca8b messages: ensure msg_grid is at top at more prompt (#23584)
- 2f17ef1fc4 messages: use "Vimscript" instead of "VimL" #24111
- 55dbf5c379 messages: validate msg_grid before using msg_grid_pos (#26189)
- 4db77017fb meta: add nil return types to lpeg functions
- 5198a2555d meta: cleanup lpeg operators
- dae6770b76 meta: include vim.json
- d31f7648ec mkspell: prevent Unicode character overflow (#23760)
- a8a93e517f mouse: avoid dragging after click label popupmenu callback (#26187)
- 6a2a37b1e1 mouse: avoid dragging when clicking next to popupmenu (#26201)
- 091eb4c8c7 mouse: click after eol with conceal and virtual text (#27897)
- 2b475cb5cc mouse: click on 'statuscolumn' with 'rightleft' (#25090)
- e25cf47ad3 mouse: click on empty line with 'foldcolumn'
- 84a4319545 mouse: cmdline click registered as statuscolumn (#23163)
- bf52fb7193 mouse: copy the line before syntax matching (#24320)
- 5fb4c397a1 mouse: drag vsep of window with 'statuscolumn' (#24462)
- dc394b9641 mouse: fix popup menu position check with winbar (#23456)
- 7c1921e9d6 mouse: fix popup_setpos position check with ext_multigrid (#23436)
- a3fba5cafc mouse: handle folded lines with virt_lines attached to line above (#23912)
- 64aa0f7d0b move: check for filler lines properly (#28307)
- 366d0c7887 move: check the correct buffer (#25698)
- 780509aedf move: fix using the wrong window (#28312)
- 60d1e3e471 msgpack: store grid line event as a value
- c52dfb6e84 normal: don't check conceal when pressing 'r' (#27892)
- 088cdf69e3 normal: make "g$" work properly with resized grid
- a1ded1b113 oldtest: always use a 64-bit int for swapfile block number
- 92c59c39c3 ops.c: remove duplicate u_save_cursor()
- 9d01385c6c options: `'modified'` showing incorrect value for scratch buffers
- c3e176f6e2 options: correct condition for calling did_set_option() (#25026)
- 9af03bcd47 options: do not change inccommand during preview (#25462)
- 796df966f3 options: don't update curswant for 'winhl' or 'winbl' (#27515)
- d956bc6379 options: setting 'scroll' with resized grid (#26628)
- c8a27bae3f options: use a union for def_val (#27169)
- 804c828e68 optionstr.c: incorrect use of curbuf/curwin
- a9df0c5ce6 osc52: do not use 'vim.iter' (#27218)
- 5d75d9aef2 osc52: enable OSC 52 by default in tmux sessions (#26072)
- 86c2213b5e osc52: use `p` for primary selection instead of `s` (#26076)
- 1045659097 osc52: use nvim_chan_send() to stderr for copying (#26690)
- e3bd04f2af pager: handle consecutive newlines properly (#27913)
- 1e7e9ee91f path: accept special characters on Windows (#25424)
- f064e72b9b path: check return value of append_path() (#28309)
- f5eabaa940 path: restore space separation in 'path' (#25571)
- 908f247c22 plines: count 'showbreak' for virtual text at eol
- a0cbf1d8d5 plines: cursor position with 'showbreak' and resized grid (#28067)
- 317038e7cb plines: don't return very large height on very long line (#24260)
- 7955c90621 plines: folded lines with virt_lines attached to line above
- 35c3275b48 plines: handle inline virtual text after last char (#24241)
- cbadb39d16 plines.c: initialize cts_max_head_vcol (#24855)
- fc14928719 printf: make positional %zd and %zu work (#24722)
- d0b3c87219 process: avoid potential data race on exit (#27769)
- 3e569d440b process: close handles and timer in pty_process_close() (#27760)
- 268066e014 process: start pty process eof timer on main thread (#27625)
- 49983387ff prompt: emit change event for prompt newline (#28260)
- 7bd6bd1ef7 provider: cannot detect python3.12 #25316
- 61ecb3e16c provider/pythonx: import the correct module (#25342)
- 540941ef83 pum: don't position too far with resized parent grid (#23442)
- f186224dfc pum: fix missing rightmost column with 'rightleft' (#23445)
- 8bc973c6f5 pum: fix missing scrollbar with 'rightleft' (#23448)
- a7550a20e0 pum: handle right-click menu repositioning with multigrid (#26975)
- fbaa278773 pum: make :popup position correctly with float border
- a3dfe1bc89 pum: position properly with ext_multigrid (#23336)
- c1331a65dd pum: show right-click menu above cmdline area (#23298)
- dd0e77d48a query_error: multiline bug
- 5ac2e47acc redo: make redo of Lua mappings in op-pending mode work (#23566)
- 60f69014a8 redraw: multibyte characters are wrapped at the end of a line (#23696)
- cb34d0ddd0 redraw: overwrite double-width char with virt_text properly (#23708)
- d184933cdc redraw: update Visual selection properly with splits (#27343)
- 54044e6dce release.sh: ze version is too big
- cce9460524 remote: make --remote-expr print to stdout (#23980)
- bde59e8147 remote: restore previous --remote-expr output formatting (#23988)
- 468292dcb7 rpc: "grid_line" event parsing crashes (#25581)
- 4d4092ac9e rpc: assertion failure due to invalid msgpack input
- 8921d56053 rpc: do not crash when no input is consumed
- c422722b2e rpc: fix hang with channel closed while waiting for response
- adb2258345 rplugin: dont create data dir if it's a broken symlink #25726
- 65dd3c1180 ruler: show ruler of curwin with no statusline in cmdline
- f5231d61a5 runtime: add commentstring for C# ftplugin (#23039)
- 3387dc4a46 runtime: add commentstring for D ftplugin (#25362)
- 615b48aca6 runtime: add more Nvim-only highlight groups to Vim syntax
- aee6f08ce1 runtime: do not allow breakcheck inside runtime path calculation
- df297e3c2b runtime: don't set gx mapping if already mapped (#24262)
- 9176b5e10a runtime: respect 'fileignorecase' when sourcing (#24344)
- dbb840da01 runtime: respect 'rtp' order for all runtime files (#24335)
- 70a0049296 runtime: source c ftplugins in correct order (#27377)
- d431a4d410 runtime: source old color scheme in bundled color schemes (#26641)
- 3ab6f60dc8 runtime: update 'vim' color scheme to use new tree-sitter groups
- 67fba9affa runtime/tutor: don't try to close fold when there is none (#24953)
- ee56daebb6 shada: update deleted marks (#24936)
- 517dfdf0fc shada: update marks when using delmarks! (#24978)
- 4d52b0cf67 showcmd: clear the rest properly (#28420)
- fcd9905291 sign: avoid deleting from sign map while looping over it (#27158)
- a84b454ebe sign: do not error when defining sign without attributes (#26106)
- a5ade3c63d snippet: correct indent with newline
- 4625394a76 snippet: do not add extra indent on newlines (#28538)
- a1bdf2852d snippet: remove misleading comment about TM_FILENAME_BASE (#26465)
- 8c044f0862 spell: always accept ':' as filename char in 'spellfile' (#27172)
- a803bff89c spell: extmark with spell=false should disable spell (#23400)
- eceb2dffce spell: splice extmarks on :spellrepall (#23929)
- aa65bd478a startup: "nvim -l foo.lua" may not set arg0 #24161
- 628f6cce80 startup: don't truncate when printing with -l (#24216)
- c0fa721ade startup: make recovery mode work without --headless (#24477)
- 8e739af064 startup: multiprocess startuptime #26790
- 8f10362cdc startup: only send one default_colors_set event during startup
- 559c4cfd52 startup: run embedded Nvim with real path (#24282)
- b21d960119 startup: set full_screen when in ex_mode
- 9637b7dae4 startup: stop TUI properly when quitting at swap dialog (#25337)
- d7359a8742 startup: trigger UIEnter for the correct channel (#25860)
- 01e273c340 statuscolumn: don't update clicks if current width is 0 (#24459)
- afd0c648a8 statuscolumn: force full redraw when signcolumn is invalid (#24859)
- dc6c11394b statuscolumn: update number hl for each screen line (#25277)
- a4b2400804 statusline: also allow right click when 'mousemodel' is "popup*" (#23258)
- 4ecf6fdfd8 statusline: bail out properly on negative row (#23535)
- 70da793c5e statusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823)
- d7bb19e013 statusline: fill for double-width char after moving items (#24207)
- 54f5602038 statusline: fix uninitialized variable and possible overflow
- 9f15a18fa5 statusline: missing offset when showing 'keymap' (#27270)
- 7b973c71ea statusline: redraw when VIsual_mode changes (#23933)
- dbc0fa9bd6 stdpath: remove duplicate directories (#26653)
- 1907abb4c2 stream: do not close handle if it is already closing (#26537)
- 9dd48f7832 substitute: properly check if preview is needed (#23809)
- 9753cda591 syntax: use correct diagnostic group for checkhealth (#23538)
- 400b7842a9 termcap: escape escapes in passthrough sequence (#26301)
- e527842211 termcap: only call callback for requested capabilities (#26546)
- ffeb31c2f9 termcap: set 'nested' on TermResponse autocommand
- b7831c7f99 termcap: use tmux passthrough sequence when running in tmux (#26281)
- e6d3f87dfd termdebug: handle partial lines passed to callback (#22950)
- c413b42c45 termdebug: prompt mode breaks with &splitbelow set
- 8aad4b8425 termdebug: send SIGINT when interrupting prompt mode
- af78060b18 termdebug: trim suffixed "\r" in CommOutput
- 684e93054b terminal: assign channel to terminal earlier (#25771)
- 82b1a389ba terminal: avoid Insert mode in Terminal buffer (#25820)
- 99288ecc77 terminal: block input when there is pending TermRequest (#27589)
- f2ce31d3dc terminal: call validate_cursor() before screen update (#24425)
- e09adfdcff terminal: check if mouse on statusline/tabline/winbar/vsep (#26892)
- e115732465 terminal: check terminal size at end of screen update (#25480)
- 120c4ec855 terminal: disable reflow again
- c881092ffe terminal: don't lose focus on <MouseMove> (#25845)
- 16a416cb3c terminal: don't pass incomplete UTF-8 sequence to libvterm (#27922)
- d0d132fbd0 terminal: don't send unknown special keys to terminal (#24378)
- 74776dfb2a terminal: fix duplicate recording with mouse click (#28103)
- 21d466c1b9 terminal: forward horizontal mouse scrolling (#24552)
- d401b33314 terminal: handle horizontal scrolling in another window (#24828)
- 5e78fd7784 terminal: ignore $VIM and $VIMRUNTIME in pty jobs
- 0a7fda6fa0 terminal: include modifiers when forwarding mouse (#24549)
- d4c2fc6ff6 terminal: keep focus when scrolling number column of another window (#25848)
- 5ca6c9e046 terminal: make backslashes in 'shell' work on Windows
- aba954b662 terminal: never propagate $COLORTERM from outer env (#26440)
- b74262a336 terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418)
- 0fd8eb8aae terminal: set $COLORTERM unconditionally in :terminal (#24763)
- fa17a5ab49 terminal: use terminal buffer for TermRequest autocommand (#26974)
- 5999214c24 termkey: accept BEL (0x07) as OSC terminator
- ce2f770aaa termkey: do not sign extend mode value
- 50f5864dd2 termkey: include IO header on Windows
- 52e6059415 test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905)
- c5528e7fd8 test: clean up inline virtual text tests a little
- 380b634ac9 test: fix "indeterminism" warnings in UI tests
- f4c97da262 test: fix strings_spec.lua for AArch64
- 477458f7bf test: more tests for marktree
- d8e330bcec test: remove test/compat.lua
- a7bbda121d test: typing
- 8861ad83fd test/tui_spec: pass the expected NULL-sentinel to execl()
- f859d16aea tests: set SHELL=sh #24941
- 3d44340cea tests: use more global highlight definitions
- e9bfbe99cd textformat: remove unnecessary changed_bytes() (#26027)
- 255e547e18 timer: allow timer_info() to get info about current timer
- a8131aee9e tohtml: replace hex escape with digit escape (#27728)
- 0246f1a897 tohtml: set filetype of generated HTML to `html`
- ccc0980f86 treesitter: Use the correct replacement args for #gsub! directive (#23015)
- 71d9b7d15c treesitter: _trees may not be list-like
- a4743487b7 treesitter: `language.add` - only register parser if it exists
- 4a8bf24ac6 treesitter: adjust indentation in inspector highlights (#26302)
- ef64e225f6 treesitter: allow foldexpr without highlights (#23672)
- 6a264e0897 treesitter: allow optional directive captures (#28664)
- cf612c64b0 treesitter: allow passing lang to vim.treesitter.get_node() now correctly takes opts.lang (#26360)
- 32849d5667 treesitter: avoid # of nil in _query_linter
- 3fd7449d5a treesitter: check that buf is loaded in autocommands (#25679)
- e7f50f43c8 treesitter: clip end row early
- 6b19170d44 treesitter: correctly calculate bytes for text sources (#23655)
- bd5008de07 treesitter: correctly handle query quantifiers (#24738)
- fba18a3b62 treesitter: do not calc folds on unloaded buffers
- c30ebb17f6 treesitter: document more standard highlight groups
- 040369e1e4 treesitter: don't forcefully open folds
- 72ed99319d treesitter: don't invalidate parser when discovering injections
- 4607807f9f treesitter: don't update fold if tree is unchanged
- 26b5405d18 treesitter: enforce lowercase language names (#28546)
- 3a8265266e treesitter: escape "\" in :InspectTree #28613
- 369f58797d treesitter: escape quotes in :InspectTree view #24582
- 6e45567b49 treesitter: fix TSNode:tree() double free (#24796)
- 50a03c0e99 treesitter: fix another TSNode:tree() double free
- 7c6f9690f7 treesitter: fix indexing in foldexpr
- 01b91deec7 treesitter: fix parens stacking in inspector display (#26304)
- f40a109716 treesitter: fix trim predicate
- 1f551e068f treesitter: fixup for InspectTree
- 26cc946226 treesitter: foldexpr tweaks
- e85e7fc7bc treesitter: handle empty region when logging (#24173)
- 12faaf40f4 treesitter: highlight injections properly
- 6f75facb9d treesitter: improve vim.treesitter.foldexpr
- 6c8387067d treesitter: inspect-tree remember opts on buf change
- 8179d68dc1 treesitter: logger memory leak
- b6e339eb90 treesitter: make InspectTree correctly handle nested injections (#26085)
- 3af59a415c treesitter: make Visual hl work consistently with foldtext (#25484)
- c7e7f1d4b4 treesitter: make foldexpr work without highlighting (#24167)
- 0211f889b9 treesitter: make sure injections don't return empty ranges (#24595)
- 0df681a91d treesitter: make tests for memoize more robust
- 7fa292c52d treesitter: outdated highlight due to tree with outdated region
- 617d1b28d6 treesitter: prefix treesitter types with vim
- 90a12d4a16 treesitter: prepare highlight states for [s, ]s
- 7e5ce42977 treesitter: properly combine injection.combined regions
- 19a793545f treesitter: redraw added/removed injections properly (#23287)
- 7a76fb8547 treesitter: remove more double recursion
- e124672ce9 treesitter: reset cursor max_start_depth
- 7d97150084 treesitter: return correct match table in iter_captures()
- 3b29b39e6d treesitter: revert to using iter_captures in highlighter
- 315c711700 treesitter: set cursor position when opening inspector
- 48085e40bb treesitter: stop() should treat 0 as current buffer #24450
- 32dc484ec9 treesitter: support subfiletypes in get_lang (#23605)
- b6fdde5224 treesitter: text alignment in checkhealth vim.treesitter
- 0f85aeb478 treesitter: treecursor regression
- 26143d7a5c treesitter: update @markup default links
- 9ff59517cb treesitter: update c queries
- c44d819ae1 treesitter: update folds in all relevant windows (#24230)
- ffb340bf63 treesitter: update folds only once on InsertLeave
- edf9a897f0 treesitter: update highlights for query (#23699)
- b697c0cd4f treesitter: update lua parser and queries (#24148)
- ad95b36985 treesitter: update markdown parser and queries (#24429)
- 39a0e6bf3c treesitter: update parsers and queries
- 3d4eb9d544 treesitter: update queries
- c97de026e3 treesitter: update vimdoc and vimscript queries
- dc7ccd6bca treesitter: use 0 as initial value for computing maximum (#27837)
- 7bc5ee7f93 treesitter: use proper query syntax for inspector (#26274)
- 00e6651880 treesitter: use tree range instead of tree root node range
- 8c9dab3e0d treesitter: use vim.highlight.priorities instead of hardcoded 100 (#24052)
- 674f2513d4 treesitter: validate language alias for injections
- 2bf3e82676 treesitter: validate window before updating preview highlights
- ab2811746e treesitter playground: fix the wrong range of a node displayed i… (#23209)
- f85aa2e67f treesitter.c: improve comments on fenv usage
- c5b9fb2f25 treesitter.foldexpr: check for all insert submodes
- b3bda2f043 tui: `space_buf` overflow when clearing screen (#27352)
- cb2b5e2780 tui: disable DECRQM and DECRQSS queries for Terminal.app (#28453)
- 405bad5e08 tui: do not toggle cursor visibility when flushing the buffer (#26055)
- b76cc974b9 tui: don't forget to update cursor visibility (#26523)
- 911f3d9623 tui: don't overwrite an assertion faliure message on exit
- 168e69ae01 tui: don't set cursor color when there is none (#28236)
- 5a08b5be3c tui: don't set tty background if &bg was set before VimEnter (#23701)
- 00b7428b3b tui: don't use DECRQSS in screen or tmux (#28086)
- 846714ca3e tui: don't use tui->params[] for 'termsync' (#26565)
- 197827321a tui: grid_clear properly clears the screen
- 884a83049b tui: grow termkey's internal buffer for large escape sequences (#26309)
- ad867fee26 tui: handle cursor visibility properly (#26091)
- fd50185492 tui: initialize clear attrs with current terminal background
- c26b39a9aa tui: make :cquit work properly with remote TUI (#25313)
- 3ae62c4706 tui: make disabling title restore old title from stack (#23585)
- 4c31a1b807 tui: make setcellwidths() work for non-ambiwidth chars (#28322)
- 4f235e3caf tui: position cursor at bottom-left before stopping (#23369)
- 0f1b511f23 tui: redraw on SIGWINCH even if size didn't change
- 8e69716953 tui: restore title before exiting alternate screen (#23776)
- 999e167a52 tui: start flush earlier (#26463)
- 367e52cc79 tui: use buflen to calculate remaining buffer size (#26942)
- 3198598e69 tui: use uv_timer_t instead of TimeWatcher for input (#26435)
- 0ce065a332 tui: v:argv does not report the original argv[0] #24015
- bc6fc0123d tutor: Tutor steps don't work on Windows #25251
- bf5703042b tutor: don't use concealed text in expected lines #24316
- e34c23b701 tutor: set a value for ":syntax iskeyword" (#27833)
- 04232a19cc type: remove incorrect arguments from vim.rpc*
- 21152f7905 types: add more annotations to eval.lua
- b7d5b55f74 types: add some return/parameter type annotations (#24867)
- e6947bb1e8 types: make filetype.add parameters optional
- 191cca2566 types: move type annotation for `IterMod`
- 813dd36b72 types: rename win_get_config return type to win_config
- b3342171d5 typing: vim.fn.execute
- 1355861b92 typval: don't treat v:null as truthy (#23281)
- 0592fd5e17 ui: "resize -1" with cmdheight=0 #24758
- ab1c2220f0 ui: activating all ext capabilities without remote UI #28555
- 5b111a8f00 ui: adjust 'smoothscroll' for inner dimensions
- 389f5ca39d ui: adjust the cursor when inserting virtual text
- 046c9a83f7 ui: always use stl/stlnc fillchars when drawing statusline (#25267)
- 0c86828ac5 ui: avoid ambiguity about chunk that clears part of line (#24982)
- e778e01161 ui: avoid recursiveness and invalid memory access #28578
- 0ce3910868 ui: cursor pos with left gravity inline virt_text at eol (#24329)
- 91a4938edf ui: data corruption in remote_ui_raw_line
- 1de82e16c1 ui: delay win_viewport until screen update #24182
- a916523574 ui: doesn't trigger au event when enter is false
- b5a38530ba ui: don't force 'cmdheight' to zero with ext_messages
- fdc8e966a9 ui: don't send empty grid_line with redrawdebug=compositor (#23899)
- 13f55750e9 ui: empty line before the next message after :silent command
- d41b8d4758 ui: ext_cmdline should not move cursor to curwin
- a38d7f9984 ui: fix cursor position with multiple inline virtual text
- e0707d3529 ui: fix edge case around flushing
- 75f350aac6 ui: fix incorrect highlighting when virtual text next to match
- 332b70d2ed ui: fix incorrect highlighting when virtual text wraps with number
- 0c7fa3bdcc ui: fix multi-byte characters highlight in virtual text
- a37c990483 ui: fix overflowing nowrap virtual text not displaying if tab follows
- 5d7afb2e9f ui: fix tabs not being spaced properly after virtual text with no wrap
- 34d862942c ui: fix virtual text not displaying when two overlapping inlines (nowrap)
- c5bf838f8a ui: fix visual and search highlighting interfering with virtual text
- 1936285d98 ui: fixes incorrect rendering when virtual text is not visable and nowrap
- 64e8a3c4d1 ui: handle virtual text with multiple hl in more cases (#25304)
- 981acc2922 ui: propagate line wrapping state on grid_line events
- b8c1b36061 ui: set 'cmdheight' to zero for all open tabpages
- a8522f02e9 ui: startup intro message should be visible with ext_multigrid
- 1cd7824dd6 ui: trigger TabNewEntered after split new tab
- 7626f431d8 ui: update ext_ui widgets when attaching non-remote UI
- 128091a256 ui: wrong cursor position with left gravity inline virt text at eol
- a9418ef8cf ui: wrong display with 0-width inline virt_text at eol (#24854)
- e8b3ed74bc ui-ext: "scroll_delta" handle topfill and skipcol (#24249)
- 43d66c0ebb ui-ext: send title to newly-attached UI
- 519b9929e9 ui.open: some URLs fail on Windows
- 4d654472e6 ui_client: check return code of dup()
- 633bf61d3b ui_client: check return value of channel_job_start (#27729)
- 71ad771ea4 ui_compositor: only reset skipstart at first column (#24776)
- 840749d6c9 undo: fix crash caused by checking undolevels in wrong buffer
- c0a29931e2 unhide: close floating windows first (#25318)
- 9afbfb4d64 unittests: ignore __s128 and __u128 types in ffi
- 9e79f7433e usercmd: Fix buffer overflow in uc_list() (#23225)
- 9802de9334 userfunc: fix possible out of bound access
- 5a8fe0769c vim.deprecate: show deprecation warning in devel versions as well
- ca6dbf3558 vim.iter: use correct cmp function when truncating tail in `take` (#27998)
- e15991c811 vim.json: properly treat luanil options as booleans (#28622)
- fec5e3ab24 vim.region: handle multibyte inclusive selection properly (#26129)
- 2afb04758c vim.system: close check handle (#24270)
- 9b7cf4f0be vim.system: don't process non-fast events during wait() (#27300)
- a44521f46e vim.system: let on_exit handle cleanup after kill
- 6d5f12efd2 vim.system: make timeout work properly
- 57adf8c6e0 vim.ui: open() may wait indefinitely #28325
- e644e7ce0b vim.ui.open: return (don't show) error message
- fd085d9082 vim.ui.open: try wslview before explorer.exe #28424
- 5e4a5f1aaa vim.ui.open: use explorer.exe instead of wslview #26947
- 6cc76011ca watchfiles: skip Created events when poll starts (#23139)
- 9bd4a28079 window: :close crash if WinClosed from float closes window (#27794)
- 731e7f51ee window: :close crash with autocmd, floats and tabpage (#27793)
- 33dfb5a383 window: :close may cause Nvim to quit with autocmd and float
- 2cbfa4b9af window: don't go to unfocusable float when closing (#28455)
- a47be0b2d9 window: prevent win_size_restore from changing cmdheight
- 4bfc7802f0 windows: set stdout to binary mode for --api-info

PERFORMANCE
--------------------------------------------------------------------------------
- a9c551e5e3 cache breakindent/showbreak width in win_lbr_chartabsize
- b5653984e5 don't decode utf8 character multiple times in getvcol()
- cca8a78ea2 improve utf_char2cells() performance (#27353)
- 2f2f12122f remove loop for computing last position in getvcol()
- 32a4c9f4f9 remove redundant strlen in skipwhite (#26177)
- cdf848a314 reuse fast character size calculation algorithm from getvcol()
- 2289ca273c column: avoid counting when max signs are removed from a range
- 4a34da82c1 column: keep track of number of lines that hold up the 'signcolumn'
- f4001d27ef column: only invalidate lines affected by added sign
- 7f084770c2 diagnostic: avoid table copies to filter by severity (#28491)
- 1cb6040554 events: store autocommands in flat vectors (#23256)
- 9af2be292d extmarks: add metadata for efficient filtering of special decorations
- 929e1b7f1c extmarks: avoid unnecessary invalidations for virt_text (#27435)
- 19fb573ad9 extmarks: avoid unnecessary marktree traversal with folds (#24306)
- d44ed3a885 extmarks: better track whether namespace has extmarks (#28615)
- ef94fb69c6 extmarks: don't handle inline virt_text if there is none (#24322)
- 8bb67d64e2 fs: normalize path only once in fs.dir
- 40db569014 iter: make ListIter.totable more efficient (#23714)
- ef1801cc7c iter: reduce number of table allocations
- dcdefd0428 loader: use a quicker version of vim.fs.normalize
- 648f777931 lsp: load buffer contents once when processing semantic tokens responses (#23484)
- 2f4792943a lsp: only joinpath for dirs in watchdirs
- edf05b005f lsp: process semantic tokens response in a coroutine that yields every 5ms (#23375)
- 79a5b89d66 lsp: reduce polling handles for workspace/didChangeWatchedFiles (#23500)
- 4d3a04279d lsp: remove grouping logic from lsp.status (#24096)
- de28a0f84c lsp: replace file polling on linux with per dir watcher  (#26108)
- 7e97c773e3 lsp: use async fs_stat for file watching on linux (#26123)
- cdd87222c8 lua: avoid spairs in vim.validate happy path
- c5af5c0b9a lua: faster vim.deprecate() #28470
- c5990f2cdc os/env: os_getenv() allocation when there is no env var set
- 18e62c1bdb redraw: only redraw Visual area when cursor has moved (#27340)
- 94085cfce8 redraw: reduce redraw with undo and extmarks or 'spell' (#27442)
- 516b173780 rtp: reduce rtp scans (#24191)
- 0e11bf0e1a substitute: don't reallocate new_start every time (#24997)
- 4fd852b8cb treesitter: cache fold query (#24222)
- 07080f67fe treesitter: do not scan past given line for predicate match
- c0cb1e8e94 treesitter: filter out trees outside the visible range early
- 2b6c9bbe7f treesitter: incremental foldupdate
- 3ba930844c treesitter: insert/remove items efficiently (#23443)
- a76b689b47 ui-ext: approximate scroll_delta when scrolling too much (#24234)
- 0d1bc795f8 ui_client: skip some initialization not necessary for ui client
- 14a5813c20 vim.fs.normalize: use iterator

BUILD
--------------------------------------------------------------------------------
- c1ff216668 actually export symbols on mac
- 664f2749e6 add "ci" configure preset to reduce verbosity
- 1094d0c0db add CMAKE_C_FLAGS to --version output
- 1290121722 add CMakePresets for deps build to reduce verbosity
- ce6075f82a add check to clint to prevent non-defs header includes
- 624de849de add function add_target
- 82bb7bbc48 add luajit runtime files when installing (#23514)
- 831d662ac6 add sub-targets to the doc target
- 1bf29a0ae1 add system lua include dir for lpeg
- 4cc69f45b4 add ubsan default options
- 4880385809 adjust clang-tidy warning exclusion logic
- b80a8e2c16 adjust how find order is prioritized
- d561830a52 align .clang-format rules with uncrustify config
- c18d7941ef allow sccache as compiler cache
- cd097ab8cc allow using system rocks
- 54d357dce0 bump lpeg to 1.1.0 (#25016)
- 7840760776 bump minimum cmake version to 3.13
- 7a5effb0f9 bump required minimum libvterm version to 0.3.3
- 2835b0daad bump uncrustify to version 0.77
- 77c0d5415b bump uncrustify to version 0.78.1
- 87a45ad9b9 bump uncrustify to version 0.79.0 (#28756)
- 1798a4b5e9 bump uncrustify version
- 826b95203a bundle uncrustify
- 37bc73e9bc change dependency URLs to cache variables
- 1086016477 cmake cleanup
- 404fdb0f36 cmake fixes
- f8310beeed create BINARY_LIB_DIR directory before adding parser
- 9909668111 create a text file for specifying dependency information
- 5a7280ba68 create helper function for simplifying luarocks installation
- f936a962d0 create separate targets for nvim with and without runtime files
- bcaff309b6 disable UnusedIncludes from clangd
- 7a80e169c5 disable all compiler warnings from dependencies
- 8fdc84d0aa disable conversion warnings for GCC
- 310fb2efc3 disable conversion warnings for older GCC versions
- a1c2da56ec do not use GIT_REPOSITORY for local dependencies
- da2130934b don't allow Xcode as generator
- 543e0256c1 don't define FUNC_ATTR_* as empty in headers (#26317)
- 24b60b0f71 don't format deleted files
- c2e47e7bec don't print installed files locally
- f30844008b download busted from own neovim/deps repository
- 5abba97d77 download dependencies with unreliable mirrors from deps repo
- 71384129f7 download libiconv and gettext from `deps` repository
- 801ac2accb drop diff.exe from windows builds
- f0eb3ca916 eliminate semicolons from --version string
- 397b92e02d enable ASAN for MSVC
- 40139738eb enable IWYU on mac
- 25cfe3fd43 enable formatting during rebase
- 517f0cc634 enable lintlua for scripts/ dir #26391
- 45fe4d11ad enable lintlua for src/ dir #26395
- 59d117ec99 enable lintlua for test/ dir
- c3836e40a2 enable lintlua for test/unit/ dir #26396
- 03c3f7887d enforce PREFER_LUA
- 7cb29a572b ensure `make clean` doesn't remove source files
- 0a3645a723 find system luv on ubuntu
- 5bb17958c5 fix "make iwyu" not working (#24873)
- 12ccea5967 fix --luamod-dev not working properly (#24519)
- 75b80516d5 fix link error for `_BitScanForward64` (#28173)
- 3f188bc533 fix parser installation location
- 4fb1739e6f fix uncrustify
- 896b400bff fix universal mac builds
- 01e4a70d66 improve git-cliff CHANGELOG output
- ef92b5a994 include all dependency directories when generating headers
- 187ae67735 introduce variable DEPS_IGNORE_SHA for skipping dependency hash check
- 30a0299bc6 make dependency URL variables non-cached (#23577)
- b4da4783f9 make genappimage.sh work with existing CMAKE_INSTALL_PREFIX
- 9f9cef1b56 make lpeg an imported library
- c1a05f6112 make the vimdoc generation depend on the nvim target (#25876)
- 8b8e607284 move luarocks and rocks installation to main build
- d1bb9bffd5 remove BUSTED_PRG dead code (#23340)
- 8206954a67 remove LOG_DEBUG option
- c48f94d1f3 remove LOG_LIST_ACTIONS option and related code
- 353a4be7e8 remove PVS
- 88366641ad remove USE_BUNDLED_BUSTED option
- ca243f06dd remove `lintdoc` from `lint` target
- 675522af18 remove clint checks and style text covered by uncrustify
- 8be24fed8f remove config-specific find_package search for libuv
- c40872acbd remove duplicate include directories in --version output
- ebb10d6248 remove functionaltest-lua target
- 8ae39eb584 remove git requirement
- 9f8f287c61 remove luarocks
- 339011f59c remove uninstall target
- c8fd82b26d reorder compiler option setting
- 78239f0bbc reorganize cmake files
- 55793bcfa1 revert accidental permission changes (#23319)
- f31f260f0c rework --version generation
- a827003e30 rework IWYU mapping files
- e5d7003b02 rework formatting to use add_glob_target
- 1997ef134a set char to always be signed
- a75ef40f4c set deps default build type to Release (#27495)
- a1550dbf0a silence new clang-tidy warnings
- 383018dbb8 simplify policy-setting for dependencies
- 4788abf2da stop installing parser.h from treesitter
- 26033eee1d suppress bugprone-reserved-identifier warnings
- 34509bbea3 sync IWYU and clint to ignore the same headers (#26228)
- 0a8e66898d update builtin terminfo (#27272)
- a388c852c4 update libtermkey commit
- 706f871014 update uncrustify to 0.76
- f4136c9d42 use -O3 optimization for release builds
- 2c1e8f7e96 use `GIT_REPOSITORY` for local URLs
- e0d97d264f use built nvim artifact to generate eval files (#25875)
- 3d3717de4e use libvterm commit with generated *.inc files
- 4f526b9fd8 use neovim/libtermkey instead of neovim/deps for libtermkey
- 8405649f92 use neovim/libvterm instead of neovim/deps for libvterm
- 2a57613b9b use stylua with add_glob_target
- ae3eed53d6 various build improvements
- c8667c8756 various cmake fixes
- 5cefec7349 various cmake fixes
- bec2ebebda various cmake fixes
- c50951a4d0 various fixes
- 4c91194611 various fixes
- bf0be0f63e various improvements
- 404043e74c vendor libtermkey
- e38a053692 IWYU: export generated headers
- 71141e8cf5 IWYU: fix headers for arabic.h
- 8b428ca8b7 IWYU: fix includes for func_attr.h
- f4aedbae4c IWYU: fix includes for undo_defs.h
- 17d81ac2ab IWYU: map everything in the C99 specification
- c2a5105e88 IWYU: remove arabic_defs.h (#26235)
- 38a20dd89f IWYU: replace most private mappings with pragmas (#26247)
- 09541d514d IWYU: replace public-to-public mappings with pragmas (#26237)
- 39771b2238 Makefile: add nvim to oldtest phony target
- 6823fdb20b PVS: exclude build directory
- 5d387c3388 ci: ensure correct headers are used on macOS
- dcb11c1091 clint: don't allow INIT() in non-header files (#27407)
- c98ef2d7c6 clint: fix deprecation and linter warnings
- 7e2387f41b clint: more precise check for "defs" headers (#26236)
- cf8b2c0e74 iwyu: add a few more _defs.h mappings (#25435)
- 5f03a1eaab lint: remove unnecessary clint.py rules
- eecddd2416 lint: use stylua without add_glob_target
- 25e51d393a lua: vendor coxpcall
- 4dc86477b6 luarc.json: disable luadoc-miss-see-name #24108
- fd9ac5aa8e makefile: remove a phony target uninstall (#24349)
- 978962f9a0 release.sh: regenerate docs after changing NVIM_API_PRERELEASE (#28229)
- 9ca81b0259 release.sh: set VIMRUNTIME when regenerating docs (#28765)
- 4399c4932d release.sh: use git cliff, drop old script
- d0ae529861 scripts: allow a git ref for lsp_types #24377
- bfb81e1a85 snap: remove obsolete snapcraft.yaml
- 981301d11f terminfo: include user capabilities in comments (#28066)
- 6801befcc5 uninstall: don't build if installation manifest not found
- 345dcba629 windows: set longPathAware in manifest #28389
2024-05-16 14:34:32 +02:00
Justin M. Keyes
668b5fc155 docs: nvim.appdata.xml, set faq to "flow" layout #28769 2024-05-16 01:53:33 -07:00
dundargoc
ef58ee48f4 docs: add wiki FAQ to the runtime documentation (#26539)
Problem: Wiki contents are not discoverable and hard to maintain.
Solution: Move FAQ to runtime docs.

Co-authored-by: Christian Clason <c.clason@uni-graz.at>
2023-12-13 17:31:39 +01:00
bfredl
040f145984 NVIM v0.9.0
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 => 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 & 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 -> 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 <pre>{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 `<bs>_` (#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 "<" 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 -> 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->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 <variable>=<value> over -D<variable>=<value> (#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: <Nop> 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 "&" 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 => os_msg
- Rename mch_get_acl => 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 => 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() -> 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
2023-04-07 13:26:29 +02:00
blt__
da3cb6ebe4 dist: use valid application id in nvim.appdata.xml #22046
According to [AppStream spec](https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-id-generic),
the <id> element should contain a reverse-DNS scheme:

    {tld}.{vendor}.{product}

Since the flathub requires that, the flatpak build replaces `<id>nvim</id>` with
`<id>io.neovim.nvim</id>`. 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
`<provides><id>nvim</id></provides>`, for everyone who was expecting the id to
be `nvim`.
2023-02-15 15:11:49 -08:00
bfredl
405f0a8c3f build: update release data 2023-02-02 14:37:44 +01:00
bfredl
4703e561d5 chore: forward-port changes from v0.8.2 release 2022-12-29 17:36:28 +01:00
bfredl
d367ed9b23 NVIM v0.8.0
BREAKING CHANGES
- Remove 'insertmode' 'remap' and 'terse' options
- highlight: Rename attributes to match Vim (#19159)
- highlight: Error on invalid names and allow '.' and '@'
- terminal: Drop winpty, require Windows 10 #18253
- treesitter: Use @foo.bar style highlight groups
- treesitter: Do not merge queries by default (#20105)

FEATURES
- runtime: Enable filetype.lua by default (#19216)
- Add `undo!`
- Add "prerelease" to version dict
- Click support for 'statusline', 'winbar' #18650
- Add preview functionality to user commands
- allow cmdheight=0 (EXPERIMENTAL) #16251
- Stdpath('run'), /tmp/nvim.user/ #18993
- Add 'mousescroll' option (#12355)
- Allow :wincmd to accept a count (#19815)
- Multibuffer preview support for inccommand
- Man: Port to Lua (#19912)
- api: Ui options relevant for remote TUI
- api: Add `nvim_parse_cmd` And `nvim_cmd`
- api: Support handling stdin stream in remote ui
- api: Add `group_name` to `nvim_get_autocmds`
- api: Enable nvim_exec_autocmds to pass arbitrary data (#18613)
- api: Support pattern array for exec_autocmds
- api: Add `unsilent` to command APIs
- api: Add replace_keycodes to nvim_set_keymap (#19598)
- api: Add support for :horizontal modifier
- api: Add "move" to nvim_input_mouse
- api/ui: "ui_watched" option for ui-side extmarks
- build: Add_glob_target runs only on changed files #19070
- checkhealth: Check for slow shell #17829
- defaults: Session data in $XDG_STATE_HOME #15583
- defaults: Search selection by * and # in visual mode (#18538)
- defaults: Nnoremap & :&&<CR> #19365
- defaults: enable mouse by default (set mouse=nvi)  #19290
- diagnostic: Pass diagnostics as data to DiagnosticChanged autocmd (#20173)
- docs: Gen_help_html.lua
- edit: Insert an unsimplified key using CTRL-SHIFT-V
- treesitter: Full support for spelling
- filetype: Convert more patterns to filetype.lua
- filetype: Remove side effects from vim.filetype.match (#18894)
- filetype: Expand environment variables in filetype patterns (#20145)
- fs: Add vim.fs functions: parents() dirname() basename() dir() find() normalize()
- highlight: Implement CurSearch highlight
- highlight: Support scoped @spam.eggs.baked_beans groups
- input: Delay all simplifications
- l10n: Turkish translations #19441
- l10n: Improve zh_CN translations (#19483)
- lsp: Remove capabilities sanitization (#17814)
- lsp: Show feedback on empty hover response (#18308)
- lsp: Options to filter and auto-apply code actions (#18221)
- lsp: Add vim.lsp.buf.format (#18193)
- lsp: Add logging level "OFF" (#18379)
- lsp: Add LspAttach and LspDetach autocommands
- lsp: Add filter to vim.lsp.get_active_clients()
- lsp: Option to reuse_win for jump actions (#18577)
- lsp: Add a start function (#18631)
- lsp: Send didChangeConfiguration after init (#18847)
- lsp: Defaults: tagfunc, omnifunc, formatexpr (#19003, #19677)
- lsp: Allow passing custom list handler to LSP functions that return lists (#19213)
- lsp: Provide feedback if server can't compute rename result (#19546)
- lsp: Add range option to code_action; deprecate range_code_action (#19551)
- lsp: Disable exit_timeout by default (#19672)
- lsp: Add tcp support
- lua: Vim.deprecate() #18320
- lua: Vim.cmd() with kwargs acts like nvim_cmd() #18523
- lua: Allow some vim script functions to run in fast callbacks
- lua: Measure require in --startuptime
- lua: Allow vim.cmd to be indexed (#19238)
- lua: Print source locations of lua callbacks (#19597)
- lua: Add vim.iconv (#18286)
- lua: Vim.ui_attach to get ui events from lua (EXPERIMENTAL)
- man.vim: List command flags in "gO" outline #17558
- mappings: Do not replace existing mapping for simplified form
- mappings: Allow special keys and modifiers in <Cmd> mapping
- mapset: Support restoring "replace_keycodes" and "desc"
- mapset: Support restoring Lua callback (#20024)
- marks: Restore viewport on jump #15831
- nvim_create_user_command: Pass structured modifiers to commands
- pum: Pretend 'mousemoveevent' is set when showing right-click menu
- server: Set $NVIM, unset $NVIM_LISTEN_ADDRESS #11009
- server: Instance "name", store pipes in stdpath(state)
- term: Add support for libvterm >= 0.2
- terminal: Implement <c-\><c-o> for terminal mode
- terminal: Recognize underdouble and undercurl
- terminfo: Bump built-in terminfo entries (#18570)
- treesitter: Allow customizing language symbol name
- treesitter: Add ability to retreive a tree/node given a range
- treesitter: Upstream node methods from nvim-treesitter
- treesitter: Include language in invalid query error (#14053)
- treesitter: Bundle Lua parser and queries
- treesitter: Add viml parser and queries
- treesitter: Add injections
- treesitter: Add vim.treesitter.start(), enable for Lua
- treesitter: Bundle :help parser and queries
- tui: Query terminal for CSI u support (#18181)
- tui: Recognize keypad keys when using kitty keyboard protocol
- tui: Try terminfo for [re]set_cursor_color OSC #19255
- tui: Allow grid and host to disagree on ambiguous-width chars (#19686)
- tui: Recognize sidescroll events (#19992)
- tui: Support 'mousemoveevent'
- ui: Add `'winbar'`
- ui: Clear message history explicitly with msg_history_clear event
- ui: Make right-click menu work properly with ext_multigrid
- ui: Allow to set the highlight namespace per window
- ui: Use msg_grid based implementation for cmdheight=0
- ui-ext: Make 'mousemoveevent' a ui_option
- eval: Make Lua Funcref work as method and in substitute() (#20217)
- eval: Input() support any type for "cancelreturn" in a dict (#19357)

BUG FIXES
- Show autocmd output when F is in shortmess (#18251)
- Has() should preserve v:shell_error #18280
- Suppress "is a directory" messages with shortmess 'F' (#18296)
- Display global statusline correctly with ext_messages
- Correct nlua_wait error message #18867
- Right-click in clickable statusline #19252
- Remote UI may get invalid 'pumblend' value #19379
- Assertion failure when requiring missing module in autocmd
- api: Nvim_eval_statusline should validate input #18347
- api: Check error after getting win/buf handle (#19052)
- api: Check for inclusive buffer line index out of bounds correctly (#19056)
- api: Change default value of 'pattern' in nvim_exec_autocmds (#19115)
- api: Do not switch win/buf if getting option in current win/buf (#19383)
- api: Make nvim_set_hl(ns=0, ...) redraw screen properly
- api: Nvim_set_hl bail out on invalid group name (#20021)
- api: Notify dict watchers on nvim_set_var and vim.g setter
- api/command: Fargs behavior when no arguments are passed (#19862)
- autocmds: Separate command from desc (#18617)
- buffer: Disable buffer-updates before removing from window #18933
- build: Missing definitions for sizeof macros #16393
- build: Only pass -municode if MINGW #19049
- build: Strip trailing newline from variable (#19084)
- build: Don't disable byte precompilation on debug builds
- build: Fails if git is missing #19366
- charclass: Make behavior with empty str match latest Vim (#19749)
- checkhealth: Skip vim.health #18816
- ci: Remove 2000ms blocking wait in many plugin/lsp_spec.lua tests
- cmd: Make :-tabmove work with modifiers (#18447)
- cmdheight=0: Various issues part3 #19816
- cmdline: Fix passing -1 as char
- cmdline: Trigger CmdlineEnter and ModeChanged earlier (#19474)
- cmdline: Do not trigger completion at wrong time (#19920)
- cmdline: Don't send invalid cursor with incsearch and cmdheight=0
- column: Move sign sentinel after inserting/deleting lines (#20400)
- completion: Remove wrong FUNC_ATTR_NONNULL_ALL (#19627)
- diagnostic: Use nvim_exec_autocmds to trigger DiagnosticChanged (#18188)
- diagnostic: Check for negative column value (#18868)
- diagnostic: Remove buf from cache on `BufWipeout` (#20099)
- diagnostic: Populate data key in DiagnosticChanged autocmd in reset (#20207)
- docs: Correct obsolete note about 'writedelay' in dev docs
- docs: Remove internal function from docs
- edit.c: Indentkeys double indent after "!" #12894
- eval: Check for v:lua when calling callback (#19855)
- eval/f_getmatches: Return empty list for invalid win argument (#18893)
- events: Make CursorHold behave as documented
- ex_cmds: Correct flags for :const (#19387)
- exceptions: Restore `did_throw` (#20000)
- exmode: Do not throttle messages when pressing enter to print line
- extmarks: Make virt_lines always start at 0 virtcol
- filetype: Fix and improve filetype patterns
- fillchars: Change fallback after setcellwidths()
- float: Make `screen*()` functions respect floating windows
- float: Fix glitch when making float window with border a split
- float: Fix mouse drag position if float window turned to a split
- folds: Fix fold regression with :move (#18685)
- folds: Fix fold remains when :delete makes buffer empty (#19673)
- ftdetect: Source plugins in autogroup (#18237)
- gen_vimdoc.py: Handle missing luajit
- getchar: Flush screen before doing a blocking wait
- handlers: More specific error messages (#16772)
- health: Correct shada file path #18603
- health: Handle non-existent log file #18610
- highlight: Use ctermbg/fg instead of bg/fg when use_rgb=false #18982
- highlight: Add missing 'nocombine' to nvim_get_hl apis (#19586)
- highlight: Set the window namespace when redrawing statusline
- hl: Set Normal hl group sg_attr value #18820
- hl: Return cterm fg/bg even if they match Normal #18981
- inccommand: Do not try to preview an ambiguous command (#18827)
- inccommand: Avoid crash if callback changes inccommand option (#18830)
- inccommand: Clear cmdpreview state if preview is not shown (#18923)
- inccommand: Skip split window if not enough room #18937
- inccommand: Never preview if parsing command failed (#18944)
- inccommand: Parse the command to check if it is previewable
- inccommand: Deal with unsynced undo (#20041)
- input: Allow Ctrl-C to interrupt a recursive mapping even if mapped (#18885)
- input: Fix macro recording with ALT and special key (#18917)
- input: Use correct grid when restoring cursor for <expr> mapping (#19047)
- input: Do no reinterpret mouse keys with ALT modifiers
- input: Use click number of last click for mouse drag (#20300)
- inspect: Escape identifiers that are lua keywords (#19898)
- keywordprg: Default to :help if set to empty string (#19983)
- l10n: Improve zh_CN and zh_TW translations (#19969)
- log: Back even again
- logging: Skip recursion, fix crash #18764
- logging: Make logmsg() thread-safe again
- logging: Try harder to resolve Nvim "name" #19016
- lsp: Unify progress message handling (#18040)
- lsp: Fix unnecessary buffers being added on empty diagnostics (#18275)
- lsp: Fix infinite loop in resolved_capabilities deprecation message (#18333)
- lsp: Add missing bufnr argument (#18382)
- lsp: Fix rename capability checks and multi client support (#18441)
- lsp: Detach spawned LSP server processes (#18477)
- lsp: Perform client side filtering of code actions (#18392)
- lsp: Only send diagnostics from current buffer in code_action() (#18639)
- lsp: Respect global syntax setting in open float preview (#15225)
- lsp: Include cancellable in progress message table (#18809)
- lsp: Adjust offset encoding in lsp.buf.rename() (#18829)
- lsp: Set buflisted before switching to buffer (#18854)
- lsp: Fix multi client handling in code action (#18869)
- lsp: Small bugs in snippet-parser #18998
- lsp: Pcall nvim_del_augroup_by_name (#19302)
- lsp: Abort pending changes after flush when debouncing (#19314)
- lsp: Don't attach a client in lsp.start() if there is none (#19328)
- lsp: Account for initializing servers in vim.lsp.start (#19329)
- lsp: Move augroup define to if statement (#19406)
- lsp: Set workspace.configuration capability (#19548)
- lsp: Send didOpen if name changes on write (#19583)
- lsp: Prevent unexpected position jumps (#19370)
- lsp: Avoid  ^M character in hover window on Windows (#19640)
- lsp: Set end_col in formatexpr (#19676)
- lsp: Handle multiple clients with incremental sync (#19658)
- lsp: Fix some type annotations in lsp.rpc (#19714)
- lsp: Avoid pipe leaks if lsp cmd isn't executable (#19717)
- lsp: Handle nil client in onexit callback (#19722)
- lsp: Fix nil value error in get_group (#19735)
- lsp: Clean the diagnostic cache when buffer delete (#19449)
- lsp: When buffer detach remove buffer from client attached buffers (#20081)
- lsp: Schedule removal of client object (#20148)
- lsp: Support `false` result in handlers (#20252)
- lsp: Out of bounds error in lsp.util.apply_text_edits (#20137)
- lsp: Use correct function name in deprecated message (#20308)
- lsp: Create missing directory before creating file (#19835)
- lua: Don't mutate opts parameter of vim.keymap.del (#18227)
- lua: Stop pending highlight.on_yank timer, if any (#18824)
- lua: Highlight.on_yank can close timer in twice #18976
- lua: Clear got_int when calling vim.on_key() callback (#18979)
- lua: Don't leak memory on error
- lua: Double entries in :lua completion #19410
- lua: Make it possible to cancel vim.wait() with Ctrl-C (#19217)
- lua: Make ui_attach()/ui_detach() take effect immediately (#20037)
- lua: Make vim.str_utfindex and vim.str_byteindex handle NUL bytes
- lua: Free vim.ui_attach callback before lua close (#20205)
- lua: Fix architecture-dependent behavior in usercmd "reg" (#20384)
- mac: Use same $LANG fallback mechanism as Vim
- mac: Add CoreServices to flake.nix #18358
- man.vim: Q in "$MANPAGER mode" does not quit #18443
- maparg: Remove double allocation (#20033)
- mappings: Fix double-free when unmapping simplifiable Lua mapping
- mapset: Remove existing abbreviation of same lhs (#20320)
- mark: Set mark fnum from buffer (#19195)
- mark: Mark without a view restores at topline #19224
- mark: Fix unexpected cursor movements (#19253)
- mark: Give correct error message when mark is in another buffer (#19454)
- menu: Make :menu still print header when there are no menus
- messages: Add color when showing nvim_echo in :messages history
- messages: Do not crash on cmdheight=0 and g< redisplay
- messages: Validate msg_grid before silent! message with cmdheight=0
- mksession: Don't store floats in session #18635
- mouse: Click on global statusline with splits (#19390)
- mouse: Fix using uninitialized memory with K_MOUSEMOVE (#19480)
- mpack: Make sure a `bool` always is a `bool`
- normal: Fix segfault with bracket command jumping to a mark
- options: Properly free string options (#19510)
- options: Mark `winhighlight` as list style  (#19477)
- packaging: Remove excess forward slash in Wix Patch (#18121)
- paste: Ignore mappings in Cmdline mode (#18114)
- path: Path_is_url returns false for "foo:/" #19797
- powershell: Filter ":!" commands with args #19268
- pum: Make right drag in anchor grid to select work in multigrid UI (#19382)
- query: Fix unnatural order for inherits in treesitter queries (#20298)
- redraw: Make sure :redraw! redraws command line
- redraw: Handle switching to a tabpage with larger p_ch value
- redraw: Avoid unnecessary redraws and glitches with floats+messages
- redraw: Make redrawdebug=nodelta handle all the cases
- rpc: Break nvim_error_event feedback loop between two nvim instances
- runtime/genvimvim: Omit s[ubstitute] from vimCommand #18480
- screen: Restart win_update() if a decor provider changes signcols (#18768)
- screen: Check for col instead of vcol when drawing fold (#19572)
- session: Respect sessionoptions=terminal #19497
- shared: Avoid indexing unindexable values in vim.tbl_get() (#18337)
- signs: Priority of extmark signs (#19718)
- source: Make changing 'shellslash' change expand() result
- source: Fix expand('<sfile>') no longer works for Lua
- spell: Make setting 'encoding' clear word list
- spell: Correct spell move behavior without "noplainbuffer" (#20386)
- startup: Nvim with --clean should not load user rplugins
- substitute: Subtract number of backslashes later
- tabpage: Check if ROWS_AVAIL changed for resize (#19620)
- terminal: Invalid pointer comparison #18453
- terminal: Do not trim whitespace that is actually in the terminal (#16423)
- terminal: Scrollback delete lines immediately #18832
- terminal: Coverity USE_AFTER_FREE #18978
- terminal: Crash if TermClose deletes own buffer #19222
- terminal: Avoid reading over the end of cell.chars (#19580)
- terminal: Skip aucmd_win when checking terminal size (#19668)
- terminal: Adopt altscreen test for libvterm 0.2 changes
- terminfo: Disable smglr for vtpcon and conemu (#18855)
- termopen: Avoid ambiguity in URI when CWD is root dir (#16988)
- tests: Fix some screen.lua warnings
- tests: Fix some issues with ui/inccommand_spec.lua causing slowness
- tests: Unreliable parser_spec #18911
- tests: Check for EOF on exit of nvim properly
- tests: Missing clear() #18927
- tests: Remove misleading $TEST_PATH segment #19050
- tests: Remove irrelevant usage of display-=msgsep
- tests: Use pending_c_parser when needed
- tests: Indicate in test logs when nvim exit times out
- tmpdir: Invalid tempname() if username has slashes #19323
- treesitter: Create new parser if language is not the same as cached parser (#18149)
- treesitter: Bump match limit up
- treesitter: Offset directive associates range with capture (#18276)
- treesitter: Correct region for string parser (#18794)
- treesitter: New iter if folded
- treesitter: Don't error when node argument of predicate is nil (#19355)
- treesitter: Free memory on removing parser (#19933)
- treesitter: More efficient node:root()
- treesitter: Make it get_captures_at_position
- treesitter: Do not link @error by default
- treesitter: Don't support legacy syntax in start()
- treesitter: Use the right loading order for base queries (#20117)
- treesitter: Prevent endless loop on self-inheritence
- treesitter: Return full metadata for get_captures_at_position (#20203)
- ts: Do not clobber spelloptions (#20095)
- tui: Update modifyOtherKeys reporting (#18158)
- tui: Disable extended keys before exiting alternate screen (#18318)
- tui: Piping nodejs to nvim breaks input handling #18932
- tui: Resize at startup #17795
- tui: Add fixups for hterm family #19078
- tui: Handle padding requirements for visual bell (#20238)
- ui: Require window-local value to show winbar on floating windows (#18773)
- ui: Do not call showmode() when setting window height (#18969)
- ui: Set redraw_cmdline when setting window height (#19630)
- ui: Don't allow decor provider with ns_id==0
- ui: Ui compositor does not correctly free event callbacks
- ui: Allow redrawing statusline when msgsep is used (#20337)
- ui: Redraw end of buffer if last line is modified (#20354)
- unittests: Coredump when running unit tests #18663
- usercmd: Also check for whitespace after escaped character (#19942)
- version.c: Mark N/A vim patches #18587
- vim.ui.input: Accept nil or empty "opts"  #19109
- window: Close floats first when closing buffer in other tab (#20284)
- window: Fix equalization with cmdheight=0 (#20369)
- windows: Stdpath("state") => "nvim-data" #18546
- windows: Exepath, stdpath return wrong slashes #19111
- winhl: Do not crash when unsetting winhl in just opened window
- Make :undo! notify buffer update callbacks (#20344)
- eval: Make Vim functions return inner window width and height (#19743)

BUILD SYSTEM
- Bump Doxyfile to minimum required version 1.9.0 #18118
- Bump msgpack to 4.0.0
- Enable EXITFREE on Debug builds (#17783)
- Add formatting targets for c and lua files (#19488)
- clang-format: Align with project style #18192
- clint: Remove all python2-isms with pyupgrade
- clint: Remove "function size is too large" warning
- clint: Remove rules for includes, whitespace, tabs #18611
- cmake: Simplify and speed up the uninstall target
- cmake: Simplify def_cmd_target function
- cmake: Use glob_wrapper instead of file(GLOB in main CMakeLists
- cmake: Fix static `libintl` test on macOS
- deps: Bump LuaJIT, Luv and libuv
- deps: Support universal builds on macOS
- deps: Bump tree-sitter to v0.20.7 (#20067)
- deps: Bump tree-sitter parsers
- deps: Bump required libvterm to v0.3 (#20222)
- deps: Require libtermkey version 0.22
- deps: update neovim-qt, win32tools.zip

PERFORMANCE
- Only redraw for CurSearch when it is currently in use
- highlight: Allocate permanent names in an arena for fun and cache locality
- highlight: Use binary search to lookup RGB color names
- map: Visit only one hash bucket instead of all, like an actual hash table
- memory: Get rid of extraneous heap allocations
- memory: implement arena memory allocation with a shared freelist
- memory: Use an arena for RPC decoding and some API return values
- messages: Don't call ui_flush() per message line in various places
- treesitter: Use a reuse list for query cursors
- ui: Reduce allocations when encoding and decoding "redraw" events
- ui: Avoid ui_flush() work in headless mode

REFACTOR
- checkhealth: Rename to vim.health, move logic to Lua #18720
- Add pure attribute to pure functions
- Replace char_u variables and functions with char
- Enable -Wconversion warning for all Nvim source files
- Add warnings for deprecated functions (#18662)
- Change type of linenr_T from long to int32_t
- Use nvim_get/set_option_value for vim.{b,w}o
- Remove functions marked for deprecation in 0.8 (#19299)
- Rename function prefix mb to the more accurate utf_cp (#19590)
- Remove some unused includes
- Change remaining sourcing_name/sourcing_lnum to exestack
- Change FALSE/TRUE to false/true
- api: Use a hashy hash for looking up api method and event names
- api: Use a unpacker based on libmpack instead of msgpack-c
- api: restructure api/vim.c and api/private/helpers.c code in separate files
- api: Remove redundant fields of CmdParseInfo
- aucmd: Call define_autocmd() directly for default autocmds
- ci: Cleanup release.yml #19132
- cmd: Format do_one_cmd()
- cmd: Hoist out some code into functions
- cmd: Unify execute_cmd with do_one_cmd
- decor: Use decor levels properly
- drawline.c: Factor out utf8 multibyte check
- eval: Use Hashy McHashFace instead of gperf
- eval.c: Resolve all clint issues (#19774)
- eval/funcs.c: Resolve all clint errors
- events: Remove unnecessary fudging of updating_screen
- ex_cd: Add an early return to fix clint warning
- ex_docmd.c: Resolve most clint errors (#19775)
- filetype: Allow vim.filetype.match to accept buf and filename (#19114)
- highlight: Make hlattrs2dict always use pre-allocated dict
- log: Simplify log_path_init #18898
- log: Use msg_schedule_semsg #18950
- lsp: Remove redundant client cleanup (#18744)
- lsp: Make the use of local aliases more consistent
- lsp: Use autocmd api (#19407)
- lsp: Factor out read_loop function
- lsp: Encapsulate rpc uv handle
- lsp: Extract rpc client from rpc.start
- lua: Replace hard-coded gsub with vim.pesc() (#18407)
- lua: Reformat with stylua 0.14.0 (#19264)
- lua: Git-blame-ignore stylua update PR (#19273)
- lua: Replace vim.cmd use with API calls (#19283)
- map: Simplify free_all_mem handling
- map: Statically initialize maphash array
- map: Simplify add_map params
- normal: Convert function comments to doxygen format
- object: Get rid of redundant FIXED_TEMP_ARRAY
- ops: Doxygen docstrings #17743
- option: DRY get/set option value #19038
- plines: Use a struct for chartabsize state
- provider: Use list comprehension #19027
- regexp_nfa.c: Match where Vim calls fopen() (#18778)
- runtime: Convert dist#ft functions to lua (#18247)
- runtime: Convert more dist#ft functions to lua (#18430)
- runtime: Convert the remaining dist#ft functions to lua (#18623)
- runtime: Port remaining patterns from filetype.vim to filetype.lua (#18814)
- runtime: Refactor filetype.lua (#18813)
- runtime: Port scripts.vim to lua (#18710)
- setcellwidths: Use TV_LIST_ITEM_NEXT properly
- signs: Handle non-sign attrs separately (#19784)
- tests: Introduce testprg()
- treesitter: Get_{nodes,captures}_at_{position,cursor}
- typval: Change FC_CFUNC abstraction into FC_LUAREF
- ui: Simplify stdin handling
- uncrustify: Format all c code under /src/nvim/
- vim.opt: Remove del arg
- vim.opt: Unify vim.bo/wo building
- vim.opt: Optimize append/prepend/remove
- Format runtime with stylua
2022-09-30 17:15:13 +02:00
bfredl
333ba6569d NVIM 0.7
BREAKING CHANGES

* Support for Python 2 is dropped. For Python 3, the minimum supported version is 3.6. Legacy `:pythonx` commands are still available, and always uses the python 3 provider.

* api: Existing usages of `nvim_buf_set_text` that use negative line numbers will be off-by-one.
* highlight: signature of `vim.highlight.range` was changed.

* input: distinguish between some input keys which previously were synonyms. This will break some exiting mappings.

- `<cr>`, `<tab>` and `<esc>` are no longer considered equivalent to `<c-m>`, `<c-i>` and `<c-[`> respectively. In case the terminal or GUI supports distinguishing these keys, these can now be mapped separately. But even if the terminal only can send one code you might still need to change what variant is used in the config.

FEATURES

Core APIs:

* api: add support for lua function & description in keymap
* api: add api and lua autocmds
* api: nvim_clear_autocmd
* api: pass args table to autocommand callbacks
* api: remove Lua autocommand callbacks when they return true
* api: implement nvim_{add,del}_user_command
* api: implement nvim_buf_get_text
* api: add nvim_get_option_value

* highlight: ns=0 to set :highlight namespace
* highlight: support for blend in nvim_set_hl
* api: add strikethrough, nocombine to set_hl
* api: relax statusline fillchar width check

Lua:

* lua: add vim.keymap
* lua: add vim.spell
* lua: add proper support of luv threads
* lua: make :lua =expr print result of expr
* lua: handle lazy submodules in `:lua vim.` wildmenu completion
* lua: add notify_once()
* lua: add support for multiple optional types in vim.validate
* lua: show proper verbose output for lua configuration
* lua: more conversions between LuaRef and Vim Funcref
* lua: support converting nested Funcref back to LuaRef
* call __tostring on lua errors if possible before reporting to user

* filetype.lua
* filetype.lua: add support for files under .git
* filetype.lua: add support for patch files
* filetype.lua: add support for tmux.conf files
* filetype.lua: add support for txt files
* filetype.lua: Add typescript extension to filetype detection
* filetype.lua: fix .cc file not detected
* filetype.lua: fix .env file not detected
* filetype: convert patterns for mail buffers
* filetype: support scripts.vim with filetype.lua

UI and decorations:

* decorations: support signs
* extmarks: add strict option
* api: expose extmark more details
* api: expose extmark right_gravity and end_right_gravity
* use nvim_buf_set_extmark for vim.highlight
* statusline: support multibyte fillchar
* add support for global statusline

Treesitter:

* ui: allow conceal to be defined in decorations and tree-sitter queries
* tree-sitter: allow Atom-style capture fallbacks
* treesitter: add more default groups to highlight map
* treesitter: multiline match predicates
* treesitter: set allocator when possible
* ts: add support for multiline nodes in get_node_text
* ts: expose minimum language version to lua
* runtime: add query filetype

LSP and diagnostic:

* diagnostic: add "code" to the diagnostic structure
* diagnostic: allow retrieving current diagnostic config
* lsp,diagnostic: open folds in jump-related functions
* lsp: add buf_detach_client
* lsp: add handler for workspace/workspaceFolders
* lsp: dynamically generate list title in response_to_list
* lsp: enable default debounce of 150 ms
* lsp: skip or reduce debounce after idle
* lsp: use `vim.ui.select` for selecting lsp client

Initial work to support remote TUI (and ui client library):

* ui_client: connect to remote ui
* ui_client: implement event handlers
* ui_client: handle resize events
* ui_client: implement async paste handling
* ui_client: pass user input to remote server

* --headless: add on_print callback to stdioopen
* add autocommand event when search wraps around
* add vim.tbl_get
* autocmd: add Recording autocmds
* autocmd: populate v:event in RecordingLeave
* completion: support selecting item via API from Lua mapping
* eval/method: partially port v8.1.1993
* eval/method: partially port v8.1.1996
* eval/method: partially port v8.1.2004
* eval: partially port v8.2.0878
* eval: port emsg from v8.2.3284
* events: add DirChangedPre
* events: support SIGWINCH for Signal event
* hardcopy: check gui colours for highlights first
* highlight: support color names for cterm
* ignore nore on <Plug> maps
* input: delay some conversions to vgetc()
* input: enable <tab>/<c-i>, <cr>/<c-m>, <esc>/<c-[> pairs unconditionally
* keymap: add F38-F63 keys
* keymap: return nil from an expr keymap
* mappings: considering map description when filtering
* provider: remove support for python2 and python3.[3-5]
* remote: add basic --remote support
* runtime: import cleanadd.vim from Vim
* runtime: include Lua in C++ ftplugin
* runtime: new checkhealth filetype
* term: use vterm_output_set_callback()
* test: use nvim_exec in helpers.source()
* trigger ModeChanged for terminal modes
* tui: add error logging
* tui: add support for `CSI 4 : [2,4,5] m`
* tui: enable CSI u keys
* vim-patch.sh: support additional args for -s

Performance Improvements

* lsp: request only changed portions of the buffer in changetracking
* only redraw concealed line if cursor has moved horizontally
* pre-compile embedded Lua source into bytecode
* screen: reduce cursorline redrawing when jumping around
* treesitter: cache query parsing
* api: elide luaref copy when setting 'callback' in nvim_set_keymap

BUG FIXES

* --headless: do not block on press-enter prompts when no UI
* <Nop> not shown in :map commands
* add forkpty for SunOS variants
* add STRNLEN compatability macro
* anonymous sid not working
* api, lua: return NIL on failure to find converted function
* api/nvim_win_call: share common win_execute logic
* api: allow empty list for cterm in nvim_set_hl
* api: allow nvim_buf_set_extmark to accept end_row key
* api: convert blob to NUL-terminated API string
* api: correctly handle negative line numbers for nvim_buf_set_text
* api: correctly pass f-args for nvim_create_user_command
* api: delete all autocmds with the same ID
* api: force redefinition of user commands by default
* api: highlight attribute for underline
* api: improve autocmd error handling
* api: include event in get_autocmds
* api: make nil value in nvim_set_option_value clear local value
* api: nvim__set_hl_ns causes extra redraws
* api: nvim_win_set_cursor() redraw for cursorline and statusline
* api: re-route nvim_get_runtime_file errors
* api: use changedir_func() in nvim_set_current_dir()
* api: validate command names in nvim_add_user_command
* api: validate user_command name
* append test for checking zero width node range
* aucmd_win: always make aucmd_win the last window
* aucmd_win: ensure aucmd_win stays floating
* autocmd: clean up autocmds only when needed
* autocmd: restore autocmd showing behavior
* autoload variables not loaded with vim.g & nvim_get_var
* bounds check for underdot
* build: check for empty value of LUAC_PRG
* build: check that LuaJIT has required modules for compilation
* build: install luajit modules on windows
* channel: fix channel consistency
* check for interrupt in nvim_echo, write_msg and nlua_print
* checkhealth: make provider checkhealth output more consistent
* ci/backport: check for event_name == "pull_request_target"
* ci: provide necessary permissions for calling workflow
* clang/'Dead store': do not assign endcol
* close floating windows when calling win_close()
* completion: prevent K_LUA from closing pum
* completion: update submode message when selecting from API
* correct vertical dragging room calculation with global statusline
* coverity/175977: big parameter passed by value
* coverity/188749: nullify pointer to fix use-after-free
* coverity/340720: error if nvim_eval_statusline given invalid winid
* coverity: dead code and operands don't affect result
* decorations: do not put empty virt_text
* define NAME_MAX from _XOPEN_NAME_MAX
* diagnostic: allow setting arbitrary config values
* diagnostic: assert that diagnostics have line number and column
* diagnostic: clamp diagnostics on negative line numbers
* diagnostic: escape special chars in file names
* diagnostic: improve validation for list arguments
* diagnostic: make `open_float` respect global diagnostic options
* diagnostic: only set default handler config if unset
* diagnostic: resolve nil opts tables
* diagnostic: respect "if_many" source option for virtual text
* diagnostic: set effective buffer number for DiagnosticChanged autocmd
* diagnostic: set effective buffer number in autocmd (again)
* diagnostic: use botright copen for qflist
* diff: make algorithm work for vim.diff
* do not cast offset to char_u
* do not pass aucmd to the callback
* do not save K_EVENT as lastc in Insert mode
* docs: add bufnr and user_data to diagnostic-structure
* docs: spelling in new underlines docs
* don't include pty.h on SunOS
* don't use cfsetspeed, use i and o variants
* enable filetype detection and syntax highlighting with --clean
* eval/method: add missing method support for existing built-ins
* eval: v:lua support for `-` in module names
* event-loop: call vpeekc() directly first to check for character
* event-loop: check if executed register has ended
* event-loop: duplicate display updating logic in vgetorpeek()
* events: make v:event readonly in more events
* ex_normal: spam \n in Ex mode only if in Cmdline mode
* extmarks: fix signs
* extmarks: splice extmarks on accepting spell
* filetype.lua: always return a string in getline helper function
* filetype: expand tildes in filetype patterns
* filetype: fix foam pattern detection
* filetype: match negative priority patterns after extensions
* filetype: match on <afile> rather than <abuf>
* filetype: normalize slashes in file paths
* filetype: set default ft_ignore_pat in filetype.lua
* float: do not switch window before deleting last listed buffer
* float: don't always switch window when deleting last listed buffer
* float: handle buffer deletion with floating windows
* float: make laststatus=1 behave consistently with floating windows
* healthcheck: handle empty reports
* health: do not run external processes in a shell
* highlight: accept NONE as a color name
* highlight: allow globals to be cleared
* highlight: always update window highlight if highlight changed
* inccommand: do not change reg_prev_sub when previewing
* input: do not translate scroll keys into multiclicks
* input: fix clearing of reg_executing
* input: never escape CSI bytes
* input: put modifiers back into typeahead buffer when needed
* input: remove reinterpreted ALT/META chords from recorded macro
* keymap: don't coerce false to ''
* keywordprg: retain terminal buffer after K
* line continuation: set growsize to correct value
* lsp and diagnostic highlight priority
* lsp: always split text edits on \r, \r\n, and \n
* lsp: always use target bufnr in location handler
* lsp: avoid attaching to unloaded buffers
* lsp: avoid nil workspace/symbol query
* lsp: call config on_exit handler before context is cleared
* lsp: correct prefix when filterText is present
* lsp: correctly align start and end range to codepoints during incremental sync
* lsp: create lsp requests with position offsets considering client encoding
* lsp: ensure pending changes are flushed on skipped debounce
* lsp: explicitly pass bufnr in didSave handler
* lsp: fetch offset_encoding from client in references
* lsp: fix `nil`-index behavior for UTF-8 in `_str_*index_enc` methods
* lsp: fix applying multiple out-of-range TextEdits
* lsp: fix lookup of boolean values in workspace/configuration
* lsp: forward offset_encoding in rename handler
* lsp: forward offset_encoding to apply_text_edits
* lsp: handle insertion of previous line
* lsp: handle negative activeSignature in signatureHelp
* lsp: only send valid params in executeCommand
* lsp: pass offset_encoding in formatexpr()
* lsp: progress handlers should return vim.NIL on error
* lsp: resolve bufnr for get_lines
* lsp: resolve nil bufnr
* lsp: respect all of 'fixeol', 'eol', and 'binary' applying edits
* lsp: set tabSize from 'shiftwidth', not 'softtabstop'
* lsp: start incremental sync range at previous newline character
* lsp: strictly enforce passing offset encoding
* lsp: suppress ContentModified errors from UI
* lsp: use "text" filetype for plaintext
* lsp: use botright copen for all handlers
* lua: don't use nlua_error when exiting early
* lua: print multiple return values with =expr
* lua: restore priority of the preloader
* lua: stricter type check when calling API function
* make mode() return correct value in ex mode
* man.vim: fix search function on some systems
* man.vim: support calling :Man without a section again
* msgpack#strptime: use calendar.timegm to get seconds since epoch
* ops: str_to_reg passing NULL to memcpy
* options: disallow empty 'fdc' and 'scl'
* paste: avoid edges cases caused by empty chunk
* paste: deal with eol and eof in Visual mode
* paste: deal with trailing new line in chunk
* paste: don't move cursor past the end of pasted text in Normal mode
* paste: escape control characters in Cmdline mode
* paste: use getcmdtype() to determine whether in cmdline mode
* prompt: add missing changes from v8.1.0036
* pty_process_win/wait_eof_timer_cb: also check for proc->out.did_eof
* pum_redraw: use grid_puts_len() to truncate the text
* PVS/V1019: compound assignment expression is used inside condition
* PVS/V560: ignore false "conditional expression is always false"
* PVS/V583: the '?:' operator always returns one and the same value
* query.lua: check empty table for lines
* quickfix: avoid O(N^2) when filling from string typval
* remote: make compile again
* remote: report connection error, missing return values
* remote: report on missing wait commands, typecheck lua results
* remote: respect silent in error reporting
* remote: use STATIC_CSTR_AS_STRING
* resolve nil arguments to API functions
* respect os_proc_children rv of pid not found
* runtime: add missing release metadata
* runtime: add syntax file for query
* runtime: check markdownError before syn-clear
* screen: do not do syntax highlighting at filler or folded lines
* screen: do not draw filler lines post eof if already at last row
* screen: do not update syntax_last_parsed when drawing folded line
* screen: don't put empty sign text in line number column
* screenpos, float: add top and left border adjustment
* screen: truncate double-width character correctly
* screen: truncate when overwriting right half of a double-width char
* set nested before executing callback
* set RedrawingDisabled before entering aucmd_win
* signcol: always trigger a redraw
* signcol: handle edge case with maximum value
* signcol: update cursor when signcol changes
* skip libutil on SunOS
* substitute: properly check for empty command line
* syntax.c: correct hunk from Vim patch 8.0.0647
* syntax: remove trailing spaces in vim.vim
* tabpage: correct check for failure to close window
* termdebug: handle exiting during startup properly
* terminal: correctly forward mouse events
* terminal: fix resize crash with pending scrollback
* terminal: ignore left-release mouse action
* terminal: return early if there are no invalid rows
* terminal: use coladvance() to calculate buffer cursor position
* test: only use buffer completion in popupmenu timer test
* tests: update legacy tab switch test to be sane
* translation: po file for Russian
* translation: po file for Ukrainian
* ts: escape lang when loading parsers
* tui: avoid using uninitialized memory in kitty
* tui: correct CSI sequence
* tui: end streamed paste correctly when key buffer is empty
* tui: remove `ESC NUL` forced escape
* ui: close floating window on BufLeave event
* ui: inccomand performance degradation
* ui: make window resize commands manage cmdheight
* update last cursor on first CursorMoved
* uri: change scheme pattern to not include the comma character
* use normal! <C-L> in default <C-L> mapping
* vim-patch.sh: fix N/A files patterns
* win_close: count the window the be closed instead of curwin
* win_split_ins: do not fail when oldwin is not valid
2022-04-15 13:38:44 +02:00
Björn Linse
5c1b8b77c5 fix(runtime): add missing release metadata 2021-12-31 19:04:37 +01:00
Björn Linse
e65b724451 NVIM 0.6.0
BREAKING CHANGES

* 32-bit windows builds are no longer provided.

* **build deps**: use libuv 1.42.0 upstream for WIN32 (#15889) (f6c0a37), closes #15889
  * removes Windows 7 support
  * removes support for mouse and alternate buffers in TUI for Windows 8 and 8.1

* **lsp/diagnostic:** highlight groups and signs for LSP diagnostics renamed (e.g. `LspDiagnosticsDefaultWarning` to `DiagnosticWarn`) (a5bbb93)

* **diagnostic:** make DiagnosticChanged a first class autocmd (#16098) (150a592), closes #16098
  * `au User LspDiagnosticsChanged` autocommands are not supported. Use the new first-class DiagnosticChanged event instead.

* **lua**: `register_keystroke_callback` => `on_key` (#15460) (69fe427)
  * **note**: this breaking change was included in 0.5.1

FEATURES

* **:source, nvim_exec:** defer script item creation until s:var access (da9b0ab)
* **:source, nvim_exec:** support script-local variables (d4ed51e), closes #13143 #11507
* **lua:** add trimempty optional parameter to vim.split (5fa26e2)
* **lua:** add vim.str_utf_{start,end} (#16129) (2230b57)
* **lua:** add vim.str_utf_pos function (d752cbc)
* **lsp:** aggregate code actions from all clients (#15121) (c36df20)
* **api:** add lua C bindings for xdiff (#14536) (3d3c0c6)
* **api:** evaluate statusline string #16020 (9086938)
* **api:** named marks set, get, delete #15346 (49fdc62)
* **api:** nvim_get_chan_info: include "argv" for jobs #15537 (0603eba), closes #15440
* **api:** win_viewport also sends line_count #15613 (086631c)
* **api:** support :terminal input callback in lua (9e41e82)
* **ci:** add backport PR action (#14766) (6cc456d)
* **decorations:** allow more than one stacked highlight in a virt_text (1495d36)
* **decorations:** support virtual lines (392c658) (8d7816c)
* **diagnostic:** move vim.lsp.diagnostic to vim.diagostic and support other sources (a5bbb93)
* **diagnostic:** add 'prefix' option to open_float (#16321) (3c74ba4)
* **diagnostic:** add option to include diagnostic source (d43151e)
* **diagnostic:** allow 'prefix' option to return highlight (cc48837)
* **diagnostic:** allow customized diagnostic messages (#15742) (d999c96)
* **diagnostic:** match(), tolist(), fromlist() #15704 (e61ea77)
* **diagnostic:** update jumplist on goto_next/prev (#15942) (b55944e)
* **diagnostic:** use `scope = 'line'` by default for `open_float()` (#16456) (217f9f8), closes #16453
* **diagnostic:** support severity_sort (32c0631)
* **checkhealth:** provide function for command line completion (8b43b07)
* **f_chansend:** support Blob data argument (7e9ea08)
* **job:** add parameter to close stdin (eb7f24b)
* **keywordprg:** use :terminal for external commands #15398 (a90513c), closes #2995 #2761
* **lsp:** add 'focus' option to open_floating_preview (#16465) (fff8827)
* **lsp:** add a registry for client side code action commands (6c03601)
* **lsp:** add client command support to codelens (#15820) (19a77cd)
* **lsp:** add codeAction/resolve support (#15818) (ec4731d)
* **lsp:** add exit_timeout flag (#16070) (80456cf)
* **lsp:** add formatexpr (#16186) (52fa1d2)
* **lsp:** add lsp healthcheck (e268026)
* **lsp:** add per-client commands (#16101) (519d8de)
* **lsp:** add tagfunc (#16103) (f940e7a)
* **lsp:** add warning message for large log size (e6777a7)
* **lsp:** allow configuring zindex for floating windows (#15086) (c487a73)
* **lsp:** allow diagnostics to be disabled for a buffer (#15134) (1aeb945)
* **lsp:** allow root_dir to be nil (#15430) (ff0833c)
* **lsp:** highlight active parameter in signature help (#15018) (af26371)
* **lsp:** improve vim.lsp.util.apply_text_edits (#15561) (41cfba6)
* **lsp:** include original request params in handler ctx (187579f)
* **lsp:** jump to diagnostics by position (#14795) (ea39ff5)
* **lsp:** Make line diagnostics display prettier (e43dbfd)
* **lsp:** make list handlers configurable (#15199) (3e00d4f)
* **lsp:** support textDocument/prepareRename (#15514) (c1f573f)
* **lsp:** use uv_spawn to check if server executable (#16430) (1a60580)
* **lsp:** use vim.ui.select() in codelenses (#16004) (e7ea54a)
* **lsp:** utilize textEdit.range for startbyte in omnifunc (#15957) (e9d6f7c)
* **lua:** add lua-cjson as vendored dependency (8decc9f)
* **lua:** add vim.mpack for msgpack support in lua (eaf661d)
* **lua:** allow passing handles to vim.b/w/t (6c5e7bd)
* **lua:** convert binary string with NULs to Blob (de9df82)
* **lua:** document support of packages with v:lua syntax (9dd371b)
* **lua:** enable stack traces in error output (#16228) (03b805a)
* **lua:** expose lua-cjson as vim.json (30fed27)
* **lua:** make vim.mpack support vim.NIL and vim.empty_dict() (0f59666)
* **match:** allow hl group to be defined after :match command (fca52f5)
* **msgpack:** convert Blobs to BIN strings (af6f454)
* **health:** support lua healthchecks (9249dcd), closes #15632
* **shada:** restore Blob globals properly (ef729fb)
* **terminal:** TermClose: set exit code in v:event.status #15406 (50b30de), closes #4713
* **treesitter:** add next, prev sibling method (1400841)
* **treesitter:** allow to set highlight priority for queries (242608e)
* **ui:** add `opt.kind` to `vim.ui.select` (#15838) (7ae86c1)
* **ui:** add vim.ui.input and use in lsp rename (#15959) (16d4af6)
* **ui:** add vim.ui.select and use in code actions (#15771) (63fde08)
* **vim script:** support calling v:lua as a method (b2994e3)

CHANGES

* **defaults:** auto-create backup dir (4600193)
* **defaults:** inccommand=nosplit #15395 (7215d35)
* **defaults:** set undo points in <C-U> and <C-W> (#15400) (2cb8db3)
* **defaults:** limit syntax cost on CmdwinEnter #15401 (622a36b), closes #6289 #6399
* **defaults:** map CTRL-L to search highlights, update diffs #15385 (0aa8128)
* **defaults:** map Y to y$ #13268 (5a111c1), closes #416 #6289
* **defaults:** remove 'options' from viewoptions #15397 (3954537), closes #6289
* **defaults:** set hidden (f6c72b7)
* **defaults:** set nojoinspaces (d417e67)
* **defaults:** switchbuf=uselast #15394 (4ba7495)
* **runtime:** add packages as `"/pack/*/start/*"` patterns to &rtp (9df7e02)
* **startup:** load builtin plugins with --clean #15893 (c7a63f3), closes #15605
* **terminal:** set cursorlineopt=number in terminal mode (#15493) (c61a386)
* **window:** skip non-focusable floats for :windo (#15378) (e8631cb)

PERFORMANCE IMPROVEMENTS

* **api:** avoid spurious allocations when converting small objects (705e8f1)
* **highlight:** use a hashtable for highlight group names (bb4b4d7)
* **lua:** optimize vim.deep_equal #15236 (4b452d4)
* **lua:** don't use regexes inside lua require'mod' (ea2023f), closes #15147 #15497
* **lsp:** improve json deserialization performance (#15854) (912a6e5)
* **map:** reduce double pointer indirection to single pointer indirection (9e651a9)
* **treesitter:** avoid string lookup of highlight name in hot loop (2460f0a)

FIXES

* **:source, nvim_exec:** handle Vimscript line continuations #14809 (6188926), closes #14807
* **:source:** copy curbuf lines to memory before sourcing #15111 (afdc9e6)
* allow str_utfindex second argument to be an explicit nil  (#16448) (512ec46)
* **api:** fix crash after set_option_value_for() #15390 (8b0e6cc), closes #14097 #13577
* **api:** fix nvim_buf_set_extmark (2338345)
* **autocmd:** fix conditions in block_autocmds, unblock_autocmds #15372 (29712ae), closes #6279
* **buffer_updates:** cleanup test behavior (54b2c68)
* **buffer_updates:** handle :delete of the very last line in buffer (8335e26)
* **buffer_updates:** handle :sort of already sorted buffer (ef687d3)
* **buffer_updates:** make `lockmarks` not affect extmarks and buffer updates. fixes #12861 (7d171b1)
* **bufupdates:** send correct updates for visual paste (1423146)
* **build:** add an env var to re-enable the colors (5087347)
* **build:** call find_package(Threads) before using its variables (f446ab3)
* **build:** export symbols on Windows (aa644b7)
* **build:** fix build failure in MinGW (0503e17)
* **build:** make vendored libmpack and libmpack-lua build properly (2a08aef)
* **channel:** throw error if sending to internal channel w/o terminal (3b89fee)
* **checkhealth:** duplicate checks if module name has "-" #15935 (a36c6e5)
* **checkhealth:** mitigate issues with duplicate healthchecks #15919 (acd5e83), closes #15259
* **ci:** disable broken test on openbsd on all CI due to resource constraints (a3e2636)
* **ci:** re-run GHA for ready_for_review events (#15377) (c6ef956)
* **decorations:** crash when :bdelete (extmark_free_all) after clear_namespace (cd353aa), closes #15212
* **defaults:** "syntax sync maxlines=1" on CmdwinEnter #15552 (5f8518b), closes #15401
* **defaults:** do not map Y in visual-mode #15387 (54726e8), closes #13268
* **diagnostic:** allow floats to be focusable (#16093) (427bac6)
* **diagnostic:** change default severity_sort order (938ed45)
* **diagnostic:** clamp line numbers in setqflist and setloclist (5b0d8f8)
* **diagnostic:** correctly handle folder level diagnostics (f87779a)
* **diagnostic:** deepcopy diagnostics before clamping line numbers (2abc799)
* **diagnostic:** do not focus floats in goto functions (#16433) (b5b025f)
* **diagnostic:** don't clamp line numbers in setqflist (0341c68)
* **diagnostic:** don't return nil when callers expect a table (#15765) (057606e)
* **diagnostic:** don't use nil col if missing from qflist (#16357) (5e46f64)
* **diagnostic:** error on invalid severity value (#15965) (d5dd0aa)
* **diagnostic:** fix navigation with diagnostics placed past end of line (34bb5fa)
* **diagnostic:** fix option resolution in open_float (#16229) (fd34784)
* **diagnostic:** fix wrong data type in setqflist() (3fd1450)
* **diagnostic:** get line count per buffer when clamping (c59f200)
* **diagnostic:** handle an unknown or missing client (#16242) (1fdbd29)
* **diagnostic:** handle diagnostics placed past the end of line (#16095) (a2994c8)
* **diagnostic:** make set() go through cache when calling show() (d93f47d)
* **diagnostic:** only update decorations for loaded buffers (#15715) (924e8e4)
* **diagnostic:** preserve fields from LSP diagnostics via user_data (#15735) (17b7968)
* **diagnostic:** remove useless highlight links (#15683) (c13242c), closes #15585
* disable clipboard when test registers (dd63d93)
* **docgen:** add tagfunc.lua (0746f00)
* **doc:** various fixes #15604 (4eb1ebb)
* **eval:** add the vimscript-1 feature to has() (18b32fc)
* **eval:** checking for a non-empty string is too strict (#15987) (1dbbaf8)
* **eval:** fix has('wsl') #16153 (16d06fa), closes #12642 #16143
* **eval:** fixup for empty modifier in fnamemodify (#16368) (a7ad509), closes #16367
* **extmark:** fix missing virt_lines when using id param of set_extmark (995dbd2)
* **extmarks:** splice extmarks on nv_Undo #15920 (e069361)
* **fileio:** replace characters over INT_MAX with U+FFFD (#16354) (a2e5c2f), closes #11877
* **float:** fix potential heap corruption in win_redr_border (de670f3)
* **float:** redraw if w_border_adj changed (7ff1bc1)
* **heath/provider.vim:** using list as string #16007 (5365f24), closes #15988
* **highlight:** remove syncolor.vim, always include syntax colors (9afa0d2), closes #15176 #12573 #15205
* **inccommand:** ignore trailing commands only for *previewed* command #15638 (1f8c91b), closes #8796 #7494
* include ci/ in exported tarball (d6f03aa), closes #15856
* **input:** never reinterpret unmapped ALT- chrods in Terminal mode (#16222) (5ce35ab)
* **input:** resolve isolated (non-ALT/META) mappings #13109 (c4857b6), closes #13042 #13086 #15869
* **jobwait:** always drain process event queues #15402 (3c081d0), closes #15349
* **lsp_spec:** tests depended on previous session (069d1de)
* **lsp:** accept file URIs without a hostname (a2c2a08)
* **lsp:** add done flag to messages returned in util.get_progress_messages() (#15985) (45fa70a)
* **lsp:** add placeholder cancel function (#16189) (4da0351)
* **lsp:** add textDocument/prepareRename to capability map (#15961) (fcc11d5), closes #15899
* **lsp:** adjust legacy show diagnostic functions to use correct scope (#16106) (dc6c9fe)
* **lsp:** allow diagnostic.clear to accept nil bufnr (#15137) (4ed2d4f)
* **lsp:** avoid duplicates in client attached buffers (#16099) (c5525f2)
* **lsp:** avoid serializing boolean as key (#15810) (96614f8)
* **lsp:** change rpc start notify level to warn (#16467) (04c7b55)
* **lsp:** change signature of buf_highlight_references (#16345) (eb3d591)
* **lsp:** correctly parse LSP snippets #15579 (516775e), closes #15522
* **lsp:** default to UTF-16 in make_position_params (2e3a474)
* **lsp:** do not index nil client in progress (#16262) (8f31b21)
* **lsp:** do not invoke handlers for unsupported methods (#15926) (d288daa)
* **lsp:** don't update active_clients on exit_timeout (#16192) (98f5782)
* **lsp:** enable additional capabilities (#15470) (5d63354)
* **lsp:** ensure buffers are re-attached on rename (#16266) (ee3a58d)
* **lsp:** Ensure users get feedback on references/symbols errors or empty results (256570a)
* **lsp:** expose ContentModified error code to callbacks (#15262) (3f09732)
* **lsp:** fix cursor row after textEdits (#16038) (bd2f61c)
* **lsp:** gracefully handle nil workspaceFolders (#16284) (0ecc58c)
* **lsp:** guard textDocument/codeAction command logic #15769 (433bda4)
* **lsp:** improve symbols_to_items performance (#16197) (5ad15c9)
* **lsp:** Include client name in handler error messages (#15227) (24f2b9e)
* **lsp:** pass bufnr for async formatting (#15084) (c31bc6e)
* **lsp:** persist diagnostic config for clients (bcc9ba5)
* **lsp:** prevent double <text> for cached plaintext markup (910967e)
* **lsp:** restore diagnostics extmarks on buffer changes (#15011) (77b33e4)
* **lsp:** rewrite incremental sync (#16252) (2ecf0a4)
* **lsp:** send buffer contents joined on fileformat-specific linebreak (#16334) (134a638)
* **lsp:** send textDocument/didChange for each buffer (#16431) (3451121)
* **lsp:** support duplicate params in signature help (#15032) (9132b76)
* **lsp:** update lsp-handler signature in call_hierarchy (#15738) (8164adc)
* **lsp:** update workspace/applyEdit handler signature (#15573) (3f526fe)
* **lua:** fix vim.deepcopy for metatables & cycled tables (#16435) (eb876a0)
* **lua:** preserve argument lists which are not lists (6896d22)
* **man.vim:** ensure buftype=nofile after :tag or :stag #15675 (29bc648), closes #15650
* **man.vim:** filetype=man is too eager #15488 (2548a9e), closes #15487 #15487
* **mouse:** fix mouse drag positions on multigrid #12667 (0dcfd0e), closes #15091
* **mouse:** correct dragged position in composed layout (810da1a)
* **multigrid:** mouse events crash neovim (28ac6c0)
* **nvim_open_win:** crash if autocmds delete buffer/window #15549 (0c06da1), closes #15548
* **options:** using :set fillchars should clear local value (7528bce)
* prevent K_EVENT from stopping Select mode CTRL-O #15688 (5f144ef)
* **provider:** compare versions as number, not string (python 3.10 support) #15937 (e16adbf), closes #14586
* **screen:** make display_tick monotonic up to 2^64. fixes #16152 (9e88c9c)
* **screen:** missing search highlights when redrawing from timer #15380 (db695cc), closes #13074 #14064
* **shared:** do not treat empty tables as list in deep extend (#15094) (526fc60)
* **sign:** reset auto sign column with minimum in float win minimal style (c8f57f6)
* **startup:** init.lua: set $MYVIMRC to absolute path #15748 (c76cddf)
* **termdebug:** replace mapset with nvim_set_keymap (#15699) (4d7dcbe)
* **termdebug:** replace term_getline with getbufline #15598 (11289ad)
* **terminal:** close without ! if the job is stopped (55defa1), closes #4683
* **terminal:** free terminal if close_buffer() closes a closed terminal (#16264) (14def4d)
* **test/dumplog:** tostring(rv) before formatting as string (ddaa0cc)
* **tests:** use isolated XDG_DATA_HOME in startup tests (8e663e2)
* **treesitter:** do not map hl_group when no mapping is set (f489d98)
* **treesitter:** run predicates more often in iter_matches (458f2aa)
* **tui:** extend smglr ignores to smglp and smgrp (#16239) (3ba800f)
* **tui:** remove obsolete $NVIM detection #15791 (4414584), closes #12937 #11390
* **tutor:** formatting, layout #15098 (c52ec8f), closes #15088
* **ui:** use nowait for q mapping in floating window (#16427) (c132144)
* **v:lua:** fix emsg when calling v:lua directly (da9005a)
* **vim-patch.sh:** run nvim with -u NONE -n #16179 (97ae0ab)
* **vim.opt:** vimL map string values not trimmed (#14982) (4906156)
* **window:** win_close from other tabpage #15454 (90b2da1), closes #15313
* **windowing:** positioning of relative floats (9065730)
2021-11-30 18:20:42 +01:00
Björn Linse
62d67de598 version bump 2021-07-02 18:12:11 +02:00
Maltimore
4d1e7e5b12 Update nvim.appdata.xml to reflect version 0.4.4 (#13754)
Set release date based on commit ee77d8665f
2021-01-18 09:29:32 -05:00
Justin M. Keyes
f460bae441 release.sh [ci skip] 2019-11-24 17:53:33 -08:00
Justin M. Keyes
60e0000c5d nvim.appdata.xml [ci skip] 2019-09-15 19:44:11 -07:00
Justin M. Keyes
1f76c4af13 nvim.appdata.xml [ci skip] 2019-09-15 17:24:41 -07:00
Justin M. Keyes
9915b5497b version bump 2019-09-15 16:19:49 -07:00
Justin M. Keyes
81c3fa6c9d doc 2019-09-09 09:53:19 -07:00
Juraj Fiala
df9059d1a8 appdata: Include more info #9974
- Configuring the translation domain allows calculating and showing the translation states of each language
- OARS gives Neovim a nice ‘safe for children’ badge
- Releases allow displaying release info/update frequency
2019-05-06 22:11:59 +02:00
pierre
92806827a9 appimage: Include metadata #9320
closes #9320
closes #9128
2018-12-30 23:02:40 +01:00