| Commit message (Collapse) | Author | Age |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The nvim_win_xx_ns function family introduced in ba0370b1d718d473d0ef51c35d88b98ba220082b
needs more bake-time. Currently it's narrowly defined for windows, but
other scopes ("buffer") and features are likely in the future.
Solution:
- Rename the API with double-underscore to mark it as EXPERIMENTAL.
TODO/FUTURE:
- Rename and change the signature to support more than just "window"
scope, and for other flexibility.
- Open question: we could choose either:
- "store scopes on namespaces", or
- "store namespaces on scopes (w:/b:/…)"
|
|
|
|
|
|
|
|
| |
Problem:
nvim_win_remove_ns does not follow `help dev-naming` API naming conventions.
Solution:
Rename it.
|
|\
| |
| | |
fix(ui): data corruption in remote_ui_raw_line
|
| |
| |
| |
| |
| |
| | |
This particular repro is quite niche but there could be other cases,
whenever the the second last cell plus the "fill" cell togheter are too
complex
|
|/ |
|
|
|
|
|
|
|
|
|
|
| |
Problem: No scrolling happens with half-page scrolling with line
filling entire window when 'smoothscroll' is disabled.
(Mathias Rav, after v9.1.0285)
Solution: Adjust amount to move cursor by so that it is moved the same
number of lines as was scrolled, even when scrolling different
number of lines than requested with 'nosmoothscroll'.
https://github.com/vim/vim/commit/58448e09be497a8abb595ae309b6edfbc8e0e05a
|
|
|
|
|
|
|
|
|
|
|
| |
(#28701)
Problem: Divide by zero with getmousepos() and 'smoothscroll'.
Solution: Don't compute skip_lines when width1 is zero.
(zeertzjq)
closes: vim/vim#14747
https://github.com/vim/vim/commit/031a745608d615d56f9d79bb0f76e2a74b2eaf14
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: mdd files detected as zsh filetype
Solution: detect '*.mdd' files as sh filetype, add links
to reference documentation (Wu, Zhenyu)
closes: vim/vim#14741
https://github.com/vim/vim/commit/63f2a5b8adfb570792b9a7cbfff1c350913bbe3e
Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: zsh module files are not recognized
Solution: Detect '*.mdh' and '*.epro' as C filetype, '*.mdd' as zsh
filetype, determine zsh-modules '*.pro' from from it's content
(Wu, Zhenyu)
closes: vim/vim#14737
https://github.com/vim/vim/commit/887a38cee78c472fe406da60751fbba4a6ec19dd
Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
|\
| |
| | |
fix(tui): initialize clear attrs with current terminal background
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Invalidated regions that are flushed during startup are
cleared with unitialized "clear_attrs", which is perceived as
flickering.
Solution: Initialize "clear_attrs" with current terminal background color.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
The file watcher backends for Linux have too many limitations and
doesn't work reliably.
Solution:
disable didChangeWatchedFiles on Linux
Ref: #27807, #28058, #23291, #26520
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: jj files are not recognized
Solution: recognize '*.jjdescription' files as jj filetype
(Gregory Anders)
See: https://github.com/martinvonz/jj
closes: vim/vim#14733
https://github.com/vim/vim/commit/6a4ea471d28107c4078e106ace1bdc0c54bf946b
|
|/
|
|
|
|
|
|
|
|
| |
list (#28674)
Problem: Wrong display with 'smoothscroll' when changing quickfix list.
Solution: Reset w_skipcol when replacing quickfix list (zeertzjq).
closes: vim/vim#14730
https://github.com/vim/vim/commit/c7a8eb5ff2ddd919e6f39faec93d81c52874695a
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
While LuaCATS's generics system are still considered WIP by luals, they
currently support type captured generics.
See "Capture with Backtick" example:
https://luals.github.io/wiki/annotations/#generic
Solution:
Add support for it in the LuaCATS grammar
|
|
|
| |
Note: Upstream doesn't have this. It's an Nvim addition.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reverts e0d92b9cc20b58179599f53dfa74ca821935a539 #28502
Problem:
`vim.ui.open()` has a `pcall()` like signature, under the assumption
that this is the Lua idiom for returning result-or-error. However, the
`result|nil, errmsg|nil` pattern:
- has precedent in:
- `io.open`
- `vim.uv` (`:help luv-error-handling`)
- has these advantages:
- Can be used with `assert()`:
```
local result, err = assert(foobar())
```
- Allows LuaLS to infer the type of `result`:
```
local result, err = foobar()
if err then
...
elseif result then
...
end
```
Solution:
- Revert to the `result|nil, errmsg|nil` pattern.
- Document the pattern in our guidelines.
|
|
|
|
|
|
| |
This avoids redraw when adding/removing an empty namespace for a window.
This also avoids marktree traversal when clearing a namespace that has
already been cleared, which is added as a benchmark.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Experimental and subject to future changes.
Add a way to redraw certain elements that are not redrawn while Nvim is waiting
for input, or currently have no API to do so. This API covers all that can be
done with the :redraw* commands, in addition to the following new features:
- Immediately move the cursor to a (non-current) window.
- Target a specific window or buffer to mark for redraw.
- Mark a buffer range for redraw (replaces nvim__buf_redraw_range()).
- Redraw the 'statuscolumn'.
|
|/
|
| |
vim.diagnostic.enable and vim.diagnostic.is_enabled() use the same pattern.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Inlay hints `enable()` does not fully implement the `:help dev-lua` guidelines:
Interface conventions ~
- When accepting a buffer id, etc., 0 means "current buffer", nil means "all
buffers". Likewise for window id, tabpage id, etc.
- Examples: |vim.lsp.codelens.clear()| |vim.diagnostic.enable()|
Solution:
Implement globally enabling inlay hints.
* refactor(lsp): do not rely on `enable` to create autocmds
* refactor(lsp): make `bufstates` a defaulttable
* refactor(lsp): make `bufstate` inherit values from `globalstate`
* feat(lsp): `vim.lsp.inlay_hints` now take effect on all buffers by default
* test(lsp): add basic tests for enable inlay hints for all buffers
* test(lsp): add test cases cover more than one buffer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: inko files are not recognized
Solution: Detect '*.inko' as ink filetype
(Yorick Peterse)
See:
- https://github.com/inko-lang/inko.vim
- https://inko-lang.org/
closes: vim/vim#14699
https://github.com/vim/vim/commit/a01968448a0bdf04d9e4a822d32732a304849238
Co-authored-by: Yorick Peterse <git@yorickpeterse.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: templ files are not recognized
Solution: Detect '*.templ' files as filetype templ
(Tristan Knight)
See:
- https://github.com/a-h/templ
- https://templ.guide/
closes: vim/vim#14697
https://github.com/vim/vim/commit/54e79157c536c631b2f9b3dfefec30b9b966ed97
Co-authored-by: tris203 <admin@snappeh.com>
|
|
|
|
|
|
|
|
|
| |
Problem: cursor() and getregion() don't handle v:maxcol well.
Solution: Add special handling for v:maxcol like setpos() does.
(zeertzjq)
closes: vim/vim#14698
https://github.com/vim/vim/commit/2ffdae79487cb7e323383eda9ae96c2e9d1625bd
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: stylus files not recognized
Solution: Detect '*.styl' and '*.stylus' as stylus filetype,
include indent, filetype and syntax plugin
(Philip H)
closes: vim/vim#14656
https://github.com/vim/vim/commit/2d919d2744a99c9bb9e79984e85b8e8f5ec14c07
Co-authored-by: Philip H <47042125+pheiduck@users.noreply.github.com>
|
|
|
|
|
|
|
|
| |
Problem: Calling :redraw from vim.ui_attach() callback results in
recursive cmdline/message events.
Solution: Avoid recursiveness where possible and replace global "call_buf"
with separate, temporary buffers for each event so that when a Lua
callback for one event fires another event, that does not result
in invalid memory access.
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#27131)" (#28585)
This reverts commit 15e77a56b711102fdc123e15b3f37d49bc0b1df1.
Subpriorities were added in https://github.com/neovim/neovim/pull/27131
as a mechanism for enforcing query order when using iter_matches in the
Tree-sitter highlighter. However, iter_matches proved to have too many
complications to use in the highlighter so we eventually reverted back
to using iter_captures (https://github.com/neovim/neovim/pull/27901).
Thus, subpriorities are no longer needed and can be removed.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: .out files recognized as tex files
Solution: Do not set an explicit filetype until it is clear what this
should be (shane.xb.qian)
closes: vim/vim#14670
https://github.com/vim/vim/commit/e35478bc9d48189322432248105d3b24e0efb3d0
Co-authored-by: shane.xb.qian <shane.qian@foxmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Kbuild files are not recognized.
Solution: Detect Kbuild files as make files.
(Bruno Belanyi)
closes: vim/vim#14676
https://github.com/vim/vim/commit/5cbc9a69e529361e1725f422b8cd6157fe0adc33
Co-authored-by: Bruno BELANYI <bruno@belanyi.fr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Follow-up to #28490
Problem:
The new behaviour of goto_next/prev() of navigating to the next highest
severity doesn't work well when diagnostic providers have different
interpretations of severities. E.g. the user may be blocked from
navigating to a useful LSP warning, due to some linter error.
Solution:
The behaviour of next highest severity is now a hidden option
`_highest = true`. We can revisit how to integrate this behaviour
during the 0.11 cycle.
|
|
|
|
|
|
|
|
| |
Problem:
nvim_complete_set was added in 5ed55ff14c8b7e346811cb6228bf63fb5106bae9
but needs more bake time.
Solution:
Rename it, mark it as experimental.
|
|
|
| |
This prevents test failure when "rg" is executable.
|
|
|
|
|
|
|
|
|
|
| |
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: Famiu Haque <famiuhaque@proton.me>
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: Guilherme Soares <guilhermesoares1970@gmail.com>
Co-authored-by: Jannik Buhr <jannik.m.buhr@gmail.com>
Co-authored-by: thomaswuhoileong <72001875+thomaswuhoileong@users.noreply.github.com>
Co-authored-by: tom-anders <13141438+tom-anders@users.noreply.github.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: cbuffer and similar quickfix and locationlist commands don't
accept a range, even so it is documented they should
(ilan-schemoul, after 8.1.1241)
Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER
fixes: vim/vim#14638
closes: vim/vim#14657
https://github.com/vim/vim/commit/652c821366691a8bd5474766581090df0c742fa1
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of painfully messing with timing to determine if queries were
reparsed, we can simply keep a counter next to the call to ts_query_new
Also memoization had a hidden dependency on the garbage collection of
the the key, a hash value which never is kept around in memory. this was
done intentionally as the hash does not capture all relevant state for the
query (external included files) even if actual query objects still
would be reachable in memory. To make the test fully deterministic in
CI, we explicitly control GC.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* fix(treesitter): enforce lowercase language names
Problem: On case-insensitive file systems (e.g., macOS), `has_parser`
will return `true` for uppercase aliases, which will then try to inject
the uppercase language unsuccessfully.
Solution: Enforce and assume parser names to be lowercase when
resolving language names.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reverts parts of https://github.com/neovim/neovim/pull/27674
LSP snippets typically do include tabs or spaces to add extra
indentation and don't rely on the client using `autoindent`
functionality.
For example:
public static void main(String[] args) {\n\t${0}\n}
Notice the `\t` after `{\n`
Adding spaces or tabs independent of that breaks snippets for languages
like Haskell where you can have snippets like:
${1:name} :: ${2}\n${1:name} ${3}= ${0:undefined}
To generate:
name ::
name = undefined
|
|
|
|
|
| |
Problem: when line is blank link then there will got an invalid column number in math.min compare.
Solution: make sure the min column number is 0 not an illegal number.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Problem: Enabling ext_messages claims to set 'cmdheight' to zero, but
only does so for the current tabpage.
Solution: Set stored 'cmdheight' value to zero for all tabpages.
|
| |
| |
| |
| |
| |
| | |
Problem: Updating internalized UI capabilities is postponed until a
remote UI attaches.
Solution: Always update active UI widgets in ui_refresh().
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: tests: 1-second delay after Test_BufEnter_botline()
(after v9.1.0374)
Solution: Wipe the created buffers (zeertzjq).
closes: vim/vim#14647
https://github.com/vim/vim/commit/340643e9779a96710a27d0eeef24f2c08b8967c4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: When :edit an existing buffer, line('w$') may return a
wrong result.
Solution: Reset w_valid in curwin_init() (Jaehwang Jung)
`do_ecmd()` reinitializes the current window (`curwin_init()`) whose
`w_valid` field may have `VALID_BOTLINE` set. Resetting `w_botline`
without marking it as invalid makes subsequent `validate_botline()`
calls a no-op, thus resulting in wrong `line('w$')` value.
closes: vim/vim#14642
https://github.com/vim/vim/commit/eb80b8304efb6dfeaa8d01dd41fe281df4894240
Co-authored-by: Jaehwang Jung <tomtomjhj@gmail.com>
|