]> git.ipfire.org Git - thirdparty/vim.git/log
thirdparty/vim.git
3 months agopatch 9.1.1307: make syntax does not reliably detect different flavors v9.1.1307
Eisuke Kawashima [Tue, 15 Apr 2025 17:20:06 +0000 (19:20 +0200)] 
patch 9.1.1307: make syntax does not reliably detect different flavors

Problem:  GNU extensions, such as `ifeq` and `wildcard` function, are
          highlighted in BSDmakefile
Solution: detect BSD, GNU, or Microsoft implementation according to
  filename, user-defined global variables, or file contents

closes: #17089

Co-authored-by: Roland Hieber <rohieb@users.noreply.github.com>
Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1306: completion menu rendering can be improved v9.1.1306
glepnir [Tue, 15 Apr 2025 17:06:58 +0000 (19:06 +0200)] 
patch 9.1.1306: completion menu rendering can be improved

Problem:  Parts of the popup menu were rendered twice when the popup was
          at maximum width because the truncation flag was being set too
          liberally.
Solution: Make the truncation condition more precise by only setting it
          when there's exactly one character of space remaining
          (glepnir).

closes: #17108

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1305: completion menu active after switching windows/tabs v9.1.1305
glepnir [Tue, 15 Apr 2025 17:02:00 +0000 (19:02 +0200)] 
patch 9.1.1305: completion menu active after switching windows/tabs

Problem:  When switching to another window or tab page while the
          completion menu is active, the menu stays visible, although it
          belongs to the previous window/tab page context (Evgeni
          Chasnovski).
Solution: Track the window and tab page where completion started. Detect
          changes in the main editing loop and cancel completion mode if
          the current window or tab page differs from where completion
          started.

fixes: #17090
closes: #17101

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1304: filetype: some man files are not recognized v9.1.1304
Eisuke Kawashima [Tue, 15 Apr 2025 16:30:05 +0000 (18:30 +0200)] 
patch 9.1.1304: filetype: some man files are not recognized

Problem:  filetype: some man files are not recognized
          (e.g. 1p (POSIX commands))
Solution: update the filetype detection pattern and detect more man
          files as nroff (Eisuke Kawashima)

- sections are revised referring to
    - debian-12:/etc/manpath.config
    - fedora-41:/etc/man_db.conf
- detection logic is improved
- detection test is implemented

closes: #17117

Signed-off-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(netrw): upstream snapshot of v180
Luca Saccarola [Tue, 15 Apr 2025 16:26:32 +0000 (18:26 +0200)] 
runtime(netrw): upstream snapshot of v180

relevant commits:
- fix(gvim): don't set previous jump
- don't overwrite copy, copydir, mkdir and move command options
- fix: correctly name deprecate function
- refactor: remove s:NetrwBufRemover
- refactor: s:NetrwDelete -> netrw#fs#Remove
- defaults!: remove g:netrw_use_errorwindow

fixes: #17114
closes: #17123

Signed-off-by: Luca Saccarola <github.e41mv@aleeas.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1303: missing out-of-memory check in linematch.c v9.1.1303
John Marriott [Tue, 15 Apr 2025 16:15:24 +0000 (18:15 +0200)] 
patch 9.1.1303: missing out-of-memory check in linematch.c

Problem:  missing out-of-memory check in linematch.c
Solution: return early in case of memory allocation failure, move the
          pow() calculation ouside of the for() loop
          (John Marriott)

closes: #17118

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1302: Coverity warns about using uninitialized value v9.1.1302
Christian Brabandt [Tue, 15 Apr 2025 16:10:26 +0000 (18:10 +0200)] 
patch 9.1.1302: Coverity warns about using uninitialized value

Problem:  Coverity warns about using uninitialized value
          (Coverity, Tony Mechelynck, after v9.1.1301)
Solution: initialize callback pointer to NULL

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1301: completion: cannot configure completion functions with 'complete' v9.1.1301
Girish Palya [Mon, 14 Apr 2025 20:13:15 +0000 (22:13 +0200)] 
patch 9.1.1301: completion: cannot configure completion functions with 'complete'

Problem:  completion: cannot configure completion functions with
          'complete'
Solution: add support for setting completion functions using the f and o
          flag for 'complete' (Girish Palya)

This change adds two new values to the `'complete'` (`'cpt'`) option:
- `f` – invokes the function specified by the `'completefunc'` option
- `f{func}` – invokes a specific function `{func}` (can be a string or `Funcref`)

These new flags extend keyword completion behavior (e.g., via `<C-N>` /
`<C-P>`) by allowing function-based sources to participate in standard keyword
completion.

**Key behaviors:**

