Commit Graph

22671 Commits

Author SHA1 Message Date
Christian Brabandt 2f689d5abd runtime: mark more invalid email addresses
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 16:38:08 +00:00
Christian Brabandt 6b652a7850 runtime: mark invalid contact addresses
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 12:03:36 +00:00
Christian Brabandt ea189a6f4d patch 9.1.2035: filetype: filetype: Fennel fnlm files are not recognized
Problem:  filetype: Fennel fnlm files are not recognized
          (Alexei Mozaidze, after v9.1.2034)
Solution: Detect *.fnlm files as fennel filetype, revert detecting
          *.fnml files

related: #19047

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 11:52:34 +00:00
Christian Brabandt 9c87af5c3c patch 9.1.2034: filetype: Fennel fnml files are not recognized
Problem:  filetype: Fennel fnml files are not recognized
          (Alexei Mozaidze)
Solution: Detect *.fnml files as fennel filetype

Reference:
- https://fennel-lang.org/changelog#160--2025-10-13

fixes: #19047

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:57:09 +00:00
Muraoka Taro 9d71fdaf3a patch 9.1.2033: tests: Test_terminal_cwd flaky when using ConPTY
Problem:  tests: Test_terminal_cwd in test_terminal.vim fails flaky
          in the Windows ConPTY terminal.
Solution: In ConPTY, the timeout is extended to 1msec when reading a
          channel associated with a job that is about to finish.  This
          allows Vim to read the last output of a process in a pseudo
          console. Add comments to make the reasoning clear.
          (Muraoka Taro)

Processes that terminate too quickly in the ConPTY terminal cause Vim to
miss their final output.

In my environment, the probability of the "cmd /D /c cd" used in
Test_terminal_cwd occurring is about 1/4.  For a simple statically
linked Hello World, the probability of it occurring is about 3/4.

closes: #19036

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:42:02 +00:00
Foxe Chen 83fc7c4d8e patch 9.1.2032: Vim9: error when using class member in Lambda
Problem:  Vim9: error when using class member in Lambda
Solution: Compare against uf_defclass variable
          (Foxe Chen)

closes: #19041

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:30:51 +00:00
Mao-Yining 10dc693ea0 translation(zh_CN): Update the Simplify Chinese translation
closes: #19034

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:28:45 +00:00
Brian Carbone 5c2b594d0e runtime(rust): Update indentation after nested array literal
fixes:  #18974
closes: #19042

Signed-off-by: Brian Carbone <brian@briancarbone.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:26:20 +00:00
Christian Brabandt d09be15847 runtime(doc): Update Contributing.md on the use of AI
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:20:37 +00:00
Christian Brabandt ce1636548d runtime(doc): Emphasize adding tests when contributing
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-31 09:07:18 +00:00
Christian Brabandt 7a6d9454c8 README.md: remove the warp ad again
related: #18153

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-30 10:35:10 +01:00
Christian Brabandt 1bc3610b0a runtime(rust): partly revert e426245b, it causes more issues than it solves
related: #18974

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-29 09:41:17 +01:00
Thomas Petazzoni 6df5360691 patch 9.1.2031: Makefile: cannot run make installinks twice
Problem:  Makefile: cannot run make installinks twice
Solution: Change "ln -s" to "ln -sf" to force creation of the symlinks
          (Thomas Petazzoni)

Running "make installlinks" twice towards the same destination
directory will fail, as symlink will already exist. This is not really
expected as "make install" is normally expected to work again and
again towards the same destination directory.

Fix this by using ln -sf.

closes: #19035

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 14:26:52 +00:00
John Marriott 32b801abc3 patch 9.1.2030: inefficient use of ga_concat()
Problem:  inefficient use of ga_concat()
Solution: Use ga_concat_len() when length is known.
          (John Marriott)

closes: #19027

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 14:14:41 +00:00
Yegappan Lakshmanan 1dd301a4b3 patch 9.1.2029: tests: the test_vim9_class.vim testfile is too long
Problem:  tests: the test_vim9_class.vim testfile is too long
Solution: Split out the interface related test cases into a new
          test file test_vim9_interface.vim (Yegappan Lakshmanan)

closes: #19032

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 14:08:21 +00:00
Victorhck e74e40dc43 runtime(tutor): Improve Spanish translation for chapter 2 after 757b42a
related: #18950
closes:  #19014

Signed-off-by: Victorhck <victorhck@mailbox.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 14:03:25 +00:00
Christian Brabandt ea2b98b9e9 runtime(indent-tests): Include a simple Rust indent test
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 14:00:44 +00:00
Christian Brabandt e426245bb3 runtime(rust): clean-up indent script, handle opening empty line correctly
fixes: #18974

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-28 13:57:33 +00:00
Christian Brabandt f99de42a9f patch 9.1.2028: [security]: Buffer-overflow with incomplete multi-byte chars
Problem:  Buffer overflow in buf_write() when converting incomplete
          multi-byte characters (Kevin Goodsell)
Solution: Make the buffer slightly larger

closes: #19007

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:46:44 +00:00
Stanislaw Gruszka ee3f10af87 runtime(bpftrace): add indention plugin
Problem:  No indention support when editing bpftrace files.
Solution: Add indention settings based on cindent with custom options.

closes: #19030

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:37:53 +00:00
Mao-Yining dab78ec4a2 translation(zh_CN): Update the Simplify Chinese translation
closes: #19031

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:33:21 +00:00
Mao-Yining a7f703c215 runtime(doc): improve :catch documentation
related: #18984
closes:  #19029

Signed-off-by: Mao-Yining <101858210+mao-yining@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:28:26 +00:00
Scott McKendry 4e722fdfdd patch 9.1.2027: filetype: bicep filetype used for 2 bicep file types
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:
- https://github.com/Azure/bicep/blob/51392d32ca2c8b94b1bb7a255e78e1d559d12573/src/Bicep.Core/LanguageConstants.cs#L23
VS Code Extension definition:
- https://github.com/Azure/bicep/blob/51392d32ca2c8b94b1bb7a255e78e1d559d12573/src/vscode-bicep/package.json#L47

closes: #19026

Signed-off-by: Scott McKendry <me@scottmckendry.tech>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:20:39 +00:00
zeertzjq 78046cc539 patch 9.1.2026: tests: patch 9.1.2019 not tested properly
Problem:  tests: patch 9.1.2019 not tested properly.
Solution: Add missing :exe (zeertzjq).

closes: #19028

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 15:07:52 +00:00
Muraoka Taro 9f5b09ea1f patch 9.1.2025: conpty terminal process may not start
Problem:  Conpty terminal process may not start.
Solution: Do not close the input handle at EOF when conpty is in use.
          (Muraoka Taro)

It causes the following tests to fail in Windows conpty:

          - Test_terminal_duplicate_eof_arg()
          - Test_terminal_eof_arg()
          - Test_terminal_eof_arg_win32_ctrl_z()

To be precise, the process is launched, but immediately after it is
launched, the input handle to the console is closed with the EOF of the
input, and the console is terminated. When the console is terminated,
the associated process is also terminated.

In the Windows pseudo console, input and output handles are closed after
the process in the console has terminated.  This is not explicitly
stated in Microsoft's documentation.  However, looking at the code for
Windows Terminal, which is presented as a complete example of the pseudo
console, it is implemented exactly this way.

See the sample codes below:

- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/EchoCon/EchoCon/EchoCon.cpp
- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/GUIConsole/GUIConsole.ConPTY/Terminal.cs
- https://github.com/microsoft/terminal/blob/main/samples/ConPTY/MiniTerm/MiniTerm/Terminal.cs

The handle that is not closed at EOF is closed when Vim detects the end
of the job, so there is no risk of them being forgotten and leaking.

`ch_anonymous_pipe`, which was used to determine whether a channel was
for conpty, was set to TRUE only when conpty was being used. The
definition also had the comment `// ConPTY` attached to it.  This name
is not very appropriate, but I felt it would be rude to add a new field
to `channel_T` just for this purpose, so I reused it.

