| Commit message (Collapse) | Author | Age |
... | |
|/
|
|
|
|
|
|
|
|
| |
This commit implements a new TermRequest autocommand event and has Neovim
emit this event when children of terminal buffers emit an OSC or DCS sequence
libvterm does not handle.
The TermRequest autocommand event has additional data in the
v:termrequest variable.
Co-authored-by: Gregory Anders <greg@gpanders.com>
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
A bit big, but practically it was a lot simpler to change over all
fillchars and all listchars at once, to not need to maintain two
parallel implementations.
This is mostly an internal refactor, but it also removes an arbitrary
limitation: that 'fillchars' and 'listchars' values can only be
single-codepoint characters. Now any character which fits into a single
screen cell can be used.
|
|
|
| |
buf is a pointer argument, not a local char array, so sizeof(buf) is just the size of a pointer type on the platform. This is always an incorrect value, but on 32-bit platforms it actually has an impact, since sizeof(buf) is just 4 and causes the buffer to get truncated.
|
|
|
|
|
|
|
|
| |
Problem: `IncSearch` is currently linked to `Search` which makes it not
usable for its purpose of showing current match with 'incsearch' and
confirming matches after `:s///c`.
Solution: Link it to `CurSearch`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: incorrect use of W_WINROW in edit.c
Solution: compare against curwin->w_height instead
Remove incorrect use of W_WINROW
In structs.h it is mentioned that w_wrow is relative to w_winrow, so
using W_WINROW doesn't make sense when comparing with window height.
This change won't lead to any observable behavior change:
The condition intends to check if there are 'scrolloff' lines between
the current cursor when the bottom of the window. When W_WINROW(curwin)
is added to curwin->w_height - 1 - get_scrolloff_value(), the condition
is instead satisfied when the cursor is on some screen line below that
position. However,
- If 'scrolloff' is smaller than half the window height, this condition
can only be satisfied when W_WINROW(curwin) == 0. And if it is not
satisfied, update_topline() does the actual scrolling.
- If 'scrolloff' is larger than half the window height, update_topline()
will put the cursor at the center of the window soon afterwards
anyway, because set_topline() now unsets VALID_TOPLINE flag starting
from https://github.com/vim/vim-history/commit/7db7bb45b0f919ff0615d463ebd4fde881c69d1f.
To put it in another way, https://github.com/vim/vim-history/commit/7db7bb45b0f919ff0615d463ebd4fde881c69d1f
makes the update_topline() just below correct the mistakes made in this
block, so this incorrect use of W_WINROW() no longer affects observable
behavior.
closes: vim/vim#12331
https://github.com/vim/vim/commit/b1ed7ec9f7d1a0142d4f1c8c83bab9172bc92c7c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: regression with empty inner blocks introduced
(after v9.1.0007)
Solution: Set correct cursor position, Check for visual mode
being active (Maxim Kim)
relates: vim/vim#13514
closes: vim/vim#13819
https://github.com/vim/vim/commit/3779516988f14f2070d827514c79383334a0946b
Co-authored-by: Maxim Kim <habamax@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: can select empty inner text blocks
(laurentalacoque)
Solution: make selecting empty inner text blocks an error
textobjects: Make selecting inner empty blocks an error
fixes: vim/vim#13514
closes: vim/vim#13523
https://github.com/vim/vim/commit/ad4d7f446dc6754bde212234d46f4849b520b6e0
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
|
|
|
| |
These structs are only used in other source files as pointers and their
fields aren't accessed in other source files.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Keymap completion is not available
Solution: Add keymap completion (Doug Kearns)
Add keymap completion to the 'keymap' option, user commands and builtin
completion functions.
closes: vim/vim#13692
https://github.com/vim/vim/commit/81642d9d6ff5cd6a90a012b1b98632ce51eeb1a8
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
|
|
|
|
| |
Problem: The maximum 'statuscolumn' width and grow behavior is undocumented.
Solution: Define, use and document the maximum 'statuscolumn' width and grow behavior.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Many decoration providers (treesitter injection highlighting, semantic
token highlighting, inlay hint) rely on the correctness of the `botline`
argument of `on_win` callback. However, `botline` can be smaller than
the actual line number of the last displayed line if some lines are
folded. In such cases, some decorations will be missing in the lines not
covered by `botline`.
Solution:
Validate `botline` when invoking `on_win`.
NOTE:
It seems that the old code was deliberately avoiding this presumably due
to performance reasons. However, I haven't experienced noticeable lag
after this change, and I believe the cost of botline computation would
be much smaller than the cost of decoration providers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid `prevwin == curwin` when closing `curwin`
Problem: When closing the current window (or when moving it to a tabpage), the
previous window may refer to the new current window
(`winnr() == winnr('#')`) if that window is selected as the
new current window.
Solution: Set `prevwin = NULL` when switching away from an invalid `curwin` and
the target window was the `prevwin`.
(Sean Dewar)
related: vim/vim#4537
closes: vim/vim#13762
https://github.com/vim/vim/commit/bf44b69d1f91d9778ae1887128c63d35d9a3d19b
Co-authored-by: Sean Dewar <seandewar@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: a closing fold expression may unexpectedly start a new fold
when it should end a fold
(reported by Shota Nozaki)
Solution: if a fold hasn't started yet, do not immediately
start a new fold with level 1
(Shota Nozaki)
fixes: vim/vim#12768
closes: vim/vim#13748
https://github.com/vim/vim/commit/0689b870595c687a23e102913ce5037f65d03748
Co-authored-by: Shota Nozaki <emonkak@gmail.com>
|
|\
| |
| | |
fix/clangd (check size of array before applying qsort on it; set block pointer to null in case map is empty)
|
| | |
|
| | |
|
| |
| |
| |
| | |
A struct can be anonymous if only its typedef is used.
|
|/
|
|
|
|
|
|
|
|
|
|
| |
buf_ensure_loaded already checks `(buf->b_ml.ml_mfp != NULL)`. #25823
TODO:
- #10070 #13201 All buffer-related API functions except
`nvim_buf_is_loaded` (and `nvim_buf_is_valid`?) should always call
`buf_ensure_loaded`. Because the _common case_ is that plugins expect
the buffer to "just work"—and for the uncomon, performance-sensitive
case, the script can check `nvim_buf_is_loaded` to avoid implicitly
loading a buffer.
- Update documentation to clarify the above semantics.
|
| |
|
| |
|
| |
|
|
|
|
| |
based on extmark_splice doc
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adding a file to `OUTPUT` in `add_custom_command` marks that file as
`GENERATED` in cmake, and will thus be removed when running the `clean`
target. As cmake doesn't have a good way to mark that certain files
should not be removed, we instead "lie" to it by omitting the files we
want to keep from `OUTPUT`. This hack only works as long as there aren't
any other files that depend on the generated files we want to keep,
which currently seems to be the case. If this assumption changes in the
future, then we need to separate the parts that are generated and the
parts that are not as to prevent an infinite dependency chain.
|
| |
|
| |
|
|
|
|
| |
different encoding modes (thanks Ninji)
|
|
|
|
|
|
|
|
|
|
| |
- Use `#pragma once` for `cmake.config/config.h.in`
- Remove unused variable `CACHED_GENERATED_DIR`
- Reorganize and sort variables
- Introduce `STYLUA_DIRS` variable to ensure the `formatlua` and
`lintlua-stylua` operates on the same files.
- Adjust variable scope to avoid using hacky directory properties.
- Add more necessary runtime files as test dependencies
|
| |
|
|
|
|
| |
Problem: fill_foldcolumn() has an optional winlinevars_T argument.
Solution: Increment wlv->off at callsite.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Wrong display when 'breakindentopt' contains "sbr" and
'showbreak' and 'nobreakindent' are set.
Solution: Always reset wlv->need_showbreak regardless of the values of
'breakindent' and 'showbreak', as they aren't checked when
setting wlv->need_showbreak (zeertzjq)
closes: vim/vim#13785
https://github.com/vim/vim/commit/7e4f62a2575e8ce9ebb842d4246288138b11dff3
|
| |
|
| |
|
|
|
|
| |
Co-authored-by: Gregory Anders <greg@gpanders.com>
Co-authored-by: WillLillis <wlillis@umass.edu>
|
|
|
|
| |
Problem: getreg("*") / getreg("+") disagree with :registers.
Solution: Avoid falling back to unnamed register if provider fails.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: cursor wrong after { in single line buffer
(Edwin Chan)
Solution: do not place the cursor at the end for a single
line buffer when moving backwards
(Gary Johnson)
closes: vim/vim#13780
closes: vim/vim#13783
https://github.com/vim/vim/commit/9e6549d2fb282c45a2492ea95fe7ba54c2082c3e
Co-authored-by: Gary Johnson <garyjohn@spocom.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
fit (#26765)
Problem: Visual selection isn't drawn with 'breakindent' when the line
doesn't fit in the window (Jaehwang Jung)
Solution: Adjust wlv->fromcol also for 'breakindent' (zeertzjq)
closes: vim/vim#13767
closes: vim/vim#13768
https://github.com/vim/vim/commit/23627722d36b49e38ba6f8dc6bb3ebe19c98a83b
|
| |
|
| |
|
|
|
|
|
| |
The releases doesn't work on intel mac as libintl isn't available on the system
by default. This makes `:language` not work for the shipped macos releases,
though the reduction in build system complexity most likely outweighs that.
|
|
|
|
|
| |
Problem: Default number column has incorrect width after 'statuscolumn'
is unset due to an error, but was also truncated.
Solution: Reverse 'statuscolumn' error and truncate return branches.
|
|
|
|
|
|
| |
Problem: Unable to predict which byte-offset to place virtual text to
make it repeat visually in the wrapped part of a line.
Solution: Add a flag to nvim_buf_set_extmark() that causes virtual
text to repeat in wrapped lines.
|
|
|
|
|
|
| |
Deleting a cpo flag a day keeps the doctor away
We don't need two different ways to indent LISP code
|
|
|
| |
It's now only used for transchar_hex(), which only needs 11 bytes.
|