aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* | | | feat(lsp): allow subset of CodeActionContext as arg to code_action methods ↵Mathias Fußenegger2021-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#15793) This makes it easier to filter the code actions. For example: vim.lsp.buf.code_action { only = 'refactor' }
* | | | feat(lsp): use cjson for lsp rpc (#15759)Michael Lingelbach2021-09-26
| | | |
* | | | Merge pull request #14871 from mjlbach/feature/lua-cjson-embeddedMichael Lingelbach2021-09-26
|\ \ \ \ | | | | | | | | | | feat(lua): expose lua-cjson as vim.json
| * | | | test: add tests for vim.jsonMichael Lingelbach2021-09-26
| | | | |
| * | | | feat(lua): expose lua-cjson as vim.jsonMichael Lingelbach2021-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * add vim.json.encode and vim.json.decode * use vim.NIL instead of cjson.null * resolve strict-prototypes warnings * The following benchmark shows an approximately 2.5x (750 ms vs 300 ms) improvement in deserialization performance over vim.fn.json_decode on a medium package.json ```lua local uv = vim.loop local function readfile(path) return end local json_url = "https://raw.githubusercontent.com/rust-analyzer/rust-analyzer/b24c8d5c89ee93d1172b4127564f5da3b0c88dad/editors/code/package.json" io.popen(string.format('curl -v -f -L -O %q &> /dev/null', json_url)) local json_string = io.open('package.json'):read '*a' uv.update_time() local start = uv.hrtime() for i = 1,1000 do vim.fn.json_decode(json_string) end uv.update_time() print(string.format("Deserialization time vim.fn.json_decode: %s ms", (uv.hrtime() - start) * (1e-6))) uv.update_time() local start = uv.hrtime() for i = 1,1000 do vim.json.decode(json_string) end uv.update_time() print(string.format("Deserialization time vim.json.decode: %s ms", (uv.hrtime() - start) * (1e-6))) ``` Co-Authored-By: Björn Linse <bjorn.linse@gmail.com>
| * | | | feat(lua): add lua-cjson as vendored dependencyMichael Lingelbach2021-09-26
| | | | | | | | | | | | | | | | | | | | Derived from the openresty lua-cjson fork at commit https://github.com/openresty/lua-cjson/commit/3d93d297092172eac3d52a1b3b6c1d479da5341a
* | | | | ci(lintcommit.lua): replace third-party commitlint #15747dundargoc2021-09-26
| | | | |
* | | | | Merge pull request #15797 from smolck/ui-stuffBjörn Linse2021-09-26
|\ \ \ \ \ | | | | | | | | | | | | fix(ui_bridge): set bridge width and height on attach
| * | | | | fix(ui_bridge): set bridge width and height on attachsmolck2021-09-26
| | |_|/ / | |/| | |
* | | | | fix(tui): remove obsolete $NVIM detection #15791erw72021-09-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initially, we planned to set the NVIM environment variable to detect that neovim is running in the neovim built-in terminal. At the time this code was written, there was no way for a parent to set environment variables for a program running in an embedded terminal. Later it was implemented in #12937, but the code to set the NVIM was not added. #11390 now uses ConPTY instead of winpty when possible, so it is no longer necessary to force the use of win32con even when running inside an embedded terminal. Therefore, we now do not need this code.
* | | | | Merge pull request #15351 from bfredl/virt_lineBjörn Linse2021-09-26
|\ \ \ \ \ | | | | | | | | | | | | feat(screen): virtual lines
| * | | | | feat(decorations): support virtual lines (for now: only one block at a time)Björn Linse2021-09-26
| | | | | |
* | | | | | refactor: replace sprintf with snprintf #15794dundargoc2021-09-26
| | | | | |
* | | | | | Merge pull request #15721 from bfredl/electricboogaloBjörn Linse2021-09-26
|\ \ \ \ \ \ | |/ / / / / |/| | | | | fix(runtime): some ordering issues (and start work on cache mechanism)
| * | | | | fix(runtime): ordering of loading packages with user configBjörn Linse2021-09-26
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | site packages must be sourced before user config NOTE: we only consider dirs exactly matching "after" to be an AFTER dir. vim8 considers all dirs like "foo/bar_after", "Xafter" etc, as an "after" dir in SOME codepaths not not in ALL codepaths.
* | | | | docs(CONTRIBUTING.md): how to use uncrustify #15780Dundar Göc2021-09-25
| | | | | | | | | | | | | | | | | | | | close #15780
* | | | | fix(api): fix crash after set_option_value_for() #15390gmntroll2021-09-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: This crashes Nvim: tabedit call nvim_win_set_option(1000, 'statusline', 'status') split wincmd J wincmd j Solution: - Change `no_display` parameter value to be the same as in matching `restore_win_noblock` call. In case of different values `topframe` isn't restored to `curtab->tp_topframe`. - Call `restore_win_noblock` if `switch_win_noblock` returns `FAIL` (`switch_win` must always have matching `restore_win`) - Change `switch_win`/`restore_win` to `_noblock` versions to allow autocommands. fixes #14097 fixes #13577
* | | | | refactor: format with uncrustify #15778dundargoc2021-09-25
|/ / / / | | | | | | | | * fixup: force exactly one whitespace between type and variable
* | | | 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