aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* refactor: use kwargs parameter in vim.splitGregory Anders2021-09-25
|
* feat: add trimempty optional parameter to vim.splitGregory Anders2021-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Merge pull request #15776 from jamessan/macos-11-ciJames McCoy2021-09-25
|\ | | | | Add macos-11 CI
| * ci: use runner, instead of os, for job name and cache keyJames McCoy2021-09-24
| |
| * ci: add macOS 11 buildJames McCoy2021-09-24
| |
* | test(normal): CA_COMMAND_BUSY in visual select mode #15292Thomas Vigouroux2021-09-24
|/ | | | | | | | Fix was already applied in 5f144efefa66c9694123b679bab52992279a6015 #15688, but this commit adds another dimension to the test. Test correctly fails after reverting 5f144efefa66c9694123b679bab52992279a6015. ref #15288
* Merge #15774 fix(pvs): fix warnings, scriptJustin M. Keyes2021-09-24
|\
| * fix(pvs): Exclude xdiff from analysisJustin M. Keyes2021-09-24
| | | | | | | | | | ref 088161a9459a ref fbe88ef8f5a4
| * fix(PVS): disable "typo" warnings V1051, V1074Justin M. Keyes2021-09-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * fix(PVS V681): function call order is undefinedJustin M. Keyes2021-09-24
| | | | | | | | https://pvs-studio.com/en/docs/warnings/v681/
| * fix(PVS V576): false positiveJustin M. Keyes2021-09-24
| | | | | | | | | | `lower`, `upper` are `varnumber_T`, correctly matched to `PRIdVARNUMBER` format.
| * fix(PVS V576): wrong fprintf() formatJustin M. Keyes2021-09-24
| | | | | | | | | | | | | | | | 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`.
| * fix(PVS V507): false positiveJustin M. Keyes2021-09-24
| | | | | | | | | | | | | | | | | | | | 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.
* | Merge #15731 vim-patch:7.4.725,8.2.{0597,0598,0924,1035}Justin M. Keyes2021-09-24
|\ \ | | | | | | fixes #14581
| * | vim-patch:8.2.1035: setreg() does not always clear the registerSean Dewar2021-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
| * | vim-patch:7.4.725Sean Dewar2021-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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...
| * | vim-patch:8.2.0924: cannot save and restore a register properlySean Dewar2021-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | vim-patch:8.2.0598: test_eval_stuff fails in normal terminalSean Dewar2021-09-22
| | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | vim-patch:8.2.0597: test_eval is old styleSean Dewar2021-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | refactor: format with uncrustify #15755dundargoc2021-09-24
| |/ |/|
* | fix(lsp): guard textDocument/codeAction command logic #15769Chris Kipp2021-09-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | fix: move contrib/uncrustify.cfg -> src/uncrustify.cfg #15768Justin M. Keyes2021-09-23
| | | | | | | | If uncrustify is now the (partial) authority on code style, it is no longer "contrib".
* | fix(diagnostic): check for nil in show_diagnostics (#15772)Gregory Anders2021-09-23
| |
* | fix(diagnostic): don't return nil when callers expect a table (#15765)Gregory Anders2021-09-23
| | | | | | | | | | | | 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.
* | Merge #14979 doc: convert Nvim style guide XML to vim :helpJustin M. Keyes2021-09-23
|\ \ | |/ |/|
| * doc(dev_style.txt): misc updatesJustin M. Keyes2021-09-23
| |
| * doc: convert neovim style guide to vim doc.Dundar Göc2021-09-23
|/
* build(deps): bump luarocks to 3.7.0 #15740Christian Clason2021-09-22
| | | | | | | | | | | 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
* feat(diagnostic): allow customized diagnostic messages (#15742)Gregory Anders2021-09-22
| | | | Provide a 'format' option for virtual text and floating window previews that allows the displayed text of a diagnostic to be customized.
* Merge pull request #15739 from clason/luv-bumpJames McCoy2021-09-22
|\
| * fix(build): call find_package(Threads) before using its variablesJames McCoy2021-09-21
| |
| * chore(deps): bump libuv and luv to 1.42.0Christian Clason2021-09-21
| |
* | Merge pull request #14115 from mfussenegger/lsp-commandsMichael Lingelbach2021-09-22
|\ \ | | | | | | lsp: Add a registry for client side code action commands
| * | feat(lsp): add a registry for client side code action commandsMathias Fussenegger2021-09-20
| | | | | | | | | | | | | | | This builds on https://github.com/neovim/neovim/pull/14112 and closes https://github.com/neovim/neovim/issues/12326
| * | feat(lsp): include original request params in handler ctxMathias Fussenegger2021-09-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | docs: .git-blame-ignore-revs #15653Justin M. Keyes2021-09-22
| | |
* | | refactor: format with uncrustify #15741dundargoc2021-09-22
| | |
* | | vim-patch:34cc7d8c034f #15753Christian Clason2021-09-22
| | | | | | | | | | | | Update runtime files https://github.com/vim/vim/commit/34cc7d8c034f2bc5b57455577051db8d72e2b87c
* | | Merge pull request #15717 from gpanders/diagnostic-include-sourceMichael Lingelbach2021-09-21
|\ \ \ | | | | | | | | feat(diagnostic): add option to include diagnostic source
| * | | refactor(diagnostic): remove get_virt_text_chunks()Gregory Anders2021-09-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | feat(diagnostic): add option to include diagnostic sourceGregory Anders2021-09-21
|/ / / | | | | | | | | | | | | Add an option to virtual text display and floating window previews to include diagnostic source in the diagnostic message.
* | | fix(diagnostic): preserve fields from LSP diagnostics via user_data (#15735)masterGregory Anders2021-09-21
| | | | | | | | | * 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.
* | | fix(lsp): update lsp-handler signature in call_hierarchy (#15738)Mathias Fußenegger2021-09-21
| | | | | | | | | | | | | | | | | | | | | | | | 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)
* | | ci(PVS): PVS/V009: add required header #15751dundargoc2021-09-21
| | |
* | | fix(startup): init.lua: set $MYVIMRC to absolute path #15748Justin M. Keyes2021-09-21
| | | | | | | | | | | | | | | | | | - main.c: remove os_setenv("MYVIMRC",…), it is already done by do_source(). - This also sets $MYVIMRC to a full (absolute) path. - code cleanup.
* | | Merge pull request #15745 from e-kwsm/MakefileJames McCoy2021-09-21
|\ \ \ | |_|/ |/| | build: enhance Makefile
| * | build: enhance MakefileEisuke Kawashima2021-09-21
|/ / | | | | | | | | | | | | - 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/
* | Merge pull request #15743 from jamessan/libuv-threadsJames McCoy2021-09-20
|\ \ | |/ |/| build: Add ${CMAKE_THREAD_LIBS_INIT} to LIBUV_LIBRARIES
| * build: add ${CMAKE_THREAD_LIBS_INIT} to LIBUV_LIBRARIESJames McCoy2021-09-20
|/ | | | | | | 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
* fix(diagnostic): clamp line numbers in display layer (#15729)Gregory Anders2021-09-20
| | | | | | 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).