closes: #19025

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 14:36:31 +00:00
glepnir 4d5b303726 patch 9.1.2024: 'fsync' option cannot be set per buffer
Problem:  'fsync' option cannot be set per buffer
Solution: Make 'fsync' option global-local
          (glepnir)

closes: #19019

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 14:32:47 +00:00
Christian Brabandt 9266a2a197 patch 9.1.2023: [security]: Use-after-free in alist_add() with nasty autocmd
Problem:  A BufAdd autocommand may cause alist_add() to use freed
          memory, this is caused by the w_locked variable unset too
          early (henices)
Solution: in trigger_undo_ftplugin() only set w_locked to false, if it
          was false when calling the function.

related: v9.1.0678
closes: #19023

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 14:10:37 +00:00
Konfekt 1ff2239053 runtime(compiler): add pyright Python type checker
closes: #19017

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-27 14:07:21 +00:00
Mao-Yining 08aaa7ae19 runtime(doc): remove some fixed items from todo.txt
closes: #19024

Signed-off-by: Mao-Yining <mao.yining@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 16:01:31 +00:00
Wei Tang 43b87938f5 patch 9.1.2022: using C++ keyword class as member variable name
Problem:  A recent commit introduced a member variable named `class` in
          the `exarg` structure, which conflicts with the C++ keyword
          `class`. This causes compilation issues on Windows when VIM
          is compiled with OLE enabled, as "if_ole.cpp" cannot compile
          due to the keyword conflict (after v9.1.2012).
Solution: Rename the member variable of `exarg` from `class` to `ea_class`.
          (Wei Tang)

related: #18949
closes:  #19016

Signed-off-by: Wei Tang <gauchyler@uestc.edu.cn>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:54:46 +00:00
tao 538da34ad3 runtime(netrw): Fix reading UNC paths on windows
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: #19015

Signed-off-by: tao <2471314@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:51:32 +00:00
Konfekt ffd5c52d23 runtime(compiler): ignore 'Found' messages in ruff and ty compiler
while at it, also update the ty command line

closes: #19012

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:33:39 +00:00
ners b91b30643a patch 9.1.2021: filetype: fluent files are not recognized
Problem:  filetype: fluent files are not recognized
Solution: Detect *.ftl files as fluent filetype (ners)

References:
- https://projectfluent.org/

closes: #19011

Signed-off-by: ners <ners@gmx.ch>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:27:19 +00:00
Miguel Barro c721b69e88 runtime(termdebug): update v:shell_error condition test.
vim9 conditions only admit 0 or 1 integers, however the return value of
shells is not limited to either 0 or 1 (e.g. powershell)

closes: #19010

Signed-off-by: Miguel Barro <miguel.barro@live.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:19:41 +00:00
Christian Brabandt a8a0ee5004 patch 9.1.2020: tests: test_virtualedit.vim leaves swapfiles behind
Problem:  tests: test_virtualedit.vim leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:16:46 +00:00
McAuley Penney 491f0fa457 patch 9.1.2019: inconsistent cursor encoding past EOL with ve=all
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:  #16276
closes: #19009

Signed-off-by: McAuley Penney <jacobmpenney@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:10:01 +00:00
tao eb3007b417 patch 9.1.2018: proto: ops.pro outdated
Problem:  proto: ops.pro outdated (after v9.1.2017)
Solution: Regenerate the ops.pro proto file (Tao)

closes: #19018

Signed-off-by: tao <2471314@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 15:04:24 +00:00
Foxe Chen e6a11d45e5 runtime(osc52): A few minor fixes
- If g:osc52_disable_paste is enabled, then return an empty list instead
  of a list with a single empty string.
- use `echo` instead of `echom` when printing osc waiting message

closes: #19002

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-26 14:59:01 +00:00
Christian Brabandt 2006415016 runtime(doc): add reference to searchcount() function
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 22:22:38 +00:00
Christian Brabandt 6d211bc4f0 runtime(doc): Improve :catch documentation
fixes: #18984

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 21:58:57 +00:00
Beleswar Prasad Padhi 519dc391d8 runtime(make): Makefile highlighting breaks with ')' in string
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:  #18687
closes: #18818

