| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: inserting with a count is inefficient
Solution: Disable calculation of the cursor position and topline, if a
count has been used (Ken Takata)
Optimize insertion when using :normal 10000ix.
This patch optimizes the insertion with a large count (e.g. `:normal
10000ix`).
It seems that calculation of the cursor position for a long line is slow
and it takes O(n^2). Disable the calculation if not needed.
Before:
```
$ time ./vim --clean -c 'normal 10000ix' -cq!
real 0m1.879s
user 0m1.328s
sys 0m0.139s
$ time ./vim --clean -c 'normal 20000ix' -cq!
real 0m5.574s
user 0m5.421s
sys 0m0.093s
$ time ./vim --clean -c 'normal 40000ix' -cq!
real 0m23.588s
user 0m23.187s
sys 0m0.140s
```
After:
```
$ time ./vim --clean -c 'normal 10000ix' -cq!
real 0m0.187s
user 0m0.046s
sys 0m0.093s
$ time ./vim --clean -c 'normal 20000ix' -cq!
real 0m0.217s
user 0m0.046s
sys 0m0.108s
$ time ./vim --clean -c 'normal 40000ix' -cq!
real 0m0.278s
user 0m0.093s
sys 0m0.140s
$ time ./vim --clean -c 'normal 80000ix' -cq!
real 0m0.494s
user 0m0.311s
sys 0m0.140s
$ time ./vim --clean -c 'normal 160000ix' -cq!
real 0m1.302s
user 0m1.140s
sys 0m0.094s
```
closes: vim/vim#15588
https://github.com/vim/vim/commit/09b80d23cfae24fa13ef4f52b0ec90625839a6ab
Co-authored-by: Ken Takata <kentkt@csc.jp>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(#30204)
Problem: [security]: invalid cursor position may cause a crash
(after v9.1.0038)
Solution: Set cursor to the last character in a line, if it would
otherwise point to beyond the line; no tests added, as it
is unclear how to reproduce this.
Github Advisory:
https://github.com/vim/vim/security/advisories/GHSA-4ghr-c62x-cqfh
https://github.com/vim/vim/commit/396fd1ec2956307755392a1c61f55d5c1847f308
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Using powershell as the default windows shell as using cmd alters $PATH
in a way that makes building neovim fail (powershell prioritizes visual
studio tools which is arguably more correct).
This was tested with gnu make for windows, which can be installed with
e.g. scoop. It does not work with nmake and it is extremely unlikely we
want to add nmake support as the makefile is merely supposed to be
syntactic sugar for the most common case. For similar reasons, the only
supported generator is ninja.
|
| |\
| | |
| | | |
refactor(multibyte): replace generated unicode tables with utf8proc
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit intentionally aims at preserving existing behavior as much
as possible while replacing our build step to convert unicode data
files into binary tables, which corresponding lookups in utf8proc.
Actual improvements in behavior will be a followup.
The only change in behavior is that 'emoji' option will turn some
more codepoints into double with. Nvim used the "Emoji" and
"Emoji_Presentation" properties to define emojis, while utf8proc
only exposes the Extended_Pictographic property from the emoji table.
This is a superset of the previous emoji properties. As only
codepoints above 0x1f000 are affected by the 'emoji' option, this means
that the following chars are now treated as double-width, instead of
single-width like in previous nvim versions:
๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค
๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ
๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐
๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ
๐ฎ ๐ฏ ๐ฐ ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐ ๐ ๐ ๐ฏ ๐
ฌ ๐
ญ ๐
ฎ ๐
ฏ ๐ญ ๐ข ๐ฃ ๐ ๐ ๐ ๐ ๐ ๐ฑ ๐ฒ ๐ถ ๐พ ๐ ๐ ๐ ๐ ๐จ ๐ฉ ๐ช ๐ซ
๐ฌ ๐ญ ๐ฎ ๐ฑ ๐ฒ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก
๐ข ๐ฃ ๐ฆ ๐ง ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ฐ ๐ณ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ข ๐ค ๐ฅ ๐ฆ ๐ง ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฐ ๐ฑ ๐ฒ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐น ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ฆ ๐ง ๐จ ๐ช ๐ฑ ๐ฒ ๐ด ๐ต ๐ถ ๐ป ๐ผ ๐ฝ ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ขฐ ๐ขฑ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ
๐จ ๐จ ๐จ ๐จ ๐จ ๐จ
๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จ ๐จก ๐จข ๐จฃ ๐จค ๐จฅ ๐จฆ ๐จง ๐จจ ๐จฉ ๐จช ๐จซ ๐จฌ ๐จญ ๐จฎ ๐จฏ
๐จฐ ๐จฑ ๐จฒ ๐จณ ๐จด ๐จต ๐จถ ๐จท ๐จธ ๐จน ๐จบ ๐จป ๐จผ ๐จฝ ๐จพ ๐จฟ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ
๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ ๐ฉ
๐ฉ ๐ฉก ๐ฉข ๐ฉฃ ๐ฉค ๐ฉฅ ๐ฉฆ ๐ฉง ๐ฉจ ๐ฉฉ ๐ฉช ๐ฉซ ๐ฉฌ ๐ฉญ
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: completion is inserted on Enter with "noselect"
(Carman Fu)
Solution: check noselect before update compl_shown_match
(glepnir)
fixes: vim/vim#15526
closes: vim/vim#15530
https://github.com/vim/vim/commit/753794bae8a9401903b82e5c5d1f35a106aa912a
|
| |
| |
| |
| |
| | |
To check for a non-ASCII character, the condition should be >= 0x80, not
> 0x80. In this case it doesn't really matter as the 0x80 character is
unprintable and occupies 4 cells, but still make it consistent.
|
| |
| |
| |
| |
| |
| | |
Problem: Behavior of Enter in completion depends on typing speed.
Solution: Don't make whether Enter selects original text depend on
whether completion has been interrupted, which can happen
interactively with a slow completion function.
|
| |
| |
| |
| |
| |
| |
| | |
Problem: prefix can be a symbol like period, the fuzzy matching can't
handle it correctly.
Solution: when prefix is empty or a symbol add all lsp completion
result into matches.
|
| |\
| | |
| | | |
support emojis with ZWJ and variant selectors
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
Use the grapheme break algorithm from utf8proc to support grapheme
clusters from recent unicode versions.
Handle variant selector VS16 turning some codepoints into double-width
emoji. This means we need to use ptr2cells rather than char2cells when
possible.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
statements and For-In-Loops
Improving syntax highlighting by allowing numbers, - and a $ as suffix
in user constants and by allowing hwConstants in If-Then statements
closes: vim/vim#15059
https://github.com/vim/vim/commit/87c01d956168c1f41068c2a52e873f760c1f5fa9
Co-authored-by: Tom Crecelius <holly@net-eclipse.net>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: completion items can now have dedicated highlighting (through
`hl_group` and `kind_hlgroup` fields). Both of the fields combine
their highlight attributes with the underlying `PmenuXxx` group.
As default color scheme `Pmenu` and `PmenuSel` are intentionally
almost inverted versions of one another, the added highlighting will
be unreadable in one of them if done only through foreground (which is
the most convenient way for users and being able to do so is arguably
the biggest benefit of actually combining added highlighting).
Solution: adjust `PmenuSel` to utilize `attr=reverse`. This works
because `fg`/`bg` are first combined and only then reversed. This
results in a colored background for items with `hl_group` and
`kind_hlgroup` using text highlighting.
This also results in the same background for regular selected item,
while intentionally changing foreground from `Nvim{Light,Dark}Grey3`
to (essentially) `Nvim{Light,Dark}Grey2`. This both provides better
contrast ratio and does not need realigning of the whole block.
|
| |\
| | |
| | | |
fix issues with s390x CI on master (xdiff and others)
|
| | |
| | |
| | |
| | |
| | | |
Does not fix everything, but at least let's test run to finish before
timeout
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem:
Things like underlines are always given a default foreground highlight
regardless of the value of `sp`.
Solution:
Check for `sp` first, and apply that color to the text decoration color if it
exists.
Limitations:
If there is no value of `sp`, vim applies a text decoration color that matches
the foreground of the text. This is still not implemented (and seems like a much
more complex problem): in TOhtml, the underline will still be given a default
foreground highlight.
|
| | | |
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: "dvgo" is not always an inclusive motion
(Iain King-Speir)
Solution: initialize the inclusive flag to false
fixes: vim/vim#15580
closes: vim/vim#15582
https://github.com/vim/vim/commit/f8702aeb8ff85554d909901ae45b50c3d532bf70
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Co-authored-by: Evgeni Chasnovski <evgeni.chasnovski@gmail.com>
Co-authored-by: Lauri Heiskanen <lauri.heiskanen@nimble.fi>
Co-authored-by: Piotr Doroszewski <5605596+Doroszewski@users.noreply.github.com>
Co-authored-by: Tobiasz Laskowski <tobil4sk@outlook.com>
Co-authored-by: ariel-lindemann <41641978+ariel-lindemann@users.noreply.github.com>
Co-authored-by: glepnir <glephunter@gmail.com>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 7f6ff829aa2347eb940d8e70a825ea335d8f15ed.
The given reasoning and usecase is unsatisfactory. While it is true that
it allows to run `make build/bin/nvim`, it can easily be recreated with
`ninja -C build bin/nvim` which does the exact same thing. This minor
convenience is not worth adding the extra code given how rare this
usecase should be.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Introduce a new API variable "g:java_syntax_previews" whose
value must be a list of syntax preview feature numbers.
Enumerate the currently supported numbers in a table at the
end of the documentation entry for "ft-java-syntax".
Also, disable the recognition of String Templates. Despite
the withdrawal of this preview feature in its proposed form
from the upcoming JDK 23 release and the fact that the JDK
22 release is coming to EOL this September, an earlier
iteration of this preview feature was included in JDK 21
(LTS) whose EOL is projected to fall due in late 2028 and,
therefore, retain the current implementation.
Define "g:java_syntax_previews" and include number 430 in
its list to enable the recognition of String Templates:
------------------------------------------------------------
let g:java_syntax_previews = [430]
------------------------------------------------------------
References:
https://openjdk.org/jeps/430 (Preview)
https://openjdk.org/jeps/459 (Second Preview)
https://openjdk.org/jeps/465 (Third Preview)
https://mail.openjdk.org/pipermail/amber-spec-experts/2024-April/004106.html
closes: vim/vim#15579
https://github.com/vim/vim/commit/8556e23ee90448f01b612d337599f6e8f86679ea
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
|
| |
| |
| | |
Co-authored-by: Eisuke Kawashima <e-kwsm@users.noreply.github.com>
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| | |
Follow up to https://github.com/neovim/neovim/pull/30028#discussion_r1726539370
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Installing treesitter parser is hard (harder than
climbing to heaven).
Solution: Add optional support for wasm parsers with `wasmtime`.
Notes:
* Needs to be enabled by setting `ENABLE_WASMTIME` for tree-sitter and
Neovim. Build with
`make CMAKE_EXTRA_FLAGS=-DENABLE_WASMTIME=ON
DEPS_CMAKE_FLAGS=-DENABLE_WASMTIME=ON`
* Adds optional Rust (obviously) and C11 dependencies.
* Wasmtime comes with a lot of features that can negatively affect
Neovim performance due to library and symbol table size. Make sure to
build with minimal features and full LTO.
* To reduce re-compilation times, install `sccache` and build with
`RUSTC_WRAPPER=<path/to/sccache> make ...`
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#15572
https://github.com/vim/vim/commit/88a6dd036a673b310c467bf43a872a4210e19e21
Co-authored-by: glepnir <glephunter@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: The matchparen plugin is slow on a long line.
Solution: Don't use a regexp to get char at and before cursor.
(zeertzjq)
Example:
```vim
call setline(1, repeat(' foobar', 100000))
runtime plugin/matchparen.vim
normal! $hhhhhhhh
```
closes: vim/vim#15568
https://github.com/vim/vim/commit/81e7513c86459c40676bd983f73c2722096d67a9
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: Wrong patlen value in ex_substitute() (after 9.1.0426).
Solution: Compute patlen after finding end separator.
(zeertzjq)
Add a more explicit test. The test already passes as the only case
where a overlarge patlen value matters was fixed by patch 9.1.0689.
closes: vim/vim#15565
https://github.com/vim/vim/commit/d1c8d2de4b9fa44b3d2b39b7ed8b92846c5502b7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: cannot set special highlight kind in popupmenu
Solution: add kind_hlgroup item to complete function
(glepnir)
closes: vim/vim#15561
https://github.com/vim/vim/commit/38f99a1f0d61e9bde3f4a3d0cbe2d06185c4a57f
Co-authored-by: glepnir <glephunter@gmail.com>
|
| |\
| | |
| | | |
vim-patch: update Vim syntax
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
colon and bar
Match :loadkeymap after Ex colons and bars.
Don't generate :loadkeymap as it is matched with a custom syntax group.
closes: vim/vim#15554
https://github.com/vim/vim/commit/7866d54ecc7ff47d5f3c48bc389dfd85759b9b65
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
highlighting
The end marker is not required to match the indent of :let when "trim"
is specified, it may also appear without leading whitespace as normal.
closes: vim/vim#15564
https://github.com/vim/vim/commit/7884cc74188caea6e42b1456ed90c8a7189dda7c
Co-authored-by: Doug Kearns <dougkearns@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
scripts (#30121)
* Improve heredoc handling
- Support "trim" for all the embedded scripts.
- Check the indent of "trim" for "let" and all the embedded scripts.
* Update missing part of vim.vim.base in the commit
d164f2a521f8e52e587727657fb1c19e9a25f32a.
* Update gen_syntax_vim.vim to catch up with 9.1.0685's source code.
closes: vim/vim#15542
https://github.com/vim/vim/commit/95e90781a4c92b7b061213cfa38b35bdbf719cc1
Co-authored-by: Ken Takata <kentkt@csc.jp>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Obtain and pass through translated messages with this
function.
- If "g:java_foldtext_show_first_or_second_line" is defined,
assign this function to &foldtext.
closes: vim/vim#15549
https://github.com/vim/vim/commit/2750b83fa1a917c13d0cae3e791493720dcaadaa
Co-authored-by: Aliaksei Budavei <0x000c70@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#15550
https://github.com/vim/vim/commit/c75dad017726ae78d6d2a68d1d6cfa12e7bd29f3
Co-authored-by: yasuda <yasuda@kyoto-sr.co.jp>
|
| |
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#15551
https://github.com/vim/vim/commit/38cfa2b6623c64e748be17739799da36ca2d76bf
Co-authored-by: yasuda <yasuda@kyoto-sr.co.jp>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
fixes: vim/vim#15459
closes: vim/vim#15552
https://github.com/vim/vim/commit/0e9fd7755d23477a1cf3a101c301155ba0bc1e2c
Co-authored-by: Dennis van den Berg <dennis.vandenberg@nedap.com>
|
| |
| |
| |
| |
| |
| |
| | |
Problem: Some items of completion results include function signatures that can
cause the pum to be very long when a function has many params, because pum
scales with the longest word/abbr.
Solution: add custom covert function that can customise abbr to remove params.
|
| |
| |
| |
| |
| |
| |
| | |
Problem: the autotrigger mechanism could fire completion requests despite
completion already being active from another completion mechanism or manual
trigger
Solution: add a condition to avoid an additional request.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(#30115)
related: vim/vim#15519
https://github.com/vim/vim/commit/bc29ea62861052b35781031173a67d7d577be068
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem: mode() returns wrong value with <Cmd> mapping
Solution: Change decision priority of VIsual_active and move
visual mode a bit further down (kuuote)
closes: vim/vim#15533
https://github.com/vim/vim/commit/0fd1cb1b1fc90b68cb37f71e65289eadac3588a6
Co-authored-by: kuuote <znmxodq1@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
closes: vim/vim#15535
https://github.com/vim/vim/commit/5f5f2832f5dcf845a93f7f62c1daf6cba9c17989
Co-authored-by: Konfekt <Konfekt@users.noreply.github.com>
|