| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `split()` VimL function trims empty items from the returned list by
default, so that, e.g.
split("\nhello\nworld\n\n", "\n")
returns
["hello", "world"]
The Lua implementation of vim.split does not do this. For example,
vim.split("\nhello\nworld\n\n", "\n")
returns
{'', 'hello', 'world', '', ''}
Add an optional parameter to the vim.split function that, when true,
trims these empty elements from the front and back of the returned
table. This is only possible for vim.split and not vim.gsplit; because
vim.gsplit is an iterator, there is no way for it to know if the current
item is the last non-empty item.
Note that in order to preserve backward compatibility, the parameter for
the Lua vim.split function is `trimempty`, while the VimL function uses
`keepempty` (i.e. they are opposites). This means there is a disconnect
between these two functions that may surprise users.
|
|\
| |
| | |
Add macos-11 CI
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
| |
Fix was already applied in 5f144efefa66c9694123b679bab52992279a6015 #15688,
but this commit adds another dimension to the test.
Test correctly fails after reverting 5f144efefa66c9694123b679bab52992279a6015.
ref #15288
|
|\ |
|
| |
| |
| |
| |
| | |
ref 088161a9459a
ref fbe88ef8f5a4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PVS is worried about typos. Now we need it to stop worrying...
Disable these checks entirely, they are all false positives.
tui.c:1873 V1074 Boundary between escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.
tui.c:1983 V1074 Boundary between escape sequence and string is unclear. The escape sequence ends with a letter and the next character is also a letter. Check for typos.
regexp_nfa.c:6189 V1051 Consider checking for misprints. It's possible that the 'pim->result' should be checked here.
screen.c:2928 V1051 Consider checking for misprints. It's possible that the 'vcol_sbr' should be checked here.
screen.c:3187 V1051 Consider checking for misprints. It's possible that the 'line_attr' should be checked here.
screen.c:3267 V1051 Consider checking for misprints. It's possible that the 'multi_attr' should be checked here.
screen.c:4747 V1051 Consider checking for misprints. It's possible that the 'redraw_next' should be checked here.
syntax.c:3448 V1051 Consider checking for misprints. It's possible that the 'arg_end' should be checked here.
syntax.c:3625 V1051 Consider checking for misprints. It's possible that the 'arg_end' should be checked here.
tui.c:1836 V1051 Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
tui.c:1863 V1051 Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
tui.c:1882 V1051 Consider checking for misprints. It's possible that the 'data->unibi_ext.set_cursor_style' should be checked here.
|
| |
| |
| |
| | |
https://pvs-studio.com/en/docs/warnings/v681/
|
| |
| |
| |
| |
| | |
`lower`, `upper` are `varnumber_T`, correctly matched to `PRIdVARNUMBER`
format.
|
| |
| |
| |
| |
| |
| |
| |
| | |
https://pvs-studio.com/en/docs/warnings/v576/
Before 1bffe66508ff986a61c0e08caddc92b7f3ace81e this was originally
"%ld" but that looks like a mistake. At least now, w_height_inner and
w_width_inner are just `int`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
https://pvs-studio.com/en/docs/warnings/v507/
"Pointer to local array 'sourcing_name_buf' is stored outside the scope
of this array. Such a pointer will become invalid."
False positive: `sourcing_name = save_sourcing_name` before returning
from this scope.
|
|\ \
| | |
| | | |
fixes #14581
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: setreg() does not always clear the register.
Solution: Clear the register if the dict argument is empty. (Andy Massimino,
closes vim/vim#3370)
https://github.com/vim/vim/commit/7633fe595e6a27d6bb376548ff89f0dcce481600
Do not getdigits for block_len strictly. For example, a user could
previously abort Nvim using:
:call setreg("0", "abort!", "\<C-V>999999999999999999")
or, after v8.2.0924's port:
:call setreg("0", #{regcontents: ["abort!"],
\ regtype: "\<C-V>999999999999999999"})
Instead, default to 0 so block_len is -1, which acts like the selection
width was omitted (defaults to length of longest line).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: ":call setreg('"', [])" reports an internal error.
Solution: Make the register empty. (Yasuhiro Matsumoto)
https://github.com/vim/vim/commit/659c94d483b2fdad949c14a42cee96f99a66394b
Required for v8.2.1035.
Note that setreg('"', []) didn't cause an internal error for us, but
didn't clear the register properly either...
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Cannot save and restore a register properly.
Solution: Add getreginfo() and make setreg() accept a dictionary. (Andy
Massimino, closes vim/vim#3370)
https://github.com/vim/vim/commit/bb861e293e0170455184079fa537278754b07911
Cherry-pick eval.txt changes for getreginfo() from:
https://github.com/vim/vim/commit/6aa57295cfbe8f21c15f0671e45fd53cf990d404
https://github.com/vim/vim/commit/207f009326c8f878defde0e594d7d9ed9860106e
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Test_eval_stuff fails in normal terminal.
Solution: Close the new window.
https://github.com/vim/vim/commit/61fbb3371ee1f6a02706f52fbe064608e159be7c
Required for v8.2.0598 to work.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: Test_eval is old style.
Solution: Change some tests to a new style test.
https://github.com/vim/vim/commit/90455cfa87f84f16179c19241b034abbfa8b3c9a
Cherry-pick Test_setreg_basic changes from v8.2.0610.
Note that the old-style version of the tests (and the cherry-picked
changes) exist in legacy/eval_spec.lua; keep them as they've already
been Lua'd.
Required for v8.2.0924.
|
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Problem:
Error executing vim.schedule lua callback: ...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:502: command: expected string, got
nil
stack traceback:
...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:502: in function 'execute_command'
...HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/handlers.lua:151: in function <...HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/handlers.lua:113>
...ovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp/buf.lua:465: in function 'callback'
...r/neovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp.lua:1325: in function 'handler'
...r/neovim/HEAD-aba3979/share/nvim/runtime/lua/vim/lsp.lua:899: in function 'cb'
vim.lua:281: in function <vim.lua:281>
Solution:
This is a follow-up to the work done in
https://github.com/neovim/neovim/commit/6c03601e3adb4c3c4d47f148df8df20401b88677.
There are valid situations where a `textDocument/codeAction` is returned
without a command, since a command in optional. For example from Metals,
the Scala language server when you get a code action to add a missing
import, it looks like this:
```json
Result: [
{
"title": "Import \u0027Instant\u0027 from package \u0027java.time\u0027",
"kind": "quickfix",
"diagnostics": [
{
"range": {
"start": {
"line": 6,
"character": 10
},
"end": {
"line": 6,
"character": 17
}
},
"severity": 1,
"source": "bloop",
"message": "not found: value Instant"
}
],
"edit": {
"changes": {
"file:///Users/ckipp/Documents/scala-workspace/sanity/src/main/scala/Thing.scala": [
{
"range": {
"start": {
"line": 6,
"character": 10
},
"end": {
"line": 6,
"character": 17
}
},
"newText": "Instant"
},
{
"range": {
"start": {
"line": 1,
"character": 0
},
"end": {
"line": 1,
"character": 0
}
},
"newText": "\nimport java.time.Instant\n"
}
]
}
}
}
]
```
This change just wraps the logic that grabs the command in a conditional
to skip it if there is no command.
|
| |
| |
| |
| | |
If uncrustify is now the (partial) authority on code style, it is no
longer "contrib".
|
| | |
|
| |
| |
| |
| |
| |
| | |
diagnostic_lines() returns a table, so make the early exit condition an
empty table rather than 'nil'. This way, functions that use the input
from diagnostic_lines don't have to do a bunch of defensive nil checking
and can always assume they're operating on a table.
|
|\ \
| |/
|/| |
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
Besides bugfixes, this brings `XDG_*` compliance and improved
robustness, especially for network errors.
See https://github.com/luarocks/luarocks/blob/master/CHANGELOG.md
- fixup: set LIBUV_LIBDIR to workaround https://github.com/luarocks/luarocks/commit/83126ba324846b754ffc5e0345341f01262b3f86
- https://github.com/luarocks/luarocks/issues/1214
- https://github.com/luarocks/luarocks/pull/1355
|
|
|
|
| |
Provide a 'format' option for virtual text and floating window previews
that allows the displayed text of a diagnostic to be customized.
|
|\ |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
lsp: Add a registry for client side code action commands
|
| | |
| | |
| | |
| | |
| | | |
This builds on https://github.com/neovim/neovim/pull/14112 and closes
https://github.com/neovim/neovim/issues/12326
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is mostly motivated by https://github.com/neovim/neovim/issues/12326
Client side commands might need to access the original request
parameters.
Currently this is already possible by using closures with
`vim.lsp.buf_request`, but the global handlers so far couldn't access
the request parameters.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
Update runtime files
https://github.com/vim/vim/commit/34cc7d8c034f2bc5b57455577051db8d72e2b87c
|
|\ \ \
| | | |
| | | | |
feat(diagnostic): add option to include diagnostic source
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This function isn't compatible with including diagnostic sources when
"source" is "if_many" since it only has access to diagnostics for a
single line. Rather than having an inconsistent or incomplete interface,
make this function private. It is still exported as part of the module
for backward compatibility with vim.lsp.diagnostics, but it can
eventually be made into a local function.
|
|/ / /
| | |
| | |
| | |
| | | |
Add an option to virtual text display and floating window previews to
include diagnostic source in the diagnostic message.
|
| | |
| | |
| | | |
* preserve fields from LSP diagnostics via adding a user_data table to the diagnostic, which can hold arbitrary data in addition to the lsp diagnostic information.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This fixes the handler signature and also prevents n+1 requests firing
if there are multiple clients.
(The first `prepareCallHierarchy` handler is called once per client,
each invocation used `buf_request` to make more requests using *all*
clients)
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
- main.c: remove os_setenv("MYVIMRC",…), it is already done by
do_source().
- This also sets $MYVIMRC to a full (absolute) path.
- code cleanup.
|
|\ \ \
| |_|/
|/| | |
build: enhance Makefile
|
|/ /
| |
| |
| |
| |
| |
| | |
- fix regression where `-j` is not passed to ninja
(39c886551bf8323b63938f5dee5beb650c61f02b, #15708)
- enable to pass `-l` (load) to ninja as well
- s/BUILD_TYPE/CMAKE_GENERATOR/
|
|\ \
| |/
|/| |
build: Add ${CMAKE_THREAD_LIBS_INIT} to LIBUV_LIBRARIES
|
|/
|
|
|
|
|
| |
This is a workaround for not yet having fully correct Find* cmake
modules for static builds.
https://github.com/Tronic/cmake-modules/issues/3#issuecomment-624469020
|
|
|
|
|
|
| |
Some parts of LSP need to use cached diagnostics as sent from the LSP
server unmodified. Rather than fixing invalid line numbers when
diagnostics are first set, fix them when they are displayed to the user
(e.g. in show() or one of the get_next/get_prev family of functions).
|