Problem: Cannot act on edits in the command line.
Solution: Add the CmdlineChanged autocommand event. (xtal8, closesvim/vim#2603,
closesvim/vim#2524)
153b704e20
In Vim (and some vestigial parts of Nvim) E319 was a placeholder for
ex_ni commands, i.e. commands that are only available in certain builds
of Vim. That is obviously counter to Nvim's goals: all Nvim commands
are available on all platforms and build types (the remaining ex_ni
commands are actually just missing providers).
We need an error id for "missing provider", so it makes sense to use
E319 for that purpose.
ref #9344
ref #3577
Executing `:python`, and similar commands that rely on `eval_call_provider()`,
while the accompanying provider it not available, leads to this error message:
E117: Unknown function: provider#python#Call
This doesn't say much to a user. Since we introduced `:checkhealth` for this
very reason, we now point to it for further diagnosis.
Fixes#3577
The macOS preferences have a section called `Language & Region`. There is always
at least one language defined, the primary language.
CFLocaleCopyPreferredLanguages() returns the languages defined in that section,
the first element being the primary language.
Use the primary language in case CFLocaleCopyCurrent() returns NULL.
In the case that the above fallback does not work either, which is very
unlikely, log the error and continue with an empty $LANG.
References #9134
Problem: 'commentstring' not used when adding fold marker in C.
Solution: Require white space before middle comment part. (mostly by
Hirohito Higashi)
4af7259b2b
Problem: Using an external diff program is slow and inflexible.
Solution: Include the xdiff library. (Christian Brabandt)
Use it by default.
e828b7621c
vim-patch:8.1.0360
vim-patch:8.1.0364
vim-patch:8.1.0366
vim-patch:8.1.0370
vim-patch:8.1.0377
vim-patch:8.1.0378
vim-patch:8.1.0381
vim-patch:8.1.0396
vim-patch:8.1.0432
Problem: 'commentstring' not used when adding fold marker. (Maxim Kim)
Solution: Only use empty 'comments' middle when leader is empty. (Christian
Brabandt, closesvim/vim#3670)
539328197c
Problem: execute() does not work in completion of user command. (thinca)
Solution: Switch off redir_off and restore it. (Ozaki Kiichi, closesvim/vim#2492)
2095148277
Problem: Expression evaluation may repeat an error message. (Jason
Franklin)
Solution: Check for the value of did_emsg when giving an error
for the :execute command.
8ff5af9544
Problem: Expression evaluation may repeat an error message. (Jason
Franklin)
Solution: Increment did_emsg and check for the value when giving an error
for the echo command.
76a6345433
Problem: It is not easy to edit a script that was sourced.
Solution: Add a count to ":scriptnames", so that ":script 40" edits the
script with script ID 40.
07dc18ffa4
From test_timers.vim:
Found errors in Test_paused():
First run:
function RunTheTest[35]..Test_paused line 20: Expected range 0 - 100, but got 123
Second run:
function RunTheTest[35]..Test_paused line 20: Expected range 0 - 100, but got 106
previously: #9220
- Timer tests are less reliable on Travis CI macOS 10.12/10.13.
ref #6829
ref e39dade80b
ref de13113dc1
ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452
> We don't guarantee that a X ms timer is triggered during Y ms sleep
> for any X<Y, though I would expect the load to be really bad for this
> to happen with X=10ms, Y=40ms.
From test_alot.vim:
Found errors in Test_lambda_with_timer():
First run:
function RunTheTest[35]..Test_lambda_with_timer line 19: Expected True but got 0
Second run:
function RunTheTest[35]..Test_lambda_with_timer line 19: Expected True but got 0
previously: #9220
- Timer tests are less reliable on Travis CI macOS 10.12/10.13.
ref #6829
ref e39dade80b
ref de13113dc1
ref https://github.com/neovim/neovim/pull/9095#issuecomment-429603452
> We don't guarantee that a X ms timer is triggered during Y ms sleep
> for any X<Y, though I would expect the load to be really bad for this
> to happen with X=10ms, Y=40ms.
- Call test_garbagecollect_now(), as Vim does.
Problem: Segfault when pattern with \z() is very slow.
Solution: Check for NULL regprog. Add "nfa_fail" to test_override() to be
able to test this. Fix that 'searchhl' resets called_emsg.
bcf9442307closes#8788
Fixes https://github.com/neovim/neovim/issues/9270
---
Background info per egmontkob:
https://github.com/neovim/neovim/issues/9270#issuecomment-441979176
For undercurl, the newly invented escape sequence is `4:3` strictly with
a colon, as with a semicolon it means single underlined and italic.
For colored underline, the newly invented escape sequence `58:...` is
meant to follow the pattern of `38` and `48`. [ITU
T.416](https://www.itu.int/rec/T-REC-T.416-199303-I/en) § 13.1.8 clearly
specifies the colon only as the separator (and the well-known ECMA-48
§ 8.3.117 just points to this standard).
Using semicolon instead was/is a frequent misinterpretation of this
standard, and is commonly used in the wild – for 38 and 48. More and
more emulators are catching up and beginning to support colon, in
addition to semicolon. Semicolon is pretty fragile; in case an emulator
doesn't recognize a sequence (let's say doesn't recognize the new
extension of `58`), subsequent numbers are interpreted as other
attributes. E.g. if 256-color mode is chosen then the next numeric
parameter is `5` which turns on blinking.
So, luckily, the standard is the technically better solution, the
frequent practice of using semicolons is technically the worse.
Therefore the direction we should be going is clear.
I believe it's a fair requirement for anyone adopting colored underline
to support colons too, and it's a reasonable move from applications to
slightly push the world forward, force developers to catch up with the
recent changes, that is: 1) recognize and at least ignore
colon-delimited parameters even if they aren't supported, 2) recognize
and support colon wherever they support the nonstandard semicolon
instead.
Should you come across any terminal emulator that supports 58 with
semicolons but not with colons, I think the cleanest you can do is
report a bug against them and ignore the problem; they should fix it.
It's yet another common misunderstanding that the truecolor syntax is
`38`/`48`/`58` followed by `:2:rrr:ggg:bbb`. The wording of T.416 is
terrible, but if you read carefully, there's another parameter of
color-space-id preceding the three color channels. Assuming you don't
care about color-space-id, the syntax is `38`/`48`/`58` followed by
`:2::rrr:ggg:bbb` and of course the trailing `m`.
This is only for true-color, the 256-color format doesn't have such
a parameter, it's `38`/`48`/`58` followed by `:5:index` and the final
`m`.