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