| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
|
|
| |
Problem: Hint message to press "g<" for message that spills
'cmdheight' is too intrusive.
Solution: Remove the hint message. Document the meaning of the spill
indicator instead.
|
| |
|
|
|
| |
Problem: Carriage return should place the "write cursor" at the start of a line.
Solution: Construct the to be printed line by iterating over carriage returns.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Decision whether message is sent to "more" window is based on
the number of newlines present in a message, rather than the
actual text height.
With the "box" target, messages that come from a cmdline
entered command are not always routed to the more window.
Solution: Still write the message to the target buffer, and calculate
the actual text height. Postpone updating several state
variables until after the decision to re-route is made.
With the "box" target, only consider the text height of the
message if it is not a message from a cmdline entered command.
|
| |
|
|
|
|
|
| |
Problem: Extui shows a spill indicator to hint to the user to press "g<"
to show the output of the last command. The user may be
unaware of this mapping.
Solution: Route a hint message to the message "box" window.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
| |
feat(exrc): search exrc in parent directories
Problem:
`.nvim.lua` is only loaded from current directory, which is not flexible
when working from a subfolder of the project.
Solution:
Also search parent directories for configuration file.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
**Problem:** `LanguageTree:contains()` considers any range within the
start of the first tree and end of the last tree as "within" the
language tree. In the case of combined injections, this is problematic
because we only want to consider ranges within any of the combined trees
as "contained" (as opposed to any range within the entire range spanned
by all combined trees).
**Solution:** Use a more discriminative check in
`LanguageTree:contains()`.
|
| |
|
|
|
| |
* refactor(docs): remove `@private` annotations from local functions
* refactor(docs): remove unnecessary `@nodoc` annotations
|
| |
|
|
|
|
|
|
|
| |
'fillchars' (#33941)
closes: vim/vim#17287
https://github.com/vim/vim/commit/0553f2ff0d170db3f4649a7aaa74b635b1101eed
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
|
| |
|
|
|
|
| |
https://github.com/vim/vim/commit/9973b39a17095e6d77b25aafb73a317cebcf586e
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
| |
fixes: vim/vim#17273
credit: Github user @msoyka2024
https://github.com/vim/vim/commit/17ad852a62b6e2cf25207292ebca7a748e529d59
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
| |
Problem: Cannot enter "more" window while cmdwin is open since it is a
regular window and changing windows is disallowed.
Solution: Close cmdwin to enter the "more" window. Minor regression
w.r.t. the current message grid. Resolving that will require
somehow bypassing textlock for the "more" window.
|
| |
|
|
|
|
|
|
|
| |
Problem: Unable to discern windows used by the extui interface
to configure their local options.
'winblend' may be detrimental to legibility depending on the
colorscheme and 'background'.
Solution: Assign the "cmdline", "msgmore", "msgprompt" and "msgbox"
'filetype' to the respective windows.
Don't set 'winblend' for the message "box" window.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Extui does not route messages emitted as a result of a typed
command to the "more" window.
Command message leading shell messages is missing a kind.
Messages not routed to 'cmdheight' area after it was 0.
Solution: Route messages that were emitted in the same event loop as an
entered command to the "more" window. Also append multiple
messages in an already open more-window.
Assign it the `shell_cmd` kind.
Change message position when 'cmdheight' changes from 0.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Currently, 'smartcase' is respected when completing keywords
using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when
a user continues typing and the completion menu is filtered
using cached matches, 'smartcase' is not applied. This leads
to poor-quality or irrelevant completion suggestions, as shown
in the example below.
Solution: When filtering cached completion items after typing additional
characters, apply case-sensitive comparison if 'smartcase' is
enabled and the typed pattern includes uppercase characters.
This ensures consistent and expected completion behavior.
(Girish Palya)
closes: vim/vim#17271
https://github.com/vim/vim/commit/dc314053e121b0a995bdfbcdd2f03ce228e14eb3
Co-authored-by: Girish Palya <girishji@gmail.com>
|
| |\
| |
| | |
feat(diagnostic): add `on_jump` callback option
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: nil error possible if a loaded buffer hasn't been drawn in a window:
```vim
lua vim.lsp.document_color.is_enabled() -- Load module
badd foo
call bufload('foo')
colo default
```
Solution: Skip _buf_refresh branch also if bufstates[bufnr] is nil.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: The "box" window width is calculated on the last line when
applying "last" virt_text. There may be longer lines
part of the same message.
Solution: Don't decrease box width if the calculated width is smaller.
Minor unrelated changes.
Co-authored-by: Eike <eike.rackwitz@mail.de>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Problem: conceal_lines cache is invalidated in `on_buf`
which is too late for code calculating text height after a
buffer change but before a redraw (like `lsp/util.lua`).
Solution: Replace `on_buf` with `on_bytes` handler that invalidates
the cache and clears the marks.
|
| | |
| |
| |
| | |
Synced from https://github.com/luvit/luv/blob/master/meta.lua
|
| | |
| |
| | |
Closes #33862
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit will eliminate flicker while editing one open window. It
works by querying previously calculated trees for highlight marks, in
the case that we are still asynchronously parsing in `on_win`.
It will not fully solve the case of flicker when there are multiple open
windows, since the parser will drop previously parsed injection trees
whenever it receives a call to parse a different region of the buffer.
This will require a refactor of `languagetree.lua`.
|
| | |
| |
| |
| |
| |
| | |
Problem: Moving the "more" (or any extui)-window to a split with
`wincmd L` does not invalidate it as a tracked window.
Solution: Drop an extui window that is no longer floating.
|
| | |
| |
| |
| |
| |
| |
| | |
Problem:
vim.validate does not handle `message` param.
Solution:
Add the missing logic.
|
| | |
| |
| |
| |
| |
| |
| | |
Problem:
Stopping a language server and then calling vim.lsp.start() with the same name/root will return the old language server that's in the middle of shutting down. vim.lsp.start() won't return a new server until the old process has terminated.
Solution:
Introducing a client._is_stopping field that tracks the shutdown phase, preventing the client from being reused.
|
| | | |
|
| |/
|
|
|
| |
Problem: Active cmdline may be overwritten by a message.
Solution: Check if cmdline is active before writing message.
|
| | |
|
| |
|
|
|
|
|
| |
problem: Error notifications from LSP responses were difficult to read due to
inconsistent formatting and missing critical information like client name and error codes.
solution: Implemented a more structured error notification format using pipe separators to
clearly display client name, error code (when available), and error message.
|
| |
|
|
|
|
|
|
| |
Problem:
enable() routine detaches clients even if they were manually started
and not managed by vim.lsp.config.
Solution:
Skip clients that aren't managed by vim.lsp.config.
|
| |
|
|
|
| |
Problem: More-window is left visible after leaving it. Cursor may be
hidden behind it and it is hard to re-enter afterwards.
Solution: Close the more-window when another window is entered.
|
| |
|
|
|
|
| |
Problem: Spliced conceal_lines marks after changing the buffer text are
left valid, concealing lines that shouldn't be.
Solution: Set the `invalidate` extmark property.
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem:
When the buffer 'filetype' changes, invalid or non-applicable LSP
clients are not detached.
https://github.com/neovim/neovim/issues/33443
https://github.com/neovim/nvim-lspconfig/issues/3326
Solution:
In the enable() routine, check can_start() on _existing_ clients.
|
| | |
|
| |
|
|
| |
Problem: No search highlighting in extui "more" pager window.
Solution: Only use custom highlight namespace in cmdline window.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
`any[]` means nothing, and the return value is not the same as what's
documented in the comment (eg, Lua returns `{ "row", { { "leaf", 1000 },
{ "leaf", 1001 } } }`, not `{ "row", { "leaf", 1000, "leaf", 1001 } }`)
Solution:
Create two classes (vim.fn.winlayout.leaf and vim.fn.winlayout.branch)
and one alias that links the two together.
Also: Due to LuaLS limitations, there is an empty class,
vim.fn.winlayout.empty
Signed-Off-By: VoxelPrismatic <voxelprismatic@pm.me>
|
| |
|
|
|
|
|
|
|
| |
Problem:
No way to check if a LSP config is enabled without causing it to
resolve. E.g. `vim.lsp.config['…'] ~= nil` will resolve the config,
which could be an unwanted and somewhat expensive side-effect.
Solution:
Introduce `vim.lsp.is_enabled()`.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The check for concealing paths in TOCs in the qf syntax file fails
because the TOC tile has changed.
Solution:
Force the qf syntax file to be reloaded after the qf_toc variable
has been set, so that the it can apply the correct settings.
Using the explicit qf_toc key, already used in the syntax file, instead
of the title is less prone to breaking.
It was also already being set for man pages but it had no effect because
the syntax file had already been loaded when the variable was set.
Fixes #33733
|
| |
|
|
|
|
|
|
| |
**Problem:** For multiline diagnostics, the end column was improperly
calculated by checking the byte index of the character position on the
*start* line.
**Solution:** Calculate the byte index for end_col using the *end* line.
|
| |
|
|
|
|
|
| |
Problem: `:InspectTree` window does not follow precedent for focused
"info windows" (like `checkhealth`, `Man`, etc.).
Solution: Map `q` to `<C-w>c`.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Problem: The cmdline popupmenu is hidden behind extui windows.
'showmode' message is drawn over the cmdline.
Changing the 'cmdheight' to accommodate space for the text in
the cmdline may change the current cursor position.
Solution: Ensure kZIndexMessages < zindex < kZIndexCmdlinePopupMenu.
Clear the 'showmode' message when the cmdline level is negative.
Temporarily set 'splitkeep' = "screen" when changing the 'cmdheight'.
|
| |
|
|
|
|
|
| |
Problem: Using `<c-c>` does not follow precedent (from `checkhealth`
etc.) for closing "information windows".
Solution: Use `q` for close mapping.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: GNU Radio companion files are not recognized
Solution: detect *.grc files as xml or yaml filetype depending on the
first line (zeertzjq).
Ref:
- https://wiki.gnuradio.org/index.php/XML_GRC
- https://wiki.gnuradio.org/index.php/YAML_GRC
closes: vim/vim#17241
https://github.com/vim/vim/commit/af4a5d6e2ae57a44edab48c8b012d2afa743998f
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: GNU Radio config files are not recognized.
Solution: detect GNU Radio config files as confini filetype. Only
allow '#' as start of comment in confini syntax (zeertzjq).
Ref:
- https://wiki.gnuradio.org/index.php/Configuration_Files
closes: vim/vim#17242
https://github.com/vim/vim/commit/9c9200d1eafe50077222a38bfad6cba7156a6487
|
| |
|
|
|
|
| |
Problem: Not picking up configured option values when enabling _extui after startup.
Solution: Check option values when enabing _extui.
Fix https://github.com/neovim/neovim/issues/33767
|
| |
|
| |
closes #33761
|