Skip to content

Instantly share code, notes, and snippets.

@dundargoc
Created May 1, 2024 22:07
Show Gist options
  • Save dundargoc/fcee4fef909543c17962f3cc40e35013 to your computer and use it in GitHub Desktop.
Save dundargoc/fcee4fef909543c17962f3cc40e35013 to your computer and use it in GitHub Desktop.

Changelog

All notable changes to this project will be documented in this file.

[unreleased]

Breaking

  • remove deprecated functions
  • remove neovim qt
  • remove vimballs (#22402)
  • rename "playground" => "dev" #23919
  • rewrite TOhtml in lua
  • api: change return type of nvim_win_text_height to Dict (#24365)
  • api: nvim_open_win: noautocmd blocks all autocmds #28192
  • events: trigger CursorMoved later on switching window (#23711)
  • ex_cmds: remove :behave
  • lsp: add vim.lsp.status, client.progress and promote LspProgressUpdate (#23958)
  • lsp: deprecate trim_empty_lines
  • lsp: move changetracking to separate file (#26577)
  • lsp: promote LspRequest to a full autocmd and enrich with additional data (#23694)
  • lsp: rename vim.lsp.get_active_clients to get_clients (#24113)
  • lsp: replace snippet parser by lpeg grammar
  • lsp: vim.lsp.inlay_hint.get(), enable(), is_enabled() #25512
  • lua: add stricter vim.tbl_islist() and rename old one to vim.tbl_isarray() (#16440)
  • mappings: remove #n as a notation for a function key (#17318)
  • options: graduate shortmess+=f flag
  • options: graduate some more shortmess flags
  • options: make OptionSet v: values use typval
  • options: remove compatible behaviours for vim 5.0 and earlier
  • options: unify set_option and set_string_option
  • startup: "nvim -l" message does not end with newline #24215
  • treesitter: incremental injection parsing
  • treesitter: new standard capture names
  • treesitter: remove deprecated legacy injection format
  • treesitter: remove duplicated diagnostic code (#24976)
  • vim.iter: remove vim.iter.map/filter/totable #26138
  • vim.iter: rename xxback() => rxx() #28503
  • vim.json: remove global options, "null", "array_mt" #24070
  • vim.ui: change open() to return pcall-like values #28502

Features

  • NVIM_APPNAME supports relative paths #25233
  • add .luarc.json (#24592)
  • add __call typing for vim.inspect()
  • add link in issue template to minimal config template
  • add vim.text module (#26069)
  • allow opting in to builtin clipboard providers (#28083)
  • generate types and docs for v variables
  • ignore swapfile for running Nvim processes #25336
  • improve return type annotations for vim.api.*
  • report "build" in vim.version() #23925
  • tostring(vim.version())
  • update unicode tables (#27317)
  • vim.version() returns a Version object
  • :source: source current ft=lua buffer as Lua code (#23802)
  • api: add forward and back mouse buttons
  • api: add nvim_tabpage_set_win (#27222)
  • api: add nvim_win_text_height (#24236)
  • api: allow floats to be opened in non-current tabpage (#28480)
  • api: allow open_win/win_set_buf in the cmdwin in some cases
  • api: allow win_close in cmdwin to close wins except previous
  • api: allow win_hide to close cmdwin or non-previous windows
  • api: make nvim_open_win support non-floating windows (#25550)
  • api: pass 0 to nvim_get_chan_info for current channel (#27321)
  • api: support abbreviations in nvim_set_keymap
  • api: support getting abbreviations (#26868)
  • builtin: improve types
  • clipboard: add OSC 52 clipboard support
  • clipboard: enable OSC 52 clipboard provider by default (#26064)
  • colorscheme: add semantic tokens modifiers to builtin color scheme
  • colorscheme: update treesitter groups
  • comment: add built-in commenting
  • complete: support f flag for complete buffer part
  • completion: support completing more string options
  • decoration: allow conceal_char to be a composing char
  • decoration_provider: log errors as error messages
  • defaults: add :Inspect to right-click menu (#28181)
  • defaults: enable 'termguicolors' by default when supported by terminal
  • defaults: improve :grep defaults #28545
  • defaults: map Q and @x to repeat in Visual mode (#26495)
  • defaults: set g:netrw_use_errorwindow = 0 #24179
  • defaults: treat "•" as a list item prefix #24623
  • defaults: use ripgrep (rg) for 'grepprg' if available
  • defaults: visual CTRL-R for LSP mappings #28537
  • diagnostic: add vim.diagnostic.count() (#26807)
  • diagnostic: add default mappings for diagnostics (#16230)
  • diagnostic: add support for many namespaces filtering in GetOpts (#28045)
  • diagnostic: enable(…, opts)
  • diagnostic: filter diagnostics by specific severities (#24736)
  • diagnostic: goto functions jump to highest severity (#28490)
  • diagnostic: is_enabled, enable(…, enable:boolean)
  • diagnostic: provide more control over virtual text display (#24724)
  • diagnostic: revert default behaviour of goto_next/prev()
  • diagnostic: specify diagnostic virtual text prefix as a function
  • diagnostics: support numhl and linehl for diagnostic signs
  • diff: grouping optimization for linematch algorithm
  • docs: generate builtin.txt (#24493)
  • docs: replace lua2dox.lua
  • eval: exists() function supports checking v:lua functions (#26485)
  • ex_cmds: no error on :lua with {range} and {code} (#27290)
  • ex_cmds: ranged :lua #27167
  • extmark: support proper multiline ranges
  • extmark: window scoped extmark
  • extmarks: add "undo_restore" flag to opt out of undo-restoring
  • extmarks: add 'invalidate' property to extmarks
  • extmarks: add sign name to extmark "details" array
  • extmarks: add virt_text_repeat_linebreak flag (#26625)
  • extmarks: subpriorities (relative to declaration order) (#27131)
  • extmarks: support hl_mode "combine" for inline virt_text (#24099)
  • float: add fclose command
  • float: implement footer
  • float: support toggle show float window
  • fold: transparent foldtext
  • folds: support virtual text format for 'foldtext' (#25209)
  • fs: add vim.fs.root (#28477)
  • fs: expose join_paths as vim.fs.joinpath (#23685)
  • gen_help_html: add anchors to help tags #25112
  • gen_help_html: ignore pi_netrw.txt errors
  • gen_help_html: non-default vimdoc.so parser
  • gen_lsp.lua: protocol.Methods #24504
  • gen_lsp.lua: sort by name, handle failure #24504
  • gen_lsp.lua: validate CLI args #26514
  • health: checkhealth buffer can show in a split window (#26714)
  • health: fold successful healthchecks #22866
  • health: list attached buffers in LSP report #23561
  • health: make :checkhealth support more split modifiers (#26731)
  • help: hide filename of "gO" outline using conceal #27547
  • highlight: Allow hyphens (-) in highlight group names (#24714)
  • highlight: add FloatFooter highlight group
  • highlight: tweak default color scheme
  • highlight: update default color scheme
  • issue_template: instruct not to include a package manager
  • iter: add Iter.take (#26525)
  • l10n: update Turkish translations #24246
  • l10n: update Ukrainian translations (#24882)
  • lsp: add actionable advice to lsp client quit error msg (#24510)
  • lsp: add fswatch watchfunc backend
  • lsp: add handlers for inlay hints (#23736)
  • lsp: add method filter to get_active_clients (#24319)
  • lsp: add more LSP defaults (#28500)
  • lsp: add opts paramater to vim.lsp.codelens.refresh
  • lsp: add original LSP Location as item's user_data in locations_to_items (#23743)
  • lsp: add snippet API (#25301)
  • lsp: add type annotations for lsp.util.locations_to_items (#26694)
  • lsp: add vim.lsp.buf.subtypes(), vim.lsp.buf.supertypes() (#28388)
  • lsp: deprecate severity_limit
  • lsp: enable workspace/didChangeWatchedFiles by default (#23190)
  • lsp: fallback to code-action command on resolve failure (#25464)
  • lsp: handle multiple clients in omnifunc (#24381)
  • lsp: implement textDocument/diagnostic (#24128)
  • lsp: improve control over placement of floating windows (#24494)
  • lsp: include positionEncodings in default client capabilities
  • lsp: initial support for dynamic capabilities (#23681)
  • lsp: inlay hints #23984
  • lsp: map K to hover by default #24331
  • lsp: more annotations
  • lsp: move inlay_hint() to vim.lsp (#24130)
  • lsp: opt-in to dynamicRegistration for inlay hints (#24102)
  • lsp: remove notify from vim.lsp.buf_detach_client (#25140)
  • lsp: report fswatch errors
  • lsp: set client offset_encoding if server supports positionEncoding
  • lsp: set kind in select call for codelens #23889
  • lsp: set workDoneToken in initialize request (#28182)
  • lsp: snippet parsing using lpeg
  • lsp: soft deprecate vim.lsp.for_each_buffer_client (#24104)
  • lsp: support completion itemDefaults
  • lsp: support connect via named pipes/unix domain sockets (#26032)
  • lsp: support for choice snippet nodes
  • lsp: use treesitter for stylize markdown
  • lua: add vim.system()
  • lua: add hl priority opts on yank (#23509)
  • lua: add meta file for vim submodules (#24525)
  • lua: add noref to deepcopy
  • lua: add ringbuffer (#22894)
  • lua: add vim.func._memoize
  • lua: add vim.iter (#23029)
  • lua: allow vim.F.if_nil to take multiple arguments (#22903)
  • lua: allow vim.wo to be double indexed (#20288)
  • lua: deprecate vim.tbl_add_reverse_lookup
  • lua: enable(enable:boolean, filter:table) #28374
  • lua: implement Iter:join() (#26416)
  • lua: more specific error messages for vim.api type checking
  • lua: pass keys before mapping to vim.on_key() callback (#28098)
  • lua: rename vim.loop -> vim.uv (#22846)
  • lua: specific error messages for type checking opts params
  • lua: typing for vim.fn.* (#24473)
  • lua: use callable table as iterator in vim.iter (#23957)
  • lua: use keyset type information
  • lua: vim.fs.normalize() resolves ".", ".." #28203
  • lua: vim.keycode (#22960)
  • lua: vim.region accepts getpos() arg (#22635)
  • lua: vim.tbl_contains supports general tables and predicates (#23040)
  • lua-types: types for vim.api.* (#24523)
  • man: allow opening pages in current window (#27861)
  • man: respect 'wrapmargin' when wrapping man pages (#24091)
  • meta: add types for vim.lpeg
  • msgpack-rpc: show actual request id in error message
  • msgpack_rpc: support out-of-order responses on msgpack-rpc
  • nvim_open_term: convert LF => CRLF (#26384)
  • quickfix: support -q - to read 'errorfile' from stdin (#27303)
  • remote: avoid --remote-ui infinite loop (#24465)
  • rpc: allow empty string key in msgpack => Vim conversion
  • runtime: highlight hl groups in syntax.txt (#25050)
  • scripts: add lsp_types.lua (#23750)
  • server: allow embed with listen (#25709)
  • shortmess: "q" flag fully hides recording message (#27415)
  • statuscolumn: re-evaluate for every screen line (#25885)
  • stdlib: add vim.base64 module (#25843)
  • tabline: middle mouse button now closes tab (#27522)
  • term: enable reflow by default (#21124)
  • termdebug: improve :Evaluate floating window (#26621)
  • terminal: allow :terminal to take modifiers (#15427)
  • terminal: close shell terminals automatically
  • terminal: respond to OSC background and foreground request (#17197)
  • terminal: trigger TermRequest autocommand events (#22159)
  • treesitter: add 'injection.self' and 'injection.parent'
  • treesitter: add @injection.filename
  • treesitter: add a query editor (#24703)
  • treesitter: add bash parser and queries
  • treesitter: add folding for InspectTree (#27518)
  • treesitter: add foldtext with treesitter highlighting (#25391)
  • treesitter: add injection language fallback (#24659)
  • treesitter: add lang parameter to the query editor (#25181)
  • treesitter: add python parser and queries
  • treesitter: add query_linter from nvim-treesitter/playground (#22784)
  • treesitter: add support for setting query depths
  • treesitter: bundle markdown parser and queries (#22481)
  • treesitter: handle quantified fold captures
  • treesitter: highlight Lua files by default (#26824)
  • treesitter: highlight help files by default (#26347)
  • treesitter: improve query error message
  • treesitter: improved logging (#23638)
  • treesitter: show root nodes in :InspectTree (#26944)
  • treesitter: support URLs (#27132)
  • treesitter: update Bash parser and queries to v0.21.0
  • treesitter: update C parser and queries to v0.21.0
  • treesitter: update C queries from upstream
  • treesitter: update Lua parser and queries to v0.1.0
  • treesitter: update Markdown parsers and queries to v0.2.1
  • treesitter: update Python parser and queries to v0.21.0
  • treesitter: update Vim parser and queries to v0.4.0
  • treesitter: update Vimdoc parser and queries to v2.4.0
  • treesitter: update query parser to v0.2.0
  • treesitter: upstream query omnifunc from playground (#23394)
  • treesitter: use 0-based indexing to show ranges in :InspectTree
  • tui: add 'termsync' option (#25871)
  • tui: query extended underline support using DECRQSS (#28052)
  • tui: support DCS responses in TermResponse event (#26061)
  • tui: support Super and Meta modifiers (#24357)
  • tui: support undercurl in WezTerm (#28037)
  • tui: use TermResponse event for OSC responses (#25868)
  • tutor: add Japanese tutor #27268
  • types: add test/.luarc.json
  • ui: add chdir UI event (#27093)
  • ui: add support for OSC 8 hyperlinks (#27109)
  • ui: allow non-zero 'cmdheight' with ext_messages
  • ui: allow to get the highlight namespace
  • ui: completeopt support popup like vim
  • ui: indicate margins for the area used by win_viewport
  • ui: inline virtual text
  • ui-ext: make 'mousehide' into proper ui_option (#25532)
  • version: unverbose ":version", ":verbose version" #24195
  • vim.deprecate: only issue warning if neovim version is high enough
  • vim.iter: add Iter:flatten (#26786)
  • vim.ui: vim.ui.open, "gx" without netrw
  • vim.version: add vim.version.le and vim.version.ge
  • vimdoc: support Markdown code blocks (#25127)

Bug Fixes

  • Remove nested for_each_tree in TSTreeView (#26328)
  • adjust error message for error in UI event callback (#28200)
  • allow multiline message for echoerr (#25380)
  • avoid ui_grid_cursor_goto when drawing window separators
  • buffer overrun in lmpack_session_receive
  • checkhealth warning even if init.lua exists #25306
  • correct versions in deprecation warnings
  • deduplicate gen_cflags
  • disallow removing extmarks in on_lines callbacks (#23219)
  • doc errors
  • explain that user should run nvim with -V1 to see more information
  • fix ASAN errors on clang 17 (#25469)
  • fix compiler warning from clang
  • fix iter_matches call in query linter (#27496)
  • flush UI state before blocking in vim.wait (#25938)
  • function was renamed (#23772)
  • gf fails on "foo/bar.txt:1:2" on Windows
  • handle argv not present in nvim_get_chan_info
  • heap-buffer-overflow in file_name_in_line
  • ignore non-existent properties during header generation
  • invoke changed_bytes when rewriting char #25125
  • lua annotations
  • luacheck
  • missing case in setxattr error handling (#26176)
  • move fswatch linux check inside of vim.schedule (#27824)
  • only attempt to close timer if not already closing (#26047)
  • prevent child processes from inheriting ui channel file descriptors
  • quick update, squash later
  • raise TS min version
  • splitting of big UI messages
  • support UNC paths in vim.fs.normalize
  • tostring(vim.version()) fails if build is NIL #24097
  • type warnings in shared.lua
  • unreliable "checkhealth completions" test
  • use BEL to terminate OSC 11 request (#26335)
  • use no_ff instead of ffdos as condition
  • use snprintf instead of sprintf
  • version-range < and <= #23539
  • vim.loop in luv threads (#23924)
  • vim.validate() order is not deterministic #28377
  • windows timeouts have exit code 1
  • :let: fix error when applying operator to boolean option (#24030)
  • NVIM_APPNAME: show error message if $NVIM_APPNAME is invalid
  • PVS/V009: add top-level message
  • PVS/V1001: variable is assigned but is not used
  • PVS/V547: expression is always true/false
  • PVS/V564: the '|' operator is applied to bool type value
  • PVS/V592: expression is enclosed by parentheses twice
  • api: allow negative column arguments for nvim_buf_set_text (#23501)
  • api: avoid assertion when autocmd group id is 0 (#23210)
  • api: avoid immediate TextChanged with nvim_create_buf (#25492)
  • api: avoid integer truncation
  • api: avoid open_win UAF if target buf deleted by autocmds
  • api: better topline adjustments in nvim_buf_set_lines
  • api: crash after nvim_win_set_config title/footer validation error (#26606)
  • api: disallow some more functions during textlock
  • api: disallow win_set_buf from changing cmdwin's old curbuf (#24745)
  • api: do not re-apply win_config.style when missing
  • api: do not update grid position in nvim_win_set_cursor (#28235)
  • api: don't change title when setting buffer in a window (#23492)
  • api: don't leak memory with nvim_win_get_ns (#27570)
  • api: don't set coladd of mark (#26648)
  • api: don't use stl 'fillchar' for "use_statuscol_lnum" (#27501)
  • api: dont change curwin for nvim_win_set_height
  • api: dont change curwin for nvim_win_set_width
  • api: extmark highlight groups not always included in details (#23179)
  • api: fix inconsistent behavior of topline touched in recent refactor
  • api: fix set_lines viewport adjustment, but this time good
  • api: get virtual text with multiple hl properly (#25307)
  • api: handle NUL in nvim_err_write() and nvim_out_write() (#25354)
  • api: handle clearing out last line of non-current buffer
  • api: handle win_split_ins failure properly
  • api: ignore 'autochdir' when renaming other buf (#28376)
  • api: ignore 'autochdir' when setting buf in other win (#28371)
  • api: limit depth of nvim_cmd (#27225)
  • api: load buffer first on nvim_buf_set_lines (#25823)
  • api: make nvim_get_hl not return non-existing groups
  • api: make open_win block only enter/leave events if !enter && !noautocmd
  • api: make open_win/win_set_config check if splitting allowed
  • api: make width/height for split by nvim_open_win work (#28341)
  • api: make win_set_config with "win" for splits need "split/vertical"
  • api: mark nvim__complete_set as experimental #28579
  • api: more intuitive cursor updates in nvim_buf_set_text
  • api: nvim_buf_get_offset in a new buffer with zero or one lines
  • api: nvim_cmd{cmd="win_getid"} parsed as :winsize #24181
  • api: nvim_create_buf assert fails if autocmds set &swapfile
  • api: nvim_create_buf leaks memory if buffer is loaded early
  • api: nvim_get_hl should return default flag
  • api: nvim_parse_cmd error message in pcall() #23297
  • api: open_win fire Buf* events when !enter && !noautocmd if entered early
  • api: open_win fire BufWinEnter for other buffer when !enter && !noautocmd
  • api: patch some cmdwin/textlock holes
  • api: redundant error when using nvim_cmd (#24010)
  • api: revert unintended change of optional bool params
  • api: set script context when using nvim_set_hl (#28123)
  • api: update "w_scwidth" in nvim_eval_statusline()
  • api: update grid cursor in nvim_win_set_cursor()
  • api: use a conditional stack for nvim_cmd (#26341)
  • api: use text_locked() to check textlock
  • api: win_set_config autocmds crash when moving win to other tabpage
  • api: win_set_config fires unnecessary autocmds
  • api: win_set_config set tp_curwin of win moved from other tabpage
  • api: win_set_config update statuslines after removing splits
  • api: wrong nvim_buf_set_extmark error for invalid hl_mode
  • api, lua: handle setting v: variables properly (#25325)
  • api, lua: make blank lines in a message work properly (#24244)
  • api/buffer: fix handling of viewport of non-current buffer
  • api/options: validate buf and win
  • autocmd: API functions accept garbage after event name #25523
  • backup: E1509 when writing extended attr to symlink (#28014)
  • base64: only check padding if leftover index is set (#25854)
  • base64: properly handle embedded NULLs when decoding (#28349)
  • buffer: do not filter help buffer
  • buffer_updates: correct buffer updates when splitting empty line
  • build: better deps for doc
  • build: distinguish vim.mpack from global require'mpack'
  • build: include FindPackageHandleStandardArgs
  • build: teach cmake about vvars
  • builtin: fix incorrect optional fields for fn.sign_define
  • builtin: parameter mismatch between winsaveview and winrestview
  • change: update fold after on_bytes (#26364)
  • channel: use os_write() instead of fwrite() for stderr (#26689)
  • charset: fix wrong display of 0xffff (#24158)
  • checkhealth: error in node.js check #28348
  • checkhealth: fix crash due to incorrect argument type
  • checkhealth: shell_error and cpanm module
  • clang: null pointer dereference in parse_msgpack #25389
  • clangd: check size of array before applying qsort on it
  • clangd: set block pointer to null in case map is empty
  • clipboard: don't pass --foreground to wl-copy (#25481)
  • clipboard: ignore exit caused by signal #23378
  • clipboard: increase OSC 52 wait timeout (#25936)
  • clipboard: make getreg() accurate for clipboard registers (#26740)
  • clipboard: make osc52 work with PUC Lua (#26014)
  • cmake: restore previously undocumented workround, now documented
  • cmdline: don't redraw 'tabline' in Ex mode (#24123)
  • cmdline: wrong 'incsearch' highlighting after :redraw (#27947)
  • codelens: add buffer and line checks before displaying codelens (#23887)
  • colorscheme: default statusline groups usability #26921
  • colorscheme: link LSP semantic tokens to treesitter groups
  • colorscheme: try .lua files in 'rtp' before .vim files in 'pp' (#23727)
  • colorscheme: typo
  • colorscheme: use explicit normal foreground in syntax groups
  • column: 'statuscolumn' not drawn after virt_lines with "n" in 'cpo' (#22967)
  • column: add truncated width during estimation for 'statuscolumn'
  • column: always set b_signcols.max
  • column: apply numhl signs when 'signcolumn' is "no" (#26167)
  • column: avoid exceeding configured 'signcolumn' width
  • column: clear "b_signcols" before moving saved marks
  • column: clear "b_signcols" when marktree is cleared
  • column: correct width after truncated 'statuscolumn' error (#26737)
  • column: don't overflow sign column with extmark signs (#23854)
  • column: don't reset 'statuscolumn' width after it has been drawn
  • column: fill 'statuscolumn' clickdefs with evaluated width (#26891)
  • column: fix wrong cursor with 'statuscolumn' and cpo+=n (#24268)
  • column: full redraw with 'stc, 'rnu' and inserted lines (#27712)
  • column: handle unprintable chars in 'statuscolumn' (#24198)
  • column: handle w_redr_statuscol at end filler lines (#27365)
  • column: ignore empty signcols range (#28177)
  • column: keep track of number of lines with number of signs
  • column: pass kFalse when initializing "b_signcols.count"
  • column: rebuild status column when sign column is invalid
  • column: redraw 'statuscolumn' on wrapped lines with 'relativenumber'
  • column: redraw and update signcols for paired extmark
  • column: remove sign from line it was previously on with undo
  • column: reset decor state before starting from top
  • column: use a single path for sign sorting (#27431)
  • column: use maxwidth to allocate/fill 'statuscolumn' click defs #24190
  • completion: check that healthcheck name is string (#28458)
  • completion: don't add backslashes to runtime pattern (#24296)
  • completion: filter results with complete+=f (#26029)
  • completion: improve popup window position (#26739)
  • completion: make sure the buffer name is valid (#25975)
  • context: don't crash on invalid arg to nvim_get_context (#25977)
  • context: don't leak memory on multiple invalid objects (#25979)
  • coverity: dead code #25562
  • coverity: unhandled retval for marktree_itr_get_overlap() #26518
  • coverity/348240: memory leak in put_view()
  • coverity/471380: null dereference in get_local_additions()
  • coverity/477623,477624: guard null pointer dereference in kv_concat_len (#27022)
  • decor: allow adding providers during redraw
  • decor: check decor kind before accessing union field (#27205)
  • decoration_provider: don't leak memory on error (#24410)
  • decorations: better approximation of botline #24794
  • decorations: crash with revised mark with changed decoration flags
  • decorations: do not apply sign highlight id as range attr id
  • decorations: fix imbalanced sign count
  • decorations: incompletely displayed line should also get decorations
  • decorations: validate botline for on_win
  • defaults: auto-close terminal for &shell with args (#28276)
  • defaults: background detection in tmux (#26557)
  • defaults: don't use nvim_feedkeys in default mappings (#24520)
  • defaults: make terminal autoclose not block other events (#27581)
  • defaults: only repeat macro for each selected line if linewise (#28289)
  • defaults: remove tmux background detection passthrough (#27571)
  • defaults: set 'fsync' #26034
  • defaults: use augroup for default autocommands (#26933)
  • defaults: validate 'channel' before responding to OSC request (#27594)
  • defaults: visual hash (#) on text with "?"
  • defaults: visual mode star (*,#) is fragile
  • defaults: visual star (*) on text with "?"
  • defaults: wait until VimEnter to set background (#26284)
  • deps: bump luv to 1.48.0-2
  • deps: make sure --force-config takes effect
  • deps: remove stray conflict marker
  • deps: restore functionality of USE_EXISTING_SRC_DIR
  • deps: restore functionality of USE_EXISTING_SRC_DIR
  • diagnostic: always return copies of diagnostic items (#25010)
  • diagnostic: check for sign namespace instead of sign group
  • diagnostic: check if delete failed in qf_fill_buffer() (#25932)
  • diagnostic: fix typing on field |diagnostic-severity|
  • diagnostic: get border from config (#28531)
  • diagnostic: invalid col number compare in next_diagnostic (#28397)
  • diagnostic: open_float on multi-line diagnostics #28301
  • diagnostic: rename buffer → bufnr in type annotation (#23042)
  • diagnostic: typing
  • diagnostic: vim.diagnostic.get(…,{lnum=…}) on multi-line diagnostic #28273
  • diagnostic: virtual_text prefix function should have index and total (#25801)
  • diagnostics: if buffer not loaded, skip handlers that set extmark (#25628)
  • diff: filler lines for hunks bigger than linematch limit (#24676)
  • doc: improve doc generation of types using lpeg
  • doc: prevent doxygen confusion
  • docs: clean up non-docstring comments for vimdoc gen
  • docs: fix TSNode incorrect signatures
  • docs: ignore_invalid #24174
  • docs: make lines not overflow in vim docs
  • docs: match DocSearch style with site theme
  • docs: the runtimepath is not the runtime path
  • docs: too much whitespace around
     blocks #24151
  • docs: vimdoc syntax errors
  • docs: vimdoc syntax errors
  • docs: vimdoc syntax errors
  • drawline: check filler_todo in place of removed draw_state (#27889)
  • drawline: combine extmark highligh with area hl correctly
  • drawline: consider position in linebuf for foldcolumn (#26803)
  • drawline: don't invoke on_line for filler line (#28219)
  • drawline: don't use temporary "v" variable when not needed (#26777)
  • drawline: fix missing Visual hl on double-width fold char (#24308)
  • drawline: initialize linebuf_attr to 0 instead of -1 (#27840)
  • drawline: initialize variable
  • drawline: initialize variable
  • drawline: inline virt_text hl_mode inside syntax/extmark hl (#24273)
  • drawline: make cursorlineopt=screenline work with resized grid
  • drawline: missing NUL termination when drawing TAB (#27307)
  • drawline: update prev_ptr after getting syntax attrs (#27072)
  • edit: backspace adds extra spaces for inline virtual text (#28005)
  • edit: don't go to Terminal mode when stopping Insert mode (#27033)
  • edit: fix K_EVENT interfering with 'digraph' (#24258)
  • editorconfig: add missing root validation (#23462)
  • editorconfig: check that buffer is valid (#23922)
  • editorconfig: do not set 'endofline'
  • editorconfig: highlight properties with dashes (#24407)
  • editorconfig: only warn once on errors
  • editorconfig: syntax error regression
  • eval: correct failure return value for readfile/blob (#27722)
  • eval: make has('pythonx') work properly (#27739)
  • eval: prevent double-free in garbage collection (#22990)
  • eval: properly support checking v:lua function in exists() (#27124)
  • eval: skip over v:lua properly (#27517)
  • event-loop: flush UI when no input is available (#25728)
  • event-loop: process input before events (#27358)
  • events: avoid unnecessary CursorMoved (#24675)
  • events: check for WinResized/WinScrolled in terminal mode (#27226)
  • events: don't expand non-file as file name
  • events: null dereference in autocmd functions
  • events: trigger VimResume on next UI request (#24426)
  • ex_getln: initialize pointer with NULL
  • exception: remember whether message is multiline (#25351)
  • excmd: append original command to error message
  • excmd: make :def unknown rather than unimplemented (#23150)
  • exitfree: don't use ex commands to close windows in free_all_mem()
  • extmark: fix crash when stepping out from internal node
  • extmark: fix cursor position with both left and right gravity inline text
  • extmark: only invalidate unpaired marks on deleted rows
  • extmark: restore extmarks when completing original text
  • extmarks: U changed_bytes after extmark_splice (#26501)
  • extmarks: account for rightleft when drawing virt text (#25262)
  • extmarks: blending space shouldn't overwrite wide char (#26960)
  • extmarks: crash with sign after many marks
  • extmarks: do not remove decor from invalid old marks
  • extmarks: do not remove invalid marks from decor upon deletion
  • extmarks: don't position overlay virt_text halfway a char (#24027)
  • extmarks: don't show virt lines for end mark (#23792)
  • extmarks: draw TAB in virt_text properly with 'rl' (#25381)
  • extmarks: draw virt_text below diff filler lines properly (#25170)
  • extmarks: empty inline virt_text interfering with DiffText (#24101)
  • extmarks: empty inline virt_text interfering with Visual highlight
  • extmarks: fix heap buffer overflow caused by inline virtual text (#23851)
  • extmarks: fix virt_text_hide off-by-one hiding (#23795)
  • extmarks: fix virt_text_hide with 'nowrap' and multibyte (#23757)
  • extmarks: fix win_col virt_text drawn on wrong screen line (#25264)
  • extmarks: fix wrong highlight after "combine" virt_text (#24281)
  • extmarks: fix wrong virt_text position after wrapped TAB (#25168)
  • extmarks: handle inline virt_text with empty chunk (#24005)
  • extmarks: handle overwriting right half of wide char (#26951)
  • extmarks: hide inline virt_text properly with 'smoothscroll' (#24106)
  • extmarks: inline virt_text support multiple hl groups (#25303)
  • extmarks: make empty "conceal" respect &conceallevel = 1 (#24785)
  • extmarks: make right_align and win_col work on wrapped line (#23759)
  • extmarks: missing "spell" and "conceal" in details (#27116)
  • extmarks: overlay virt_text position after 'showbreak' (#25175)
  • extmarks: priority order of inline and non-inline virt_text (#27532)
  • extmarks: properly handle virt_text on next screen line (#25166)
  • extmarks: redraw line on adding/removing conceal (#27463)
  • extmarks: redraw pre-undo position (#27437)
  • extmarks: redraw properly with scoped inline virt_text (#27569)
  • extmarks: restore old position before revalidating
  • extmarks: skip virt_text if it is out of window (#25658)
  • extmarks: splice earlier when opening new line (#28108)
  • extmarks: wrong display when changing text with virt_lines (#24879)
  • f_wait: flush UI before blocking (#25962)
  • file_search: path with spaces in finddir() and findfile() (#25493)
  • fileio: fix off-by-one in rename_with_tmp (#27780)
  • filetype: add typing and dry (#24573)
  • filetype: call on_detect before setting buffer filetype
  • filetype: correctly detect bash-fc-{id} files as "sh"
  • filetype: don't use fnamemodify() with :e for extension (#27976)
  • filetype: make sure buffer is valid before call nvim_buf_call (#24922)
  • filetype: return on_detect function when matching by file contents
  • filetype: use unexpanded file name (#27931)
  • flake: clang-tools moved to nativeBuildInputs (#26955)
  • float: add fixd option
  • float: allow floating window in cmdline area
  • float: apply 'winblend' to title/footer highlight (#25999)
  • float: don't relative flaot win itself
  • float: fix some other crashes with :unhide or :all (#25328)
  • float: improve error message when reconfig failed (#25076)
  • float: make "fixed" work with relative=win (#25243)
  • float: make bufpos work properly with resized parent grid
  • float: trigger winnew event when float window create
  • float: update position of anchored windows first (#25133)
  • float: win_get_bordertext_col returning negative column number (#25752)
  • float: wrong position when bufpos is set
  • folds: allow overlay virtual text on folded line (#23892)
  • folds: combined Folded and Visual highlights (#23752)
  • folds: don't show search or match highlighting on fold (#24084)
  • folds: fix missing virt_lines above when fold is hidden (#24274)
  • folds: show Folded highlight in Visual selection (#23741)
  • folds: update folds in Insert mode with fdm=indent (#24402)
  • fs: allow backslash characters in unix paths
  • fs: make normalize() work with '/' path (#24047)
  • fs: use generics for better typing
  • fs.lua: normalize slash truncation (#23753)
  • fswatch: --latency is locale dependent
  • ftplugin: respect runtimepath ordering
  • ftplugin: source Lua files after Vimscript files per directory (#23801)
  • gen_help_html: type warnings, spell_ignore_files #27254
  • gen_lsp.lua: improve type name, and fix wrong type inheritance
  • gen_lsp.lua: no notifications in lsp.Methods #24530
  • gen_vimdoc: INCLUDE_DEPRECATED not generating docs for deprecateds
  • gen_vimfn_types: don't include tag before signature's line (#24492)
  • gen_vimvim: correctly add aliases to vimAutoEvent (#23429)
  • genvimvim: add special abbreviations of :delete (#23172)
  • genvimvim: generate prefixed boolean options properly (#27487)
  • grid: add start column when getting char on line (#25627)
  • grid: don't draw beyond max column (#26172)
  • grid: handle clearing half a double-width char (#27023)
  • gx: move to to _init_default_mappings #24420
  • gx: visual selection, expand env vars
  • health: "attempt to concatenate nil"
  • health: check for _host_prog variables properly (#23014)
  • health: check more "old" files
  • health: check unmatching python_glob as empty table (#28215)
  • health: combine python and virtualenv healthchecks (#23004)
  • health: correctly expand and resolve PYENV_ROOT (#26953)
  • health: fix tmux RGB capability detection (#26886)
  • health: fix typo in function name
  • health: improve python executable check error handling (#26954)
  • health: malformed call to warn() #26217
  • health: properly use the value of $PYENV_VERSION (#23109)
  • health: replace healthFoo with DiagnosticFoo (#23475)
  • health: stop job properly on timeout (#23877)
  • healthcheck: expand vimrc variable (#28379)
  • helptags: make multibyte help tags work properly (#23975)
  • heredoc: allow missing end marker for scripts
  • highlight: add FloatFooter to 'highlight_defs.h' (#25577)
  • highlight: add Nvim{Light,Dark}Gray{1,2,3,4} colors
  • highlight: add create param in nvim_get_hl
  • highlight: add force in nvim_set_hl
  • highlight: add missing g: prefix for colors_name (#22952)
  • highlight: apply 'winblend' to NormalNC (#23555)
  • highlight: apply 'winblend' to float border (#25981)
  • highlight: attr set all when normal attr changed
  • highlight: combine ColorColumn with low-priority CursorLine (#23017)
  • highlight: consistently spell "Goldenrod"
  • highlight: correct hi command output
  • highlight: don't show CursorColumn on current line (#27848)
  • highlight: make CurSearch work properly with 'winhl' (#24448)
  • highlight: remove unnecessary assignment to char_attr for 'spell' (#23713)
  • highlight: update IncSearch to link to CurSearch
  • highlight: winhl receive wrong argument
  • inccommand: block errors when parsing command line again (#24374)
  • inccommand: don't crash with "split" and 'n' flag
  • inccommand: don't preview in Ex mode (#26587)
  • inccommand: don't save information of a buffer twice (#24501)
  • inccommand: don't set an invalid 'undolevels' value (#24575)
  • inccommand: improve preview buffer number handling (#27087)
  • inccommand: restrict cmdpreview undo calls (#24289)
  • inccommand: save and restore '[ and '] marks (#26442)
  • inccommand: update topline after moving cursor (#27341)
  • input: set termkey buffer size to read stream capacity
  • intro: clear intro if new buffer is shown in focused float
  • intro: link showing intro to state at start
  • intro: make intro explicitly stateful
  • intro: redrawing intro exposing pseudo-randomness
  • intro: still show intro message with floating window
  • iter: add tag to packed table
  • iter: make pipeline termination conditions consistent (#24614)
  • iter: remove special case totable for map-like tables
  • job-control: fix use after free (#25223)
  • job-control: make jobwait() flush UI after hiding cursor (#25927)
  • json: allow objects with empty keys #25564
  • jumplist: Ctrl+o, Ctrl+i weird behavior when deleting buffers #25461
  • keycodes: recognize <t_xx> as a key (#24700)
  • keycodes: simplify S- properly when D- is present (#27316)
  • l10n: update Japanese translations (#27856)
  • l10n: update Ukrainian translations (#26819)
  • languagetree: apply resolve_lang to metadata['injection.language']
  • languagetree: don't treat unparsed nodes as occupying full range
  • languagetree: remove double recursion in LanguageTree:parse
  • linematch: initialize array
  • lint: lint warnings #24226
  • lint: use tbl_contains
  • loader: cache path ambiguity #24491
  • loader: remove cyclic dependency on vim.fs (when --luamod-dev)
  • loader: reset hashes when running the loader
  • log: increase size of buffer for nvim instance name
  • lsp: E403 if doc contains multiple codeblocks #24458
  • lsp: SignatureHelp docstring is not escaped #16702
  • lsp: abort callHierarchy on no result (#28102)
  • lsp: account for border height in max floating popup height (#25539)
  • lsp: actually send diagnostic-tags back to the server
  • lsp: add "silent" option to vim.lsp.start (#28478)
  • lsp: add assertion for explicit bufnr in apply_text_edits (#27614)
  • lsp: add missing LSP semantic token highlight links
  • lsp: add param assert in client_is_stopped (#23857)
  • lsp: add parentheses to generated union array types (#27560)
  • lsp: add snippet regression test (#27618)
  • lsp: add spacing for inlay hints separately #24079
  • lsp: advertise workspace.didChangeConfiguration capability (#26028)
  • lsp: allow Lua pattern chars in code action filter (#24041)
  • lsp: always return boolean in lsp.buf_client_attach (#24077)
  • lsp: announce publishDiagnostics.dataSupport (#24442)
  • lsp: avoid assertion when client_hints do not exist (#28461)
  • lsp: buffer messages until connected to server (#28507)
  • lsp: call on_list() even for single location (#25830)
  • lsp: cancel session when leaving snippet region (#25762)
  • lsp: cancel watchers when closing a client
  • lsp: change silent in lsp.start.Opts to optional (#28524)
  • lsp: check if inlay hints are enabled for a buffer before disabling (#24074)
  • lsp: clean up duplicate and unused meta type annotations
  • lsp: clear codelens on LspDetach (#24903)
  • lsp: correct deprecation message #28403
  • lsp: correct the error message's cmd on spawning (#27632)
  • lsp: create codelens request parameters for each buffer (#27699)
  • lsp: create per client params in lsp.buf.code_action
  • lsp: defer writing error msgs (#27688)
  • lsp: define LspInlayHint highlight group #24073
  • lsp: directly rename the existing buffers when renaming (#27690)
  • lsp: display initialization errors (#25409)
  • lsp: do not add extra indentation
  • lsp: do not assume client capability exists in watchfiles check (#24550)
  • lsp: do not cancel snippet when selecting placeholder (#25835)
  • lsp: don't register didChangeWatchedFiles when capability not set (#23689)
  • lsp: don't use hl_mode = combine for inlay hints #24276
  • lsp: duplicate on_detach, on_reload callbacks #24067
  • lsp: empty commands should not be considered executable (#28216)
  • lsp: ensure buffer is not attached more than once
  • lsp: error in reset_timer on second detach #24117
  • lsp: extra "." when completing with tsserver #24646
  • lsp: filetype matching to documentSelector in dynamic capabilities (#25425)
  • lsp: fix attempt to call non existent function (#24212)
  • lsp: fix dynamic registration of code actions (#23826)
  • lsp: fix incorrect typing and doc for vim.lsp.rpc
  • lsp: fix infinite loop on vim.lsp.tagfunc
  • lsp: fix multi client handling workspace_folder methods (#18839)
  • lsp: fix off-by-one error for omnifunc word boundary
  • lsp: fix omnicomplete in middle of the line (#25787)
  • lsp: fix relative patterns for workspace/didChangeWatchedFiles (#23548)
  • lsp: handle NUL bytes in popup text (#25612)
  • lsp: handle absence of a trailing newline #25194
  • lsp: handle adjacent snippet tabstops
  • lsp: handle reverse lookup in capabilities
  • lsp: handle stale bufnr on LspRequest autocmd trigger (#24013)
  • lsp: handle stale bufnr on LspRequest autocmd trigger (#27981)
  • lsp: highlight active parameter in signature help #25663
  • lsp: inlay hints: "Failed to delete autocmd" when closing buffer #24469
  • lsp: inlay_hint nil reference error #24202
  • lsp: lint warnings, default offset_encoding #24046
  • lsp: log unknown diagnostic tags instead of showing a warning (#25705)
  • lsp: markdown code fence should allow space before info string #24364
  • lsp: noisy warning about offset_encodings #24441
  • lsp: only disable inlay hints / diagnostics if no other clients are connected (#24535)
  • lsp: prevent code-lens refresh from becoming a permanent no-op (#28228)
  • lsp: re-add client.commands and mark private
  • lsp: reapplying already-applied hints #24114
  • lsp: reduce diagnostics and add more types (#23948)
  • lsp: redundant vim.snippet.jumpable #28560
  • lsp: refactor escaping snippet text (#25611)
  • lsp: remove unknown LSP protocol property (#24345)
  • lsp: remove unnecessary file load/write when renaming (#27621)
  • lsp: rename fails on missing parent directory #27291
  • lsp: rename undofile when renaming (#27684)
  • lsp: rename: load and list new buffer if attached to window (#27408)
  • lsp: replace @private with @nodoc for public client functions (#24415)
  • lsp: restore marks after apply_text_edits() #14630
  • lsp: revert change to buf.clear_references() #24238
  • lsp: semantic token defer loading
  • lsp: send back diagnostic tags to the server
  • lsp: send empty "added" list when removing workspace folder #24440
  • lsp: set extra info only when it has a value (#23868)
  • lsp: set fallback client name properly
  • lsp: track snippet deletion
  • lsp: use only utf-16 in default client positionEncodings (#23903)
  • lsp: use percentage format on lsp.status (#23971)
  • lsp: use plain loop for non-list-like table of protocol values
  • lsp: when renaming directory, check path prefix of buffer names (#27603)
  • lsp: wrong iterator in registerCapability handler (#24971)
  • lua: allow nil values in serialized Lua arrays (#26329)
  • lua: annotate that TSNode functions can return nil (#24621)
  • lua: avoid internal error when :luado deletes lines (#27262)
  • lua: correct return value for on_key with no arguments (#25911)
  • lua: disallow vim.wait() in fast contexts
  • lua: do not schedule events if Nvim is exiting
  • lua: handle array with holes in luaeval() (#26630)
  • lua: improve annotations for stricter luals diagnostics (#24609)
  • lua: inspect_pos respect bufnr when get syntax info (#23098)
  • lua: make highlight.on_yank use win-local highlight (#27349)
  • lua: memory leak when using invalid syntax with exists() (#26530)
  • lua: not using global value in vim.opt_global (#25196)
  • lua: only disable vim.schedule() when closing main loop (#26090)
  • lua: only free luarefs when returning from API (#28373)
  • lua: remove uri fragment from file paths (#27647)
  • lua: return after assert returns assert message (#27064)
  • lua: show error message when failing to set variable (#25321)
  • lua: vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
  • lua: vim.fs typing (#24608)
  • lua: vim.region on linewise selection #25467
  • lua: vim.split may trim inner empty items
  • lua2dox: filter out the entire ---@alias block
  • luarc.json: ignore test directory to save memory
  • man: make :Man with a range work (#25922)
  • man: pass modifiers also to :tag (#27878)
  • man: set the nested flag for the BufReadCmd autocommand (#26285)
  • man.lua: don't continue on command error (#23009)
  • man.lua: hardwrapped manpage is not resized #25646
  • man.lua: return support of all sections
  • man.vim: q quits after jump to different tag in MANPAGER modified (#28495)
  • mappings: fix mapset() not replacing map with backslash (#26719)
  • mark: properly init mark views (#22996)
  • marks: handle switching buffer properly (#25763)
  • marktree: correct qsort usage
  • marktree: off-by-one error in marktree_move
  • marktree: preserve ordering in marktree_move
  • marktree: some marks counted twice when checking for overlap
  • mbyte: fix bugs in utf_cp_*_off() functions
  • memline: more curbuf stuff
  • messages: :map output with ext_messages (#26126)
  • messages: allow more prompt in headless mode with UI (#27905)
  • messages: avoid crash with :intro and ch=0 (#28343)
  • messages: clear new lines when increasing 'cmdheight' (#27421)
  • messages: ensure msg_grid is at top at more prompt (#23584)
  • messages: use "Vimscript" instead of "VimL" #24111
  • messages: validate msg_grid before using msg_grid_pos (#26189)
  • meta: add nil return types to lpeg functions
  • meta: cleanup lpeg operators
  • meta: include vim.json
  • mkspell: prevent Unicode character overflow (#23760)
  • mouse: avoid dragging after click label popupmenu callback (#26187)
  • mouse: avoid dragging when clicking next to popupmenu (#26201)
  • mouse: click after eol with conceal and virtual text (#27897)
  • mouse: click on 'statuscolumn' with 'rightleft' (#25090)
  • mouse: click on empty line with 'foldcolumn'
  • mouse: cmdline click registered as statuscolumn (#23163)
  • mouse: copy the line before syntax matching (#24320)
  • mouse: drag vsep of window with 'statuscolumn' (#24462)
  • mouse: fix popup menu position check with winbar (#23456)
  • mouse: fix popup_setpos position check with ext_multigrid (#23436)
  • mouse: handle folded lines with virt_lines attached to line above (#23912)
  • move: check for filler lines properly (#28307)
  • move: check the correct buffer (#25698)
  • move: fix using the wrong window (#28312)
  • msgpack: store grid line event as a value
  • normal: don't check conceal when pressing 'r' (#27892)
  • normal: make "g$" work properly with resized grid
  • oldtest: always use a 64-bit int for swapfile block number
  • ops.c: remove duplicate u_save_cursor()
  • options: 'modified' showing incorrect value for scratch buffers
  • options: correct condition for calling did_set_option() (#25026)
  • options: do not change inccommand during preview (#25462)
  • options: don't update curswant for 'winhl' or 'winbl' (#27515)
  • options: setting 'scroll' with resized grid (#26628)
  • options: use a union for def_val (#27169)
  • optionstr.c: incorrect use of curbuf/curwin
  • osc52: do not use 'vim.iter' (#27218)
  • osc52: enable OSC 52 by default in tmux sessions (#26072)
  • osc52: use p for primary selection instead of s (#26076)
  • osc52: use nvim_chan_send() to stderr for copying (#26690)
  • pager: handle consecutive newlines properly (#27913)
  • path: accept special characters on Windows (#25424)
  • path: check return value of append_path() (#28309)
  • path: restore space separation in 'path' (#25571)
  • plines: count 'showbreak' for virtual text at eol
  • plines: cursor position with 'showbreak' and resized grid (#28067)
  • plines: don't return very large height on very long line (#24260)
  • plines: folded lines with virt_lines attached to line above
  • plines: handle inline virtual text after last char (#24241)
  • plines.c: initialize cts_max_head_vcol (#24855)
  • printf: make positional %zd and %zu work (#24722)
  • process: avoid potential data race on exit (#27769)
  • process: close handles and timer in pty_process_close() (#27760)
  • process: start pty process eof timer on main thread (#27625)
  • prompt: emit change event for prompt newline (#28260)
  • provider: cannot detect python3.12 #25316
  • provider/pythonx: import the correct module (#25342)
  • pum: don't position too far with resized parent grid (#23442)
  • pum: fix missing rightmost column with 'rightleft' (#23445)
  • pum: fix missing scrollbar with 'rightleft' (#23448)
  • pum: handle right-click menu repositioning with multigrid (#26975)
  • pum: make :popup position correctly with float border
  • pum: position properly with ext_multigrid (#23336)
  • pum: show right-click menu above cmdline area (#23298)
  • query_error: multiline bug
  • redo: make redo of Lua mappings in op-pending mode work (#23566)
  • redraw: multibyte characters are wrapped at the end of a line (#23696)
  • redraw: overwrite double-width char with virt_text properly (#23708)
  • redraw: update Visual selection properly with splits (#27343)
  • remote: make --remote-expr print to stdout (#23980)
  • remote: restore previous --remote-expr output formatting (#23988)
  • rpc: "grid_line" event parsing crashes (#25581)
  • rpc: assertion failure due to invalid msgpack input
  • rpc: do not crash when no input is consumed
  • rpc: fix hang with channel closed while waiting for response
  • rplugin: dont create data dir if it's a broken symlink #25726
  • ruler: show ruler of curwin with no statusline in cmdline
  • runtime: add commentstring for C# ftplugin (#23039)
  • runtime: add commentstring for D ftplugin (#25362)
  • runtime: add more Nvim-only highlight groups to Vim syntax
  • runtime: do not allow breakcheck inside runtime path calculation
  • runtime: don't set gx mapping if already mapped (#24262)
  • runtime: respect 'fileignorecase' when sourcing (#24344)
  • runtime: respect 'rtp' order for all runtime files (#24335)
  • runtime: source c ftplugins in correct order (#27377)
  • runtime: source old color scheme in bundled color schemes (#26641)
  • runtime: update 'vim' color scheme to use new tree-sitter groups
  • runtime/tutor: don't try to close fold when there is none (#24953)
  • shada: update deleted marks (#24936)
  • shada: update marks when using delmarks! (#24978)
  • showcmd: clear the rest properly (#28420)
  • sign: avoid deleting from sign map while looping over it (#27158)
  • sign: do not error when defining sign without attributes (#26106)
  • snippet: correct indent with newline
  • snippet: do not add extra indent on newlines (#28538)
  • snippet: remove misleading comment about TM_FILENAME_BASE (#26465)
  • spell: always accept ':' as filename char in 'spellfile' (#27172)
  • spell: extmark with spell=false should disable spell (#23400)
  • spell: splice extmarks on :spellrepall (#23929)
  • startup: "nvim -l foo.lua" may not set arg0 #24161
  • startup: don't truncate when printing with -l (#24216)
  • startup: make recovery mode work without --headless (#24477)
  • startup: multiprocess startuptime #26790
  • startup: only send one default_colors_set event during startup
  • startup: run embedded Nvim with real path (#24282)
  • startup: set full_screen when in ex_mode
  • startup: stop TUI properly when quitting at swap dialog (#25337)
  • startup: trigger UIEnter for the correct channel (#25860)
  • statuscolumn: don't update clicks if current width is 0 (#24459)
  • statuscolumn: force full redraw when signcolumn is invalid (#24859)
  • statuscolumn: update number hl for each screen line (#25277)
  • statusline: also allow right click when 'mousemodel' is "popup*" (#23258)
  • statusline: bail out properly on negative row (#23535)
  • statusline: corrupted screen with minwid sign item in 'statuscolumn' (#23823)
  • statusline: fill for double-width char after moving items (#24207)
  • statusline: fix uninitialized variable and possible overflow
  • statusline: missing offset when showing 'keymap' (#27270)
  • statusline: redraw when VIsual_mode changes (#23933)
  • stdpath: remove duplicate directories (#26653)
  • stream: do not close handle if it is already closing (#26537)
  • substitute: properly check if preview is needed (#23809)
  • syntax: use correct diagnostic group for checkhealth (#23538)
  • termcap: escape escapes in passthrough sequence (#26301)
  • termcap: only call callback for requested capabilities (#26546)
  • termcap: set 'nested' on TermResponse autocommand
  • termcap: use tmux passthrough sequence when running in tmux (#26281)
  • termdebug: handle partial lines passed to callback (#22950)
  • termdebug: prompt mode breaks with &splitbelow set
  • termdebug: send SIGINT when interrupting prompt mode
  • termdebug: trim suffixed "\r" in CommOutput
  • terminal: assign channel to terminal earlier (#25771)
  • terminal: avoid Insert mode in Terminal buffer (#25820)
  • terminal: block input when there is pending TermRequest (#27589)
  • terminal: call validate_cursor() before screen update (#24425)
  • terminal: check if mouse on statusline/tabline/winbar/vsep (#26892)
  • terminal: check terminal size at end of screen update (#25480)
  • terminal: disable reflow again
  • terminal: don't lose focus on (#25845)
  • terminal: don't pass incomplete UTF-8 sequence to libvterm (#27922)
  • terminal: don't send unknown special keys to terminal (#24378)
  • terminal: fix duplicate recording with mouse click (#28103)
  • terminal: forward horizontal mouse scrolling (#24552)
  • terminal: handle horizontal scrolling in another window (#24828)
  • terminal: ignore $VIM and $VIMRUNTIME in pty jobs
  • terminal: include modifiers when forwarding mouse (#24549)
  • terminal: keep focus when scrolling number column of another window (#25848)
  • terminal: make backslashes in 'shell' work on Windows
  • terminal: never propagate $COLORTERM from outer env (#26440)
  • terminal: send Shift-Home Shift-End Ctrl-Home Ctrl-End (#24418)
  • terminal: set $COLORTERM unconditionally in :terminal (#24763)
  • terminal: use terminal buffer for TermRequest autocommand (#26974)
  • termkey: accept BEL (0x07) as OSC terminator
  • termkey: do not sign extend mode value
  • termkey: include IO header on Windows
  • test: call separate_arguments() correctly to honor $BUSTED_ARGS (#26905)
  • test: clean up inline virtual text tests a little
  • test: fix "indeterminism" warnings in UI tests
  • test: fix strings_spec.lua for AArch64
  • test: more tests for marktree
  • test: remove test/compat.lua
  • test: typing
  • test/tui_spec: pass the expected NULL-sentinel to execl()
  • tests: set SHELL=sh #24941
  • tests: use more global highlight definitions
  • textformat: remove unnecessary changed_bytes() (#26027)
  • timer: allow timer_info() to get info about current timer
  • tohtml: replace hex escape with digit escape (#27728)
  • tohtml: set filetype of generated HTML to html
  • treesitter: Use the correct replacement args for #gsub! directive (#23015)
  • treesitter: _trees may not be list-like
  • treesitter: language.add - only register parser if it exists
  • treesitter: adjust indentation in inspector highlights (#26302)
  • treesitter: allow foldexpr without highlights (#23672)
  • treesitter: allow passing lang to vim.treesitter.get_node() now correctly takes opts.lang (#26360)
  • treesitter: avoid # of nil in _query_linter
  • treesitter: check that buf is loaded in autocommands (#25679)
  • treesitter: correctly calculate bytes for text sources (#23655)
  • treesitter: correctly handle query quantifiers (#24738)
  • treesitter: do not calc folds on unloaded buffers
  • treesitter: document more standard highlight groups
  • treesitter: don't forcefully open folds
  • treesitter: don't invalidate parser when discovering injections
  • treesitter: don't update fold if tree is unchanged
  • treesitter: enforce lowercase language names (#28546)
  • treesitter: escape quotes in :InspectTree view #24582
  • treesitter: fix TSNode:tree() double free (#24796)
  • treesitter: fix another TSNode:tree() double free
  • treesitter: fix indexing in foldexpr
  • treesitter: fix parens stacking in inspector display (#26304)
  • treesitter: fix trim predicate
  • treesitter: fixup for InspectTree
  • treesitter: foldexpr tweaks
  • treesitter: handle empty region when logging (#24173)
  • treesitter: highlight injections properly
  • treesitter: improve vim.treesitter.foldexpr
  • treesitter: inspect-tree remember opts on buf change
  • treesitter: logger memory leak
  • treesitter: make InspectTree correctly handle nested injections (#26085)
  • treesitter: make Visual hl work consistently with foldtext (#25484)
  • treesitter: make foldexpr work without highlighting (#24167)
  • treesitter: make sure injections don't return empty ranges (#24595)
  • treesitter: make tests for memoize more robust
  • treesitter: outdated highlight due to tree with outdated region
  • treesitter: prefix treesitter types with vim
  • treesitter: prepare highlight states for [s, ]s
  • treesitter: properly combine injection.combined regions
  • treesitter: redraw added/removed injections properly (#23287)
  • treesitter: remove more double recursion
  • treesitter: reset cursor max_start_depth
  • treesitter: return correct match table in iter_captures()
  • treesitter: revert to using iter_captures in highlighter
  • treesitter: set cursor position when opening inspector
  • treesitter: stop() should treat 0 as current buffer #24450
  • treesitter: support subfiletypes in get_lang (#23605)
  • treesitter: treecursor regression
  • treesitter: update @markup default links
  • treesitter: update c queries
  • treesitter: update folds in all relevant windows (#24230)
  • treesitter: update folds only once on InsertLeave
  • treesitter: update highlights for query (#23699)
  • treesitter: update lua parser and queries (#24148)
  • treesitter: update markdown parser and queries (#24429)
  • treesitter: update parsers and queries
  • treesitter: update vimdoc and vimscript queries
  • treesitter: use 0 as initial value for computing maximum (#27837)
  • treesitter: use proper query syntax for inspector (#26274)
  • treesitter: use tree range instead of tree root node range
  • treesitter: use vim.highlight.priorities instead of hardcoded 100 (#24052)
  • treesitter: validate language alias for injections
  • treesitter: validate window before updating preview highlights
  • treesitter playground: fix the wrong range of a node displayed i… (#23209)
  • treesitter.c: improve comments on fenv usage
  • treesitter.foldexpr: check for all insert submodes
  • tui: space_buf overflow when clearing screen (#27352)
  • tui: disable DECRQM and DECRQSS queries for Terminal.app (#28453)
  • tui: do not toggle cursor visibility when flushing the buffer (#26055)
  • tui: don't forget to update cursor visibility (#26523)
  • tui: don't overwrite an assertion faliure message on exit
  • tui: don't set cursor color when there is none (#28236)
  • tui: don't set tty background if &bg was set before VimEnter (#23701)
  • tui: don't use DECRQSS in screen or tmux (#28086)
  • tui: don't use tui->params[] for 'termsync' (#26565)
  • tui: grid_clear properly clears the screen
  • tui: grow termkey's internal buffer for large escape sequences (#26309)
  • tui: handle cursor visibility properly (#26091)
  • tui: make :cquit work properly with remote TUI (#25313)
  • tui: make disabling title restore old title from stack (#23585)
  • tui: make setcellwidths() work for non-ambiwidth chars (#28322)
  • tui: position cursor at bottom-left before stopping (#23369)
  • tui: redraw on SIGWINCH even if size didn't change
  • tui: restore title before exiting alternate screen (#23776)
  • tui: start flush earlier (#26463)
  • tui: use buflen to calculate remaining buffer size (#26942)
  • tui: use uv_timer_t instead of TimeWatcher for input (#26435)
  • tui: v:argv does not report the original argv[0] #24015
  • tutor: Tutor steps don't work on Windows #25251
  • tutor: don't use concealed text in expected lines #24316
  • tutor: set a value for ":syntax iskeyword" (#27833)
  • type: remove incorrect arguments from vim.rpc*
  • types: add more annotations to eval.lua
  • types: add some return/parameter type annotations (#24867)
  • types: make filetype.add parameters optional
  • types: move type annotation for IterMod
  • types: rename win_get_config return type to win_config
  • typing: vim.fn.execute
  • typval: don't treat v:null as truthy (#23281)
  • ui: "resize -1" with cmdheight=0 #24758
  • ui: activating all ext capabilities without remote UI #28555
  • ui: adjust 'smoothscroll' for inner dimensions
  • ui: adjust the cursor when inserting virtual text
  • ui: always use stl/stlnc fillchars when drawing statusline (#25267)
  • ui: avoid ambiguity about chunk that clears part of line (#24982)
  • ui: cursor pos with left gravity inline virt_text at eol (#24329)
  • ui: delay win_viewport until screen update #24182
  • ui: doesn't trigger au event when enter is false
  • ui: don't force 'cmdheight' to zero with ext_messages
  • ui: don't send empty grid_line with redrawdebug=compositor (#23899)
  • ui: empty line before the next message after :silent command
  • ui: ext_cmdline should not move cursor to curwin
  • ui: fix cursor position with multiple inline virtual text
  • ui: fix edge case around flushing
  • ui: fix incorrect highlighting when virtual text next to match
  • ui: fix incorrect highlighting when virtual text wraps with number
  • ui: fix multi-byte characters highlight in virtual text
  • ui: fix overflowing nowrap virtual text not displaying if tab follows
  • ui: fix tabs not being spaced properly after virtual text with no wrap
  • ui: fix virtual text not displaying when two overlapping inlines (nowrap)
  • ui: fix visual and search highlighting interfering with virtual text
  • ui: fixes incorrect rendering when virtual text is not visable and nowrap
  • ui: handle virtual text with multiple hl in more cases (#25304)
  • ui: propagate line wrapping state on grid_line events
  • ui: set 'cmdheight' to zero for all open tabpages
  • ui: startup intro message should be visible with ext_multigrid
  • ui: trigger TabNewEntered after split new tab
  • ui: update ext_ui widgets when attaching non-remote UI
  • ui: wrong cursor position with left gravity inline virt text at eol
  • ui: wrong display with 0-width inline virt_text at eol (#24854)
  • ui-ext: "scroll_delta" handle topfill and skipcol (#24249)
  • ui-ext: send title to newly-attached UI
  • ui.open: some URLs fail on Windows
  • ui_client: check return code of dup()
  • ui_client: check return value of channel_job_start (#27729)
  • ui_compositor: only reset skipstart at first column (#24776)
  • undo: fix crash caused by checking undolevels in wrong buffer
  • unhide: close floating windows first (#25318)
  • unittests: ignore __s128 and __u128 types in ffi
  • usercmd: Fix buffer overflow in uc_list() (#23225)
  • userfunc: fix possible out of bound access
  • vim.deprecate: show deprecation warning in devel versions as well
  • vim.iter: use correct cmp function when truncating tail in take (#27998)
  • vim.region: handle multibyte inclusive selection properly (#26129)
  • vim.system: close check handle (#24270)
  • vim.system: don't process non-fast events during wait() (#27300)
  • vim.system: let on_exit handle cleanup after kill
  • vim.system: make timeout work properly
  • vim.ui: open() may wait indefinitely #28325
  • vim.ui.open: return (don't show) error message
  • vim.ui.open: try wslview before explorer.exe #28424
  • vim.ui.open: use explorer.exe instead of wslview #26947
  • watchfiles: skip Created events when poll starts (#23139)
  • window: :close crash if WinClosed from float closes window (#27794)
  • window: :close crash with autocmd, floats and tabpage (#27793)
  • window: :close may cause Nvim to quit with autocmd and float
  • window: don't go to unfocusable float when closing (#28455)
  • window: prevent win_size_restore from changing cmdheight
  • windows: set stdout to binary mode for --api-info

Performance

  • cache breakindent/showbreak width in win_lbr_chartabsize
  • don't decode utf8 character multiple times in getvcol()
  • improve utf_char2cells() performance (#27353)
  • remove loop for computing last position in getvcol()
  • remove redundant strlen in skipwhite (#26177)
  • reuse fast character size calculation algorithm from getvcol()
  • column: avoid counting when max signs are removed from a range
  • column: keep track of number of lines that hold up the 'signcolumn'
  • column: only invalidate lines affected by added sign
  • diagnostic: avoid table copies to filter by severity (#28491)
  • events: store autocommands in flat vectors (#23256)
  • extmarks: add metadata for efficient filtering of special decorations
  • extmarks: avoid unnecessary invalidations for virt_text (#27435)
  • extmarks: avoid unnecessary marktree traversal with folds (#24306)
  • extmarks: don't handle inline virt_text if there is none (#24322)
  • iter: make ListIter.totable more efficient (#23714)
  • iter: reduce number of table allocations
  • lsp: load buffer contents once when processing semantic tokens responses (#23484)
  • lsp: process semantic tokens response in a coroutine that yields every 5ms (#23375)
  • lsp: reduce polling handles for workspace/didChangeWatchedFiles (#23500)
  • lsp: remove grouping logic from lsp.status (#24096)
  • lsp: replace file polling on linux with per dir watcher (#26108)
  • lsp: use async fs_stat for file watching on linux (#26123)
  • lua: faster vim.deprecate() #28470
  • os/env: os_getenv() allocation when there is no env var set
  • redraw: only redraw Visual area when cursor has moved (#27340)
  • redraw: reduce redraw with undo and extmarks or 'spell' (#27442)
  • rtp: reduce rtp scans (#24191)
  • substitute: don't reallocate new_start every time (#24997)
  • treesitter: cache fold query (#24222)
  • treesitter: do not scan past given line for predicate match
  • treesitter: filter out trees outside the visible range early
  • treesitter: incremental foldupdate
  • treesitter: insert/remove items efficiently (#23443)
  • ui-ext: approximate scroll_delta when scrolling too much (#24234)
  • ui_client: skip some initialization not necessary for ui client

Build System

  • actually export symbols on mac
  • add "ci" configure preset to reduce verbosity
  • add CMAKE_C_FLAGS to --version output
  • add CMakePresets for deps build to reduce verbosity
  • add check to clint to prevent non-defs header includes
  • add function add_target
  • add luajit runtime files when installing (#23514)
  • add sub-targets to the doc target
  • add system lua include dir for lpeg
  • add ubsan default options
  • adjust clang-tidy warning exclusion logic
  • adjust how find order is prioritized
  • align .clang-format rules with uncrustify config
  • allow using system rocks
  • bump lpeg to 1.1.0 (#25016)
  • bump minimum cmake version to 3.13
  • bump required minimum libvterm version to 0.3.3
  • bump uncrustify to version 0.77
  • bump uncrustify to version 0.78.1
  • bump uncrustify version
  • bundle uncrustify
  • change dependency URLs to cache variables
  • cmake cleanup
  • cmake fixes
  • create BINARY_LIB_DIR directory before adding parser
  • create a text file for specifying dependency information
  • create helper function for simplifying luarocks installation
  • create separate targets for nvim with and without runtime files
  • disable UnusedIncludes from clangd
  • disable all compiler warnings from dependencies
  • disable conversion warnings for GCC
  • disable conversion warnings for older GCC versions
  • do not use GIT_REPOSITORY for local dependencies
  • don't allow Xcode as generator
  • don't define FUNC_ATTR_* as empty in headers (#26317)
  • don't format deleted files
  • don't print installed files locally
  • download busted from own neovim/deps repository
  • download dependencies with unreliable mirrors from deps repo
  • download libiconv and gettext from deps repository
  • drop diff.exe from windows builds
  • eliminate semicolons from --version string
  • enable ASAN for MSVC
  • enable IWYU on mac
  • enable formatting during rebase
  • enable lintlua for scripts/ dir #26391
  • enable lintlua for src/ dir #26395
  • enable lintlua for test/ dir
  • enable lintlua for test/unit/ dir #26396
  • enforce PREFER_LUA
  • ensure make clean doesn't remove source files
  • find system luv on ubuntu
  • fix "make iwyu" not working (#24873)
  • fix --luamod-dev not working properly (#24519)
  • fix link error for _BitScanForward64 (#28173)
  • fix parser installation location
  • fix uncrustify
  • fix universal mac builds
  • include all dependency directories when generating headers
  • introduce variable DEPS_IGNORE_SHA for skipping dependency hash check
  • make dependency URL variables non-cached (#23577)
  • make genappimage.sh work with existing CMAKE_INSTALL_PREFIX
  • make lpeg an imported library
  • make the vimdoc generation depend on the nvim target (#25876)
  • move luarocks and rocks installation to main build
  • remove BUSTED_PRG dead code (#23340)
  • remove LOG_DEBUG option
  • remove LOG_LIST_ACTIONS option and related code
  • remove PVS
  • remove USE_BUNDLED_BUSTED option
  • remove clint checks and style text covered by uncrustify
  • remove config-specific find_package search for libuv
  • remove duplicate include directories in --version output
  • remove functionaltest-lua target
  • remove git requirement
  • remove luarocks
  • remove uninstall target
  • reorder compiler option setting
  • reorganize cmake files
  • revert accidental permission changes (#23319)
  • rework --version generation
  • rework IWYU mapping files
  • rework formatting to use add_glob_target
  • set char to always be signed
  • set deps default build type to Release (#27495)
  • silence new clang-tidy warnings
  • stop installing parser.h from treesitter
  • suppress bugprone-reserved-identifier warnings
  • sync IWYU and clint to ignore the same headers (#26228)
  • update builtin terminfo (#27272)
  • update libtermkey commit
  • update uncrustify to 0.76
  • use -O3 optimization for release builds
  • use GIT_REPOSITORY for local URLs
  • use built nvim artifact to generate eval files (#25875)
  • use neovim/libtermkey instead of neovim/deps for libtermkey
  • use neovim/libvterm instead of neovim/deps for libvterm
  • use stylua with add_glob_target
  • various build improvements
  • various cmake fixes
  • various cmake fixes
  • various cmake fixes
  • various fixes
  • various fixes
  • various improvements
  • vendor libtermkey
  • IWYU: export generated headers
  • IWYU: fix headers for arabic.h
  • IWYU: fix includes for func_attr.h
  • IWYU: fix includes for undo_defs.h
  • IWYU: map everything in the C99 specification
  • IWYU: remove arabic_defs.h (#26235)
  • IWYU: replace most private mappings with pragmas (#26247)
  • IWYU: replace public-to-public mappings with pragmas (#26237)
  • Makefile: add nvim to oldtest phony target
  • PVS: exclude build directory
  • ci: ensure correct headers are used on macOS
  • clint: don't allow INIT() in non-header files (#27407)
  • clint: fix deprecation and linter warnings
  • clint: more precise check for "defs" headers (#26236)
  • deps: bump LibUV to HEAD (#22833)
  • deps: bump LuaJIT to HEAD - 1c2791270 (#23140)
  • deps: bump LuaJIT to HEAD - 224129a8e (#23405)
  • deps: bump libiconv to 1.17
  • deps: bump libmpack-lua to 1.0.11
  • deps: bump libuv to HEAD - 30fc896cc (#23636)
  • deps: bump libuv to v1.45.0 (#23684)
  • deps: bump libuv to v1.46.0 (#24218)
  • deps: bump libuv to v1.47.0
  • deps: bump libuv to v1.48.0
  • deps: bump libvterm to 0.3.3 (#24547)
  • deps: bump lua-compat-5.3 to v0.13
  • deps: bump luajit to HEAD - 03c31124c
  • deps: bump luajit to HEAD - 07b3cd3cf
  • deps: bump luajit to HEAD - 0afa1676b
  • deps: bump luajit to HEAD - 0d313b243
  • deps: bump luajit to HEAD - 113a168b7
  • deps: bump luajit to HEAD - 343ce0eda
  • deps: bump luajit to HEAD - 3ca0a8071
  • deps: bump luajit to HEAD - 41fb94def
  • deps: bump luajit to HEAD - 43d0a1915
  • deps: bump luajit to HEAD - 51fb2f2c3 (#23886)
  • deps: bump luajit to HEAD - 5a18d4582
  • deps: bump luajit to HEAD - 656ecbcf8
  • deps: bump luajit to HEAD - 69bbbf773
  • deps: bump luajit to HEAD - 72efc42ef
  • deps: bump luajit to HEAD - 75e927779
  • deps: bump luajit to HEAD - 7a77a3cd8
  • deps: bump luajit to HEAD - 83954100d
  • deps: bump luajit to HEAD - 8635cbabf (#24301)
  • deps: bump luajit to HEAD - 8af63f992
  • deps: bump luajit to HEAD - 97c75843c
  • deps: bump luajit to HEAD - 9cc2e42b1
  • deps: bump luajit to HEAD - b94fbfbee
  • deps: bump luajit to HEAD - becf5cc65
  • deps: bump luajit to HEAD - c525bcb90
  • deps: bump luajit to HEAD - d06beb048
  • deps: bump luajit to HEAD - d1a2fef8a
  • deps: bump luajit to HEAD - e826d0c10
  • deps: bump luajit to HEAD - e897c5743
  • deps: bump luajit to HEAD - f2336c48f
  • deps: bump luajit to HEAD - ff204d035
  • deps: bump luv to 1.45.0-0 (#24228)
  • deps: bump luv to 1.47.0-0
  • deps: bump luv to 1.48.0-1
  • deps: bump luv to HEAD - c1497c0ff
  • deps: bump luv to HEAD dcd1a1c
  • deps: bump luv to v1.48.0-0
  • deps: bump msgpack-c to v6.0.1
  • deps: bump tree-sitter to HEAD
  • deps: bump tree-sitter to HEAD - 0a1c4d846 (#24607)
  • deps: bump tree-sitter to HEAD - 321a65262 (#23261)
  • deps: bump tree-sitter to HEAD - 3f44b8968 (#24447)
  • deps: bump tree-sitter to HEAD - 46af27796
  • deps: bump tree-sitter to HEAD - 660481dbf
  • deps: bump tree-sitter to HEAD - 91e4d9401 (#23616)
  • deps: bump tree-sitter to HEAD - ab09ae20d
  • deps: bump tree-sitter to HEAD - af92bfc02 (#23151)
  • deps: bump tree-sitter to v0.20.9
  • deps: bump tree-sitter to v0.21.0
  • deps: bump tree-sitter to v0.22.2
  • deps: bump tree-sitter to v0.22.4
  • deps: bump tree-sitter to v0.22.5
  • deps: bump tree-sitter-bash to v0.20.4
  • deps: bump tree-sitter-bash to v0.20.5
  • deps: bump tree-sitter-c to v0.2.7
  • deps: bump tree-sitter-c to v0.20.4 (#24495)
  • deps: bump tree-sitter-c to v0.20.5
  • deps: bump tree-sitter-c to v0.20.6
  • deps: bump tree-sitter-c to v0.20.8
  • deps: bump tree-sitter-lua to v0.0.19
  • deps: bump tree-sitter-markdown to v0.1.7
  • deps: bump tree-sitter-python to v0.20.3 (#24446)
  • deps: bump tree-sitter-python to v0.20.4
  • deps: bump tree-sitter-vimdoc to v2.1.0
  • deps: bump treesitter-vimdoc to v2.2.0
  • deps: bump vimdoc parser to v2.5.1
  • deps: include Find module
  • deps: point dependencies to specific commit
  • deps: tree-sitter-vimdoc v2.0.1
  • deps: update lua parser and queries
  • docs: separate lint job to validate vimdoc #27227
  • iwyu: add a few more _defs.h mappings (#25435)
  • lint: remove unnecessary clint.py rules
  • lint: use stylua without add_glob_target
  • lua: vendor coxpcall
  • luarc.json: disable luadoc-miss-see-name #24108
  • makefile: remove a phony target uninstall (#24349)
  • nix: fix markdown parser #24225
  • nix: update flake to prevent build errors #28394
  • nix: update flake.lock
  • nix: update flake.lock
  • nix: update flake.lock (#26702)
  • nix: upgrade nixpkgs to resolve link error (#23101)
  • nix: use the correct versions of the bundled treesitter parsers
  • release.sh: regenerate docs after changing NVIM_API_PRERELEASE (#28229)
  • scripts: allow a git ref for lsp_types #24377
  • snap: remove obsolete snapcraft.yaml
  • terminfo: include user capabilities in comments (#28066)
  • uninstall: don't build if installation manifest not found
  • vim-patch.sh: dereference annotated tags when listing (#25042)
  • vim-patch.sh: don't add vim/vim to issue of another repo (#27493)
  • vim-patch.sh: don't use control chars in command (#25044)
  • vim-patch.sh: group co-authors together (#24686)
  • vim-patch.sh: ignore test_behave.vim (#23062)
  • vim-patch.sh: rename locale.c to os/lang.c (#24687)
  • vim-patch.sh: use bundled uncrustify (#23770)
  • vim-patch.sh: use older associative array syntax
  • vim-patch.sh: use sed -E for portable regexp (#24734)
  • windows: set longPathAware in manifest #28389

Vim patches

  • 0049a495c8d4 (#27817)
  • 00ae5c5cba7b
  • 00b470052b71
  • 02774f99cebc
  • 02902b547bdb (#25406)
  • 0378f07fbaee
  • 0382f05dbd65
  • 0401933a5be3
  • 046a0f75d025
  • 04e1aaa94e3b (#28570)
  • 04e5363b8238 (#28268)
  • 0549c503ba20
  • 0630080bbd3e (#26704)
  • 066103307534
  • 077ade4f6703 (#24629)
  • 08d2401fbc6d
  • 0b8b145bf8bf
  • 0cc6108fea21
  • 0e958410046a
  • 0f61943eb776
  • 100a665634a0
  • 103f1dfb7df3
  • 10b4f75d4c03 (#26846)
  • 10e8ff9b2607 (#23977)
  • 10f23e10a9f0
  • 118f8e9da39e
  • 122d06858568
  • 159dc0fcf950
  • 1610528cc305
  • 1624970d321c (#27582)
  • 1633de8c35fd
  • 1688938dd5ac
  • 17dca3cb97cd (#26584)
  • 1858e2b22ad1
  • 18ab6c3392ef
  • 18d730d7b572
  • 19968fc4ec2c
  • 1b08d2cd0789 (#25993)
  • 1b884a005398
  • 1bdc9435c1a1
  • 1c97b5c0c0b4
  • 1da0e8581671
  • 1e33cd72b60a
  • 20a94f44b3cd (#25946)
  • 20b33b56ad5d
  • 20d61e1b94e5
  • 20f48d5b2ddb
  • 2103a56eab5a (#26411)
  • 21064ebcd609
  • 211211052d04 (#27048)
  • 21aaff3faa82
  • 21ce159e0561
  • 2357765304e4
  • 244f01658f9c
  • 26b0176a98f8
  • 2708c0b5854f
  • 27a4632af675
  • 27e12c7669e3
  • 27f17a6d3493
  • 282a94be990f
  • 2a281ccca017
  • 2ac708b54866
  • 2ae7ffe0bc3c
  • 2b89afd5eb63
  • 2bbd0d30eebd (#25637)
  • 2c133f6c1a16
  • 2c51e15b66a4 (#27637)
  • 2dd613f57bf1 (#26009)
  • 2dfc22908e43 (#25485)
  • 2e9b9e9a9ebf
  • 2eb413f89b97 (#24627)
  • 2f25e40b1f54
  • 2f339aad6c80
  • 2f54c13292af
  • 309ded19543c
  • 30c762d99ac8
  • 315cd1fbcbba
  • 3170342af304
  • 323dda1484d9 (#26583)
  • 346ac1429c5a (#25239)
  • 347459423903
  • 34d15155fc45
  • 35e6f4ca27c8 (#27973)
  • 36e2c0f29332
  • 36e667ab837c (#28407)
  • 37468879977a
  • 374e26aba2e5 (#27617)
  • 379df7c1dbb2
  • 3a5b3df7764d (#26956)
  • 3ac2d3da5fdf
  • 3afc9f2556fa
  • 3b2c27415d7d
  • 3cb2b3776700 (#28283)
  • 3d37231437fc
  • 3d3a9152fa6d
  • 3d46de703cf6
  • 3e72bf10a0a2
  • 3f32a5f1601a
  • 3fc7a7e44abd
  • 4052474a1bd2 (#28358)
  • 408281e16a36
  • 442d1746f4c6
  • 44ff25d5243b (#24625)
  • 45da32964d6e
  • 46d67d22b9ba
  • 478668013f06
  • 4868f637b84a
  • 48ddc6a6f86f
  • 4b715bdaf4ca
  • 4ba70cab37d2 (#28338)
  • 4dbb2669e9ed
  • 4e043b1fc7ee
  • 4e554d282c50
  • 4f174f0de90b
  • 50dbe16cd818
  • 5277cfaf8afe (#25397)
  • 535b9e12d02f
  • 5392970921ab
  • 54e1f56cf2a5
  • 54f70cf0780a
  • 556c62165963
  • 564166f68184
  • 56b7da3c051f
  • 56bafd7a6a79
  • 589edb340454
  • 596a9f29c83a (#26146)
  • 596ad66d1ddb (#25102)
  • 5994329667a6
  • 5a33ce2a661f
  • 5a68cdf14915
  • 5c3855bcab42
  • 5ccdcc482e29
  • 5cd86c6cff94 (#27822)
  • 5d67aef3060d
  • 5e6e4042b1c9
  • 5eb9cb53d619
  • 5f4cc8ea65e8
  • 61887b3d6fd8
  • 61e984e212ed (#26484)
  • 62145db91b10
  • 62b26040eb4b
  • 636d32b32730
  • 63833bb0217f
  • 63c39e4ef749
  • 63d68c2c218e
  • 650dcfc8d12e
  • 65672ae1189e (#26767)
  • 6633611f4280
  • 675cbfb47f03 (#27806)
  • 677cd956810e
  • 67abf1592c83
  • 67c951df4c95
  • 6863084d3bd0
  • 690963924956
  • 691aee8b0705
  • 69866449ddb2
  • 6a500661a9cb
  • 6ce07edd600e (#28275)
  • 6d626c41842e
  • 6d91227267a5
  • 6e5a6c9965f6
  • 6e93689bde73
  • 6ebe4f970b8b
  • 6f438199c92b
  • 7159ac7fec28 (#24624)
  • 715a8058895f
  • 71b6d3397649
  • 71badf9547e8 (#23285)
  • 71cbe8e17a8c
  • 71d0ba07a33a
  • 72904d5fda0a
  • 733bbcde776e
  • 757714c0cba7
  • 760f664213de
  • 7687238e1b0d
  • 76d62985c1ff (#27985)
  • 772f8f542513
  • 78c189837ae6 (#27920)
  • 790f9a890cee
  • 79230f027a25
  • 79952b9c6774
  • 7b7cda67a124
  • 7c5aeaffa2be (#27327)
  • 7e2741100737
  • 7fbbd7fdc6df (#25944)
  • 8.0.0571: negative line number when using :z^ in an empty buffer (#24836)
  • 8.1.0815: dialog for file changed outside of Vim not tested (#28184)
  • 8.1.0822: peeking and flushing output slows down execution (#25629)
  • 8.1.0870: Vim doesn't use the new ConPTY support in Windows 10
  • 8.1.0970: text properties test fails when 'encoding' is not utf-8 (#26023)
  • 8.1.1160: termcodes test would fail in a very big terminal
  • 8.1.1165: no test for mouse clicks in the terminal tabpage line
  • 8.1.1167: no test for closing tab by click in tabline
  • 8.1.1175: no test for dragging a tab and double click for new tab
  • 8.1.1176: test for dragging a tab is flaky
  • 8.1.1178: when mouse click tests fails value of 'ttytype' is unknown
  • 8.1.1179: no test for mouse clicks in the fold column
  • 8.1.1181: tests for mouse clicks are a bit flaky
  • 8.1.1216: mouse middle click is not tested
  • 8.1.1223: middle mouse click test fails without a clipboard
  • 8.1.1244: no tests for CTRL-mouse-click
  • 8.1.1247: urxvt mouse codes are not tested
  • 8.1.1248: no test for dec mouse
  • 8.1.1521: when a popup window is closed the buffer remains (#26024)
  • 8.1.1581: shared functions for testing are disorganised
  • 8.1.1583: set_ref_in_list() only sets ref in items (#26418)
  • 8.1.1968: crash when using nested map() (#27029)
  • 8.1.2044: no easy way to process postponed work
  • 8.1.2046: SafeState may be triggered at the wrong moment
  • 8.1.2047: cannot check the current state
  • 8.1.2048: not clear why SafeState and SafeStateAgain are not triggered
  • 8.1.2053: SafeStateAgain not triggered if callback uses feedkeys()
  • 8.1.2062: the mouse code is spread out (#24817)
  • 8.1.2066: no tests for state()
  • 8.1.2067: no tests for SafeState and SafeStateAgain
  • 8.1.2068: test for SafeState and SafeStateAgain may fail
  • 8.1.2069: test for SafeStateAgain may still fail
  • 8.1.2094: the fileio.c file is too big
  • 8.1.2099: state() test fails on some Mac systems
  • 8.1.2106: no tests for dragging the mouse beyond the window
  • 8.1.2148: no test for right click extending Visual area
  • 8.1.2276: MS-Windows: session test leaves files behind
  • 8.1.2306: double and triple clicks are not tested
  • 8.1.2373: cannot build with +popupwin but without +quickfix
  • 8.1.2403: autocmd test fails under valgrind
  • 8.2.0066: some corners of vim_snprintf() are not tested (#24718)
  • 8.2.0085: dead code in builtin functions (#27281)
  • 8.2.0101: crash when passing null object to ":echomsg"
  • 8.2.0102: messages test fails in small version
  • 8.2.0103: using null object with execute() has strange effects
  • 8.2.0104: using channel or job with ":execute" has strange effects
  • 8.2.0117: crash when using gettabwinvar() with invalid arguments (#27280)
  • 8.2.0186: a couple of tests may fail when features are missing
  • 8.2.0195: some tests fail when run in the GUI
  • 8.2.0310: autocmd test fails on a slow system
  • 8.2.0454: some tests fail when the system is slow
  • 8.2.0533: tests using term_wait() can still be flaky
  • 8.2.0551: not all code for options is tested
  • 8.2.0578: heredoc for interfaces does not support "trim"
  • 8.2.0633: crash when using null partial in filter()
  • 8.2.0634: crash with null partial and blob
  • 8.2.0672: heredoc in scripts does not accept lower case marker
  • 8.2.0981: Vim9: cannot compile "[var, var] = list" (#28247)
  • 8.2.0987: Vim9: cannot assign to [var; var]
  • 8.2.1014: using "name" for a string result is confusing
  • 8.2.1047: Vim9: script cannot use line continuation like :def function
  • 8.2.1049: Vim9: leaking memory when using continuation line
  • 8.2.1062: Vim9: no line break allowed inside "cond ? val1 : val2"
  • 8.2.1063: Vim9: no line break allowed before || or &&
  • 8.2.1064: Vim9: no line break allowed before comperators
  • 8.2.1065: Vim9: no line break allowed inside a list
  • 8.2.1068: Vim9: no line break allowed inside a dict
  • 8.2.1069: Vim9: fail to check for white space in list
  • 8.2.1071: Vim9: no line break allowed inside a lambda
  • 8.2.1073: Vim9: no line break allowed in () expression
  • 8.2.1074: Vim9: no line break allowed after some operators
  • 8.2.1075: Vim9: no line break allowed in :echo expression
  • 8.2.1076: Vim9: no line break allowed in :if expression
  • 8.2.1079: Vim9: no line break allowed in a while loop
  • 8.2.1080: Vim9: no line break allowed in a for loop
  • 8.2.1098: Vim9: cannot use line break in :throw argument
  • 8.2.1099: Vim9: cannot use line break in :cexpr argument
  • 8.2.1100: Vim9: cannot use line break in :execute argument
  • 8.2.1103: Coverity reports an unnecessary NULL check
  • 8.2.1108: mouse left-right scroll is not supported in terminal window
  • 8.2.1110: Vim9: line continuation does not work in function arguments
  • 8.2.1111: inconsistent naming of get_list_tv() and eval_dict() (#23086)
  • 8.2.1125: Vim9: double quote can be a string or a comment
  • 8.2.1161: Vim9: using freed memory
  • 8.2.1162: crash when using a lambda
  • 8.2.1189: Vim9: line continuation in lambda doesn't always work
  • 8.2.1203: unused assignments in expression evaluation
  • 8.2.1378: cannot put space between function name and paren
  • 8.2.1461: Vim9: string indexes are counted in bytes
  • 8.2.1462: Vim9: string slice not supported yet
  • 8.2.1463: Vim9: list slice not supported yet
  • 8.2.1466: Vim9: cannot index or slice a variable with type "any"
  • 8.2.1466: Vim9: cannot index or slice a variable with type "any"
  • 8.2.1512: failure after trinary expression fails
  • 8.2.1524: no longer get an error for string concatenation with float
  • 8.2.1697: inconsistent capitalization of error messages (#23476)
  • 8.2.1746: Vim9: cannot use "fina" for "finally" (#23497)
  • 8.2.1794: no falsy Coalescing operator
  • 8.2.1798: Vim9: trinary operator condition is too permissive
  • 8.2.1945: crash when passing NULL function to reduce()
  • 8.2.1953: Vim9: extra "unknown" error after other error
  • 8.2.1969: Vim9: map() may change the list or dict item type
  • 8.2.1971: memory leak when map() fails
  • 8.2.1978: making a mapping work in all modes is complicated
  • 8.2.2062: does not handle CTRL-V
  • 8.2.2075: error for const argument to mapnew()
  • 8.2.2094: when an expression fails getting next command may be wrong
  • 8.2.2112: running tests may leave some files behind
  • 8.2.2138: Vim9: "exit_cb" causes Vim to exit (#23087)
  • 8.2.2141: a user command with try/catch may not catch an expression error
  • 8.2.2172: Vim9: number of arguments is not always checked (#23142)
  • 8.2.2249: termcodes test is flaky when used over ssh
  • 8.2.2318: Vim9: string and list index work differently
  • 8.2.2332: Vim9: missing :endif not reported when using :windo (#28482)
  • 8.2.2344: using inclusive index for slice is not always desired
  • 8.2.2356: Vim9: ":put =expr" does not handle a list properly
  • 8.2.2459: Coverity reports dead code (#23531)
  • 8.2.2533: Vim9: cannot use a range with :unlet
  • 8.2.2605: Vim9: string index and slice does not include composing chars
  • 8.2.2607: strcharpart() cannot include composing characters
  • 8.2.2610: mouse click test fails when using remote connection
  • 8.2.2756: Vim9: blob index and slice not implemented yet
  • 8.2.2784: Vim9: cannot use =expr in :substitute
  • 8.2.2848: crash whn calling partial
  • 8.2.2857: Vim9: exception in ISN_INSTR caught at wrong level (#23131)
  • 8.2.2858: test fails because of changed error message (#23647)
  • 8.2.2908: crash when using a terminal popup window from cmdline window
  • 8.2.2910: test for cmdline window and terminal fails on MS-Windows
  • 8.2.2948: substitute() accepts a number but not a float expression
  • 8.2.2949: tests failing because no error for float to string conversion
  • 8.2.2977: crash when using a null function reference
  • 8.2.2978: warning for uninitialized variable
  • 8.2.2985: Vim9: a compiled function cannot be debugged
  • 8.2.2996: Vim9: when debugging cannot inspect local variables
  • 8.2.3003: Vim9: closure compiled with wrong compile type
  • 8.2.3011: Vim9: cannot get argument values during debugging
  • 8.2.3013: Vim: when debugging only first line of command is displayed
  • 8.2.3017: Vim9: debugger shows too many lines
  • 8.2.3026: Vim9: cannot set breakpoint in compiled function
  • 8.2.3027: Vim9: breakpoint in compiled function not always checked
  • 8.2.3039: Vim9: breakpoint at a comment line does not work
  • 8.2.3064: Vim9: in script cannot set item in uninitialized list (#25605)
  • 8.2.3066: Vim9: debugging lambda does not work
  • 8.2.3086: Vim9: breakpoint on "for" does not work
  • 8.2.3096: temp files remain after running tests
  • 8.2.3116: Vim9: crash when debugging a function with line continuation
  • 8.2.3135: Vim9: builtin function arguments not checked at compile time
  • 8.2.3138: debugger test fails
  • 8.2.3139: functions for string manipulation are spread out (#23316)
  • 8.2.3191: Vim9: not enough code is tested
  • 8.2.3202: Vim9: tests are only executed for legacy script
  • 8.2.3216: Vim9: crash when using variable in a loop at script level
  • 8.2.3221: Vim9: argument types are not checked at compile time (#23480)
  • 8.2.3314: behavior of exists() in a :def function is unpredictable (#23317)
  • 8.2.3329: v_lock not set when getting value of environment variable
  • 8.2.3332: Vim9: cannot assign to range in list
  • 8.2.3333: Vim9: not enough tests run with Vim9
  • 8.2.3334: Vim9: not enough tests run with Vim9
  • 8.2.3336: behavior of negative index in list change changed
  • 8.2.3338: Vim9: no type check when assigning a list range
  • 8.2.3395: Vim9: expression breakpoint not checked in :def function
  • 8.2.3415: Vim9: not all function argument types are properly checked (#28362)
  • 8.2.3439: deleted lines go to wrong yank register
  • 8.2.3467: CursorHoldI event interferes with "CTRL-G U" (#25383)
  • 8.2.3509: undo file is not synced (#23371)
  • 8.2.3517: TextChanged does not trigger after TextChangedI (#25384)
  • 8.2.3518: Test_xrestore sometimes fails
  • 8.2.3689: ex_let_one() is too long (#23830)
  • 8.2.3695: confusing error for missing key (#26420)
  • 8.2.3768: timer_info() has the wrong repeat value in a timer callback
  • 8.2.3772: timer info test fails on slow machine
  • 8.2.3782: Vim9: no error if a function shadows a script variable (#27881)
  • 8.2.3783: confusing error for using a variable as a function
  • 8.2.3786: test fails because of using Vim9 syntax in legacy function
  • 8.2.3818: cannot filter or map characters in a string
  • 8.2.3822: leaking memory in map() and filter(), no string in Vim9
  • 8.2.3833: error from term_start() not caught by try/catch
  • 8.2.3848: cannot use reduce() for a string
  • 8.2.3852: Vim9: not enough tests
  • 8.2.3853: Vim9: not enough tests
  • 8.2.3856: Vim9: not enough tests
  • 8.2.3862: crash on exit with EXITFREE and using win_execute()
  • 8.2.3867: implementation of some list functions too complicated (#24757)
  • 8.2.3887: E1135 is used for two different errors
  • 8.2.3908: cannot use a script-local function for 'foldtext'
  • 8.2.3915: illegal memory access when completing with invalid bytes (#27491)
  • 8.2.3982: some lines of code not covered by tests
  • 8.2.3984: debugger test fails
  • 8.2.4020: debugger test fails
  • 8.2.4055: Vim9: line break in expression causes v:errmsg to be fillec (#23090)
  • 8.2.4073: Coverity warns for using NULL pointer
  • 8.2.4075: test failures
  • 8.2.4078: terminal test for current directory not used on FreeBSD (#25961)
  • 8.2.4098: typing "interrupt" at debug prompt may keep exception around (#28161)
  • 8.2.4140: maparg() does not indicate the type of script
  • 8.2.4173: cannot use an import in 'foldexpr' (#25215)
  • 8.2.4179: 'foldtext' is evaluated in the current script context
  • 8.2.4180: 'balloonexpr' is evaluated in the current script context
  • 8.2.4181: Vim9: cannot use an import in 'diffexpr'
  • 8.2.4182: memory leak when evaluating 'diffexpr'
  • 8.2.4183: cannot use an import in 'formatexpr'
  • 8.2.4184: cannot use an import in 'includeexpr'
  • 8.2.4185: cannot use an import in 'indentexpr'
  • 8.2.4186: cannot use an import in 'patchexpr'
  • 8.2.4193: cannot use an import in 'charconvert'
  • 8.2.4197: cannot use an import in the "expr" part of 'spellsuggest'
  • 8.2.4208: using setbufvar() may change the window title
  • 8.2.4210: window title test fails in some configurations
  • 8.2.4211: window title test still fails in some configurations
  • 8.2.4212: window title test still fails in some configurations
  • 8.2.4299: SafeState autocommand interferes with debugging
  • 8.2.4339: CTRL-A does not work properly with the cmdline popup menu
  • 8.2.4361: Vim9: some tests fail
  • 8.2.4373: expression test fails
  • 8.2.4395: some code lines not covered by tests (#28248)
  • 8.2.4397: crash when using many composing characters in error message (#23481)
  • 8.2.4450: list sort test fails
  • 8.2.4451: sort() fails when ignoring case
  • 8.2.4455: accepting one and zero for second sort() argument is strange
  • 8.2.4476: operator name spelled wrong
  • 8.2.4497: wrong color for half of wide character next to pum scrollbar (#25693)
  • 8.2.4541: Crash in debugger when a variable is not available
  • 8.2.4598: profile completion test sometimes fails (#23208)
  • 8.2.4600: Vim9: not enough test coverage for executing :def function (#24001)
  • 8.2.4609: :unhide does not check for failing to close a window (#25317)
  • 8.2.4611: typos in tests; one lua line not covered by test (#24835)
  • 8.2.4685: when a swap file is found for a popup there is no dialog (#26207)
  • 8.2.4716: memory allocation failure not tested when defining a function (#23117)
  • 8.2.4770: cannot easily mix expression and heredoc
  • 8.2.4783: Coverity warns for leaking memory
  • 8.2.4809: various things no6 properly tested (#26017)
  • 8.2.4820: not simple programmatic way to find a specific mapping
  • 8.2.4825: can only get a list of mappings
  • 8.2.4840: heredoc expression evaluated even when skipping
  • 8.2.4850: mksession mixes up "tabpages" and "curdir" arguments
  • 8.2.4861: it is not easy to restore saved mappings
  • 8.2.4883: string interpolation only works in heredoc
  • 8.2.4890: inconsistent capitalization in error messages
  • 8.2.4892: test failures because of changed error messages
  • 8.2.4930: interpolated string expression requires escaping
  • 8.2.4932: not easy to filter the output of maplist()
  • 8.2.4934: string interpolation fails when not evaluating
  • 8.2.4944: text properties are wrong after "cc" (#27821)
  • 8.2.4950: text properties position wrong after shifting text (#27849)
  • 8.2.5019: cannot get the first screen column of a character (#23312)
  • 8.2.5077: various warnings from clang on MS-Windows (#27773)
  • 8.2.{0695,0725,0734,0753,0818,0819,0822} (#23075)
  • 807fff135d52
  • 80beeef0c6a4
  • 813a538bb3ce
  • 817db406bb12
  • 81b8bf5b4a33
  • 82f19734bfcb
  • 83424105cb42 (#28298)
  • 83f627ff42a3
  • 86cfb39030eb
  • 87410ab3f556 (#27696)
  • 8750e3cf81f1 (#26163)
  • 8967f6c4b9e2 (#24626)
  • 89cc03af71d9 (#28168)
  • 8a31de6dd275 (#28361)
  • 8b2457a38198
  • 8e59a7ba8877
  • 8ebdbc9e6d80 (#25816)
  • 8f566fdb1e34 (#24636)
  • 8fad5d58874e
  • 9.0.0048: cursor in wrong column with mouse click after concealed text
  • 9.0.0064: confusing error when using "q:" in command line window
  • 9.0.0077: wrong restored cursor position when switching window in autocmd
  • 9.0.0104: going beyond allocated memory when evaluating string constant
  • 9.0.0130: cursor position wrong when inserting around virtual text
  • 9.0.0137: debugger test may fail when $CWD is very long
  • 9.0.0138: not enough characters accepted for 'spellfile'
  • 9.0.0143: cursor positioned after virtual text in empty line
  • 9.0.0175: spell checking for capital not working with trailing space
  • 9.0.0178: cursor position wrong with virtual text before Tab
  • 9.0.0179: cursor pos wrong with wrapping virtual text in empty line
  • 9.0.0183: extra space after virtual text when 'linebreak' is set
  • 9.0.0205: cursor in wrong position when inserting after virtual text
  • 9.0.0210: 'list' mode does not work properly with virtual text
  • 9.0.0213: using freed memory with error in assert argument
  • 9.0.0218: reading before the start of the line
  • 9.0.0240: crash when using ":mkspell" with an empty .dic file
  • 9.0.0245: mechanism to prevent recursive screen updating is incomplete (#27448)
  • 9.0.0249: no test for what 9.0.0234 fixes
  • 9.0.0250: slightly inconsistent error messages
  • 9.0.0269: getscriptinfo() does not include the version
  • 9.0.0303: it is not easy to get information about a script
  • 9.0.0313: using common name in tests leads to flaky tests
  • 9.0.0335: checks for Dictionary argument often give a vague error (#23309)
  • 9.0.0336: tests are flaky because of using a common file name
  • 9.0.0359: error message for wrong argument type is not specific
  • 9.0.0369: a failing flaky test doesn't mention the time
  • 9.0.0370: cleaning up afterwards can make a function messy
  • 9.0.0372: MS-Windows: "%T" time format does not appear to work
  • 9.0.0379: cleaning up after writefile() is a hassle
  • 9.0.0380: deleting files in tests is a hassle
  • 9.0.0390: cannot use a partial with :defer
  • 9.0.0391: using separate delete() call instead of writefile() 'D' flag
  • 9.0.0397: :defer not tested with exceptions and ":qa!"
  • 9.0.0398: members of funccall_T are inconsistently named (#23123)
  • 9.0.0404: crash when passing invalid arguments to assert_fails()
  • 9.0.0406: deferred functions not invoked when partial func exits
  • 9.0.0411: only created files can be cleaned up with one call
  • 9.0.0415: on MS-Windows some tests are flaky
  • 9.0.0419: the :defer command does not check the function arguments
  • 9.0.0423: "for" and "while" not recognized after :vim9cmd and :legacy (#24825)
  • 9.0.0425: autocmd test is a bit flaky on MS-Windows
  • 9.0.0426: failed flaky tests reports only start time
  • 9.0.0428: autocmd test uses common file name
  • 9.0.0490: using freed memory with cmdwin and BufEnter autocmd
  • 9.0.0492: cmdwin test fails on MS-Windows
  • 9.0.0514: terminal test sometimes hangs
  • 9.0.0525: manually deleting temp test files
  • 9.0.0543: insufficient testing for assert and test functions
  • 9.0.0545: when a test is slow and CI times out there is no time info
  • 9.0.0548: reduce() with a compiled lambda could be faster
  • 9.0.0560: elapsed time since testing started is not visible
  • 9.0.0561: when a test gets stuck it just hangs forever
  • 9.0.0579: using freed memory when 'tagfunc' wipes out buffer (#24838)
  • 9.0.0581: adding a character for incsearch fails at end of line
  • 9.0.0590: after exiting Insert mode spelling not checked in next line
  • 9.0.0598: using negative array index with negative width window
  • 9.0.0601: too much indent (#23472)
  • 9.0.0607: verbose echo message test fails on Mac OS
  • 9.0.0608: with spelling, deleting a full stop does not update next line
  • 9.0.0609: blockedit test fails because of wrong indent
  • 9.0.0612: blockedit test passes with wrong result
  • 9.0.0621: filetype test leaves file behind (#23125)
  • 9.0.0640: cannot scroll by screen line if a line wraps
  • 9.0.0642: breakindent test fails
  • 9.0.0643: smoothscroll test fails
  • 9.0.0644: 'smoothscroll' is not copied to a new window on :split
  • 9.0.0645: CTRL-Y does not stop at line 1
  • 9.0.0646: with 'smoothscroll' CTRL-E is wrong when 'foldmethod' set
  • 9.0.0649: no indication the first line is broken for 'smoothscroll'
  • 9.0.0650: some tests are failing
  • 9.0.0652: 'smoothscroll' not tested with 'number' and "n" in 'cpo'
  • 9.0.0654: breakindent test fails
  • 9.0.0662: concealed characters do not work correctly (#23454)
  • 9.0.0664: bad redrawing with spell checking, using "C" and "$" in 'cpo'
  • 9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'
  • 9.0.0672: line partly shows with 'smoothscroll' and 'scrolloff' zero
  • 9.0.0673: first line wong with 'smoothscroll' and 'scrolloff' zero
  • 9.0.0677: breakindent test accepts wrong result
  • 9.0.0679: tests failing with 'smoothscroll', 'number' and "n" in 'cpo'
  • 9.0.0680: tests failing with 'breakindent', 'number' and "n" in 'cpo'
  • 9.0.0681: "<<<" shows for 'smoothscroll' even when 'showbreak is set
  • 9.0.0701: with 'smoothscroll' cursor position not adjusted in long line
  • 9.0.0707: with 'smoothscroll' cursor position not adjusted in long line
  • 9.0.0716: with 'nowrap' virtual text "after" does not scroll left
  • 9.0.0734: cursor position invalid when scrolling with 'smoothscroll'
  • 9.0.0735: breakindent and scrolloff tests fail
  • 9.0.0745: wrong cursor position when using "gj" and "gk" in a long line
  • 9.0.0746: breakindent test cases are commented out
  • 9.0.0751: 'scrolloff' does not work well with 'smoothscroll'
  • 9.0.0757: line number not visisble with 'smoothscroll', 'nu' and 'rnu'
  • 9.0.0758: "precedes" from 'listchars' overwritten by <<<
  • 9.0.0760: display test for 'listchars' "precedes" fails
  • 9.0.0783: ":!" doesn't do anything but does update the previous command
  • 9.0.0785: memory leak with empty shell command
  • 9.0.0807: with 'smoothscroll' typing "0" may not go to the first column
  • 9.0.0815
  • 9.0.0817
  • 9.0.0820: memory leak with empty shell command
  • 9.0.0825: cannot drag an entry in the tabpage line
  • 9.0.0837: append() reports failure when not appending anything
  • 9.0.0846: using assert_fails() may cause hit-enter prompt
  • 9.0.0854: no proper test for what 9.0.0846 fixes
  • 9.0.0864: crash when using "!!" without a previous shell command
  • 9.0.0875: using freed memory when executing delfunc at more prompt (#23314)
  • 9.0.0886: horizontal mouse scroll only works in the GUI
  • 9.0.0892: may redraw when not needed
  • 9.0.0893: 'smoothscroll' cursor calculations wrong when 'number' is set
  • 9.0.0898: with 'smoothscroll' cursor is one screen line too far down
  • 9.0.0900: cursor moves too far with 'smoothscroll'
  • 9.0.0901: setting w_leftcol and handling side effects is confusing
  • 9.0.0902: some mouse scroll code is not in a good place
  • 9.0.0904: various comment and indent flaws (#23498)
  • 9.0.0906: mouse scroll code is not optimal
  • 9.0.0908: with 'smoothscroll' cursor may end up in wrong position
  • 9.0.0911: with 'smoothscroll' set mouse click position may be wrong
  • 9.0.0944: 'cursorline' causes virtual text highlight to continue
  • 9.0.0947: invalid memory access in substitute with function (#23126)
  • 9.0.0998: "gk" may reset skipcol when not needed
  • 9.0.1000: with 'smoothscroll' skipcol may be reset unnecessarily
  • 9.0.1007: there is no way to get a list of swap file names
  • 9.0.1008: test for swapfilelist() fails on MS-Windows
  • 9.0.1009: test for catch after interrupt is flaky on MS-Windows
  • 9.0.1010: stray warnings for existing swap files
  • 9.0.1012: tests may get stuck in buffer with swap file
  • 9.0.1020: tests call GetSwapFileList() before it is defined
  • 9.0.1021: test trips over g:name
  • 9.0.1028: mouse shape test is flaky, especially on Mac OS (#23455)
  • 9.0.1034: reporting swap file when windows are split
  • 9.0.1064: code for making 'shortmess' temporarily empty is repeated
  • 9.0.1067: in diff mode virtual text is highlighted incorrectly
  • 9.0.1084: code handling low level MS-Windows events cannot be tested
  • 9.0.1105: code is indented too much (#27314)
  • 9.0.1121: cursor positioning and display problems with 'smoothscroll'
  • 9.0.1141: 'cursorcolumn' and 'colorcolumn' wrong after concealing
  • 9.0.1143: invalid memory access with bad 'statusline' value (#23133)
  • 9.0.1145: invalid memory access with recursive substitute expression (#23132)
  • 9.0.1247: divide by zero with 'smoothscroll' set and a narrow window
  • 9.0.1293: the set_num_option() is too long
  • 9.0.1294: the set_bool_option() function is too long
  • 9.0.1308: the code for setting options is too complicated
  • 9.0.1311: Coverity warns for using a NULL pointer
  • 9.0.1330: handling new value of an option has a long "else if" chain
  • 9.0.1335: no test for bad use of spaces in help files (#24483)
  • 9.0.1336: functions without arguments are not always declared properly
  • 9.0.1345: too many "else if" statements for handling options
  • 9.0.1353: too many "else if" statements to handle option values
  • 9.0.1359: too many "else if" statements in handling options
  • 9.0.1366: functions for setting options are in random order (#25440)
  • 9.0.1367: divide by zero in zero-width window
  • 9.0.1369: still some "else if" constructs for setting options
  • 9.0.1372: test for 'toolbariconsize' may fail
  • 9.0.1374: function for setting options not used consistently
  • 9.0.1400: find_file_in_path() is not reentrant (#23146)
  • 9.0.1416: crash when collection is modified when using filter()
  • 9.0.1431: getscriptinfo() loops even when specific SID is given
  • 9.0.1435: scrolling too many lines when 'wrap' and 'diff' are set
  • 9.0.1437: test fails with different error number (#27074)
  • 9.0.1442: mapset() does not restore non-script context (#22942)
  • 9.0.1443: ending Insert mode when accessing a hidden prompt buffer (#22984)
  • 9.0.1444: crash when passing NULL to setcmdline() (#23048)
  • 9.0.1446: unnecessary checks for the "skip" flag when skipping
  • 9.0.1447: condition is always true
  • 9.0.1449: test for prompt buffer is flaky (#23076)
  • 9.0.1451: unnecessary redrawing when 'showcmdloc' is not "last"
  • 9.0.1452: code using EVAL_CONSTANT is dead, it is never set
  • 9.0.1455: C++ 20 modules are not recognized (#23124)
  • 9.0.1456: shortmess test depends on order of test execution
  • 9.0.1460: insufficient testing for getcmdcompltype() (#23159)
  • 9.0.1461: ruler not drawn correctly when using 'rulerformat'
  • 9.0.1462: recursively calling :defer function if it does :qa
  • 9.0.1464: strace filetype detection is expensive (#23175)
  • 9.0.1467: Jenkinsfiles are not recognized as groovy (#23195)
  • 9.0.1468: recursively calling :defer function if it does :qa
  • 9.0.1469: deferred functions not called from autocommands
  • 9.0.1470: deferred functions invoked in unexpected order (#23199)
  • 9.0.1472: ":drop fname" may change the last used tab page (#23230)
  • 9.0.1475: busted configuration files are not recognized (#23266)
  • 9.0.1476: lines put in non-current window are not displayed (#23265)
  • 9.0.1477: crash when recovering from corrupted swap file (#23273)
  • 9.0.1478: filetypes for *.v files not detected properly (#23282)
  • 9.0.1479: small source file problems; outdated list of distrib. files (#23272)
  • 9.0.1485: no functions for converting from/to UTF-16 index (#23318)
  • 9.0.1490: the ModeChanged event may be triggered too often
  • 9.0.1491: wrong scrolling with ls=0 and :botright split (#23333)
  • 9.0.1492: using uninitialized memory when argument is missing (#23351)
  • 9.0.1493: popup menu position wrong in window with toolbar
  • 9.0.1494: crash when recovering from corrupted swap file (#23358)
  • 9.0.1497: the ruler percentage can't be localized (#23389)
  • 9.0.1499: using uninitialized memory with fuzzy matching (#23399)
  • 9.0.1500: The falsy operator is not tested properly (#23407)
  • 9.0.1502: no test for deleting the end of a long wrapped line
  • 9.0.1503: Luau files are not recognized (#23412)
  • 9.0.1505: error when heredoc content looks like heredoc (#23446)
  • 9.0.1506: line number not displayed when using 'smoothscroll' (#23453)
  • 9.0.1507: assert message is confusing with boolean result
  • 9.0.1508: catch does not work when lines are joined with a newline
  • 9.0.1511: crash when using wrong arg types to assert_match() (#23507)
  • 9.0.1512: inserting lines when scrolling with 'smoothscroll' set
  • 9.0.1513: text scrolls unnecessarily when splitting
  • 9.0.1514: test waits unnecessarily long before checking screendump (#23516)
  • 9.0.1515: reverse() does not work for a String
  • 9.0.1516: cannot use special keys in mapping
  • 9.0.1518: search stats not always visible when searching backwards (#23517)
  • 9.0.1520: completion for option name includes all bool options (#23518)
  • 9.0.1521: failing redo of command with control characters
  • 9.0.1522: some functions give two error messages
  • 9.0.1523: some error messages are not marked for translation (#23529)
  • 9.0.1524: passing -1 for bool is not always rejected
  • 9.0.1525: 'smoothscroll' does not always work properly (#23544)
  • 9.0.1526: condition is always true (#23541)
  • 9.0.1530: cursor moves to wrong line when 'foldmethod' is "diff"
  • 9.0.1532: crash when expanding "~" in substitute causes very long text
  • 9.0.1533: test for 'smoothscroll' is ineffective
  • 9.0.1534: test for expanding "~" in substitute takes too long
  • 9.0.1535: test commented out in a wrong way
  • 9.0.1538: :wqall does not trigger ExitPre (#23574)
  • 9.0.1539: typst filetype is not recognized (#23578)
  • 9.0.1540: reverse() on string doesn't work in compiled function
  • 9.0.1542: line not fully displayed if it doesn't fit in the screen
  • 9.0.1543: display errors when making topline shorter
  • 9.0.1545: text not scrolled when cursor moved with "g0" and "h" (#23599)
  • 9.0.1546: some commands for opening a file don't use 'switchbuf' (#23600)
  • 9.0.1549: USD filetype is not recognized (#23608)
  • 9.0.1551: position of marker for 'smoothscroll' not computed correctly (#23617)
  • 9.0.1554: code for handling 'switchbuf' is repeated (#23632)
  • 9.0.1555: setcharsearch() does not clear last searched char properly (#23631)
  • 9.0.1561: display wrong when moving cursor to above the top line (#23644)
  • 9.0.1564: display moves up and down with 'incsearch' and 'smoothscroll'
  • 9.0.1565: json lines files are not recognized (#23677)
  • 9.0.1568: with 'smoothscroll' cursor may move below botline
  • 9.0.1575: "file N of M" message is not translated (#23737)
  • 9.0.1578: SpellCap highlight not always updated when needed (#23755)
  • 9.0.1580: CI: indent test hangs on FreeBSD (#23768)
  • 9.0.1582: :stopinsert may not work in a popup close handler (#23785)
  • 9.0.1583: get E304 when using 'cryptmethod' "xchacha20v2" (#23790)
  • 9.0.1584: not all meson files are recognized (#23797)
  • 9.0.1585: weird use of static variables for spell checking
  • 9.0.1586: error for using two messages with ngettext() differing in "%" (#23816)
  • 9.0.1587: Corn config files are not recognized (#23807)
  • 9.0.1588: Incsearch not triggered when pasting clipboard register (#23817)
  • 9.0.1591: some "gomod" files are not recognized (#23820)
  • 9.0.1595: line pointer becomes invalid when using spell checking
  • 9.0.1596: :registers command does not work in sandbox (#23866)
  • 9.0.1597: cursor ends up below the window after a put (#23873)
  • 9.0.1598: screenchar() and others are wrong with DBCS 'encoding' (#23872)
  • 9.0.1599: Cursor not adjusted when 'splitkeep' is not "cursor" (#23884)
  • 9.0.1600: screenpos() does not take w_skipcol into account
  • 9.0.1601: filetype detection fails for *.conf file without comments (#23896)
  • 9.0.1602: stray character visible if marker on top of double-wide char (#23897)
  • 9.0.1603: display wrong if scrolling multiple lines with 'smoothscroll'
  • 9.0.1606: using freed memory when 'foldcolumn' is set (#23906)
  • 9.0.1607: screenpos() returns wrong row with diff filler lines
  • 9.0.1608: update_topline() is called twice (#23920)
  • 9.0.1610: display is wrong when 'smoothscroll' is set
  • 9.0.1612: "skipcol" not reset when using multi-byte characters (#23928)
  • 9.0.1613: some make output gets picked up by 'errorformat' (#23926)
  • 9.0.1614: strlen() called too often for :spellrepall (#23940)
  • 9.0.1615: URL shortcut files are not recognized (#23950)
  • 9.0.1616: quickfix text field is truncated (#23951)
  • 9.0.1617: charidx() result is not consistent with byteidx() (#23963)
  • 9.0.1618: Trace32 files are not recognized (#23960)
  • 9.0.1620: Nix files are not recognized from the hashbang line (#23961)
  • 9.0.1621: FILETYPE_FILE is defined to the same value multiple times (#23965)
  • 9.0.1622: filetype name t32 is a bit obscure (#23967)
  • 9.0.1626: Visual area not shown when using 'showbreak' (#23978)
  • 9.0.1629: having utf16idx() rounding up is inconvenient (#24019)
  • 9.0.1631: passing wrong variable type to option gives multiple errors (#24026)
  • 9.0.1632: not all cabal config files are recognized (#24025)
  • 9.0.1633: duplicate code for converting float to string
  • 9.0.1634: message is cleared when removing mode message
  • 9.0.1635: error message is cleared when removing mode message
  • 9.0.1636: expanding a pattern interferes with cmdline completion (#24034)
  • 9.0.1637: compiler warning for uninitialized variable (#24042)
  • 9.0.1638: crypt tests hang and cause memory errors (#24053)
  • 9.0.1643: filetype detection fails if file name ends in many '~' (#28141)
  • 9.0.1644: not all filetype file name matches are tested
  • 9.0.1645: zserio files are not recognized (#24120)
  • 9.0.1659: Termdebug: default highlight cleared if changing colorscheme (#24139)
  • 9.0.1661: BUCK files are not recognized (#24142)
  • 9.0.1663: Termdebug on MS-Windows: some file names are not recognized (#24145)
  • 9.0.1664: divide by zero when scrolling with 'smoothscroll' set
  • 9.0.1665: empty CmdlineEnter autocommand causes errors in Ex mode
  • 9.0.1667: regression test doesn't fail when fix is reverted
  • 9.0.1668: PEM files are not recognized (#24169)
  • 9.0.1670: resetting local option to global value is inconsistent (#24185)
  • 9.0.1671: Termdebug: error with more than 99 breakpoints (#24194)
  • 9.0.1672: tabline highlight wrong after truncated double width label (#24223)
  • 9.0.1673: cannot produce a status 418 or 503 message (#24287)
  • 9.0.1678: blade files are not recognized (#24601)
  • 9.0.1679: Cleanup Tests from leftover files (#24617)
  • 9.0.1683: Updated runtime files (#24638)
  • 9.0.1686: undotree() only works for the current buffer (#24665)
  • 9.0.1687: mapset() not properly handling script ID (#24666)
  • 9.0.1688: cannot store custom data in quickfix list (#24673)
  • 9.0.1691: wrong viewport restored for incsearch and smoothscroll (#24667)
  • 9.0.1693: Ctrl-Q not handled like Ctrl-V in replace mode (#24669)
  • 9.0.1694: wrong mapping applied when replaying a char search (#24670)
  • 9.0.1697: incsearch test not sufficient (#24683)
  • 9.0.1698: Test_map_restore_sid fails in GUI (#24682)
  • 9.0.1704: Cannot use positional arguments for printf() (#24719)
  • 9.0.1705: cursor position wrong when clicking on an unprintable char
  • 9.0.1708: getcompletion() failes for user-defined commands (#24707)
  • 9.0.1710: scrolloff options work slightly different
  • 9.0.1711: dead code in charset.c (#24706)
  • 9.0.1714: getcompletion() "cmdline" fails after :autocmd (#24727)
  • 9.0.1715: duplicate test in message_test.c (#24728)
  • 9.0.1717: virtcol2col returns last byte of a multi-byte char (#24729)
  • 9.0.1718: dict-completion does not respect region (#24733)
  • 9.0.1722: wrong error messages when passing wrong types to count()
  • 9.0.1723: Fix regression in {func} argument of reduce()
  • 9.0.1725: cursor pos wrong after concealed text with 'virtualedit'
  • 9.0.1726: incorrect heights in win_size_restore() (#24765)
  • 9.0.1728: missing winid argument for virtcol() (#24770)
  • 9.0.1729: screenpos() wrong when w_skipcol and cpoptions+=n (#24773)
  • 9.0.1730: passing multiple patterns to runtime not working (#24771)
  • 9.0.1731: blockwise Visual highlight not working with virtual text (#24779)
  • 9.0.1734: :runtime completion fails for multiple args (#24767)
  • 9.0.1735: Rename completion specific findex var (#24769)
  • 9.0.1742: wrong curswant when clicking on second cell of double-width char (#24789)
  • 9.0.1745: Missing test coverage for blockwise Visual highlight (#24790)
  • 9.0.1747: screenpos() may cause unnecessary redraw (#24792)
  • 9.0.1753: can't move to last non-blank char
  • 9.0.1759: Visual highlight not working with cursor at end of screen line (#24806)
  • 9.0.1761: g behaves different from g
  • 9.0.1763: crash when passing invalid buffer to undotree() (#24807)
  • 9.0.1766: Runtime: Missing QML support
  • 9.0.1767: '.-' no allowed in highlight group names (#24814)
  • 9.0.1768: Runtime: no support for bicep files
  • 9.0.1772: Cursor may be adjusted in 'splitkeep'ed windows (#24811)
  • 9.0.1773: cannot distinguish Forth and Fortran *.f files (#24841)
  • 9.0.1774: no support for custom cmdline completion (#24808)
  • 9.0.1779: Need more state() tests (#24840)
  • 9.0.1781: Problems when setting bin/paste option
  • 9.0.1783: Display issues with virt text smoothscroll and showbreak
  • 9.0.1785: wrong cursor position with 'showbreak' and lcs-eol (#24852)
  • 9.0.1791: No tests for the termdebug plugin
  • 9.0.1792: problem with gj/gk/gM and virtual text (#24898)
  • 9.0.1797: Vimball/Visual Basic filetype detection conflict (#24947)
  • 9.0.1798: The 'syntax' option has no completion. (#24908)
  • 9.0.1800: Cursor position still wrong with 'showbreak' and virtual text
  • 9.0.1802: Multiline regex with Visual selection fails with virtual text
  • 9.0.1803: runtime(filetype): Add norg language detection (#24948)
  • 9.0.1807: runtime: crystal scripts not recognised (#24949)
  • 9.0.1808: termdebug: Typo in termdebug test
  • 9.0.1809: termdebug test flayk
  • 9.0.1810: camel-case spelling has issues with digits (#24909)
  • 9.0.1811: still some issues with term_debug test
  • 9.0.1813: linebreak incorrect drawn with breakindent (#24917)
  • 9.0.1820: Rexx files may not be recognised (#24956)
  • 9.0.1825: wrong cursor position with virt text and 'linebreak' (#24957)
  • 9.0.1828: cursor wrong with virt text before double-width char (#24967)
  • 9.0.1833: [security] runtime file fixes (#24969)
  • 9.0.1840: [security] use-after-free in do_ecmd (#24993)
  • 9.0.1846: [security] crash in fullcommand
  • 9.0.1847: [security] potential oob write in do_addsub()
  • 9.0.1848: [security] buffer-overflow in vim_regsub_both() (#25001)
  • 9.0.1852: i_CTRL-O does not reset Select Mode (#24990)
  • 9.0.1854: test_crash1() fails on CI
  • 9.0.1856: issues with formatting positional arguments (#25013)
  • 9.0.1857: [security] heap-use-after-free in is_qf_win()
  • 9.0.1858: [security] heap use after free in ins_compl_get_exp()
  • 9.0.1860: CI: test_crash1() is flaky
  • 9.0.1863: wrong format specifiers in e_aptypes_is_null_str_nr (#25015)
  • 9.0.1864: still crash with bt_quickfix1_poc
  • 9.0.1866: undo is synced after character find (#25021)
  • 9.0.1868: test_crash still fails for circle ci
  • 9.0.1872: CI: test_crash() fails on CI
  • 9.0.1873: [security] heap-buffer-overflow in vim_regsub_both
  • 9.0.1874: CI may fail in test_recover_empty_swap
  • 9.0.1877: missing test for patch 9.0.1873
  • 9.0.1878: tests running sh have problems
  • 9.0.1881: Test_crash fails on Mac
  • 9.0.1882: Trailing white space in tests
  • 9.0.1884: Wrong order of arguments for error messages (#25055)
  • 9.0.1891: No runtime support for Mojo
  • 9.0.1892: CI: no FreeBSD 14 support (#26604)
  • 9.0.1893: CI: strptime test fails on BSD14
  • 9.0.1894: CI: trailing whitespace in tests
  • 9.0.1907: No support for liquidsoap filetypes
  • 9.0.1908: undefined behaviour upper/lower function ptrs (#25238)
  • 9.0.1915: r_CTRL-C works differently in visual mode (#25248)
  • 9.0.1918
  • 9.0.1919: Wrong curswant when clicking on empty line or with vsplits
  • 9.0.1921: not possible to use the jumplist like a stack (#25278)
  • 9.0.1923: curswant wrong on click with 've' and 'nowrap' set (#25293)
  • 9.0.1931: make test_compilers fails on ubuntu
  • 9.0.1934: :bwipe fails after switching window from aucmd_win.
  • 9.0.1937: missing test for mouse click + 'virtedit' (#25347)
  • 9.0.1938: multispace wrong when scrolling horizontally (#25348)
  • 9.0.1946: filename expansion using ** in bash may fail
  • 9.0.1947: Bash Expansion test fails on Windows/MacOS
  • 9.0.1950: Vim9: error codes spread out (#25405)
  • 9.0.1956: Custom completion skips orig cmdline if it invokes glob() (#25427)
  • 9.0.1958: cannot complete option values
  • 9.0.1960: Make CI checks more strict
  • 9.0.1961: 'listchars' completion misses "multispace" and "leadmultispace"
  • 9.0.1962: No support for writing extended attributes
  • 9.0.1963: Configure script may not detect xattr
  • 9.0.1964: xattr support fails to build on MacOS X (#25448)
  • 9.0.1967: xattr errors not translated (#25454)
  • 9.0.1968: cmdline completion should consider key option
  • 9.0.1969: [security] buffer-overflow in trunc_string()
  • 9.0.1972: win32: missing '**' expansion test (#25476)
  • 9.0.1973: Clean up cmdline option completion code (#25477)
  • 9.0.1975: xattr: permission-denied errors on write (#25478)
  • 9.0.1978: No filetype detection for just files
  • 9.0.1981: not being able to scroll up in diff mode (#25506)
  • 9.0.1983: scrolling inactive window not possible with cursorbind (#25507)
  • 9.0.1990: strange error number
  • 9.0.1992: [security] segfault in exmode
  • 9.0.1995: Invalid memory access with empty 'foldexpr' (#25530)
  • 9.0.1997: Some unused code in move.c and string.c
  • 9.0.2008: test: undofile left behind (#25567)
  • 9.0.2009: cmdline-completion for comma-separated options wrong (#25569)
  • 9.0.2010: [security] use-after-free from buf_contents_changed()
  • 9.0.2011: INI files not detected
  • 9.0.2017: linebreak applies for leading whitespace
  • 9.0.2017: linebreak applies for leading whitespace (#25604)
  • 9.0.2018: complete_info() returns wrong index (#25607)
  • 9.0.2021: Coverity complains about change in charset (#25634)
  • 9.0.2022: getmousepos() returns wrong index for TAB char (#25636)
  • 9.0.2024: no filetype detection for Debian sources
  • 9.0.2025: no cmdline completion for ++opt args (#25657)
  • 9.0.2030: no max callback recursion limit (#25655)
  • 9.0.2031: TextChangedI may be triggered by non-insert mode change (#25656)
  • 9.0.2032: cannot get mouse click pos for tab or virt text (#25653)
  • 9.0.2033: gcc overflow-warning for f_resolve (#25666)
  • 9.0.2035: [security] use-after-free with wildmenu (#25687)
  • 9.0.2037: A few remaining cmdline completion issues with C-E/Y (#25686)
  • 9.0.2039: completion shows current word after completion restart (#25682)
  • 9.0.2041: trim(): hard to use default mask (#25692)
  • 9.0.2044: Vim9: exceptions confuse defered functions
  • 9.0.2045: tests: checking for swap files takes time
  • 9.0.2050: Vim9: crash with deferred function call and exception (#25715)
  • 9.0.2053: zig filetype detection test wrong
  • 9.0.2056: no digraph for quadruple prime
  • 9.0.2058: tests: avoid error when no swap files exist (#25735)
  • 9.0.2059: outstanding exceptions may be skipped (#25736)
  • 9.0.2060: *.{gn,gni} files are not recognized
  • 9.0.2061: not able to detect xkb filetypes
  • 9.0.2062: Janet files are not recognised
  • 9.0.2063: pacman hooks are detected as conf filetype
  • 9.0.2064: cannot use buffer-number for errorformat (#25782)
  • 9.0.2065: EXPAND flag set for filetype option (#25779)
  • 9.0.2068: [security] overflow in :history (#25794)
  • 9.0.2070: [security] disallow setting env in restricted mode (#25807)
  • 9.0.2071: objdump files not recognized
  • 9.0.2074: Completion menu may be wrong
  • 9.0.2075: TextChangedI may not always trigger (#25808)
  • 9.0.2077: CI fails because of trailing whitespace in test
  • 9.0.2079: Not all Dart files detected
  • 9.0.2081: smoothscroll may result in wrong cursor position (#25815)
  • 9.0.2090: complete_info() skips entries with 'noselect' (#25890)
  • 9.0.2092: tests: failure in test_arabic
  • 9.0.2095: statusline may look different than expected (#25941)
  • 9.0.2097: No support for cypher files
  • 9.0.2098: No filetype support for xcompose files (#25983)
  • 9.0.2100: CI: test_termdebug fails (#25997)
  • 9.0.2101: CI: test_termdebug may still fail (#26003)
  • 9.0.2102: matchparen highlight not cleared in completion mode (#26019)
  • 9.0.2103: recursive callback may cause issues on some archs (#26013)
  • 9.0.2104: wast filetype should be replaced by wat filetype
  • 9.0.2105: skipcol not reset when topline changed (#26042)
  • 9.0.2106: [security]: Use-after-free in win_close()
  • 9.0.2107: [security]: FPE in adjust_plines_for_skipcol (#26082)
  • 9.0.2108: [security]: overflow with count for :s command
  • 9.0.2109: [security]: overflow in nv_z_get_count
  • 9.0.2110: [security]: overflow in ex address parsing
  • 9.0.2111: [security]: overflow in get_number
  • 9.0.2114: overflow detection not accurate when adding digits (#28271)
  • 9.0.2116: No test for defining sign without attribute (#26115)
  • 9.0.2117: [security] use-after-free in qf_free_items (#26148)
  • 9.0.2121: [security]: use-after-free in ex_substitute
  • 9.0.2125: File info disappears when 'cmdheight' has decreased (#26180)
  • 9.0.2126: unused assignments when checking 'listchars' (#26182)
  • 9.0.2128: runtime(swig): add syntax and filetype plugins
  • 9.0.2131: not all nushell files detected (#26260)
  • 9.0.2133: Cannot detect overstrike mode in Cmdline mode (#26263)
  • 9.0.2134: ml_get error when scrolling (#26264)
  • 9.0.2135: No test for mode() when executing Ex commands (#26282)
  • 9.0.2136: MSVC errorformat can be improved (#26283)
  • 9.0.2137: Can't detect angular & mustache filetypes
  • 9.0.2139: html.angular ft is problematic (#26357)
  • 9.0.2140: [security]: use-after-free in win-enter
  • 9.0.2141: [security]: buffer-overflow in suggest_trie_walk
  • 9.0.2142: [security]: stack-buffer-overflow in option callback functions
  • 9.0.2143: [security]: buffer-overflow in ex_substitute
  • 9.0.2145: wrong scrolling in insert mode with smoothscroll (#26375)
  • 9.0.2148: Vim does not detect pacman.log file
  • 9.0.2151: 'breakindent' is not drawn after diff filler lines (#26412)
  • 9.0.2154: The option[] array is not sorted (#26475)
  • 9.0.2159: screenpos() may crash with neg. column (#26542)
  • 9.0.2168: Moving tabpages on :drop may cause an endless loop (#26605)
  • 9.0.2177: Wrong cursor position when dragging out of window (#26661)
  • 9.0.2178: reg_executing() wrong for :normal with range (#26660)
  • 9.0.2179: no filetype detection for execline scripts
  • 9.0.2180: POSIX function name in exarg causes issues (#28308)
  • 9.0.2183: Maximum callback depth is not configurable (#26703)
  • 9.0.2187: Visual not drawn with 'breakindent' when line doesn't fit (#26765)
  • 9.0.2188: cursor wrong after { in single line buffer (#26766)
  • 9.0.2189: Wrong display with 'briopt=sbr' and 'nobreakindent' (#26785)
  • 9.1.0001: when closing window, wincmd p may fail
  • 9.1.0002: a closing fold expr, may start a new fold (#26876)
  • 9.1.0004: reloading colorscheme when not changing 'background' (#26877)
  • 9.1.0007: can select empty inner text blocks
  • 9.1.0009: Cannot easily get the list of matches (#27028)
  • 9.1.0010: Keymap completion is not available (#26888)
  • 9.1.0011: regexp cannot match combining chars in collection (#26992)
  • 9.1.0012: regression with empty inner blocks introduced
  • 9.1.0013: Modula2 filetype support lacking (#27020)
  • 9.1.0014: incorrect use of W_WINROW in edit.c (#26910)
  • 9.1.0015: i_CTRL-R- no longer works in replace mode
  • 9.1.0016: default diff highlighting is too noisy
  • 9.1.0021: i_CTRL-R- doesn't work for multibyte chars in Replace mode
  • 9.1.0022: Coverity complains about improper use of negative value (#27001)
  • 9.1.0025: A few typos in tests and justify.vim
  • 9.1.0033: Insert mode not stopped if closing prompt buffer modifies hidden buffer (#27051)
  • 9.1.0035: i_CTRL-] triggers InsertCharPre (#27049)
  • 9.1.0039: too vague errors for 'listchars'/'fillchars' (#27070)
  • 9.1.0040: issue with prompt buffer and hidden buffer (#27071)
  • 9.1.0042: Missing test for Chuck Filetype
  • 9.1.0043: ml_get: invalid lnum when :s replaces visual selection (#27140)
  • 9.1.0046: :drop does not re-use empty buffer (#27165)
  • 9.1.0047: issues with temp curwin/buf while cmdwin is open
  • 9.1.0048: Abort opening cmdwin if autocmds screw things up
  • 9.1.0049: Make "[Command Line]" a special buffer name
  • 9.1.0054: 'linebreak' may still apply to leading whitespace
  • 9.1.0055: formatting long lines is slow (#27199)
  • 9.1.0056: wrong number of trailing spaces inserted after blockwise put
  • 9.1.0058: Cannot map Super Keys in GTK UI (#27204)
  • 9.1.0060: Recorded register cannot be translated using keytrans() (#27247)
  • 9.1.0061: UX of visual highlighting can be improved (#27256)
  • 9.1.0065: Segfault with CompleteChanged autocommand (#27261)
  • 9.1.0068: Visual highlighting can still be improved
  • 9.1.0073: Looping over modifier_keys_table unnecessarily
  • 9.1.0074: did_set_breakat() should be in optionstr.c
  • 9.1.0075: insert completion not correct when adding new leader (#27332)
  • 9.1.0076: luau config file not detected
  • 9.1.0077: Unnecessary call to redraw_for_cursorline() in nv_mousescroll() (#27359)
  • 9.1.0079: LineNrAbove/Below highlighting wrong on wrapped lines (#27363)
  • 9.1.0082: Redrawing can be improved when deleting lines with 'cursorline'
  • 9.1.0083: Redrawing can be improved when deleting lines with 'number'
  • 9.1.0084: Visual hl wrong when it ends before multibyte 'showbreak' (#27404)
  • 9.1.0087: Restoring lastused_tabpage too early in do_arg_all() (#27411)
  • 9.1.0088: TextChanged not triggered for :norm! commands (#27405)
  • 9.1.0089: qsort() comparison functions should be transitive
  • 9.1.0093: Still a qsort() comparison function that returns result of subtraction
  • 9.1.0097: 'breakindent' behaves inconsistently with 'list' and splits (#27432)
  • 9.1.0098: CompleteChanged not triggered when new leader added without matches (#27436)
  • 9.1.0101: upper-case of German sharp s should be U+1E9E (#27449)
  • 9.1.0102: settabvar() may change the last accessed tabpage (#27450)
  • 9.1.0103: 'breakindentopt' "min" not correct with 'signcolumn' (#27451)
  • 9.1.0105: Style: typos found (#27462)
  • 9.1.0106: Visual highlight hard to read with 'termguicolors'
  • 9.1.0108: filetype: no support for dtso files
  • 9.1.0109: filetype: no support for its files
  • 9.1.0110: filetype: add 'Config.in' filetype detection
  • 9.1.0111: filetype: no support for bats files
  • 9.1.0112: Remove undo information, when cleaning quickfix buffer
  • 9.1.0113: duplicate code when cleaning undo stack
  • 9.1.0114: Setting some options may change curswant (#27514)
  • 9.1.0115: Using freed memory with full tag stack and user data (#27525)
  • 9.1.0116: win_split_ins may not check available room
  • 9.1.0118: Use different restoration strategy in win_splitmove
  • 9.1.0119: can move away from cmdwin using win_splitmove()
  • 9.1.0120: hard to get visual region using Vim script
  • 9.1.0121: Infinite loop or signed overflow with 'smoothscroll'
  • 9.1.0126: Internal error when using upper-case mark in getregion()
  • 9.1.0127: Naming a non-pointer variable "oap" is strange
  • 9.1.0128: win_gotoid() may abort even when not switching a window
  • 9.1.0129: Fix truncation of text_wrap 'wrap' virt text after EOL list char (#27600)
  • 9.1.0130: [security]: UAF if win_split_ins autocommands delete "wp"
  • 9.1.0131: buffer-completion may not always find all matches (#27610)
  • 9.1.0132: "C" doesn't include composing chars with 'virtualedit' (#27605)
  • 9.1.0135: Insufficient testing for 'delcombine' (#27616)
  • 9.1.0137: in cmdline mode doesn't delete composing chars (#27636)
  • 9.1.0138: too many STRLEN calls when getting a memline (#27799)
  • 9.1.0140: cursor on wrong row after 1 char 'below' virtual text when EOL is shown (#27651)
  • 9.1.0141: Put in Visual mode wrong if it replaces fold marker (#27661)
  • 9.1.0142: getregion() can be improved (#27662)
  • 9.1.0143: [security]: autocmd causes use-after-free in set_curbuf() (#27664)
  • 9.1.0144: getregion() needs more tests (#27681)
  • 9.1.0145: v:echospace not correct when 'showcmdloc' != last (#27682)
  • 9.1.0146: v:echospace wrong with invalid value of 'showcmdloc' (#27697)
  • 9.1.0147: Cannot keep a buffer focused in a window
  • 9.1.0149: null pointer member access when accessing 'winfixbuf' property
  • 9.1.0150: Several minor 'winfixbuf' issues
  • 9.1.0152: Coverity complains about ignoring return value
  • 9.1.0154: shm=F not respected when reloading buffer with 'autoread'
  • 9.1.0155: can only get getregion() from current buffer (#27757)
  • 9.1.0156: Make 'wfb' failing to split still report E1513
  • 9.1.0157: Duplicate assignment in f_getregion() (#27766)
  • 9.1.0158: 'shortmess' "F" flag doesn't work properly with 'autoread'
  • 9.1.0159: Crash in WinClosed after BufUnload closes other windows (#27792)
  • 9.1.0161: expand() removes slash after env variable that ends with colon (#27791)
  • 9.1.0162: problem with writing extended attributes on failure (#27800)
  • 9.1.0164: Internal error when passing invalid position to getregion() (#27805)
  • 9.1.0166: Internal error with blockwise getregion() in another buffer (#27819)
  • 9.1.0167: Changing buffer in another window causes it to show matchparen (#27820)
  • 9.1.0168: too many STRLEN() calls (#27823)
  • 9.1.0169: current window number returned by tabpagewinnr may be outdated
  • 9.1.0170: Re-allow curwin == prevwin, but document it instead
  • 9.1.0171: Small split-move related improvements
  • 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
  • 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrap
  • 9.1.0175: wrong window positions with 'winfix{width,height}' (#27845)
  • 9.1.0176: Cursor column wrong with 'virtualedit' and conceal
  • 9.1.0177: Coverity reports dead code
  • 9.1.0178: E1513 might be confusing (#27846)
  • 9.1.0180: Cursor pos wrong when double-width chars are concealed (#27862)
  • 9.1.0181: no overflow check for string formatting (#27863)
  • 9.1.0182: Can define function with invalid name inside 'formatexpr' (#27883)
  • 9.1.0183: Wrong display or screenpos() result when toggling diff mode (#27882)
  • 9.1.0184: Cursor pos wrong when clicking with conceal and wrap (#27890)
  • 9.1.0186: cursor pos wrong on mouse click after eol with 'rl', 've' and conceal (#27903)
  • 9.1.0187: filetype: no support for Dafny files (#27918)
  • 9.1.0188: filetype: no support for Vento files (#27935)
  • 9.1.0190: complete_info() returns wrong order of items (#27955)
  • 9.1.0192: drop: don't rewind when editing the same file
  • 9.1.0194: gcc complains about uninitialized var (#27970)
  • 9.1.0195: memleak with ex_drop, NULL dereference
  • 9.1.0196: filetype: support for gnuplot files is lacking (#27972)
  • 9.1.0199: Not enough tests for the slice() function (#27991)
  • 9.1.0204: Backspace inserts spaces with virtual text and 'smarttab' (#28032)
  • 9.1.0205: Cannot use modifiers before :-Ntabmove (#28031)
  • 9.1.0207: No autocommand when writing session file (#28048)
  • 9.1.0208: winfixbuf does not allow to re-edit current buffer (#28054)
  • 9.1.0211: page-wise scrolling does not support smooth-scrolling
  • 9.1.0212: CI: MS-Windows fails in test_winfixbuf (#28056)
  • 9.1.0213: CI: MS-Windows fails in test_winfixbuf (#28071)
  • 9.1.0214: Duplicate condition in win_lbr_chartabsize() (#28072)
  • 9.1.0215: Half-page scrolling does not support smooth-scrolling
  • 9.1.0216: Error on exit with EXITFREE and 'winfixbuf' (#28070)
  • 9.1.0217: regexp: verymagic cannot match before/after a mark (#28074)
  • 9.1.0218: Unnecessary multiplications in backspace code (#28075)
  • 9.1.0220: Few typos in source and test files (#28076)
  • 9.1.0227: Recording may still be wrong in Select mode (#28092)
  • 9.1.0228: Two unrelated things are tested by a single test (#28093)
  • 9.1.0230: TextChanged autocommand not triggered under some circumstances (#28135)
  • 9.1.0231: Filetype may be undetected when SwapExists sets ft in other buf (#28136)
  • 9.1.0232: Conceal test fails when rightleft feature is disabled (#28134)
  • 9.1.0234: filetype: support for Intel HEX files is lacking
  • 9.1.0235: filetype: supertux files are not recognized
  • 9.1.0236: filetype: texlua files are not recognized
  • 9.1.0237: filetype: mplstyle files are not recognized
  • 9.1.0238: filetype: jupyterlab and sublime config are not recognized
  • 9.1.0239: filetype: gnuplot history files are not recognised
  • 9.1.0240: filetype: some python tools config files are not recognized
  • 9.1.0241: filetype: mysql history files are not recognized
  • 9.1.0242: filetype: octave history files are not recognized
  • 9.1.0243: filetype: netrw history file is not recognized
  • 9.1.0244: filetype: bash history files are not recognized
  • 9.1.0245: filetype: zsh theme, history and zunit files are not recognized
  • 9.1.0246: filetype: fontconfig files are not recognized
  • 9.1.0247: filetype: bundle config files are not recognized
  • 9.1.0248: filetype: yarn lock files are not recognized
  • 9.1.0249: filetype: rock_manifest and config.ld files are not recognized
  • 9.1.0250: filetype: ldscripts cannot be recognized
  • 9.1.0251: Filetype test fails (#28142)
  • 9.1.0253: filetype: typespec files are not recognized
  • 9.1.0254: [security]: Heap buffer overflow when calling complete_add() in 'cfu'
  • 9.1.0258: half-page scrolling broke backward compatibility
  • 9.1.0259: Normal mode TextChanged isn't tested properly (#28167)
  • 9.1.0260: Problems with "zb" and scrolling to new topline with 'smoothscroll'
  • 9.1.0262: Test for TextChanged is flaky with ASAN (#28180)
  • 9.1.0265: console dialog cannot save unnamed buffers (#28185)
  • 9.1.0266: filetype: earthfile files are not recognized (#28207)
  • 9.1.0267: File name entered in GUI dialog is ignored
  • 9.1.0268: Two tests in test_filechanged.vim are slow
  • 9.1.0269: Test for TextChanged is still flaky with ASAN
  • 9.1.0272: autocmd may change cwd after :tcd and :lcd (#28223)
  • 9.1.0273: filetype: keymap files are not recognized
  • 9.1.0275: filetype: R history files are not recognized
  • 9.1.0276: No pandoc syntax support
  • 9.1.0277: Cannot highlight the Command-line (#28244)
  • 9.1.0278: filetype: zathurarc files not recognized
  • 9.1.0279: filetype: roc files are not recognized
  • 9.1.0280: several issues with 'smoothscroll' support
  • 9.1.0281: CI: fails Test_compiler_completion
  • 9.1.0283: Several small issues in doc and tests (#28249)
  • 9.1.0285: Still problems with cursor position for CTRL-D/U
  • 9.1.0287: Vim9: comment may be treated as heredoc start (#28257)
  • 9.1.0289: filetype: some TeX files are not recognized (#28291)
  • 9.1.0290: filetype: xilinx files are not recognized (#28295)
  • 9.1.0291: filetype: libreoffice config files are not recognized
  • 9.1.0292: filetype: XDG mimeapps.list file is not recognized
  • 9.1.0293: filetype: lxqt config files are not recognized
  • 9.1.0294: Text height function does not respect it's argument
  • 9.1.0295: filetype: pip config files are not recognized
  • 9.1.0296: regexp: engines do not handle case-folding well (#28259)
  • 9.1.0297: Patch 9.1.0296 causes too many issues (#28263)
  • 9.1.0300: Missing test for what patch v9.1.0285 fixes
  • 9.1.0301: Vim9: heredoc start may be recognized in string (#28266)
  • 9.1.0302: filetype: blueprint files are not recognized (#28292)
  • 9.1.0303: filetype: some protocol buffer files not recognized (#28293)
  • 9.1.0304: filetype: cgdb config file is not recognized (#28294)
  • 9.1.0305: filetype: some history files are not recognized (#28300)
  • 9.1.0306: filetype: x11vnc config file is not recognized
  • 9.1.0307: filetype: texdoc config files is not recognized
  • 9.1.0311: filetype: Some config files are not recognized (#28311)
  • 9.1.0312: heredocs are not supported for :commands
  • 9.1.0313: Crash when using heredoc with comment in command block
  • 9.1.0315: filetype: a few more dosini files are not recognized
  • 9.1.0316: filetype: some sh and confini files not recognized
  • 9.1.0317: filetype: matplotlibrc files are not recognized
  • 9.1.0318: filetype: translate shell config files are not recognized
  • 9.1.0319: Using heredoc in string not tested with :execute (#28333)
  • 9.1.0320: Wrong cursor position after using setcellwidths() (#28334)
  • 9.1.0321: Garbled output on serial terminals with XON/XOFF flow control
  • 9.1.0322: filetype: some mail tools not recognized
  • 9.1.0323: filetype: cabal config files may not be recognized
  • 9.1.0324: filetype: some json files are not recognized
  • 9.1.0325: CMakeCache.txt files not recognized (#28359)
  • 9.1.0326: filetype: some requirements files are not recognized (#28360)
  • 9.1.0328: CI fails with t_?? test
  • 9.1.0329: String interpolation fails for Dict type (#28335)
  • 9.1.0332: tests: some assert_equal() calls have wrong order of args (#28363)
  • 9.1.0334: No test for highlight behavior with 'ambiwidth' (#28354)
  • 9.1.0335: String interpolation fails for List type (#28364)
  • 9.1.0340: Problem: Error with matchaddpos() and empty list (#28381)
  • 9.1.0341: Problem: a few memory leaks are found (#28382)
  • 9.1.0343: 'showcmd' wrong for partial mapping with multibyte (#28392)
  • 9.1.0344: Cursor wrong after using setcellwidth() in terminal (#28391)
  • 9.1.0351: No test that completing a partial mapping clears 'showcmd' (#28406)
  • 9.1.0354: runtime(uci): No support for uci file types (#28409)
  • 9.1.0355: filetype: flake.lock files are not recognized
  • 9.1.0357: Page scrolling should place cursor at window boundaries (#28429)
  • 9.1.0363: tests: test_winfixbuf is a bit slow (#28446)
  • 9.1.0364: tests: test_vim9_builtin is a bit slow (#28466)
  • 9.1.0365: Crash when typing many keys with D- modifier (#28464)
  • 9.1.0366: filetype: ondir files are not recognized
  • 9.1.0374: wrong botline in BufEnter (#28530)
  • 9.1.0375: tests: 1-second delay after Test_BufEnter_botline() (#28534)
  • 9.1.0380: Calculating line height for unnecessary amount of lines (#28553)
  • 9.1.0381: cbuffer and similar commands don't accept a range (#28571)
  • 9.1.0382: filetype: Kbuild files are not recognized
  • 9.1.0383: filetype: .out files recognized as tex files
  • 9042bd8b09ba
  • 9204f39580bd
  • 92917069b1a8
  • 92f076e53e22 (#24634)
  • 93197fde0f1d
  • 9358b8d99349 (#25998)
  • 9525f6213604
  • 9530fe4f3a69 (#27919)
  • 955652f6df9c (#26667)
  • 960822a11f70
  • 96d6c4aabed1
  • 982e191b38b4 (#28073)
  • 989faa4fce65 (#27880)
  • 98b12ede3175
  • 9a660d2883f9
  • 9a775b4a2ae6 (#26588)
  • 9ad1bf7afd5c
  • 9b03d3e75b42 (#27059)
  • 9b53c052d58f
  • 9c5b90db035b
  • 9cd9e759ab1e (#28224)
  • 9d8ef7cc4340
  • 9ecf02cd5f5f
  • 9f2962141514
  • 9fa35b1c38b8
  • a03647acc313
  • a0fddaa2f4b7
  • a13eb2b14791 (#24622)
  • a2385c233499
  • a262d3f41bc5
  • a2c65809dafe
  • a35235e824bb (#27598)
  • a390e984db20
  • a39af0290496
  • a4c085a3e607
  • a5988f582e48
  • a5eb6785efcc
  • a76f3221cdcf
  • a7aba6ca5033 (#25285)
  • a9058440b7b9
  • a907c9199216
  • ab01adf7c65b
  • acb91d3905cf
  • add31baedaf0
  • b0d584d97ab6
  • b1392bee701d
  • b1427b46f5fe (#27652)
  • b16fc9805535
  • b2a4c110a5d1
  • b2e1fee72c45
  • b3030b653bbd
  • b42703a662e8
  • b4b3d7de2413
  • b4eb3f1e4489
  • b52e7ac7c61c
  • b59ae59a5870
  • b614b284ee06 (#27433)
  • b69b9d5e1753 (#24628)
  • b7398fe41c9e (#23627)
  • b73faa1c02d0 (#28193)
  • b8170143c8f8 (#27387)
  • ba77bbb5c775
  • bd76c89e31ac (#24630)
  • bdb9d9afba97
  • c1f8bb37c6a8
  • c2bd205254c8
  • c46c21b4ca47
  • c4aef9a97b36
  • c4d0c8c81245
  • c6d533b0ad56
  • c79646dfb101
  • c7ddc9b73543
  • c9c2e2d2ff44
  • c9ec20d94ea5 (#28267)
  • ca0e9823a1df
  • ca48202b6f46
  • caee7956a21a
  • cb0c113ddc01 (#26147)
  • cbb92b5ceb6a
  • cc7597c1edf4
  • cc944b145254
  • cd39b69b0200
  • cd4e4e169ab3 (#24685)
  • cd8a3eaf5348
  • cdd934439d08
  • ce06493aeb3d (#28321)
  • ce3b0136c6d9
  • cec44eae82c1 (#28199)
  • cee034112d41
  • ceed36873e92
  • cf40409e7d17
  • cf8695d48cdd
  • d08059ab48b8
  • d1cea036467c
  • d3c0ff5d5a90
  • d3e277f279ed (#25734)
  • d3ff129ce8c6
  • d4634a26cdcd
  • d56f15caf602
  • d5dc58aeed1b (#25720)
  • d8b86c937a41
  • d8f981138aa0
  • d94ca966ca6d
  • d96f25bd69c1
  • d9ebd46bd090
  • da16a1b471aa
  • da4e433dc3be (#25912)
  • dbca7d80457d
  • dbf749bd5aae (#25665)
  • dc5c90554145
  • dd0ad2598898
  • dd83b63eb5b7 (#28351)
  • e059fae10044
  • e06f2b498ccc
  • e08bfef88bd0
  • e13b665a6e2a (#27163)
  • e1ddc2d5875d
  • e30d8e4ce01d
  • e34b51e95fd0
  • e3e3934bb182
  • e43ace558aee (#28258)
  • e46a44050562
  • e5c9ba601573 (#27737)
  • e71e9d9ad368
  • e7833e73471a
  • e84490311ba3
  • e84d2d4432cd
  • e8d6f03f6a61
  • e8f6af609178
  • e92ed1b45c54 (#28337)
  • e93afc2e6126
  • e978b4534a5e (#24697)
  • ea9964a36f94
  • ea9a93e5b098
  • ec21bafc135a (#27939)
  • ec97edcbb9f6
  • ef21bcaab145
  • ef387c062bb1 (#27553)
  • ef79c5783782
  • f1dcd14fc5d4 (#23986)
  • f351fd829204 (#28551)
  • f449825ae238
  • f5356bf6751f
  • f6869212c9e1
  • f6fb52b667ee
  • f787ee8451a1 (#25103)
  • f7a38650eaf6 (#28465)
  • f7ac0ef50988
  • f7f33e3719c8
  • f937ab32a1ac
  • f9c4c2f97db9
  • f9ca139e3aa1 (#27554)
  • fb8f31ea7d7f (#28356)
  • fbd72d2d4725
  • fc93594d562d
  • fcbefe74f161 (#28285)
  • fda02d03c0cf
  • fe1e2b5e2d65
  • fe6d5b0ae47e
  • fea96c00e55a
  • ff0baca86523 (#26476)
  • mark N/A 8.1 patches #26008
  • partial:5985879e3c36 (#25780)
  • partial:6f4754b9f725
  • partial:8.0.1592: terminal windows in a session are not properly restored
  • partial:8.1.1155: termcodes tests can be improved
  • partial:8.1.1218: cannot set a directory for a tab page
  • partial:8.1.1981: the evalfunc.c file is too big (#24490)
  • partial:8.2.0425: code for modeless selection not sufficiently tested (#23362)
  • partial:8.2.1235: Not all mouse codes covered by tests
  • partial:8.2.3335: Vim9: not enough tests run with Vim9
  • partial:8.2.3849: functions implementing reduce and map are too long
  • partial:8.2.4950: text properties position wrong after shifting text (#23930)
  • partial:9.0.0359: error message for wrong argument type is not specific (#23315)
  • partial:9.0.0364: clang static analyzer gives warnings (#23059)
  • partial:9.0.0669: too many delete() calls in tests
  • partial:9.0.1196: code is indented more than necessary (#27315)
  • partial:9.0.1570: some tests are slow (#23688)
  • partial:9.0.1859: heap-use-after-free in bt_normal()
  • partial:9.0.1886: Various Typos
  • partial:9.1.0027: Vim is missing a foreach() func (#27037)
  • partial:9.1.0080: unexpected error for modifying final list using +=
  • partial:9.1.0117: Stop split-moving from firing WinNew and WinNewPre autocommands
  • partial:9.1.0373: ops.c code uses too many strlen() calls (#28508)
  • partial:d086b8f646a6 (#27623)
  • partial:d899e5112079

Refactor

  • IWYU (#27186)
  • add function attributes to xmemcpyz() (#28435)
  • add xmemcpyz() and use it in place of some xstrlcpy() (#28422)
  • adjust headers according to the style guide (#23934)
  • align set_chars_option() with Vim (#25438)
  • allow not having a default case for enum
  • avoid copying before vim_strup() if possible (#27830)
  • avoid quadratic behavior in backslash_halve() (#27827)
  • cast to int earlier when using 'so' and 'siso' (#24756)
  • change event_create() to a macro (#26343)
  • change some xstrndup() and xstrnsave() to xmemdupz() (#25959)
  • cleanup
  • combine regexp files
  • create function for deferred loading
  • create runtime_defs.h
  • deprecate checkhealth functions
  • don't use subtraction in qsort() comparison functions
  • eliminate cyclic includes
  • enable formatting for ternaries
  • explicitly abort on OOM condition (#26330)
  • fix PVS warnings (#23200)
  • fix clang NonNullParamChecker warnings (#28327)
  • fix clang/PVS warnings (#23731)
  • fix clang/PVS warnings (#24213)
  • fix headers with IWYU
  • fix includes for api/autocmd.h
  • fix includes for iconv.h
  • fix luals warnings
  • fix runtime_defs.h (#26259)
  • follow style guide
  • follow style guide
  • follow style guide
  • follow style guide
  • format casting of negative number better (#26482)
  • format test/*
  • free more reachable memory with EXITFREE (#26349)
  • informative error msg for 'noautocmd' (#28147)
  • iwyu (#26062)
  • iwyu (#26269)
  • make char * parameters const in message.c
  • move Arena and ArenaMem to memory_defs.h (#26240)
  • move autocmd types to autocmd_defs.h (#26239)
  • move background color detection into Lua
  • move cmdline completion types to cmdexpand_defs.h (#25465)
  • move defaults into separate module (#25929)
  • move extern variables out of _defs.h files (#26320)
  • move float_relative_str[] to nvim_win_get_config() (#26344)
  • move function macros out of vim_defs.h (#26300)
  • move garray_T to garray_defs.h (#26227)
  • move hashtab types to hashtab_defs.h (#26262)
  • move non-symbols to defs.h headers
  • move some anonymous enums back to non-defs headers (#26622)
  • move some constants out of vim_defs.h (#26298)
  • move some functions to winfloat.c (#26020)
  • move some structs out of buffer_defs.h (#24878)
  • move structs from regexp_defs.h to regexp.c (#26899)
  • move virtcol functions to plines.c
  • object_to_vim() cannot fail
  • only reload colorscheme if &bg changed (#26598)
  • reduce some globals #27406
  • remove "once" argument of loop_uv_run() (#27841)
  • remove 'shortmess' save/restore panic for ex commands
  • remove :CheckHealth
  • remove B_SPELL macro (#26063)
  • remove CPO_TO_CPO_FLAGS() (#26718)
  • remove FC_DEAD
  • remove SIZEOF_INT check
  • remove WINGUI_URL
  • remove clang_analyzer macro
  • remove bugreport.vim
  • remove fn_bool
  • remove kbtree.h
  • remove long
  • remove long
  • remove modelines from Lua files
  • remove os_errmsg and os_msg functions
  • remove redundant NOLINT comments
  • remove redundant casts
  • remove redundant casts
  • remove redundant casts
  • remove redundant const char * casts
  • remove redundant struct names
  • remove some (const char **) casts (#24423)
  • remove some casts to char * (#24200)
  • remove typval.h from most header files (#23601)
  • remove unnecessary HAVE_PATHDEF macro
  • remove unnecessary height change in frame_add_hsep() (#23305)
  • remove unused "coloff" argument of win_put_linebuf() (#27866)
  • remove unused file ringbuf.h
  • remove vim.h from more headers (#26244)
  • rename FloatConfig to WinConfig #27397
  • rename _meta.lua to _options.lua
  • rename types.h to types_defs.h
  • rename w_float_config to w_config #27419
  • reorganize option header files (#25437)
  • replace manual header guards with #pragma once
  • revert incorrect change to ui_client.c code
  • rewrite clipboard provider healthchecks in Lua
  • rewrite node healthcheck in lua
  • rewrite perl healthcheck in lua
  • rewrite perl provider in lua
  • rewrite python provider healthcheck in Lua
  • rewrite python provider in lua
  • rewrite ruby healthcheck in lua
  • rewrite ruby provider in lua
  • rewrite virtualenv healthcheck in lua
  • run IWYU on entire repo
  • soft-deprecate diagnostic signs configured with :sign-define (#26618)
  • split WIN_EXECUTE() into two functions (#26627)
  • suppress clang false positives (#23154)
  • suppress unused variable warnings in release builds (#26327)
  • the long goodbye
  • the long goodbye
  • the long goodbye
  • uncrustify
  • use "csarg" for CharsizeArg variables (#27123)
  • use bool to represent boolean values
  • use ml_get_buf_len() in API code (#27825)
  • use optional base argument of tonumber (#26070)
  • use vim.deprecate on all deprecated functions
  • use xstpcpy() instead of strcat() (#25572)
  • use xstrl{cpy,cat} on IObuff (#23648)
  • using a different error number for 'mousescroll'
  • vim.ui.clipboard #26040
  • IWYU: add "private" pragma to more generated headers (#26706)
  • IWYU: create normal_defs.h (#26293)
  • IWYU: create {ex_getln,rbuffer,os/fileio}_defs.h (#26338)
  • IWYU: fix headers
  • IWYU: fix includes for cmdhist.h (#26324)
  • IWYU: fix includes for highlight_group.h (#26340)
  • IWYU: fix includes for ugrid.h (#26267)
  • IWYU: move UI and LineFlags to ui_defs.h (#26318)
  • IWYU: move decor provider types to decoration_defs.h (#26692)
  • IWYU: move evalarg_T to eval_defs.h (#26716)
  • IWYU: move marktree types to marktree_defs.h (#26402)
  • IWYU: move typedefs out of globals.h (#26322)
  • api: adjust errors for setting options (#23942)
  • api: complete conversion from Dictionary to Dict(opts) (#26365)
  • api: deprecate nvim_call_atomic #28433
  • api: give "hl_group" more accurate _meta type
  • api: make cstr_as_string accept "const char*"
  • api: make freeing of return-value opt-in instead of opt out
  • api: make typed dicts appear as types in the source code
  • api: new helper macros
  • api: reduce temporary allocations when replacing lines
  • api: redundant ml_mfp check #26059
  • api: refactor more api functions to use arena return
  • api: remove BOOL macro #23936
  • api: remove some unnecessary HAS_KEY() (#27283)
  • api: simplify nvim_set_keymap shortname check (#25945)
  • api: use an arena for mappings
  • api: use an arena for nvim_buf_get_lines and buffer updates
  • api: use an arena for nvim_parse_expression
  • api: use an arena for user commands
  • api: use arena for autocmds
  • api: use arena for channel info and terminal info
  • api: use arena for hlstate inspection
  • api: use arena for metadata; msgpack_rpc_to_object delenda est
  • api: use arena for nvim_get_option_info()
  • api: use arena for nvim_list_uis()
  • api: use arena for nvim_parse_cmd()
  • api: use arena for nvim_put and nvim_paste
  • api: use arena for runtime and client info
  • api: use arena when listing objects
  • api: use hl id directly in nvim_buf_set_extmark
  • api: use keydict and arena for more api return values
  • api: use typed keysets
  • backup: remove duplicate os_copy_xattr() (#28020)
  • buf_init_chartab: remove redundant loop (#24891)
  • build: derocksify luacheck
  • build: include lpeg as a library
  • build: make all generated c files headers
  • build: move the last generator from scripts/ to src/nvim/generators
  • build: use vendored versions of mpack and luabitop
  • change: do API changes to buffer without curbuf switch
  • clang-tidy: ignore warnings from clang-tidy 17
  • clang-tidy: remove redundant casts
  • column: define and use maximum 'statuscolumn' width
  • completion: use an inline function to free cptext (#26380)
  • cpoptions: remove 'p'
  • decor: remove sign conditions that are always true
  • decorations: break up Decoration struct into smaller pieces
  • decorations: more conservative redraw range
  • defaults: always set options, even if value hasn't changed (#26595)
  • defaults: defer setting 'termguicolors' until after VimEnter
  • defaults: do not use C specific default values for options (#22500)
  • defaults: use getregion() for Visual mode gx (#27663)
  • defaults: use getregion() for default * and # mappings
  • defaults: use vim.region for visual star (*,#)
  • diagnostic: set sign by using extmark (#26193)
  • diagnostic: use named namespaces (#26568)
  • drawline: add more consts
  • drawline: avoid storing info to draw 'statuscolumn' (#26712)
  • drawline: avoid writing foldopen before writing foldclosed
  • drawline: avoid xmalloc/xfree cycles on each screenline
  • drawline: get_rightmost_vcol()
  • drawline: integrate terminal hl with eol loop (#27893)
  • drawline: localise more variables in win_line()
  • drawline: more win_line() improvements
  • drawline: move inline text code to its own function
  • drawline: reduce size of wlv.extra[] (#26733)
  • drawline: remove LineDrawState and wlv->saved_n_extra
  • drawline: remove maybe_wlv argument for foldcolumn (#26798)
  • drawline: remove unnecessary inline virt checks (#25163)
  • drawline: remove unused save_extra argument (#26959)
  • drawline: rename vcol_off to vcol_off_co (#27857)
  • drawline: simplify draw_statuscol() and remove draw_state references
  • drawscreen: avoid spell check on folded or filler lines
  • encoding: remove redundant vim_isprintc_strict
  • env: remove unused mutex
  • eval: use arena when converting typvals to Object
  • eval: use tv_list_append_allocated_string()
  • ex_session.c: remove unnecessary char -> int -> char cast
  • extmark: redundant ExtmarkInfo delenda est, use MTPair instead
  • extmarks: extmark_del() with MarkTreeIter
  • extmarks: remove unused new pos from ExtmarkSavePos
  • fileio: remove API shell layer encouraging unnecessary allocations
  • float: extract "title" and "title_pos" handling
  • float: rename ex_floatclose to ex_fclose (#25596)
  • fs: now it is time to get rid of fs_loop and fs_loop_mutex
  • gen_lsp.lua: add typing for the LSP protocol JSON data model
  • gen_vimdoc: generate function doc from metadata, not from xml
  • gen_vimdoc: put defgroup handling in a function
  • gen_vimdoc: refactor section and defgroup doc generation
  • gen_vimdoc: use stronger typing for CONFIG, avoid dict
  • gen_vimdoc: use typing for function API vimdoc generation
  • generators: style of generating and generated lua dispatch code
  • grid: change schar_T representation to be more compact
  • grid: do arabic shaping in one place
  • grid: get rid of unbatched grid_puts and grid_putchar
  • grid: implement rightleftcmd as a post-processing step
  • grid: make screen rendering more multibyte than ever before
  • grid: properly namespace and separate stateful grid functions
  • grid: reimplement 'rightleft' as a post-processing step
  • grid: unify the two put-text-on-the-screen code paths
  • grid: unused grid->line_wraps delenda est
  • grid: use batched updates for builtin tabline
  • grid: use batched updates for horizontal wildmenu
  • grid: use batched updates for statusline and ruler
  • grid.c: remove duplicate assignments
  • health: refactor provider healthchecks
  • highlight: merge redundant attr_entries and attr_entry_ids structs
  • indent: refactor computing of a string's indent size (#27252)
  • iter: move helper functions under vim.iter
  • iter: use metatable as packed table tag (#23254)
  • lang: reduce scope of HAVE_WORKING_LIBINTL #ifdefs
  • lsp: add shared diagnostic handler
  • lsp: add type annotation for lsp.Client.server_capabilities (#24925)
  • lsp: add type annotations
  • lsp: add type annotations to _watchfiles (#26109)
  • lsp: add vim.lsp.sync.Range type
  • lsp: alias for CompletionResult
  • lsp: client_hints typo #27250
  • lsp: deprecate vim.lsp.util.lookup_section
  • lsp: deprecate completion util methods
  • lsp: deprecate util methods (#25400)
  • lsp: extract common execute command functionality (#24065)
  • lsp: fix luals warnings in tagfunc and add type annotations (#25150)
  • lsp: fix remaining luals warnings in lsp.rpc
  • lsp: make is_pull in lsp.diagnostic.get_namespace optional (#25156)
  • lsp: mark server_ready function as deprecated (#23520)
  • lsp: merge rpc.domain_socket_connect into rpc.connect (#28398)
  • lsp: merge subtypes and supertypes into typehierarchy (#28467)
  • lsp: move client code to a regular Lua class
  • lsp: move completion logic into _completion module
  • lsp: move glob parsing to util (#26519)
  • lsp: move more code to client.lua
  • lsp: move workspace folder logic into the client
  • lsp: remove outdated comment
  • lsp: remove redundant code (#27601)
  • lsp: rename foos_by_bar to bar_foos #28505
  • lsp: report full Nvim version string in clientInfo
  • lsp: resolve the config-client entanglement
  • lsp: simplify client tracking
  • lsp: simplify client tracking
  • lsp: tidy up logging
  • lsp: typings for protocol constants
  • lsp: use LPeg for watchfiles matching (#23788)
  • lsp: use LspNotify for inlay_hint (#24411)
  • lsp: use protocol.Methods instead of strings #24537
  • lsp: use protocol.Methods instead of strings #24570
  • lua: "module" => "M" #28426
  • lua: deprecate tbl_flatten
  • lua: deprecate tbl_flatten #28457
  • lua: more efficient vim.tbl_islist
  • lua: refactored glob
  • lua: rename tbl_isarray => isarray
  • lua: rename tbl_islist => islist
  • lua: simplify vim.gsplit impl
  • lua: type annotations
  • lua: use Arena when converting from lua stack to API args
  • lua: use a keyset for vim.diff opts parsing
  • lua2dox: overhaul (#24386)
  • map: avoid duplicated khash_t types for values
  • map: enhanced implementation, Clean Code™, etc etc
  • mapping.c: reduce scope of locals
  • marks: don't set timestamp twice with :delmarks (#24994)
  • marktree: unpaired marktree_get_alt() returns itself
  • mch: last mch_ function/macro hits the dust
  • memfile: change mf_trans and mf_hash from ad-hoc hashtable to Map
  • memline: cleanup typedefs for memline structs
  • memline: distinguish mutating uses of ml_get_buf()
  • message: msg_outtrans_long_len_attr -> msg_outtrans_long
  • message: msg_puts_attr_len -> msg_puts_len
  • message: simplify msg_puts_display and use batched grid updates
  • message: smsg_attr -> smsg
  • messages: fold msg_attr into msg
  • messages: fold msg_outtrans_attr into msg_outtrans
  • messages: remove condition that is always true (#27909)
  • messages: rename msg_trunc_attr and msg_multiline_attr without attr
  • metadata: generate all metadata in lua
  • misc: use MSVC compiler builtin for xctz()
  • msgpack: allow flushing buffer while packing msgpack
  • msgpack: remove dead unpacker code in helpers
  • option: add set_option()
  • option: change some int to bool
  • option: further align set_string_option with do_set_option_string
  • option: further align set_string_option with do_set_option_string (2)
  • option: option clearing
  • option: pass varp to set_string_option
  • option: remove OPT_CLEAR
  • option: remove hidden option check
  • option: remove redundant local
  • option: use void * for pointer to option value
  • option.c: call did_set_option for all types
  • option.c: change :set boolean prefix to an enum (#25458)
  • option.c: make did_set callbacks static
  • option.c: move paste_option_changed() into did_set_paste()
  • option.c: move validation logic to function
  • option.c: remove did_set_string_option alias
  • options: get_option_value_strict() and SREQ_*
  • options: add direct flag to set_option()
  • options: convert opt_idx variables to OptIndex
  • options: deduplicate do_set_option_string
  • options: deduplicate the do_set_option codepath
  • options: define kOptIndexCount
  • options: deprecate nvim[_buf|win][gs]et_option
  • options: do bound checking in validate_num_option()
  • options: generate BV_ and WV_ constants (#26705)
  • options: make did_set_shada a normal option callback
  • options: make immutable and hidden options distinct
  • options: make os_oldval and os_newval use OptValData
  • options: move some functions from options.c to option.c
  • options: reduce findoption() usage
  • options: remove SOPT type enums (#26417)
  • options: remove OPT_FREE (#26963)
  • options: remove getoption_T and introduce OptVal (#23850)
  • options: remove os_doskip
  • options: remove os_op
  • options: remove set_string_option_direct()
  • options: remove option type macros
  • options: remove side effects from check_num_option_bounds()
  • options: rename empty_option to empty_string_option
  • options: replace p_force_(on|off) with immutable (#26209)
  • options: require enable_if = false iff no variable (#28050)
  • options: restructure set_option
  • options: restructure functions related to key options
  • options: split get_option_value() into smaller functions
  • options: swap immutable and hidden option property names
  • options: unify set_num_option and set_bool_option
  • options: use OptIndex for os_idx
  • options: use hashy for finding options (#26573)
  • options: use schar_T representation for fillchars and listchars
  • options: use slash separator for option_get_valid_types() (#23945)
  • optionstr.c: remove redundant argument
  • plines.c: deduplicate code for virtual text cursor offset
  • plines.c: move vertical size functions to the bottom
  • plines.c: update outdated comments (#24264)
  • runtime: remove nvimMap and nvimUnmap syntax groups (#27298)
  • runtime: rewrite 'vim' color scheme in Lua
  • screen: simplify grid_clear() and win_draw_end()
  • shada: devirtualize writer
  • sign: move legacy signs to extmarks
  • sign: store 'signcolumn' width range when it is set
  • snippet: rename test utilities
  • source: remove unnecessary concatenation with Lua (#28499)
  • strcase_save: optimize memory allocation (#27319)
  • termdebug: reindent some things
  • terminal: only remove const qualifier when necessary (#26386)
  • terminal: rename confusing variable name "rv" (#27573)
  • test: cleanup #25614
  • test: inject after_each differently
  • tests: all screen tests should use highlights
  • tests: allow to extend the new base set of attrs
  • tests: get channel id via nvim_get_chan_info #27441
  • tests: use global defaults instead of set_default_attr_ids (2)
  • tests: use more standard colors but with extra colors
  • tests: use new global defaults instead of set_default_attr_ids
  • time: refactor delay with input checking
  • treesitter: cleanup highlighter
  • treesitter: deprecate for_each_child #25118
  • treesitter: handle coverity warnings better
  • treesitter: language loading
  • treesitter: move some logic into functions
  • treesitter: redesign query iterating
  • treesitter: rename "preview" => "edit" #25161
  • treesitter: reorder functions
  • treesitter: simplify argument checks for userdata
  • treesitter: typing for Query, TSQuery, and TSQueryInfo
  • treesitter: use npcall in _query_linter.lua #23985
  • treesitter: {start,stop} are optional in Query:iter_* methods
  • tui: check for out of bound access after snprintf (#24751)
  • tui: refactor Kitty keyboard query implementation
  • tui: remove code that is no longer necessary
  • tui: remove unnecessary scheduling when suspending (#26190)
  • tui: reorder functions for query and response (#28051)
  • tui: use synchronized updates around actual buf flush (#26478)
  • tui: use termkey_interpret_modereport
  • tutor: cleanup
  • types: fix miscellaneous type warnings
  • types: more fixes
  • types: more fixes (2)
  • ui: remove outdated UI vs UIData distinction
  • unit: add type annotations
  • usercmd.c: reduce scope of locals
  • vim.secure: move to lua/secure.c
  • vim.system: factor out on_exit handling
  • watch: general tidy up
  • watch: simplify filechanges processing
  • window.c: add a few more assertions (#27249)

CI

  • add check to ensure USE_EXISTING_SRC_DIR=ON builds work
  • add gpanders as reviewer for defaults and tui labels (#26567)
  • add optional CI that can be triggered manually
  • add runner image version to cache key
  • add workflow_dispatch event to testing workflows
  • add workflow_dispatch to optional.yml workflow
  • allow skipping news workflow with a label
  • auto-add labels on issues based on title
  • bump actions/checkout from 3 to 4
  • bump actions/download-artifact from 3 to 4
  • bump actions/github-script from 6 to 7 (#26041)
  • bump actions/labeler from 4 to 5
  • bump actions/upload-artifact from 3 to 4
  • bump cache action to version 4
  • bump github/codeql-action from 2 to 3
  • bump korthout/backport-action from 1 to 2
  • bump uncrustify to 0.77.1
  • containerize the external dependencies test
  • create setup action
  • disable libintl on mac release
  • don't assign reviewers for "api" and "ui" labels
  • don't automatically enable -Werror on CI environments
  • don't install unnecessary dependencies
  • don't install unzip
  • enable clang-analyzer warnings
  • enable colors by default when testing
  • enable unittests on macos-14
  • fix PR labeler
  • fix api-docs workflow
  • fix mac release
  • improve default backport pull request title
  • install perl provider on mac
  • install stylua from their releases
  • install uncrustify through homebrew
  • introduce CI_LINT option
  • make all linux releases work with same glibc version
  • make install_deps.sh more flexible
  • move external_deps job from cirrus-ci back to github actions
  • provide separate macos releases for intel and arm
  • refactor CI files
  • remove UBSAN_OPTIONS environment variable (#25963)
  • remove api-docs-check workflow
  • remove ci/ from cache key (#23878)
  • remove container solution for the linux runner
  • remove python workaround
  • remove redundant asan and ubsan options
  • remove reviewdog for uncrustify
  • remove team reviewers
  • remove unnecessary token usage
  • remove winget workflow
  • replace stale bot with custom implementation
  • replace stylua action with our own lint target
  • reuse script to enable Developer Command Prompt
  • run codeql on pull requests #24545
  • run lintcommit with cmake target
  • run tests in parallel
  • simplify backport workflow
  • simplify concurrency string
  • skip api-doc workflow on draft PRs
  • stale bot should close the issue with "not planned"
  • test on macOS M1 (#27276)
  • trigger tests when pushing
  • update clang version to 18
  • update notes.md
  • update reviewers
  • update vim_patches.yml to follow conventional commits
  • use --break-system-packages on mac when installing pynvim
  • use a set instead of array for team reviewers
  • use clang 17 as the default clang version is too old
  • use the latest stylua version
  • use the same logic to determine build type for all releases
  • various cleanups
  • various fixes
  • work around flaky python3 tests
  • write the correct cherry-picked commit id when backporting
  • cirrus: don't run lua/help_spec (#25498)
  • cirrus: use FreeBSD 13.2 (#24684)
  • codeql: add concurrency to cancel unnecessary jobs early
  • deps: update bump_deps script (#23604)
  • issue-open-check: don't add "doc" label
  • labeler: add back GitHub token for type-scope
  • labeler: reuse workflow to reduce duplication
  • labeler: run "type-scope" after "triage"
  • labeler_issue: split on word boundaries
  • lintcommit: allow colon not followed by space in description (#23035)
  • lintcommit: fix empty and period check with multiple colons (#26312)
  • lintcommit: fix error output
  • lintcommit: use nvim -l
  • release: bump mac runner version to macos-12
  • release: clean up wording and undeprecate tar.gz
  • release: create version tag after "stable" tag (#26671)
  • release: perform a full checkout when building (#26323)
  • release: remove unnecessary full clone
  • release: run universal_macos build on M1 (#27505)
  • release/winget: get msi from previous job instead of downloading
  • response: use pagination for timeline events
  • s390x: double TEST_TIMEOUT since tests are running via qemu
  • s390x: enable CI_BUILD
  • s390x: run build & test as a non-root user
  • test.yml: explicitly set build type (#27503)
  • windows: optionally test windows with ASAN

Testing

  • "diff" flag of 'fillchars' (#26657)
  • 'nofsync' with deadly signal #26415
  • 'showcmd' with ext_messages and Visual selection (#28393)
  • 'smoothscroll' <<< marker shows with tabline, winbar and splits
  • 'smoothscroll' works with virt_lines above and below
  • :terminal when 'shell' uses backslashes
  • API can return Lua function to Lua code (#28380)
  • add a bit more testing for vim.on_key() (#28095)
  • add benchmark for vim.iter
  • add more hlstate tests
  • add more tests for :Man section extraction
  • add screenpos() benchmarks
  • add some tests for SafeState autocommand
  • add test coverage for #25741
  • add test for 'foldcolumn' with cmdwin (#27355)
  • add test for scroll wheel at right-click menu (#27409)
  • add tests for executing commands with backwards range
  • add type annotations
  • added tests for set_height with winminheight=0 and a winbar
  • allow avoiding repeated screen lines in expected states
  • avoid name collisions with Xtest directory (#23019)
  • avoid repeated screen lines in expected states
  • big cleanup followup
  • check for ASAN properly (#24224)
  • check real cursor position in Terminal mode (#24436)
  • check that TextChangedT cannot delete terminal buffer (#24437)
  • check vim.wait() error message in fast context (#26242)
  • combining TermCursorNC with CursorLine/CursorColumn (#27898)
  • convert tests in test_conceal.vim to Lua
  • correct order of arguments to eq() (#27816)
  • decoration provider with wrapped lines (#25404)
  • do not inject vim module into global helpers
  • don't unnecessarily specify win/buf for nvim_(get|set)_option_value
  • don't use minimal timeout for "intermediate" flag (#27620)
  • fileio_spec is unreliable/flaky #26404
  • fix VimResume test flakiness (#24438)
  • fix Windows tests failures (#26461)
  • fix dependencies between test cases (#23343)
  • fix helpers.relpath()
  • fix mkdir()
  • fix off-by-one test IDs in logs (#28269)
  • fix state() test flakiness (#24839)
  • fix vimscript/server_spec leaving behind a dir (#28204)
  • forward $VIMRUNTIME in child nvim instances
  • getting autocmd Lua callback in Vimscript (#28367)
  • improve helpers.argss_to_cmd()
  • improve test conventions
  • improve test conventions
  • macros in Visual mode without default mappings (#28288)
  • make mapping tests more consistent (#28368)
  • make text-only snapshots work (#26494)
  • more tests for aucmd_win remaining floating (#28214)
  • more tests for nvim_eval_statusline "fillchar" (#27502)
  • more tests for nvim_tabpage_get_win (#27248)
  • more tests for nvim_{set,del}_keymap with abbreviation (#23970)
  • move format_{string,luav} to a separate module
  • move most title tests to a separate file (#23557)
  • move vim.iter tests to separate file
  • normalise nvim bridge functions
  • only trim trailing spaces in swapfile tests (#25341)
  • print screen snapshot in desired format (#28088)
  • reduce exec_lua calls
  • reduce flakiness (#24443)
  • reduce sleep for file timestamp change (#28196)
  • refactor Paths
  • remove helpers.sleep()
  • remove penlight usage
  • remove test.deprecated
  • remove the pipe created by new_pipename() (#26173)
  • remove unnecessary nil argument to testutil (#28270)
  • remove unused functions
  • rename (meths, funcs) -> (api, fn)
  • scheduled callback shouldn't trigger ModeChanged repeatedly
  • set 'termguicolors' in outer Nvim instance (#26437)
  • set notermguicolors in tests
  • sign on wrapped line with signcolumn=number (#26654)
  • silence expected errors
  • simplify helpers.sysname()
  • simplify vim.fs tests
  • skip another flaky test on macOS (#28087)
  • skip failing test on freebsd
  • skip failing watch file tests on freebsd (#26110)
  • skip flaky test on Windows
  • skip flaky tests
  • skip flaky tests
  • spellcheck :help (vimdoc) files #24109
  • typing for helpers.meths
  • typing for screen.lua
  • unignore test which froze sourcehut (#25067)
  • unreliable 'nofsync' test #26423
  • unskip more terminal tests on Windows (#26315)
  • update tests for auto-closing :term buffers
  • use ST terminator instead of BEL in OSC sequences
  • use integers for API Buffer/Window/Tabpage EXT types
  • use matches(...) instead of ok(string.find(...)) (#28111)
  • use termopen() instead of :terminal more (#26462)
  • use vim.inspect directly
  • use vim.mpack and vim.uv directly
  • api: update tests to new error messages
  • autocmd/termxx_spec: fix flakiness (#25694)
  • column: statuscolumn is rebuild when signs are (un)placed
  • core/channel_spec: fix lint failure
  • core/channels_spec: fix variable name
  • core/job_spec: fix flakiness (#26623)
  • core/job_spec: skip exit test if "sleep" command missing (#28137)
  • core/path_spec: don't use fnameescape() (#25593)
  • core/startup_spec: add a test for #13720 (#23910)
  • core/startup_spec: use retry() instead of jobwait() (#24481)
  • decorations_spec: add test for extmark case of #21486 (#24028)
  • ex_terminal_spec: match descriptions (#26314)
  • ex_terminal_spec: unskip tests that work on Windows (#26310)
  • extmarks: add a test for #23848 (#24140)
  • extmarks: add test for virt_text_hide with 'smoothscroll' (#23791)
  • extmarks: add test for virt_text_win_col with cpo+=n (#24328)
  • extmarks: add tests for #14201 #20004 #20885 (#23794)
  • extmarks: folding inline virt_text on empty line (#23847)
  • extmarks: improve tests for ui_watched (#26732)
  • fileio_spec: fix files not cleaned up properly (#25483)
  • fs: get tmpdir robustly #23021
  • fs: vim.loop was renamed to vim.uv (#24376)
  • functional: remove faulty pending check
  • inccommand: add a test for #20248 (#24489)
  • inccommand_spec: actually trigger 'inccommand' preview
  • lsp: add normalize_markdown tests
  • lsp: add test cases for vim.lsp.tagfunc
  • lsp: fix flaky basic_finish test (#27899)
  • lsp: fix flaky basic_finish test again (#28041)
  • lsp: fix unstable tests for semantic tokens
  • lsp: fix unstable tests for set_defaults (#23002)
  • lua/runtime_spec: add test for ftplugin ordering
  • lua/snippet_spec: wait for completion menu (#27243)
  • normal: port legacy normal test for page scrolling (#28100)
  • nvim_open_term: don't resize after creating terminal (#26570)
  • old: change back to using termopen() on Windows (#27772)
  • old: correct path to .valgrind.supp (#27306)
  • old: don't check for $CLANG_SANITIZER (#25432)
  • old: don't set options to default before every test (#25335)
  • old: make line wrapping in test_filetype.vim match Vim (#28286)
  • old: remove Test_floatwin_splitmove()
  • old: remove python2 tests (#23547)
  • old: remove workaround for TSAN CI (#24834)
  • old: reorder test_edit.vim to match upstream (#24837)
  • old: reorder test_mksession.vim to match upstream (#26021)
  • old: reorder test_quickfix.vim to match upstream (#25029)
  • old: reorder test_substitute.vim to match upstream (#23994)
  • old: restore default 'grepprg' and 'grepformat' (#28574)
  • old: skip flaky test (#28060)
  • old: sleep for 1 second on non-Windows in test_stat.vim (#28195)
  • old: sync test_filetype.vim with upstream (#23127)
  • options: add test for 'modified'
  • options/defaults_spec: fix NVIM_APPNAME test flakiness (#24553)
  • plugin/man_spec: use pesc() on actual_file in pattern (#25199)
  • scroll_opt: fix typo in porting oldtest (#23593)
  • shada/marks_spec: load the file with the marks (#24979)
  • startup_spec: add a test for #18315 (#24391)
  • startup_spec: use getscriptinfo() instead of :scriptnames (#23034)
  • statusline: add test with control characters (#24197)
  • terminal: fix scrollback test flakiness (#24708)
  • terminal: remove unnecessary string operations (#26434)
  • terminal/buffer_spec: avoid other keys in double clicks (#28245)
  • terminal/buffer_spec: fix incorrect tests (#27923)
  • terminal/buffer_spec: re-skip bang test on Windows
  • terminal/buffer_spec: use screen:expect(), not retry() (#28246)
  • terminal/channel_spec: fix flakiness (#25649)
  • terminal/channel_spec: fix screen test immediate success (#23192)
  • terminal/cursor_spec: unskip tests that pass on Windows (#27924)
  • tohtml_spec: don't use hard-coded sleeping time (#27770)
  • treesitter: add test cases for inspect_tree
  • treesitter: fix obsolete predicates
  • treesitter: improve the style of treesitter/parser_spec
  • treesitter: more foldexpr tests
  • treesitter: separate out query-related tests into query_spec
  • treesitter/fold_spec: fix flakiness (#26524)
  • tui: add & improve tests for terminal queries (#27219)
  • tui: add test for overriding argv[0] (#24293)
  • tui_spec: fix flaky test for isolated "stop paste" (#28053)
  • tui_spec: get &background from child session directly (#27224)
  • tui_spec: prevent race between nvim_input and nvim_paste (#27356)
  • tui_spec: small consistency fixes (#25332)
  • tui_spec: update cursor_address test for flush start (#26464)
  • tui_spec: update cursor_address test for wrap flag (#25228)
  • ui/decorations_spec: avoid flakiness caused by undo msg (#25924)
  • ui/embed_spec: make sure server is started (#25880)
  • ui/embed_spec: use notification instead of request (#25555)
  • ui/float_spec: click in bordered float sets correct curswant
  • ui/fold_spec: click on multibyte "foldclosed" (#25216)
  • ui/fold_spec: more testing for clicking on 'foldcolumn' (#25225)
  • ui/messages_spec: unskip msg_puts_printf test on Unix CI (#27941)
  • ui/mouse_spec: make sure click is processed (#27412)
  • ui/mouse_spec: mouse click with matchadd() concealed text
  • ui/searchhl_spec: match more in :terminal test (#25631)
  • unit: add test for os_mkdir_recurse "created"
  • unit: correct header name (#26446)
  • unit: move statusline tests to statusline_spec.lua (#25441)
  • unit/eval/typval_spec: adjust for Float to String conversion
  • unit/eval/typval_spec: don't dereference NULL last_msg_hist
  • vim.ui.open: mock failure on Windows
  • winbar_spec: properly update winbar when 'showcmdloc' is "statusline"
  • windows: unskip working tests (#25153)
  • winscrolled: make sure floating window is drawn (#25639)

Documentation

  • "Return (multiple)" heading
  • .git-blame-ignore-revs #26397
  • Bram farewell #24589
  • CONTRIBUTING.md updates (#24280)
  • Lua docstrings guidance #25345
  • MAINTAIN.md, nvim_get_mark
  • add hl-DiagnosticDeprecated and hl-DiagnosticUnnecessary
  • add code-overview from wiki to src/nvim/README.md
  • add comment for OSC 11 tmux passthrough (#26566)
  • add installation and build guides from wiki to repo
  • add lua typing for vim.NIL
  • add some missing changes from Vim runtime updates (#23533)
  • add style rule regarding initialization
  • add vim.lsp.buf.formatting_sync() to deprecated.txt (#23045)
  • add wiki FAQ to the runtime documentation (#26539)
  • adjust fswatch overflow message to mention docs with info
  • adjust help-tag-right CSS for HTML #25858
  • also change "vimL" and "viml" to "Vimscript" (#24414)
  • apply current colorscheme to default highlight groups
  • auto-generate docs for vim.lpeg and vim.re
  • autocmds, misc
  • breaking change in diagnostic goto #28541
  • clarify about error in shada (#25594)
  • clarify on_bytes arguments
  • clarify vim.schedule_wrap behaviour
  • convert BACKERS.md to backers.txt
  • correct on_key docs (#27429)
  • deprecate the "term_background" UI field
  • deprecation policy #23138
  • do not hardcode LSP version in URL #25648
  • do not use deprecated functions #25334
  • document $XDG environment variables #25227
  • document TSNode:byte_length() (#26287)
  • document breaking change for nvim_create_autocmd callback (#27484)
  • document breaking change of cursor blink behavior (#26075)
  • document header structure
  • document setting g:clipboard to v:false (#28085)
  • document special labels used in CI
  • don't mention executable() can return -1
  • drop "Can also be used as a method" #24508
  • enforce "treesitter" spelling #27110
  • explain why TUI is reinitialized on resume (#27177)
  • fix erroneous nvim_buf_set_extmark example (#23404)
  • fix links
  • fix misparsed headings (#24162)
  • fix misplaced mention of 'backupdir' (#25568)
  • fix several misleading and superfluous wordings (#27609)
  • fix type of setreg() argument {options} (#27631)
  • fix type warnings
  • fix typos (#23917)
  • fix typos (#27868)
  • fix typos and other small fixes (#25005)
  • fix vim.snippet help tags (#26068)
  • fix vim.tbl_get type annotations #23992
  • format vim_diff.txt for "flow" layout #28584
  • gather @notes items into one section
  • handle whitespace in emmycomments
  • improve 'tabline' click label docs (#27529)
  • improve/add documentation of Lua types
  • include backtrace for bug-crash #27065
  • inline wiki page Deps.md into MAINTAIN.md
  • inline wiki page Refactoring.md into MAINTAIN.md
  • list NVIM_APPNAME as env on manpage (#25935)
  • lsp, vim_diff
  • luaref cleanup #24541
  • misc
  • misc #24163
  • misc #24561
  • miscellaneous doc and type fixes (#25554)
  • more accurate typing for vim.tbl_extend
  • move minimum reproduction template from wiki to repo
  • move vim-patch wiki page to runtime documentation
  • move vim-variables to separate file
  • recommend testing nightly or stable for bug reports
  • remove "#" comment char in @return
  • remove "f" from default 'shortmess' value
  • remove joke from pronounce
  • remove mention of foreground/background/special keys in nvim_set_hl (#27558)
  • remove mentions of scan-build
  • remove more references to shm-f
  • remove remaining mentions of hkmap (#28038)
  • remove section on constants in style guide
  • remove trailing spaces #24455
  • replace
     with ``` (#25136)
  • restore accidentally removed line in :h 'ignorecase' (#25651)
  • semantic token methods in :h lsp-method #23991
  • simplify build instructions
  • small fixes
  • small fixes
  • small fixes
  • small fixes (#23619)
  • small fixes (#25585)
  • small fixes (#25831)
  • small fixes (#26154)
  • small fixes (#26243)
  • small fixes (#26448)
  • small fixes (#26651)
  • small fixes (#27213)
  • small fixes (#27364)
  • small improvements to compl-autocomplete example (#25299)
  • stricter bufname and bufnr types (#27454)
  • support @since for api level #25574
  • support inline markdown
  • tags for commenting mappings without "-default" suffix (#28205)
  • update FAQ URLs #27236
  • update MAINTAIN.md
  • update MAINTAIN.md
  • update api.txt and add inline virtual text to news.txt
  • update contributing
  • update luvref.txt for version info
  • update supported platforms
  • update vim.schedule param name and type
  • use abort() for unreachable default: case in C
  • various #25289
  • various clarifications (#23999)
  • various clarifications (#24876)
  • various fixes (#26929)
  • various fixes (#27063)
  • various fixes (#28208)
  • vim.iter #26169
  • BUILD: mention treesitter parser dependencies (#28226)
  • INSTALL.md: remove update-alternatives instructions (#27060)
  • MAINTAIN: Add note about deprecation policy exceptions (#25159)
  • MAINTAIN: update deprecation policy (#24619)
  • api: document nvim_buf_add_highlight vs nvim_buf_set_extmark (#23310)
  • api: sort unreleased nvim__ functions last #28580
  • build: update rhel/fedora build prerequisite (#27875)
  • builtin: fix alignment of comments in code blocks (#24529)
  • builtin: fix and annotate language blocks (#24506)
  • builtin: fix lua types for vim.fn.sign_getplaced
  • builtin: fix mapset() signature (#27008)
  • builtin: fix some missing lines (#24615)
  • builtin: fix some missing lines (#24759)
  • builtin: overload functions with union return types
  • builtin: remove signatures of undocumented functions (#27039)
  • builtin: right align tags (#24522)
  • builtin: show tag at first line with multiple signatures (#27577)
  • builtin: small fixes (#24861)
  • column: 'statuscolumn' redraw interaction with 'relativenumber'
  • diagnostic: add return value of vim.diagnostic.config() (#26615)
  • diagnostic: fix typo in example
  • diagnostic: return value of get() #24144
  • editorconfig: move to source
  • eval: add parameter type for vim.fn.mode() (#26776)
  • eval: getline and indent function support string type
  • ex_cmds: migration from "behave xterm" #24024
  • extmarks: add undocumented "details" array fields
  • gen_help_html: accept "~/" in file/dir params #24240
  • gen_lsp.lua: re-generate vim.lsp._meta.protocol type annotations
  • generators: bake into cmake
  • gh: suggest distclean in issue template (#23222)
  • glob: add glob module (#26853)
  • html: algolia docsearch #23839
  • html: define anchors for search engine #23879
  • html: right-align inline tags (#23403)
  • if_pyth: make it work with Python 3 instead of Python 2 (#23620)
  • install: add more Linux install instructions #27350
  • iter: add emmylua type to iter module (#23845)
  • lpeg: merge upstream changes
  • lpeg: remove double backticks from meta (#27659)
  • lsp: LspInlayHint highlight group #24071
  • lsp: add supports_method to vim.lsp.client docs (#26852)
  • lsp: clean up LSP event documentation #24413
  • lsp: describe semantic tokens highlight groups with more details
  • lsp: fix config.cmd argument for vim.lsp.start_client (#23560)
  • lsp: fix references to protocol.constants #24578
  • lsp: fix type of config.cmd argument for vim.lsp.start_client (#23550)
  • lsp: mark ClientConfig.init_options as optional
  • lsp: mention ctx.version
  • lsp: nits and typos in client.lua
  • lsp: remove obsolete didChangeConfiguration explanation (#27595)
  • lsp: remove obsolete lsp-extension example (#23346)
  • lsp: remove vim.lsp.sync (#23416)
  • lua: add missing fields to treesitter/_meta
  • lua: add missing word in docs for vim.empty_dict (#24401)
  • lua: adds links to related keymap functions to keymap.set (#24337)
  • lua: change lua-foo -> vim.foo
  • lua: clarify fs.find() documentation #24394
  • lua: clarify when vim.bo/vim.wo acts like :setlocal (#27708)
  • lua: do not render self args
  • lua: don't include remote-only API functions (#26266)
  • lua: fix generated fname param annotations #24533
  • lua: improvements for LSP and Diagnostic
  • lua: more improvements (#24387)
  • lua: move function docs to lua files
  • lua: the keyset nilocalypse
  • lua: update ":{range}lua" docs + error message #27231
  • lua: vim.str_utf_{start,end,pos} #24424
  • luaref: fix tags for constants (#24203)
  • luaref: remove parentheses from tags for typedefs (#24271)
  • luv: correct uv.spawn options.args docs about the first argument
  • luv: update to HEAD
  • luvref: update to version bump
  • megpack_rpc: add news entry for msgpack-rpc client type
  • msgpack_rpc: add "msgpack-rpc" client type
  • news: create new news, rename old news (#22922)
  • news: expand the list of performance improvements
  • news: very, very minorly
  • options: add codeblock annotations to options.lua (#26696)
  • options: fix mistakes (#24568)
  • options: remove misleading sentence (#27129)
  • options: take ownership of options.txt (#24528)
  • powershell: use tee.exe instead of Tee-Object
  • starting.txt: correct step number (#26185)
  • style: add guideline for fixing compiler error on switch statement
  • term: use tic -x for better compatibility with old ncurses (#25421)
  • term.txt: reorder paragraphs about TUI input (#24367)
  • test: add more info on debugging with gdb #25230
  • treesitter: add disclaimer about needing to parse before get_node()
  • treesitter: add more examples, and improve consistency
  • treesitter: fix ambiguous parameter description about lang
  • treesitter: improve 'no parser' error message for InspectTree
  • tutor: clarify the meaning of ✗ and ✓ (#25204)
  • tutor: include https urls where applicable (#27461)
  • vim.iter: correct bool to boolean (#27018)
  • vim_diff: fixed inconsistent autocmds behavior #24453
  • vvars: fix wrong lua types in vim.v variables

Reverted Changes

  • "ci: trigger tests when pushing"
  • "feat(extmarks): subpriorities (relative to declaration order) (#27131)" (#28585)
  • "feat(health): fold successful healthchecks #22866"
  • "feat(treesitter): add foldtext with treesitter highlighting"
  • "fix(window): :close crash with autocmd, floats and tabpage" (#27796)
  • "fix: correct versions in deprecation warnings"
  • "memory: Free buffers after freeing variables" (#26356)
  • "refactor: eliminate autocmd_fname_full global"
  • "vim-patch:9.1.0055: formatting long lines is slow"
  • packaging: installation context to per-machine on Windows

Other

  • shortmess+=C #23907
  • update (#26025)
  • update (#26441)
  • update (#27036)
  • update [skip ci] (#22095)
  • update [skip ci] (#23388)
  • update [skip ci] (#24830)
  • update [skip ci] (#28201)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment