| Commit message (Collapse) | Author | Age |
... | |
|/ / /
| | |
| | | |
Also fix incorrect parameters in on_detach callback.
|
|\ \ \
| | | |
| | | | |
fix(test): fix "indeterminism" warnings in UI tests
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
runtime(doc): format jumplist examples more consistently (vim/vim#13137)
https://github.com/vim/vim/commit/a7aba6ca5033a85839d997d29d5ca88a1f2acf8f
|
| | | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
vim-patch:9.0.1919: Wrong curswant when clicking on empty line or with vsplits
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Wrong curswant when clicking on empty line or with vsplits.
Solution: Don't check for ScreenCols[] before the start of the window
and handle empty line properly.
closes: vim/vim#13132
https://github.com/vim/vim/commit/03cd697d635f1b0e7ffe21cf8244a8fb755f2ddb
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: not possible to use the jumplist like a stack
Solution: Add the 'jumpoptions' setting to make the jumplist
a stack.
Add an option for using jumplist like tag stack
related: vim/vim#7738
closes: vim/vim#13134
ported from NeoVim:
- https://neovim.io/doc/user/motion.html#jumplist-stack
- neovim/neovim@39094b3
- https://vi.stackexchange.com/questions/18344/how-to-change-jumplist-behavior
Based on the feedback in the previous PR, it looks like many people like
this option.
https://github.com/vim/vim/commit/87018255e3ad0f4dfa03e20318836d24af721caf
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Co-authored-by: butwerenotthereyet <58348703+butwerenotthereyet@users.noreply.github.com>
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
patch 9.0.1918: No filetype detection for Authzed filetypes
Problem: No filetype detection for Authzed filetypes
Solution: Detect the *.zed file extension as authzed filetype
closes: vim/vim#13129
https://github.com/vim/vim/commit/5790a54166793554d16f6a85d8824632860b8b37
Co-authored-by: Matt Polzin <mpolzin@workwithopal.com>
|
| | |
| | |
| | | |
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Memoizes a function, using a custom function to hash the arguments.
Private for now until:
- There are other places in the codebase that could benefit from this
(e.g. LSP), but might require other changes to accommodate.
- Invalidation of the cache needs to be controllable. Using weak tables
is an acceptable invalidation policy, but it shouldn't be the only
one.
- I don't think the story around `hash_fn` is completely thought out. We
may be able to have a good default hash_fn by hashing each argument,
so basically a better 'concat'.
|
|/ / |
|
| |
| |
| |
| | |
fix #24699
fix #25253
|
|\ \
| | |
| | | |
refactor(grid): unused grid->line_wraps delenda est
|
| | |
| | |
| | |
| | |
| | |
| | | |
This is not used as part of the logic to actually implement TUI line wrapping
In vim (especially gvim) it is used to emulate terminal-style text
selection. But in nvim we don't do that, and have no plans to reintroduce it.
|
|\ \ \
| | | |
| | | | |
fix: avoid ui_grid_cursor_goto when drawing window separators
|
| | | | |
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
fix(float): trigger winnew event when float window create
|
| | |/
| |/| |
|
|\ \ \
| | | |
| | | | |
fix(highlight): winhl receive wrong argument
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Problem: r_CTRL-C works differently in visual mode
Solution: Make r_CTRL-C behave consistent in visual mode
in terminal and Windows GUI
in visual mode, r CTRL-C behaves strange in Unix like environments. It
seems to end visual mode, but still is waiting for few more chars,
however it never seems to replace it by any characters and eventually
just returns back into normal mode.
In contrast in Windows GUI mode, r_CTRL-C replaces in the selected area
all characters by a literal CTRL-C.
Not sure why it behaves like this. It seems in the Windows GUI, got_int
is not set and therefore behaves as if any other normal character has
been pressed.
So remove the special casing of what happens when got_int is set and
make it always behave like in Windows GUI mode. Add a test to verify it
always behaves like replacing in the selected area each selected
character by a literal CTRL-C.
closes: vim/vim#13091
closes: vim/vim#13112
https://github.com/vim/vim/commit/476733f3d06876c7ac105e064108c973a57984d3
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| | | | |
|
| |_|/
|/| | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
refactor(grid): change schar_T representation to be more compact
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, a screen cell would occupy 28+4=32 bytes per cell
as we always made space for up to MAX_MCO+1 codepoints in a cell.
As an example, even a pretty modest 50*80 screen would consume
50*80*2*32 = 256000, i e a quarter megabyte
With the factor of two due to the TUI side buffer, and even more when
using msg_grid and/or ext_multigrid.
This instead stores a 4-byte union of either:
- a valid UTF-8 sequence up to 4 bytes
- an escape char which is invalid UTF-8 (0xFF) plus a 24-bit index to a
glyph cache
This avoids allocating space for huge composed glyphs _upfront_, while
still keeping rendering such glyphs reasonably fast (1 hash table lookup
+ one plain index lookup). If the same large glyphs are using repeatedly
on the screen, this is still a net reduction of memory/cache
consumption. The only case which really gets worse is if you blast
the screen full with crazy emojis and zalgo text and even this case
only leads to 4 extra bytes per char.
When only <= 4-byte glyphs are used, plus the 4-byte attribute code,
i e 8 bytes in total there is a factor of four reduction of memory use.
Memory which will be quite hot in cache as the screen buffer is scanned
over in win_line() buffer text drawing
A slight complication is that the representation depends on host byte
order. I've tested this manually by compling and running this
in qemu-s390x and it works fine. We might add a qemu based solution
to CI at some point.
|
|\ \ \ \
| | | | |
| | | | | |
fix(float): add fixed option
|
| | |/ /
| |/| | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
runtime(doc): add help tag describing object-selection
closes: vim/vim#13114
https://github.com/vim/vim/commit/346ac1429c5afb23bace295106aea1b305443435
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: undefined behaviour upper/lower function ptrs
Solution: Fix UBSAN error in regexp and simplify upper/lowercase
modifier code
The implementation of \u / \U / \l / \L modifiers in the substitute
command relies on remembering the state by setting function pointers on
func_all/func_one in the code. The code signature of `fptr_T` is
supposed to return void* (due to C function signatures not being able to
return itself due to type recursion), and the definition of the
functions (e.g. to_Upper) didn't follow this rule, and so the code tries
to cast functions of different signatures, resulting in undefined
behavior error under UBSAN in Clang 17. See vim/vim#12745.
We could just fix `do_Upper`/etc to just return void*, which would fix
the problem. However, these functions actually do not need to return
anything at all. It used to be the case that there was only one pointer
"func" to store the pointer, which is why the function needs to either
return itself or NULL to indicate whether it's a one time or ongoing
modification. However, c2c355df6f094cdb9e599fd395a78c14486ec697
(7.3.873) already made that obsolete by introducing `func_one` and
`func_all` to store one-time and ongoing operations separately, so these
functions don't actually need to return anything anymore because it's
implicit whether it's a one-time or ongoing operation. Simplify the code
to reflect that.
closes: vim/vim#13117
https://github.com/vim/vim/commit/d25021cf036c63d539f845a1ee05b03ea21d61ff
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(netrw): fix filetype detection for remote editing files
closes: vim/vim#12990
closes: vim/vim#12992
this partially reverses commit 71badf9 by commenting out the line that
intentionally sets the filetype to an empty string.
https://github.com/vim/vim/commit/d8b86c937a419db69239a8bb879f0050be0f8e1d
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
runtime(kotlin): Add Kotlin runtime files (vim/vim#13110)
Closes udalov/kotlin-vimvim/vim#39
https://github.com/vim/vim/commit/e30d8e4ce01dc1aca95d25be9fd27c09855fd4be
Co-authored-by: dkearns <dougkearns@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: No support for liquidsoap filetypes
Solution: Add liquidsoap filetype detection code
closes: vim/vim#13111
https://github.com/vim/vim/commit/6b5efcdd8e976d2ab2554b22c4220c5e88de4717
Co-authored-by: Romain Beauxis <toots@rastageeks.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
With incremental injection parsing, injected languages' parsers parse
only the relevant regions and stores the result in _trees with the index
of the corresponding region. Therefore, there can be holes in _trees.
Solution:
* Use generic table functions where appropriate.
* Fix type annotations and docs.
|
| | | |
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| | |
Problem: Cannot use an import in 'foldexpr'.
Solution: Set the script context to where 'foldexpr' was set. (closes vim/vim#9584)
Fix that the script context was not set for all buffers.
https://github.com/vim/vim/commit/e70dd11ef41f69bd5e94f630194e6b3c4f3f2102
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
| |
| | |
Co-authored-by: Lewis Russell <lewis6991@gmail.com>
|
| |
| |
| |
| | |
N-Jim does not sounds like "Ninja", and the joke doesn't really land.
|
| | |
|