| Commit message (Collapse) | Author | Age |
... | |
|\
| |
| | |
fix(api): make nvim_get_hl return 'cterm' attrs properly
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Problem:
The signature of nvim_exec() is not extensible per ":help api-contract".
Solution:
Introduce nvim_exec2() and deprecate nvim_exec().
|
| |
| |
| | |
docs: Add info to the `Debug: TUI` docs about gdb/lldb usage
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Indent wrong after "export namespace" in C++.
Solution: Skip over "inline" and "export" in any order. (Virginia Senioria,
closes vim/vim#12134, closes vim/vim#12133)
https://github.com/vim/vim/commit/99e4ab2a1e577ddb29030c09c308b67e16fd51c4
Co-authored-by: Virginia Senioria <91khr@users.noreply.github.com>
|
|/
|
|
|
| |
Makes `extern` variables accessible through ffi on Windows.
Follow-up to https://github.com/neovim/neovim/pull/15999
|
|
|
|
|
| |
Problem: no way of getting all highlight group definitions in a namespace.
Solution: add `nvim_get_hl()`, deprecate `nvim_get_hl_by_name()` and `nvim_get_hl_by_id()`.
|
|
|
|
| |
- Fix a bug in the cache
- Set some buffer options on the dummy buffer
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
existing behavior of
:=
and
:[range]=
are unchanged. `|` is still allowed with this usage.
However,
:=p
and similar are changed in a way which could be construed as a breaking
change. Allowing |ex-flags| for := in the first place was a mistake as
any form of := DOES NOT MOVE THE CURSOR. So it would print one line number
and then print a completely different line contents after that.
|
|
|
|
| |
(#22737)
|
| |
|
|
|
|
|
| |
- Also adjust the expr-mapping behaviour so normal commands and text
changes are allowed in internal dummy buffers.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
Crash in findtags_add_match with FORTIFY_SOURCE=3.
Note: Fedora 38 packages are now built with -D_FORTIFY_SOURCE=3 by default.
1. Compile with overflow protection.
2. nvim --clean
3. :h <Space> <Tab>
4. `*** overflow detected ***: terminated`
The additional checks for the stated buffer size and the actual bounds
of the buffer do not match. See `___snprintf_chk` in the glibc sources:
https://sourceware.org/git/?p=glibc.git;a=blob;f=debug/snprintf_chk.c;h=59577de076c570b81307dd31c8c73e265808cf4c;hb=HEAD#l28
Solution:
Fix arithmetic error: The length of the previously written data is now
subtracted from the total size of the buffer, instead of added on top.
close #22718
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
On Windows, :make does not display the output of the program it runs.
The cause is the default 'shellpipe'. On Linux, nvim uses `tee` to redirect the
output to both stdout and the error file. In Windows, for both cmd.exe and
powershell, the output is only redirected to the error file.
Solution:
- On Windows, change the 'shellpipe' default to "2>&1| tee".
- Nvim includes `tee` in its Windows package.
- Document recommended defaults for powershell.
Fixes #12910
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
GCC also supports sanitizers. GCC doesn't support -fsanitize-blacklist
option though, so replace .asan-blacklist file with no_sanitize_address
function attributes instead.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
On Windows, pasting multiple lines on a terminal buffer cause all the
lines to appear on the same line, i.e., the line breaks are lost.
Cause:
Windows shells expect "\r\n" as line break but "terminal_paste" function
uses "\n".
Solution:
Use "\r\n" as line break for pasting in terminal buffer on Windows.
Note:
Although this issue was reported with powershell set as 'shell', it
occurs in cmd too.
Fixes #14621
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Clamp for height in floating windows enforced no more than
editor height - 1, disallowing full editor height floating windows when
using cmdheight=0
Solution: Clamp to full height, removing the -1. Tested to give the
intended results with cmdheight=0, 1, or more than 1. This also
inadvertently fixes a rendering error with cmdheight >1 where the
bottom border would be overlapped by the cmdline.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* fix(column): rebuild status column when sign column is invalidated
Problem: When implementing a custom sign column through
`'statuscolumn'`, the status column is not properly rebuilt
when the sign column width changes.
Solution: Force a rebuild of the status column when the sign column
width is invalidated.
* test(column): 'statuscolumn' has correct width when (un)placing signs
|
| |
| |
| | |
Using regexp doesn't work here because there are no wildcards.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
prop (#22706)
Problem: Cursor displayed in wrong position after removing text prop. (Ben
Jackson)
Solution: Invalidate the cursor position. (closes vim/vim#10898)
https://github.com/vim/vim/commit/326c5d36e7cb8526330565109c17b4a13ff790ae
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
|/ |
|
|
|
|
|
|
|
|
|
| |
extranges and a bunch of other improvements are coming for 0.10
This gets in some minor surrounding API changes to avoid rebase
conflicts until then.
- decorations will be able to be specific to windows
- adjust deletion API to fit with extranges
|
| |
|
|\
| |
| | |
refactor(screen): screen.c delenda est
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
drawscreen.c vs screen.c makes absolutely no sense.
The screen exists only to draw upon it, therefore helper functions
are distributed randomly between screen.c and the file that
does the redrawing. In addition screen.c does a lot of drawing on the
screen.
It made more sense for vim/vim as our grid.c is their screen.c
Not sure if we want to dump all the code for option chars into
optionstr.c, so keep these in a optionchar.c for now.
|
|\ \
| |/
|/|
| | |
fix(help): force tree reparse after local addition insertion
docs(help): consistent headers for local additions
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: *local-additions* in `help.txt` are inserted via `ml_append`,
which messes up treesitter highlighting of this file as the buffer
becomes desynced from the tree.
Solution: Add hack on top of hack by explicitly calling `mark_adjust`
and `changed_lines_buf` after each insertion.
|
|\ \
| | |
| | | |
fix(screen): redraw the ruler for a current floating window
|
| |/
| |
| |
| |
| |
| |
| | |
Semi-regression. The "ruler" behavior for a floating window
was never really specified but in practice followed the users
cursor movements in normal mode in a focused float, which seems
like a reasonable behavior to now specify.
|
|/
|
|
|
|
|
|
|
|
| |
The builtin cat was removed in 4bc9229ecbec514e9a87cfc4be88ea27a971e9a1
as it is not used during runtime but only for tests. However, it is a
very small and useful utility program that we need for a lot of our
tests, so there's no harm in bundling it, and it helps us avoid
complicating our build system by having two versions of neovim (neovim
for users and neovim for testing).
Also skip tests if "grep" or "sleep" isn't available.
|
|
|
|
|
| |
we cannot remove 'paste'. It is very common in plugins and configs.
'pastetoggle' can and should be removed though, it's a total waste of everyone's time because it generates bug reports and doesn't work well, and is useless because bracketed-paste works better.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
The function name `vim.pretty_print`:
1. is verbose, which partially defeats its purpose as sugar
2. does not draw from existing precedent or any sort of convention
(except external projects like penlight or python?), which reduces
discoverability, and degrades signaling about best practices.
Solution:
- Rename to `vim.print`.
- Change the behavior so that
1. strings are printed without quotes
2. each arg is printed on its own line
3. tables are indented with 2 instead of 4 spaces
- Example:
:lua ='a', 'b', 42, {a=3}
a
b
42
{
a = 3
}
Comparison of alternatives:
- `vim.print`:
- pro: consistent with Lua's `print()`
- pro: aligns with potential `nvim_print` API function which will
replace nvim_echo, nvim_notify, etc.
- con: behaves differently than Lua's `print()`, slightly misleading?
- `vim.echo`:
- pro: `:echo` has similar "pretty print" behavior.
- con: inconsistent with Lua idioms.
- `vim.p`:
- pro: very short, fits with `vim.o`, etc.
- con: not as discoverable as "echo"
- con: less opportunity for `local p = vim.p` because of potential shadowing.
|
|
|
|
|
|
|
|
|
|
| |
scroll_delta contains how much the top line of a window moved since the
last time win_viewport was emitted. It is expected to be used to
implement smooth scrolling. For this purpose it only counts "virtual" or
"displayed" so folds should count as one line. Because of this it
adds extra information that cannot be computed from the topline
parameter.
Fixes #19227
|
| |
|
|
|
| |
With a wide screen this actually previously caused an overflow.
|
| |
|
|
|
| |
Just setcursor_mayforce(true) is enough as Nvim uses msg_grid.
|
|
|
|
|
|
| |
Problem: Condition is always true.
Solution: Remove the condition. (closes vim/vim#12139)
https://github.com/vim/vim/commit/c481ad38f05c9f759ca7fd01a54c78acad794e85
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Autoload script sourced twice if sourced directly.
Solution: Do not source an autoload script again. (issue vim/vim#6644)
https://github.com/vim/vim/commit/daa2f36573db3e1df7eb1fdbc3a09a2815644048
Cherry-pick ret_sid changes from patch 8.2.0149.
Use do_in_runtimepath() as that's what source_runtime() calls in Nvim.
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
|
|
| |
With msg_grid there is no need to subtract msg_scrolled.
|
|\
| |
| | |
fix(diff): trigger on_bytes only once after diffget/diffput
|
| |
| |
| |
| |
| |
| |
| | |
Problem: The fix from b50ee4a8dc4306e4be78ac33fb74b21dc6be5538 may
adjust extmark twice, triggering on_bytes callback twice.
Solution: Don't let mark_adjust adjust extmark.
|
|/ |
|
|
|
| |
This the refactoring done in Vim patch 8.2.4050.
|