a99c469e54
NVIM v0.11.0
...
For notable changes, see runtime/doc/news.txt (or `:help news` in Nvim).
Following is a list of fixes/features commits.
BREAKING
--------------------------------------------------------------------------------
- 0f4f7d32ce
remove `nvim` and `provider` module for checkhealth
- 7dbbaaec3f
rename 'jumpoptions' flag "unload" to "clean" (#30418 )
- 35c5e23107
store artifact shasums in a single shasum.txt file
- 188ec19894
turn off translations by default
- 328ea02eb7
use utf8proc full casefolding
- 737f58e232
api: rename Dictionary => Dict
- a389dc2f95
clipboard: use OSC 52 as fallback clipboard provider (#31730 )
- ad70c9892d
column: rework 'statuscolumn' %r/l items
- eb60cd74fb
deps: bump tree-sitter to HEAD, wasmtime to v29.0.1 (#32200 )
- a119aae4d3
diagnostic: filter diagnostics by severity before passing to handlers (#30070 )
- 51ccd12b3d
diagnostic: make virtual text handler opt-in (#32079 )
- a9e725b26e
diagnostics: sort underline severity_sort (#30898 )
- e8b5dd1e89
lsp: `symbol_to_item` requires `offset_encoding`
- 8260e4860b
lsp: multiple client support for vim.lsp.buf.hover()
- debabaf884
lsp: pass buffer number to root_dir function
- 9b357e30fd
lsp: remove client-server handlers from vim.lsp.handlers
- 3e3775961f
lsp: rename lsp.completion.trigger() to get() (#32911 )
- 0083e03d6f
lsp: support multiple clients in goto methods (#30877 )
- dff684fdb3
lsp: support multiple clients in lsp.buf.references
- 970a27927e
lua: do not use typed table for empty dict
- de48fbbd5f
messages: vim.ui_attach message callbacks are unsafe
- a27419f3fc
options: disallow setting hidden options #28400
- b922b7d6d7
options: use OptVal for option defaults #26691
- 4d9a1b9852
provider/python: add python 3.13, drop 3.7 and 3.8 (EOL) #33022
- 318676ad13
release: remove backwards compatible releases
- ad191be65e
signs: place higher-priority signs from the left #27781
- 0dd933265f
terminal: cursor shape and blink (#31562 )
- 35e5307af2
terminal: include cursor position in TermRequest event data (#31609 )
- 3cf602486c
terminal: make 'belloff' and 'visualbell' apply to terminal bell (#30859 )
- 041d98fe8d
treesitter: add default fallback to `ft_to_lang` lookups
- 6913c5e1d9
treesitter: default to correct behavior for quantified captures (#30193 )
- bd4ca22d03
treesitter: don't parse tree in get_parser() or start()
- a0b52e7cb3
treesitter: enforce buffer is loaded when creating parser
- 99e0facf3a
treesitter: use return values in `language.add()`
- bda63d5b97
typval: remove distinction of binary and nonbinary strings
- 48e2a73610
ui: emit prompt "messages" as cmdline events #31525
- ca5fca2912
windows: drop cat and tee executables from windows
- be89d520d7
windows: only support UCRT, even for mingw
FEATURES
--------------------------------------------------------------------------------
- efa45832ea
add "jump" options to vim.diagnostic.config() (#29067 )
- 0631492f9c
add vim.fs.relpath
- f864b68c5b
allow gx to function for markdown links
- f3632e14e3
get/set namespace properties #28728
- a664246171
remove deprecated features
- ead5683ff9
api: add err field to nvim_echo() opts
- aec4938a21
api: broadcast events to ALL channels #28487
- 34d808b73c
api: combined highlights in nvim_eval_statusline()
- 19b25f3fea
api: deprecate nvim_buf_add_highlight()
- 5c92b40b4b
api: deprecate nvim_out/err_write(ln)
- d84a95da7e
api: nvim_get_autocmds filter by id#31549
- 25d8c3a5ad
api: nvim_open_win() relative to tabline and laststatus #32006
- e00d67ef31
checkhealth: group parsers by name and path in output
- 563051a53e
clipboard: support g:clipboard="osc52" #33021
- 60ea046741
clipboard: try cygutils, clip on Windows #30215
- 2c629ad13f
column: apply appropriate numhl highlight to virt_lines (#32400 )
- 65c7033cbe
comment: allow commentstring to be determined from node metadata
- 268a3de0a7
complete: CompleteDone reason "cancel", "discard" #32600
- a616272f56
complete: specify reason for CompleteDone
- f1748b78e3
default: bind `vim.lsp.buf.signature_help` in select mode (#31223 )
- ac207c3ac2
defaults: "Show Diagnostics" in mouse popupmenu #32122
- 2c6b635872
defaults: add LSP default mappings (again) (#28650 )
- bb7604edda
defaults: add default unimpaired style mappings (#28525 )
- 4662ad5643
defaults: completeopt=popup #32909
- e8e3b443f8
defaults: disable 'foldcolumn' in terminal buffers (#31480 )
- cc6992f1ca
defaults: dot-repeat [<Space> #31186
- 6db830e40e
defaults: enable diffopt "linematch" #32346
- b31132f1c1
defaults: jump between :terminal shell prompts with ]]/[[ #32736
- 0b7cc014fc
defaults: map gO to LSP document_symbol #30781
- 26e765f905
defaults: map gri to vim.lsp.buf.implementation() (#30764 )
- 76aa3e52be
defaults: popupmenu "Open in browser", "Go to definition" #30261
- 09d76afe84
defaults: pretty :help headings #30544
- 079e5f4f9b
defaults: unimpaired empty line below/above cursor #30984
- 1c6d920052
defaults: use vim.diagnostic.jump() for default mappings (#29066 )
- c9c17fda80
deprecations: vim._defer_deprecated_module()
- 38a52caec0
diagnostic: add `current_line` option for `virtual_text` handler
- 8ba73f0e4c
diagnostic: add vim.diagnostic.jump() (#26745 )
- 445ecca398
diagnostic: format() can filter diagnostics by returning nil #32302
- 99e7323aa3
diagnostic: inherit parent 'path' option in open_float (#31273 )
- 21961967ff
diagnostic: update quickfix list by title #31486
- 7579af3c51
diagnostic: vim.diagnostic.setqflist improvements #30868
- 1759b7844a
diagnostic: virtual_lines #31959
- fd65422b99
diff: do not try external when out of memory
- 0c296ab224
docs: "yxx" runs Lua/Vimscript code examples #31904
- 6628741ada
docs: improve `@see` meta docstrings #30693
- 23290e7676
editor: handle new multibyte sequences in normal mode replacement
- cb6c0fda71
editorconfig: add support for spelling_language (#28638 )
- 4817547ec4
ex_cmds: :sleep! hides the cursor while sleeping (#31493 )
- 4f9260d06a
ext_messages: add hl_id to ext_messages chunks
- 4cced601c8
extmark: stack multiple highlight groups in `hl_group`
- 931ee5591f
extmarks: virtual text can be right-aligned, truncated #31921
- 62d9fab9af
float: add winborder option (#31074 )
- 9b8907d905
float: allow enabling mouse for non-focusable window (#30844 )
- 511b991e66
fs.lua: add vim.fs.rm()
- 054a287dbe
ftplugin: change 'commentstring' to `// %s` for C/C++ (#29085 )
- f398e3a61a
ftplugin: set Lua 'omnifunc' to vim.lua_omnifunc #32491
- b61051ccb4
func: allow manual cache invalidation for _memoize
- 548f19ccc3
health: close checkhealth buffers with q #31870
- f2fa4ca97e
health: highlight headings #30525
- b12b91c274
health: show :checkhealth in floating window #31086
- 6592873f77
help: use treesitter for table of contents
- 3e09fbdf82
highlight: add StatusLineTerm and StatusLineTermNC groups
- 295920845e
highlight: make `PmenuMatch` and `PmenuMatchSel` bold
- 5b1136a99c
inccommand: preview 'nomodifiable' buffers #32034
- 61025c9e7a
install: mention standard paths, XDG vars in Windows installer #29101
- 8ef41f5902
jobs: jobstart(…,{term=true}), deprecate termopen() #31343
- e7020306a1
jumplist: allow opting out of removing unloaded buffers (#29347 )
- 8d55cc218c
keysets: teach Union and LuaRefOf
- 5931f780e0
log: use "ui" as default name for TUI client #30345
- e4c6e732fd
lsp: add select kind in showMessageRequest #32387
- f20335a54c
lsp: add support for completionItem.command resolving
- 3f1d09bc94
lsp: add vim.lsp.config and vim.lsp.enable
- 6072153796
lsp: announce codeLens resolveSupport (#29956 )
- 1f5bcc7c4e
lsp: completion opts support custom item conversion (#30060 )
- ff097f2091
lsp: completion side effects
- 7a7747f1e4
lsp: deprecate execute_command with client:exec_cmd
- 454ae672aa
lsp: deprecate non-method client functions
- 54249d051c
lsp: deprecate vim.lsp.buf.completion
- e56437cd48
lsp: deprecate vim.lsp.start_client #31341
- 55e4301036
lsp: drop fswatch, use inotifywait (#29374 )
- dad55f5e76
lsp: export diagnostic conversion functions (#30064 )
- 44229bb85b
lsp: highlight hover target/range #31110
- 27f3750817
lsp: improve LSP doc hover rendering #30695
- 6722149776
lsp: include `end_col` and `end_lnum` in `vim.lsp.buf.symbols_to_items`
- 20f22f75ee
lsp: include end_col, end_lnum in vim.lsp.buf.locations_to_items #29164
- 4e90bc3023
lsp: lsp.completion support set deprecated (#29882 )
- 6e68fed374
lsp: multi-client support for signature_help
- 629483e24e
lsp: require `offset_encoding` param #31249
- e00cd1ab40
lsp: return resolved config for vim.lsp.config[name]
- 130b5fd85f
lsp: return table from lsp/ files on runtimepath (#31663 )
- ce678043e3
lsp: show server name in code actions #30830
- 07d5dc8938
lsp: show server version in `:checkhealth` #31611
- a1e313ded6
lsp: support `textDocument/foldingRange` (#31311 )
- 3b0fe2659e
lsp: support completion context #32793
- 41b07b128c
lsp: support for resolving code action command (#32704 )
- 35247b00a4
lsp: support function for client root_dir (#31630 )
- 45e76acaa0
lsp: support hostname in rpc.connect #30238
- b2bad0ac91
lsp: support postfix snippets in completion
- d3e4ffafff
lsp: support utf-8 and utf-32 position encodings
- 5d26934c7c
lsp: update LSP healthcheck format (#28980 )
- ae2fd91b41
lsp: update LSP types
- 0df2c6b5d0
lsp: use fuzzy match on filterText instead of prefix match
- e4c1f6667b
lsp: use the meta model to generate server capability map
- 5581a95534
lsp: vim.lsp.buf.format() supports textDocument/rangesFormatting #27323
- 92e4e3fb76
lsp.util: fix type errors
- ff1d7d4299
lsp.util: get_bufs_with_prefix -> get_writeable_bufs
- cbc82011ce
lsp.util: improve offset_encoding type annotations
- a18fa2f11c
lsp.util: minor codestyle
- 1944c0d610
lsp.util: refactor get_border_size()
- f0973d4227
lsp.util: refactor symbols_to_items()
- 0e8568d72c
lsp.util: remove lsp spec extract
- 0621718e3b
lsp.util: remove metatable in locations_to_items
- 3f87e222f7
lsp.util: remove some aliases
- e954a16063
lsp.util: remove some variables
- 5bec7288a5
lsp.util: remove uneeded do-end
- 8ad000ef7c
lsp.util: remove unneeded table
- d44d36b8ff
lsp.util: simplify some bounds checking
- 0066dd0f65
lsp.util: use faster version of vim.validate
- 1edfe5c09e
lsp.util: use vim.api alias
- 97119a2369
lsp.util: use vim.w/b
- cd53db2157
lua: add `context.env` (environment variables) to `vim._with()`
- 9afa1fd355
lua: add `vim._with`
- 5180707310
lua: add `vim.fs.abspath`
- b34e137e43
lua: allow vim.on_key() callback to consume the key (#30939 )
- d5ae5c84e9
lua: completion for vim.fn, vim.v, vim.o #30472
- 0a5a0efda6
lua: don't complete private (_) fields after dot (.) #32690
- 07cc559cdf
lua: update `vim._with` to allow more granular option contexts
- af0ef2ac9d
lua: vim.hl.range() "timeout" #32012
- be1fbe38b3
lua: vim.text.indent()
- fdeb01cd77
main: expand file ~\ or ~/ prefix on Windows (#28515 )
- ea5b748f24
man.vim: "q" always closes window #30819
- f58e7d5fac
marks: add conceal_lines to nvim_buf_set_extmark()
- 51cf84daf9
marks: virtual lines support horizontal scrolling (#32497 )
- cfdf68a7ac
mbyte: support extended grapheme clusters including more emoji
- 124c655f56
messages: "g<" mapping for ext_messages
- cb7b4e2962
messages: "verbose" message kind #31991
- 5bae80899d
messages: add :!cmd shell message kinds
- e16bec41b6
messages: confirm kind for z=, :tselect, inputlist() #32521
- 21151144c6
meta: add type for quickfix entries
- 82a215cb2d
options: add 'eventignorewin' (#32152 )
- d831392b15
paste: unify cancel and error behavior (#30476 )
- 08c328b8b0
runtime: Lua ftplugin 'includeexpr' #32719
- f5714994bc
runtime: Lua ftplugin sets 'omnifunc', 'foldexpr' #32697
- e6cfcaed18
snippet: add default keymaps during snippet session
- 123f8d229e
snippet: set snippet keymaps permanent instead of dynamic (#31887 )
- 96128a5076
startup: validate --listen address
- 230b0c7f02
stdlib: overload vim.str_byteindex, vim.str_utfindex #30735
- 517ecb85f5
stdlib: vim.json.encode(...,{escape_slash:boolean}) #30561
- 8df6736ca1
term: enable reflow by default (#21124 )
- 4199671047
term: support OSC 8 hyperlinks in :terminal (#30050 )
- 93480f7fba
term: trigger TermRequest for APC (#32407 )
- 3ad977f01d
terminal: add support for copying with OSC 52 in embedded terminal (#29117 )
- 6f0bde11cc
terminal: add support for kitty keyboard protocol
- 06a1f82f1c
terminal: forward X1 and X2 mouse events
- e3bfcf2fd4
terminal: support grapheme clusters, including emoji
- f1c45fc7a4
terminal: support theme update notifications (DEC mode 2031) (#31999 )
- 56d11b494b
terminal: disable 'number', 'relativenumber', and 'signcolumn' in terminal buffers (#31443 )
- 34cd94812d
test: support and document lua test case debugging
- b8c75a31e6
treesitter: #trim! can trim all whitespace
- ec8922978e
treesitter: add more metadata to `language.inspect()` (#32657 )
- bd3b6ec836
treesitter: add node_for_range function
- 688b961d13
treesitter: add support for wasm parsers
- 8543aa406c
treesitter: allow LanguageTree:is_valid() to accept a range
- 44ccd9ca24
treesitter: allow `iter_captures` to accept `opts`
- 8b5a0a00c8
treesitter: allow disabling captures and patterns on TSQuery (#32790 )
- 1af55bfcf2
treesitter: allow get_node to return anonymous nodes
- a94a2927d0
treesitter: allow passing lang to InspectTree
- 45e606b1fd
treesitter: async parsing
- 3dfb9e6f60
treesitter: include capture id in return value of `get_captures_at_pos()` #30559
- 267c7525f7
treesitter: introduce child_with_descendant()
- 09f9f0a946
treesitter: show which nodes are missing in InspectTree
- b9b408a56c
treesitter: start moving get_parser to return nil #30313
- da0ae95349
treesitter: support modelines in `query.set()` (#30257 )
- 2e5b560482
treesitter: table of contents for checkhealth, markdown (#32282 )
- 8ba047e33f
treesitter: vertical conceal support for highlighter
- ff85e54939
tui: builtin UI (TUI) sets client info #30397
- 4fb3b57a19
tui: handle kitty key events in libtermkey (#31727 )
- f93ecd2760
tui: parse CSI subparams in termkey (#29805 )
- 44dbfcfba4
tui: recognize X1 and X2 mouse events
- e41368f3bc
tui: support in-band resize events (#29791 )
- d460928263
tui: update 'background' on theme change events (#31350 )
- 45e319ade6
tutor: give hints to satisfy the line checker #30952
- 4b0e2605ea
ui: UI :detach command
- 394f69a25d
ui: additional arguments for cmdline_show/hide events
- a0e3fe5741
ui: cascading style inheritance for Pmenu* highlights #29980
- f85bc41c80
ui: don't show unfocusable windows in :tabs, 'tabline' #27984
- 9762c5e340
ui: gx: use url extmark attribute and tree-sitter directive (#30192 )
- 43d552c566
ui: more intuitive :substitute confirm prompt #31787
- 433b342baa
ui: sign/statuscolumn can combine highlight attrs #31575
- a10636fbe7
ui: specify whether msg_show event is added to history
- e049c6e4c0
ui: statusline text inherits highlights #29976
- 611ef35491
vim.fs: find(), dir() can "follow" symlinks #31551
- 3f15e57b26
vim.ui: configurable "gx" / vim.ui.open() tool
- f4b620c4e6
vim.ui.open: support lemonade #30845
- 3572319b4c
vim.validate: improve fast form and deprecate spec form
- cb84cd5d9f
win32: embed executable icon
FIXES
--------------------------------------------------------------------------------
- 200e7ad157
apply the change on more files
- 6720bd440f
assert failure in VimL expression parser
- d123202ae6
change deprecation presentation
- ded15ca8c2
completion.enable(false,...) deletes invalid augroup #32121
- 7737f89206
deps build for ARM64 MSVC
- 50749f8df8
extend the life of vim.tbl_flatten to 0.13
- 25abcd243e
fix broken wasmtime build
- b6ab294838
fix incorrect search code
- 46b69aaf14
include nvim/ascii_defs.h
- 01b4da65c2
merge all provider healthchecks into a single health.lua
- 5c245ec3e9
remove vim.lsp._with_extend
- 98ba65b8be
replace NVIM with Nvim in default titlestring (#30348 )
- 6aa42e8f92
resolve all remaining LuaLS diagnostics
- e71713ba2b
show swapfile warning as a warning (#28971 )
- 0418107074
update osc52 termfeatures flag on UIEnter/UILeave (#32756 )
- 0829e7575d
warn when :InspectTree on buffer with no parser #32783
- 47f2769b46
Man: completion on Mac
- 89f9f168a5
api: alloc and draw cursor window in nvim__redraw
- 743c5808b6
api: allow `scope = 'local'` with `buf` when using `nvim_get_option_value`
- 487c48ec86
api: clamp range lines in `nvim__redraw()` (#31710 )
- 141114c170
api: crash on invalid buffer to nvim_buf_del_user_command (#31908 )
- 716adbcc45
api: deprecate nvim_subscribe, nvim_unsubscribe #30456
- 1e47aa677a
api: deprecated API nvim_get_option does not validate option name #31919
- 095c0876c2
api: don't override Vimscript SID (#32610 )
- bff07f6dd0
api: don't try to get/set option for invalid option name (#31302 )
- 0e59f6f4c7
api: don't use 'winborder' when reconfiguring float (#32984 )
- cce1eb0806
api: error properly with invalid field in nvim_open_win (#30078 )
- 63bbb7c109
api: fix 'winborder' preventing splits with nvim_open_win (#32981 )
- f55213ce0e
api: fix crash/leak with float title/footer on error (#30543 )
- 022449b522
api: generic error messages, not using TRY_WRAP #31596
- 8de1dc6923
api: make `nvim_set_hl()` respect all `cterm` attributes (#31390 )
- ad60b3fb48
api: memory leaks in vim.api.nvim_*get_option #32390
- 167a2383b9
api: not using TRY_WRAP, generic error messages #31595
- bf48dfadec
api: nvim__complete_set requires completeopt=popup #31177
- d1d7d54680
api: nvim_buf_get_text() crashes with large negative column #28740
- 6ea45031d5
api: nvim_echo free text memory with invalid highlight (#31243 )
- e2ad251c8d
api: nvim_get_option_value does not clean up on FileType error #31219
- 5b9518b436
api: nvim_set_decoration_provider callback return type #31912
- 01a97d2ad7
api: nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576
- 40347f6e27
api: only flush nvim__redraw when necessary #31250
- 36f44b3121
api: remove invalid assertions
- 235cb5bc5f
api: update "range" windows in nvim__redraw #31042
- 9c718bc2bc
api: validation, documentation of hl_group #31195
- 289c9d21cb
autocmds: once=true Lua event-handler may call itself #29544
- ffaab09e99
build: <termios.h> is system-dependent #31705
- 486076a0e1
build: remove USE_FNAME_CASE, redundant with CASE_INSENSITIVE_FILENAME
- 217e26cb64
build: surpress spurious warnings from gcc in -E preprocessor mode
- 34a2bfdcc5
build: vimdoc tags are not validated #32801
- 8070988247
channel: handle writing to file instead of pipe (#30519 )
- c49162be59
channel: log after (not before) channel-close
- 965dc81f81
checkhealth: disable 'listchars' #31245
- 4c9f3689a1
checkhealth: failed if 'lua' in plugin name
- f5dd30948e
checkhealth: handle nested lua/ directory #32918
- c48cf18752
checkhealth: module not found when `&rtp` has nested paths #32988
- 2495e7e22a
clipboard: tmux clipboard depends on $TMUX #31268
- 847c28f6f6
cmdline: always show cmdline when it is a prompt #31866
- af4231d407
cmdline: cmdline completion of _defer_require() modules #33007
- a70ad5cdb6
cmdline: ext_cmdline block events for conditionals
- bbf36ef8ef
cmdline: prevent cmdline_show events after exiting cmdline #32033
- 092042b43d
cmdline: simplify and correct grapheme cluster adjustment
- 86ae59c612
colorscheme: distinguish CursorLine/Folded/StatusLineNC highlights #32256
- 9b9f54e2c1
colorscheme: underline StatusLineNC with 'notermguicolors' #28810
- 8bc28978b6
column: apply custom highlight to last 'statuscolumn' segment (#32182 )
- 3cb1e825e6
column: check if signcolumn changed in all windows #31439
- 1dcda86559
column: clamp line number for legacy signs
- f2083bd55c
column: crash with 'signcolumn' set to "number" (#29003 )
- f9a49fab0c
column: modifying a sign should update placed signs (#29750 )
- d5f6f61879
column: set signcolumn width after splitting window (#30556 )
- 063b69bab4
column: unnecessary redraws with resized 'statuscolumn' (#32944 )
- 0a2218f965
comment: fall back to using trimmed comment markers (#28938 )
- e788d1a3a9
completion: avoid deleting text when completion leader changes #31448
- bfa365a872
completion: don't include <Lua function> in -complete= (#30209 )
- 55dc482e75
completion: fix inconsistent Enter behavior (#30196 )
- 83a7d97d64
coverity: CID 509571 Uninitialized variables #30395
- e1c2179dd9
coverity: INTEGER_OVERFLOW #31657
- f9eb68f340
coverity: error handling CHECKED_RETURN #31618
- 069451bb21
coverity: size_t overflow #30497
- ff7832ad3f
coverity/497355: shada_read_when_writing out of bounds read #30665
- c49030b75a
coverity/497375: f_strpart cast overflow (#30773 )
- 0fe4362e21
coverity/509227/509228: tui driver_ti underflow #30341
- 60e1862ccb
coverity/510275: linematch out of bounds access (#30687 )
- a2008118a0
coverity/510436: shada_read_when_writing index out of bounds (#30686 )
- 71507281fb
coverity/530826: validate_opt_idx unchecked negative idx (#32081 )
- 5af9c065ad
decor: don't draw invalidated virtual lines (#29858 )
- a8fbe1d409
decor: don't use separate DecorSignHighlight for url (#30096 )
- 34ded4d97b
decor: exclude invalid marks from meta total
- 87610d82db
decor: set invalid flag for end of invalidated paired marks
- 33ff546b50
decoration: fix crash when on_lines decor provider modifies marktree
- 0e299ebf75
decorator: noisy errors from decoration provider #31418
- f2173b1aa2
defaults: cannot remove "How-to disable mouse" menu item #30375
- 61aabe0730
defaults: default @/Q broken when 'ignorecase' is set (#29343 )
- 8323398bc6
defaults: don't replace keycodes in Visual search mappings (#31460 )
- f6f2334ac2
defaults: error messages UX for unimpaired mappings #30884
- 59a171fd99
defaults: improve visual search mappings #32378
- 01739d4673
defaults: missing ]Q/[Q unimpaired mappings #30943
- c644228e1d
defaults: omit empty line from unimpaired mapping messages (#31347 )
- ff93cccbc1
defaults: omit extraneous info from unimpaired mapping errors (#30983 )
- 4075e613b2
defaults: properly pass count to quickfix commands (#30632 )
- 289380bc40
defaults: use "range" instead of "count" for some mappings (#30642 )
- 573fcb8b66
deps: revert accidental test commits (#30864 )
- de794f2d24
diagnostic: broken variable reference #31557
- c78728a384
diagnostic: clear autocmd only for valid buf (#32861 )
- f1fcf653cb
diagnostic: clear virtual_lines autocmd only for valid buf #32979
- 921dc22fc0
diagnostic: correct `severity` type on `setqflist`, `setloclist` (#30506 )
- 0e8e4a07f5
diagnostic: don't include diagnostic code when using custom formatter #32464
- d918ebe3b8
diagnostic: fix backwards compatibility for goto_next and goto_prev (#29593 )
- f69937fdbd
diagnostic: fix float scope filtering (#29134 )
- 5bc948c050
diagnostic: improve current_line refresh logic #32275
- 4b3be56a03
diagnostic: make docs agree with code (#29561 )
- fd902b1cb2
diagnostic: only store quickfix id when creating a new one #31466
- 3b1d0e7f70
diagnostic: remove deprecated `severity_limit` option
- 5eda7aafe9
diagnostic: setqflist() is stuck after vim.lsp.buf.document_symbol #31553
- 9a43ec13e6
diagnostic: show backtrace for deprecation warnings
- 4cbeb6fa3c
diagnostic: silence :chistory #31701
- 6c975515c5
diagnostic: vim.diagnostic.setqflist() opens loclist on first call #31585
- 17c25a66fc
diagnostic: virtual lines should scroll horizontally
- fb842dfc22
diagnostic: virtual_lines diagnostic columns (#32703 )
- e5e81262af
diagnostics: don't apply extmarks to invalid lines #29321
- c65646c247
diff: use mmfile_t in linematch
- 81ea44fa6a
display: adjust winline info for concealed lines below last line (#32708 )
- f25dd7a8d5
display: correctly store winline info for concealed lines (#32656 )
- a901fb875f
docs: add missing properties to hl_info #30032
- cc26cf0400
docs: do not treat indexes as `short_link`
- 056009f741
docs: markdown instead of vimdoc in meta docstrings #30680
- 8801b77ed0
docs: missing `@returns` desc in _meta/api.lua #30673
- 09bcb31068
docs: replace `yxx` mappings with `g==` #31947
- efe92f9dff
docs: update context type in `vim.lsp.LocationOpts.OnList`
- b8135a76b7
docs: wrong return value annotation for `nvim_buf_get_extmarks`
- 376de1483e
drawline: correct highlight priority with Visual selection (#30706 )
- 9a0239fdc8
drawline: don't draw beyond end of window (#29035 )
- b1c439cef6
drawline: don't draw beyond end of window with 'rnu' (#29406 )
- 34344b939c
editor: avoid scrolling :substitute confirm message #32149
- 9e7b0bcf51
editorconfig: fix indent style for `local.mk` (#31342 )
- b0a1d35f69
eval: don't shorten $HOME in v:stacktrace (#32634 )
- 2a3561819e
eval: handle wrong v:lua in expr option properly (#29953 )
- 4317d36669
event-loop: process input before events in getchar() (#32322 )
- f05a6666cf
events: always allow some events to be nested (#32706 )
- e9f4ceeb74
events: don't expand `args.file` for Lua callback (#31473 )
- 1f49a59b8b
events: fix incorrect capitalization of Cmdwin* events (#32813 )
- 8c2d45be77
exit: close memfiles after processing events (#30872 )
- c7ec010ade
extmark: builtin completion can still affect nearby extmarks #31387
- 93278e7720
extmark: clearer error message for invalid ephemeral mark usage
- 43a2019f09
extmarks: issues with revalidating marks #28961
- 84ad95fdc9
fileio: copy to correct buffer position when reading
- 93347a67bf
filetype: fix :filetype detect error with -u NONE (#29991 )
- aa9f21ee95
filetype: fix typos in filetype detection
- 032e024f8a
filetype: handle .in files with no filename (#30487 )
- 1077843b9b
filetype: make filetype detection work with :doautocmd (#31470 )
- 21cbd90007
filetype: normalize full path before matching #32227
- 5a8a34dafa
filetype: source ftdetect/* after creating scripts.vim autocmds (#29445 )
- cff5fa49fc
float: "Not enough room" error for 1-line float #25192
- 07c5f41da3
float: can set title/footer without setting border #32594
- be01b361d8
float: cannot set title/footer independently #31993
- ff1791c9e5
float: close preview float window when no selected #29745
- d2cca606a1
float: ensure floating window width can fit title
- 8ddcf9d939
float: handle error in win_float_create() (#29742 )
- 8b2b1fba2a
float: missing default highlight for title
- df915f3afc
float: properly find last window of tabpage (#30571 )
- 17383870dd
float: re-sort layers when grid zindex changed #30259
- 206f8f24a2
fs: make vim.fs.root work for relative paths and unnamed buffers (#28964 )
- 2c160f39d3
ftplugin/man.vim: hide signcolumn (auto)
- 214ce8d33c
gen_help_html: first tag in h2 is broken #30720
- ceea6898a8
gen_help_html: handle delimiter, heading #29415
- 6c3f7e7e27
gen_vimdoc: correctly generate function fields
- 913e81c35f
getchar: do not simplify keycodes in terminal mode
- b109b1abce
glob: avoid `subcapture nesting too deep` error (#29520 )
- 4bd86120d4
glob: handle overlapping `{}` condition elements #29236
- b47b0b3f75
grid: double grid_line_start() with ext_messages #31292
- fe87656f29
grid: grid_line_start NULL access with 'redrawdebug'
- a9c89bcbf6
gx: allow `@` in url
- 570a8da01b
health: "q" should not close last window #31876
- 2e3f1069f4
health: better layout of vim.treesitter health check
- 10f9173519
health: broken ruby detect #28804
- 84e85aeb10
health: check more "old" files #30421
- 5b778a64ec
health: fix fetching url with python in provider health (#29594 )
- b4b4cf46a7
health: fix pyenv root and python exepath detect issue
- 237d2aef4d
health: return correct name from 'path2name()'
- 5e90406487
health: set nomodifiable in checkhealth buffers
- 9177371014
help: remove runnable code virtual text
- ff75f345ab
highlight: 'winhl' shouldn't take priority over API (#31288 )
- 458473acb8
highlight: add `StatusLineTerm`/`StatusLineTermNC` to `:color vim` (#29313 )
- 6bcefad5a6
highlight: fix the seg fault caused by the invalid linked hl ids
- 8e81212e15
highlight: floating windows inherit NormalFloat from global-ns
- 6719276040
highlight: make TablineSel more noticeable with 'notermguicolors' #31905
- b67fcd0488
highlight: make `TablineSel` more noticeable #31896
- 862679c70f
highlight: update `PmenuSel` for colored completion items #30183
- 59e130b6ca
inccommand: ensure cursor is where it belongs
- 16f63b964f
input: handle vim.on_key() properly with ALT and K_SPECIAL (#29677 )
- b52ffd0a59
inspect: always show priority
- 9c278af7cc
inspect: show priority for treesitter highlights
- 22fd52325b
inspector: update semantic token namespace (#32157 )
- efe1732c6f
jobs: do not block UI when jobwait() doesn't block (#31803 )
- 574ea6a191
keycodes: recognize <Find>, <Select> #28431
- 67bb0cfa79
loader: follow the style of the error message for built-in loaders
- 44740e561f
log: RPC log format #32337
- 851137f679
log: log unset $TMPDIR at "debug" level #32137
- c908c2560d
log: unify error messages for vim.ui_attach/decor providers #33005
- a6f219b06b
log: unintuitive message for undefined $TMPDIR
- 2e6d295f79
lsp: account for changedtick version gap on modified reset (#29170 )
- fac96b72a5
lsp: add foldingrange method support check #31463
- 8263ed4670
lsp: add textDocument/documentLink to capability map (#28838 )
- a41b6fd173
lsp: autocmds to close lsp preview windows not cleared
- b42dc232c5
lsp: autotrigger should only trigger on client's triggerCharacters (#32266 )
- 7031949be0
lsp: avoid reusing diagnostics from different servers in actions (#30002 )
- fc9b70826e
lsp: avoid vim.keymap.del error when stopping a client (#29478 )
- 39d79efa1e
lsp: better multi-client support for callHierarchy
- bdfba8598b
lsp: cancel pending requests before refreshing
- f9bf64d746
lsp: check buffer is loaded and valid #30330
- c2bf09ddff
lsp: check for configuration workspace folders when reusing clients
- 81b372fecd
lsp: check for nil response from server (#29196 )
- a9cdf76e3a
lsp: check for valid buf before processing semantic tokens response
- 230bc34ca5
lsp: check if buffer is valid before LspDetach autocmd (#29162 )
- af200c10cf
lsp: check if buffer was detached in on_init callback (#28914 )
- 02097e43c8
lsp: check if sig_help window is focusable when configuring cycle keymap
- 025c874415
lsp: clear lsp client diagnostics (#29050 )
- c374f26430
lsp: clear word when expand multi-lines word (#32393 )
- adf7c98d60
lsp: compare URI instead of workspace folder name (#30962 )
- b4599acbf8
lsp: correct hover result handling (#30995 )
- f8d5811c71
lsp: correctly check for "codeAction/resolve" support
- 7d8db54441
lsp: delete b:lsp_floating_preview buf var after win close
- 2a1f604c77
lsp: delete bufvar inside WinClosed event
- 879d17ea8d
lsp: detach all clients on_reload to force buf_state reload (#28875 )
- 292365fa1b
lsp: do not detach from buffer if there are uninitialized clients (#29029 )
- 37bf4c572a
lsp: do not reset buf version when detaching client (#29242 )
- d56ba71af1
lsp: document_symbol uses loclist by default #32070
- 720b309c78
lsp: don't send foreign diagnostics to servers in buf.code_action (#29501 )
- 1f2f460b4a
lsp: don't show codelens for buffers that don't support it (#29690 )
- 5f527f24f0
lsp: don't use completion filterText if prefix is empty
- 305012ea07
lsp: enable `additionalPropertiesSupport`
- 9d9ee3476e
lsp: ensure watcher cancel
- aec7f1979a
lsp: fallback to `label` for completion items if all others are missing (#29522 )
- 33d10db5b7
lsp: filter completion candidates based on completeopt (#30945 )
- b3109084c2
lsp: fix cursor position after snippet expansion (#30659 )
- 4b001f297a
lsp: fix infinite loop
- 983953858e
lsp: fix isIncomplete condition in completion trigger (#30130 )
- 2ce4a4d91e
lsp: fix reverse sorting of same position text edits (#29212 )
- 8654a97006
lsp: handle empty call hierarchy items #30349
- f279d1ae33
lsp: handle encoding bounds in str_utfindex_enc
- 882a450a29
lsp: handle locations exceeding line length #30253
- 008782208d
lsp: handle mixed encoding in tagfunc params
- e0a5c3bb58
lsp: handle multiline signature help labels #30460
- 8512f669f0
lsp: handle nil bytes in strings
- f03b1622ad
lsp: handle nil root_dir in health check (#29007 )
- ed07167261
lsp: handle non-existent configs in lsp.config/enable
- 003b8a251d
lsp: handle out-of-bounds character positions #30288
- 5187be81c2
lsp: handle using array as open_floating_preview title (#33016 )
- d9a2acdab3
lsp: hide layout in codelenses in virtual text (#28794 ) (#28807 )
- f54266dbed
lsp: hover border type can be string (#31013 )
- 9a681ad09e
lsp: hover keymap (#31208 )
- a14fca432b
lsp: improve LSP floating preview window cleanup #31353
- e29f245a10
lsp: inlay hints are rendered in the correct order (#29707 )
- 0086ee90dd
lsp: list all workspace folders in healthcheck #30966
- 0e394f136f
lsp: log when receiving markup messages (#30065 )
- 203e7a43d1
lsp: mention function name in warning #31301
- a4f575abd8
lsp: minimum height for floating popup #31990
- 4fd2694f20
lsp: missing method parameter when canceling requests
- be8d87014c
lsp: on detach, cancel pending foldingRange requests #31509
- 7d5866d471
lsp: open_floating_preview() ignores max_height (#32716 )
- 86770108e2
lsp: open_floating_preview() zindex relative to current window #31886
- 724d1110b1
lsp: pre-filter matches on label if filterText is missing (#29491 )
- a450fda4ed
lsp: prefer `on_list` over `loclist` in default handler
- 6bb40f3dbf
lsp: prevent desync due to empty buffer (#29904 )
- eb629cce91
lsp: redundant spaces in lsp log (#29970 )
- 43581011e4
lsp: remove superfluous on_detach callback from semantic tokens module (#29174 )
- d76f7fef13
lsp: reset active request when reporting an error
- 6bc7979044
lsp: reset the applied hints on `refresh` request #32446
- 47aaddfa0d
lsp: resize hover window for concealed lines
- 081beb3659
lsp: restore get_language_id behaviour
- 29c72cdf4a
lsp: retrigger diagnostics request on server cancellation (#31345 )
- d9ccd828b0
lsp: return call hierarchy item, not the index (#30145 )
- 9c20342297
lsp: reuse client if configs match and no root dir
- 6e45cd7f00
lsp: revert buf_versions deprecation/replacement (#29217 )
- bdff50dee5
lsp: revert text edit application order change (#29877 )
- e8a6c1b021
lsp: schedule call to vim.lsp.start for async root_dir (#31998 )
- a108852b00
lsp: semantic token functions allow "0" bufnr #28849
- c3cb702ac7
lsp: set 'smoothscroll' in docs hover #30748
- 8a236c242a
lsp: set floating window filetype after setup #32112
- 3c51058d76
lsp: set tagstack on jump via goto methods
- 24d7debdfb
lsp: signature_help highlights wrong parameter #32382
- 80e37aa533
lsp: str_byteindex_enc bounds checking #30747
- 629a5b71b5
lsp: support multiple clients in typehierarchy
- e48179f31e
lsp: suppress completion request if completion is active (#30028 )
- 50f006b617
lsp: tagfunc fails in unusual buffer #30700
- 5ac8db10f0
lsp: trigger LspDetach on buffer delete (#28795 )
- 19be3d2683
lsp: trim trailing whitespace from completion words (#29122 )
- aa47af7e69
lsp: tune completion word extraction for decorated labels (#29331 )
- 38838fb00a
lsp: type-errors, other nits in vim.lsp.log #31235
- 8d7eb03040
lsp: unify get_completion_word for textEdits/insertText
- fe5ae88b20
lsp: update request name to capability map #30098
- 5aa9906676
lsp: use client.id instead of pairs index (#29143 )
- c8d7d65679
lsp: use correct method for prepareTypehierarchy
- b9e6fa7ec8
lsp: use filterText as word if textEdit/label doesn't match
- 5d08b65ac2
lsp: use unresolved code action when `codeAction/resolve` fails
- 0a7e4e9e5f
lsp: vim.lsp.enable(...,false) does not disable #32002
- 888a803755
lsp: vim.lsp.start fails if existing client has no workspace_folders #31608
- 42ed0ffad9
lsp: when prefix is non word add all result into matches (#30044 )
- 55bdb077b7
lsp: wrapped ctx in opts before passed to vim.lsp.completion.trigger #32837
- 2dcbfe78fc
lsp.buf: use correct offset_encoding for all requests
- 3275ae830d
lsp.protocal: improve typing of constants
- acbc6a7f91
lsp.util: inconsistent handling of offset_encoding
- 564173e556
lsp.util: wrong arguments to 'validate' function
- 614c9322d5
lua: SIGSEGV in luv callback with error(nil) #32595
- b283736388
lua: `@private` => `@nodoc` #32587
- b6e350a6b4
lua: allows tables with integer keys to be merged in tbl_deep_extend
- c8b64b7a43
lua: always use vim.inspect() for :lua= (#32715 )
- 0e42c81c7f
lua: avoid recursive vim.on_key() callback (#30753 )
- fe1e2eff06
lua: avoid vim._with() double-free with cmdmod (#31505 )
- 487f44a6c1
lua: change some vim.fn.expand() to vim.fs.normalize() (#29583 )
- 43bd9c9c1c
lua: don't clamp -1 or v:maxcol in vim.highlight.range() (#29203 )
- bdc6e38781
lua: don't include text after cursor in completion pattern (#29587 )
- e2aca58bcc
lua: don't override script ID from :source (#32626 )
- d40481322a
lua: ensure inspect_pos() only shows visible highlight extmarks
- 948f2beed4
lua: find length of completion prefix earlier (#29384 )
- ebb963a4a0
lua: format errors from luv callbacks using __tostring
- 65a703e060
lua: ignore stdout and stderr for xdg-open
- 6b00c9acfd
lua: no omni/cmdline completion for vim.env (#33044 )
- c6d2cbf8f5
lua: pop retval for fast context LuaRef
- a5b1b83a26
lua: prevent SIGSEGV when lua error is NULL in libuv_worker
- 3d707e6f14
lua: remove vim.loader.disable() #31344
- 3a88113246
lua: revert vim.tbl_extend behavior change and document it
- 3688a33354
lua: show stacktrace for error in vim.on_key() callback (#31021 )
- 40a149e7f9
lua: types for vim.api.keyset.win_config #32700
- 7f33c1967b
lua: use rawget() to get __call in vim.is_callable() (#29536 )
- 960fdc775a
lua: vim.deprecate does not support major>0
- d832518ec6
lua: vim.hl.on_yank highlights wrong region with yi' (#32850 )
- cd3855fb2b
lua: vim.tbl_get({}, nil, 1) should return nil #32218
- 89d6d6f25c
lua: wrong script context for option set by func from nvim_exec2 (#32659 )
- 9eb0426002
luacats: allow all types inside tuples
- ee5aaba215
man: avoid setting v:errmsg (#30052 )
- 7588ff2d89
man: check if buffer is valid before restoring 'tagfunc' (#30180 )
- da6f68ee69
man: filter OSC 8 hyperlink markup #29171
- 7940ec6913
man.lua: `:Man <tab>` does not complete #31569
- e08e3d15f6
man.lua: skip `Attrs.None` highlights #32262
- d6653e1cc9
marks: ensure decor is removed with proper range (#32973 )
- 906ad04ddd
marks: handle composing in inline virt_text with 'nowrap' (#32477 )
- 8452032554
marks: handle double-with inline virt_text with 'nowrap' (#32476 )
- 86046c5a31
marks: ineffective conceal_line callback optimization (#32662 )
- 72f630f92d
marks: issues with invalid marks and marks beyond eob (#32862 )
- 8da59060c6
marks: mark winline as invalid if change is in a concealed line (#32766 )
- 012db2b0f5
marks: revalidate marks whose position did not change
- 5cc93ef472
marks: revise metadata for start mark of revalidated pair #32017
- c4f76299f0
marks: skip right_gravity marks when deleting text
- cdedfc3743
marks: truncate double-width inline virt_text consistently (#32560 )
- 7371abf755
marks: wrong winline info for concealed line with below virt line (#32747 )
- a9287dd882
mbyte: check for utf8proc_map() failure (#30531 )
- 50a576ba57
mbyte: mark any 0xFE0F sequence as a TUI ambiguous width char
- 15bc930fca
memline: don't check line count for closed memline #32403
- aa976f0d93
messages: add a trailing space to inputlist() etc. prompts (#32328 )
- 37c77ab46b
messages: attaching/detaching ext_messages causes asserts #31952
- d98827b634
messages: avoid empty msg_showmode with 'noshowmode'
- 31d6885deb
messages: better formatting for :highlight with ext_messages #31627
- 21718c67dd
messages: better formatting for ext_messages #31839
- 92556be33d
messages: compute msg_col after last newline in ext_messages
- ad853d1df0
messages: improve deadly signal messages #32364
- 51853b82bc
messages: incorrect error message splitting and kind #32990
- 08f7c22377
messages: list_cmd kind for :registers, :au[g] #32531
- 7ce27381fb
messages: lsp window/showMessage is not an error
- 1b6442034f
messages: more ext_messages kinds #31279
- 9c6a3703bb
messages: no message kind for :undo messages #31590
- ca760e645b
messages: no message kind for :write messages #31519
- 909b18d05a
messages: no message kind for completion menu messages #31646
- f111c32ff9
messages: no message kind for search pattern #31272
- 282f73f067
messages: no trailing newline for inputlist, tselect, z= with ext_messages
- 9fa3a0964e
messages: pass previous highlight id to ext chunks
- e025f5a5b3
messages: proper multiline Lua print() messages #31205
- d1e00a5f6d
messages: typo and unwanted truncation in msg_outtrans_long #31669
- d55b17e2b4
messages: verbose kind for nvim_echo()
- c8e47f6480
meta: do not use hyphens in param names
- 2cd72258f6
mouse: 'statuscolumn' fold and popopmenu handling
- 81d4e96bc8
mouse: don't treat click on hsep as click on statusline (#29565 )
- 102971a396
mouse: early return when clicking in padded 'statuscolumn' (#29394 )
- 86c5c8724b
mouse: indicate X1 and X2 button clicks on statusline (#30655 )
- f86864f22f
move: 'scrolloff' cursor correction no longer handles folds properly (#32642 )
- 5947f249f8
move: half-page scrolling with resized grid at eob (#28821 )
- ac7e0ff32f
move: redraw for 'concealcursor' after changing w_wcol (#31276 )
- af0a2157ad
move: wrong cursor row on concealed line (#32629 )
- 83479b95ab
mpack: remove invalid bool definition
- d32780de4d
mswin: UI may hang on exit
- fa99afe35e
multibyte: handle backspace of wide clusters in replace mode
- de83cc5842
netrw: re-add missing comment marker in syntax file
- d9585bdcfb
nvim__set_complete: pum preview info truncated during completion #32555
- 34e2185022
options: better handling of empty values
- 190d0241e2
options: fix 'winborder' accepting multiple string values (#32978 )
- 8c532a9ea8
options: fix 'winhl' still accepting invalid value (#30896 )
- 1b9dafa67b
options: fix :setglobal not working for 'spelloptions' (#30894 )
- 395f420fc6
options: fix some 'belloff' flags not working properly (#30856 )
- 50e63c8171
options: missing error check for global 'scl' and 'winhl' (#30919 )
- e697c1b43d
paste: improve repeating of pasted text (#30438 )
- 052875b9dc
paste: only record a paste when it's from RPC (#30491 )
- 9516997eb0
paste: wrong '[ mark after pasting a big string (streamed chunks) #33025
- 42aa69b076
path: avoid chdir() when resolving path (#28799 )
- 42db8b1759
path: crash with nvim_get_runtime_file during wildcard expansion (#32992 )
- 0dfcf3fe12
plines: don't count invalidated virt text in char size (#29863 )
- afc3c43f12
popup: new preview_bufnr created when menu item is selected #32819
- ac1c5ccb2c
popup: reuse pum preview float win, set 'winfixbuf' #32636
- d288f7003d
popup: wrong extmark data sync when lines changed in popup preview #30246
- d24fb72c33
pum: don't select item when clicking to the left/right (#30967 )
- 73ae7d44a2
quickfix: make shortmess+=O work with cmdheight=0 (#29609 )
- 3bcd5624be
regexp: fix typo in E888 error message (#30161 )
- cb924764a4
runtime: "E121 Undefined variable s:termguicolors" #32209
- 29a47b39cc
runtime: E15: Invalid expression in lua file when `gf`
- b6c1ce8a95
runtime: add commentstring for glsl ftplugin
- 9ddfcb64bf
runtime: add remaining missing commentstrings (#30252 )
- e641155b02
runtime: avoid E31 in ftplugin (#32578 )
- 82b02ae2f2
runtime: clean up one-off scripts
- 9788b81d7e
runtime: fully port emoji_list to Lua
- 74fcc9452c
runtime: gO always says "Help TOC" #32971
- 69aa33d890
runtime: let matchit and matchparen skips fallback on treesitter captures
- 8369590eb2
runtime: remove obsolete ftplugin/calender.lua
- 41b70a0dea
runtime: set 'keywordprg' only once in vim ftplugin
- 7b16c1fa84
runtime: source c ftplugin properly for cpp on Windows (#29053 )
- 12c9791e0f
runtime: stop treesitter highlight in b:undo_ftplugin (#29533 )
- 862338255d
runtime: sync bundled treesitter queries
- 9e80738f30
runtime: sync bundled treesitter queries
- 5057753431
runtime: treat b:undo_ftplugin consistently in Lua ftplugins (#30473 )
- 8f5e908110
runtime: update b:undo_ftplugin in Lua runtime files (#29529 )
- a5bd6665b0
scripts: update bundled dependencies in bump_deps
- 573a71469d
scrollbind: properly take filler/virtual lines into account
- a8b6fa07c4
search: avoid quadratic time complexity when computing fuzzy score (#32153 )
- 648d6426c8
server: CID 509282: DEADCODE #30316
- f4921e2b7d
shada: ":wshada/:rshada [filename]" with shadafile=NONE #32538
- cd48b72b60
shada: restore search pattern length properly (#28929 )
- 608543f8a9
snippet: cancel snippet session when leaving the buffer (#29031 )
- 7994fdba6a
snippet: don't override unnamed register on tabstop select (#28998 )
- 5fe4ce6678
snippet: modify base indentation when there's actually whitespace (#29670 )
- 424f4cc038
snippet: wrong indentation when snippet contains "^" #32970
- d46ebd2a74
startup: avoid crash with completion from -l script (#32160 )
- 08153ddd1c
startup: ignore broken $XDG_RUNTIME_DIR #30285
- 17e00d0cc6
startup: report --startuptime error to stderr (#31131 )
- 8a2aec9974
startup: server fails if $NVIM_APPNAME is relative dir #30310
- 19fc65acbc
statuscolumn: misleading v:lnum for virtual lines #32912
- 87e806186c
statusline: overwriting stl_items with nvim_eval_statusline() {-item #32265
- 1c30d86c33
tabline: restore behavior of click after last tabpage (#30602 )
- a49f95d887
terminal: avoid mismatched `busy_start` without `busy_stop` (#32458 )
- f3ce67549c
terminal: avoid more `busy_start` lacking `busy_stop` (#32509 )
- 3d49c55d3c
terminal: avoid rescheduling events onto the same queue (#32755 )
- 69a19295f8
terminal: delay when finishing terminal process #32846
- f8c8a245aa
terminal: don't crash on unprintable chars
- 6d997f8068
terminal: handle C0 characters in OSC terminator (#30090 )
- fa46441264
terminal: improve cursor refresh handling (#32596 )
- 1d11808bfd
terminal: interrupt/got_int hangs terminal (#30056 )
- 3db3947b0e
terminal: restore cursor from 'guicursor' on TermLeave (#31620 )
- c51bf5a6b2
terminal: set cursor cell percentage (#31703 )
- 5def8714ad
terminal: set local values of window options (#29326 )
- e9c077d197
termkey: fix null pointer dereference (#31792 )
- c8e3618e0e
test: "tempdir not a directory" in CI logs
- f7e32fb6e6
test: better management of tmpfiles
- db2c3d1143
tests: filter out lines with __typeof__ keyword (#32524 )
- e61228a214
tests: needing two calls to setup a screen is cringe
- 639734bed4
tests: remove the __extension__ keyword in filter_complex_blocks (#32483 )
- 59baa5e8a1
tohtml: apply sp color if present #30110
- 67c39f5eca
tohtml: disable modeline #32822
- e37404f7fe
tohtml: enclose font-family names in quotation marks
- 25db0a1385
tohtml: extmark text may be out of bounds
- 8cd9feb501
tohtml: ignore lsp inlay hints
- eb37241d38
tohtml: properly handle multiple hl groups #29012
- 2ed6423c7e
tohtml: replace ipairs with pairs
- 88c7997503
tohtml: show how many warnings are hidden
- 118ae7e5ed
tohtml: support ranges again
- c63e49cce2
treesitter: #trim! range for nodes ending at col 0 #31488
- b63cd8cbae
treesitter: EditQuery shows swapfile ATTENTION #30536
- 55b165ac15
treesitter: `TSNode:field()` returns all children with the given field
- 86b737649b
treesitter: add 'QuitPre' event to autocommands in inspect_tree
- bc1018a8d3
treesitter: avoid computing fold levels for empty buffer
- a119dab40f
treesitter: avoid computing foldlevels for reloaded buffer #32233
- 6696ea7f10
treesitter: clean up parsing queue
- 99acc9de55
treesitter: close InspectTree/EditQuery window on BufUnload (#31036 )
- f50f86b9ff
treesitter: compute folds on_changedtree only if not nil
- 7a20f93a92
treesitter: correct condition in `__has_ancestor`
- 9b25c68db2
treesitter: correctly parse queries with combined injections
- 3abfaafad2
treesitter: detect trees with outdated regions in `is_valid()`
- 9217e0d671
treesitter: display fields for anonymous nodes in :InspectTree
- da4e8dc5b0
treesitter: do not modify highlight state for _on_spell_nav
- 0e3e1e6b6d
treesitter: don't open fold when o/O adds a line below #28709
- aa2b44fbb0
treesitter: don't return error message on success #31955
- b0bbe25c48
treesitter: don't spam query errors in the highlighter
- b88874d33c
treesitter: empty queries can disable injections (#31748 )
- d413038b4f
treesitter: ensure syntaxset augroup exists (#29542 )
- f8e1ebd6f6
treesitter: escape things like `"` in omnifunc results
- c4eb0b64bd
treesitter: find buffer in multiple windows #28922
- 94d42a3e72
treesitter: highlight anonymous nodes in inspect_tree
- 5331f87f61
treesitter: indent size for inspect_tree #28727
- 6ef80eb42c
treesitter: keep treeview open if source window is still open #31198
- 052e048db6
treesitter: lint top-level anonymous nodes
- 4b90952851
treesitter: mark supertype nodes as named
- 096ae3bfd7
treesitter: nil access when running string parser async
- c3337e357a
treesitter: nil check query for has_conceal_line
- 6711fa27ca
treesitter: recalculate folds on VimEnter #32240
- 05dcda8f9b
treesitter: recognize aliased parsers in omnifunc, query linter
- d3193afc25
treesitter: remove duplicate symbol names in language.inspect()
- cdc9baeaf8
treesitter: remove redundant on_bytes callback #31041
- 1827ab7a1f
treesitter: separately track the number of valid regions
- 36990f324d
treesitter: show proper node name error messages
- 4349bdbd0b
treesitter: specify success status in edit_query return value
- e7ebc5c13d
treesitter: stop async parsing if buffer is invalid
- 0f067cd34d
treesitter: suppress get_parser warnings via opts.error
- ae917dbd06
treesitter: sync queries from upstream
- c4e9ff30a6
treesitter: sync queries with upstream
- d8eec81560
treesitter: update lua, markdown queries
- 6e44a6a289
treesitter: update queries
- 5a54681025
treesitter: uv_dlclose after uv_dlerror
- e4bc8b5967
treesitter.foldexpr: only refresh valid buffers
- 48acbc4d64
treesitter.foldexpr: refresh in the buffers affected by OptionSet
- 8474f52978
treesitter.foldexpr: robustness against ctrl-c
- f81131cca2
tui: also reset cursor color if it was invisible (#31348 )
- 4846bf05dc
tui: avoid flushing buffer halfway an OSC 2 sequence (#30793 )
- 720ec5cec2
tui: cursor color in suckless terminal #32310
- b5cb69f8a4
tui: handle key events for arrow and function keys (#31804 )
- d7651b27d5
tui: move $COLORTERM check to _defaults.lua (#29197 )
- a811d4babd
tui: only reset cursor color if it was changed (#31337 )
- 0c0352783f
tui: remove DCS escaping in tmux (#32723 )
- 47c741e30c
tui: remove duplicate disabling of synchronized output (#28884 )
- f32557ca67
tui: reset active attr ID when OSC 8 sequence is terminated (#29960 )
- bc63ffcf39
tui: reset clear_region attributes during startup #28713
- b02c839414
tui: set id parameter in OSC 8 sequences (#29840 )
- 0231265c8c
tui: skip TUI in ui_rgb_attached (#29096 )
- 8b8096500d
tutor: incorrect lines marked as correct #29833
- 31745b17e6
types: add narrower vim.validate types
- 44410d063a
types: add some vim.fn type annotations
- b813075b8a
types: do not mark unstable API as private
- e947f226be
types: use vararg return type annotation
- a1906c23dd
ui: Windows :detach is opt-in
- 594c7f3d77
ui: avoid ambiguity about last chunk when flushing halfway (#29718 )
- 216ec73972
ui: avoid redundant ext_cmdline events (#32237 )
- 6cdcac4492
ui: clamp 'cmdheight' for other tabpages on screen resize (#31419 )
- 318c0415d5
ui: correctly pass metadata to get_node_text #30222
- 7eba016c86
ui: ensure screen update before waiting for input #30576
- 5b6477be45
ui: flush ext_cmdline events before doing cmdpreview #27950
- 6e4df18b45
ui: no fast context for prompt message kinds #31224
- 6b8c56c7f6
ui: schedule UI detach (#32827 )
- b66106a46c
ui: superfluous showmode / excessive grid_cursor_goto #29089
- d1fd674df3
ui: update title in more cases (#31508 )
- 442d338cb5
uri: uri_encode encodes brackets incorrectly for RFC2732 #31284
- d049752e45
version: fix vim.version().prerelease
- 8bdfc2ab2b
version: return nil with empty string
- 6401b433f7
vim.fs: default to follow=false #32859
- 47e6b2233f
vim.fs: dirname() returns "." on mingw/msys2 #30480
- 0bef3b911c
vim.fs: joinpath() does not normalize slashes on Windows #31782
- 6dc0eb9f41
vim.fs.abspath: correctly handle UNC paths
- a8ace2c58a
vim.fs.normalize: normalize case for windows drive letter
- 4c0d18c197
vim.iter: enable optimizations for arrays (lists with holes) (#28781 )
- 734dba04d1
vim.system: close pipe handles after process handle
- 4e130c1ee4
vim.system: invalid MAX_TIMEOUT for 32-bit systems #31638
- ad3472e291
vim.system: resolve executable paths on windows
- 33464189bc
vim.text: handle very long strings (#30075 )
- 4cff418564
vim.text: remove assert from vim.text.hexdecode
- d338ec9cb2
vim.ui.open: prefer xdg-open on WSL #30302
- 8bf79bd13c
vim.wo: never allow non-zero bufnr
- 453f2c52d2
vim_snprintf: special-case handling of binary format
- 32e128f209
watch: exclude .git when using inotifywait (#29914 )
- 9e23b4e185
watch: ignore nonexistent paths (ENOENT)
- a18652ed61
win-msi: add bin to PATH per-machine after installation (#29099 )
- 88f07d6ca4
win-msi: set installer scope to machine #29895
- 4f9311b759
window: making float with title/footer non-float leaks memory (#30551 )
- 7b71fdbc1e
window: respect hide flag of float windows when switching (#30507 )
- 59da82abd9
wininfo: when freeing windows, free the lowest priority wininfo
PERFORMANCE
--------------------------------------------------------------------------------
- 48251134ee
add fast path to vim.validate (#28977 )
- 3abd7ed4a4
consider only active decorations when drawing lines
- 8d2ee542a8
decor: join predicates and matches cache
- 48e3ac60c6
diagnostics: cache line diagnostics when `current_line` is set #32288
- b8ddd3b6bb
events: remove unnecessary loop in event_nr2name() (#32777 )
- 15f2da55a8
events: use hashy for event name lookup (#32802 )
- abf4b65a51
filetype: cache (more) pattern data during "add" time
- f61efe3fe7
filetype: implement parent pattern pre-matching (#29660 )
- ff575b3886
filetype: optimize internal data structures
- dc04ef2a20
filetype: skip contents check in `match()` if there is no contents (#29596 )
- 12d4caa9d3
keycodes: use hashy for string lookup
- f8fc6cb157
loader: reduce calls to Loader.cache_file
- 138a93a057
lsp: avoid repeated table lookup in completion.enable
- 7342e6b00d
lsp: do not apply semantic tokens to folded lines
- c85d15e0d5
lsp: don't construct potentially expensive strings
- cc1f2d2ca6
lsp: don't copy completion items in filter pass
- 3e855d533f
lsp: use faster version of str_byteindex
- 000129201c
mouse: only generate <MouseMove> for a new cell positon (#31103 )
- 3fdc430241
treesitter: cache queries strongly
- b192d58284
treesitter: calculate folds asynchronously
- c6abc97006
treesitter: do not use tree cursors with a small lifetime
- cbad2c6628
treesitter: don't block when finding injection ranges
- d9ee0d2984
treesitter: don't fetch parser for each fold line
- 562056c875
treesitter: only search for injections within the parse range
- c57a85e0ed
treesitter: remove unnecessary foldexpr loop
- 64847fbdc9
treesitter: use `child_containing_descendant()` in `is_ancestor()`
- 4b02916334
treesitter: use child_containing_descendant() in has-ancestor? (#28512 )
- 3f3e4837d5
validate: use lighter version
- 99b5ffd688
vim.text: use lookup table implementation for hex encoding (#30080 )
BUILD
--------------------------------------------------------------------------------
- 104800ce2e
"popcount" name conflict on NetBSD #28983
- 198a952c13
add luals check
- ef8067a19d
add quotes around `CMAKE_GENERATOR` variable
- 32e16cb0b6
add utf8proc as dependency
- b213f5169c
allow comment after #include for required header (#29722 )
- 382eb878bc
bump lua dev dependencies
- 1d815acd78
bump minimum cmake version to 3.16
- 5284a2a793
bump unibilium to v2.1.2
- ac5a6d9ff5
fix RelWithDebInfo optimization flags #31802
- 7c65224257
fix lint error on macos
- 046e0956ee
fix or silence new clang-tidy warnings
- 5719f2b91a
fix uncrustify install in nix devShell (#33020 )
- 4a0ee22e77
make makefile work on msys
- 4ee65484b1
make makefile work on windows
- 1b90f4a9c4
mark CMake variables advanced #31412
- 0f24b0826a
move all generator scripts to `src/gen/`
- e5ff302033
remove -O2 from gen_cflags
- d74c74aae3
remove `lintcommit` from `lint` target
- 573bcb2aaf
remove enforcement of cmake build type
- 0e9c92a900
remove nix flakes (#28863 )
- f09f5c45fa
reuse code for deps.txt for both deps and main build
- e1dc824b7e
set luals checklevel to Hint #32392
- cac86e9b4c
silence "po" noise #30469
- 07b14c8e2e
specify POST_BUILD when using add_custom_command
- e83ce331da
use treesitter's CMakeLists.txt
- e268fcbdaa
work around bug in make when PATH includes cmake as dir
- b288fa8d62
bump_deps: abort if archive doesn't exist
- 7ead328a48
cjson: sync with upstream (#32114 )
- 0e2f92ed79
clint: make NOLINT work with header checks (#31281 )
- 327110ff8c
cmake: remove unnecessary policy code
- 535c2f8658
contrib: add zsh completion (#32617 )
- 51d85f7ea5
deps: drop unused bundled bash, python parsers and queries
- 9216bc927c
deps: fix formatc target on MSVC
- b3641b8008
deps: remove libtermkey dependency
- 1247684ae1
deps: remove msgpack-c dependency
- fa79a8ad6d
deps: vendor libvterm at v0.3.3
- c614969570
docs: update CSS #28896
- 0a087f2073
generator: add dependencies on hashy (#32796 )
- e178331488
lpeg: search for lpeg.so on MacOS
- 7e099cf3eb
macos: disable deduplication in link step
- f4d9a2983a
release.sh: fix hang when generating docs (#33026 )
- b923fcbaf0
vim-patch.sh: don't ignore changes to version*.txt (#29425 )
- 7aaa4a51b7
vim-patch.sh: include commit subject #28767
- 3146433190
vim-patch.sh: use 7 hex digits for runtime patch file name (#29940 )
v0.11.0
2025-03-26 14:48:09 +01:00
6566b66f65
docs(lsp): completion.enable #33063
2025-03-26 06:43:40 -07:00
8a7e1b19b9
docs: news, lsp autocomplete #33047
2025-03-26 05:49:48 -07:00
6b00c9acfd
fix(lua): no omni/cmdline completion for vim.env ( #33044 )
...
Problem:
- `:lua vim.env.<Tab>` does not show completion of environment variables
- Meanwhile, `:let $<Tab>` does show completion of environment variables
Solution:
- Fix it
2025-03-26 07:35:12 +08:00
a3b4743b43
vim-patch:9.1.1238: wrong cursor column with 'set splitkeep=screen' ( #33060 )
...
Problem: With ':set splitkeep=screen', cursor did't restore column
correctly when splitting a window on a line longer than the
last line on the screen (after v9.1.0707)
Solution: Restore cursor column in `win_fix_scroll()` since it may be
changed in `getvcol()` after 396fd1ec2956 (phanium).
Example:
```
echo longlonglongling\nshort | vim - -u NONE --cmd 'set
splitkeep=screen' +'norm $' +new +q
```
fixes : vim/vim#16968
closes : vim/vim#16971
7746348c5d
Co-authored-by: phanium <91544758+phanen@users.noreply.github.com >
2025-03-26 06:58:36 +08:00
d32780de4d
fix(mswin): UI may hang on exit
...
Problem:
On Windows, since b360c06085
, UI may hang on exit. #33019
Solution:
Restore the hack in on_proc_exit, until we can figure out why rpc_close
is not called in the UI client when the server closes the channel.
2025-03-25 15:14:28 +01:00
c1ac55ba45
vim-patch:9.1.1236: tests: test_comments leaves swapfiles around ( #33050 )
...
Problem: tests: test_comments leaves swapfiles around
Solution: use ':bw!' instead of ':close!'
closes : vim/vim#16955
35cb03648f
Co-authored-by: Christian Brabandt <cb@256bit.org >
2025-03-25 00:05:22 +00:00
5719f2b91a
build: fix uncrustify install in nix devShell ( #33020 )
...
running "make format" from the nix devShell defined at https://github.com/nix-community/neovim-nightly-overlay/
failed with:
```
Install the project...
-- Install configuration: "Release"
CMake Error at cmake_install.cmake:52 (file):
file INSTALL cannot find "/home/teto/neovim/build/usr/bin/uncrustify": No
such file or directory.
```
Turns out the following uncrustify (probably cmake-generated) check:
```
file(RPATH_CHECK
FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/uncrustify"
RPATH "")
```
would remove the executable when RPATH was non-empty.
I dont think it's much of an issue here as it's not an executable
supposed to be installed so seeing paths referenced in rpath getting removed should not be a concern
(which I beleive is the reason for the check).
2025-03-24 22:15:22 +01:00
76eca62137
Merge #33043 redundar channel_close()
2025-03-24 10:15:35 -07:00
c49162be59
fix(channel): log after (not before) channel-close
...
Problem:
chan_close_on_err() writes to the log file before peforming its actual
work. This could be slightly misleading in terms of log timestamps, or
could delay important work on Windows where file-open/write can be slow.
Solution:
Log after closing the channel, instead of before.
2025-03-24 17:48:19 +01:00
e73a3f1edc
refactor(channel): redundant channel_close()
...
Problem:
`receive_msgpack()` calls `channel_close()` just before calling
`chan_close_on_err()`, even though `chan_close_on_err()` always calls
`channel_close()`.
Solution:
Remove the redunant `channel_close()` in `receive_msgpack()`.
2025-03-24 17:38:34 +01:00
c4e9ff30a6
fix(treesitter): sync queries with upstream
...
Update C highlight query from nvim-treesitter
2025-03-24 16:45:36 +01:00
563051a53e
feat(clipboard): support g:clipboard="osc52" #33021
...
Problem:
Forcing Neovim to use OSC52 for the system clipboard should be simple
and concise, since OSC52 is widely supported (Alacritty, Ghostty,
iTerm2, WezTerm, Kitty, xterm, tmux, etc.) and is the most portable
approach for syncing clipboards across SSH.
Solution:
Support g:clipboard="osc52".
2025-03-24 05:17:56 -07:00
af4231d407
fix(cmdline): cmdline completion of _defer_require() modules #33007
...
Problem:
`:lua vim.lsp.c<tab>` does not list vim.lsp.completion in the completion
list after 24cea4c7f7
.
Solution:
- Always include `vim.lsp._submodule` keys in candidates.
- Fixes `vim.lsp.c<tab>` -> `vim.lsp.completion`.
- Eager-load `vim.lsp.completion` to get its completion.
- Fixes `vim.lsp.completion.g<tab>` -> `vim.lsp.completion.get`.
2025-03-24 05:14:22 -07:00
c982608226
test(checkhealth): nested path 'runtimepath' #33034
2025-03-23 16:30:08 -07:00
958df63606
test(log): use tempfile for expected error logs #33017
2025-03-23 16:12:50 -07:00
9516997eb0
fix(paste): wrong '[ mark after pasting a big string (streamed chunks) #33025
...
Problem
Pasting a big string ("streamed paste" with multiple chunks) sets the '[
mark to the edit from the last chunk, instead of the start of the paste.
Solution:
Set the '[ mark where the paste started, not where the last chunk was
inserted.
Note: `startpos == nil` is not equal to `phase == 1` because there may
be some empty chunks pasted which won't arrive here (returned at code
before).
2025-03-23 16:10:42 -07:00
2eddd6f7c0
vim-patch:9.1.1231: filetype: SPA JSON files are not recognized
...
Problem: filetype: SPA (single page application) JSON files are not
recognized (used by pipewire and wireplumber)
Solution: detect pipewire and wireplumber configuration files as spajson
filetype, include filetype, indent and syntax scripts for this
new filetype (David Mandelberg).
I looked at all the files found by this command to see if the syntax
highlighting looked reasonable:
```
find {~/.config,/etc,/usr/share}/{pipewire,wireplumber} -type f -name \*.conf
```
References:
* pipewire config files: https://docs.pipewire.org/page_config.html
* wireplumber config files:
https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/conf_file.html
and
* https://pipewire.pages.freedesktop.org/wireplumber/daemon/locations.html
closes : vim/vim#16950
4e7b4308fb
Co-authored-by: David Mandelberg <david@mandelberg.org >
2025-03-23 11:47:42 +01:00
f4d9a2983a
build(release.sh): fix hang when generating docs ( #33026 )
...
It's been hanging since the change in #32638 .
2025-03-22 22:39:31 +08:00
4d9a1b9852
feat(provider/python)!: add python 3.13, drop 3.7 and 3.8 (EOL) #33022
...
https://devguide.python.org/versions/
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com >
2025-03-22 07:20:46 -07:00
5187be81c2
fix(lsp): handle using array as open_floating_preview title ( #33016 )
2025-03-22 10:43:06 +08:00
b165ad0671
build(deps): bump tree-sitter-vim to v0.5.0
2025-03-21 17:53:13 +01:00
0ff630bfad
build(deps): bump tree-sitter-markdown to v0.4.1
2025-03-21 17:53:13 +01:00
10c0f6257a
build(deps): bump tree-sitter-lua to v0.3.0
2025-03-21 17:53:13 +01:00
e0cd8cfba4
docs: misc ( #32928 )
...
Co-authored-by: James Trew <j.trew10@gmail.com >
Co-authored-by: przepompownia <przepompownia@users.noreply.github.com >
2025-03-21 19:28:29 +08:00
264b4303a0
docs: LSP completion #33006
2025-03-21 03:34:28 -07:00
c908c2560d
fix(log): unify error messages for vim.ui_attach/decor providers #33005
...
Problem: Error messages that cause a vim.ui_attach() namespace to
detach are not visible in the message history. Decoration
provider and vim.ui_attach error messages are dissimilar.
Solution: Emit vim.ui_attach() errors as an actual message in addition
to logging it. Adjust error message format.
2025-03-21 03:05:01 -07:00
fa85543e3b
docs(treesitter): document TSNode:named_children()
...
This commit also gives an internal documentation description for
`TSNode:__has_ancestor()`.
2025-03-21 09:01:47 +01:00
175c09bd66
vim-patch:9.1.1226: "shellcmdline" completion doesn't work with input() ( #32998 )
...
Problem: "shellcmdline" completion doesn't work with input().
Solution: Use set_context_for_wildcard_arg(). Fix indent in nextwild()
(zeertzjq).
There are some other inconsistencies for input() completion (ref vim/vim#948 ),
but since "shellcmdline" currently doesn't work at all, it makse sense
to at least make it work.
fixes : vim/vim#16932
closes : vim/vim#16934
7a5115ce50
2025-03-20 07:21:17 +08:00
51853b82bc
fix(messages): incorrect error message splitting and kind #32990
...
Problem: Message kind logic for emitting an error message is convoluted
and still results in emitting an unfinished message earlier than
wanted.
Solution: Ensure emsg_multiline() always sets the kind wanted by the caller
and doesn't isn't unset to logic for emitting the source message.
Caller is responsible for making sure multiple message chunks are
not emitted as multiple events by setting `msg_ext_skip_flush`...
2025-03-19 11:04:08 -07:00
c48cf18752
fix(checkhealth): module not found when &rtp
has nested paths #32988
...
Problem: `:checkhealth` fail to find the module when `&rtp` have nested
paths.
Solution: find in order all existed `&rtp/lua` path rather than `&rtp`
to ensure prefix exist before trim `&rtp`.
In this case one module can be searched out from two different
`&rtp/lua`, we use the first `&rtp/lua` contain the module (like how
require() works).
2025-03-19 07:48:28 -07:00
424f4cc038
fix(snippet): wrong indentation when snippet contains "^" #32970
...
## Problem
The pattern used to match indentation is wrong as can be seen in
```lua
-- current pattern doesn't match starting space
print(vim.inspect((" xyz"):match("(^%s+)%S")))
-- nil
-- instead, it matches characters `^ ` in text
print(vim.inspect(("x^ yz"):match("(^%s+)%S")))
-- "^ "
-- indentation could've been matched by, however not required
print(vim.inspect((" xyz"):match("^(%s+)%S")))
-- " "
```
## Solution
We don't even need to modify `base_indent` at every line. If every line's indentation is calculated by the previous line's indentation (which already has starting indentation) added to the starting indentation, we see that indentation is multiplied on every line.
Hence, we only add the starting line indentation to every line.
2025-03-19 14:47:59 +00:00
42db8b1759
fix(path): crash with nvim_get_runtime_file during wildcard expansion ( #32992 )
...
Problem: Crash with nvim_get_runtime_file during wildcard expansion.
Solution: Ensure recursive gen_expand_wildcards() is allowed when
calling os_breakcheck()
2025-03-19 22:36:08 +08:00
21cbd90007
fix(filetype): normalize full path before matching #32227
...
Problem:
On Windows, treesitter query files are not recognized as such when
opened from inside their directory, because the full path returned from
fnamemodify(_, ':p') contains backslashes, while the filetype patterns
expect forward slashes.
Solution:
Normalize the result of fnamemodify(_, ':p') before trying to match it
to filetype patterns.
Co-authored-by: Justin M. Keyes <justinkz@gmail.com >
2025-03-19 05:41:25 -07:00
f1fcf653cb
fix(diagnostic): clear virtual_lines autocmd only for valid buf #32979
2025-03-19 05:27:20 -07:00
0e59f6f4c7
fix(api): don't use 'winborder' when reconfiguring float ( #32984 )
...
Problem: Reconfiguring a float window applies the global 'winborder'.
Solution:
- Ignore 'winborder' when reconfiguring a float window.
- Still apply 'winborder' when converting a split to a float window.
2025-03-19 12:16:20 +00:00
74fcc9452c
fix(runtime): gO always says "Help TOC" #32971
...
Problem:
gO always says "Help TOC".
Solution:
Use a generic title instead.
2025-03-19 04:17:00 -07:00
d6653e1cc9
fix(marks): ensure decor is removed with proper range ( #32973 )
...
Problem: Paired mark whose end is in front of its start should not have
its decor removed (as fixed by 72f630f9
), but may still need to
have its range redrawn.
Solution: Still call `buf_decor_remove()` but ensure it is not called with
an inverse range when `extmark_del()` is called on an end mark.
2025-03-19 10:00:42 +00:00
5ff8a2fa8b
vim-patch:40ab82b: runtime(sh): remove invalid commented out line in syntax script
...
40ab82b974
Co-authored-by: Christian Brabandt <cb@256bit.org >
2025-03-19 10:24:51 +01:00
ef591f46bf
vim-patch:711f4a0: runtime(sh): update sh indent script
...
fixes : vim/vim#16930
711f4a07f3
Co-authored-by: Christian Brabandt <cb@256bit.org >
2025-03-19 10:24:51 +01:00
17d0420e65
vim-patch:11ab02c: runtime(go): use :term for keywordprg for nvim/gvim
...
Problem:
- The document from `go doc` can be very long, and you can scroll if
using `!` to run shell command in Gvim.
- I realize that I didn't fully mimic behavior of default keywordprg
in Nvim in the last commit.
Solution:
- Use builtin terminal for keywordprg in Gvim
- In Nvim (both TUI and GUI), it should mimic the behavior of Vim
`:term`, `:Man`, and `:help`
closes : vim/vim#16911
11ab02c819
Co-authored-by: Phạm Bình An <phambinhanctb2004@gmail.com >
Co-authored-by: zeertzjq <zeertzjq@outlook.com >
2025-03-19 10:24:51 +01:00
ac2fcb5f76
vim-patch:ad2f6b6: runtime(keymap) Add forward slash (/) to russian-jcukenwin keymap
...
closes : vim/vim#16912
ad2f6b6662
Co-authored-by: Marat Amerov <maratamerov@gmail.com >
2025-03-19 10:24:51 +01:00
63bbb7c109
fix(api): fix 'winborder' preventing splits with nvim_open_win ( #32981 )
...
While at it, rename the p_winbd variable to p_winborder, as 'winbd' is
not the option's short name.
Co-authored-by: glepnir <glephunter@gmail.com >
2025-03-19 07:28:24 +00:00
190d0241e2
fix(options): fix 'winborder' accepting multiple string values ( #32978 )
...
Problem: 'winborder' accepting multiple string values.
Solution: Use the fallback did_set_str_generic() callback instead of
did_set_winborder() which calls opt_strings_flags() with
incorrect last argument.
2025-03-19 14:17:53 +08:00
aafbd442b2
vim-patch:9.1.1220: filetype: uv.lock file not recognized ( #32955 )
...
Problem: filetype: uv.lock file not recognized
Solution: detect uv.lock file as toml filetype
(Acaibird)
closes : vim/vim#16924
18a6853a76
2025-03-18 23:34:56 +00:00
430d12a4fd
vim-patch:9.1.1221: Wrong cursor pos when leaving Insert mode just after 'autoindent' ( #32976 )
...
Problem: Wrong cursor position and '^' mark when leaving Insert mode
just after 'autoindent' and cursor on last char of line.
Solution: Don't move cursor to NUL when it wasn't moved to the left
(zeertzjq).
fixes : vim/vim#15581
related: neovim/neovim#30165 neovim/neovim#32943
closes : vim/vim#16922
a3a7d10bfb
2025-03-18 23:34:02 +00:00
4d83649d10
vim-patch:9.1.1222: using wrong length for last inserted string ( #32975 )
...
Problem: using wrong length for last inserted string
(Christ van Willegen, after v9.1.1212)
Solution: use the correct length in get_last_insert_save(), make
get_last_insert() return a string_T (John Marriott)
closes : vim/vim#16921
8ac0f73eb1
N/A patches:
vim-patch:9.1.1129: missing out-of-memory test in buf_write()
vim-patch:9.1.1218: missing out-of-memory check in filepath.c
Co-authored-by: John Marriott <basilisk@internode.on.net >
2025-03-19 07:08:39 +08:00
62d9fab9af
feat(float): add winborder option ( #31074 )
...
Problem:
There is currently no global option to define the default border style for floating windows. This leads to repetitive code when developers need consistent styling across multiple floating windows.
Solution:
Introduce a global option winborder to specify the default border style for floating windows. When a floating window is created without explicitly specifying a border style, the value of the winborder option will be used. This simplifies configuration and ensures consistency in floating window appearance.
Co-authored-by: Gregory Anders <greg@gpanders.com >
2025-03-18 16:05:35 -05:00
eefd72fff7
build(deps): bump tree-sitter-query to v0.5.1
2025-03-18 15:21:37 +01:00
d774fc6b33
build(deps): bump tree-sitter-vimdoc to v3.0.1
2025-03-18 14:44:38 +01:00