Following is a list of commits (fixes/features only) in this release. See `:help news` in Nvim for release notes. BREAKING -------------------------------------------------------------------------------- -9acb52c8f3diagnostic: remove deprecated diagnostic APIs (#33072) -79bfeecdb4editor: insert-mode ctrl-r should work like paste #35477 -f72c13341alsp: pass entire entry to format function (#34166) -fe23168e2blsp: reimplement `textDocument/codeLens` as decoration provider -caa9419355optwin.lua #36505 -c123b7245cpath: support RFC3986 in path_with_url() #36564 -a57c7238f9plugins: remove shellmenu #35815 -ade58885c4provider: drop Python 3.7, 3.8 support #33088 -59eadebe33runtime: move "tohtml" to pack/dist/opt/ #34557 -1d5b3b5b4ctreesitter: apply `offset!` directive to all captures #34383 -fd1e019e90treesitter: get_parser return nil on error #37276 -a728eb7af1treesitter: remove "all" option of Query:iter_matches #33070 -4369d7d9a7ui: decouple ext_messages from message grid #27963 FEATURES -------------------------------------------------------------------------------- -78f4994627":restart +cmd [cmd]" #34788 #35045 #35223 -b40ca5a01cchannel: support :detach, :restart on Windows #37977 -ce27423132":wall ++p" creates parent dirs for each buf #36121 -f3c2eb49bavim.Pos, vim.Range #36397 -9044d64af9has('terminfo') -70d7979439render tuple types for API methods -5151f635caserverlist({peer=true}) returns peer addresses #34806 -7ba043f0f3api: add "max_height" argument to nvim_win_text_height (#32835) -e80d19142bapi: add nvim_open_tabpage -6ebeb07c56api: experimental nvim__exec_lua_fast #35758 -1e7406fa38api: nvim_cmd supports plus ("+cmd", "++opt") flags #30103 -8b171852a9api: nvim_echo can emit Progress messages/events #34846 -612b2e7850api: nvim_get_commands returns function fields #36415 -4d04d0123dapi: nvim_set_hl{update:boolean} #37546 -4998b8d7b5api: nvim_win_set_config accepts unchanged "noautocmd" #36463 -e2a0748cb2api: nvim_win_set_config can move floatwin to another tabpage -094b297a3bapi: nvim_win_set_config can move split to other tp as floatwin -88774965e5api: relax contract, allow return-type void => non-void #34811 -85d33514f9api: set nvim_echo() kind for ext_messages (#33998) -cf0f90fe14async: add `vim._async` -e1ffa8d33bbuild: HAVE_UNIBILIUM -1f004970f0build: build.zig MVP: build and run functionaltests on linux -dc6cf3add9build: build.zig windows support -e25b99c5b6build: make build.zig run unittests -c4501e98f2build: make build.zig use luajit on main plattforms -8e0692cdc5build: support full runtime distribution work -6d9031390cbuild.zig: add option to use system dependencies -5ec0c1ca07build.zig: install parsers in install step -75fe540500checkhealth: emoji for OK/WARN/ERROR #33172 -63323a9c81checkhealth: trigger FileType event after showing report #33677 -9722bd7b1bclipboard: g:clipboard="foo" forces the "foo" clipboard tool #33235 -3a35fdc347clipboard: wayclip primary clipboard and correct mimetype (#33990) -6228acb74fcmdline: completion for :TOhtml #37045 -3bdebfb87fdefaults: don't enable treesitter query linter -41cac54325defaults: exclude temp dirs from 'shada' oldfiles #37631 -5d06eade25defaults: map "grt" to LSP type_definition #34642 -06befe1e34defaults: map "grx" to vim.lsp.codelens.run() #37689 -249f305bbcdefaults: per-platform 'guifont' default #37175 -d77d961b35defaults: shelltemp=false #33012 -b10cb0296adefaults: store spellfile in stdpath('data') #33048 -4fae013a21diagnostic: add `enabled` filter (#33981) -2f24ae8de4diagnostic: add `format` option to `setloclist`/`setqflist` (#33977) -c65817774ddiagnostic: add `on_jump` callback option -7e09fedf43diagnostic: config.status #36693 -caf7808591diagnostic: custom status format function #36696 -01666aae64diagnostic: fromqflist({merge_lines}) #37416 -4107442103diagnostic: highlights in diagnostic.status() #36685 -68e316e3f9diagnostic: jump to related info location from `open_float` #34837 -2767eac320diagnostics: stack DiagnosticUnnecessary,DiagnosticDeprecated highlights #36590 -a5b8cf145ddiff: merge adjacent blocks using inline:word (#37085) -45b4bbac28difftool: replace old "nvim -d" automatically #38057 -d5cfca5b76docs: numbered listitems -4dabeff308editor: 'autowriteall' on SIGHUP/SIGQUIT #32843 -55a0843b7ceditor: :source can run Lua codeblock / ts injection #36799 -f5829957f2env: remove VIM_VERSION_NODOT macro #34890 -551bb63d44events: MarkSet event, aucmd_defer() #35793 -23bf4c0531exrc: search in parent directories (#33889) -8d397fa458exrc: stop searching in parent directories by unsetting 'exrc' -dc67ba948eexrc: user must view and explicitly run ":trust" #35069 -bffca6e26bextmark: support end_col=-1 if strict=false #28169 -302e59f734extui: assign 'filetype' to extui windows (#33924) -f2988e05dbextui: don't enter pager for routed message #34679 -8defe1afb2extui: route to "more" window if it is open (#34190) -3c9484b550extui: show dismissed message in cmdline (#34745) -9467731865extui: support paging in the dialog window (#35310) -7526fb449dextui: use winborder for msg window #34859 -8a626e5c4afloat: 'statusline' in floating windows #36521 -216cc893bffloat: 'winborder' "bold" style #33189 -dcbe5bdd96ftplugin: treesitter default highlighting for markdown -c1fa3c7c37gen_help_html: generate helptags.json, helptag.html #35442 -322a6d305dglob: new Glob implementation based on Peglob #33605 -8c63d84be1health: check `vim.ui.open()` tool #37569 -13ed225054health: create a bug report #31842 -043f5a291ahealth: show available queries for `treesitter` (#37005) -5a94edad70health: summary in section heading #33388 -47b0a718c3help: gx opens help tag in web browser #35778 -16f7440cc7help: super K (":help!") guesses tag at cursor #36205 -cb8c9186e6highlight: support more SGR attributes #37901 -0aabe7ae76inspect: update to a8ca312 -8a0cbf04d6iter: peek(), skip(predicate) for non-list iterators #37604 -448f15ca39json: pretty-format (indent) with vim.json.encode() #35424 -a897cc17a5json: vim.json.encode() sort_keys #35574 -abfe6c9ef7logging: rename ".nvimlog" => "nvim.log" #37935 -4eed85f9bdlogs: show full paths in lsp logs (#33886) -7486c2f6aalsp: <Plug> mapping for signature help cycling #34039 -903335a6d5lsp: `Client:stop()` defaults to `exit_timeout` #36783 -6577d72d81lsp: `root_markers` can control priority #33485 -d6a6eed4f3lsp: attach to buftype=help buffers #38412 -63abb1a88flsp: builtin :lsp command -7c9b865bddlsp: deprecate `vim.lsp.stop_client` (#36459) -b877aa34cflsp: detach LSP clients when 'filetype' changes #33707 -371aa1c566lsp: diagnostic related documents support -15ff454443lsp: display codelens as virtual lines, not virtual text #36469 -63594ffa04lsp: do completionItem/resolve if completeopt=popup #32820 -c5c6ddba91lsp: document method types (#35934) -d08b265111lsp: enable document_color by default #35086 -66339e0641lsp: generate method to client capability map -acfb9bc614lsp: graduate ClientConfig `exit_timeout` #36750 -957093da0dlsp: handle deprecated document symbols (#34751) -492ea28612lsp: handle disabled code actions (#34453) -8876413e2dlsp: highlighting the symbol being renamed (#37390) -d26db4bfbflsp: improve signature help display #35190 -f99e3a8a2alsp: incremental selection via "textDocument/selectionRange" #34011 -e82aef2e22lsp: incremental-selection operator-pending mode #36575 -a4b2192690lsp: lsp.enable() auto-escalates forced shutdown #36458 -4430c9a424lsp: migrate `document_color` to capability framework (#38344) -e855a23c02lsp: on_accept can return item to customize behavior #37092 -729e0acd26lsp: pass client ID in code action filter (#36046) -32f30c4874lsp: pass resolved config to cmd() #34550 -8ed68fda50lsp: semantic token range improvements #37451 -23ddb2028blsp: semanticTokens/range #36705 -3e8a4e1092lsp: show color preview in completion items #32138 -145548a24alsp: show snippet preview if completeopt=popup #32553 -654303079blsp: skip invalid header lines #36402 -4bc7bac884lsp: start/stop LSPs as necessary during vim.lsp.enable() #33702 -d75ffa5934lsp: static registration support (#34371) -cc518cf9balsp: support CompletionItem.labelDetails #38403 -8f5bd569c5lsp: support `documentColor` dynamic registration #33800 -4745270bf1lsp: support `textDocument/colorPresentation` (#34823) -9ff1239634lsp: support `textDocument/documentColor` -05bd4398c5lsp: support `textDocument/documentLink` (#37644) -0e70aa0e86lsp: support `textDocument/inlineCompletion` -77e3efeceelsp: support `textDocument/onTypeFormatting` (#34637) -03d6cf7aaelsp: support `version` in `textDocument/publishDiagnostics` #36754 -965468fca1lsp: support `workspace/codeLens/refresh` -835f11595flsp: support annotated text edits (#34508) -02cd564896lsp: support auto-force escalation in client stop (#36378) -02067a9892lsp: support diagnostic refresh request -2031287e93lsp: support diagnostic related information (#34474) -0f3e3c87b7lsp: support dynamic registration for diagnostics (#36841) -c5167ffc18lsp: support linked editing ranges #34388 -76d213efbelsp: support multiline semantic tokens #34458 -9278f792c3lsp: support range + full semantic token requests #37611 -016335a7d0lsp: support refreshing workspace diagnostics -7cc07e8383lsp: support signature help noActiveParameterSupport #34838 -d7e0d46ffalsp: use stricter types for methods -c22b03c771lsp: user-specified sorting of lsp.completion multi-server results #36401 -e406c4efd6lsp: vim.lsp.get_configs() #37237 -6888f65be1lsp: vim.lsp.inline_completion on_accept #35507 -03d378fda6lsp: vim.lsp.is_enabled() #33703 -054eaf8493lsp: warn about unknown filetype #36910 -cb4559bc32lsp: workspace diagnostic support (#34262) -90d15227c5lsp: workspace_required #31824 -a8edf6e445lsp.util: deprecate vim.lsp.util.stylize_markdown -98f8224c19lua: `vim.pos`/`vim.range` -0c46ea7d38lua: add `Iter:unique()` (#37592) -cf9b36f3d9lua: add vim.list.unique() -7499c9f9a7lua: conversion between cursor positions -62b45b8fe4lua: conversion between extmark positions -9f5b309d82lua: conversion between vim and lsp position/range -047a10bfdelua: function `behavior` for tbl_extend, tbl_deep_extend #33819 -4d3a67cd62lua: replace `buffer` with `buf` in vim.keymap.set/del #38360 -6e1745e96elua: support vim.Range:has(vim.pos) #37879 -7ed8cbd095lua: vim.list.bisect() #35108 -d8a8825679lua: vim.wait() returns callback results #35588 -f68a5c40f0messages: add "prev_cmd" argument to msg_history_show (#34779) -fc2dee1736messages: cleanup Lua error messages -0d13945bbbmessages: drop hardcoded 'showmode' delay #38029 -0741d2520dmessages: hl-StderrMsg, hl-StdoutMsg #33429 -0ee5a4d481meta: vendor luv meta files -7cd5356a6fnet: vim.net.request(), :edit [url] #34140 -f29b3b5d45net: vim.net.request(outbuf) writes response to buffer #36164 -fb0dc825e9option: custom chars in 'winborder' #33772 -28e31f5d3doptions: default statusline expression #33036 -5973328edaoptions: per-buffer 'busy' status #34493 -0412527a40outline: smaller indentation #34005 -2728b4efe0pack: add `[[` and `]]` mappings in confirmation buffer -a9db6ec6fapack: add `active` field to `PackChanged` event data -d21b8c949apack: add built-in plugin manager `vim.pack` -4a637107d0pack: add checkhealth -98e3a571ddpack: add code actions in confirmation buffer -d7db552394pack: add initial lockfile tracking -8c28507fcfpack: allow choosing update target in `update()` -dd828690c7pack: allow function `opts.load` in `add()` -c9965491d0pack: allow running `update()` without Internet connection -acff86601epack: allow skip install confirmation in `add()` -a41703d107pack: confirm "Always" to install all plugins #35733 -c339b83a4apack: hint in confirmation buffer that plugin is not active -dc8235c48cpack: prefer using revision from lockfile during install -c522cb0e96pack: support user-defined `data` in plugin spec #35360 -2e533e364epack: update `add()` to handle source change for installed plugin -069be91106pack: use `nvim_echo{kind=progress}` to report progress #35625 -a203961535pack: use colored `nvim_echo` chunks to show progress report -7853cde29apack: vim.pack.get() gets VCS info #35631 -fec02ae8e4plugins: nvim.difftool can compare directories #35448 -8a12a01466progress: better default format + history sync #35533 -7b7e8cc724progress: disable cmdline progress msg via messagesopt' #36730 -4b643d7068progress: set Progress-event pattern to "source" #38495 -24684f90eaprogress: status api, 'statusline' integration #35428 -286371b4d2prompt: multiline prompt input #33371 -8ab511bba5prompt: plugins can update prompt during user input #37743 -a940b77cb2prompt: prompt_appendbuf() appends to prompt buffer #37763 -5ae41ddde3prompt: prompt_getinput() gets current input #34491 -5f8d4a248aprovider: detect venv python via "pynvim-python" tool #35273 -f01419f3d5runtime: accept predicates in take and skip (#34657) -8c81ed8678runtime: revert cfilter, ccomplete to legacy Vim -9e1d3f4870runtime: undotree #35627 -c9d8468020search: increase `MAX_COUNT` to 999 -6ba32713adsecure: allow 'path' parameter for trust action 'allow' (#38001) -71455173b4shada: don't store jumplist if '0 in 'shada' -840cdb9589shada: shada should not store nobuflisted buffers #21818 -701258921esnippet: highlight active tabstop (#35378) -4e1644d4d3spell: opt-out of confirm when downloading spellfiles #36836 -1d40f67776ssh: SSH configuration parser #35027 -cf874cee33startup: provide v:argf for file arguments #35889 -32aee065a8startup: warn if NVIM_LOG_FILE is inaccessible #38070 -4719b94443statusline: option to specify stacking highlight groups #37153 -b79ff967acstatusline: vim.diagnostic.status() #33723 -72a63346d8stdlib: vim.fs.ext() returns file extension #36997 -6b4ec2264estdlib: vim.json.decode() can allow comments #37795 -eac2f0443etag: respect jumpoptions=view when popping tagstack (#37021) -a945686444term: increase max scrollback to 1000000 -6bc0b8ae87terminal: detect suspended PTY process (#37845) -03377b9552terminal: include sequence terminator in TermRequest event (#37152) -71f3a9c590terminal: parse current buffer contents in nvim_open_term() (#33720) -2368a9edbdterminal: support SGR dim, overline attributes #37997 -c8693051a8terminal: surface exit code via virttext + nvim_get_chan_info #37987 -b38173e493terminal: synchronized output (mode 2026) #38284 -72d3a57f27treesitter: incremental selection -586b1b2d9btui: add nvim_ui_send (#35406) -981ea41abbtui: ghostty builtin terminfo #36963 -8eb0964537tui: native progress bars for Progress events #35973 -de87ceb3betui: support APC queries in TermResponse (#34426) -977e91b424tui: use DA1 response to determine OSC 52 support -abb40eceddui: "append" parameter for "msg_show" UI events -fafc329bbdui: 'pumborder' (popup menu border) #25541 -649bb372f6ui: :connect command #34586 -7ba0f623d7ui: avoid setting 'cmdheight' with vim.ui_attach() -2b4c1127adui: emit "msg_clear" event after clearing the screen (#34035) -2c1c0b7af5ui: ext_cmdline/messages for the TUI #27855 -f29856d034ui: include compositor info with multigrid -9bbbeb60e3ui: no delay for errors with ext_messages (#33693) -07d0da64edui: overlay scrollbar on 'pumborder' #36273 -a2b92a5efbui: show "empty" cursor behind unfocused floatwin #37624 -97549ad7cfui: specify whether msg_show event comes from typed command -8ae9a44d38ui: support grid=0 in nvim_input_mouse #32535 -08c484f2caui: use builtin completion popupmenu with ext_cmdline (#31269) -fbac2e5edcui2: configure maximum window heights #38392 -32e0d05d53ui2: configure targets per message kind #38091 -9fc985bc98ui2: more predictable routing #35028 -db2a54996eui2: replace message by its ID #37672 -e268760e46ui2: show active paging keys in dialog float title #37919 -875212c5b3ui2: support routing "typed_cmd" trigger to target -81d2d88f70undotree: set 'filetype' #36091 -9595f07425ux: sexy intro #38378 -5196162540version: support multiple Vim versions -361671870evim-patch.sh: -M lists all ported patches -7fe02126f9vim-patch.sh: add n flag to list possible N/A patches (#36431) -2f0fbdaa48vim.fs: root() can specify "equal priority" #34276 -eae2d3b145vim.hl: allow multiple timed highlights simultaneously #33283 -ea124068f2vim.pack: lockfile support #35827 -773075b2bcvim.version: add `vim.version.intersect()` -aeb8bca12dvim.version: make `tostring()` return human-readable version range -e42050f4aevimscript: log function name in "fast" message #32616 -6edae88052vimscript: 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) -379c37fa0bbug in stylize_markdown -2c9d21f722cursor shape don't resume after `:append` -7fdf9f7399define `vim.mpack` -bc4bddbb21don't use logical diagnostic position in `get_prev` and `get_next` #35282 -3567b7d751ignore Nvim local config #37805 -fd45bc8cablsp.enable() don't work correctly inside FileType event #37538 -0694ca8822map wincmd instead of remap #34635 -eeba0dc2edmemory leak from double buffer initialization in read_stdin #35413 -dfa5d79d05misc typos #37471 -cd4c98fdednvim_open_tabpage cleanup, fixes, more tests -874e214993remove exec permission from .gitattributes #33140 -bcc9242bc7remove quotes around `nil` deprecation alternatives (#36047) -7b99e1f0c3remove typo from buffer-local LSP docs (#35841) -e991133058remove unnecessary `nvim -l` from `gen` command #33676 -92b2a26772resolve all remaining LuaLS warnings in `src/` -431004dda2screenchar()/screenstring() with hidden floating windows #35560 -1999c4cdc1screenchar()/screenstring() with multigrid #32494 -9204b7541dsilence LuaLS's `no-unknown` warnings in `src/` -020d5e0f7estale lines("w$") after nvim_win_set_height when splitkeep=screen #36056 -2e68e9c051temporarily disable 0.12 deprecation tests -3b6084ddf4type fixes -38aac21083type of nvim_echo -d21e2463fdupdate deps hash for zig 0.14.0 -fa8e4e65caupdate lua types for commands -9170178ee5use correct window dimension for range estimation -62ba6e8a76use nvim namespace convention #34010 -28157738e3vim.lsp.omnifunc should not throw away other items #35346 -71a22e20advim.ui_attach handles messages during `-l`/`--headless` #36884 -9c5ade9212wait() 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) -5cfbc35aa8api: add missing nargs field to user command Lua callbacks #34210 -eeacd7bd71api: adjust fix for reconfiguring float "relative" (#34287) -3cb462a960api: autocmds mess up nvim_get_option_value's dummy buffer -612cd99a00api: buffer overflow in nvim_buf_get_extmarks overlap #37184 -006361fc6bapi: buffer updates in quickfix buffer #31105 -76d0206342api: count parameter in nvim_parse_cmd, nvim_cmd #34253 -c553008e74api: crash when moving curwin to other tabpage #35679 -b7070778b9api: cterm type in highlight keyset #37802 -853eea859fapi: disallow moving window between tabpages in more cases -0bef1c88f3api: do not allow opening float to closing buffer -ef084b5c22api: don't config split as floatwin relative to itself -4362132b10api: don't re-apply minimal style if unchanged #38152 -3165e94a64api: ensure win_get_config() "border" is reciprocal (#34322) -c7c3f9fc9capi: fix crash in command preview with % #35228 -7b9512e613api: fix not capturing output in cmdline mode (#35322) -d788864cdeapi: ignore split_disallowed when opening a float -3115e3d0d1api: improve external window validation -d707ccf988api: inconsistent scrolling when deleting before topline (#36301) -137d5ab01dapi: merge split window config only on success -22df649210api: nvim_create_user_command addr option should allow ranges #35077 -6f12663de5api: nvim_get_option_value FileType autocmd handling #37414 -7e2e116343api: nvim_get_option_value dummy buffer crashes -0c1ed63c05api: nvim_open_tabpage "after" like :[count]tab -97b064c9acapi: nvim_open_tabpage positional "enter" -d7472c0617api: nvim_open_win default to half-size for splits (#36088) -19f5f05ac2api: nvim_open_win respects requested split window size (#35601) -652c3e76c7api: nvim_parse_cmd "range" when ea.addr_count=0 #33536 -72b0bfa1fbapi: nvim_parse_cmd handle nextcmd for commands without EX_TRLBAR (#36055) -f3ec657ebcapi: nvim_parse_cmd on range-only, modifier-only commands #36665 -c7f38e3bc8api: nvim_parse_cmd parses :map incorrectly #34068 -63cbc95d45api: nvim_set_current_win doesn't reset Visual mode (#37340) -9383a096ebapi: nvim_set_hl boolean false corrupts underline styles (#38504) -d19dc6339dapi: nvim_set_hl crashes when url= key is passed -ec18ebcb41api: nvim_set_keymap() throws error even in pcall() #33228 -7da4d6abe2api: on_bytes gets stale data on :substitute #36487 -2211953266api: on_detach consistently before buf_freeall autocmds -a2b9720939api: open_win leak from naughty autocommands -5226801be2api: parse_expression crash with ident and curly -a5e5ec8910api: parse_expression crash with unopened ] and node -d523750de0api: populate lhsrawalt in nvim_get_keymap response -88dc44260fapi: preserve WinConfig style when converting float to split #37264 -963308439aapi: reconfiguring float "relative" does not clear "win" (#34271) -e13e850517api: redraw after setting minimal style -7be4ae796fapi: relax config validation for "win" -1901832f26api: return "style" in nvim_win_get_config() #38122 -15d57ab0baapi: single-line visual block insert triggers extra on_lines #35098 -f5d03ec930api: style=minimal not applied immediately for unmoved split -0ee8323f2bapi: unnecessary errors when not moving split -af82f36108api: update topline when flushing with nvim__redraw() (#34346) -99529577ccapi: use E226 instead of E227 for duplicate abbreviation (#33159) -0d73ec5834api: use original LHS in keymap error message #33135 -680d25e5b3api: use standard error messages -1ec74fa7b1api: win_config `border` type #38030 -c924c2a7b3api: win_config_float_tp grid removal, redraw -da39966a3aapi: win_set_config error message for splitting from a float #35650 -65170e8dadapi: wrong return value with reverse range + overlap #32956 -285c04e2d0api,lsp: call on_detach before wiping out the buffer #35355 -acecdbff1fapi,lua: handle converting NULL funcref/partial (#37060) -4daa8eb5abappimage: wrong $ARCH used by linuxdeploy #36712 -5871d26779autocmd: 'cmdheight' OptionSet with valid window grids (#34619) -19379d1255autocmd: deferred TermResponse lacks "data", may not fire (#37778) -05a83265f9autocmd: fire TabClosed after freeing tab page -f36dd7557aautocmd: heap UAF with :bwipe in Syntax autocmd -6d2330f50dautocmd: parsing of comma-separated buflocal patterns -d945a93d69autocmd: potential TabClosed UAF, always set abuf -1cde71233fautocmd: skip empty comma-separated patterns properly -f9ef1a4cabbuffer: defer w_buffer clearing to prevent dict watcher crash #36748 -14d65dae91buffer: don't allow changedtick watcher to delete buffer (#36764) -23aa4853b3buffer: don't reuse 1-line terminal buffer (#37261) -2700f6642abuffer: switching buffer should respect jumpoptions+=view (#36969) -fa24df3264bufwrite.c: handle invalid byte sequences #37363 -c26f989b2fbuild: also check os_win sources with uncrustify in CI -8069df2661build: build.zig: use luajit for windows -576e8f62c2build: disable problematic marktree assert in RelWithDebInfo builds -88b45614e9build: gen_help_html fails #36359 -f0d981544bbuild: glibc 2.43 happened -e69beb9b1abuild: invalid help tags cause reports to fail #36356 -3268f51d20build: musl libc build.zig -f98b5ee619build: remove .tar.gz workaround for bug fixed in zig 0.15.2 -a2b0be19bfbuild: remove deprecated aliases in build.zig removed for zig 0.15 -b4db223d33build: treesitter parsers are not ReleaseSafe -921f8b0df7build: use correct cmake expression for $<CONFIG> -ec8a0c7340build: workaround errors in zig build due to stale cache -6741c134e1build: zig build can has git version -41bc3020c4build.zig: format build.zig to keep lines under 100 chars -565cfa04ebbuild.zig: replace slashes in filepaths #37111 -64ce5382bdchannel: crash on failed sockconnect() (#37811) -886efcb853channel: possible hang after connecting with TCP times out (#37813) -4399250e90channel: unreference list after callback finishes (#37358) -5f9f5bc04dcheckhealth: check g:loaded_xx_provider for all providers #33168 -e87d2ae383checkhealth: check outdated pynvim version properly #33175 -78d2e0b43echeckhealth: don't override user "q" keymap #33132 -16fbde83c4checkhealth: don't wrap command in cmd.exe (#38158) -bd45e2be63checkhealth: wrong ABI version for treesitter parsers #35327 -ad22d0ace9cjson: fix `strbuf_set_length` incorrectness #35565 -f5cbf11644client: avoid :connect race with server detach -2483d5ad8aclint.py: replace deprecated codecs.open #36593 -41199c45d6clipboard: avoid using stale register width (#36178) -95dfb063daclipboard: correct blockwise register width computation (#35038) -ac12dc49ccclipboard: enable cache for function providers #34470 -310d01d8faclipboard: tmux clipboard data may be stale #36787 -d00f680c0dclipboard: use tmux only in a tmux session #36407 -8aacce90b4cmake: linker flags, doc generation for cross-compilation #38215 -9763834170cmake: use host nlua0 binary when cross-compiling #38089 -69cae6259ecmd: :update does not write new, unmodified buffer #35929 -fcf752476acmd: :update writes new file buffers only for real files #35939 -a5c55d200bcmd: bar "|" not allowed after :fclose #34613 -5de2ec76a3cmdline: :checkhealth completion with multiple args (#35060) -f4ee0ab2f1cmdline: avoid empty @: register after :<CR> (#33126) -fde1c07891cmdline: cmdline_block events for :lua debug.debug() #38171 -0015a105cacmdline: do not move UI cursor when entering cmdline #33729 -236d831d77cmdline: don't treat c_CTRL-D as wildmenu (#36067) -95ab723995cmdline: empty ext_cmdline block events for :<CR> #33118 -7f2298ad32cmdline: fix inconsistent behavior with ext_popupmenu (#35688) -677446c70fcmdline: make sure pum is removed on leave (#36608) -dc05598d02cmdline: set search cursor after ui_flush() (#34418) -5977bdba05cmdline: trigger CmdlineChanged after command preview (#35254) -efd0fa55c8cmdline: validate 'incsearch' cursor for "cmdline_show" redraw (#34630) -28ff4deda7colorscheme: adjust `StatusLine[NC]` for diagnostics #36719 -4a706a7092column: don't count signs on lines beyond eob #33410 -b40e658717column: missing redraw with virt_lines_leftcol (#34650) -8f78591f9acolumn: wrong alignment and highlight with empty 'display' (#35495) -69419f8b3ecompletion: CompleteDone reason="discard" when candidate text remains #38169 -51caf0a3afcompletion: avoid freeing uninitialized value (#33459) -b258382176completion: complete drive-letter filepath on Windows #36353 -634f6424aacompletion: set 'wrap' and scrolloff=0 in preview window (#37327) -3f10bb87efcompletion: wrong CompleteDone reason for auto-inserted sole match #38280 -e1b3ca6629compositor: clear old position with last known dimensions #38229 -6f632a8615compositor: don't blend uninitialized background cells #34364 -150490d365conceal: assert tripped during startup #36136 -ad8bce6674conceal: check for concealed lines on invalid row (#36084) -ab72799841coverity/530026,530028: free resources on early exit in nlua_exec_file #33502 -0791594101coverity/530033: free lp->sl_info to fix resource leak #36198 -0ed5e00077coverity/532324: free skip_until to prevent leak #36109 -3e30323135coverity/554963: preallocate msg.items to avoid FORWARD_NULL #34484 -501a21f333coverity/637363: out-of-bounds write #37878 -c5b8ed870bcoverity/644326: NULL ptr deref in socket_address_is_tcp #38010 -20b2dd39ccdecor: clamp last column by decor provider range -ca16b54c86decor: enable decoration provider in on_start #33337 -6adf48b66ddecor: extmark highlight not applied (#33858) -9492df027ddefaults: 'guifont' "monospace" fallback, trim spaces #37930 -57b4fb5c53defaults: enable :terminal [[,]] motion in operator-pending mode #33217 -3ebde5ea14defaults: keywordprg=:help on Windows #33336 -9567fb0507defaults: silent `gx` if no `textDocument/documentLink` support #37969 -dc6fc11b87defaults: start exrc search from parent directory -cb247e06f0defaults: visual-mode [[,]] for :terminal shell prompts #33201 -1c96b72dfadeps: make script/bump_deps.lua update build.zig.zon versions in sync -6e12ef4a7bdesktop: cannot open filename with spaces using OS file manager #33161 -2e0158650adiagnostic: accept multiple namespace in `open_float()` (#34073) -c681336e3cdiagnostic: accept multiple namespaces when setting loclist/qflist (#33982) -d567f899efdiagnostic: allow virtual_{lines,text} cursor exclusivity #33517 -3ac76977bcdiagnostic: check for extmark in get_logical_pos #37127 -68eece8b84diagnostic: check if the buffer is loaded #35125 -dbe17da120diagnostic: deprecate `float` in `vim.diagnostic.Opts.Jump` (#34037) -efa6d91132diagnostic: display 1-based related information line/col numbers (#37093) -2b21c9c23fdiagnostic: ensure autocmd always is always sent diagnostics -e34e2289c2diagnostic: fix flaky error -583308f599diagnostic: handle stale diagnostic extmark ids #38060 -88a72efb46diagnostic: open_float() handles config.float function #31577 -09266830bddiagnostic: show diagnostics on buffer load #35866 -9833f0da5fdiagnostic: unstable sorting by severity #37154 -f7b573f80adiagnostics: assert adjusted diagnostic position #37210 -7a051a4c38diagnostics: avoid jumping to diagnostics in deleted ranges #35088 -9641ad9369diagnostics: diagnostic just after EOL is not highlighted #34085 -e4a100a1e1diagnostics: extend conversion support from/to quickfix format (#34006) -19efabafc5diagnostics: fixed virtual_text cursormoved autocmd error (#34017) -0a113013fbdiagnostics: position diagnostics using extmarks #34014 -a1bc5d0ae6diagnostics: showing stale diagnostics in handlers #35890 -3594c213a7diagnostics: validate opts.signs #34565 -60d0b7d0c3diff: fix incorrect item size of dout_ga (#34338) -0b8a9bde0ediff: set default diff flags properly (#35450) -aaec3e5b0ddifftool: add check for window number when cleaning up layout #36161 -c1e60f36f3difftool: don't reset quickfix list when closing quickfix window #38088 -c9b74f8b7edifftool: ensure split layout, use systemlist #36145 -c6113da5a9difftool: fully resolve symlinks when comparing paths #36147 -a88c7962a8difftool: handle "no differences found" #36671 -d590644620difftool: silence :only command in setup_layout #36168 -97a6259442display: adjust setting winline info for concealed lines (#33717) -cb2ca54331display: cursor moves when searching with "n", "*" #29446 -ce0c0c31a0display: scroll logic does not take into account concealed topline (#33054) -5b1561bb71display: scroll redrawing doesn't account for virt_lines above fold #33374 -7e8b7bba21display: wrong cursor column with 'concealcursor' = "n" and virt_text (#33218) -5582005ac7docs: add `--clean` arg to LSP bug report (#36530) -e74753a221docs: callback annotation for `vim.ui.input` #34507 -4a910a2a4edocs: dev.txt is "new layout" -9da316fcc4docs: force blank line after numbered list items #35950 -4397c4b117docs: improve adjacent list items -8a76129d9fdocs: include `?` in list items #35945 -b2722181b0edit: clear showcmd after clearing last put char (#34517) -9a864d0a3cedit: handle cindent properly with completion (#36711) -3647b821eaeditor: respect [+cmd] when executing :drop #33339 -966b1da183editorconfig: a custom property is treated as a section (#34445) -b618511ef9editorconfig: use 4 spaces indentation for zig files -fd973c0a4eenv.c: drop envmap, free os_getenv() result #32683 -df9e4a037aeval: 0 should mean current tabpage in gettabvar() (#36891) -8156eece24eval: fix crash with :breakadd expr when calling user func -981d4ba45eeval: winnr('$') counts non-current hidden/unfocusable windows #34207 -1e1619de83eval: winnrs of unfocusable/hidden windows #35474 -57c6b61cf2event-loop: don't call uv_stop() when loop isn't running (#37984) -1dbede5b93events: avoid superfluous CursorMovedI on first autocmd (#33588) -0b61bc8982events: crash on SIGTSTP (Ctrl-Z) #33258 -0a0c349b6fevents: crash on WinScrolled #35995 -29494f042cex: error handling for `:lsp` #37061 -2f35221774excmd: :trust executed even when inside false condition (#36032) -c1f142322bexcmd: correct :connect abbreviation -781ea5b41bexit: stop listening before closing channels (#38480) -ed9abb1851exrc: ensure consistent 'exrc' loading sequence #35148 -f7c939fa7aexrc: exrc knows its own location (#34638) -a393347673extmark: adjust invalidate range by one for deleted lines #37897 -589232c0e0extmark: wrong eol_right_align width calculation (#37034) -6dee1672ccextui: "box" window width calculated on last line (#33881) -ff95d7ff9aextui: adjust "more" window routing (#34251) -cc78f88201extui: adjust which messages are sent to "more" window -9784bc1346extui: append consecutive :echon messages -e512efe369extui: attempt to perform arithmetic on field 'last_emsg' (#35047) -70eb416459extui: better message highlighting after carriage return (#34034) -9e968635efextui: check if buffers/windows exist before deleting (#34886) -3c7c824bdcextui: check option values after VimEnter (#33768) -5046ef4c8fextui: clear cmdline buffer for first message (#34490) -db702782e0extui: close cmdwin to enter "more" window (#33860) -c916bdf329extui: close message window with `q` -39a5b7f239extui: cmdline visibility, cmdheight cursor position (#33774) -5e4700152bextui: copy window config to new tabpage (#34308) -8c6ea76ebcextui: disable cmdline highlighter when showing a message (#34887) -9efdd4fe98extui: drop "more" window that is no longer floating #33861 -be5a4851eaextui: ensure temporary cmdline config is not restored #35301 -1256daeeadextui: ensure windows are valid in scheduled on_key (#35106) -cd7cf4bd16extui: error on :call input('') (#35515) -4d56dc43c0extui: handle carriage return in messages -f1295fe76fextui: hide inactive "more" window (#33831) -3828856233extui: incorrect cmdline cursor position (#34201) -a59b052857extui: map wincmd instead of remapped key (#34151) -d4ecfc4234extui: message may overwrite active cmdline #33846 -76f76fb083extui: only append messages exceeding 'cmdheight' to "more" -33b0a004ebextui: properly setup "more" window for changed buffer -5e83d0f5adextui: reposition "more" window after entering cmdwin -7077c59295extui: reset message state after "search_cmd" message (#34119) -7e787f6a4fextui: route interactive messages to more-window (#33885) -b2a5105c66extui: search highlighting in extui "more" pager #33792 -d0aedd36dfextui: set 'modifiable', 'noswapfile' for buffers (#34582) -56709ca168extui: setup buffers after activating `eventignorewin` (#35915) -8e8f4523c6extui: translate <Tab> in cmdline text (#34055) -cb036cae5fextui: use visible to determine active "more" (#34327) -a96665cf48extui: using tracked message column in cleared buffer (#34154) -c973c7ae6fextui: write each message chunk pattern separately (#34188) -8af28ab9cbfiletype: error when `vim.filetype.match{buf=fn.bufadd('a.sh')}` #34155 -7500f76e61filetype: fix typo (#37286) -095b9f98f3filetype: handle invalid `bufnr` in _getlines(), _getline() #36272 -e2cb675705filetype: move fallback logic to vim.filetype.match() #30141 -d131d67e67float: clamp floating window above cmdline #37899 -3ccba4cdfffloat: crash from nasty :fclose autocmds (#36134) -d4f2b9050dfloat: cursor visible in "hidden" floating window #30866 -66e4784f5afloat: ensure relative window grid is allocated (#34459) -eb3201c772float: null pointer dereference, redundant call #36727 -3b6e8e484efloat: prevent truncation of title that fits exactly #36880 -31c814a0edfloat: respect statusline=3, don't inherit local 'statusline' #36716 -5943a81fe7float: style=minimal leaks into normal windows #25185 -cb171ee7cbfloat: tail truncate long title #28387 -9269a1da35floatwin: handle viewport width properly at end of window (#35490) -66dddd8b51folds: adjust filler text drawing for transparent folds -1d9990daacfolds: avoid unnecessary loop with horizontal scrolling (#33932) -d73cfefed5folds: error when deleting lines at end of buffer #35396 -19715e6e8afs: expand drive-relative paths on Windows #37084 -d22fcf2917gO: use non-breaking space #34197 -ac6cf5b03bgen: alias /doc/user/helptag.html to /doc/user/helptag/ #38156 -805dd5d047gen: prevent "make doc" failure due to temporary files -67fede0fc9gen_help_html: ASCII art rendering in docs #35262 -a49bf5e1d3gen_help_html: parser override -4b02d1f6f6gen_vimdoc: unnecessary assert for non-source files -d2ca90d87eglob: handle numeric literals in pattern matching (#37257) -3991f14621glob: handling commas in letter pattern #34170 -aeebc51851grid: assert crash during extreme resize layouts #36847 -1ad9cdd403grid: check allocated grid size when suspicious scrolling -856391bc7fhealth: "q" keymap not set when health.style=float #37007 -a33284c2c0health: accept TERM=tmux-direct #35511 -c28113dd9dhealth: add back `vim.cmd.redraw()` call (#37576) -3fb53abe2ahealth: attempt to concatenate table value #36369 -8a901a52e1health: avoid silent failure -2422fbdd5fhealth: bad format() call #34904 -672f6e60c1health: bug-report formatting, version check #36809 -61678811d8health: check more "old" files #38028 -31cb37687ahealth: check shell performance using vim.fn.system() #36980 -16c8a908efhealth: check stable release for non-nightly build #36715 -d927a87ed6health: checkhealth float opens extra empty buffer #33648 -f19653e370health: emit Progress message #37123 -cfe10b4014health: errors in :checkhealth with pyenv-virtualenv #35865 -bd37348939health: expecting nonexistent "inotifywait" function #33312 -28b7c2df52health: floating window closes when opening TOC (gO) #34794 -e4ce0c7270health: git check and autocmd clean #36713 -6152bcf42ehealth: hard fail on invalid "python-*" bin #35382 -6942dec9b2health: highlight group conflicts with help #34616 -bfc7bae421health: improve version check for nightly builds #38147 -07f048a8d7health: message should mention "vim.provider" #33095 -e9d03b92b6health: redraw after emitting progress message #37567 -06e4b159edhealth: show full curl output -f311c96973health: update advice for Python #35564 -ae93639ec4health: use FileType autocmd for bug report winbar #37486 -1c52e90cd5help: :help can focus unfocusable/hide window #34442 -4a4de73043help: better align local-additions #38097 -25322a3a3bhelp: only set url for help files in $VIMRUNTIME #36165 -e49a592595help: retry once if async parsing fails #36592 -62d3a2110dhelp: wrong tag url in third-party help docs #36115 -625c59fe5fhighlight: Normal-linked groups shouldn't override CursorLine #35026 -64966ba52chighlight: allow ephemeral extmarks past final newline #35888 -e23c083d13highlight: avoid null deref, misc issues #38164 -444c195edbhighlight: blend underline check and use struct key for attr cache -d5a8c9d766highlight: correct change detection in do_highlight for gui colors -e3c36f31e3highlight: ensure extmark range is within buffer bounds #35928 -a7177e34c3highlight: link HLF_8 to something more prominent #34910 -3af43cffa0highlight: no match highlight during :substitute prompt #33262 -336b46a879highlight: preserve background transparency in 'winblend' #34302 -5803994a1chighlight: preserve bg transparency with winblend=100 #34825 -bd12aef784highlight: refresh highlight attrs before message output #25737 -6af8958055highlight: respect 'winhighlight' in CursorLine Normal check #36927 -f8d59cfab9highlight: setting 'winhl' doesn't work with global ns (#37868) -64753b5c37highlight: spurious underline in 'winblend' floating window #34614 -a26cdcb20einccommand: skip input() during preview #35272 -f348c0ebbaincsearch: include compsing characters with Ctrl-L -a04c73cc17input: discard following keys when discarding <Cmd>/K_LUA (#36498) -592582ba48input: don't exit on EOF when peeking for input with -es (#36948) -29c8dabd41insexpand: update showmode when updating the screen (#34466) -e0308dc147install: only install "tee" on Windows #36629 -cd71221250intro: crash on small screen #38397 -4fe51dfdaeiter: ArrayIter:last returns nil when filtered to empty #34697 -eaa9aca130jobs: jobstart(term=true) accepts width/height #33904 -11e82c108dl10n: update Ukrainian translations #37654 -16c1334399langmap: assert failure on mapping to char >= 256 (#37291) -14fe370564logging: don't overwrite NameBuff (#38004) -ea5007b37flps: separate namespaces for pull/push diagnostics #37938 -bf4710d8c3lsp: "attempt to index nil config" #36189 -f068386c9flsp: "bold" border for vim.lsp.buf.hover #33395 -a9b8a8dc6clsp: _cancel_all_requests() tries to cancel completed requests #34105 -97ab24b9c7lsp: _get_workspace_folders does not handle root_dir() function #36071 -a03ab03a10lsp: `:lsp restart` restarts on client exit #37125 -6005fcf671lsp: `opts.wrap` always `true` -4b0700c618lsp: `vim.Range` check in `document_color.color_presentation()` (#38374) -d6fffe6b32lsp: access correct client capability path in `supports_registration` -3eaa6c5a66lsp: add `RequestFailed` error code constant #34645 -c3589753a0lsp: add `vim.deprecate` call to `vim.lsp.with` (#37960) -bd41f6eb6clsp: add deprecation comment to `gen_lsp` (#36185) -9f99bf48ealsp: add missing argument validations (#34519) -378435968flsp: adjust codelens position based on the server-provided range -35756022cblsp: advertise supported fold kinds (#34461) -4db58f78b4lsp: announce `normalizesLineEndings` capability (#34175) -bac133e4b6lsp: announce diagnostic tag support (#34436) -fed9069b8dlsp: avoid `foldclose()` after current window-buffer changed #33901 -2debe2f30alsp: avoid automatic request after leaving insert mode (#35767) -fde0b487fblsp: avoid re-enabling `document_color` on `registerCapability` (#35774) -6f733f4a9blsp: avoid scheduling client deletion before LspNotify #37685 -2ee896201clsp: better handling of "*" configs -0501c5fd09lsp: call `on_list` before reading `loclist` #37645 -653871da1blsp: check `nvim.lsp.enable` before `doautoall` #36518 -e94d8f03b9lsp: check for lens range in `vim.lsp.codelens.run()` (#35294) -1bc85d29c1lsp: check for non-nil buffer state on reset (#36519) -bbfcde3ab2lsp: check if buffer is valid in scheduled client:on_attach() #35672 -c789d79966lsp: check if buffer is valid when resolving code lenses (#35092) -0862c1036alsp: check if client is stopping before reuse #33796 -42f244bf18lsp: check whether buffer is valid when scheduled #35461 -0dc900d744lsp: clear document_color autocmds #34573 -ace254c9fflsp: close floating preview window correctly #34946 -a702534c50lsp: close timer when client exits (#36795) -b4ba27c238lsp: codelens extmark line out of range (#35070) -f2d0b06ecblsp: completion word includes leading space from label #38435 -3342aead1dlsp: consistent use of `vim.notify`/logging with unsupported methods -55e3a75217lsp: convert the encoded position to line byte (#34824) -8165427b4dlsp: correct capability checks for dynamic registration (#36932) -82d0883c2dlsp: correct diagnostic data support and related info capabilities (#34454) -2822c38f2elsp: correct iteration through attached buffers (#36517) -213360c389lsp: custom 'winborder' in make_floating_popup_options() #34868 -342974773clsp: cycling signatures with the default `config.focusable` -40aef0d02elsp: decode 'null' in server responses as vim.NIL #34849 -b67eff38felsp: deduplicate completion items #36166 -e62dd13f83lsp: default ClientConfig.exit_timeout to false #36811 -70ea589d79lsp: deprecate `vim.lsp.get_buffers_by_client_id` (#36449) -b938638d2dlsp: deprecate `vim.lsp.protocol.Methods` (#35998) -f7802dd5d5lsp: deprecate vim.lsp.set_log_level, vim.lsp.get_log_path #35274 -8315697449lsp: detect if Client:request resolved synchronously #33624 -0cc4f53b40lsp: do not clear the codelens on the last line #38226 -18e8839c80lsp: don't create an `'LspAttach'` `document_color` autocommand -90abd2613dlsp: don't empty server start-boundary by next client response #37665 -0472119fe6lsp: don't immediately force shutdown when using a timeout (#36455) -c2c5a0297elsp: don't overlay insertion-style inline completions (#36477) -afebbd0f34lsp: don't override `config.title` in `vim.lsp.buf.signature_help()` #35075 -729111d3a3lsp: don't treat MarkedString[] with language id as empty #35518 -ff792f8e69lsp: enable insertReplaceSupport for use in adjust_start_col #36569 -8495d96238lsp: ensure `bufstate` when calling `vim.lsp.document_color.is_enabled` -f168d215cflsp: ensure augroup before querying autocmds #38254 -e239179871lsp: ensure bufnr is passed for buffer-local requests (#36325) -40dc2d02a8lsp: ensure the codelens on the first line is visible -9f77124b78lsp: error on omnifunc completion (#37790) -82b844fefelsp: fallback to empty `capability_path` in `supports_registration` -927927e143lsp: fix error with InsertReplaceEdit events #33973 -23f4fab0bdlsp: fix incorrect params because of typo (#36871) -34116bbd9blsp: fix nil-index error for `:lsp enable` (#37411) -20a392fe38lsp: fix window to set cursor for inline completion (#36444) -4ee2e365a5lsp: fix workspace diagnostic request to follow spec (#34674) -913b05bf63lsp: format_item should return string (#36025) -7c3df3e2ealsp: get_namespace signature (#38449) -a8ffa6e323lsp: guard dynamic capability attachment #38382 -abc96ba0celsp: handle `nil` buffer state in `documentColor` clear (#33746) -8e48c02061lsp: handle array with empty string when checking empty hover (#35423) -507cd63418lsp: handle completion/resolve response arriving after on_insert_leave -1de77c608flsp: handle nil request in semantic tokens #36780 -26cc42e426lsp: handle nil response in references request #35139 -5653b25e9blsp: handle non-string documentation in completion items #38291 -95dce376f3lsp: handle providers without subcapabilities -eaacdc9bdflsp: ignore empty response on trigger completion #37663 -a0678a5849lsp: ignore inline completions after leaving insert mode (#36476) -7ebfc50775lsp: ignore invalid fold ranges (#36708) -8bfb91accclsp: ignore stale codelens resolve responses (#38153) -5d1fd4aca5lsp: improper diagnostic end_col computation -1f558f8d09lsp: improve diagnostics handling and comments -ed562c296alsp: improve dynamic registration handling #37161 -5c15df449alsp: improve error completion message #33812 -cd06e0c9d6lsp: include client ID when receiving unknown fold kind (#34535) -6005bc68b2lsp: include context for each client in multi-handler results (#34669) -b459bf5961lsp: include missing LSP methods and update type annotations -18d6436ad2lsp: inlineCompletion: ignore out-of-range items #35990 -820fb89172lsp: make thematic break parsing conform to GFM spec (#35162) -13cf80deeflsp: map all LSP methods to server capabilities (#37910) -2f78ff816blsp: misleading logs in non-applicable filetypes #35749 -d976834864lsp: nil error in ColorScheme autocmd -3c4acc0f1alsp: noisy log message when enabling server without config #36264 -91e116f3a6lsp: only auto-detach lsp.config clients #33834 -e5c5b563eclsp: only auto-detach lsp.config enabled clients #34325 -eb90f5d9e3lsp: only resolve LSP configs once (#38007) -6926fc1615lsp: opts.reuse_win does not jump if buf is already open #33476 -4778a4c201lsp: prevent flicker in codelens virtual text #34888 -9e93bfdb5flsp: prioritize showing active signature -b98aefc584lsp: properly handle `documentColor` from multiple servers #33656 -c39d18ee93lsp: raise error when lsp config is invalid type (#37508) -addd408b39lsp: redraw codelens after request completed #38352 -03032d1f73lsp: remove `vim.lsp.diagnostic.reset()` (#35938) -285ea2525flsp: remove extra notify on empty hover -34815777b2lsp: remove side-effects if `vim.lsp.enable()` raises an error (#37571) -181df60533lsp: remove unused `ns` field -371ad48135lsp: replace `string` types with LSP method alias type annotations where appropriate. (#36180) -6a49a277f5lsp: request diagnostics from all registrations -0da9827673lsp: respect documentation markup kind in completion preview #38338 -4ef5624729lsp: restore Client:stop() force-stopping behavior (#35800) -0db8efcbe4lsp: restore virtual document color visibility (#38407) -4dd9137215lsp: reuse_win prioritizes windows/tabs currently displayed #36486 -70460d557clsp: scope inline_completion autocmds to buffer (#35965) -323d5527eelsp: set 'linebreak' in floating windows (#36275) -4b8980949clsp: set concealcursor='' in LSP floating windows #36596 -c3991b8ef4lsp: show notification with empty hover response (#35014) -5b1b46ea5alsp: show title when global winborder is set (#35181) -8a94daf80elsp: simplify semantic tokens range request logic #36950 -4ed597389clsp: snippet preview blocked completionItem/resolve request #38428 -0197f13ed4lsp: sort items when completeopt include fuzzy #36974 -d53d542359lsp: stop and close timer when `Capability` is destroyed -a768d0a95blsp: stop repeatedly resuming dead coroutine #35743 -1d8e9b5d07lsp: store result id for unchanged diagnostic reports -8b5d8dfc73lsp: support `containerName` in symbol requests #35029 -17c18efbe5lsp: support v:count in selection_range() #34551 -a1895f024alsp: support workspace/configuation with no section #27510 -bd225422a5lsp: tests for :lsp, rename start/stop -e69b81ad94lsp: treat 2-triggers-at-once as "last char wins" #35435 -1f63735f17lsp: treat nil inlay hint result as empty array (#35458) -f67306cc67lsp: typos in method names #36077 -29c6176f08lsp: unify LSP error logging prefixes #38354 -9139c4f90flsp: update capability maps (#35227) -db1b7f7412lsp: update completion items on `TextChangedP` -7a8d316879lsp: update metamodel (#38174) -6c3e9b5573lsp: update on `CursorHoldI` cause users unable to `select()` -848c7a7894lsp: update window title when cycling through signatures #35407 -006101360dlsp: use LSP method type in more places (#36069) -36db6ff2c1lsp: use LSP textEdit range for completion start boundary (#37491) -34c769dd89lsp: use `bufnr` when getting clients in `symbols_to_items` (#33760) -807bc00dd6lsp: use `vim.notify` with action-less `showMessage` requests (#34720) -5fbc5ab810lsp: use correct `workspace.diagnostics` capability key (#35937) -00ad477419lsp: use correct deprecation function (#34518) -6fe68abdf5lsp: use entire line as completion word (#37949) -1d7823451elsp: use vim.notify for all message types #34489 -f90cd620c5lsp: vim.lsp.completion clean up triggers on client detach (#38009) -5c4b64aae5lsp: wait for exit_timeout on quit #37597 -6bb6b47933lsp: wait to display exit message #37925 -5554fcc286lsp: warn on missing config in :checkhealth #33087 -0cda018345lsp/diagnostic: key resultId by client and identifier -7a5e9ef0aalsp/diagnostic: use diagnostic provider identifier for code actions #38401 -f0c0c24ed7lsp/health: always use vim.inspect to show root_markers (#34667) -5ad01184f3lsp/health: ensure valid table before concatenating (#34092) -1906da52dblua: close vim.defer_fn() timer if vim.schedule() failed (#37647) -103ddaf9aelua: correct line number reporting for options set in coroutines (#37463) -b986fd96bclua: coverity "unreachable" warning #35874 -40f5115ac4lua: disable `strict_indexing` when converting LSP positions -1264d1156clua: don't leak timer when vim._watch.watch() fails (#35768) -c08139d790lua: don't remove first char of non-file stacktrace source (#37008) -9a5641b4b5lua: drop support for boolean `buf` in `vim.keymap` #38432 -66066d0f6alua: extra CR (\r) in `nvim -l` output #38048 -b87bdef2a8lua: relax `vim.wait()` timeout validation #36900 -6a330f893blua: report error in Lua Funcref callback properly (#35555) -1aa26f5d55lua: separate vim.{g,b,w,t} types #37081 -94144d4678lua: vim._with() doesn't save boolean options properly (#37354) -89b946aa87lua: vim.diff is nil in uv.new_work() thread #34909 -40351bbbbelua: vim.validate `message` param #33675 -bc0635a9fclua: vim.wait(math.huge) fails #36885 -b3324be0d8man.lua: :Man ignores section of gzipped manpage #38235 -87bd16e470man.lua: :Man slow/hangs if MANPAGER is set #36689 -5333d6371bman.lua: E95 when piping to :Man #33068 -a8dd5c7e41man.lua: noisy "ENOENT" error on Windows #33409 -46220afef8man.lua: show_toc condition may cause infinite loop #36979 -b8763cb215man.lua: useless executability check #33438 -84d3bbef23map: use names like Map_key_value not Map_keyvalue -218ea9fff7mappings: always include replace_keycodes in mapping dicts (#37272) -3341ab0776marks: clamp conceal_lines corrected line number #33464 -5773f0e994marks: make jumpoptions=view work with 'smoothscroll' (#38339) -064ff74cdbmarks: wrong display after inserting/deleting lines #33389 -033f1123cdmarks: wrong line('w$', win) with conceal_lines (#37047) -37c0efb21cmarktree: fix edge case bug regarding changing intersections -2154d325d5memfile: avoid potential crash on OOM (#37946) -5e470c7af5menu: fix listing of submenus (#34315) -8f9278d7c2menu: right-click menu fails with E335 when using V after i_ctrl-o #37349 -b47b0caba8message: concatenate multi-chunk nvim_echo({err}) for exception message #38131 -3d5ef97a98message: no wait return for delayed exception error #35881 -2de284e50bmessage: set replace_last for completion "scanning" messages #37967 -3b85046ed5messages: "list_cmd" kind for :command, :version (#34529) -ac67098998messages: "list_cmd" kind for mark commands #33874 -dc3a30cfbbmessages: 'exrc' / secure messages -96e1acfa42messages: add "list_cmd" kind to :colorscheme #37561 -29f2cb89f0messages: add append parameter to history entries (#34467) -8bdfd286e5messages: adjust msg_show "empty" kind logic (#37427) -83037cf218messages: allocate message history kind string #38292 -c85313bac7messages: always assign msg_id to msg_show events #37671 -bf1d4e9793messages: capture execute("messages") with ext_messages (#34342) -276860b538messages: clear 'showmode' message after insert_expand #33607 -1b2b715389messages: disallow user-defined integer message-id #38359 -81828e66b9messages: emit empty msg_show event for :echo #38467 -53aad276b6messages: exclude "search hit BOTTOM" msg from history #36961 -73157c994dmessages: heap-buffer-overflow with shell command (#37855) -7a490d65c5messages: increment message ID without ext_messages #37714 -912388f517messages: list_cmd kind for buffer line messages (#33855) -d86d4bacc1messages: make swapfile attention message part of prompt (#34414) -49c19a1fe3messages: message not flushed at end of command #37904 -7c43f8e433messages: messages added to history missing from ext_messages "g<" #33907 -a81b059a45messages: non-fast and append for "shell_*" kinds #38188 -10a03e83e3messages: only msg_clear for UPD_CLEAR #34688 -e876a739eemessages: recognize cmdline one_key/number prompt State (#34206) -96957d80c6messages: reinstate 'showmode' message delay #37992 -e63346dfe9messages: reset redirection message column at message start #38068 -a5f236291cmessages: single event for multi-expr :echo (#34393) -f1dcde6cbamessages: single msg_show event for :global command #37728 -986b92eb07messages: single msg_show event for multiple :set options #33555 -3898f34c5amessages: spurious newline with --headless + cmdheight=0 #38494 -41336a3590messages: swedish translation #37395 -39c4e0f336messages: unwanted ext_messages newlines for confirm() #38045 -4260f73e13messages: unwanted newlines with ext_messages #37733 -98f5aa2564messages: verbose message emitted without kind #33305 -18fa61049amouse: crash with click on win-separator in statusline (#33091) -7432781e71mouse: do not fetch clipboard twice when pasting with middle button #33494 -2f8fb4f28amouse: mouseclick after conceal_lines is miscalculated #33451 -32325a66camove: adjust for concealed lines above topline after scrolling up (#33211) -6ce2877327move: consume skipcol before revealing filler lines (#34143) -2069be281cmpack: boundary values for negative integer encoding #37255 -b8ee354f12msgpack: flush incomplete big UI event before packing RPC event -7f2d5d6883msgpack: use fixstr encoding for strings of length 20-31 #36737 -41068c77aanormal: assertion failure with "gk" in narrow window (#37444) -911337eb3cnormal: crash using :norm from vim.ui_attach shell message event #38283 -4485e715fboptions: deprecate 'gdefault', 'magic' -c2136e3590options: increase t_Co buffer size (#35859) -9910445125options: make 'cdhome' take effect on any platform -f4f1149292options: vim.opt fails for 'fillchars' #37141 -1f2883e879outline: use 2-space indent instead of 1-space -3d37aa3116pack: account for Git's "insteadOf" in `:checkhealth` #38393 -bac4cde9cdpack: actually checkout proper version of submodules -b02d1303b8pack: add trailing newline to lockfile #38469 -46648c3867pack: close confirmation buffer's tabpage by ID #34971 -0f73873d4fpack: close confirmation buffer, not tabpage #37756 -ee3239fcb6pack: consistently use "revision" instead of "state" -f00abc6a56pack: ensure `data` spec is passed in events during lockfile sync #38139 -d3bea4ace9pack: ensure consistent order of changelog during update -ed73ed8283pack: ensure explicit default `version` in events (where possible) -14003bd1c5pack: ensure plugin directory is created during first usage attempt -539b8027a3pack: explicitly close confirmation window #37861 -fa3920282dpack: handle Git environment variables #35626 -3b860653capack: handle lockfile in case of install errors #36064 -3f34f083dbpack: ignore 'loadplugins' when sourcing 'after/plugin' scripts -28e2a5c151pack: improve `vim.pack.add()` input validation -89a72f11e5pack: make newer version suggestions more robust -2e62f3576fpack: open confirmation buffer in tabpage after the current one -e4e6605943pack: relax minimal Git version to be 2.0 #36573 -f492f62c3dpack: rename confirmation buffer to again use `nvim-pack://` scheme -0fa96585dcpack: set `source` in progress report #38511 -474e9e9408pack: show more informative error message if no `git` executable -5468e6a452pack: skip :redraw! if headless #37782 -8f0b8a2c27pack: skip `git stash` during install -b337c6e0fcpack: update `add()` to have default `load=false` during startup -1ee18b4061pack: use 'coxpcall.lua' on non-LuaJIT -8200223ee7pack: use `vim.pack:` as message/progress prefix -f3f5095630pack: use full hashes in lockfile and revision description -eff01b7620pack: use more correct URI for confirmation buffer name -267bbe64cbpack: validate installed plugins in `update()` and `del()` -a5d6932686paste: don't use :echo immediately before :redraw (#35773) -42aae632beplines: count 'showbreak' in EOL inline virt_text in line size (#35921) -6291256868process: avoid buffering unnecessary UI event with PTY CWD (#37582) -19a3b67789process: avoid unexpected behavior when PTY chdir failed (#37614) -e051718908process: don't limit PTY master remaining data size -97509aa2beprocess: handle poll() interrupted by a signal (#38024) -8a4719e117process: use poll() to drain PTY master on Linux (#38005) -974bc1b044process: wrong exit code for SIGHUP on Windows (#38242) -e5ba875a95progress: memory leak on progress-message with history=false -2415d8f424progress: message-id not sent to ui with history set to false -7bf83cc2a6progress: require "source" for progress-message #38514 -0af01948f3progress: show progress-status only in curwin #38458 -bc6737250dprogress: simplify ui-event, introduce default presentation #35527 -25000be845prompt: "%" prefix repeated on newlines with formatoptions+=r #34584 -ed4c549ea2prompt: also store column info in ': mark #36194 -a5eb023a53prompt: clear undo when changing/appending prompt -807a65b2daprompt: cursor on prompt line, disallow ":edit" #34736 -689a149b08prompt: don't implicitly set 'modified' #38118 -dbb3986f33prompt: ensure prompt-mark col gets reseted properly #37669 -1349233cd1prompt: heap-buffer-overflow in prompt_setprompt -4afbc25432prompt: heap-buffer-overflows with invalid ': col -bf9d3e4bf8prompt: lnum update via nvim_buf_set_lines if buf != curbuf #34833 -b3096b5860prompt: ml_get error with invalid ': lnum -ed7ff848a0prompt: prompt mark not placed after text edits correctly #34671 -602cbbe1d9prompt: prompt_setprompt cursor col adjustment -3a10405214prompt: prompt_setprompt does not adjust extmarks, no on_bytes -2a5d687cc9prompt: prompt_setprompt sets cursor col unnecessarily -16bf7652b7prompt: prompt_setprompt with unloaded buffer, ': with lnum 0 -51dc752e6cprompt: wrong changed lnum in init_prompt -7641177c5fprompt: wrong cursor col after prompt_setprompt, no on_lines -466b2ac192prompt: wrong cursor position with cursor keys (#36196) -acb99b8a65prompt_buffer: plugins can't set `':` mark #35624 -b4906577c9provider: misleading :checkhealth if user sets g:loaded_python3_provider=1 #32696 -51aa64488dprovider: support python3.14 #38419 -7be4e4dd65pty: prevent orphan conhost.exe on Windows 10 #38244 -ef0386fe9apum: adjust info window column offset when scrollbar is present (#37069) -76fdd9b882pum: crash when resizing grid with pumborder set (#36404) -2681e1fce3pum: fix heap-buffer-overflow with 'rightleft' (#33146) -7d569abb20pum: handle RightDrag on parent grid properly (#33626) -922816877fpum: hide info floating window when insufficient space (#37107) -d87972f920pum: keep info window aligned with pum when above #38251 -445cb751e6pum: pumborder=shadow not blending properly (#37328) -0712a9c87bpum: separate scrollbar from shadow border (#37448) -686e7aca40pum: simplify 'pummaxwidth' truncation and avoid crash -5a65321684pum: text overflows into border on truncation (#37438) -106cacc93bpumblend: do not apply special highlight attrs from bg layer #36186 -c80bb5b63epumborder: wrong layout with pumborder=none #36208 -6256adde2fquickfix: always split from current window #33807 -69c379dc44quickfix: use correct lnume when appending (#34611) -7ed8e96994redraw: update curswant for Visual selection (#34241) -a141fd2c4dremote: remote-ui connect timeout on slow networks #36800 -39d8aa0a1arpc: don't overwrite already received results on error (#37339) -abd0c882b3rpc: handle more cases when identifying loopback #36100 -e142e01d57rpc: include write failure reason in log (#37959) -db2b774a16runtime: 'includeexpr' with non-Nvim-style Lua modules #33867 -9076fdc123runtime: add "Added", "Changed", "Removed" to "vim" colorscheme (#35704) -f048298e9aruntime: conceal paths in help, man ToC loclist #33764 -09f9d72c24runtime: coverity STRING_NULL #569464 (#34795) -923efaea28runtime: cpoptions is reset in Lua file #33671 -76f6868e0aruntime: no conceal in qf on :lopen #34854 -59c45b22d9runtime: remove erroneously added syntax tests -39bb5d7ca2runtime: stop treesitter highlight in b:undo_ftplugin #38459 -c4c2112b5druntimepath: crash in :packadd splice optimization #38129 -d995142dbdscripts: collect_typos.lua: show commit message on failure -9f90992934scripts: gen_terminfo clears Windows terminfo definitions #36736 -130ef73e39scripts: release.sh -d04cbb65b9scripts: use right syntax for choosing ref in "zig fetch" -7a71235399server: serverlist({peer=true}) does not find peer servers #35506 -fc21433167session: spacebar heater not warm enough #38434 -2d3dc070cesession: window sizes not stored with float windows (#37344) -0dcdd65dccshada: check return value is 0 -36dbd2686fshada: don't add '0' mark if f0 in 'shada' -1f503ac7c0shada: don't store empty replacement string -a6591950f6shada: don't store search and sub patterns if /0 in 'shada' -198c9e9bcashada: preserve marks after delete across sessions (#35795) -b98eefd803shada: prevent 'nobuflisted' buffers in v:oldfiles #34373 -6bee2f686fshada: prevent use-after-free when mapping file marks (#34446) -5581a53437shell: ceci n'est pas une pipe -6f904cfef1snippet: adjacent tabstops without placeholders (#35167) -ecded994c1snippet: early return for final tabstop #35115 -628d569a59snippet: jumping backwards to choice node (#35062) -dff78f580dsnippet: setting end_right_gravity (#35061) -1968029003snippet: sync tabstop text also if pmenu is visible (#35250) -019b2050e1snippet: use <cmd>call cursor() for visual range -d077a24f5csocket: avoid stack-use-after-return after timeout (#36405) -bfe9fa0f8esocket: remove stale socket files (#37378) -44f1dbee0dspell: save spell files to stdpath('data')/site/spell #33528 -9436e7c978spell: wrong VimEnter autocommands (#36339) -0f64f0f5b6startup: crash in read_stdin #35699 -30dae87de4startup: file buf is lost if stdin is empty and "-" is last #35402 -c8c78b531bstartup: make startup windows if there are only floating windows (#34349) -5c51b45a82startup: respect $NVIM_APPNAME in $XDG_CONFIG_DIRS paths -c785d5cdf0startup: source init.lua from XDG_CONFIG_DIRS -5cbb9d613bstartup: wait for bg detection before user config #37075 -32d3dd0650statusline: broken statusline on error #38000 -c3a4d12529statusline: check buf valid before redraw #35123 -8305af9bd2statusline: clear ruler when it is no longer drawn #33765 -ad330e99d1statusline: diagnostics spacing #36897 -1af5ec5b51statusline: don't require'vim.diagnostic' unless already used -0ca9849387statusline: missing info/hint diagnostics #38307 -af0f7b59b1statusline: redraw if Visual selection other end changes (#36281) -e9b6474ae7statusline: scope truncation bookkeeping -63ece2b151swapfile: don't use uninitialized memory (#35813) -cbfa7f0d7bswapfile: handle newlines in swapfile list message #35802 -8b9500c886system: don't treat NUL at start as no input (#34167) -6e2b514813system: handle SIGINT in --headless mode #36557 -d6d1bfd20dterm: terminal attr index may exceed TERM_ATTRS_MAX #34318 -3e6db5b2ectermdebug: use mark `:` to get prompt line in prompt buffer #37336 -295fb3fdb2terminal: :edit should respect 'bufhidden' with exited job (#37301) -196df35ccaterminal: <Ignore> should be no-op (#37494) -ad1dfc92a0terminal: add various missing redraws -520568f40fterminal: adjust marks when deleting scrollback lines (#36294) -379e307148terminal: also don't propagate $COLORTERM on Windows (#37699) -1519a34e43terminal: autocmds leave terminal open to wiped buffer -61217e3618terminal: avoid events messing up topline of focused terminal -366251a5d2terminal: avoid multiple terminals writing to same buffer (#37219) -5e521c3b5aterminal: avoid tailed cursor in focused terminal in events -16da47f474terminal: changing height may lead to wrong scrollback (#37824) -747da13f44terminal: check `buf` before deleting extmark #38314 -d07cbb2f42terminal: check size when creating new tabpage -e56292071aterminal: check size when switching buffers -f3feae0bbfterminal: crash after deleting buffer lines (#37921) -7297e9d339terminal: crash when TermClose deletes other buffers -ad85871ca1terminal: crash when TermClose switches back to terminal buffer -b67ac8cc6bterminal: crash with race between buffer close and OSC 2 (#37225) -459cffc55fterminal: deleting from wrong buffer (#36289) -b4039ec0b0terminal: don't allow b:term_title watcher to delete buffer -3cd07709baterminal: don't always leave if enter autocmds delete buffer #38324 -6a71239cd5terminal: don't disable scrolloff for non-terminal buffers (#34451) -7d6b6b2d14terminal: don't poll for output during scrollback refresh (#38365) -875958c9a1terminal: don't refresh for sync flush when exiting (#38363) -6a409e0507terminal: don't trigger TextChangedT for unrelated redraws -ee143aaf65terminal: emit Termrequest for all OSC sequences #33181 -b5aef05b8fterminal: fix OSC 8 parsing (#34424) -a2f01953b8terminal: free the "[Process exited]" msg extmark #38246 -e254688016terminal: handle ED 3 (clear scrollback) properly (#21412) -40bf38fefcterminal: handle OSC 8 split into multiple fragments -f6ca9262b8terminal: handle closing terminal with pending TermRequest (#37227) -e6fae64454terminal: handle opening terminal on unloaded buffer (#37894) -814f2629cbterminal: handle split composing chars at right edge (#37694) -1c57e4cb4fterminal: heap UAF from autocmds when entering #38316 -b40880f88fterminal: heap UAF if buffer deleted during TermRequest (#37612) -3621af9b97terminal: inconsistent mode change when switching buffer (#37215) -4ef7aa83c4terminal: keep last cursor if it's on the last row -df21ac729cterminal: losing output if BufFile* poll for events (#37580) -b6befc7b03terminal: losing scrollback when TermOpen polls for events (#37573) -9cbc430cfbterminal: missing refresh with partial mappings (#37839) -c845f1923dterminal: patch various autocommand-related holes -9540e7470bterminal: possible heap-use-after-free during Nvim exit -72ac9ac9a1terminal: possible memory leak on exit (#37532) -238d4fa71aterminal: possible missing refresh with buffer updates (#38388) -e6ba78919cterminal: possibly wrong wrow/wcol in active terminal -99e754ae02terminal: remove condition that buf is curbuf (#33721) -ba6440c106terminal: reset `w_leftcol` after resizing terminal -25ce44845dterminal: restore options properly when switching buffer (#37485) -1a1a60bd05terminal: resuming doesn't work with command in fish (#37857) -cc7022c544terminal: scrollback may still be wrong on height increase (#37835) -1b627f6c59terminal: set b_locked when setting &buftype (#37787) -b28bbee539terminal: skip setting `string_initial` to false on no-op (#34176) -4f6b3e5c15terminal: spurious buffer update with empty buf (#37920) -756751afa3terminal: stack overflow when too many csi args (#34012) -5c156fdc64terminal: update size after closing window -b7124ae768terminal: update winopts and focus when switching terminals -b88b7f9591terminal: wrong colors with nvim_open_term() in non-curbuf (#37579) -67832710a5terminal: wrong row in TermRequest with full scrollback (#36298) -97d9b85bf9terminal: wrong scrollback with BufFile* autocommand (#37601) -54468c1c3cterminal: wrong scrollback with nvim_open_term() on buffer (#37791) -8707ec2644termkey: out-of-bounds write in array #33868 -272e041780tests: don't surpress stderr output -e702f97518tests: ignore vector math types -2d4b028d02tests: use correct include path for unittest -d84e786112tests: use correct signature for unpacker_teardown() -c81af9428ctests: use uv.spawn instead of io.popen for unittest helpers -61f166ec40textformat: don't swallow "space" with auto-formatting enabled (#38181) -e5c2ce5905treesitter: ":EditQuery [lang]" with injected languages #34914 -08f4811061treesitter: :InspectTree wrong title for non-relative path #37965 -16aab4cb48treesitter: InspectTree only show the largest injection #37906 -60af1a1db2treesitter: clear parse options state #33437 -5a2edc483dtreesitter: close `:InspectTree` with `q` -b4016f4525treesitter: don't add final newline if not present #35970 -28eaec5e15treesitter: don't memoize modified headings (#33186) -8d75910ef9treesitter: eliminate flicker for single windows #33842 -5fe582448ctreesitter: enable a gc for wasmtime -168bf0024etreesitter: ensure TSLuaTree is always immutable -99e6294819treesitter: ensure TSNode's tree is immutable -58d85cd03dtreesitter: ensure window is valid in async parsing #34385 -d8e03d5d5atreesitter: escape hyphen in lua pattern -284b0e4fa2treesitter: fix `:InspectTree` incorrect injections -86c939ba91treesitter: fix spell navigation on first line (#37361) -d0822bbd15treesitter: highlight group for EditQuery captures #36265 -ea878f456atreesitter: ignore stale fold refresh callbacks -18e0301e1ftreesitter: inconsistent highlight of multiline combined injection #32619 -0977f70f4dtreesitter: injected lang ranges may cross capture boundaries #32549 -2aa7948266treesitter: invalidate conceal_lines cache earlier #33875 -9274532615treesitter: invalidate conceal_lines marks #33828 -4e2ed1d03ctreesitter: missing `nowait` for :InspectTree keymaps #36804 -63737e6e73treesitter: no injection highlighting on last line #36951 -01817eb6f3treesitter: normalize language aliases -cf59631f65treesitter: not refreshing virtualtext contents #33361 -f82219c490treesitter: parser metadata annotations -de45b8e275treesitter: proper tree `contains()` logic with combined injections -baabc35987treesitter: properly clip nested injections -f2bfde9140treesitter: reset next_col when performing intermediate highlights -3ec63cdab8treesitter: run FileType autocmds in the context of `<abuf>` -faae1e72a2treesitter: scope highlight state per window #34347 -3eab5bd38atreesitter: set local values of window options -29c5559ce1treesitter: show capture-level priorities in :Inspect #35443 -8b41df185ctreesitter: support multiple `@injection.content` captures -f8ac713448treesitter: use metadata in :EditQuery captures #37116 -5119c03be7treesitter: use subpriorities for tree ordering -756e1eb017treesitter.foldexpr: duplicate callbacks #37048 -b15b22fc73trust: :trust command on Windows #36509 -272dba7f07trust: support for trusting directories #33617 -03eb331abftui: CSI is not ESC (sync mode) -fb5a51e775tui: avoid memory leak and compiler warning on Windows (#34225) -1949452bd3tui: avoid using uv_pipe_t as uv_tty_t (#37479) -5048d9aa2atui: call tcdrain() on stdout and stderr on exit (#38154) -e65c0a0810tui: check for title support correctly (#34866) -17e13ce3b6tui: clear primary device callback before invoking it (#34032) -218ff601c4tui: do not emit resize screen sequence after host terminal is resized (#35335) -b1679f0ab6tui: do not remove SIGWINCH handler when resize events are enabled (#35221) -69bddc089ftui: don't call tinput_init() twice (#36386) -331de6afa6tui: don't crash when nvim__screenshot() is called with bad path (#34594) -c35dde03c8tui: don't process UI events when suspending or stopping (#33710) -df23952ce9tui: don't treat remote TUI as GUI (#36319) -adbd33027ftui: don't try to add unsupported modifiers (#33799) -4a69847df4tui: don't wait for DA1 response when stdin is closed (#35745) -d62bbe24cbtui: enable vtpcon strikethrough feature #36762 -82f08f33c1tui: ensure all pending escape sequences are processed before exiting #32151 -142f914089tui: feature detect vsplit scrolling in xterm-like terminals -4b5364b423tui: forward C0 control codes literally (#33759) -f64475a226tui: handle sequence larger than entire buffer -50a38d9698tui: heap-use-after-free when resuming (#36387) -1f0dbfea2ftui: log chdir failure properly #37591 -bb6f5c3b31tui: reset cursor style on exit (#36261) -5b5b7eb8d4tui: reset cursor to default style when guicursor is disabled #38219 -16680e57batui: use 0x7f as Backspace on Windows with VT input (#37679) -460738e02dtui: use the correct offset for invisible cursor after sync -2dba5abcb2tui: wait for embedded server's exit code -b80d390765tui: wrong default input key encoding (#36440) -bff7d3fd9ftutor: cannot find tutors in pack/*/start/* #34689 -4143bcbd37tutor: escape tutor filename #36539 -e5665754d1tutor: l:lang is undefined -f2691199fatutor: use invalidate field in nvim_buf_set_extmark() #34989 -db1542af3dtutor: use legacy syntax for lesson 3.1 #34996 -9988d7142dtypes: add missing @return annotations -ef48104c31types: nvim_get_win_config return type #35639 -1427b94200typval: allocated dynamic size must be at least the static size -072f126453ui: 'pumborder' parsing, shadow #36127 -027b7d6bbbui: :intro not displayed with ui2 #37472 -531442ddd8ui: apply 'pumborder' to mouse menu, fix overflow #36193 -5f9f706462ui: check for cmdline mode properly (#35202) -8aec33e322ui: clear msg_ruler event with 'rulerformat' #37675 -a8a0bba2f8ui: close outdated cmdline pum on redraw (#36815) -a33e5fb1bbui: cmdline_block events for exmode #37751 -8d6963a6a0ui: cmdline_show is not fired after clearing the screen (#36451) -f02484118cui: correct condition for "wrap" flag in a floating grid -7ca3a56258ui: don't crash if maximum UI count reached (#37636) -ad438b6b14ui: exclude hidden windows from tabline window count #36779 -d01b2611a6ui: exclude unfocusable windows from 'complete' "w" completion -c1648cf820ui: forward 'rulerformat' to msg_ruler event #35707 -d909de2dc2ui: ignore textlock for vim.ui_attach() callbacks #36278 -1a3d3b77bbui: no empty message for substitution match with ext_messages #37600 -d30d91f3a4ui: only internal messages are unsafe #37462 -3277dc3b4eui: postpone UI callbacks during textlock #36803 -7b8deacc3fui: preview float doesn't respond to mouse scroll #38270 -61b6553ee9ui: proper event ordering for nested cmdline_block events (#35344) -506dd7252aui: remember cursor shape when obscured #37704 -6657cc3671ui: repaint separator connectors after all window updates #37852 -424d30fe97ui: send multigrid message position and size when the UI is refreshed -1d57374c41ui: textlock still causes issues for UI callbacks #37513 -703f4037c4ui: wincmd _ should not increase 'cmdheight' above 0 (#33056) -c87d92c3b4ui.open: use "start" instead of deprecated "rundll32" #36731 -ae2829ee35ui2: ENTER may focus pager in insert/terminal mode #38497 -e198037148ui2: always route to dialog when cmdline is open #37730 -8c7bbfba3dui2: callbacks reference stale message-window handles #37673 -9655bd560fui2: don't adjust dialog pos for pum wildmenu (#37695) -29a46a11aaui2: don't change configured message target implicitly #37924 -d8cea8d45dui2: don't scroll beyond eob in dialog window #36116 -b9451dfd4cui2: emit FileType event after setting default pager options #36315 -b6c020eb59ui2: ensure expanded cmdline is closed after :<Esc> (#38187) -ba6fc90b6fui2: hide search highlights in msg window #36626 -6275f533d1ui2: immediately open target windows on new tabpage (#38170) -179e7fccd7ui2: incomplete :echon message in g< pager #37819 -4ef217e272ui2: leftover empty lines in msg window #38059 -dff3028fe7ui2: move windows to current tabpage -844caca881ui2: multiline/color replaced message, expanded cmdline, error messages #38044 -d80d7a3eb4ui2: no paging in dialog below expanded cmdline #38489 -72a557c61bui2: only copy highlight marks when expanding cmdline #37709 -301c7065caui2: only highlight Ex command lines in the cmdline #38182 -c4ac36bfd9ui2: only redraw when necessary #36457 -16495e6863ui2: only set dialog on_key callback once #37905 -b2adfe775dui2: show messages in dialog window when entering expanded cmdline #38465 -c94b7b93c0ui2: start treesitter after deleting cmdline buffer (#36274) -ea70d2ad85ui2: unset Search highlighting (#36633) -52dd62aa6eui2: use pager to list consecutively typed commands #38272 -3038f0191eui2: wildmenu hidden behind dialog window #37684 -e58a842749ui2: wrong condition used to detect active pager -ce9dbd398bundo: u_savecommon uses wrong buffer -382963891cundotree: check foldmethod before invoking fold (#36192) -f40672be99undotree: clear autocmd correctly #36124 -645206e87fundotree: error on `undotree.open()` with title as string #36085 -26bd9bfab8undotree: highlight extmarks like normal text #36087 -4598305e0bundotree: mark title field annotation as optional (#36102) -9c89212de1undotree: sync scroll pos with undo #36117 -af5ac7c7eaunittests: use -1ULL to mean UNSIGNED MATH.MAX -c82f83abb0ux: drop "Sorry" from messages #38318 -d93e150888vim-patch: add N/A files and re-sort (#37544) -d2517acdc5vim-patch.sh: 'vim-patch:<hash>' token for 'non-patch' commits #36534 -8bce9342d1vim-patch.sh: don't treat 1-file runtime-only patch as N/A (#36525) -533cc0ab35vim.diagnostic: improve typing -1f9d9cb2e5vim.fs: abspath(".") returns "/…/." #36583 -825e182139vim.fs: avoid fn.fnamemodify in fs.root #37162 -dc5d313d66vim.fs: joinpath() should ignore empty items #38077 -14c708634evim.fs: make `rm()` work with symlink to a directory -f11f8546e7vim.fs: root() should always return absolute path #36466 -28e8190185vim.hl: nvim_buf_del_extmark on invalid buffer #33331 -da650de277vim.json: fix truncation of decoded numbers outside lua_Integer's range #35702 -7a69fefdb9vim.json: loss of precision on integers >14 digits #34876 -78bbe53f76vim.loader: randomized AppImage path pollutes luac cache #35636 -1363ef7d50vim.loader: randomized AppImage path pollutes luac cache #36944 -1fb0126a08vim.lsp.enable: don't eagerly enable LSP configs during startup #33762 -49756ebc70vim.lsp.inlay_hint: requesting inlay_hints even when disabled #32999 -10ca09a2cbvim.net: always pass response body to on_response #38460 -69b286c3bfvim.net: filetype detection, mark unmodified #36297 -12689c73d8vim.pack: add() stops unexpectedly on package load error #34787 -89d26d61d2vim.pack: increase default timeout #36992 -8e740db70cvim.pack: skip checkout on bad `version` #36038 -731e616a79vim.system: clear_env=true gives an invalid env to uv.spawn #33955 -4eebc46930vim.system: env=nil passes env=nil to uv.spawn -532610388bvim.system: improve error message when cwd does not exist -223ac7782evim.system: unclear non-executable message #33455 -649ff924d9vim.version: improve construction of '<=a.b.c' and '>a.b.c' ranges -092962b07cvim.version: vim.VersionRange:has(<prerelease>) (#33324) -e40c5cb06dvterm: handle split UTF-8 after ASCII properly (#37721) -d9d8c660fdwatch: invalid joined path #37973 -bc814cfb2cwinblend: treat braille blank (\u2800) as whitespace #32741 -de950f8272window: avoid referencing cmdline_win after it is closed #35617 -c14de47f1awindow: crash closing only non-float if autocmds :tabonly (#37218) -df62cb3e69window: crash closing split if autocmds close other splits (#37233) -0e7479bb76window: crash on negative window height with 'winbar' #33250 -4fadc21e38window: disallow closing autocmd window in other tabpage -bf5f7c1591window: don't add a hsep when out of room if global stl is off -0d658660c2window: don't enter unfocusable or hidden prevwin (#34486) -b4e3461e3fwindow: don't leak fold memory with style=minimal #38287 -c7fd0c17b1window: don't make hidden/unfocusable previous window current #36142 -7f5b5d34cfwindow: don't store invalid height in window config (#34885) -3a36df9b13window: handle closing the only non-float in other tabpage -9813c00dd3window: restore b_nwindows if win_close_othertab keeps window -403fcacfc1window: skip unfocusable and hidden floats with "{count}<C-W>w" #33810 -84d84e9b5bwindow: style=minimal window loses local options when switching buffers #38138 -da8de99d0bwindow: use real last buffer of closed window -d1189ea508window: win_move_after UAF from naughty autocmds (#37065) -52991d8728windows: don't set window icon on SIGHUP #34260 -2c04ae9fccwindows: wrong RT_MANIFEST ID in nvim.rc #36406 -3325536150winfloat: last_status when changing split to floatwin PERFORMANCE -------------------------------------------------------------------------------- -5edbabdbecadd on_range in treesitter highlighting -f9ce939bf5scheduler priority clamping on macOS #35488 -14e94f4617api: reduce redundant `win_find_tabpage` calls (#35643) -4adfc4b7bcevents: skip Progress prep if there are no subscribers #35871 -bfe42c84deextui: delay creating windows, buffers and parser (#34665) -babdab2f70filetype: vim.filetype.get_option cache miss when option value is false #37593 -f9d2115a35highlight: allow decoration providers to skip ranges without data -1629493f72lsp: avoid textDocument/definition requests during tag completion (#37260) -f486f1742elsp: include `previousResultId` in `DocumentDiagnosticParams` #32887 -42657e70b8lsp: optimize content length extraction from rpc headers -f517fcd148lsp: use string.buffer for rpc loop -92e7d5eaf2pack: reduce number of 'opt/' directory computations -3aa04f7ee4runtime: hardware accelerated "packadd opt_package" -5e64d92411runtime: vim.trim for long only whitespace strings -d3e495ce03snippet: use "[count]|" to move cursor #33571 -098da1fc2ctreesitter: parse multiple ranges in languagetree, eliminate flickering #36503 -e656d7be2etui: faster implementation of terminfo BUILD -------------------------------------------------------------------------------- -4f97239661USE_BUNDLED_UNIBILIUM=0 fails #36623 -fb2d736481add script to collect typo PRs (#35824) -813457d5a6adjust parallel functionaltest target names (#38144) -8e922c657callow comments in deps.txt #35765 -3f416ef524bump lua-bitop to 1.0.3 #35063 -374e869504distclean: remove zig-related dirs #38013 -d589ce28b0drop BUNDLED_CMAKE_FLAG, BUNDLED_LUA_CMAKE_FLAG -0ddba68607ensure toolchain is passed to bundled deps #37587 -10c11c4644haiku os support #36639 -8a7c9c971fignore out-of-source build folder #33191 -8c5bd841edlint decorations_spec etc. with lintlua (#34182) -6b936002ccmake build.zig generate helptags without running "nvim" binary -1d70c96e5bmove shared.lua to _core/ -f51c54ace6noisy readability-implicit-bool-conversion warning #38282 -a053186aa7redundant variable in cmake/Deps.cmake #35924 -6063ecb649remove reference to runtime/indent/Makefile (#35935) -20e77c5d88ship "_core/*" as bytecode (built-into Nvim binary) -1bf9a07b3eslience new clang-tidy warnings #34539 -845cb5a527slience some unwanted clang-tidy warnings -c567340171support Cygwin + bundled luajit #36417 -e91224bfaasupport static build #34728 -20225fc330suppress -Wfree-nonheap-object false positives in lua_cjson #37250 -092e49d020unset $TMUX when running tests (#34178) -3dbba90ba7update-alternatives during deb install #37980 -19ba589946contrib: add bash completion for nvim #35843 -4b2cbc2154desktop: declare "Development" category #37794 -d73f2d9657emmyrc.json: use StyLua formatter in .emmyrc.json #35196 -0980617c0dmsvc: suppress msvc build warning for different enum types (#34591) -ceb7eb5230windows: restore tee.exe on Windows #36363 -5bb8734fb6windows: vendor xxd.c #36746 VIM PATCHES -------------------------------------------------------------------------------- -e27e4052c82566a9f: check.vim: Improve po message checks -5e6f0e58ed32a5faa: check.vim complains about overlong comment lines -cae4fbf9733456303: check.vim: Use silent command modifier -5f86b4b70d4105ef1: Drop superfluous execute permissions for readable files -282a794feb41adebe: check.vim: detect trailing whitespace -fc4188ded86f585da: Overlong translation files may cause repo to become "dirty" -c2e0fd1c357.4.1886 (#36945) -8a4977e2867a734b7: tests: fix typo in comment (after v9.1.1511) -52999675518.0.0287: debug mode: cannot access function arguments (#36772) -c6f0a192068.1.0425: ml_get error and crash with appendbufline() -5a14a2679d8.1.0579: cannot attach properties to text -36fc266e868.1.0636: line2byte() gives wrong values with text properties -b5e20d7dff8.1.0654: when deleting a line text property flags are not adjusted -76729a20448.1.0655: when appending a line text property flags are not added -ef522420f28.1.0753: printf format not checked for semsg() (#37248) -441d222c0d8.1.0857: indent functionality is not separated -1e81b540758.1.0977: blob not tested with Ruby -0c0ef489f98.1.1136: decoding of mouse click escape sequence is not tested (#35551) -b3d29f396d8.1.1259: crash when exiting early (#35552) -00c2e7d89c8.1.1526: no numerical value for the patchlevel -4765d4e0598.1.1584: the evalfunc.c file is getting too big -83f38800e78.1.1681: insert stray "{" when listener gets buffer line -c9b35360ac8.1.1700: listener callback called for the wrong buffer -750c350be88.1.1711: listener callback called at the wrong moment -b79ed66e4a8.1.1736: viminfo support is spread out -89e2f346a88.1.1751: when redrawing popups plines_win() may be called often -582e0714b58.1.1752: resizing hashtable is inefficient (#35563) -85bd0b6a038.1.1891: functions used in one file are global -f7c86742e78.1.1920: cannot always close a popup when filter consumes all events -b38ce042838.1.1939: code for handling v: variables in generic eval file (#36312) -681ec17b508.1.1940: script tests fail -4aac5908ed8.1.1957: more code can be moved to evalvars.c -f89e1eb0368.1.1964: crash when using nested map() and filter() (#35715) -ed0f46af628.1.1978: the eval.c file is too big -183f8cc59d8.1.1979: code for handling file names is spread out (#36176) -3051e8bbb18.1.1981: the evalfunc.c file is too big -d06fdecb978.1.2008: error for invalid range when using listener and undo -860a7e4d218.1.2021: some global functions can be local to the file -406f9e3c8c8.1.2077: the ops.c file is too big -fadbc0e7178.1.2127: the indent.c file is a bit big -5f3d00a5a68.1.2371: FEAT_TEXT_PROP is a confusing name (#35466) -c81f7aeee28.2.0098: exe stack length can be wrong without being detected (#37136) -7048c36ba88.2.0115: byte2line() does not work correctly with text properties -0c24ddb4d88.2.0200: Vim9 script commands not sufficiently tested -3fc3f5f1948.2.0223: some instructions not yet tested -d632ffa2438.2.0307: Python 3 vim.eval not well tested -992eaac0828.2.0370: the typebuf_was_filled flag is sometimes not reset (#37404) -f3cfe9a94b8.2.0371: crash with combination of terminal popup and autocmd (#37433) -f2df98e8498.2.0443: clipboard code is spread out #35949 -758e6db06c8.2.0512: Vim9: no optional arguments in func type -ed012b817d8.2.0844: text properties crossing lines not handled correctly -088ba835ed8.2.0845: text properties crossing lines not handled correctly (#35483) -dc2d4b07a88.2.0853: ml_delete() often called with FALSE argument -474c4771348.2.1123: Python 3 test is old style -b95413f6018.2.1555: not all tests are executed on Github Actions -d65f5a06fe8.2.1618: Vim9: cannot pass "true" to setloclist() -ffb45263768.2.1667: local function name cannot shadow a global function name -865a28155e8.2.1672: v_lock is used when it is not initialized (#35416) -8d3742ae8d8.2.1679: ":*" is not recognized as a range (#37052) -b95848a8f18.2.1756: Vim9: :let will soon be disallowed (#37063) -7ae88606748.2.1912: with Python 3.9 some tests fail -d6607dae418.2.1939: invalid memory access in Ex mode with global command -1b1a8895bd8.2.1941: Ex mode test fails on MS-Windows with GUI -3694fcec288.2.1983: ml_get error when using <Cmd> to open a terminal (#34759) -ff8edbaa6c8.2.2198: ml_get error when resizing window and using text property -b3490536b98.2.2403: Vim9: profiling if/elseif/endif not correct -1ae7c113928.2.2404: Vim9: profiling try/catch not correct -ffdee3a2e18.2.2409: Vim9: profiling only works for one function -8b79c327358.2.2411: profile test fails on MS-Windows -b764a1ba938.2.2423: missing error message -7995e7a89b8.2.2456: Coverity warning for strcpy() into fixed size array -dccc35e6e98.2.2571: test may leave file behind -d7cf1b31d58.2.2834: Vim9: :cexpr does not work with local variables -9a5b3a39f38.2.2905: no error when defaults.vim cannot be loaded -525c348c298.2.2992: Vim9: completion for :disassemble is incomplete -b480b0cd5d8.2.3159: cursor displayed in wrong position after deleting line -e77d15cc5d8.2.3348: line2byte() returns wrong value after adding textprop -cd25ca5e0c8.2.3377: Vim9: :disass completion does not understand "s:" -4f71d9ce358.2.3383: Vim9: completion for :disassemble adds parenthesis -e0dcdef1818.2.3431: completion for :disas sorts local functions first -cba2f65ee48.2.3602: Python3 test fails with Python 3.10 on MS-Windows -398cf6d8d38.2.3657: Vim9: debug text misses one line of return statement -a331d187ba8.2.3662: illegal memory access if malloc() fails (#36939) -9f84e01dfb8.2.3673: crash when allocating signal stack fails -f15c28ed7a8.2.3766: converting a funcref to a string leaves out "g:" -a274bdf2d18.2.3767: crash when using NULL partial -15d3a839998.2.3795: too many #ifdefs -992543c3618.2.3841: Vim9: outdated TODO items, disabled tests that work (#37900) -f211af3ab78.2.3962: build fails for missing error message -24675ffa978.2.3968: build failure -09964b7ef08.2.4379: an empty change is reported to a listener -08eb133c3f8.2.4474: memory allocation failures not tested in quickfix code -ce059908238.2.4528: crash when using null_function for a partial -7ce17cd2a28.2.4529: Vim9: comparing partial with function fails -2ba44af7e08.2.4548: script-local function is deleted when used in a funcref -0c70fbf0d68.2.4633: Visual range does not work before command modifiers -78292dcc3d8.2.4636: not using Visual range -0fa678c02f8.2.4637: warning for using uninitialized variable -cc95a7d8b88.2.4738: Esc on commandline executes command instead of abandoning it -cd543d618d8.2.4763: using invalid pointer with "V:" in Ex mode -ffdb3164918.2.4772: old Coverity warning for not checking ftell() return value -e96c61d92d8.2.4773: build failure without the +eval feature -a979a6237e8.2.4785: Visual mode not stopped if win_gotoid() goes to other buffer (#37073) -90b1202cfb8.2.4851: compiler warning for uninitialized variable -b6d0c391fc8.2.4878: valgrind warning for using uninitialized variable -eb67f3a6ba8.2.5017: gcc 12.1 warns for uninitialized variable -edd99f09c78.2.5092: using "'<,'>" in Ex mode may compare unrelated pointers -f4a33929d98.2.5161: might still access invalid memory -26641c0c569.0.0010: returning 0 for has('patch-9.0.0') is inconsistent -2c560d85449.0.0025: accessing beyond allocated memory with the cmdline window -0d3ee268609.0.0057: has('patch-xxx') returns true -96a514ed469.0.0106: illegal byte regexp test doesn't fail when fix is reversed -d4a8d169a29.0.0113: has() is not strict about parsing the patch version -899ec829be9.0.0145: substitute that joins lines drops text properties (#37108) -efacb107099.0.0154: text properties wrong after splitting a line -27eb0aba3c9.0.0433: Coverity warns for not checking allocation failure -9b15d4c7569.0.0688: debugger does not display the whole command -58ee249c2c9.0.0729: the rightleft and arabic features are disabled -f60051e00d9.0.0874: using freed memory when executing unmenu at more prompt -e51f5e17e19.0.0909: error message for layout change does not match action (#37436) -72d3506ce99.0.1033: tiny build fails because of conflicting typedef -3ac981e8389.0.1066: test function name is wrong -69bed0431c9.0.1427: warning for uninitialized variable -08e193633b9.0.1480: using popup menu may leave text in the command line -827cfe4a769.0.1653: Amiga: default 'viewdir' may not work -bd0555ecd49.0.1654: MS-Windows: test for default 'viewdir' fails -b869cf8ddc9.0.1689: python 3.12 produces warnings and fails test -53fd3657cc9.0.1758: vim9 no class identifiers in stack dumps -1afdcb8f2b9.0.1899: potential buffer overflow in PBYTE macro -7c38f428f49.0.2023: need more tests for :cq -d6e5286d2c9.1.0059: No event triggered before creating a window -3e655d3e429.1.0063: GTK code can be improved -4544cec1689.1.0117: Stop split-moving from firing WinNew and WinNewPre autocommands -60a0e3d0a09.1.0151: ml_get_buf_len() does not consider text properties (#37094) -2a28149efc9.1.0359: MS-Windows: relative import in a script sourced from a buffer doesn't work -453dfbf7d69.1.0535: newline escape wrong in ex mode -6ce964aed69.1.0539: Not enough tests for what v9.1.0535 fixed -17601e709f9.1.0546: vim-tiny fails on CTRL-X/CTRL-A -d5a60409679.1.0598: fuzzy completion does not work with default completion -a9aedfbc589.1.0605: internal error with fuzzy completion -9757b11aaf9.1.0631: wrong completion list displayed with non-existing dir + fuzzy completion -d9f4c1db239.1.0634: Ctrl-P not working by default -f4ddbaeb9e9.1.0654: completion does not respect completeslash with fuzzy -786c5fbdec9.1.0671: Problem: crash with WinNewPre autocommand -69a9a25fcc9.1.0689: [security]: buffer-overflow in do_search() with 'rightleft' -71662bbb499.1.0695: tests: test_crash leaves Untitled file around -50423942419.1.0697: [security]: heap-buffer-overflow in ins_typebuf (#37372) -532cc886049.1.0698: tests: "Untitled" file not removed when running Test_crash1_3 alone -11b36992529.1.0700: crash with 2byte encoding and glob2regpat() -0de85e322a9.1.0701: crash with NFA regex engine when searching for composing chars -8c31b3eeac9.1.0702: Patch 9.1.0700 broke CI -094d3dd3d49.1.0703: crash with 2byte encoding and glob2regpat() -767a52ba309.1.0705: Sorting of fuzzy filename completion is not stable -0eb708aa8a9.1.0721: tests: test_mksession does not consider XDG_CONFIG_HOME -fbac2545119.1.0733: keyword completion does not work with fuzzy -70bb7999f79.1.0748: :keep* commmands are sometimes misidentified as :k -62822d750d9.1.0877: tests: missing test for termdebug + decimal signs -94f7302e669.1.0893: No test that undofile format does not regress (#37193) -c5dbee79109.1.0918: tiny Vim crashes with fuzzy buffer completion -9cc93b6def9.1.0974: typo in change of commit v9.1.0873 -44f70b4be19.1.1006: PmenuMatch completion highlight can be combined -c17caca9b79.1.1008: tests: test for patch 9.1.1006 doesn't fail without the patch -20a7e744449.1.1043: [security]: segfault in win_line() -30293575209.1.1131: potential out-of-memory issue in search.c -0af6d6ff5e9.1.1147: preview-window does not scroll correctly -90d59e6c8a9.1.1178: not possible to generate completion candidates using fuzzy matching -17db70f3af9.1.1181: Unnecessary STRLEN() calls in insexpand.c -10fde593f19.1.1182: No cmdline completion for 'completefuzzycollect' -cd95ea5d489.1.1185: endless loop with completefuzzycollect and no match found -28f61994749.1.1197: process_next_cpt_value() uses wrong condition -e39cdafed99.1.1201: 'completefuzzycollect' does not handle dictionary correctly -e3990f86439.1.1202: Missing TabClosedPre autocommand -0d3ed7904a9.1.1211: TabClosedPre is triggered just before the tab is being freed -dc00b379659.1.1212: filetype: logrotate'd pacmanlogs are not recognized (#33412) -162edf7b309.1.1214: matchfuzzy() can be improved for camel case matches -f9280cde0a9.1.1217: tests: typos in test_matchfuzzy.vim -797195e0ea9.1.1219: Strange error with wrong type for matchfuzzy() "camelcase" -750e1836af9.1.1224: cannot :put while keeping indent (#33076) -0af780e8df9.1.1228: completion: current position column wrong after got a match -2331c52aff9.1.1243: diff mode is lacking for changes within lines -b20fc95c1a9.1.1245: need some more tests for curly braces evaluation -e2e0f92f179.1.1246: coverity complains about some changes in v9.1.1243 -ae98d0a5609.1.1247: fragile setup to get (preferred) keys from key_name_entry (#33102) -e4172bcbdf9.1.1249: tests: no test that 'listchars' "eol" doesn't affect "gM" -62da4e29499.1.1250: cannot set the maximum popup menu width -cb316636639.1.1252: typos in code and docs related to 'diffopt' "inline:" (#33143) -36d143e7079.1.1253: abort when closing window with attached quickfix data -675ee057e09.1.1255: missing test condition for 'pummaxwidth' setting -52b19e01249.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw() -89bc9455549.1.1258: regexp: max \U and \%U value is limited by INT_MAX (#33156) -431c0377099.1.1260: Hang when filtering buffer with NUL bytes (#33192) -e4f37481ff9.1.1261: No test for 'pummaxwidth' non-truncated items (#33193) -b64c2d763e9.1.1262: heap-buffer-overflow with narrow 'pummaxwidth' value -76cbe9c8f89.1.1263: string length wrong in get_last_inserted_save() (#33194) -8a40213eb39.1.1265: tests: no tests for typing normal char during completion (#33239) -e5ddf7ae7d9.1.1266: MS-Windows: type conversion warnings (#33264) -5cdfa3324f9.1.1268: filetype: dax files are not recognized -8cf413e4509.1.1269: completion: compl_shown_match is updated when starting keyword completion -4983fa45fc9.1.1271: filetype: Power Query files are not recognized -b01921cb559.1.1272: completion: in keyword completion Ctrl_P cannot go back after Ctrl_N -e8785c2e949.1.1276: inline word diff treats multibyte chars as word char (#33323) -00eff4b1969.1.1283: quickfix stack is limited to 10 items -1c723b2e6f9.1.1284: not possible to configure pum truncation char -8af9f8ab5e9.1.1286: filetype: help files not detected when 'iskeyword' includes ":" (#33377) -454abde1aa9.1.1287: quickfix code can be further improved -c73a8275649.1.1288: Using wrong window in ll_resize_stack() (#33397) -51a967d58a9.1.1289: tests: no test for matchparen plugin with WinScrolled event (#33411) -7c159874449.1.1290: tests: missing cleanup in test_filetype.vim (#33420) -aba33c72f09.1.1291: too many strlen() calls in buffer.c -f3b38b46eb9.1.1292: statusline not correctly evaluated -6e5671b00d9.1.1296: completion: incorrect truncation logic -aa47c8efa99.1.1297: Ctrl-D scrolling can get stuck #33453 -fd76646a959.1.1298: define_function() is too long (#33457) -287955cfb49.1.1299: filetype: mbsyncrc files are not recognized -9272dc95979.1.1300: wrong detection of -inf (#33474) -7651c432529.1.1301: completion: cannot configure completion functions with 'complete' -c249389adb9.1.1302: Coverity warns about using uninitialized value -d2d1b5e9449.1.1303: missing out-of-memory check in linematch.c (#33487) -7da1639a149.1.1304: filetype: some man files are not recognized -b0f97177d49.1.1305: completion menu active after switching windows/tabs (#33488) -54d60550989.1.1306: completion menu rendering can be improved -e3e8dfe99c9.1.1307: make syntax does not reliably detect different flavors (#33498) -1de276bbcd9.1.1308: completion: cannot order matches by distance to cursor (#33491) -afca5b564e9.1.1309: tests: no test for 'pummaxwidth' with non-truncated "kind" -f9f6dc42629.1.1310: completion: redundant check for preinsert effect (#33505) -b6acf6112b9.1.1311: completion: not possible to limit number of matches -95a255a5489.1.1312: tests: Test_backupskip() fails when HOME is defined (#33504) -857ff5cae99.1.1313: compile warning about uninitialized value -ccdb37b0759.1.1314: max allowed string width too small -b4c759716a9.1.1315: completion: issue with fuzzy completion and 'completefuzzycollect' (#33520) -e2e6c159d39.1.1317: noisy error when restoring folds from session fails -0251a255419.1.1318: tests: test_format fails -c67398d31b9.1.1319: Various typos in the code, issue with test_inst_complete.vim (#33527) -255bf6e5b19.1.1320: filetype: alsoft config files are not recognized -1b0dedb81c9.1.1321: filetype: MS ixx and mpp files are not recognized -dca8b3fede9.1.1322: small delete register cannot paste multi-line correctly (#33531) -328640aed09.1.1323: b:undo_ftplugin not executed when re-using buffer -da20804a6a9.1.1325: tests: not checking error numbers properly -d3cded796c9.1.1326: invalid cursor position after 'tagfunc' (#33556) -9fafdcb99c9.1.1327: filetype: nroff detection can be improved -98ec3fdf749.1.1328: too many strlen() calls in indent.c (#33563) -f3c4fec43f9.1.1329: cannot get information about command line completion -07d60e8f199.1.1331: Leaking memory with cmdcomplete() -63689deb459.1.1337: Undo corrupted with 'completeopt' "preinsert" when switching buffer (#33600) -3d126ec89f9.1.1338: Calling expand() interferes with cmdcomplete_info() -ac8ae1596c9.1.1340: cannot complete :filetype arguments (#33602) -fcabbc22839.1.1341: cannot define completion triggers -41179a6bc19.1.1342: Shebang filetype detection can be improved -4ddd31de149.1.1343: filetype: IPython files are not recognized -31e31273bc9.1.1344: double free in f_complete_match() (after v9.1.1341) -766cd01ff29.1.1346: missing out-of-memory check in textformat.c (#33639) -d75410b0919.1.1349: CmdlineLeavePre may trigger twice -c64cada12e9.1.1350: tests: typo in Test_CmdlineLeavePre_cabbr() -afcc4e95d59.1.1351: Return value of getcmdline() inconsistent in CmdlineLeavePre -d107375f0c9.1.1353: missing change from v9.1.1350 -65a4c8f3ca9.1.1357: Vim incorrectly escapes tags with "[" in a help buffer -074a6abd559.1.1359: filetype: GNU Radio config files are not recognized -da3eeb4b329.1.1360: filetype: GNU Radio companion files are not recognized -627c6482529.1.1361: [security]: possible use-after-free when closing a buffer (#33820) -73f2286f089.1.1370: CI Tests favor GTK2 over GTK3 -6b955af8759.1.1373: 'completeopt' checking logic can be simplified -15d31fe7a69.1.1374: completion: 'smartcase' not respected when filtering matches -05dab80d8d9.1.1375: [security]: possible heap UAF with quickfix dummy buffer -d95b0a53969.1.1376: quickfix dummy buffer may remain as dummy buffer -8605f5655b9.1.1378: sign without text overwrites number option (#33942) -ef5c5dc99b9.1.1380: 'eventignorewin' only checked for current buffer -4b3a9ac4139.1.1381: completion: cannot return to original text (#33966) -e4c4d672b59.1.1383: completion: 'isexpand' option does not handle space char correct (#33999) -e01f196e449.1.1384: still some problem with the new tutors filetype plugin -d539a952da9.1.1385: inefficient loop for 'nosmoothscroll' scrolling (#33992) -6b9665a5079.1.1387: memory leak when buflist_new() fails to reuse curbuf -f87b6230f19.1.1388: Scrolling one line too far with 'nosmoothscroll' page scrolling (#34023) -f2aec4bc059.1.1389: completion: still some issue when 'isexpand' contains a space (#34026) -2fda267faf9.1.1393: missing test for switching buffers and reusing curbuf -ec5f054dc99.1.1395: search_stat not reset when pattern differs in case (#34058) -99384fcd9c9.1.1396: 'grepformat' is a global option (#34060) -dc6885dc249.1.1398: completion: trunc does not follow Pmenu highlighting attributes (#34084) -153a9108979.1.1402: multi-byte mappings not properly stored in session file (#34131) -f791ae82e59.1.1404: wrong link to Chapter 2 in new-tutor -071dcab68f9.1.1405: tests: no test for mapping with special keys in session file (#34146) -bd01bd65649.1.1407: Can't use getpos('v') in OptionSet when using setbufvar() (#34177) -f2373a89d79.1.1408: not easily possible to complete from register content (#34198) -eeff6ca8ff9.1.1409: using f-flag in 'complete' conflicts with Neovim -2411f924a39.1.1410: out-of-bounds access with 'completefunc' -c4e52d604c9.1.1413: spurious CursorHold triggered in GUI on startup (#34195) -bec1449cc59.1.1416: completion limits not respected for fuzzy completions -6c4ddf607f9.1.1417: missing info about register completion in complete_info() (#34219) -2763d061009.1.1419: It is difficult to ignore all but some events (#34245) -0471cc75959.1.1420: tests: could need some more tests for shebang lines -f1f106be3d9.1.1421: tests: need a test for the new-style tutor.tutor (#34267) -9bfd0162dc9.1.1422: scheduling of complete function can be improved -525c02a89f9.1.1424: PMenu selection broken with multi-line selection and limits -eb108528049.1.1426: completion: register contents not completed -97ca92f9dd9.1.1428: completion: register completion needs cleanup -f89381e05c9.1.1431: Hit-Enter Prompt when loading session files -1c417b565e9.1.1432: GTK GUI: Buffer menu does not handle unicode correctly (#34313) -6171ab7f4e9.1.1433: Unnecessary :if when writing session -552983515f9.1.1435: completion: various flaws in fuzzy completion (#34335) -2b79d9ba1a9.1.1437: MS-Windows: internal compile error in uc_list() (#34379) -d2dad308989.1.1439: Last diff folds not merged (#34380) -bcfc22853a9.1.1441: completion: code can be improved -78e2f625169.1.1442: tests: Test_diff_fold_redraw() is insufficient (#34407) -7a58cf4b969.1.1443: potential buffer underflow in insertchar() (#34408) -72f4bb9ae89.1.1444: Unused assignment in set_fuzzy_score() -bcba067dc29.1.1445: negative matchfuzzy scores although there is a match (#34409) -2c80b05cbd9.1.1446: filetype: cuda-gdb config files are not recognized -ac772706cc9.1.1447: completion: crash when backspacing with fuzzy completion -50750438239.1.1449: typo in pum_display() -612f8e7c9e9.1.1450: Session has wrong arglist with :tcd and :arglocal (#34430) -1abcd9fe289.1.1452: completion: redundant check for completion flags (#34434) -3a2ac2300b9.1.1454: tests: no test for pum at line break position (#34462) -3e984cf02b9.1.1463: Integer overflow in getmarklist() after linewise operation (#34532) -ae0981070e9.1.1464: gv does not work in operator-pending mode (#34534) -5cf135f9a09.1.1466: filetype: not all lex files are recognized -fb8dba413f9.1.1467: too many strlen() calls (#34572) -487112d6749.1.1468: filetype: bright(er)script files are not recognized -8ed6f00ab09.1.1471: completion: inconsistent ordering with CTRL-P (#34571) -ee2fc31b369.1.1473: inconsistent range arg for :diffget/diffput (#34588) -534ec8d4479.1.1475: completion: regression when "nearest" in 'completeopt' (#34607) -7f3249fa0d9.1.1476: missing out-of-memory checks in cmdexpand.c (#34624) -7138cdaef89.1.1477: no easy way to deduplicate text -11f8e8eb639.1.1478: Unused assignment in ex_uniq() -a0f3fdba589.1.1479: regression when displaying localized percentage position -3bf27b2c749.1.1481: gcc complains about uninitialized variable -0b91e9f83b9.1.1482: scrolling with 'splitkeep' and line() (#34670) -a565774bfc9.1.1483: not possible to translation position in buffer (#37099) -504327020d9.1.1484: tests: Turkish locale tests fails on Mac -dd707246fd9.1.1490: 'wildchar' does not work in search contexts -ee717447dd9.1.1491: missing out-of-memory checks in cmdexpand.c -9a44bbd5749.1.1493: manually comparing positions on buffer -66f02ee1fe9.1.1498: completion: 'complete' funcs behave different to 'omnifunc' (#34718) -da42f99eb49.1.1501: filetype: flix files are not recognized -18cfbf8fb29.1.1502: filetype: quickbms files are not recognized -0a14ac32619.1.1503: filetype: haxe files are not recognized -fc1be07d289.1.1504: filetype: numbat files are not recognized -6ebcb4a4d69.1.1505: not possible to return completion type for :ex command -eef62e815d9.1.1506: tests: missing cleanup in Test_search_cmdline_incsearch_highlight() (#34748) -bb75610d999.1.1507: symlinks are resolved on :cd commands (#34758) -c48dea20f59.1.1508: string manipulation can be improved in cmdexpand.c (#34755) -9c04eb02ad9.1.1509: patch 9.1.1505 was not good -46727a7feb9.1.1510: Search completion may use invalid memory -11e967d5af9.1.1511: tests: two edit tests change v:testing from 1 to 0 -85e6feedb09.1.1512: completion: can only complete from keyword characters (#34798) -cf5506f0fd9.1.1516: tests: no test that 'incsearch' is updated after search completion (#34808) -3177841bdf9.1.1517: filetype: autopkgtest files are not recognized -6fd2a3040f9.1.1518: getcompletiontype() may crash (#34819) -842ca1fd5c9.1.1519: tests: Test_termdebug_decimal_breakpoints() may fail -27daeb0d689.1.1520: completion: search completion doesn't handle 'smartcase' well (#34840) -c3c8d252939.1.1521: completion: pum does not reset scroll pos on reopen with 'noselect' (#34836) -ef0ec7edac9.1.1526: completion: search completion match may differ in case -5fe310c5e69.1.1528: completion: crash with getcompletion() -db7c2acbc69.1.1532: termdebug: not enough ways to configure breakpoints (#34851) -00f8f94d5b9.1.1535: the maximum search count uses hard-coded value 99 (#34873) -d4074b812d9.1.1538: tests: string options in gen_opt_test.vim not fully sorted (#34891) -f487ae90cf9.1.1539: completion: messages don't respect 'shm' setting (#34923) -7631302ad69.1.1544: :retab cannot be limited to indentation only (#34939) -4195b82ec99.1.1548: filetype: OpenFGA files are not recognized -8bccd079729.1.1549: filetype: pkl files are not recognized -8964ad45da9.1.1550: defaults: 'showcmd' is not enabled in non-compatible mode on Unix -5cfdd4d8b99.1.1551: [security]: path traversal issue in zip.vim (#34951) -77c6cae25b9.1.1552: [security]: path traversal issue in tar.vim -436ae1d23e9.1.1554: crash when omni-completion opens command-line window -fcec1610e79.1.1555: completion: repeated insertion of leader (#34962) -e6ce067f029.1.1556: string handling in cmdexpand.c can be improved (#34966) -4f0ab9877b9.1.1557: not possible to anchor specific lines in diff mode (#34967) -be358643189.1.1559: tests: Test_popup_complete_info_01() fails when run alone -9d1333a3859.1.1563: completion: ruler may disappear (#34977) -b91613f42c9.1.1567: crash when using inline diff mode (#35005) -0f9b5dd0b49.1.1570: Copilot suggested some improvements in cmdexpand.c (#35006) -bbc368dfce9.1.1571: CmdlineChanged triggered to often -b6b793634a9.1.1572: expanding $var does not escape whitespace for 'path' (#35010) -22d1fb8c019.1.1573: Memory leak when pressing Ctrl-D in cmdline mode -9377db25459.1.1576: cannot easily trigger wildcard expansion (#35022) -f7af0cff359.1.1590: cannot perform autocompletion (#35141) -e40199c6c69.1.1594: completion: search completion throws errors (#35198) -5aaee7d2af9.1.1596: tests: Test_search_wildmenu_iminsert() depends on help file (#35210) -1f7ab259159.1.1598: filetype: waybar config file is not recognized -53ac2ad20a9.1.1599: :bnext doesn't go to unlisted help buffers (#35216) -52c25190959.1.1600: using diff anchors with hidden buffers fails silently (#35218) -7230296bdb9.1.1601: Patch v8.1.0425 was wrong -62f2b10db39.1.1602: filetype: requirements-*.txt files are not recognized -b1e35cbd7b9.1.1603: completion: cannot use autoloaded funcs in 'complete' F{func} -36361d6e4a9.1.1604: completion: incsearch highlight might be lost (#35236) -798cb0f19a9.1.1605: cannot specify scope for chdir() (#35239) -e3913c0fc29.1.1606: filetype: a few more files are not recognized (#35268) -e7dfbf13439.1.1607: :apple command detected as :append (#35237) -fe42c81f2e9.1.1608: No command-line completion for :unsilent {command} -5f23aaba009.1.1609: complete: Heap-buffer overflow with complete function -1969f685af9.1.1610: completion: hang or E684 when 'tagfunc' calls complete() (#35243) -77500c5ad59.1.1611: possible undefined behaviour in mb_decompose() (#35275) -1eca030fb29.1.1612: Ctrl-G/Ctrl-T do not ignore the end search delimiter -9e8d551b1e9.1.1613: tests: test_search leaves a few swapfiles behind -f79430e2ce9.1.1615: diff format erroneously detected (#35276) -f0d83419849.1.1618: completion: incorrect selected index returned from complete_info() (#35284) -dae79f2b679.1.1619: Incorrect E535 error message (#35285) -47e3aecb789.1.1620: filetype: composer.lock and symfony.lock files not recognized (#35291) -dd306bd48a9.1.1621: flicker in popup menu during cmdline autocompletion -9d85f086d99.1.1622: Patch v9.1.1432 causes performance regressions (#35288) -013af17ed99.1.1623: Buffer menu does not handle unicode names correctly (#35353) -50ceac40549.1.1625: Autocompletion slow with include- and tag-completion (#35318) -35be59cc7b9.1.1626: cindent: does not handle compound literals (#35319) -869000e7ce9.1.1627: fuzzy matching can be improved -2619a749a59.1.1628: fuzzy.c has a few issues -e38e65b86c9.1.1630: tests: fuzzy bufname completion test doesn't match successfully -7afcfb6c9a9.1.1632: memory leak in fuzzy.c -8d154e59279.1.1633: Search pattern shown incorrectly with negative offset (#35337) -4019d3050d9.1.1638: completion: not possible to delay the autcompletion -577f9fa1be9.1.1640: Unicode has deprecated some code-points (#35358) -37119ad0d29.1.1645: fuzzy.c can be further improved (#35371) -43bf0450059.1.1646: MS-Windows: completion cannot handle implicit drive letters -ba25f3e4d49.1.1647: filetype: Cangjie files are not recognized -3e57c5216f9.1.1648: MS-Windows: some style issues with patch v9.1.1646 -25bc41847e9.1.1649: attrs allocation and fuzzy growarray could leak (#35383) -6ef996a0829.1.1657: Autocompletion adds delay -b9699d57019.1.1665: Outdated comment in eval.c (#35436) -639f9f4cda9.1.1667: Another outdated comment in eval.c (#35438) -963ead29d99.1.1670: completion: autocomplete breaks second completion -810a2349789.1.1672: completion: cannot add timeouts for 'cpt' sources (#35447) -3b5337ab6c9.1.1676: completion: long line shown twice -29f30ad91c9.1.1679: unclear what key causes CmdlineLeave autocommand (#35677) -523371b0449.1.1681: tests: no test for actually moving cursor with 'acl' (#35452) -821bfc02fb9.1.1685: Missing changes from PR 18068 (#35482) -dab31a36379.1.1687: filetype: autoconf filetype not always correct -4263ec21c29.1.1688: potential buffer overrun in bufwrite.c (#35497) -c7419278839.1.1689: CmdlineChanged not triggered by <Del> (#35496) -b116ed7b129.1.1690: Missing recursion guard in dos/unix_expandpath() (#35499) -8a1afac6539.1.1693: tests: test_filetype fails in shadow dir -117b1293789.1.1694: filetype: Buck eXtension Lang files are not recognized (#35504) -3586e047e69.1.1695: Need more Vim script specific tests (#35500) -61712cbc3a9.1.1697: tests: no test for aclocal.m4 -2ac00f13509.1.1698: Some error numbers are not documented (#35522) -24020ef2dd9.1.1700: Multiline ignorecase specific pattern does not match with 'ignorecase' (#35520) -c9613614069.1.1701: tests: failure on CI with GUI and ASAN in test_edit.res -a3b11599499.1.1702: tests: test_edit still fails on CI -c333d646639.1.1709: filetype: kyaml files are not recognized -68a2e0ef789.1.1713: filetype: fvwm2m4 files are no longer detected -1359578abb9.1.1714: completion: wildmode=longest:full selects wrong item -8fc1db043a9.1.1717: filetype: AWS cli alias file is not recognized #35581 -06df3376179.1.1718: filetype: kubectl config file is not recognized #35583 -c4c69c50129.1.1724: Compiler warning about ununitialized variable in ex_docmd. (#35595) -17da1ad8f49.1.1730: filetype: vivado journal/log files are not recognized (#35613) -0bf4b7898c9.1.1731: Not using const qualifier for opchars (#35634) -0bafbe872b9.1.1732: filetype: .inc file detection can be improved (#35635) -51af2797c29.1.1734: Memory leak when allocating match fails (#35646) -f2bda1effc9.1.1737: Patch v9.1.1714 introduce a regression for wildmenu -b51eba92739.1.1738: cmdline-autocompletion breaks history navigation -d784ed70139.1.1739: Matches may be listed twice with wildmode=longest,list -18f24b85c39.1.1740: Memory leak with wildmode=longest,full and wildoptions=pum -eb19206e039.1.1742: complete: preinsert does not work well with 'autocomplete' (#35692) -223f9622df9.1.1744: tests: Test_skip_wildtrigger_hist_navigation() may fail -f6ed46c2a79.1.1747: completion: redo (.) broken with preinsert and autocompletion (#35698) -5a7586a1099.1.1750: completion: preinserted text highlighed using ComplMatchIns -e084a990409.1.1751: potential buffer-overflow in find_pattern_in_path() (#35705) -aa33ea86e19.1.1752: tests: need another test for v9.1.1750 behaviour -cf9b7a37cc9.1.1753: defaults: 'diffopt' option value can be improved (#35727) -ae588c183f9.1.1754: :helptags doesn't skip examples with syntax -7b8b9d270f9.1.1758: Diff mode crashes when adding text property in autocommand (#35760) -61d7d983d69.1.1761: 'ruler' is set in defaults.vim -051b8b88c89.1.1762: completion: selected item not cleared on <BS> with 'ac' -114336ac1d9.1.1763: filetype: kitty config files are not recognized -e7ff1327089.1.1764: filetype: CODEOWNERS file not recognized (#35789) -95267b664c9.1.1769: completion: "preinsert" insert wrong word with 'smartcase' and 'autocomplete' (#35834) -0763a85f439.1.1771: complete: some redraw issues with 'autocomplete' -e2166661d49.1.1772: completion: inconsistent selection of first item with 'autocomplete' (#35835) -c9f62674029.1.1773: Crash in BufLeave after BufUnload closes other windows (#35830) -39a21d749d9.1.1774: cannot calculate sha256 of a Blob -e3f15d54249.1.1775: filetype: Mamba configuration files are not recognized #35829 -f91d4164039.1.1776: completion: "adding" expansion doesn't work with cfc=keyword (#35850) -d3bd1fba6a9.1.1777: Mouse click to open fold doesn't work with utf-8 "foldclose" chars (#35851) -a5955e5cc59.1.1778: sha256() treats empty blob and null blob differently -a70997442e9.1.1779: completion: 'autocomplete' cannot be enabled per buffer (#35853) -e887602eb59.1.1780: mbyte contains overlapping list of utf_classes table (#35869) -0f01cc85bd9.1.1781: some functions could be defined static -7cdf3bb68a9.1.1783: ins_compl_leader() too far away from ins_compl_leader_len() -0c23b863f49.1.1787: filetype: not all Sway config files are recognized -d9fa4956089.1.1790: completion: Enter does not insert match with "noinsert" (#35917) -7b9c063d119.1.1797: completion: autocompletion can be improved -2aab242a019.1.1798: Wrong display with 'sms' and long wrapped virt text at EOL (#35930) -35fc4fda999.1.1799: completion: crash with autcompletion (#35963) -f30a33858f9.1.1800: completion: strange behaviour with 'ac' completeopt=longest,preinsert -0fa0717d4e9.1.1802: 'nowrap' in a modeline may hide malicious code (#35946) -ff564237d29.1.1807: :set doesn't clear local insecure flag like :setlocal does -42f1864b629.1.1808: Option insecure flags not copied when splitting window -756e55dc499.1.1810: completion: "longest" doesn't work for manual completion with 'ac' -c881bc537e9.1.1817: popup: there are some position logic bugs (#36075) -df0b9e7a5d9.1.1818: possible crash when calculating topline in diff.c -b6b80824cc9.1.1819: Cannot configure the inner foldlevel indicator (#36010) -8151fc59cf9.1.1820: completion: some issues with 'acl' (#36007) -2c76a50e209.1.1821: filetype: Not all PKL files are recognized (#36008) -0fca343d649.1.1823: diff: w_topline may be invalidated (#36018) -94bd212dbc9.1.1824: tests: no test for displaying 'foldcolumn' with Unicode "foldinner" (#36019) -f8b50bf3b09.1.1825: completion: flicker when LSP server is slow (#36020) -fbaf48cb239.1.1827: completion: v9.1.1797 broke Ctrl-Y behaviour (#36040) -a4a88381789.1.1829: filetype: KerML and SysML files are not recognized (#36042) -7923e847ca9.1.1831: stray vseps in right-most 'winfixwidth' window -d9153d620a9.1.1833: completion: fuzzy candidates are not sorted (#36062) -e47529ab569.1.1834: MS-Windows: not possible to highlight the title bar -ba47cb7eda9.1.1836: 'culopt' "screenline" not redrawn with line("w0") and :retab -28355050a89.1.1839: Window may have wrong height if resized from another tabpage (#36093) -b1c41a332d9.1.1843: tests: Test_search_stat_option() may fail on slow systems (#36110) -92b834fc7a9.1.1849: CTRL-F and CTRL-B don't work in more prompt -83c7193c119.1.1850: completion: not triggered after i_Ctrl-W/i_Ctrl-U (#36156) -93d14737329.1.1853: Ctrl-F and Ctrl-B at more prompt not working with key protocol -d78215f6a29.1.1854: unnecessary code in optionstr.c (#36170) -aeeadddac49.1.1858: v:register not reset after Visual mode command (#36215) -a08aa77e409.1.1859: completion: whitespace not cleared with 'ai' (#36218) -68a54bfda69.1.1868: v:register is wrong in v_: command (#36238) -737dd83d1f9.1.1869: tests: test failures with Python 3.14 and test_python3 (#36310) -fb6fd17f269.1.1870: :Tutor may not work as expected (#36343) -5db35449919.1.1871: Wrong 'showcmd' in the cmdwin (#36320) -2407833ba19.1.1872: Cmdline history not updated when mapping <Up> and <CR> (#36334) -070f4d3da09.1.1875: username parsing bug in netrw plugin (#36348) -155efabb159.1.1876: pre-inserted text not exposed in complete_info() (#36342) -f0cf4886989.1.1877: cindent: wrong indentation after an array declaration (#36340) -35d04394aa9.1.1878: filetype: Soy files are not recognized (#36346) -21ea0537e09.1.1880: Allocation error with complete_info() (#36360) -c2781d3db39.1.1883: Wrong display with 'smoothscroll' with -diff (#36372) -3fb56ff8af9.1.1885: Wrong restored cursor pos when re-entering buffer after changes -3c146468969.1.1886: filetype: Android aconfig files are not recognized (#36374) -c75f5478399.1.1888: Wrong display with cpo+=$, matchparen and wrapped line (#36385) -1fddd74da79.1.1889: filetype: not all AppleScript files are recognized (#36411) -d4106bade79.1.1890: %P in 'statusline' doesn't behave as documented -b92b95e2c29.1.1891: g<End> does not move to last non-blank in visual mode (#36354) -003b429a869.1.1892: Not possible to know once Vim is done with sourcing vimrc (#36429) -d847548a1c9.1.1893: ICCF charity will dissolve (#36427) -97cb0d55719.1.1906: filetype: not all Ruby files are recognized (#36526) -02760a30ce9.1.1908: tests: test_crash.vim times out in CI ASAN builds -756043760b9.1.1909: filetype: .mom files recognized as nroff files (#36543) -16e9c21d8d9.1.1913: Error message with :unlet! and non-existing dictionary item (#36549) -dc682bcbcf9.1.1915: :breaklist accepts unprocessed arguments. (#36561) -8d72d1ceb49.1.1916: WinEnter autocommand confuses Vim when closing tabpage (#36567) -ef0c5220779.1.1918: completion: crash with fuzzy completion (#36578) -a8b9660ca39.1.1920: tests: not enough testing for wildtrigger() pum redrawing (#36642) -1eec08d1a29.1.1922: Wrong virtcol('$') with virtual text at EOL (#36643) -30a09bdd7e9.1.1923: wrong error when assigning to read-only register (#36644) -4dc337cda89.1.1924: 'commentstring' requires +folding feature (#36645) -a212fc77459.1.1929: completion: spell completion wrong with fuzzy (#36709) -812186e2dc9.1.1930: completion: 'completefuzzycollect' is too obscure -19d5b289779.1.1931: completion: wrong item selected with fuzzy and noinsert (#36725) -2c6469aca49.1.1933: completion: complete_match() is not useful (#36726) -da6edcb91b9.1.1934: filetype: not all starlark files are recognized (#36743) -8310f205269.1.1935: filetype: not all Erlang files are recognized -3f8e51cee79.1.1936: filetype: Erlang lexical files are not recognized -3c605982399.1.1937: tests: Test_matchfuzzy_initialized() fails -c9f63d13b69.1.1938: tests: excessive wait in Test_matchfuzzy_initialized -d13e8f1a349.1.1939: tests: test_matchfuzzy() leaves swapfiles behind -7452a8a5689.1.1941: tests: Test_execute_register() leaves swapfile behind -b64e36cef09.1.1943: Memory leak with :breakadd expr -e8fdc7ef9a9.1.1944: getwininfo() does not return if statusline is visible (#36828) -c3c8a18af79.1.1945: tests: Test_getbufwintabinfo() leaves swapfiles behind -ac3e2ca6759.1.1947: [security]: Windows: Vim may execute commands from current directory -bfe007a1879.1.1948: Windows: Vim adds current directory to search path -69f4fd84aa9.1.1949: :stag does not use 'swichtbuf' option -132567c71f9.1.1950: tests: Test_tagjump.vim leaves swapfiles behind -c758423cf29.1.1951: tests: Test_windows_external_cmd_in_cwd() only run in huge builds -ffdc632ea19.1.1952: tests: need better tests for tf files -4450a454669.1.1954: Setting a byte in a blob, accepts values outside 0-255 -d6be2b33129.1.1957: filetype: bpftrace files are not recognized (#36838) -647f11e6ae9.1.1958: Wrong display with sign_unplace() and setline() in CursorMoved (#36851) -ff90032aa59.1.1961: :0tab behaves like :tab for :stag when 'swb' contains "newtab" -2f9f77cd729.1.1962: filetype: Erlang application resource files are not recognized (#36868) -3bc9a5b5d29.1.1963: diff: missing diff size limit for xdiff (#36877) -5235f3663f9.1.1964: Wrong display when using setline() at hit-enter prompt (#36878) -747cf30c379.1.1965: q can accidentally start recording at more prompt (#36879) -08d7744e139.1.1967: if_python: 64bit numbers truncated (#37245) -18642a63be9.1.1969: Wrong cursor position after formatting with long 'formatprg' (#36918) -2b02dfa0209.1.1970: visual end column returns wrong value after block edit (#36923) -e9da68effe9.1.1971: Crash when buffer gets deleted inside charconvert during save -384a039db79.1.1974: tests: missing cleanup in Test_bwipe_during_save() -f494ce77f19.1.1978: tests: Test_smoothscroll_number() may fail (#36965) -39852574969.1.1979: :helpclose allows range and counts (#36966) -f5e39560ff9.1.1980: filetype: N-Quads files are not recognized (#36967) -7a866e6b209.1.1981: tests: test suite may stop on error in gen_opt_test.vim (#36988) -60611691839.1.1983: Vim9: class_name definition can be improved -4cce77e5479.1.1984: terminal OSC52 support can be improved (#37543) -544bde3acc9.1.1987: assert_equal() prepends unnecessary ':' when typed -3264dfee759.1.1989: Vim intro screen shows register message -c172fd9f469.1.1991: :setlocal changes effective global 'omnifunc' (#37013) -2860d1e0189.1.1998: tests: not enough tests for :setlocal omnifunc (#37023) -f89558848b9.1.2001: cursor may end up in wrong window after :botright copen (#37056) -92910a8ab89.1.2007: filetype: bpftrace hashbang lines are not recognized -471be48d569.1.2008: filetype: hylo files are not recognized -49b1a6540f9.1.2009: tests: "Xm4" test directory may not be deleted -2a2c366a3e9.1.2016: cindent wrong indentation after do-while loop (#37087) -d7b882697b9.1.2017: getregionpos() depends on 'linebreak' setting (#37088) -e53accf8ec9.1.2019: inconsistent cursor encoding past EOL with ve=all -7b5276b3829.1.2020: tests: test_virtualedit.vim leaves swapfiles behind (#37115) -c11153b3209.1.2021: filetype: fluent files are not recognized (#37117) -6fa2ebec6b9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd -1e44a001ec9.1.2024: 'fsync' option cannot be set per buffer (#37129) -f4eabcca4f9.1.2026: tests: patch 9.1.2019 not tested properly -7f1d7271d59.1.2027: filetype: bicep filetype used for 2 bicep file types (#37130) -444e1ffe3e9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars (#37133) -e916f032779.1.2030: inefficient use of ga_concat() (#37151) -8e80e544789.1.2034: filetype: Fennel fnml files are not recognized (#37176) -bd10f781b89.1.2035: filetype: filetype: Fennel fnlm files are not recognized (#37178) -acc35544399.1.2037: undo: cursor position not correctly restored (#37195) -01177619bc9.1.2038: tests: test_marks.vim leaves swapfiles behind -6deb1c1bf39.1.2040: :tlunmenu incorrectly accepts a range (#37206) -b7efbbec519.1.2041: tests: test_menu.vim leaves swapfiles behind -ca731d2e559.1.2042: filetype: systemd quadlet files are not recognized (#37208) -067b5743f59.1.2043: filetype: kos files are not reconized -6c3502d85a9.1.2050: tests: Test_cd_completion may fail -0dfac689289.1.2051: tests: fix Test_cd_completion fails in Appveyor (#37266) -97bfc0c99b9.1.2055: Division by zero in :file after failing to wipe buffer (#37268) -661455cc479.1.2056: tests: inconsistent indent and line breaking in Test_maparg() (#37269) -5f871007d79.1.2058: b_locked_split is not checked for :sbuffer -b0756562799.1.2059: filetype: Nickel files are not recognized -a6df0db11f9.1.2060: filetype: Rasi include files are not recognized -0bbbe236aa9.1.2061: filetype: Koka files are not recognized -a84bf386d29.1.2062: filetype: djot files are not recognized -885426f1bf9.1.2064: completion: segfault during file name completion (#37316) -681d0065499.1.2066: :wqall! doesn't close a terminal like :qall! does (#37314) -e002e4d7fc9.1.2068: :bd/bw may try to switch to a closing buffer -aa959f7b859.1.2069: Search wrap indicator not shown w/out 'shm-S' (#37332) -930817f1009.1.2070: completion: autocomplete breaks with large dict (#37331) -562bc0b3719.1.2071: tests: test_ins_complete.vim leaves swapfiles behind -2ae56fbb399.1.2075: tests: wrong change to test_ins_complete.vim -e790c87cd89.1.2078: A few more typos in various files (#37368) -aed1f8c3779.1.2079: use-after-free with 'qftf' wiping buffer (#37364) -40fb2818b69.1.2085: Use-after-free in winframe_remove() -ba1d50fdc39.1.2086: Memory leak when skipping invalid literal dict -eb5a7cc0dd9.1.2087: Crash when using :tabonly in BufUnload -03494ad0489.1.2088: Redundant NULL checks in find_pattern_in_path() (#37432) -960cba7b3b9.1.2090: Last buffer not freed with EXITFREE -30bcb253419.1.2093: heap-use-after-free when wiping buffer in TabClosedPre -c52f6eb49a9.1.2094: filetype: tiger files are not recognized -b4e602dde59.1.2095: :wqall! doesn't quit when using :quit in BufWritePost -7470e632609.1.2097: TabClosedPre may be triggered twice for the same tab page -64057d266c9.1.2098: Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A (#37466) -87276db7f99.1.2100: filetype: tiltfiles are not recognized (#37477) -b3242af1879.1.2102: foldtext not reversed and cut off in 'rightleft' mode -cd624f24f69.1.2103: tests: test_fold.vim leaves swapfiles behind -e0b724de099.1.2105: tests: not enough tests for using plain_vgetc() (#37521) -f10a1dcf4d9.1.2107: :normal may change cmdline history (#37523) -5a354db7fa9.1.2108: tests: Test_foldtextresult_rightleft() does not restore 'columns' -798ee642879.1.2109: filetype: NetLinx fires are not recognized -d982c008469.1.2110: filetype: skhd files are not recognized -a8a097d1789.1.2112: long statusline may crash if using singlebyte encoding (#37605) -ebfbe4db499.1.2116: crash when using 'tagfunc' (#37627) -47ce93ad6d9.1.2118: 'cursorline' missing after :diffput to empty buf (#37628) -5e1a3df5ae9.1.2119: tests: Test_language_cmd fails on OpenBSD (#37503) -270c7b46af9.1.2123: using NOT with a float returns a float in legacy script (#37639) -fede5686929.1.2128: Heap use after free in buf_check_timestamp() -bdd886622d9.1.2130: Page scrolling in Insert mode beeps (#37710) -db133879b29.1.2132: [security]: buffer-overflow in 'helpfile' option handling (#37735) -15061d322d9.1.2133: Another case of buffer overflow with 'helpfile' (#37746) -6dd0a7d60a9.1.2135: tests: tar plugin does not consider 'nowrapscan' (#37752) -e7045299099.1.2136: :tab sbuffer may close old tabpage (#37765) -ed8fbd2e299.1.2138: win_execute() and 'autochdir' can corrupt buffer name (#37767) -39d8a9c3539.1.2146: filetype: cel files are not recognized (#37834) -ff142a7a749.1.2147: Compile warning in strings.c (#37842) -8605b0b7a99.1.{1755,1759} (#35787) -7d8653575f9.2.0004: Changing hidden prompt buffer cancels :startinsert/:stopinsert (#37881) -b59eba3ada9.2.0007: cindent: recognizing labels within commented lines -77d396caf49.2.0009: tests: test_cindent are not ordered -ac84a3f3b69.2.0020: Wrong shortened buffer after :cd with duplicate slashes (#37955) -134782b99e9.2.0023: fix integer overflow in ml_append_int() for long lines -fadf5fc8db9.2.0024: Reading files with very long lines crashes with a segfault -e98a6979ee9.2.0025: filetype: cshtml incorrectly recognized (#37957) -c78e2768819.2.0027: filetype: yara files are not recognized -785ac9f2289.2.0028: matchadd() conceal may use unrelated syntax cchar (#37974) -08b8fe5ab39.2.0030: completion: non-prefix matches shown when leader is NULL -b3a3028fd99.2.0031: Inefficient use of ga_concat() -6e8a1a89889.2.0032: completion: hang with line completion and fuzzy -93a8acb1b89.2.0033: filetype: sh filetype used for env files -30d9970cd79.2.0036: completion: thesaurus completion incorrect with "longest/fuzzy" (#37996) -3f4ef487da9.2.0040: completion: preinsert wrong with register completion (#38003) -b775c722dd9.2.0041: Not always using GA_CONCAT_LITERAL -327dcb89709.2.0046: filetype: neon files are not recoginzed (#38049) -a89b9750ee9.2.0050: WM_SETFOCUS not handled immediately -1fe1b2525f9.2.0054: eval_addblob() is inefficient (#38067) -9288357d599.2.0055: memory leak in ExpandFromContext() (#38066) -7852993f499.2.0061: Not possible to know when a session will be loaded (#38071) -cd4c7850d09.2.0070: tests: various tests leave swapfiles around -95ddabdb2b9.2.0074: [security]: Crash with overlong emacs tag file -e85fc92a6b9.2.0075: [security]: Buffer underflow with emacs tag file -7e8bdd348c9.2.0077: [security]: Crash when recovering a corrupted swap file (#38104) -a416494e649.2.0078: [security]: stack-buffer-overflow in build_stl_str_hl() (#38102) -563f9ef7999.2.0081: Failed "z=" does not reset 'nospell' setting (#38109) -3e810722939.2.0088: cannot display tabs for indentation -518aa461589.2.0090: "leadtab" behavior inconsistent on line with only TABs -0cfeedb0889.2.0091: missing out-of-memory checks in quickfix.c -0676503ab59.2.0097: Memory leak in qf_push_dir() -6ddcc84a6c9.2.0102: 'listchars' "leadtab" not used in :list (#38142) -a22c699ecb9.2.0106: memory leak in expand_findfunc() -843bc1aa8d9.2.0108: byteidx_common() and f_utf16idx() call ptr2len() twice (#38159) -f1e65bde029.2.0120: tests: test_normal fails -9a9b9c581c9.2.0121: patch memory leak in list_extend_func() in list.c (#38205) -f21c56da849.2.0125: tests: test_textformat.vim leaves swapfiles behind -9734a6ce479.2.0130: missing range flags for the :tab command (#38216) -c1dcb8dac29.2.0131: potential buffer overflow in regdump() (#38217) -3a7ade847f9.2.0132: tests: Test_recover_corrupted_swap_file1 fails on be systems (#38238) -e5667b9c159.2.0137: [security]: crash with composing char in collection range (#38261) -f847aa62089.2.0140: file reading performance can be improved (#38266) -6dd634b0259.2.0143: termdebug: no support for thread and condition in :Break -878c9739e19.2.0147: blob: concatenation can be improved (#38276) -d3bca3b7fa9.2.0152: concatenating strings is slow (#38286) -f58d24040a9.2.0155: filetype: ObjectScript are not recognized (#38288) -80684a418b9.2.0159: Crash when reading quickfix line -1aaa8e8e3a9.2.0162: tests: unnecessary CheckRunVimInTerminal in test_quickfix -0082cd31349.2.0165: tests: perleval fails in the sandbox -9ab6c607cc9.2.0180: possible crash with winminheight=0 (#38335) -33b357d01f9.2.0182: autocmds may leave windows with w_locked set #38332 -e2c3106b859.2.0201: filetype: Wireguard config files not recognized -f577e055229.2.0202: [security]: command injection via newline in glob() (#38385) -a18d51a9589.2.0204: filetype: cps files are not recognized -d36e7787c19.2.0209: freeze during wildmenu completion (#38386) -0655a359ae9.2.0217: filetype: cto files are not recognized (#38400) -a969e922499.2.0219: call stack can be corrupted (#38406) -11b9ec38d29.2.0222: "zb" scrolls incorrectly with cursor on fold (#38423) -e51f217be79.2.0223: Option handling for key:value suboptions is limited (#38426) -fae782557c9.2.0226: No 'incsearch' highlighting support for :uniq (#38425) -416e5429929.2.0233: Compiler warning in strings.c (#38450) -1de1c082109.2.0235: filetype: wks files are not recognized (#38451) -6dfcb2b7849.2.0237: filetype: ObjectScript routines are not recognized (#38479) -f806c773919.2.0239: signcolumn may cause flicker (#38477) -5a7df03b429.2.0265: unnecessary restrictions for defining dictionary function names (#38524) -ba89354a459.2.0270: test: trailing spaces used in tests -965f54cf5096dab9c: check.vim: Further improve po message checks -5a83f2343098a0cbf: patch 9.1.1971: crash with invalid positional argument 0 in printf() (#36919) -95b6215f0ac858382: Problem: Commit 6f585d breaks CI -1244fe157fecf90b9: CI: make dependabot monitor `.github/actions` directory (#38383) -96e9041a78partial:8.1.1939: code for handling v: variables in generic eval file (#35968) -2a267d1cbfpartial:8.2.1328: no space allowed before comma in list -e31cfc5eacpartial:8.2.2400: Vim9: compiled functions are not profiled -df65f87fd7partial:8.2.3149: some plugins have a problem with the error check -00bec1fd90partial:8f7256a (#34368) -50efe61c3cpartial:9.0.0323: using common name in tests leads to flaky tests -5671b61327partial:9.0.0877: using freed memory with :comclear while listing commands -92596a37e7partial:9.0.0907: restoring window after WinScrolled may fail -62de643b89partial:9.0.1570: some tests are slow -dff515205cpartial:9.1.0613: tests: termdebug test may fail and leave file around -3f62fe4bd8partial:9.1.0973: too many strlen() calls in fileio.c -42640c62d1partial:9.1.1004: tests: a few termdebug tests are flaky -dfd3ac6f48partial:9.1.1110: Vim tests are slow and flaky -5c4d9261a4partial:9.1.1110: Vim tests are slow and flaky -ab5c15610fpartial:9.1.1371: style: indentation and brace issues in insexpand.c -a16064ff29partial:9.1.1639: completion: popup may be misplaced -cbec4603a0partial:9.1.1668: items() does not work for Blobs -4edeaaa6e2partial:9.1.1708: tests: various tests can be improved (#35548) -7468db5187partial:9.1.1847: No cmdline completion for :echoconsole and :echowindow (#36157) -c70e8ef9b7partial:9.1.1887: string handling in strings.c can be improved -5370b7a2e0partial:9.1.1955: sort() does not handle large numbers correctly (#36840) -147190d8e7partial:9.1.2044: Inefficient use of ga_concat() (#37209) -72eb9fe87cpartial:9.1.2137: test: Update tests for OpenBSD (#37766) -18c5f06c9fpartial:9.2.0068: Inefficient use of list_append_string() (#38083) -b23d00ce99partial:9.2.0096: has() function is slow due to linear feature scan (#38135) -29fa072b34partial:9.2.0126: String handling can be improved (#38214) -4c48f19e51partial:9.2.0193: using copy_option_part() can be improved (#38369)
Neovim is a project that seeks to aggressively refactor Vim in order to:
- Simplify maintenance and encourage contributions
- Split the work between multiple developers
- Enable advanced UIs without modifications to the core
- Maximize extensibility
See the Introduction wiki page and Roadmap for more information.
Features
- Modern GUIs
- API access from any language including C/C++, C#, Clojure, D, Elixir, Go, Haskell, Java/Kotlin, JavaScript/Node.js, Julia, Lisp, Lua, Perl, Python, Racket, Ruby, Rust
- Embedded, scriptable terminal emulator
- Asynchronous job control
- Shared data (shada) among multiple editor instances
- XDG base directories support
- Compatible with most Vim plugins, including Ruby and Python plugins
See :help nvim-features for the full list, and :help news for noteworthy changes in the latest version!
Install from package
Pre-built packages for Windows, macOS, and Linux are found on the Releases page.
Managed packages are in Homebrew, Debian, Ubuntu, Fedora, Arch Linux, Void Linux, Gentoo, and more!
Install from source
See BUILD.md and supported platforms for details.
The build is CMake-based, but a Makefile is provided as a convenience. After installing the dependencies, run the following command.
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
To install to a non-default location:
make CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_INSTALL_PREFIX=/full/path/
make install
CMake hints for inspecting the build:
cmake --build build --target helplists all build targets.build/CMakeCache.txt(orcmake -LAH build/) contains the resolved values of all CMake variables.build/compile_commands.jsonshows the full compiler invocations for each translation unit.
Transitioning from Vim
See :help nvim-from-vim for instructions.
Project layout
├─ cmake/ CMake utils
├─ cmake.config/ CMake defines
├─ cmake.deps/ subproject to fetch and build dependencies (optional)
├─ runtime/ plugins and docs
├─ src/nvim/ application source code (see src/nvim/README.md)
│ ├─ api/ API subsystem
│ ├─ eval/ Vimscript subsystem
│ ├─ event/ event-loop subsystem
│ ├─ generators/ code generation (pre-compilation)
│ ├─ lib/ generic data structures
│ ├─ lua/ Lua subsystem
│ ├─ msgpack_rpc/ RPC subsystem
│ ├─ os/ low-level platform code
│ └─ tui/ built-in UI
└─ test/ tests (see test/README.md)
License
Neovim contributions since b17d96 are licensed under the
Apache 2.0 license, except for contributions copied from Vim (identified by the
vim-patch token). See LICENSE.txt for details.
