vim-patch:9.1.2018: proto: ops.pro outdated
vim-patch:08aaa7ae1 runtime(doc): remove some fixed items from todo.txt
vim-patch:ea2b98b9e runtime(indent-tests): Include a simple Rust indent test
vim-patch:9.1.2031: Makefile: cannot run make installinks twice
vim-patch:8.2.0827: Vim9: crash in :defcompile
vim-patch:8.2.1643: Vim9: :defcompile compiles dead functions
vim-patch:8.2.1750: popup_setoptions() setting firstline fails if cursorline set
vim-patch:8.2.4947: text properties not adjusted when accepting spell suggestion
vim-patch:8.2.4989: cannot specify a function name for :defcompile
vim-patch:8.2.4990: memory leak when :defcompile fails
vim-patch:9.0.0147: cursor positioned wrong after two "below" text properties
vim-patch:9.0.0168: cursor positioned wrong with two virtual text properties
vim-patch:9.0.0233: removing multiple text properties takes many calls
vim-patch:9.0.0243: text properties "below" sort differently on MS-Windows
vim-patch:9.0.0464: with virtual text "above" indenting doesn't work well
vim-patch:9.0.0466: virtual text wrong after adding line break after line
vim-patch:9.1.0020: Vim9: cannot compile all methods in a class
vim-patch:9.1.0189: Memory leak with "above" virttext and 'relativenumber'
vim-patch:9.1.1654: build failure when FEAT_DIFF is not defined
vim-patch:9.1.1925: make depend does not include osdef.h
Problem: vim.fs.root uses vim.fn.fnamemodify. vim.fn table isn't
available from nvim -ll or thread contexts.
Solution: Swap out vim.fn.fnamemodify for vim.fs.abspath.
This is a temporary workaround and may be reverted since the
long-term plan is to use more fast=true "fn" functions from vim.fs
where possible.
Problem:
Terminals should respond with the terminator (either BEL or ST) used in
the query so that clients can reliably parse the responses. The
`TermRequest` autocmd used to handle background color requests in the
terminal does not have access to the original sequence terminator, so it
always uses BEL. #37018
Solution:
Update vterm parsing to include the terminator type, then forward this
data into the emitted `TermRequest` events for OSC/DCS/APC sequences.
Update the foreground/background `TermRequest` callback to use the same
terminator as the original request.
Details:
I didn't add the terminator to the `TermResponse` event. However, I
assume the `TermResponse` event doesn't care about the terminator
because the sequence is already parsed. I also didn't update any of the
functions in `src/nvim/vterm/state.c` that write out responses. It
looked like those all pretty much used ST, and it would be a much larger
set of changes. In that same file, there's also logic for 8 bit ST
sequences, but from what I can tell, 8 bit doesn't really work (see `:h
xterm-8bit`), so I didn't use the 8 bit ST at all.
Problem: inefficient use of ga_concat()
Solution: Use ga_concat_len() when length is known.
(John Marriott)
closes: vim/vim#1902732b801abc3
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem: Exe stack length can be wrong without being detected.
Solution: Add a check when ABORT_ON_INTERNAL_ERROR is defined.
e31ee86859
vim-patch:8.2.3262: build failure when ABORT_ON_INTERNAL_ERROR is defined
Port patch 9.0.1454 for "make formatc".
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem: Buffer overflow in buf_write() when converting incomplete
multi-byte characters (Kevin Goodsell)
Solution: Make the buffer slightly larger
closes: vim/vim#19007f99de42a9f
Co-authored-by: Christian Brabandt <cb@256bit.org>
Problem: No indention support when editing bpftrace files.
Solution: Add indention settings based on cindent with custom options.
closes: vim/vim#19030ee3f10af87
Co-authored-by: Stanislaw Gruszka <stf_xl@wp.pl>
Problem: filetype: bicep filetype used for 2 bicep file types
Solution: Detect *.bicepparam files as bicep-param filetype, include
new bicep-params and bicep filetype plugin
(Scott McKendry)
The bicep language server handles parameter files differently than
regular bicep files. Treating them the same at the editor level leads to
false positive diagnostics in the editor.
References:
Bicep Language Constants:
- 51392d32ca/src/Bicep.Core/LanguageConstants.cs (L23)
VS Code Extension definition:
- 51392d32ca/src/vscode-bicep/package.json (L47)closes: vim/vim#190264e722fdfdd
Co-authored-by: Scott McKendry <me@scottmckendry.tech>
Problem: 'fsync' option cannot be set per buffer
Solution: Make 'fsync' option global-local
(glepnir)
closes: vim/vim#190194d5b303726
Co-authored-by: glepnir <glephunter@gmail.com>
Problem: When virtualedit is set to all, the cursor is supposed to be
permitted to reside anywhere, including on the virtual space
beyond the end of the buffer's text. Switching modes triggered
a routine that "fixed" a cursor that was past the end of the
line by shifting it back to the last actual character in the
line and compensating with a virtual column offset. While
visually identical, this re-encoding changed the underlying
byte index, causing position-reporting functions to return
inconsistent values after a mode change.
Solution: Skip this coordinate adjustment when virtual editing is fully
enabled. By treating the line terminator as a valid, stable
position, the cursor’s internal representation remains
unchanged when entering or exiting Visual mode, ensuring
consistent coordinate reporting. Add a regression test to
check this functionality.
(McAuley Penney)
fixes: vim/vim#16276closes: vim/vim#19009491f0fa457
Co-authored-by: McAuley Penney <jacobmpenney@gmail.com>
fix(pum): hide info window when insufficient space
Problem:
1. Info window was displayed even with insufficient space.
2. Tab characters counted as single cells.
Solution:
1. Hide window when space < 10 columns. Will be configurable
via completepopup width option in the future.
2. Use win_linetabsize over mb_string2cells.
Problem: When Vim is launched with a UNC directory, netrw treats it as a
relative path and compose it again.
Solution: This is due to `exists("g:netrw_cygwin")` always being true.
We can directly use `g:netrw_cygwin`.
closes: vim/vim#19015538da34ad3
Co-authored-by: tao <2471314@gmail.com>
Problem: tests: test_virtualedit.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!
a8a0ee5004
Co-authored-by: Christian Brabandt <cb@256bit.org>
Problem: Substitute that joins lines drops text properties.
Solution: Move text properties of the last line to the new line.
213bbaf15a
Co-authored-by: Bram Moolenaar <Bram@vim.org>
Problem:
`on_accept` is a bit cumbersome to customize.
Solution:
* Before: users had to override the entire `on_accept` logic for their changes to be applied.
* Now: users can modify the item and return it to apply the modified changes, or return `nil` to fully customize how the changes are applied.
Problem:
When the popupmenu has no border but includes a scrollbar, the info window
column is misaligned due to a missing column offset.
Solution:
Apply a one-column offset to the info window when the popup menu has no border
and a scrollbar is present.
Problem: not possible to translation position in buffer
Solution: use _() macro to mark the output as translatable
(Emir SARI)
Row/Column indicator separator is currently not customizable. Some
languages have a space after the comma as the usual practice, plus this
would help translators use a custom separator like colons if necessary.
Additionally, after a save, the line and the byte indicator is also
hardcoded, this enables i18n for that as well.
closes: vim/vim#1760881f9815831
Co-authored-by: Emir SARI <emir_sari@icloud.com>
Problem: Changing `src` of already installed plugin currently takes
effect immediately inside `vim.pack.add()` and acts as "delete and
later fresh install". Although more robust, this might lead to
unintentional data loss (since plugin is deleted) if the plugin was
manually modified or the new source is not valid.
Also this introduces unnecessary differentiation between "change
`version`" and "change `src`" of already installed plugin.
Solution: Require an explicit `vim.pack.update()` to change plugin's
source. It is done by conditionally changing `origin` remote of the
Git repo. The effect does not require update confirmation in order to
have new changes fetched from the new `src` right away.
If in the future there are more types of plugins supported (i.e. not
only Git repos), also do extra work (like delete + install) during
`vim.pack.update()`.
vim-patch:8.2.3793: using "g:Func" as a funcref does not work in script context
vim-patch:6ec7d40b7 runtime(getscript): GLVS plugin fails with wget.exe with PowerShell
vim-patch:2387c49f6 translation(zh_CN): Add license disclaimer
vim-patch:9.1.2002: Vim9: heap-use-after-free when when accessing protect class member
vim-patch:9.1.2010: Missing out-of-memory checks in vim9class.c
vim-patch:9.1.2011: crash when unreferencing gtk icon theme
Applicable patches became N/A due to previous ports (a4ea6027) and vim9:
vim-patch:8.2.0335: no completion for :disassemble
vim-patch:8.2.2033: Vim9: :def without argument gives compilation error
vim-patch:8.2.4288: preprocessor indents are inconsistent
vim-patch:8.2.4324: Vim9: script-local function name can start with "_"
vim-patch:8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
vim-patch:8.2.4957: text properties in a wrong position after a block change
vim-patch:9.0.0166: when using text properties line text length computed twice
vim-patch:9.0.0219: cannot make a funcref with "s:func" in a def function
vim-patch:9.0.1357: using null_object results in an internal error
vim-patch:9.0.1484: Coverity warns for using invalid array index
vim-patch:9.1.0274: MS-Windows: a few compiler warnings
vim-patch:9.1.1339: missing out-of-memory checks for enc_to_utf16()/utf16_to_enc()
vim-patch:9.1.1434: MS-Windows: missing out-of-memory checks in os_win32.c
Problem: ml_get_buf_len() does not consider text properties
(zeertzj)
Solution: Store text length excluding text properties length
in addition in the memline
related vim/vim#14123closes: vim/vim#14133a72d1be5a9
--------
Replace ml_line_len with ml_line_textlen to be explicit
that Nvim doesn't currently support Vim's text properties
and Nvim doesn't support lines with "ambiguous" length.
--------
vim-patch:9.1.0153: Text properties corrupted with fo+=aw and backspace
Problem: Text properties corrupted with fo+=aw and backspace
Solution: Allocate line and move text properties
(zeertzjq)
closes: vim/vim#141477ac1145fbe
vim-patch:9.1.0163: Calling STRLEN() to compute ml_line_textlen when not needed
Problem: Calling STRLEN() to compute ml_line_textlen when not needed.
Solution: Use 0 when STRLEN() will be required and call STRLEN() later.
(zeertzjq)
closes: vim/vim#1415582e079df81
Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Problem: patterns after a buffer-local pattern in a comma-separated aupat are
ignored.
Solution: ensure pat refers to the original buffer after each pattern, not the
buflocal_pat buffer, and when printing make sure it's normalized for
each pattern, not just the first.
Also simplify the logic when printing all autocommands for an event, and ensure
headings aren't repeated for each event when printing autocommands.
Problem: typo in change of commit v9.1.0873
(Christ van Willegen)
Solution: Add back the square brackets
(John Marriott)
closes: vim/vim#16340df4b3ca5dc
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem: too many strlen() calls in fileio.c
Solution: refactor fileio.c and remove calls to STRLEN(),
check for out-of-memory condition in buf_check_timestamp()
(John Marriott)
closes: vim/vim#1630614ede1890f
Full port requires v8.2.0988 to update readdir_core().
Co-authored-by: John Marriott <basilisk@internode.on.net>
Problem: getregionpos() depends on 'linebreak' setting
Solution: Reset linebreak setting temporarily (McAuley Penney)
When a line is wrapped on word boundaries, getregionpos() may report a
different end column for a visual block than the cursor position used to
define the selection.
Update the blockwise calculation in getregionpos() to use the same
wrapping assumptions as visual block mode, so the reported region
matches the selection boundaries.
Add a regression test that forces wrapping and checks that the end
position stays consistent under "setlocal wrap" and "setlocal
linebreak".
closes: vim/vim#190068ea0e7205c
Co-authored-by: McAuley Penney <jacobmpenney@gmail.com>
Problem: At "if(0) do if(0); while(0); else", else should be aligned
with outer if, but is aligned with inner if.
Solution: In function find_match, ignore "if" and "else" inside a
do-while loop, when looking for "if". (Anttoni Erkkilä)
closes: vim/vim#190049d661b057e
Co-authored-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Problem: Makefile syntax highlighting incorrectly ends function calls
when encountering ')' inside double or single quoted strings,
causing incorrect highlighting for the remainder of the line.
Solution: Add makeDString and makeSString to the contains list for
makeIdent regions. This allows strings to be recognized inside
variable references and function calls.
fixes: vim/vim#18687closes: vim/vim#18818519dc391d8
Co-authored-by: Beleswar Prasad Padhi <beleswarprasad@gmail.com>
Partially revert 2a33b499a3d7f46dc307234847a6562cef6cf1d8, where all
syn match makeIdent are moved before syn region makeIdent to match $()
(reason: see https://github.com/vim/vim/pull/18403#issuecomment-3341161566)
However this results in https://github.com/vim/vim/issues/18890 ,
because lines like
`$(a) =`
will first start a region search beginning with `$(`
but then the whole target including `)` will be matched by
`syn match makeIdent "^ *[^:#= \t]*\s*="me=e-1`
which leaves the region search for the never-found `)` and let the
region matching overflow.
Same for
`$(a) ::`
`$(a) +=`
The solution is to move those greedy target match back, so they take
priority and prevents region match from happening.
fixes: vim/vim#18890closes: vim/vim#18938aded55463a
Co-authored-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Problem: Comment formatting does not work by default for bpftrace.
Solution: Change default 'formatoptions' similarly as C and many other
languages.
closes: vim/vim#189965e577c7aa8
Co-authored-by: Stanislaw Gruszka <stf_xl@wp.pl>
Problem: tests: "Xm4" test directory may not be deleted
Solution: Use "R" flag with mkdir() call to have the directory
recursively deleted at the end of function Test_m4_format()
(Muraoka Taro)
Test_m4_format in test_filetype.vim creates the "Xm4" directory with the
'D' flag. Then it creates two files in the "Xm4" directory. One of them,
"alocal.m4," was created with the 'D' flag, so it will disappear after
the test is complete. However, the other, "configure.ac," was created
without any flags, so it will remain even after the test is complete.
Because the parent directory "Xm4" was created with the 'D' flag, the
latter "configure.ac" remains and is not empty, so it will not be
deleted.
This forces the directory to be deleted regardless of its contents. As a
result, the two files "alocal.m4" and "configure.ac" created in the
directory are no longer needed, so they have been deleted.
closes: vim/vim#18995de37e7430a
Co-authored-by: Muraoka Taro <koron.kaoriya@gmail.com>