Signed-off-by: Beleswar Prasad Padhi <beleswarprasad@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 21:32:10 +00:00
Yiyang Wu aded55463a runtime(make): Move target greedy match after $() to avoid region matching overflow
Partially revert 2a33b499a3, 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:  #18890
closes: #18938

Signed-off-by: Yiyang Wu <xgreenlandforwyy@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 21:25:04 +00:00
McAuley Penney 8ea0e7205c patch 9.1.2017: getregionpos() depends on 'linebreak' setting
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: #19006

Signed-off-by: McAuley Penney <jacobmpenney@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:51:25 +00:00
Anttoni Erkkilä 9d661b057e patch 9.1.2016: cindent wrong indentation after do-while loop
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: #19004

Signed-off-by: Anttoni Erkkilä <anttoni.erkkila@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:42:57 +00:00
Foxe Chen 60c87056b4 patch 9.1.2015: blob2string() stopped after an empty line
Problem:  blob2string() stopped after an empty line
Solution: Specifically check for empty content (Foxe Chen)

closes: #19001

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:37:19 +00:00
Foxe Chen 11c3c62aa8 patch 9.1.2014: clipboard: clipboard register corrupted with clipboard provider
Problem:  clipboard: clipboard register corrupted with clipboard
          provider (Satoru Kitaguchi and mikoto2000 after v9.1.1972)
Solution: Only adjust clipboard register points to the unnamed register
          (Foxe Chen)

fixes:  #18983
fixes:  #18988
closes: #19000

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:29:08 +00:00
Muraoka Taro 90e17110c4 patch 9.1.2013: tests: Test_terminal_shell_option fails with conpty
Problem:  tests: When opening a conpty terminal, if process startup
          fails, it will silently exit.  As a result, the
          Test_terminal_shell_option in test_terminal3.vim failed in
          conpty.

          In a winpty terminal, the winpty-provided error message
          "CreateProcess failed" was displayed.  The test is designed to
          catch this error as an exception.

Solution: Make conpty fail with an error messages in the same way as winpty.
          (Muraoka Taro)

In addition, since the GetWin32Error() function can obtain more detailed
error messages, the format has been changed to "CreateProcess failed:
{localized message from the OS}" for conpty.

Also, since the GetWin32Error() function returns errors in ACP (Active
Code Page) encoding, these have been converted to Vim's internal
encoding, enc.  This will prevent messages from being garbled in
Japanese environments, etc.  The output of this function was basically
used by the semsg() function in other places, so this change also fixes
potential similar garbled characters.

The test now errors out immediately in places where it is expected not
to be reached, and comments have been added about the expected content
of the winpty and conpty error messages.

closes: #18998

Signed-off-by: Muraoka Taro <koron.kaoriya@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:22:54 +00:00
Foxe Chen cbcc5babba patch 9.1.2012: Vim9: cannot initialize class member with protected var
Problem:  Vim9: cannot initialize class member with protected var
Solution: Allow this to work if this happens within the same class
          (Foxe Chen)

closes: #18949

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:17:30 +00:00
Stanislaw Gruszka 5e577c7aa8 runtime(ftplugin): set different formatoptions for bpftrace
Problem:   Comment formatting does not work by default for bpftrace.
Solution:  Change default 'formatoptions' similarly as C and many other
           languages.

closes: #18996

Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-23 20:15:14 +00:00
Christian Brabandt bb10f71402 patch 9.1.2011: crash when unreferencing gtk icon theme
Problem:  crash when unreferencing gtk icon theme
          (noamhalevy-wq, after v9.1.1583)
Solution: Remove the g_object_unref() call.

gtk_icon_theme_get_default() returns a singleton that should NOT be
unreferenced. From GTK documentation:

> A unique GtkIconTheme associated with the default screen. This icon
theme is associated with the screen and can be used as long as the
screen is open. Do not ref or unref it.

fixes: #18997

Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-22 18:59:50 +00:00