100 Commits
Author SHA1 Message Date
Daniel Hahler e420cd6c67 test: dismiss quit_more from Lua #11226
Add a test for what #16537 fixed.
2022-06-12 16:45:44 -07:00
Daniel Hahler 1c5e347b8c more tests 2021-03-30 21:55:51 -04:00
Daniel Hahler d6cac809b0 tv_dict_watcher_notify: any_needs_free 2021-03-30 21:55:51 -04:00
Daniel Hahler aca002e7d5 test 2021-03-30 21:55:51 -04:00
Daniel Hahler 7268d49c50 tv_dict_watcher_remove: delay freeing with busy queue 2021-03-30 21:55:50 -04:00
Daniel Hahler 4c76b1e981 Test and initial fix for crash with dictwatcherdel
Fixes https://github.com/neovim/neovim/issues/11188.
2021-03-30 21:55:50 -04:00
Daniel Hahler 4c6628a7eb deps: fix BuildLuv without bundled libuv
Fixes:

    % rm -rf .deps
    % cmake -DUSE_BUNDLED_LUV=ON -DUSE_BUNDLED=OFF -S third-party -B .deps
    % cmake --build .deps
    ...
    [ 50%] Building C object CMakeFiles/luv.dir/src/luv.c.o
    /home/daniel/Vcs/neovim/.deps/build/src/luv/src/luv.c:20:10: fatal error: c-api/compat-5.3.h: No such file or directory
       20 | #include "c-api/compat-5.3.h"
          |          ^~~~~~~~~~~~~~~~~~~~
    compilation terminated.

