Commit Graph

10345 Commits

Author SHA1 Message Date
Justin M. Keyes
8c8cf46c71
Merge #8044 'build: improve Lua module checks' 2018-02-22 09:38:10 +01:00
Daniel Hahler
4696a5a10e health.vim: minor cleanup (#8046) 2018-02-22 02:42:08 +01:00
Daniel Hahler
830b5819a0 health/provider: check Python also with loaded_var (#8047)
`g:loaded_python3_provider` gets set when the autoload file is sourced,
but this might error out, e.g. with deoplete:

    [deoplete] Failed to load python3 host. You can try to see what happened by starting nvim with $NVIM_PYTHON_LOG_FILE set and opening the generated log file. Also, the host stderr is available in messages.
    [deoplete] function remote#define#FunctionBootstrap[1]..remote#host#Require[10]..provider#pythonx#Require[13]..provider#Poll, line 14
    [deoplete] deoplete requires Python3 support("+python3").
    [deoplete] deoplete failed to load. Try the :UpdateRemotePlugins command and restart Neovim.  See also :checkhealth.

It refers to `:checkhealth` from there explicitly, which would then
(without this patch) say that Python 3 is disabled.

This patch changes the reported info to include that it might have been
disabled due to some error, and keeps on going.
2018-02-22 02:38:00 +01:00
Daniel Hahler
1eb4aff57a checkhealth: python: do not report pythonx_errs twice (#8045)
They get reported unconditionally as errors below.
2018-02-22 02:37:23 +01:00
Daniel Hahler
c8074e3792 runtime/autoload/health/*.vim: fix vint warning (#8048) 2018-02-22 02:30:39 +01:00
Daniel Hahler
ef0a07c073 cmake/LuaHelpers.cmake: check_lua_module: use 'lua -l'
It only shortens the traceback a bit for when a module is not found
though, only removing the "(command line):1: in main chunk" (with
lua5.2).
2018-02-22 01:22:26 +01:00
Daniel Hahler
8851903434 cmake/LuaHelpers.cmake: check_lua_module: display errors
This helps to figure out what the problem is, e.g. in my case I have
lua51-mpack installed to be used with luajit, but it is broken (missing
libmpack).

With this patch you get:

    -- Checking Lua interpreter /usr/bin/luajit
    /usr/bin/luajit: error loading module 'mpack' from file '/usr/lib/lua/5.1/mpack.so':
            libmpack.so.0: cannot open shared object file: No such file or directory
    stack traceback:
            [C]: at 0x55fcf0166fb0
            [C]: in function 'require'
            (command line):1: in main chunk
            [C]: at 0x55fcf01188a0
    -- [/usr/bin/luajit] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua5.1
    /usr/bin/lua5.1: error loading module 'mpack' from file '/usr/lib/lua/5.1/mpack.so':
            libmpack.so.0: cannot open shared object file: No such file or directory
    stack traceback:
            [C]: ?
            [C]: in function 'require'
            (command line):1: in main chunk
            [C]: ?
    -- [/usr/bin/lua5.1] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua5.2
    /usr/bin/lua5.2: (command line):1: module 'mpack' not found:
            no field package.preload['mpack']
            no file '/usr/share/lua/5.2/mpack.lua'
            no file '/usr/share/lua/5.2/mpack/init.lua'
            no file '/usr/lib/lua/5.2/mpack.lua'
            no file '/usr/lib/lua/5.2/mpack/init.lua'
            no file './mpack.lua'
            no file '/usr/lib/lua/5.2/mpack.so'
            no file '/usr/lib/lua/5.2/loadall.so'
            no file './mpack.so'
    stack traceback:
            [C]: in function 'require'
            (command line):1: in main chunk
            [C]: in ?
    -- [/usr/bin/lua5.2] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua
    /usr/bin/lua: (command line):1: module 'mpack' not found:
            no field package.preload['mpack']
            no file '/usr/share/lua/5.3/mpack.lua'
            no file '/usr/share/lua/5.3/mpack/init.lua'
            no file '/usr/lib/lua/5.3/mpack.lua'
            no file '/usr/lib/lua/5.3/mpack/init.lua'
            no file './mpack.lua'
            no file './mpack/init.lua'
            no file '/usr/lib/lua/5.3/mpack.so'
            no file '/usr/lib/lua/5.3/loadall.so'
            no file './mpack.so'
    stack traceback:
            [C]: in function 'require'
            (command line):1: in main chunk
            [C]: in ?
    -- [/usr/bin/lua] The 'mpack' lua package is required for building Neovim
    CMake Error at CMakeLists.txt:459 (message):
      A suitable Lua interpreter was not found.

While this makes it more verbose for the expected error case ("module
'mpack' not found"), the behavior before this patch hides too much.
This is the old output:

    -- Checking Lua interpreter /usr/bin/luajit
    -- [/usr/bin/luajit] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua5.1
    -- [/usr/bin/lua5.1] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua5.2
    -- [/usr/bin/lua5.2] The 'mpack' lua package is required for building Neovim
    -- Checking Lua interpreter /usr/bin/lua
    -- [/usr/bin/lua] The 'mpack' lua package is required for building Neovim
    CMake Error at CMakeLists.txt:459 (message):
      A suitable Lua interpreter was not found.

This is for when the whole configuration runs (i.e. after `make
distclean`), afterwards only one Lua interpreter gets checked only.
2018-02-22 01:22:19 +01:00
UTkarsh Maheshwari
4a8f081971 vim-patch:8.0.0225: put in Visual block mode terminates early (#8040)
Problem:    When a block is visually selected and put is used on the end of
            the selection only one line is changed.
Solution:   Check for the end properly. (Christian Brabandt, neovim issue
            5781)
9957a10d0f
2018-02-21 21:56:47 +01:00
Björn Linse
471d6d4db5
Merge pull request #8039 from bfredl/deadscreen
remove dead code in screen.c for terminals without scroll regions
2018-02-21 20:33:33 +01:00
Björn Linse
464ac8fe2a screen: win_del_lines/win_ins_lines cleanup 2018-02-21 19:20:23 +01:00
Björn Linse
54c0bf6429 screen: remove dead code emulating terminals without scroll regions
This logic is now in tui/tui.c
2018-02-21 16:10:10 +01:00
KunMing Xie
ec02d9aad6 vim-patch:8.0.0222: blockwise put on multi-byte char (#8030)
Note: code change was covered by c2a1821611

Problem:    When a multi-byte character ends in a zero byte, putting blockwise
            text puts it before the character instead of after it.
Solution:   Use int instead of char for the character under the cursor.
            (Luchr, closes vim/vim#1403)  Add a test.
c81299684b
2018-02-20 21:44:37 +01:00
Björn Linse
c57d315963
Merge pull request #8031 from bfredl/gotintstatus
jobwait: return -2 on interrupt even with timeout
2018-02-20 15:15:06 +01:00
Björn Linse
04fdbfe17d jobwait: return -2 on interrupt also with timeout 2018-02-20 12:32:23 +01:00
James McCoy
6bbec71fde
Merge pull request #8019 from jamessan/invalid-provider-stderr
Improve error handling and reduce duplication of providers' #Require()
2018-02-19 20:10:10 -05:00
Justin M. Keyes
e215b6cb85
Merge #7412 'win: enable more tests' 2018-02-20 00:13:58 +01:00
KunMing Xie
e177c186e4 vim-patch:8.0.0214 (#8010)
vim-patch:8.0.0214: leaking memory when syntax cluster id is unknown

Problem:    Leaking memory when syntax cluster id is unknown. (Coverity)
Solution:   Free the memory.

d7a96151e0
2018-02-19 23:41:25 +01:00
Justin M. Keyes
4b81f627c6 build/gcc: disable -Warray-bounds entirely #7923
We need to disable -Warray-bounds locally for kbtree.h, but we can't
because _Pragma("GCC diagnostic pop") is broken in GCC 5.x+.

So this commit disables -Warray-bounds entirely (for GCC only).

GCC bug:
"_Pragma diagnostic 'ignored' in macro with strict-overflow not
suppressing warning fully with -Werror"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66099

ref https://github.com/neovim/neovim/pull/7083#issuecomment-326323599
closes #7921
2018-02-19 22:14:34 +01:00
Justin M. Keyes
06b7561e78
build: remove contents of build/runtime/doc/* surgically (#8024)
Only remove the directory contents. If the directory itself is removed,
then `sudo make install` creates a root-owned …/doc/ directory. That
breaks the next non-root build.

This was an accident of 0b1904d835.

Note: the following does not work, because it misses renamed help files
(which would no longer be in the build-tree definition)

    COMMAND ${CMAKE_COMMAND} -E remove ${BUILDDOCFILES} ${GENERATED_HELP_TAGS}
2018-02-19 21:10:16 +01:00
Jan Edmund Lazo
7fa69fb288 Resolve issues mentioned in PR review 2018-02-19 07:10:47 -05:00
Jan Edmund Lazo
795da343bb test: win: emulate yes with for loop 2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
07dfe0f5ea test: win: enable ui/wildmode_spec.lua 2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
8dcfd58e2c test: win: enable termclose_spec.lua 2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
d80bf3c656 test: enable ex_cmds/cd_spec.lua on Windows 2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
df99ab461e test: enable legacy/fixeol_spec in Windows
Try nvim's delete() for cross-platform file remove in Windows
2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
55ce6bfffb test: enable ex_cmds/write_spec.lua in Windows 2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
6beb7ee77a win: enable legacy test 051 2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
f1e6828b7b win: enable legacy test 059 2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
2943056f75 win: enable legacy test 107 2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
44dc8b4753 win: enable legacy test 093 2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
10fbae086a win: enable legacy/arglist_spec.lua 2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
18a53b6502 win: enable legacy test 30 2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
c5a7f451ce win: enable legacy/getcwd_spec.lua 2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
3c0cc9c2fb win: enable legacy/wordcount_spec.lua 2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
e55de56a99 win: enable legacy/packadd_spec.lua 2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
f4d82c1438 win: enable legacy test 011 2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
4f65cd7c0a win: enable legacy/delete_spec.lua 2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
bde32edefe win: enable legacy test 097 2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
0fd899aa07 win: enable legacy test 025 2018-02-19 07:10:41 -05:00
Jan Edmund Lazo
3e19e18f4c win: enable job tests that use jobstart only
- echo "" does not hang in powershell
    - cmd.exe's echo command does not hang.
    - job tests default to powershell (WHY?)
- wait 5 seconds for powershell to create an empty file
    - powershell is slow
    - cannot reliably validate the id returned by jobstart via jobpid, jobstop
    - if using cmd.exe, waiting for a second should be enough
- remaining job tests are unreliable in Windows because any build can pass/fail
  for same conditions without changes, especially if the error is in stderr
2018-02-19 07:10:41 -05:00
Shougo
00665d3c70 vim-patch:8.0.1493: completion items cannot be annotated (#8003)
Problem:    Completion items cannot be annotated.
Solution:   Add a "user_data" entry to the completion item. (Ben Jackson,
            coses vim/vim#2608, closes vim/vim#2508)

9b56a57cda
2018-02-18 23:56:59 +01:00
Justin M. Keyes
eccd60aaf4 runtime/doc: modeline is mandatory in help docs
see Vim 8.0.0650 e9134421ab
2018-02-18 22:17:47 +01:00
KunMing Xie
44071fe77a vim-patch:8.0.0212: buffer for key name may be too small (#8009)
Problem:    The buffer used to store a key name theoreticaly could be too
            small. (Coverity)
Solution:   Count all possible modifier characters.  Add a check for the
            length just in case.

423977d3ce
2018-02-18 21:55:39 +01:00
Justin M. Keyes
71e89cec23
Merge #8018 from justinmk/test-eq_any 2018-02-18 19:59:06 +01:00
Justin M. Keyes
7973847d02 test/util: remove eq_any()
It was added in the parent commit, but ended up not being used. And
I can't think of a case where it will be used: instead we would probably
want to generalize expect_msg_seq() if necessary.
2018-02-18 19:22:44 +01:00
Justin M. Keyes
e72ecdb7ca test/util: expect_msg_seq()
job_spec.lua on AppVeyor (Windows) often fails like this:

      FAILED  ] C:/projects/neovim/test/functional\core\job_spec.lua @ 72: jobs changes to given `cwd` directory
    C:/projects/neovim/test/functional\core\job_spec.lua:81: Expected objects to be the same.
    Passed in:
    (table) {
      [1] = 'notification'
      [2] = 'stdout'
     *[3] = {
        [1] = 0
       *[2] = {
          [1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0' } } }
    Expected:
    (table) {
      [1] = 'notification'
      [2] = 'stdout'
     *[3] = {
        [1] = 0
       *[2] = {
          [1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0'
         *[2] = '' } } }
    stack traceback:

Message chunking is non-deterministic, so we need to try different
variants.
2018-02-18 19:19:03 +01:00
Björn Linse
8b543d09d8
Merge pull request #8011 from nimitbhardwaj/vim-8.0.0649
vim-patch:8.0.0649 and vim-patch:8.0.0650
2018-02-17 12:09:44 +01:00
Marco Hinz
2f018b1833
third-party: upgrade libunibilium from 1.2.1 to 2.0.0 (#8016)
❯ git log --oneline v2.0.0...v1.2.1
e3b16d6 (HEAD -> master, tag: v2.0.0, origin/master, origin/HEAD) version 2.0.0
6f0037b (origin/wide-int) update README with build instructions / prerequisites
f40c97a explicitly mention the new "wide integer" format in the man pages
37aa305 use ncurses*-config to get TERMINFO_DIRS if possible
2461ee1 use perl instead of sed hackery to create unibilium.pc
23e9dea don't cast between pointer types of different alignments
1b5b8fd add basic test for wide format
cfe4216 add xterm-256color; regenerate static tests from ncurses 6.1
6e55e75 escape backslashes properly
42f3cdd add 32 bit number support (wide terminfo format)
73385ba unibi-dump: accept a filename as argument
ec9ef0a don't pass NULL to memcpy
b42315b (origin/typecheck) make unibi_var_t slightly more type-safe
2018-02-17 00:35:39 +01:00
James McCoy
3af3515e74 Add provider#Poll() to handle starting and polling the provider 2018-02-16 14:08:12 -05:00
James McCoy
6fbb8d6739 provider: Safely access job.stderr in #Require
If `jobstart()` fails, then the subsequent `rpcrequest()` will throw due
to an invalid channel id.  This causes `job.stderr` not to exist, so we
throw another exception when trying to dump the job's stderr.

    Error detected while processing function remote#define#AutocmdBootstrap[1]..remote#host#Require[10]..provider#pythonx#Require:
    line 22:
    E716: Key not present in Dictionary: stderr

This obfuscates the actual problem.
2018-02-16 13:33:23 -05:00