- Multiple `f{func}` values can be specified, and all will be called in order.
- Functions should follow the interface defined in `:help complete-functions`.
- When using `f{func}`, escaping is required for spaces (with `\`) and commas
  (with `\\`) in `Funcref` names.
- If a function sets `'refresh'` to `'always'`, it will be re-invoked on every
  change to the input text. Otherwise, Vim will attempt to reuse and filter
  existing matches as the input changes, which matches the default behavior of
  other completion sources.
- Matches are inserted at the keyword boundary for consistency with other completion methods.
- If finding matches is time-consuming, `complete_check()` can be used to
  maintain responsiveness.
- Completion matches are gathered in the sequence defined by the `'cpt'`
  option, preserving source priority.

This feature increases flexibility of standard completion mechanism and may
reduce the need for external completion plugins for many users.

**Examples:**

Complete matches from [LSP](https://github.com/yegappan/lsp) client. Notice the use of `refresh: always` and `function()`.

```vim
set cpt+=ffunction("g:LspCompletor"\\,\ [5]). # maxitems = 5

def! g:LspCompletor(maxitems: number, findstart: number, base: string): any
    if findstart == 1
        return g:LspOmniFunc(findstart, base)
    endif
    return {words: g:LspOmniFunc(findstart, base)->slice(0, maxitems), refresh: 'always'}
enddef
autocmd VimEnter * g:LspOptionsSet({ autoComplete: false, omniComplete: true })
```

Complete matches from `:iabbrev`.

```vim
set cpt+=fAbbrevCompletor

def! g:AbbrevCompletor(findstart: number, base: string): any
    if findstart > 0
        var prefix = getline('.')->strpart(0, col('.') - 1)->matchstr('\S\+$')
        if prefix->empty()
            return -2
        endif
        return col('.') - prefix->len() - 1
    endif
    var lines = execute('ia', 'silent!')
    if lines =~? gettext('No abbreviation found')
        return v:none  # Suppresses warning message
    endif
    var items = []
    for line in lines->split("\n")
        var m = line->matchlist('\v^i\s+\zs(\S+)\s+(.*)$')
        if m->len() > 2 && m[1]->stridx(base) == 0
            items->add({ word: m[1], info: m[2], dup: 1 })
        endif
    endfor
    return items->empty() ? v:none :
        items->sort((v1, v2) => v1.word < v2.word ? -1 : v1.word ==# v2.word ? 0 : 1)
enddef
```

**Auto-completion:**

Vim's standard completion frequently checks for user input while searching for
new matches. It is responsive irrespective of file size. This makes it
well-suited for smooth auto-completion. You can try with above examples:

```vim
set cot=menuone,popup,noselect inf

autocmd TextChangedI * InsComplete()

def InsComplete()
    if getcharstr(1) == '' && getline('.')->strpart(0, col('.') - 1) =~ '\k$'
        SkipTextChangedIEvent()
        feedkeys("\<c-n>", "n")
    endif
enddef

inoremap <silent> <c-e> <c-r>=<SID>SkipTextChangedIEvent()<cr><c-e>

def SkipTextChangedIEvent(): string
    # Suppress next event caused by <c-e> (or <c-n> when no matches found)
    set eventignore+=TextChangedI
    timer_start(1, (_) => {
        set eventignore-=TextChangedI
    })
    return ''
enddef
```

closes: #17065

Co-authored-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: glepnir <glephunter@gmail.com>
Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1300: wrong detection of -inf v9.1.1300
John Marriott [Mon, 14 Apr 2025 19:19:34 +0000 (21:19 +0200)] 
patch 9.1.1300: wrong detection of -inf

Problem:  wrong detection of -inf
Solution: correctly compare 4 characters and not 3
          (John Marriott)

closes: #17109

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): update enum helptext
Yegappan Lakshmanan [Mon, 14 Apr 2025 19:14:33 +0000 (21:14 +0200)] 
runtime(doc): update enum helptext

closes: #17112

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1299: filetype: mbsyncrc files are not recognized v9.1.1299
Pierrick Guillaume [Sun, 13 Apr 2025 16:25:33 +0000 (18:25 +0200)] 
patch 9.1.1299: filetype: mbsyncrc files are not recognized

Problem:  filetype: mbsyncrc files are not recognized
Solution: detect isyncrc and "*.mbsyncrc" files as mbsync filetype,
          include filetype and syntax plugin (Pierrick Guillaume)

mbsync is a command line application which synchronizes mailboxes;
currently Maildir and IMAP4 mailboxes are supported.
New messages, message deletions and flag changes can be propagated both ways;
the operation set can be selected in a fine-grained manner.

References:
mbsync syntax overview: mbsync manual (isync v1.4.4)
https://isync.sourceforge.io/mbsync.html

Upstream support for the mbsync filetype.
Original plugin: https://github.com/Fymyte/mbsync.vim

closes: #17103

Signed-off-by: Pierrick Guillaume <pguillaume@fymyte.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoCI: install xcode 16.3 on macos-15 runner
Philip H. [Sun, 13 Apr 2025 16:19:56 +0000 (18:19 +0200)] 
CI: install xcode 16.3 on  macos-15 runner

closes: #17111

Signed-off-by: Philip H. <47042125+pheiduck@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): update options.txt and clarify 'wildmode' further
Christian Brabandt [Sun, 13 Apr 2025 16:06:49 +0000 (18:06 +0200)] 
runtime(doc): update options.txt and clarify 'wildmode' further

related: #17100

Co-authored-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(gleam): update Maintainer and filetype options
Kirill Morozov [Sun, 13 Apr 2025 15:58:32 +0000 (17:58 +0200)] 
runtime(gleam): update Maintainer and filetype options

closes: #17086

Signed-off-by: Kirill Morozov <kirill@robotix.pro>
Signed-off-by: Trilowy <49493635+trilowy@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1298: define_function() is too long v9.1.1298
Yegappan Lakshmanan [Sun, 13 Apr 2025 15:49:50 +0000 (17:49 +0200)] 
patch 9.1.1298: define_function() is too long

Problem:  define_function() is too long
Solution: refactor and split up into smaller functions
          (Yegappan Lakshmanan)

closes: #17105

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1297: Ctrl-D scrolling can get stuck v9.1.1297
Luuk van Baal [Sun, 13 Apr 2025 15:45:34 +0000 (17:45 +0200)] 
patch 9.1.1297: Ctrl-D scrolling can get stuck

Problem:  cursor_correct() calculates a valid cursor position which
  is later changed by update_topline() and causes Ctrl-D
          scrolling to be stuck (Daniel Steinberg, after v9.1.0258).
Solution: Update the valid cursor position before validating topline
          (Luuk van Baal).

fixes: #17106
closes: #17110

Signed-off-by: Luuk van Baal <luukvbaal@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(new-tutor): update tutor and correct comandline completion
Phạm Bình An [Sun, 13 Apr 2025 15:30:59 +0000 (17:30 +0200)] 
runtime(new-tutor): update tutor and correct comandline completion

Problem: Some parts of the tutor are outdated.

- For example, pressing `<Tab>` after typing `:e` does not complete the
command `:edit`, but shows a completion menu with the first entry being
`:earlier`.

closes: #17107

Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1296: completion: incorrect truncation logic v9.1.1296
glepnir [Sat, 12 Apr 2025 16:35:34 +0000 (18:35 +0200)] 
patch 9.1.1296: completion: incorrect truncation logic

Problem:  completion: incorrect truncation logic (after: v9.1.1284)
Solution: replace string allocation with direct screen rendering and
          fixe RTL/LTR truncation calculations (glepnir)

closes: #17081

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1295: clientserver: does not handle :stopinsert correctly v9.1.1295
Christian Brabandt [Sat, 12 Apr 2025 16:09:28 +0000 (18:09 +0200)] 
patch 9.1.1295: clientserver: does not handle :stopinsert correctly

Problem:  clientserver: When in insert mode, a :stopinsert command
          is not correctly processed (user202729)
Solution: If the :stopinsert command is received while waiting for
          input, stuff the NOP key into the type-ahead buffer and
          detect that :stopinsert was used in edit() so that the
          cursor position is decremented.

fixes: #17016
closes: #17024

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): disable last-position-jump in diff mode
Christian Brabandt [Sat, 12 Apr 2025 16:07:39 +0000 (18:07 +0200)] 
runtime(doc): disable last-position-jump in diff mode

This has been bothering me quite for some time and I never knew why it
happened. Just today it occurred to me this might have been because of
the last-position-jump.

So I figured, let's fix it for everybody, not just me.

closes: #17092

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): Improve 'wildmode' setting desciption
Girish Palya [Sat, 12 Apr 2025 16:03:32 +0000 (18:03 +0200)] 
runtime(doc): Improve 'wildmode' setting desciption

closes: #17100

Signed-off-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1294: gui tabline menu does not use confirm when closing tabs v9.1.1294
JMcKiern [Sat, 12 Apr 2025 09:51:00 +0000 (11:51 +0200)] 
patch 9.1.1294: gui tabline menu does not use confirm when closing tabs

Problem:  gui tabline menu does not use confirm when closing tabs
Solution: use ":confirm tabclose" explicitly (JMcKiern)

closes: #17093

Signed-off-by: JMcKiern <jmckiern@tcd.ie>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): correct backslash escaping comma example
Qiming zhao [Sat, 12 Apr 2025 09:40:17 +0000 (11:40 +0200)] 
runtime(doc): correct backslash escaping comma example

closes: #17096

Signed-off-by: Qiming zhao <chemzqm@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1293: comment plugin does not handle 'exclusive' selection for comment... v9.1.1293
Maxim Kim [Sat, 12 Apr 2025 09:34:08 +0000 (11:34 +0200)] 
patch 9.1.1293: comment plugin does not handle 'exclusive' selection for comment object

Problem:  comment plugin does not handle 'exclusive' selection for
          comment object (@mawkish)
Solution: handle special case selection='exclusive' for inline comment
          object (Maxim Kim)

fixes: #17023
closes: #17098

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1292: statusline not correctly evaluated v9.1.1292
Hirohito Higashi [Sat, 12 Apr 2025 09:28:18 +0000 (11:28 +0200)] 
patch 9.1.1292: statusline not correctly evaluated

Problem:  statusline not correctly evaluated
          (Peter Kenny, after v9.1.1291)
Solution: revert part of patch v9.1.1291
          (Hirohito Higashi)

fixes: #17095
closes: #17094

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(sh): Do not look up a "sh" utility in $PATH for "sh_13.sh"
Aliaksei Budavei [Sat, 12 Apr 2025 09:18:10 +0000 (11:18 +0200)] 
runtime(sh): Do not look up a "sh" utility in $PATH for "sh_13.sh"

Dash may not be installed on a BSD CI runner, list it in the
shebang line.

See #17084
closes: #17094

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(filetype): make shell filetype detection more robust
Aliaksei Budavei [Thu, 10 Apr 2025 19:52:14 +0000 (21:52 +0200)] 
runtime(filetype): make shell filetype detection more robust

closes: #17063

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1291: too many strlen() calls in buffer.c v9.1.1291
John Marriott [Thu, 10 Apr 2025 19:34:19 +0000 (21:34 +0200)] 
patch 9.1.1291: too many strlen() calls in buffer.c

Problem:  too many strlen() calls in buffer.c
Solution: refactor buffer.c and remove strlen() calls
          (John Marriott)

closes: #17063

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(keymaps): include 2 Brazilian Keymaps
Elsarques [Thu, 10 Apr 2025 18:04:14 +0000 (20:04 +0200)] 
runtime(keymaps): include 2 Brazilian Keymaps

closes: #17072

Signed-off-by: Elsarques <luismarques0504@proton.me>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(vim): Update-base-syntax, match full :*grep, :make, :sort and :filter commands
Doug Kearns [Thu, 10 Apr 2025 17:59:22 +0000 (19:59 +0200)] 
runtime(vim): Update-base-syntax, match full :*grep, :make, :sort and :filter commands

closes: #17082

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1290: tests: missing cleanup in test_filetype.vim v9.1.1290
zeertzjq [Thu, 10 Apr 2025 17:54:16 +0000 (19:54 +0200)] 
patch 9.1.1290: tests: missing cleanup in test_filetype.vim

Problem:  tests: missing cleanup in test_filetype.vim, wrong name in
          test_plugin_matchparen
Solution: Add :bwipe corresponding to :split, rename test case

closes: #17088

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1289: tests: no test for matchparen plugin with WinScrolled event v9.1.1289
Christian Brabandt [Wed, 9 Apr 2025 17:29:18 +0000 (19:29 +0200)] 
patch 9.1.1289: tests: no test for matchparen plugin with WinScrolled event

Problem:  tests: no test for matchparen plugin with WinScrolled event
Solution: add missing test

closes: #10942

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(remind): include remind.vim ftplugin
Joe Reynolds [Wed, 9 Apr 2025 17:27:37 +0000 (19:27 +0200)] 
runtime(remind): include remind.vim ftplugin

closes: #17085

Signed-off-by: Joe Reynolds <joereynolds952@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(vim): Update base-syntax, improve :command highlighting
Doug Kearns [Tue, 8 Apr 2025 18:50:00 +0000 (20:50 +0200)] 
runtime(vim): Update base-syntax, improve :command highlighting

- Match multiline :command definitions.
- Match custom completion funcref var names.

fixes: #17001
closes: #17067

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(help): add omni completion and 'iskeyword' to filetype plugin
Phạm Bình An [Tue, 8 Apr 2025 18:40:12 +0000 (20:40 +0200)] 
runtime(help): add omni completion and 'iskeyword' to filetype plugin

Problem:

- Help tags provide a good way to navigate the Vim documentation, but
  many help documents don't use them effectively. I think one of the
  reasons is that help writers have to look up help tags manually with
  `:help` command, which is not very convenient.
- 'iskeyword' is only set for help buffers opened by `:help` command.
  That means if I'm editing a help file, I cannot jump to tag in same
  file using `Ctrl-]` unless I manually set it, which is annoying.

Solution:

- Add omni completion for Vim help tags.
- Set 'iskeyword' for `ft-help`

closes: #17073

Co-authored-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Phạm Bình An <phambinhanctb2004@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(lf): improve syntax script, add filetype plugin
Andis Spriņķis [Tue, 8 Apr 2025 18:34:14 +0000 (20:34 +0200)] 
runtime(lf): improve syntax script, add filetype plugin

- Greatly improve detection and highlighting of command/shell regions,
  input-device key labels, escape sequences (@joelim-work)
- Add ftplugin for formatoptions, toggling comment areas
  (@andis-sprinkis)
- Add a few missing lf option keywords, rm. old non-working code, misc.
  formatting (@andis-sprinkis)

closes: #17078

Signed-off-by: Andis Spriņķis <andis@sprinkis.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1288: Using wrong window in ll_resize_stack() v9.1.1288
zeertzjq [Tue, 8 Apr 2025 18:29:40 +0000 (20:29 +0200)] 
patch 9.1.1288: Using wrong window in ll_resize_stack()

Problem:  Using wrong window in ll_resize_stack()
          (after v9.1.1287)
Solution: Use "wp" instead of "curwin", even though they are always the
          same value.  Fix typos in documentation (zeertzjq).

closes: #17080

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(doc): rename wrong option to 'pummaxwidth'
Christian Brabandt [Tue, 8 Apr 2025 06:36:18 +0000 (08:36 +0200)] 
runtime(doc): rename wrong option to 'pummaxwidth'

Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1287: quickfix code can be further improved v9.1.1287
Hirohito Higashi [Mon, 7 Apr 2025 19:19:07 +0000 (21:19 +0200)] 
patch 9.1.1287: quickfix code can be further improved

Problem:  quickfix code can be further improved (after v9.1.1283)
Solution: slightly refactor quickfix.c (Hirohito Higashi)

- remove error message output
- adjust comments
- rename functions:
  - qf_init_quickfix_stack() --> qf_init_stack()
  - qf_resize_quickfix_stack() --> qf_resize_stack()
  - qf_resize_stack() --> qf_resize_stack_base()

Now qf_alloc_stack() can handle both quickfix/location lists.

closes: #17068

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1286: filetype: help files not detected when 'iskeyword' includes ":" v9.1.1286
zeertzjq [Mon, 7 Apr 2025 19:14:41 +0000 (21:14 +0200)] 
patch 9.1.1286: filetype: help files not detected when 'iskeyword' includes ":"

Problem:  Help files not detected when 'iskeyword' includes ":".
Solution: Do not use \< and \> in the pattern (zeertzjq).

fixes: #17069
closes: #17071

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1285: Vim9: no error message for missing method after "super." v9.1.1285
Yegappan Lakshmanan [Mon, 7 Apr 2025 19:09:18 +0000 (21:09 +0200)] 
patch 9.1.1285: Vim9: no error message for missing method after "super."

Problem:  Vim9: no error message for missing method after "super."
Solution: output an error message, add a few more tests
          (Yegappan Lakshmanan).

closes: #17070

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agopatch 9.1.1284: not possible to configure pum truncation char v9.1.1284
glepnir [Mon, 7 Apr 2025 18:57:14 +0000 (20:57 +0200)] 
patch 9.1.1284: not possible to configure pum truncation char

Problem:  not possible to configure the completion menu truncation
          character
Solution: add the "trunc" suboption to the 'fillchars' setting to
          configure the truncation indicator (glepnir).

closes: #17006

Co-authored-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
3 months agoruntime(lua): fix whitespace style issues in lua ftplugin
Christian Brabandt [Mon, 7 Apr 2025 12:07:28 +0000 (14:07 +0200)] 
runtime(lua): fix whitespace style issues in lua ftplugin

related: #17049

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(lua): improve foldexpr, add vim9 script version
Konfekt [Sun, 6 Apr 2025 15:40:43 +0000 (17:40 +0200)] 
runtime(lua): improve foldexpr, add vim9 script version

closes: #17049

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): Fix minor typo in options.txt
clach04 [Sun, 6 Apr 2025 15:37:12 +0000 (17:37 +0200)] 
runtime(doc): Fix minor typo in options.txt

closes: #17060

Signed-off-by: clach04 <clach04@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(fstab): set formatoptions-=t in filetype plugin
Radu Dineiu [Sun, 6 Apr 2025 15:33:13 +0000 (17:33 +0200)] 
runtime(fstab): set formatoptions-=t in filetype plugin

closes: #17020

Signed-off-by: Radu Dineiu <radu.dineiu@gmail.com>
Co-authored-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(svelte): add matchit support to svelte filetype plugin
231tr0n [Sun, 6 Apr 2025 15:28:11 +0000 (17:28 +0200)] 
runtime(svelte): add matchit support to svelte filetype plugin

closes: #17052

Signed-off-by: 231tr0n <zeltronsrikar@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1283: quickfix stack is limited to 10 items v9.1.1283
64-bitman [Sun, 6 Apr 2025 15:20:39 +0000 (17:20 +0200)] 
patch 9.1.1283: quickfix stack is limited to 10 items

Problem:  quickfix and location-list stack is limited to 10 items
Solution: add the 'chistory' and 'lhistory' options to configure a
          larger quickfix/location list stack
          (64-bitman)

closes: #16920

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: 64-bitman <60551350+64-bitman@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1282: Build and test failure without job feature v9.1.1282
Christian Brabandt [Sun, 6 Apr 2025 14:15:10 +0000 (16:15 +0200)] 
patch 9.1.1282: Build and test failure without job feature

Problem:  Build and test failure without job feature
          (lazypingu)
Solution: Adjust ifdefs, add CheckFeature job to tests

fixes: #17053
closes: #17059

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1281: extra newline output when editing stdin v9.1.1281
Abhijit Barik [Sun, 6 Apr 2025 14:12:06 +0000 (16:12 +0200)] 
patch 9.1.1281: extra newline output when editing stdin

Problem:  extra newline output when editing stdin
Solution: remove outputting when reading from stdin in non-terminal mode
          (Abhijit Barik)

fixes: #16856
closes: #17047

Co-authored-by: LemonBoy <LemonBoy@users.noreply.github.com>
Signed-off-by: Abhijit Barik <Abhijit.Barik@ivanti.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1280: trailing additional semicolon in get_matches_in_str() v9.1.1280
Satoru Kitaguchi [Sun, 6 Apr 2025 14:04:59 +0000 (16:04 +0200)] 
patch 9.1.1280: trailing additional semicolon in get_matches_in_str()

Problem:  trailing additional semicolon in get_matches_in_str()
          (Hirohito Higashi)
Solution: remove it (Satoru Kitaguchi)

closes: #17066

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Satoru Kitaguchi <rule.the.fate.myfirststory@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1279: Vim9: null_object and null_class are no reserved names v9.1.1279
Yegappan Lakshmanan [Sat, 5 Apr 2025 14:00:22 +0000 (16:00 +0200)] 
patch 9.1.1279: Vim9: null_object and null_class are no reserved names

Problem:  Vim9: null_object and null_class are no reserved names
Solution: Add null_object and null_class as reserved names.
          (Yegappan Lakshmanan)

closes: #17054

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1278: Vim9: too long functions in vim9type.c v9.1.1278
Yegappan Lakshmanan [Sat, 5 Apr 2025 13:57:12 +0000 (15:57 +0200)] 
patch 9.1.1278: Vim9: too long functions in vim9type.c

Problem:  Vim9: too long functions in vim9type.c
Solution: refactor into separate functions
          (Yegappan Lakshmanan)

closes: #17056

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(vim): Update base-syntax, match full :redir command
Doug Kearns [Sat, 5 Apr 2025 13:55:36 +0000 (15:55 +0200)] 
runtime(vim): Update base-syntax, match full :redir command

closes: #17057

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1277: tests: trailing comment char in test_popupwin v9.1.1277
Doug Kearns [Sat, 5 Apr 2025 13:51:26 +0000 (15:51 +0200)] 
patch 9.1.1277: tests: trailing comment char in test_popupwin

Problem:  tests: trailing comment char in test_popupwin
Solution: remove crufty tail comment (Doug Kearns)

Remove a crufty tail comment from Test_popup_with_border_and_padding().
The line used to be in a string list and the closing quote and comma
persist.

closes: #17058

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1276: inline word diff treats multibyte chars as word char v9.1.1276
Yee Cheng Chin [Fri, 4 Apr 2025 17:16:21 +0000 (19:16 +0200)] 
patch 9.1.1276: inline word diff treats multibyte chars as word char

Problem:  inline word diff treats multibyte chars as word char
          (after 9.1.1243)
Solution: treat all non-alphanumeric characters as non-word characters
          (Yee Cheng Chin)

Previously inline word diff simply used Vim's definition of keyword to
determine what is a word, which leads to multi-byte character classes
such as emojis and CJK (Chinese/Japanese/Korean) characters all
classifying as word characters, leading to entire sentences being
grouped as a single word which does not provide meaningful information
in a diff highlight.

Fix this by treating all non-alphanumeric characters (with class number
above 2) as non-word characters, as there is usually no benefit in using
word diff on them. These include CJK characters, emojis, and also
subscript/superscript numbers. Meanwhile, multi-byte characters like
Cyrillic and Greek letters will still continue to considered as words.

Note that this is slightly inconsistent with how words are defined
elsewhere, as Vim usually considers any character with class >=2 to be
a "word".

related: #16881 (diff inline highlight)
closes: #17050

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): update WinScrolled documentation
Christian Brabandt [Fri, 4 Apr 2025 17:11:13 +0000 (19:11 +0200)] 
runtime(doc): update WinScrolled documentation

closes: #17036

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(vim): Update base-syntax, improve :set backslash handling
Doug Kearns [Thu, 3 Apr 2025 19:39:24 +0000 (21:39 +0200)] 
runtime(vim): Update base-syntax, improve :set backslash handling

Improve backslash handling in :set option values. There is no special
handling for options supporting Windows path separators yet.

See :help option-backslash.

Remove the vimSetString syntax group. Option string values cannot be
specified with a quoted string, this is a command terminating tail
comment.

fixes: #16913
closes: #17034

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1275: MS-Windows: Not possible to pass additional flags to Make_mvc v9.1.1275
Yegappan Lakshmanan [Thu, 3 Apr 2025 19:35:00 +0000 (21:35 +0200)] 
patch 9.1.1275: MS-Windows: Not possible to pass additional flags to Make_mvc

Problem:  MS-Windows: Not possible to pass additional flags to Make_mvc
Solution: Introduce $CI_FLAGS and use it to pass additional flags for
          the Github CI in order to treat size conversion warnings
          (C4267) as errors (Yegappan Lakshmanan)

closes: #17028

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1274: Vim9: no support for object<type> as variable type v9.1.1274
Yegappan Lakshmanan [Thu, 3 Apr 2025 19:26:34 +0000 (21:26 +0200)] 
patch 9.1.1274: Vim9: no support for object<type> as variable type

Problem:  Vim9: no support for object<type> as variable type
Solution: add support for object<type> (Yegappan Lakshmanan)

closes: #17041

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1273: Coverity warns about using uninitialized value v9.1.1273
zeertzjq [Thu, 3 Apr 2025 19:21:15 +0000 (21:21 +0200)] 
patch 9.1.1273: Coverity warns about using uninitialized value

Problem:  Coverity warns about using uninitialized value
          (after 9.1.1270).
Solution: Put an empty string in "buf" when allocation fails (zeertzjq).

closes: #17040

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1272: completion: in keyword completion Ctrl_P cannot go back after Ctrl_N v9.1.1272
glepnir [Thu, 3 Apr 2025 19:17:06 +0000 (21:17 +0200)] 
patch 9.1.1272: completion: in keyword completion Ctrl_P cannot go back after Ctrl_N

Problem:  completion: in keyword completion Ctrl_P cannot go back after
          Ctrl_N
Solution: in find_compl_when_fuzzy() always return first match of array, after Ctrl_P
          use compl_shown_match->cp_next instead of compl_first_match.
          (glepnir)

closes: #17043

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(sh): Update syntax file, command substitution opening paren at EOL
Doug Kearns [Thu, 3 Apr 2025 19:13:39 +0000 (21:13 +0200)] 
runtime(sh): Update syntax file, command substitution opening paren at EOL

Allow the opening parenthesis of a command substitution to appear at
EOL.

This fixes the issue raised in
https://github.com/vim/vim/issues/17026#issuecomment-2774112284.

closes: #17044

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1271: filetype: Power Query files are not recognized v9.1.1271
Anarion Dunedain [Thu, 3 Apr 2025 19:08:25 +0000 (21:08 +0200)] 
patch 9.1.1271: filetype: Power Query files are not recognized

Problem:  filetype: Power Query files are not recognized
Solution: detect '*.pq' as pq filetype, include pq syntax and filetype
          plugin (Anarion Dunedain)

Microsoft Power Query provides a powerful data import experience that
encompasses many features. Power Query works with desktop Analysis
Services, Excel, and Power BI workbooks, in addition to many online
services, such as Fabric, Power BI service, Power Apps, Microsoft 365
Customer Insights, and more. A core capability of Power Query is to
filter and combine, that is, to mash-up data from one or more of a rich
collection of supported data sources. Any such data mashup is expressed
using the Power Query M formula language. The M language is a
functional, case sensitive language similar to F#.

Reference:
- Power Query M formula language overview:
  https://learn.microsoft.com/en-us/powerquery-m/

closes: #17045

Signed-off-by: Anarion Dunedain <anarion80@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agotranslation(ru): fix and updated messages translation
RestorerZ [Thu, 3 Apr 2025 19:04:57 +0000 (21:04 +0200)] 
translation(ru): fix and updated messages translation

closes: #17046

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): clarify the use of change marks when writing a buffer
Christian Brabandt [Thu, 3 Apr 2025 10:33:02 +0000 (12:33 +0200)] 
runtime(doc): clarify the use of change marks when writing a buffer

related: #17008

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(zip): add *.whl to the list of zip extensions
Christian Brabandt [Wed, 2 Apr 2025 18:42:58 +0000 (20:42 +0200)] 
runtime(zip): add *.whl to the list of zip extensions

This commits adds the extension *.whl to the list of zip extensions.
Wheel (WHL) files are binary distribution files for python packages.

Reference:
https://packaging.python.org/en/latest/specifications/binary-distribution-format/

fixes: #17038

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1270: missing out-of-memory checks in buffer.c v9.1.1270
John Marriott [Wed, 2 Apr 2025 18:32:35 +0000 (20:32 +0200)] 
patch 9.1.1270: missing out-of-memory checks in buffer.c

Problem:  missing out-of-memory checks in buffer.c
Solution: handle out-of-memory situations during allocation
          (John Marriott)

closes: #17031

Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): update pi_zip.txt with current list of zip file extensions
Christian Brabandt [Wed, 2 Apr 2025 18:26:38 +0000 (20:26 +0200)] 
runtime(doc): update pi_zip.txt with current list of zip file extensions

closes: #17037

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1269: completion: compl_shown_match is updated when starting keyword completion v9.1.1269
glepnir [Wed, 2 Apr 2025 18:18:25 +0000 (20:18 +0200)] 
patch 9.1.1269: completion: compl_shown_match is updated when starting keyword completion

Problem:  compl_shown_match is updated when starting keyword completion
          and does not include fuzzy matching.
Solution: Do not update compl_shown_match when starting keyword
          completion, since it is the one already selected by the
          keyword completion direction. (glepnir)

closes: #17033

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1268: filetype: dax files are not recognized v9.1.1268
Anarion Dunedain [Wed, 2 Apr 2025 17:44:58 +0000 (19:44 +0200)] 
patch 9.1.1268: filetype: dax files are not recognized

Problem:  filetype: dax files are not recognized
Solution: detect "*.dax" as dax filetype, include dax filetype and
          syntax plugin (Anarion Dunedain)

Data Analysis Expressions (DAX) is a formula expression language used in
Analysis Services, Power BI, and Power Pivot in Excel. DAX formulas
include functions, operators, and values to perform advanced
calculations and queries on data in related tables and columns in
tabular data models.

DAX language overview:
- https://learn.microsoft.com/en-us/dax/dax-overview

closes: #17035

Signed-off-by: Anarion Dunedain <anarion80@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(openPlugin): fix E480 when opening URLs with wildcards on Windows
Christian Brabandt [Wed, 2 Apr 2025 17:32:03 +0000 (19:32 +0200)] 
runtime(openPlugin): fix E480 when opening URLs with wildcards on Windows

This might be a bug in Windows Vim, as when using the following command
it throws E480:
```
:com! -complete=file -nargs=1 :Echo echo <q-args>
:Echo ?
E480: No match ?
```

Work-around this by using `-nargs=*` to allow more arguments, even
though this is not completely correct.

fixes: #17029

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1267: Vim9: no support for type list/dict<object<any>> v9.1.1267
Yegappan Lakshmanan [Tue, 1 Apr 2025 18:43:36 +0000 (20:43 +0200)] 
patch 9.1.1267: Vim9: no support for type list/dict<object<any>>

Problem:  Vim9: no support for type list/dict<object<any>>
Solution: add proper support for t_object_any
          (Yegappan Lakshmanan)

closes: #17025

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1266: MS-Windows: type conversion warnings v9.1.1266
Yegappan Lakshmanan [Tue, 1 Apr 2025 18:38:37 +0000 (20:38 +0200)] 
patch 9.1.1266: MS-Windows: type conversion warnings

Problem:  MS-Windows: type conversion warnings
Solution: cast the variables (Yegappan Lakshmanan)

closes: #17027

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agotranslation(ru): Updated messages translation
RestorerZ [Tue, 1 Apr 2025 18:36:27 +0000 (20:36 +0200)] 
translation(ru): Updated messages translation

closes: #17030

Signed-off-by: RestorerZ <restorer@mail2k.ru>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1265: tests: no tests for typing normal char during completion v9.1.1265
Christian Brabandt [Mon, 31 Mar 2025 18:57:13 +0000 (20:57 +0200)] 
patch 9.1.1265: tests: no tests for typing normal char during completion

Problem:  tests: no tests for typing normal char during completion
Solution: add a test verifying the default behaviour (see :h
          popupmenu-completion)

related: #17019

Co-authored-by: Girish Palya <girishji@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(rust): set formatprg to rustfmt
Konfekt [Mon, 31 Mar 2025 18:45:26 +0000 (20:45 +0200)] 
runtime(rust): set formatprg to rustfmt

closes: #16967

Signed-off-by: Konfekt <Konfekt@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1264: Vim9: error when comparing objects v9.1.1264
Yegappan Lakshmanan [Mon, 31 Mar 2025 18:35:44 +0000 (20:35 +0200)] 
patch 9.1.1264: Vim9: error when comparing objects

Problem:  Vim9: error when comparing objects
          (lifepillar)
Solution: When comparing object types, compare their classes
          (Yegappan Lakshmanan)

fixes: #17014
closes: #17018

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): update last change date for diff.txt
Hirohito Higashi [Sun, 30 Mar 2025 13:39:41 +0000 (15:39 +0200)] 
runtime(doc): update last change date for diff.txt

related: #16997

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): Update the tuple help text
Yegappan Lakshmanan [Sun, 30 Mar 2025 13:37:24 +0000 (15:37 +0200)] 
runtime(doc): Update the tuple help text

closes: #17009

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1263: string length wrong in get_last_inserted_save() v9.1.1263
Christ van Willegen [Sun, 30 Mar 2025 13:26:01 +0000 (15:26 +0200)] 
patch 9.1.1263: string length wrong in get_last_inserted_save()

Problem:  string length wrong in get_last_inserted_save()
          (after v9.1.1222)
Solution: when removing trailing ESC, also decrease the string length
          (Christ van Willegen)

closes: #16961

Signed-off-by: Christ van Willegen <cvwillegen@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1262: heap-buffer-overflow with narrow 'pummaxwidth' value v9.1.1262
Hirohito Higashi [Sun, 30 Mar 2025 13:19:05 +0000 (15:19 +0200)] 
patch 9.1.1262: heap-buffer-overflow with narrow 'pummaxwidth' value

Problem:  heap-buffer-overflow occurs with narrow 'pummaxwidth' value
          (after v9.1.1250)
Solution: test that st_end points after st pointer (Hirohito Higashi)

closes: #17005

Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1261: No test for 'pummaxwidth' non-truncated items v9.1.1261
zeertzjq [Sun, 30 Mar 2025 13:07:35 +0000 (15:07 +0200)] 
patch 9.1.1261: No test for 'pummaxwidth' non-truncated items

Problem:  No test for 'pummaxwidth' non-truncated items (after v9.1.1250)
Solution: Add shorter items to Test_pum_maxwidth_multibyte() (zeertzjq).

closes: #17007

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(debversions): Add release name for Debian 15 - duke
James McCoy [Sun, 30 Mar 2025 13:05:46 +0000 (15:05 +0200)] 
runtime(debversions): Add release name for Debian 15 - duke

https://lists.debian.org/debian-devel-announce/2025/01/msg00004.html

closes: #17010

Signed-off-by: James McCoy <jamessan@debian.org>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1260: Hang when filtering buffer with NUL bytes v9.1.1260
zeertzjq [Sun, 30 Mar 2025 13:01:56 +0000 (15:01 +0200)] 
patch 9.1.1260: Hang when filtering buffer with NUL bytes

Problem:  Hang when filtering buffer with NUL bytes (after 9.1.1050).
Solution: Don't subtract "written" from "lplen" repeatedly (zeertzjq).

related: neovim/neovim#33173
closes: #17011

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(odin): add new keywords to syntax script
Maxim Kim [Sun, 30 Mar 2025 13:00:00 +0000 (15:00 +0200)] 
runtime(odin): add new keywords to syntax script

closes: #17012

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1259: some issues with comment package and tailing spaces v9.1.1259
Maxim Kim [Sun, 30 Mar 2025 12:55:26 +0000 (14:55 +0200)] 
patch 9.1.1259: some issues with comment package and tailing spaces

Problem:  some issues with comment package and tailing spaces
Solution: correctly capture trailing spaces with the ac/ic text object
          (Maxim Kim)

This commit fixes a few issues with the comment package:

1) both ac and ic incorrectly miss the last //

```
// hello trailing spaces
//
```

2) fix ac/ic with last empty comment line,
   vac should also select last line with #

```py
 # print("hello")
 # print("world")
 #
 #
$endofbuffer$
```

closes: #17013

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoci: Check and confirm Vim feature flags exist before testing
Yee Cheng Chin [Sun, 30 Mar 2025 12:48:29 +0000 (14:48 +0200)] 
ci: Check and confirm Vim feature flags exist before testing

Vim tests for features such as python3 relies on checking the feature
flag exists by doing `has('python3')`. However, if the feature itself is
broken and the flag returns 0, the relevant tests will simply silently
get ignored and CI will passed erroneously. As a preventive measure, as
basic checks to make sure certain feature flags are correct as a basic
smoke test.

Currently only checking two types of feature flags:

1. Features that depend on system packages being installed properly
   (e.g. sodium) and could be erroneously dropped if the CI environment
   changed or a bug exists in the configure script.
2. Scripting languages. When in dynamic mode, these feature flags (e.g.
   "ruby", "python3") will return 0 when the lib cannot be found or the
   code has an initialization bug. This happened in #16964 where CI
   still passed despite Python 3 being broken.

closes: #16998

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(java): Make changes for JDK 24 in syntax script
Aliaksei Budavei [Sat, 29 Mar 2025 08:16:30 +0000 (09:16 +0100)] 
runtime(java): Make changes for JDK 24 in syntax script

- "Demote" SecurityManager from the list of java.lang class
  types to javaLangDeprecated.
- Reintroduce supported syntax-preview-feature numbers 455
  and 476 as _new numbers_ 488 and 494, respectively.

References:
- https://openjdk.org/jeps/486 (Permanently Disable the Security Manager)
- https://openjdk.org/jeps/488 (Primitive Types in Patterns etc.)
- https://openjdk.org/jeps/494 (Module Import Declarations)

closes: #16977

Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1258: regexp: max \U and \%U value is limited by INT_MAX v9.1.1258
Christian Brabandt [Sat, 29 Mar 2025 08:08:58 +0000 (09:08 +0100)] 
patch 9.1.1258: regexp: max \U and \%U value is limited by INT_MAX

Problem:  regexp: max \U and \%U value is limited by INT_MAX but gives a
          confusing error message (related: v8.1.0985).
Solution: give a better error message when the value reaches INT_MAX

When searching Vim allows to get up to 8 hex characters using the /\V
and /\%V regex atoms.  However, when using "/\UFFFFFFFF" the code point is
already above what an integer variable can hold, which is 2,147,483,647.

Since patch v8.1.0985, Vim already limited the max codepoint to INT_MAX
(otherwise it caused a crash in the nfa regex engine), but instead of
error'ing out it silently fell back to parse the number as a backslash
value and not as a codepoint value and as such this "/[\UFFFFFFFF]" will
happily find a "\" or an literal "F".  And this "/[\d127-\UFFFFFFFF]"
will error out as "reverse range in character class).

Interestingly, the max Unicode codepoint value is U+10FFFF which still
fits into an ordinary integer value,  which means, that we don't even
need to parse 8 hex characters, but 6 should have been enough.

However, let's not limit Vim to search for only max 6 hex characters
(which would be a backward incompatible change), but instead allow all 8
characters and only if the codepoint reaches INT_MAX, give a more
precise error message (about what the max unicode codepoint value is).
This allows to search for "[\U7FFFFFFE]" (will likely return "E486
Pattern not found") and "[/\U7FFFFFF]" now errors "E1517: Value too
large, max Unicode codepoint is U+10FFFF".

While this change is straight forward on architectures where long is 8
bytes, this is not so simple on Windows or 32bit architectures where long
is 4 bytes (and therefore the test fails there).  To account for that,
let's make use of the vimlong_T number type and make a few corresponding
changes in the regex engine code and cast the value to the expected data
type. This however may not work correctly on systems that doesn't have
the long long datatype (e.g. OpenVMS) and probably the test will fail
there.

fixes: #16949
closes: #16994

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw() v9.1.1257
zeertzjq [Sat, 29 Mar 2025 08:05:52 +0000 (09:05 +0100)] 
patch 9.1.1257: Mixing vim_strsize() with mb_ptr2cells() in pum_redraw()

Problem:  Mixing vim_strsize() with mb_ptr2cells() in pum_redraw().
Solution: Change vim_strsize() to mb_string2cells() (zeertzjq).

Since vim_strsize() uses ptr2cells() for the cell width of each char, it
is strange to mix it with mb_ptr2cells(), which is used both just below
and in pum_screen_puts_with_attr(), and screen_puts_len() also uses
something similar.  Meanwhile mb_string2cells() uses mb_ptr2cells() for
the cell width of each char.

Note that the vim_strsize() and mb_string2cells() actually return the
same value here, as the transstr() above makes sure the string only
contains printable chars, and ptr2cells() and mb_ptr2cells() only return
different values for unprintable chars.

closes: #17003

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(lf): add lf r34 keywords to syntax script
Andis Spriņķis [Sat, 29 Mar 2025 08:03:54 +0000 (09:03 +0100)] 
runtime(lf): add lf r34 keywords to syntax script

closes: #17002

Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1256: if_python: duplicate tuple data entries v9.1.1256
Yegappan Lakshmanan [Sat, 29 Mar 2025 07:53:12 +0000 (08:53 +0100)] 
patch 9.1.1256: if_python: duplicate tuple data entries

Problem:  if_python: duplicate tuple data entries
          (after v9.1.1239)
Solution: clean up duplicates (Yegappan Lakshmanan)

closes: #17004

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(vim): Update base-syntax, match tuples
Doug Kearns [Fri, 28 Mar 2025 18:36:37 +0000 (19:36 +0100)] 
runtime(vim): Update base-syntax, match tuples

Tuples were introduced in commit 9cb865e.  See PR #16776.

fixes: #16965
closes: #16935

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1255: missing test condition for 'pummaxwidth' setting v9.1.1255
glepnir [Fri, 28 Mar 2025 18:21:59 +0000 (19:21 +0100)] 
patch 9.1.1255: missing test condition for 'pummaxwidth' setting

Problem:  missing test condition for 'pummaxwidth' setting, pummaxwidth
          not effective when width is 32 and height is 10
          (after v9.1.1250)
Solution: add missing comparison condition in pum_width()
          (glepnir)

closes: #16999

Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1254: need more tests for the comment plugin v9.1.1254
Maxim Kim [Fri, 28 Mar 2025 18:17:53 +0000 (19:17 +0100)] 
patch 9.1.1254: need more tests for the comment plugin

Problem:  need more tests for the comment plugin
Solution: add a tests for the [gb]:comment_first_col setting
          (Maxim Kim)

closes: #16995

Signed-off-by: Maxim Kim <habamax@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1253: abort when closing window with attached quickfix data v9.1.1253
Christian Brabandt [Fri, 28 Mar 2025 18:13:32 +0000 (19:13 +0100)] 
patch 9.1.1253: abort when closing window with attached quickfix data

Problem:  If win_close() is called with a window that has quickfix stack
          attached to it, the corresponding quickfix buffer will be
          closed and freed after the buffer was already closed. At that
          time curwin->w_buffer points to NULL, which the CHECK_CURBUF
          will catch and abort if ABORT_ON_ERROR is defined
Solution: in wipe_qf_buffer() temporarily point curwin->w_buffer back to
          curbuf, the window will be closed anyhow, so it shouldn't
          matter that curbuf->b_nwindows isn't incremented.

closes: #16993
closes: #16985

Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agoruntime(doc): non-portable sed regex in Makefile for pi_netrw.txt rule
Yee Cheng Chin [Fri, 28 Mar 2025 18:09:13 +0000 (19:09 +0100)] 
runtime(doc): non-portable sed regex in Makefile for pi_netrw.txt rule

Previously it was using '\0' in sed which is non-portable and does not
work in macOS. Fix this by using the '$' (end-of-line) regex atom (which
needs to be doubled in the Makefile) to append at the end instead. An
alternative would have been to use '&' which is the more portable
version of '\0'.

closes: #16996

Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1252: typos in code and docs related to 'diffopt' "inline:" v9.1.1252
zeertzjq [Fri, 28 Mar 2025 18:01:32 +0000 (19:01 +0100)] 
patch 9.1.1252: typos in code and docs related to 'diffopt' "inline:"

Problem:  Typos in code and docs related to 'diffopt' "inline:".
          (after v9.1.1243)
Solution: Fix typos and slightly improve the docs.
          (zeertzjq)

closes: #16997

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
4 months agopatch 9.1.1251: if_python: build error with tuples and dynamic python v9.1.1251
Yee Cheng Chin [Thu, 27 Mar 2025 19:13:33 +0000 (20:13 +0100)] 
patch 9.1.1251: if_python: build error with tuples and dynamic python

Problem:  if_python: build error with tuples and dynamic python
          (after v9.1.1239)
Solution: Fix build error and test failures (Yee Cheng Cin)

closes: #16992

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>