This was broken since 78f1eccc8, where apparently the `LUA_COMPAT53_DIR`
was defined in a wrong location.
2020-11-16 13:52:50 +01:00
Daniel Hahler 82b09bc9d2 scripts/vim-patch.sh: include --shortstat with -m 2020-10-15 22:51:19 -04:00
Daniel Hahler 5a69eb99b7 tui.c: augment_terminfo: remove unused colorterm argument (#12602)
It is unused since 8898793ad.
2020-07-19 18:45:26 +02:00
Daniel Hahler 0cab85df4d vim-patch:8.1.1484: some tests are slow
Problem:    Some tests are slow.
Solution:   Add timing to the test messages.  Fix double free when quitting in
            VimLeavePre autocmd.
https://github.com/vim/vim/commit/75ee544f99ca66be8105570c6309d95435ad30d1
2020-05-25 18:52:29 +09:00
Daniel Hahler 1dc5e5ae9b doc 2020-01-26 15:20:51 +01:00
Daniel Hahler 20f5f44883 set -u before return
Follow up to a4d21f059.
2020-01-26 15:07:44 +01:00
Daniel Hahler f755370682 scripts/vim-patch.sh: add -m to usage
Ref: https://github.com/neovim/neovim/pull/11514#issuecomment-569476828
2020-01-26 14:51:14 +01:00
Daniel Hahler 8ba3354d74 api_set_error: include expression with "Failed to evaluate expression" (#11713) 2020-01-15 09:08:22 +01:00
Daniel Hahler 3d1531aee5 API: include invalid buffer/window/tabpage in error message (#11712) 2020-01-14 09:21:10 +01:00
Daniel Hahler e8d61005dc third-party: upgrade libvterm to v0.1.3 (#11678) 2020-01-07 20:12:56 +01:00
Daniel Hahler 5f1aec5abd Fix scripts/vim-patch.sh for Bash 4.3
Ref: https://github.com/neovim/neovim/pull/11514#issuecomment-568780231
2019-12-25 13:03:16 +01:00
Daniel Hahler 34abe8fd23 vim-patch.sh: list related missing Vim patches [ci skip] #11514
* scripts/vim-patch.sh: factor out _set_tokens_and_tags

This allows for caching `$tokens` and `$vim_commit_tags`, which will
become relevant with the next commit adding
`list_missing_previous_vimpatches_for_patch`.
2019-12-24 08:15:18 +01:00
Daniel Hahler b3686b1597 system(), jobstart(): raise error on non-executable #11234
* tv_to_argv: error when cmd is not executable
  Callers always assume that emsg was emitted:
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923
  - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202
* test/functional/provider: display reason from missing_provider
* provider#node#Detect: skip / handle non-existing node executable
2019-12-24 07:53:56 +01:00
Daniel Hahler 2e280dac7d gen_vimdoc.py: lint #11593 2019-12-23 07:08:49 +01:00
Daniel Hahler e1d63c180c tests: ex_terminal_spec: retry ":terminal (with fake shell)" (#11588)
Flaky failure (Travis CI, macOS):

    [ RUN      ] :terminal (with fake shell) works with gf: 10518.41 ms FAIL
    test/functional/terminal/ex_terminal_spec.lua:248: Row 1 did not match.
    Expected:
      |*^ready $ echo "scripts/shadacat.py"                |
      |*                                                  |
      |*[Process exited 0]                                |
      |:terminal echo "scripts/shadacat.py"              |
    Actual:
      |*^                                                  |
      |*[Process exited 0]                                |
      |*                                                  |
      |:terminal echo "scripts/shadacat.py"              |
    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.
    stack traceback:
            test/functional/ui/screen.lua:579: in function '_wait'
            test/functional/ui/screen.lua:361: in function 'expect'
            test/functional/terminal/ex_terminal_spec.lua:248: in function <test/functional/terminal/ex_terminal_spec.lua:245>
2019-12-22 11:23:39 +01:00
Daniel Hahler 64248e64a0 tests: sync Test_undojoin_redo from Vim #11589
This was not added in e0e482589 with Vim patch 8.0.0205.
2019-12-22 04:41:11 +01:00
Daniel Hahler b2443361ca build: DownloadAndExtractFile.cmake: retry status_code=7 #11582
Retry downloads with "Couldn't connect to server" errors.

Ref: https://lgtm.com/projects/g/neovim/neovim/logs/rev/pr-ca2f193a91f02881deb637f18694818bda49a7ed/lang:cpp/stage:Build%20master_026ba804d173c41ab99ee270c93f7975c1d6d713
2019-12-21 06:39:26 +01:00
Daniel Hahler 22b52dd462 log_init: call log_path_init (#11501)
This has to be done after `init_homedir` for XDG default and `set_init_1` for
lookup from env, which could be done earlier likely (to help with
https://github.com/neovim/neovim/issues/10937), but this keeps it in
sync with Vim.

Fixes https://github.com/neovim/neovim/issues/11499.
2019-12-02 22:21:15 +01:00
Daniel Hahler 56be9fbde1 testdir/runnvim.sh: create messages file always (#11503) 2019-12-02 18:26:40 +01:00
Daniel Hahler 0b7a7b23cc oldtest: support for running by filename (#11473)
Follow-up to 8969efca8 (Vim patch 8.1.0723)

NOTE: This changes the main entrypoint for running single oldtest files
to not use/require the ".res" extension anymore.  But it is handled for
B/C.

Adds a phony rule to run oldtest by filename.
Not going through "$(MAKE)" avoids GNUmakefile being used then (which I
use for WIP things), and it seems like SINGLE_MAKE should be used anyway
probably.
2019-12-02 17:18:37 +01:00
Daniel Hahler 7d66a02b88 build: CMakeLists: do not set MIN_LOG_LEVEL with C flags (#11498)
Fixes https://github.com/neovim/neovim/issues/11496.
2019-12-02 17:12:51 +01:00
Daniel Hahler 3b0191e330 src/nvim/testdir/test_quickfix.vim: align with Vim (#11502) 2019-12-02 17:12:26 +01:00
Daniel Hahler bff42cd7b3 ci: revisit OpenBSD/FreeBSD config (#11477) 2019-12-01 06:45:35 +01:00
Daniel Hahler cd6f755cf7 ci: SourceHut: revisit OpenBSD/FreeBSD config 2019-12-01 06:44:35 +01:00
Daniel Hahler fe927b84de terminfo_is_bsd_console: fallback to false
Ref: https://github.com/neovim/neovim/commit/ab7da4c53138768#r36200515
2019-12-01 06:44:35 +01:00
Daniel Hahler 0a9ecf460a vim-patch:8.1.2315: switchbuf=uselast #11480
Problem:    Not always using the right window when jumping to an error.
Solution:   Add the "uselast" flag in 'switchbuf'. (closes vim/vim#1652)
https://github.com/vim/vim/commit/539aa6b25eaea91dfd1a175cd053c0f259fa2e58
2019-11-29 09:57:27 -08:00
Daniel Hahler f33371c03f vim-patch:8.1.2017: cannot execute commands after closing cmdline window #11479
Problem:    Cannot execute commands after closing the cmdline window.
Solution:   Also trigger BufEnter and WinEnter. (closes vim/vim#4762)
https://github.com/vim/vim/commit/96e38a86a710fb6daec4550ac1667f019dc3a40e

Fixes https://github.com/neovim/neovim/issues/11279.
2019-11-29 09:51:25 -08:00
Daniel Hahler 5c9063cf2d snap: fix line continuation #11475
reverts commit 5298169068.
2019-11-28 20:51:43 -08:00
Daniel Hahler 629ea19994 deps: upgrade bundled LuaRocks: 2.4.4 => 3.2.1 (#10292)
Changelog: https://github.com/luarocks/luarocks/compare/v2.4.4..v3.2.1#diff-4ac32a78649ca5bdd8e0ba38b7006a1e
2019-11-19 19:10:30 +01:00
Daniel Hahler c0abaf9ca6 tests: Screen:expect: support "{MATCH:…}" 2019-11-09 21:58:28 -08:00
Daniel Hahler 4b5e2f7a0b tests: remove some redundant legacy tests #11028
These were turned into new-style Vim tests in cbecae46f.
2019-10-26 12:43:38 -07:00
Daniel Hahler 93fe30593b ex_echo: fix check for got_int #11225
It needs to return to not output any remaining parts.

Followup to https://github.com/neovim/neovim/pull/10926
Ref: https://github.com/neovim/neovim/issues/10923
2019-10-19 14:45:27 -07:00
Daniel Hahler d89ec55c45 test/functional: retry/Screen: failure instead of error #11173
- Running out of retries, or unexpected screen state should make the
  test FAIL, not ERROR.
- Uses levels to report the location of the caller.
- Improve message with retry-failure (formatting).

Before:

    [ RUN      ] test: 103.53 ms ERR
    test/functional/helpers.lua:388:
    retry() attempts: 1
    test/functional/ui/screen.lua:587: Row 1 did not match.
    Expected:
      |*X^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |
    Actual:
      |*^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
            test/functional/helpers.lua:388: in function 'retry'
            test/functional/test_spec.lua:24: in function <test/functional/test_spec.lua:23>

After:

    [ RUN      ] test: 105.22 ms FAIL
    test/functional/test_spec.lua:24: stopping after 1 retry() attempts.
    test/functional/test_spec.lua:25: Row 1 did not match.
    Expected:
      |*X^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |
    Actual:
      |*^                         |
      |{0:~                        }|
      |{0:~                        }|
      |                         |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
            test/functional/helpers.lua:389: in function 'retry'
            test/functional/test_spec.lua:24: in function <test/functional/test_spec.lua:23>
2019-10-19 14:15:07 -07:00
Daniel Hahler 3de4dc539a vim-patch:8.1.2180: Error E303 is not useful when 'directory' is empty (#11257)
Problem:    Error E303 is not useful when 'directory' is empty.
Solution:   Skip the error message. (Daniel Hahler, vim/vim#5067)
https://github.com/vim/vim/commit/00e192becd50a38cb21a1bc3f86fcc7a21f8ee88
2019-10-19 14:11:31 -07:00
Daniel Hahler 68b0873c45 vim-patch:8.1.2182: test42 seen as binary by git diff #11256
Problem:    Test42 seen as binary by git diff.
Solution:   Add .gitattributes file.  Make explicit that 'cpo' does not
            contain 'S'. (Daniel Hahler, closes vim/vim#5072)
https://github.com/vim/vim/commit/5b39d7adb0b9f02afe242f607d4c96250f06965d
2019-10-19 11:31:50 -07:00
Daniel Hahler 175ca82ca7 tests: let_spec: enable "multibyte env var to child process" (#11233) 2019-10-18 20:41:24 +02:00
Daniel Hahler 84aa86afb7 build: do not build test fixtures by default (#11230)
- tty-test is also used on Windows
- FUNCTIONALTEST_PREREQS: add printenv-test
2019-10-18 16:32:56 +02:00
Daniel Hahler 4bbad54817 tests: fix non-controversial misuse of pending (#11247)
Ref: https://github.com/neovim/neovim/pull/11184
2019-10-18 04:46:30 +02:00
Daniel Hahler 913d01bb03 vim-patch:8.1.2096: too many #ifdefs #11229
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_COMMENTS.
https://github.com/vim/vim/commit/8c96af9c05bfcac2d5ae081e098d4863db561511

Fixes https://github.com/vim/vim/issues/4972.
2019-10-17 00:44:10 -07:00
Daniel Hahler c5c06665ed scripts/vim-patch.sh: lazily update Vim source (#11207)
This gets done only initially, for `-l`, and when a commit cannot be found.

Also provide more compact instructions with `-l` / `show_vimpatches`.
2019-10-16 15:44:38 +02:00
Daniel Hahler 932edf4f33 tests: tui_spec: fix waiting for terminal to be ready (#11232)
The screen would have '-- TERMINAL --' already initially.

Related to flakiness of "TUI FocusGained/FocusLost in terminal-mode".
2019-10-15 20:50:51 +02:00
Daniel Hahler 2e14dffbb4 deps: pass LDFLAGS+=-static (#11138)
This is required when `build_old_libs=no` is used in `libtool`.

Fixes https://github.com/neovim/neovim/issues/11198
2019-10-14 15:16:58 +02:00
Daniel Hahler 5cf6beb221 scripts/vim-patch.sh -l: display commit subjects
Closes https://github.com/neovim/neovim/pull/11182.
2019-10-13 23:14:33 +02:00
Daniel Hahler 9af0fe529d recovery mode (-r/-L): use headless_mode (#11187)
Fixes https://github.com/neovim/neovim/issues/11181.
2019-10-11 19:17:11 +02:00
Daniel Hahler 6768c43e21 update_version_stamp: redirect stderr on first try, --first-parent #11186
Avoid noise during builds:

> fatal: No annotated tags can describe '417449f468c4ba186954f6295b3338fb55ee7b4a'.
> However, there were unannotated tags: try --tags.

This might be useful in general, but is expected to not happen - and
falling back is OK then.  The fallback command would still display
errors then.

It also uses `--first-parent`, which is important for when a release
branch gets merged back.
2019-10-10 01:38:15 -07:00
Daniel Hahler f2ad93168b third-party: upgrade libvterm to 0.1.2 (#11177) 2019-10-09 19:44:44 +02:00
Daniel Hahler db9f68f98d ci: AppVeyor: coverage for Lua (Windows) (#10426) 2019-10-09 03:07:42 +02:00
Daniel Hahler 7e4b744b64 ci: OpenBSD: enable functionaltest (#11178) 2019-10-08 17:36:58 +02:00
Daniel Hahler 7faa6c41c8 cmake: only set LUA_PRG with successful check (#11172)
This is relevant for when using `USE_BUNDLED_LUAJIT=ON` with
`USE_BUNDLED_LUAROCKS=OFF`, and then building without the necessary modules
being installed/activated there yet: it would check the other (system) "lua"
interpreters also, and in case all failed keep the `LUA_PRG` in the cache for
the last failed entry - making it not re-check the previous ones on the next
build (after you might have activated your custom LuaRocks installation).

Only setting LUA_PRG if the check was successful handles the case better where
it is configured already - we should not try to re-configure it then.
2019-10-07 17:42:40 +02:00
Daniel Hahler dfed0e60d7 Merge pull request #11154 from blueyed/bump-tree-sitter
ci: upgrade tree-sitter from 0.15.2 to 0.15.9
2019-10-07 13:34:23 +02:00
Daniel Hahler 6ea49d8c76 ci: use cluacov for better performance (#11152) 2019-10-07 13:01:14 +02:00
Daniel Hahler 8f20c50caa ci: submit_coverage: run luacov actually (#11169)
Apparently this got lost with #11127 / 77a551b65.
2019-10-07 00:44:54 +02:00
Daniel Hahler c8fe2a8d23 test/old: add test_fnamemodify.vim (#11168)
Moved to a new-style test in vim/vim@610cc1b9b (v7.4.1652).

Ref: https://github.com/neovim/neovim/pull/11165#issuecomment-538785588
2019-10-06 23:35:52 +02:00
Daniel Hahler e9b420dba5 lint 2019-10-06 22:55:24 +02:00
Daniel Hahler 7a3602378f ci: upgrade tree-sitter from 0.15.2 to 0.15.9
tree-sitter-c is still at 0.15.2 though.
2019-10-06 22:55:11 +02:00
Daniel Hahler 2b08dd8f06 tests: retry: "wait() evaluates the condition on given interval" (#11155)
Ref: https://github.com/neovim/neovim/issues/11137
2019-10-06 22:47:40 +02:00
Daniel Hahler e452988960 tests/functional: keep $TMPDIR in env (#11163) 2019-10-06 22:26:54 +02:00
Daniel Hahler 402afb0895 Makefile: use $TMPDIR below src/nvim/testdir (#11153)
This makes it ignored/cleaned automatically.
It was made absolute in 8821579ba, but to the root back then.
2019-10-04 22:10:16 +02:00
Daniel Hahler 77a551b657 ci: coverage for Lua (no Windows, using luacov) (#11127) 2019-10-04 16:09:42 +02:00
Daniel Hahler a341eb6087 win_line: update w_last_cursorline always
Vim patch 8.1.0856 (54d9ea6) caused a performance regression in Neovim,
when `set conceallevel=1 nocursorline` was used, since then due to
refactoring in 23c71d5 `w_last_cursorline` would never get updated
anymore.

Adds/uses `redrawdebug+=nodelta` for testing this.

Fixes https://github.com/neovim/neovim/issues/11100.
Closes https://github.com/neovim/neovim/pull/11101.
2019-10-04 08:48:57 +02:00
Daniel Hahler cd73a0342a tests: tui_spec: improve/merge OptionSet/deferred
Closes https://github.com/neovim/neovim/pull/11129.
2019-10-04 08:39:16 +02:00
Daniel Hahler 382391bb2d health: provider: skip checks with g:loaded_X_provider = 0 (#11147)
The Python provider was special (via [1]), and would continue to do
checks with `0` being set explicitly even.
This was fixed in #11044 (45447e3b6), ref: #11040.

This extends it to use the same method with all providers.

1: https://github.com/neovim/neovim/pull/8047
2019-10-04 08:16:30 +02:00
Daniel Hahler c3ae5e1375 test/old: align with Vim #11096 2019-10-03 00:32:14 -07:00
Daniel Hahler f96d1e6bc4 tui: fix handling of bg response after suspend (#11145)
`tui_terminal_after_startup` gets called right after resuming from
suspending (via `Ctrl-z`) already (not delayed as with the startup
itself), and would set `waiting_for_bg_response` to false then directly.
This results in the terminal response not being processed then anymore,
and leaking into Neovim itself.

This changes it to try 5 times always, which means that it typically
would stop after a few characters of input from the user typically, e.g.
with tmux, which does not send a reply.

While it might be better to have something based on the time (e.g. only
wait for max 1s), this appears to be easier to do.

Fixes regression in 8a4ae3d.
2019-10-03 08:04:24 +02:00
Daniel Hahler b069e9b20f tests: unit: NVIM_TEST_TRACE_LEVEL: default to 0 #11144
Traces are not useful normally (unless debugging/fixing tests), but only add
overhead.  Disable them by default.
2019-10-02 22:41:57 -07:00
Daniel Hahler 3d3c783fea ci: Travis: simplify 32bit build (#11093)
- `CMAKE_SYSTEM_LIBRARY_PATH` should not be used, and is a
  semicolon-separated list anyway [1]

1: https://cmake.org/cmake/help/latest/variable/CMAKE_SYSTEM_LIBRARY_PATH.html
2019-10-03 05:40:25 +02:00
Daniel Hahler 0c1be45ea0 shell: improve displaying of pulse (#11130)
- output "[...]" to indicate throttling is being used, instead of just
  an empty line
- go to beginning of line after displaying the pulse, so that following
  output is displayed over it
2019-10-02 06:26:57 +02:00
Daniel Hahler 333dc3d138 Fix flaky test: tui_spec: increase timeout (#11134)
Meant to fix:

    [  ERROR   ] test/functional/terminal/tui_spec.lua @ 925: TUI FocusGained/FocusLost in terminal-mode
    test/functional/ui/screen.lua:587: Row 6 did not match.
    Expected:
      |{1:r}eady $                                           |
      |[Process exited 0]                                |
      |                                                  |
      |                                                  |
      |                                                  |
      |*gained                                            |
      |{3:-- TERMINAL --}                                    |
    Actual:
      |{1:r}eady $                                           |
      |[Process exited 0]                                |
      |                                                  |
      |                                                  |
      |                                                  |
      |*:terminal                                         |
      |{3:-- TERMINAL --}                                    |

    To print the expect() call that would assert the current screen state, use
    screen:snapshot_util(). In case of non-deterministic failures, use
    screen:redraw_debug() to show all intermediate screen states.

    stack traceback:
    	test/functional/ui/screen.lua:587: in function '_wait'
    	test/functional/ui/screen.lua:370: in function 'expect'
    	test/functional/terminal/tui_spec.lua:934: in function <test/functional/terminal/tui_spec.lua:925>

I've thought about adding this, but it might not be really relevant, and
slows down the tests a bit (and a warning "warning: Screen test
succeeded immediately" with another test):

```diff
diff --git i/test/functional/terminal/tui_spec.lua w/test/functional/terminal/tui_spec.lua
index ada073c4e..4bc2ab4e0 100644
--- i/test/functional/terminal/tui_spec.lua
+++ w/test/functional/terminal/tui_spec.lua
@@ -818,6 +818,11 @@ describe('TUI FocusGained/FocusLost', function()
       ..'", "-u", "NONE", "-i", "NONE", "--cmd", "set noswapfile noshowcmd noruler"]')
     feed_data(":autocmd FocusGained * echo 'gained'\n")
     feed_data(":autocmd FocusLost * echo 'lost'\n")
+    -- Wait for autocommand to be registered.
+    retry(nil, nil, function()
+      feed_data(":autocmd FocusLost\n")
+      screen:expect{any="         echo 'lost'"}
+    end)
     feed_data("\034\016")  -- CTRL-\ CTRL-N
   end)
```
2019-10-02 04:56:22 +02:00
Daniel Hahler 8e25cf3881 patch_terminfo_bugs: TERM=xterm with non-xterm: ignore smglr (#11132)
"smglr" was added for TERM=xterm recently to the terminfo database,
which causes display issues with terminals that use `TERM=xterm` by
default for themselves, although not supporting it.

This patch makes "smglr" to be ignored then.

Fixes https://github.com/neovim/neovim/issues/10562
2019-10-02 04:07:10 +02:00
Daniel Hahler b7d6caaa03 Fix redraw regression with w_p_cole in visual mode
Fixes https://github.com/neovim/neovim/issues/11024, regressed in 23c71d51.
Closes https://github.com/neovim/neovim/pull/11120.
2019-10-02 03:51:46 +02:00
Daniel Hahler 30ae60e7ca Fix/revisit git-describe enhancement (#11124)
* Fix/keep massaging git-describe result

Ref: https://github.com/neovim/neovim/pull/11117#issuecomment-536416223

* build: revisit generation of version from Git

Fixes "make clean && make", where "auto/versiondef.h" would be missing
since b18b84d - because BYPRODUCTS are apparently removed when cleaning.

This includes the following improvements/changes:

- do not run git-describe during CMake's configure phase just for
  reporting
- do not print with changed Git version (too noisy, simplifies code)

* Move to src/nvim (included before config) for easier flow

* fallback to describe always, write empty include file

* update_version_stamp.lua: use prefix always
2019-10-02 03:45:59 +02:00
Daniel Hahler ac32426b94 build: get rid of warnings with cmake --debug-output (#11131) 2019-10-02 03:44:57 +02:00
Daniel Hahler 8a4ae3d664 tui: improve handle_background_color: short-circuit (#11067)
* handle_background_color: short-circuit if handled already

* Unit tests for handle_background_color

* set waiting_for_bg_response to false in tui_terminal_after_startup
  By then it should have been received.
2019-09-30 22:00:55 +02:00
Daniel Hahler dc52458522 third-party: upgrade libluv: 1.30.0-0 => 1.30.1-1 (#11092)
Changes: https://github.com/luvit/luv/compare/1.30.0-0...1.30.1-1
2019-09-30 12:55:47 +02:00
Daniel Hahler 179c46a016 provider#pythonx: resolve/expand exe from host var (#11047)
This reverts part of ade88fe4c [1].

This is required for `let g:python3_host_prog = 'python'` etc, where it
should get picked up from PATH.

Without this it would show:

```
  - INFO: pyenv: Path: /home/user/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/user/.pyenv
  - INFO: Using: g:python3_host_prog = "python"
  - ERROR: "python" was not found.
  - INFO: Executable: Not found
  - ERROR: Detected pip upgrade failure: Python executable can import "pynvim" but not "neovim": python
    - ADVICE:
      - Use that Python version to reinstall "pynvim" and optionally "neovim".
          pip3 uninstall pynvim neovim
          pip3 install pynvim
          pip3 install neovim  # only if needed by third-party software
```

Note that it additionally causes a weird error
("Detected pip upgrade failure"), due to `s:check_bin` emptying
`python_exe` (because the non-absolute file not being readable), and
`provider#pythonx#DetectByModule('pynvim', a:version)` from 75593e6fce
then just getting the value from the host var again (without actual
checks).
This is implicitly fixed via this patch now (because it is skipped), but
could need some improvement in this regard probably.

With this patch it resolves it (for a virtualenv where pynvim is not
made available intentionally):
```
  - INFO: pyenv: Path: /home/daniel/.pyenv/libexec/pyenv
  - INFO: pyenv: Root: /home/daniel/.pyenv
  - INFO: Using: g:python3_host_prog = "python"
  - WARNING: $VIRTUAL_ENV exists but appears to be inactive. This could lead to unexpected results.
    - ADVICE:
      - If you are using Zsh, see: http://vi.stackexchange.com/a/7654
  - INFO: Executable: /home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python
  - ERROR: Command error (job=11, exit code 1): `'/home/daniel/.pyenv/shims/tmp-system-deoplete.nvim-f205aF/python' -c 'import sys; sys.path.remove(""); import neovim; print(neovim.__file__)'` (in '/home/daniel/.dotfiles/vim/plugged/deoplete.nvim')
    Output: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
    Stderr: Traceback (most recent call last):  File "<string>", line 1, in <module>ModuleNotFoundError: No module named 'neovim'
  - INFO: Python version: 3.7.4
  - INFO: pynvim version: unable to load neovim Python module
  - ERROR: pynvim is not installed.
    Error: unable to load neovim Python module
    - ADVICE:
      - Run in shell: pip3 install pynvim

```

Note: this appears to display the error twice via "Output:" and
"Stderr:".

1: https://github.com/neovim/neovim/pull/8784
2019-09-30 12:52:04 +02:00
Daniel Hahler b0f5441c5e bundle: upgrade LuaJIT to latest v2.1 (#10321) 2019-09-30 12:50:22 +02:00
Daniel HahlerandJustin M. Keyes b18b84df5e build: run git-describe for dev version during build (#11117)
This avoids invoking CMake after a new commit, which might take 15s on
some systems.

Skipped on CMake < 3.2.0 (missing BYPRODUCTS support).

Co-Authored-By: Justin M. Keyes <justinkz@gmail.com>
2019-09-30 00:10:29 +02:00
Daniel Hahler 0a2a1e241f cmake: use LibFindMacros for utf8proc (#11114)
Also update doc.
2019-09-29 04:44:02 +02:00
Daniel Hahler 34d55f8607 terminfo_start: keep first flushing of ui buffer (#11118)
Initially done in 3626d2107 (#11074, for #11062), it was reverted then
in 445f2f409 (#11083, which added flushing later).

But it is still required here to avoid the reporting of the background
response with urxvt/kitty (`nvim -u NONE -cq`).
Apparently I've tested this not enough with 445f2f409 (probably only within tmux).
2019-09-29 03:06:36 +02:00
Daniel Hahler 0d9a3c86a1 vim-patch:8.1.2083: multi-byte chars do not work properly with "%.*S" in printf() (#11106)
Problem:    Multi-byte chars do not work properly with "%.*S" in printf().
Solution:   Use mb_ptr2cells(). Daniel Hahler, closes vim/vim#4989)
https://github.com/vim/vim/commit/ce0fac28977af31f1dec411d3535b4de2c3169b3
2019-09-28 00:32:22 +02:00
Daniel Hahler fe9d54f418 doc: contrib/local.mk.example: include ENABLE_LTO (#11097)
Using it takes 30+ additional seconds for me with a ccache-enabled build
(43s vs. 12s).

While it certainly makes sense to use DEBUG during development,
bisecting etc, it should be made clearer what causes this.
2019-09-26 23:43:49 +02:00
Daniel Hahler 54c66e636a Fix two more flaky tests (#11095)
* mode_spec: retry with increasing matchtime

`matchtime=2` might still be too low (with luacov on AppVeyor).

    [  ERROR   ] test/functional\ui\mode_spec.lua @ 47: ui mode_change event works in insert mode
    test\functional\ui\screen.lua:587: mode
    Expected objects to be the same.
    Passed in:
    (string) 'insert'
    Expected:
    (string) 'showmatch'
    Hint: full state of "mode":
      "insert"

Followup to fe60013fb.
ref #10941
Initially regressed in 7ed2122622

``

* ui/screen_basic_spec: set timeoutlen=10000

This fixes the test on slow CI.

Ref: https://ci.appveyor.com/project/neovim/neovim/builds/27600387/job/t468h2b3w9lwtlm5#L10930
2019-09-26 07:37:51 +02:00
Daniel Hahler cb25207171 vim-patch:8.0.0914: highlight attributes are always combined (#10256)
Problem:    Highlight attributes are always combined.
Solution:   Add the 'nocombine' value to replace attributes instead of
            combining them. (scauligi, closes vim/vim#1963)
https://github.com/vim/vim/commit/0cd2a94a4030f6bd12eaec44db92db108e33c913

Closes https://github.com/neovim/neovim/pull/10256.
2019-09-26 00:50:54 +02:00
Daniel Hahler 2621f4455d Merge pull request #10978 from blueyed/update-libuv
third-party: update libuv to v1.32.0
2019-09-25 11:52:41 +02:00
Daniel Hahler 0571145c40 paste: fix handling of "<" in cmdline (#11094)
Fixes https://github.com/neovim/neovim/issues/11088.
2019-09-25 09:15:33 +02:00
Daniel Hahler 70827ea1fa test/functional/preload.lua: _set_fmode for Windows 2019-09-25 05:47:15 +02:00
Daniel Hahler bb6b1267e7 Revert "win/os_env_exists(): workaround libuv bug #10734"
This reverts commit 278c5d452c.
2019-09-25 05:47:12 +02:00
Daniel Hahler 227ef71621 third-party: update libuv to v1.31.0 2019-09-25 05:45:54 +02:00
Daniel Hahler db6b4b677d tests: busted: nvim handler: display durations always (#11075)
This shows them also with test failures/errors, where it is useful to
see how long the test took (for flaky failures running into timeout).
2019-09-25 02:20:32 +02:00
Daniel Hahler 81b19df5f2 cmake/GetCompileFlags: include CMAKE_C_COMPILER_ARG1 (#11091)
This is used internally (e.g. on Travis) for 32-bit builds (`-m32`).
2019-09-25 00:09:23 +02:00
Daniel Hahler 0ab7da8561 timer_spec: fix/harden flaky tests (#11080)
Those are flaky when using luacov (which causes reproducible slowness).

E.g.:

    [  ERROR   ] test/functional\eval\timer_spec.lua @ 105: timers can invoke redraw in blocking getchar() call
    test\functional\ui\screen.lua:587: Row 3 did not match.
    Expected:
      |ITEM 1                                  |
      |ITEM 2                                  |
      |*{1:~                                       }|
      |{1:~                                       }|
      |{1:~                                       }|
      |^                                        |
    Actual:
      |ITEM 1                                  |
      |ITEM 2                                  |
      |*ITEM 3                                  |
      |{1:~                                       }|
      |{1:~                                       }|
      |^                                        |
2019-09-24 08:55:27 +02:00
Daniel Hahler 2476a97ced tui_spec: improve "TUI paste: exactly 64 bytes" (#11086)
Doing the screen test first might give insights about a possible
(flaky?) failure, where it looks like "feed_data" is processed out of
order:

    [  ERROR   ] test/functional/terminal/tui_spec.lua @ 561: TUI paste: exactly 64 bytes #10311
    test/functional/helpers.lua:388:
    retry() attempts: 490
    test/functional/terminal/tui_spec.lua:66: Expected objects to be the same.
    Passed in:
    (table: 0x44042de8) {
     *[1] = ' endzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz' }
    Expected:
    (table: 0x41d6e568) {
     *[1] = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz end' }
    stack traceback:
            test/functional/helpers.lua:388: in function 'retry'
            test/functional/terminal/tui_spec.lua:63: in function 'expect_child_buf_lines'
            test/functional/terminal/tui_spec.lua:569: in function <test/functional/terminal/tui_spec.lua:561>

Ref: https://github.com/neovim/neovim/pull/11083#issuecomment-534375201
Build log: https://travis-ci.org/neovim/neovim/jobs/588749739#L5597
2019-09-24 08:35:29 +02:00
Daniel Hahler 445f2f4096 tui: flush ui buffer in tui_terminal_after_startup (#11083)
This avoids having a dummy event to tickle the main loop.

Confirmed using `nvim -u NONE -c 'au FocusGained * q'` in tmux (with
`:set -g focus-events on`): without the flushing it would only exit
after pressing a key.

Moves the flushing done recently in 3626d2107.
`nvim -u NONE -cq` is still working (i.e. consuming the response for the
terminal background query itself), and the flickering mentioned in
3626d2107 is reduced again.

Reverts part of bfb21f3e0 (#7729).
2019-09-24 08:34:00 +02:00
Daniel Hahler 3626d2107e terminfo_start: flush buffer #11074
This aligns with `terminfo_stop`, which also flushes the buffer
after disabling things.

This ensures Neovim gets the response to the terminal background query
before exiting (`nvim -u NONE -cq` with e.g. urxvt or kitty).

Caveats:
* With kitty this causes some "flickering", likely since the alternate
  screen is being setup with `nvim -u NONE -cq`, whereas it would not be
  processed otherwise before quitting (as with the background query).
* tmux after this patch may print ^[[I (CSI I / FocusGained) after
  `nvim -u NONE -cq`.

Fixes https://github.com/neovim/neovim/issues/11062
2019-09-22 12:51:55 -07:00