| Age | Commit message (Collapse) | Author | Files |
|
Problem:
- Not obvious which _meta/ are generated and which should be edited
manually.
- The require guard (`error('Cannot require a meta file')`) is not
consistently present in all meta files.
Solution:
- Update headers.
- Add require() guard to all meta files.
- Rename generated meta files with `.gen.lua`.
|
|
Problem:
- Lots of redundant text in options docs for "not allowed in
a modeline", even though we already have a flag that indicates that.
- `deny_in_modelines` is an old vestigial flag only used by 'encoding'
(which never changes).
Solution:
- Generate docs based on the `secure` flag.
- Remove the `deny_in_modelines` flag (`kOptFlagNoML`).
|
|
Problem:
LSP CompletionItem.preselect is not supported.
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#completionClientCapabilities
Solution:
- Add "preselect" field to complete-items and "preselect" flag
to 'completeopt'.
- Set preselectSupport=true in LSP client capabilities.
|
|
|
|
Problem:
If `'keywordprg'` begins with `:`, `3K` turns the count into an Ex
range. Commands that don't support that then fail. Vim passes the count
as the first arg (see #19436, vim/vim#10745).
Solution:
Pass `[count]` as the first arg for `'keywordprg'`.
|
|
Close #38748
Close #38866
Co-authored-by: Mario Loriedo <mario.loriedo@gmail.com>
Co-authored-by: Anakin Childerhose <anakin@childerhose.ca>
|
|
(#38830)
fixes: vim/vim#19886
https://github.com/vim/vim/commit/794c3044794330d8d0eadf71635d3892c187794c
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
fix https://github.com/neovim/neovim/issues/38670
|
|
- Don't go over 78 columns.
- Change the first "and" to "or", as "or" is used below.
- Change "takes one" to "switches", as "one" may be mistaken as
referring to the command instead of the user.
- Use backticks in :h 'autowriteall' like in :h 'autowrite'.
closes: vim/vim#19859
https://github.com/vim/vim/commit/af58a9f5e9e0bf748700645d07c6262eb281d737
|
|
Problem: 'autowrite' not triggered for :term
Solution: Trigger autowrite for :term command
(rendcrx)
closes: vim/vim#19855
https://github.com/vim/vim/commit/466b5f531a9818d4fa834126d64e8b771e4a497f
Co-authored-by: rendcrx <974449413@qq.com>
|
|
Problem: tests: test_modeline.vim fails (after v9.2.0276)
Solution: Rewrite the tests to use the existing s:modeline_fails()
function, update documentation (zeertzjq).
https://github.com/vim/vim/commit/8c8772c6b321d4955c8f09926e3eda2b4cd83680
|
|
Problem:
Currently same progress stat get's displayed on statusline of all
windows. This is repeatitive and noisy.
Solultion:
Only display progress-status on the focused window
Problem:
Currently, when multiple progress are on going we show it as Progress:
{N} items {percent}% format. It can be simplified sinnce items doesn't
really add enough value for the valuable space it takes in statusline
Solution:
Change format to Progress: {percent}%({N})
|
|
|
|
Problem:
Default statusline doesn't show progress status.
Solution:
- Provide `vim.ui.progress_status()`.
- Include it in the default 'statusline'.
How it works:
Status text summarizes "running" progress messages.
- If none: returns empty string
- If one running item: "title: percent%"
- If multiple running items: "Progress: N items avg-percent%"
|
|
Problem:
Mouse popup menus (right-click context menus) do not respect the
'pumborder' option and could overflow screen boundaries when borders
were enabled near the edge.
Solution:
- Remove the mouse menu exclusion from border rendering.
- Add boundary check to shift menu left when border would exceed screen
width, ensuring complete visibility of menu content and borders.
|
|
|
|
vim-patch:9.2.0174: diff: inline word-diffs can be fragmented
Problem: When using 'diffopt=inline:word', lines were excessively
fragmented with punctuation creating separate highlight
blocks, making it harder to read the diffs.
Solution: Added 'diff_refine_inline_word_highlight()' to merge
adjacent diff blocks that are separated by small gaps of
non-word characters (up to 5 bytes by default) (HarshK97).
When using inline:word diff mode, adjacent changed words separated by
punctuation or whitespace are now merged into a single highlight block
if the gap between them contains fewer than 5 non-word characters.
This creates more readable diffs and closely matches GitHub's own diff
display.
closes: vim/vim#19098
https://github.com/vim/vim/commit/42c6686c78d39843f71dba989a8ea59bc6975132
|
|
Problem:
No way to disable progress messages in cmdline message area. If
a third-party plugin handles Progress events + messages, the user may
not want the "redundant" progress displayed in the cmdline message area.
Solution:
Support "progress:c" entry in 'messageopts' option.
|
|
|
|
Problem:
`K` in help files may fail in some noisy text. Example:
(`fun(config: vim.lsp.ClientConfig): boolean`)
^cursor
Solution:
- `:help!` (bang, no args) activates DWIM behavior: tries `<cWORD>`,
then trims punctuation until a valid tag is found.
- Set `keywordprg=:help!` by default.
- Does not affect `CTRL-]`, that is still fully "tags" based.
|
|
Problem: default stl treat vim.diagnostics.count() return as array
Solution: next() tell if a dict is empty
|
|
|
|
Problem:
In aec3d7915c55fc0b7dc73f6186cf0ae45d416d33 Vim changed prompt-buffers
to respect 'modified' so the termdebug plugin can "control closing the
window". But for most use-cases (REPL, shell, AI "chat", …),
prompt-buffers are in practice always "modified", and no way to "save"
them, so *implicitly* setting 'modified' is noisy and annoying.
Solution:
Don't implicitly set 'modified' when a prompt-buffer is updated.
Plugins/users can still explicitly set 'modified', which will then
trigger the "E37: No write since last change" warning.
|
|
gen_vimdoc.lua: In prepare for the upcoming release, comment-out the
"Experimental" warning for prerelease features.
|
|
Problem:
When a terminal process exits, "[Process Exited]" text is added
to the buffer contents.
Solution:
- Return `exitcode` field from `nvim_get_chan_info`.
- Show it in the default 'statusline'.
- Show exitcode as virtual text in the terminal buffer.
|
|
https://github.com/vim/vim/commit/73f41626df1f1764007f073088048ffea4f970c4
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
|
|
Problem: cannot display tabs for indentation
Solution: Add the "leadtab" value to the 'listchars' option to
distinguish between tabs used for indentation and tabs used
for alignment (HarshK97).
closes: vim/vim#19094
https://github.com/vim/vim/commit/8526d32647245b3b623986949e7807b4b353e624
Co-authored-by: HarshK97 <harshkapse1234@gmail.com>
|
|
Problem: Not possible to know when a session will be loaded.
Solution: Add the SessionLoadPre autocommand (Colin Kennedy).
fixes: vim/vim#19084
closes: vim/vim#19306
https://github.com/vim/vim/commit/1c0d468d72e0220d4cb25936043ac35439a981b5
Co-authored-by: Colin Kennedy <colinvfx@gmail.com>
|
|
Problem: after #33036, an error from evaluating 'statusline' clears it and
doesn't draw the statusline. (causing glitchy redraws)
Solution: use the default value instead. If 'stl' is somehow ever empty, still
call redraw_custom_statusline to at least draw an empty statusline.
Ideally our default 'stl' shouldn't itself error too! :-)
Also adjust some prior screen:expect()s to avoid immediate success warnings.
|
|
"longest/fuzzy" (#37996)
Problem: completion: thesaurus completion incorrect with
"longest/fuzzy" (Mao-Yining)
Solution: Disable fuzzy matching and longest-match insertion
specifically for thesaurus completion (Girish Palya).
fixes: vim/vim#19356
closes: vim/vim#19475
https://github.com/vim/vim/commit/26a3f486cc708b285b20e92c206f1615d20b23b6
Co-authored-by: Girish Palya <girishji@gmail.com>
|
|
Problem:
Some UI clients break if space follows the comma in 'guifont' items.
Also the new 'guifont' default may cause problems if none of the fonts are found.
Solution:
Remove trailing whitespace.
Add a "monospace" fallback which `fontconfig` can resolve on *nix systems.
|
|
Problem:
Font rendering and kerning are subpar in GUIs.
Solution:
Set default 'guifont' based on common CSS fonts per:
https://github.com/system-fonts/modern-font-stacks#monospace-code
|
|
**Problem:** No easy way to stack highlight groups #35806.
**Solution:** Add a way to specify a new statusline chunk with a
highlight group that inherits from previous highlight attributes.
Also applies to tabline, etc.
|
|
In particular, also mention the difference between the regex atom \k and
what Vim considers for a word character.
closes: vim/vim#18688
https://github.com/vim/vim/commit/9e456e52df83f64075ce94c9a5adc43e221a6d3c
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
Problem:
Temporary files from /tmp/ and /private/ paths clutter :oldfiles list.
Additionally, the documented Windows default (rA:,rB:) was never applied
due to a missing platform condition.
Solution:
Drop platform-specific shada differences and default to excluding
/tmp/ and /private/ paths.
|
|
closes: vim/vim#19286
https://github.com/vim/vim/commit/dd9f7e6cbbba6d8e63cca3b4c537dc9b8cc1837a
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
|
Problem: Missing TabClosedPre autocommand
(zoumi)
Solution: Add the TabClosedPre autcommand (Jim Zhou).
fixes: vim/vim#16518
closes: vim/vim#16855
https://github.com/vim/vim/commit/5606ca5349982fe53cc6a2ec6345aa66f0613d40
Co-authored-by: Jim Zhou <jimzhouzzy@gmail.com>
|
|
Problem: No event is triggered before creating a window.
(Sergey Vlasov)
Solution: Add the WinNewPre event (Sergey Vlasov)
fixes: vim/vim#10635
closes: vim/vim#12761
https://github.com/vim/vim/commit/1f47db75fdc8c53c5c778b26ecfa0942ac801f22
Not sure if this should be triggered before creating a floating window,
as its use case is related to window layout.
Co-authored-by: Sergey Vlasov <sergey@vlasov.me>
|
|
Close #37289
Close #37348
Co-authored-by: Marc Jakobi <marc@jakobi.dev>
Co-authored-by: Anton Kesy <anton@kesy.de>
|
|
Problem: use-after-free with 'quickfixtextfunc' wiping buffer
(henices)
Solution: Evaluate 'quickfixtextfunc' with textlock enabled.
closes: vim/vim#19142
https://github.com/vim/vim/commit/300ea1133fba310ae8acd7fadc3ab3cc24e8402f
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
Problem: 'fsync' option cannot be set per buffer
Solution: Make 'fsync' option global-local
(glepnir)
closes: vim/vim#19019
https://github.com/vim/vim/commit/4d5b30372663e8ea356b25fe94334558c6ae283f
Co-authored-by: glepnir <glephunter@gmail.com>
|
|
https://github.com/vim/vim/commit/20064150169a94380abef37d3966c864531d1d92
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
|
|
|
|
|
|
Problem: jumpoptions=view has no effect when popping from the tagstack.
Solution: make it work.
|
|
Problem:
Current options for powershell and pwsh had mistakes and rationale
behind them was not clear.
Solution:
Update the suggested options by splitting up powershell and pwsh, as
well as ensuring that all options work and rationale is documented and
discussed.
|
|
Problem: diff: missing diff size limit for xdiff
Solution: Impose file size limit for internal diff (xdiff)
(Yee Cheng Chin).
Git imposes a hard cap on file size for content that it passes to xdiff
(added to Git in dcd1742e56e, defined in xdiff-interface.h), due to
integer overflow concerns in xdiff. Vim doesn't specify such a limit
right now, which means it's possible for a user to diff a large file
(1GB+) and trigger these overflow issues.
Add the same size limit (1GB minus 1MB) to Vim and simply throws an
error when Vim encounters files larger than said limit. For now, reuse
the same error message regarding internal diff failures. There is no
need to add the same limit for external diff as it's up to each tool to
error check their input to decide what is appropriate or not.
closes: vim/vim#18891
https://github.com/vim/vim/commit/4af6d9755cba0dd07e881172f2a6e0efe9986ddc
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
|
Problem:
- Can't subscribe to "mark" events.
- Executing events is risky because they can't be deferred.
Solution:
- Introduce `MarkSet` event.
- Introduce `aucmd_defer()`.
Helped-by: zeertzjq <zeertzjq@outlook.com>
Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
|
|
fix https://github.com/neovim/neovim.github.io/issues/419
Co-authored-by: Rob Pilling <robpilling@gmail.com>
|