aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fix(inccommand): avoid crash if callback changes inccommand option (#18830)zeertzjq2022-06-02
| | | | | | | | | clang: Result of operation is garbage or undefined clang: Uninitialized argument value Also check for == 's' instead of != 'n' as it is more straightforward. Also fix another unrelated PVS warning: PVS/V1071: Return value of win_comp_pos() is not always used
* fix(lsp): adjust offset encoding in lsp.buf.rename() (#18829)Fredrik Ekre2022-06-01
| | | | | | | | Fix a bug in lsp.buf.rename() where the range returned by the server in textDocument/prepareRename was interpreted as a byte range directly, instead of taking the negotiated offset encoding into account. This caused the placeholder value in vim.ui.input to be incorrect in some cases, for example when non-ascii characters are used earlier on the same line.
* fix(screen): restart win_update() if a decor provider changes signcols (#18768)zeertzjq2022-06-01
|
* refactor(clang-tidy): remove nested redundant ifdefs #18811dundargoc2022-06-01
|
* fix(checkhealth): skip vim.health #18816Javier Lopez2022-06-01
| | | | | | | | | | | | | | | | | | Problem: https://github.com/neovim/neovim/pull/18720#issuecomment-1142614996 The vim.health module is detected as a healthcheck, which produces spurious errors: vim: require("vim.health").check() ======================================================================== - ERROR: Failed to run healthcheck for "vim" plugin. Exception: function health#check, line 20 Vim(eval):E5108: Error executing lua [string "luaeval()"]:1: attempt to call field 'check' (a nil value) stack traceback: [string "luaeval()"]:1: in main chunk Solution: Skip vim.health when discovering healthchecks.
* refactor: correct comments and assertions about mapping rhs <Nop> (#18821)zeertzjq2022-06-01
| | | | | | | | Also avoid referring to mappings as "keymaps" in commands and docs. *map_empty_rhs* *map-empty-rhs* You can create an empty {rhs} by typing nothing after a single CTRL-V (you have to type CTRL-V two times). Unfortunately, you cannot do this in a vimrc file.
* fix(inccommand): do not try to preview an ambiguous command (#18827)zeertzjq2022-06-01
|
* Merge pull request #18583 from gpanders/path-rootGregory Anders2022-05-31
|\ | | | | feat(fs): add vim.fs module
| * feat(fs): add vim.fs.normalize()Gregory Anders2022-05-31
| |
| * feat(fs): add vim.fs.find()Gregory Anders2022-05-31
| | | | | | | | | | This is a pure Lua implementation of the Vim findfile() and finddir() functions without the special syntax.
| * feat(fs): add vim.fs.dir()Gregory Anders2022-05-31
| | | | | | | | | | This function is modeled after the path.dir() function from Penlight and the luafilesystem module.
| * feat(fs): add vim.fs.basename()Gregory Anders2022-05-31
| |
| * feat(fs): add vim.fs.dirname()Gregory Anders2022-05-31
| |
| * feat(fs): add vim.fs.parents()Gregory Anders2022-05-31
|/ | | | | vim.fs.parents() is a Lua iterator that returns the next parent directory of the given file or directory on each iteration.
* refactor(checkhealth)!: rename to vim.health, move logic to Lua #18720Javier Lopez2022-05-31
| | | | | | | | | - Complete function: There was lots of unnecessary C code for the complete function, therefore moving it to Lua and use all the plumbing we have in place to retrieve the results. - Moving the module: It's important we keep nvim lua modules name spaced, avoids conflict with plugins, luarocks, etc.
* Merge pull request #18194 from famiu/feat/usercmd_previewbfredl2022-05-31
|\ | | | | feat: user command "preview" (like inccommand)
| * feat: add preview functionality to user commandsFamiu Haque2022-05-31
| | | | | | | | Adds a Lua-only `preview` flag to user commands which allows the command to be incrementally previewed like `:substitute` when 'inccommand' is set.
* | Merge pull request #18219 from kessejones/filetype-luaGregory Anders2022-05-31
|\ \ | | | | | | feat(filetype): add more filetype patterns to Lua
| * | feat(filetype): convert more patterns to filetype.luaChristian Clason2022-05-30
| | |
| * | test(oldtest): disable legacy detect for filetype.luaChristian Clason2022-05-30
| | |
* | | vim-patch:8.2.5046: vim_regsub() can overwrite the destination (#18812)zeertzjq2022-05-31
| | | | | | | | | | | | | | | Problem: vim_regsub() can overwrite the destination. Solution: Pass the destination length, give an error when it doesn't fit. https://github.com/vim/vim/commit/4aaf3e7f4db599932d01d87e5bbcdc342cccee27
* | | fix(lsp): include cancellable in progress message table (#18809)Chris Kipp2022-05-31
| | | | | | | | | | | | | | | | | | | | | | | | Currently the `title`, `message` and `percentage` is stored for a progress, but there is also an optional `cancellable` that comes in with both the `WorkDoneProgressBegin` and also `WorkDoneProgressReport`. This change also stores that value so that a plugin can access it when they do a lookup in `client.messages`.
* | | build(deps): bump Luv to HEAD - 02d703b42 (#18808)Christian Clason2022-05-31
| | |
* | | docs(dev-style): remove rules covered by uncrustify #18767dundargoc2022-05-30
|/ / | | | | | | Uncrustify is the source of truth where possible. See also https://github.com/neovim/neovim/pull/18563
* | docs: clarify that nvim_strwidth counts control characters as one cell (#18802)zeertzjq2022-05-31
| |
* | fix(docs): correct obsolete note about 'writedelay' in dev docsbfredl2022-05-31
| |
* | fix(logging): skip recursion, fix crash #18764Justin M. Keyes2022-05-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: 1. The main log routine does not protect itself against recursion. log_lock() doesn't guard against recursion, it would deadlock... 2. 22b52dd462e5 (#11501) regressed 6f27f5ef91b3 (#10172), because set_init_1..process_spawn tries to log (see backtrace below), but the mutex isn't initialized yet. Even if the mutex were valid, we don't want early logging to fallback to stderr because that can break embedders when stdio is used for RPC. frame 1: 0x00000001001d54f4 nvim`open_log_file at log.c:205:7 frame 2: 0x00000001001d5390 nvim`logmsg(log_level=1, context="UI: ", func_name=0x0000000000000000, line_num=-1, eol=true, fmt="win_viewport") at log.c:150:20 frame : 0x000000010039aea2 nvim`ui_call_win_viewport(grid=2, win=1000, topline=0, botline=1, curline=0, curcol=0, line_count=1) at ui_events_call.generated.h:321:3 frame 4: 0x00000001003dfefc nvim`ui_ext_win_viewport(wp=0x0000000101816400) at window.c:939:5 frame 5: 0x00000001003ec5b4 nvim`win_ui_flush at window.c:7303:7 frame 6: 0x00000001003a04c0 nvim`ui_flush at ui.c:508:3 frame 7: 0x00000001002966ba nvim`do_os_system(argv=0x0000600000c0c000, input=0x0000000000000000, len=0, output=0x0000000000000000, nread=0x00007ff7bfefe830, silent=false, forward_output=false) at shell.c:894:3 frame 8: 0x0000000100295f68 nvim`os_call_shell(cmd="unset nonomatch; vimglob() { while [ $# -ge 1 ]; do echo \"$1\"; shift; done }; vimglob >/var/folders/gk/3tttv_md06987tlwpyp62jrw0000gn/T/nvimwwvwfD/0 ~foo", opts=kShellOptExpand | kShellOptSilent | kShellOptHideMess, extra_args=0x0000000000000000) at shell.c:663:18 frame 9: 0x0000000100295845 nvim`call_shell(cmd="unset nonomatch; vimglob() { while [ $# -ge 1 ]; do echo \"$1\"; shift; done }; vimglob >/var/folders/gk/3tttv_md06987tlwpyp62jrw0000gn/T/nvimwwvwfD/0 ~foo", opts=kShellOptExpand | kShellOptSilent | kShellOptHideMess, extra_shell_arg=0x0000000000000000) at shell.c:712:14 frame 10: 0x0000000100294c6f nvim`os_expand_wildcards(num_pat=1, pat=0x00007ff7bfefeb20, num_file=0x00007ff7bfefee58, file=0x00007ff7bfefee60, flags=43) at shell.c:328:7 ... frame 23: 0x000000010028ccef nvim`expand_env_esc(srcp=",~foo", dst="~foo", dstlen=4094, esc=false, one=false, prefix=0x0000000000000000) at env.c:673:17 frame 24: 0x000000010026fdd5 nvim`option_expand(opt_idx=29, val=",~foo") at option.c:1950:3 frame 25: 0x000000010026f129 nvim`set_init_1(clean_arg=false) at option.c:558:19 frame 26: 0x00000001001ea25e nvim`early_init(paramp=0x00007ff7bfeff5f0) at main.c:198:3 frame 27: 0x00000001001ea6bf nvim`main(argc=1, argv=0x00007ff7bfeff848) at main.c:255:3 Solution: 1. Check for recursion, show "internal error" message. - FUTURE: when "remote TUI" is merged, can we remove log_lock()? 2. Skip logging if log_init wasn't called yet.
* | Merge pull request #18798 from bfredl/doublehashbfredl2022-05-30
|\ \ | | | | | | refactor(api): use hashy hash for looking up api method and event names
| * | refactor(api): use hashy hash for looking up api method and event namesbfredl2022-05-30
| |/ | | | | | | | | This avoids generating khash tables at runtime, and is consistent with how evalfuncs lookup work.
* / docs(clang-format): one space in directives indent (#18800)kylo2522022-05-30
|/ | | | | PPIndentWidth The number of columns to use for indentation of preprocessor statements. When set to -1 (default) IndentWidth is used also for preprocessor statements.
* Merge pull request #18789 from dundargoc/ci/api-docs/run-in-draftsJames McCoy2022-05-29
|\ | | | | ci(api-docs): run in drafts as well
| * ci(api-docs): run in drafts as wellDundar Goc2022-05-29
| | | | | | | | | | A contributor should be able to be sure their PR passes the CI before clicking "Ready for review".
* | Merge pull request #18792 from famiu/feat/nvim_create_user_command/smodsbfredl2022-05-29
|\ \ | | | | | | feat(api): pass structured modifiers to commands
| * | feat(nvim_create_user_command): pass structured modifiers to commandsFamiu Haque2022-05-29
| | | | | | | | | | | | | | | | | | | | | Adds an `smods` key to `nvim_create_user_command` Lua command callbacks, which has command modifiers but in a structured format. This removes the need to manually parse command modifiers. It also reduces friction in using `nvim_cmd` inside a Lua command callback.
* | | test: add tests for inccommand with c_CTRL-R_= and c_CTRL-\_e (#18796)zeertzjq2022-05-29
| | |
* | | fix(winbar): set w_winrow_off when initializing firstwin size (#18793)zeertzjq2022-05-29
| | |
* | | test(job_spec): remove Xtest_jobstart_env log filezeertzjq2022-05-29
| | |
* | | ci(uncrustify): show diff on failure #18780dundargoc2022-05-28
| | | | | | | | | | | | This will make it possible to see what needs to be fixed without having uncrustify installed locally.
* | | vim-patch:8.2.5037: cursor position may be invalid after "0;" range (#18782)zeertzjq2022-05-29
| |/ |/| | | | | | | Problem: Cursor position may be invalid after "0;" range. Solution: Check the cursor position when it was set by ";" in the range. https://github.com/vim/vim/commit/4d97a565ae8be0d4debba04ebd2ac3e75a0c8010
* | Merge pull request #18786 from jamessan/latest-ciJames McCoy2022-05-28
|\ \ | | | | | | ci: use ubuntu-latest for vim-patches and coverity-scan
| * | ci: use ubuntu-latest for vim-patches and coverity-scanJames McCoy2022-05-28
|/ / | | | | | | | | | | Since we're not running tests or other things that are more sensitive to changes in the VM environment, use ubuntu-latest to avoid the busy work of updating the VM image.
* | test: fixeol cleanup created files #18785Javier Lopez2022-05-28
| | | | | | | | | | The async nature of feed_command caused a race condition on the calls to delete, leaving the files on the root of the repo. Just use os.remove and no need to wipeout.
* | fix(vim-patch.sh)Justin M. Keyes2022-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In scripts/vim-patch.sh line 335: printf ' ^-- SC2183 (warning): This format string has 4 variables, but is passed 3 arguments. In scripts/vim-patch.sh line 597: list_missing_vimpatches 1 "$@" | while read -r vim_commit; do ^--------^ SC2030 (info): Modification of vim_commit is local (to subshell caused by pipeline) In scripts/vim-patch.sh line 626: done < <(git -C "${VIM_SOURCE_DIR}" diff-tree --no-commit-id --name-only -r "${vim_commit}" -- . ':!src/version.c') ^-----------^ SC2031 (info): vim_commit was modified in a subshell. That change might be lost. For more information: https://www.shellcheck.net/wiki/SC2183 -- This format string has 4 variable... https://www.shellcheck.net/wiki/SC2030 -- Modification of vim_commit is loc... https://www.shellcheck.net/wiki/SC2031 -- vim_commit was modified in a subs...
* | fix(treesitter): offset directive associates range with capture (#18276)Lewis Russell2022-05-28
|/ | | | | | | | | Previously the `offset!` directive populated the metadata in such a way that the new range could be attributed to a specific capture. #14046 made it so the directive simply stored just the new range in the metadata and information about what capture the range is based from is lost. This change reverts that whilst also correcting the docs.
* refactor(regexp_nfa.c): match where Vim calls fopen() (#18778)zeertzjq2022-05-28
|
* Merge pull request #18776 from famiu/fix/winbar_noroombfredl2022-05-28
|\ | | | | fix(winbar): only allow adding winbar when there is space
| * fix(winbar): only allow adding winbar when there is spaceFamiu Haque2022-05-28
| |
* | docs(options): move all removed options to vim_diff.txt (#18770)dundargoc2022-05-28
|/ | | | It's more consistent to gather all removed options in one spot rather than spreading it out.
* fix(winbar): fix winbar disappear or glitch when moving a split (#18775)zeertzjq2022-05-28
|
* test(unit): use setup()/teardown() in buffer_spec.lua (#18739)Jun-ichi TAKIMOTO2022-05-28
|