From 108e858d61bcd5962ca404f12d8b56e5986739c1 Mon Sep 17 00:00:00 2001 From: w0rp Date: Thu, 7 Sep 2023 19:59:05 +0100 Subject: Update minimum supported NeoVim version to 0.6.0 Stop officially supporting NeoVim versions below 0.6.0, without necessarily breaking ALE for people using older versions. --- .github/workflows/main.yml | 2 +- Dockerfile | 2 +- README.md | 2 +- doc/ale-development.txt | 4 +- plugin/ale.vim | 3 +- run-tests | 22 +++--- test/completion/test_omnifunc_completion.vader | 2 +- test/test_neovim_diagnostics.vader | 100 ++++++++++++------------- 8 files changed, 66 insertions(+), 71 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4910a5ed..27d02c1a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -28,7 +28,7 @@ jobs: vim-version: - '--vim-80-only' - '--vim-90-only' - - '--neovim-02-only' + - '--neovim-06-only' - '--neovim-08-only' - '--linters-only' steps: diff --git a/Dockerfile b/Dockerfile index c7cc6e98..e751763c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM testbed/vim:${TESTBED_VIM_VERSION} RUN install_vim -tag v8.0.0027 -build \ -tag v9.0.0297 -build \ - -tag neovim:v0.2.0 -build \ + -tag neovim:v0.6.0 -build \ -tag neovim:v0.8.0 -build ENV PACKAGES="\ diff --git a/README.md b/README.md index 42d1d6b6..a61358b4 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ![ALE Logo by Mark Grealish - https://www.bhalash.com/](https://user-images.githubusercontent.com/3518142/59195920-2c339500-8b85-11e9-9c22-f6b7f69637b8.jpg) ALE (Asynchronous Lint Engine) is a plugin providing linting (syntax checking -and semantic errors) in NeoVim 0.2.0+ and Vim 8.0+ while you edit your text files, +and semantic errors) in NeoVim 0.6.0+ and Vim 8.0+ while you edit your text files, and acts as a Vim [Language Server Protocol](https://langserver.org/) client. diff --git a/doc/ale-development.txt b/doc/ale-development.txt index 6bc009fd..6ba03da1 100644 --- a/doc/ale-development.txt +++ b/doc/ale-development.txt @@ -48,7 +48,7 @@ documented functions and options, until a major version is planned. Breaking changes should be preceded by a deprecation phase complete with warnings. Changes required for security may be an exception. -ALE supports Vim 8 and above, and NeoVim 0.2.0 or newer. These are the +ALE supports Vim 8 and above, and NeoVim 0.6.0 or newer. These are the earliest versions of Vim and NeoVim which support |job|, |timer|, |closure|, and |lambda| features. All ALE code should be written so it is compatible with these versions of Vim, or with version checks so particular features can @@ -156,7 +156,7 @@ environments. 1. Vim 8.0.0027 on Linux via GitHub Actions. 2. Vim 9.0.0297 on Linux via GitHub Actions. -3. NeoVim 0.2.0 on Linux via GitHub Actions. +3. NeoVim 0.6.0 on Linux via GitHub Actions. 4. NeoVim 0.8.0 on Linux via GitHub Actions. 6. Vim 8 (stable builds) on Windows via AppVeyor. diff --git a/plugin/ale.vim b/plugin/ale.vim index e239f233..7eccdb5f 100644 --- a/plugin/ale.vim +++ b/plugin/ale.vim @@ -14,6 +14,7 @@ let g:loaded_ale_dont_use_this_in_other_plugins_please = 1 " A flag for detecting if the required features are set. if has('nvim') + " We check for NeoVim 0.2.0+, but we only officially support NeoVim 0.6.0 let s:has_features = has('timers') && has('nvim-0.2.0') else " Check if Job and Channel functions are available, instead of the @@ -25,7 +26,7 @@ if !s:has_features " Only output a warning if editing some special files. if index(['', 'gitcommit'], &filetype) == -1 " no-custom-checks - echoerr 'ALE requires NeoVim >= 0.2.0 or Vim 8 with +timers +job +channel' + echoerr 'ALE requires NeoVim >= 0.6.0 or Vim 8 with +timers +job +channel' " no-custom-checks echoerr 'Please update your editor appropriately.' endif diff --git a/run-tests b/run-tests index a2b83bd2..a952663f 100755 --- a/run-tests +++ b/run-tests @@ -24,7 +24,7 @@ tests='test/*.vader test/*/*.vader test/*/*/*.vader' # These flags are forwarded to the script for running Vader tests. verbose_flag='' quiet_flag='' -run_neovim_02_tests=1 +run_neovim_06_tests=1 run_neovim_08_tests=1 run_vim_80_tests=1 run_vim_90_tests=1 @@ -43,7 +43,7 @@ while [ $# -ne 0 ]; do --build-image) run_vim_80_tests=0 run_vim_90_tests=0 - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=0 run_linters=0 shift @@ -54,7 +54,7 @@ while [ $# -ne 0 ]; do run_linters=0 shift ;; - --neovim-02-only) + --neovim-06-only) run_neovim_08_tests=0 run_vim_80_tests=0 run_vim_90_tests=0 @@ -62,27 +62,27 @@ while [ $# -ne 0 ]; do shift ;; --neovim-08-only) - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_vim_80_tests=0 run_vim_90_tests=0 run_linters=0 shift ;; --vim-only) - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=0 run_linters=0 shift ;; --vim-80-only) - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=0 run_vim_90_tests=0 run_linters=0 shift ;; --vim-90-only) - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=0 run_vim_80_tests=0 run_linters=0 @@ -91,14 +91,14 @@ while [ $# -ne 0 ]; do --linters-only) run_vim_80_tests=0 run_vim_90_tests=0 - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=0 shift ;; --fast) run_vim_80_tests=0 run_vim_90_tests=0 - run_neovim_02_tests=0 + run_neovim_06_tests=0 run_neovim_08_tests=1 shift ;; @@ -113,7 +113,7 @@ while [ $# -ne 0 ]; do echo ' -q Hide output for successful tests' echo ' --build-image Run docker image build only.' echo ' --neovim-only Run tests only for NeoVim' - echo ' --neovim-02-only Run tests only for NeoVim 0.2' + echo ' --neovim-06-only Run tests only for NeoVim 0.2' echo ' --neovim-08-only Run tests only for NeoVim 0.8' echo ' --vim-only Run tests only for Vim' echo ' --vim-80-only Run tests only for Vim 8.2' @@ -228,7 +228,7 @@ trap cancel_tests INT TERM for vim in $(docker run --rm "$DOCKER_RUN_IMAGE" ls /vim-build/bin | grep '^neovim\|^vim' ); do if ( [[ $vim =~ ^vim-v8.0 ]] && ((run_vim_80_tests)) ) \ || ( [[ $vim =~ ^vim-v9.0 ]] && ((run_vim_90_tests)) ) \ - || ( [[ $vim =~ ^neovim-v0.2 ]] && ((run_neovim_02_tests)) ) \ + || ( [[ $vim =~ ^neovim-v0.6 ]] && ((run_neovim_06_tests)) ) \ || ( [[ $vim =~ ^neovim-v0.8 ]] && ((run_neovim_08_tests)) ); then echo "Starting Vim: $vim..." file_number=$((file_number+1)) diff --git a/test/completion/test_omnifunc_completion.vader b/test/completion/test_omnifunc_completion.vader index 1db64705..c9ecd205 100644 --- a/test/completion/test_omnifunc_completion.vader +++ b/test/completion/test_omnifunc_completion.vader @@ -45,7 +45,7 @@ Execute(The start position should be returned when results can be requested): AssertEqual 11, ale#completion#OmniFunc(1, '') Execute(The omnifunc function should return async results): - " Neovim 0.2.0 and 0.4.4 struggles at running these tests. + " Neovim struggles at running these tests. if !has('nvim') call timer_start(0, function('SetCompletionResult')) diff --git a/test/test_neovim_diagnostics.vader b/test/test_neovim_diagnostics.vader index 41997097..4cef8d35 100644 --- a/test/test_neovim_diagnostics.vader +++ b/test/test_neovim_diagnostics.vader @@ -2,10 +2,6 @@ Before: Save g:ale_use_neovim_diagnostics_api function! CollectMessages(buffer) - if !has('nvim-0.6') - return - endif - let l:messages = [] for l:diag in v:lua.vim.diagnostic.get(a:buffer) call add(l:messages, l:diag.message) @@ -22,56 +18,54 @@ After: Execute(Should only set diagnostics belonging to the given buffer): if has('nvim-0.6') + let b:other_bufnr = bufnr('/foo/bar/baz', 1) + " Make sure we actually get another buffer number, or the test is invalid. + AssertNotEqual -1, b:other_bufnr - let b:other_bufnr = bufnr('/foo/bar/baz', 1) - " Make sure we actually get another buffer number, or the test is invalid. - AssertNotEqual -1, b:other_bufnr - - let g:ale_use_neovim_diagnostics_api = 1 - - call ale#engine#SetResults(bufnr('%'), [ - \ { - \ 'lnum': 1, - \ 'col': 10, - \ 'bufnr': bufnr('%'), - \ 'vcol': 0, - \ 'linter_name': 'bettercode', - \ 'nr': -1, - \ 'type': 'W', - \ 'text': 'A', - \ }, - \ { - \ 'lnum': 2, - \ 'col': 10, - \ 'bufnr': b:other_bufnr, - \ 'vcol': 0, - \ 'linter_name': 'bettercode', - \ 'nr': -1, - \ 'type': 'W', - \ 'text': 'B', - \ }, - \ { - \ 'lnum': 3, - \ 'col': 1, - \ 'bufnr': bufnr('%'), - \ 'vcol': 0, - \ 'linter_name': 'bettercode', - \ 'nr': -1, - \ 'type': 'E', - \ 'text': 'C', - \ }, - \ { - \ 'lnum': 4, - \ 'col': 1, - \ 'bufnr': b:other_bufnr, - \ 'vcol': 0, - \ 'linter_name': 'bettercode', - \ 'nr': -1, - \ 'type': 'E', - \ 'text': 'D', - \ }, - \]) + let g:ale_use_neovim_diagnostics_api = 1 - AssertEqual ["A", "C"], CollectMessages(bufnr('%')) + call ale#engine#SetResults(bufnr('%'), [ + \ { + \ 'lnum': 1, + \ 'col': 10, + \ 'bufnr': bufnr('%'), + \ 'vcol': 0, + \ 'linter_name': 'bettercode', + \ 'nr': -1, + \ 'type': 'W', + \ 'text': 'A', + \ }, + \ { + \ 'lnum': 2, + \ 'col': 10, + \ 'bufnr': b:other_bufnr, + \ 'vcol': 0, + \ 'linter_name': 'bettercode', + \ 'nr': -1, + \ 'type': 'W', + \ 'text': 'B', + \ }, + \ { + \ 'lnum': 3, + \ 'col': 1, + \ 'bufnr': bufnr('%'), + \ 'vcol': 0, + \ 'linter_name': 'bettercode', + \ 'nr': -1, + \ 'type': 'E', + \ 'text': 'C', + \ }, + \ { + \ 'lnum': 4, + \ 'col': 1, + \ 'bufnr': b:other_bufnr, + \ 'vcol': 0, + \ 'linter_name': 'bettercode', + \ 'nr': -1, + \ 'type': 'E', + \ 'text': 'D', + \ }, + \]) + AssertEqual ["A", "C"], CollectMessages(bufnr('%')) endif -- cgit v1.2.3