diff options
-rw-r--r-- | .github/workflows/linux_vim.yml | 46 | ||||
-rw-r--r-- | autoload/lsp_settings/utils.vim | 7 | ||||
-rw-r--r-- | test/.themisrc | 3 | ||||
-rw-r--r-- | test/lsp_settings/utils.vimspec | 43 |
4 files changed, 96 insertions, 3 deletions
diff --git a/.github/workflows/linux_vim.yml b/.github/workflows/linux_vim.yml new file mode 100644 index 0000000..8b0f4f2 --- /dev/null +++ b/.github/workflows/linux_vim.yml @@ -0,0 +1,46 @@ +name: linux_vim + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + name: [vim-v82-x64, vim-v81-x64] + include: + - name: vim-v82-x64 + os: ubuntu-latest + vim_version: 8.2.0037 + glibc_version: 2.15 + - name: vim-v81-x64 + os: ubuntu-latest + vim_version: 8.1.2414 + glibc_version: 2.15 + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v1 + - name: Download vim + shell: bash + run: | + mkdir -p ~/vim/bin + curl -L https://github.com/vim/vim-appimage/releases/download/v${{matrix.vim_version}}/GVim-v${{matrix.vim_version}}.glibc${{matrix.glibc_version}}-x86_64.AppImage -o ~/vim/bin/vim + chmod u+x ~/vim/bin/vim + - name: Download test runner + shell: bash + run: git clone --depth 1 --branch v1.5.4 --single-branch https://github.com/thinca/vim-themis ~/themis + - name: Run tests + shell: bash + run: | + export PATH=~/vim/bin:$PATH + export PATH=~/themis/bin:$PATH + export THEMIS_VIM=vim + vim --version + themis --reporter spec diff --git a/autoload/lsp_settings/utils.vim b/autoload/lsp_settings/utils.vim index 940acb1..d342388 100644 --- a/autoload/lsp_settings/utils.vim +++ b/autoload/lsp_settings/utils.vim @@ -6,6 +6,7 @@ function! lsp_settings#utils#msg(msg) abort endfunction function! lsp_settings#utils#error(msg) abort + redraw echohl Error echomsg a:msg echohl None @@ -19,9 +20,9 @@ function! lsp_settings#utils#group_name(ft) abort return printf('vim_lsp_suggest_%s', a:ft) endfunction -function! lsp_settings#utils#first_one(cmd) abort - if empty(a:cmd) +function! lsp_settings#utils#first_one(lines) abort + if empty(a:lines) return '' endif - return fnamemodify(split(a:cmd, "\n")[0], ':p') + return fnamemodify(split(a:lines, "\n")[0], ':p') endfunction diff --git a/test/.themisrc b/test/.themisrc new file mode 100644 index 0000000..d73cbf9 --- /dev/null +++ b/test/.themisrc @@ -0,0 +1,3 @@ +set encoding=utf-8 +call themis#option('recursive', 1) +call themis#helper('command').with(themis#helper('assert')) diff --git a/test/lsp_settings/utils.vimspec b/test/lsp_settings/utils.vimspec new file mode 100644 index 0000000..ee94ccc --- /dev/null +++ b/test/lsp_settings/utils.vimspec @@ -0,0 +1,43 @@ +Describe lsp_settings#utils + Describe lsp_settings#utils#first_one + It should return first item in lines + Assert Equals(lsp_settings#utils#first_one("\nfoo"), fnamemodify('foo', ':p')) + Assert Equals(lsp_settings#utils#first_one('foo'), fnamemodify('foo', ':p')) + Assert Equals(lsp_settings#utils#first_one("foo\nbar\n"), fnamemodify('foo', ':p')) + End + End + + Describe lsp_settings#utils#group_name + It should return autocmd group name + Assert Equals(lsp_settings#utils#group_name('foo'), 'vim_lsp_suggest_foo') + End + End + + Describe lsp_settings#utils#valid_name + It should return whether the command is valid + Assert Equals(lsp_settings#utils#valid_name('foo'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo bar'), 0) + Assert Equals(lsp_settings#utils#valid_name(' foo'), 0) + Assert Equals(lsp_settings#utils#valid_name(' foo '), 0) + Assert Equals(lsp_settings#utils#valid_name('foo '), 0) + Assert Equals(lsp_settings#utils#valid_name('foo-bar'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo_bar'), 1) + Assert Equals(lsp_settings#utils#valid_name('foo&bar'), 0) + Assert Equals(lsp_settings#utils#valid_name('foo#bar'), 0) + End + End + + Describe lsp_settings#utils#msg + It should display information + Assert Equals(execute("call lsp_settings#utils#msg('foo')"), "\nfoo") + Assert Equals(execute("call lsp_settings#utils#msg('foo')"), "\nfoo") + End + End + + Describe lsp_settings#utils#error + It should display information + Assert Equals(execute("call lsp_settings#utils#error('foo')"), "\nfoo") + Assert Equals(execute("call lsp_settings#utils#error('foo')"), "\nfoo") + End + End +End |