I broke up with neovim....vim is my best friend now
This commit is contained in:
3
dot_vim/plugged/vim-lsp-settings/test/dot_themisrc
Normal file
3
dot_vim/plugged/vim-lsp-settings/test/dot_themisrc
Normal file
@@ -0,0 +1,3 @@
|
||||
set encoding=utf-8
|
||||
call themis#option('recursive', 1)
|
||||
call themis#helper('command').with(themis#helper('assert'))
|
||||
158
dot_vim/plugged/vim-lsp-settings/test/lsp_settings.vimspec
Normal file
158
dot_vim/plugged/vim-lsp-settings/test/lsp_settings.vimspec
Normal file
@@ -0,0 +1,158 @@
|
||||
Describe lsp_settings
|
||||
Describe lsp_settings#get
|
||||
It should return configuration value from key and name
|
||||
Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'bad')
|
||||
let g:lsp_settings = {'pyls': {'cmd': 'good'}}
|
||||
Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'good')
|
||||
let g:lsp_settings = {'pyls': {'cmd': {key,name->'good'}}}
|
||||
Assert Equals(lsp_settings#get('pyls', 'cmd', 'bad'), 'good')
|
||||
unlet g:lsp_settings
|
||||
End
|
||||
|
||||
It should return default value with lambda
|
||||
Assert Equals(lsp_settings#get('pyls', 'cmd', {key, name-> 'good'}), 'good')
|
||||
End
|
||||
End
|
||||
|
||||
Describe lsp_settings#executable
|
||||
It should return command is executable in $PATH
|
||||
if has('win32')
|
||||
Assert Equals(lsp_settings#executable('cmd'), 1)
|
||||
else
|
||||
Assert Equals(lsp_settings#executable('sh'), 1)
|
||||
endif
|
||||
Assert Equals(lsp_settings#executable('unknown-command'), 0)
|
||||
End
|
||||
|
||||
It should return 0 when command is not in server/foo-bar/foo-bar
|
||||
let l:servers_dir = lsp_settings#servers_dir()
|
||||
|
||||
try
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
call mkdir(l:servers_dir . '/foo-bar', 'p')
|
||||
Assert Equals(lsp_settings#executable('foo-bar'), 0)
|
||||
finally
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
endtry
|
||||
End
|
||||
|
||||
It should return 1 when command is executable in server/foo-bar/foo-bar
|
||||
let l:servers_dir = lsp_settings#servers_dir()
|
||||
|
||||
try
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
call mkdir(l:servers_dir . '/foo-bar', 'p')
|
||||
if has('win32')
|
||||
call writefile(['@echo off', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar.cmd')
|
||||
else
|
||||
call writefile(['#!/bin/sh', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar')
|
||||
call setfperm(l:servers_dir . '/foo-bar/foo-bar', 'rwxr-xr-x')
|
||||
endif
|
||||
Assert Equals(lsp_settings#executable('foo-bar'), 1)
|
||||
finally
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
endtry
|
||||
End
|
||||
End
|
||||
|
||||
Describe lsp_settings#exec_path
|
||||
It should return full-path to the command
|
||||
if has('win32')
|
||||
Assert Equals(empty(lsp_settings#exec_path('cmd')), 0)
|
||||
else
|
||||
Assert Equals(empty(lsp_settings#exec_path('sh')), 0)
|
||||
endif
|
||||
End
|
||||
|
||||
It should return 1 when command is executable in server/foo-bar/foo-bar
|
||||
let l:servers_dir = lsp_settings#servers_dir()
|
||||
|
||||
try
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
call mkdir(l:servers_dir . '/foo-bar', 'p')
|
||||
if has('win32')
|
||||
call writefile(['@echo off', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar.cmd')
|
||||
Assert Equals(lsp_settings#exec_path('foo-bar'), l:servers_dir . '\foo-bar\foo-bar.cmd')
|
||||
else
|
||||
call writefile(['#!/bin/sh', 'echo foo-bar'], l:servers_dir . '/foo-bar/foo-bar')
|
||||
call setfperm(l:servers_dir . '/foo-bar/foo-bar', 'rwxr-xr-x')
|
||||
Assert Equals(lsp_settings#exec_path('foo-bar'), l:servers_dir . '/foo-bar/foo-bar')
|
||||
endif
|
||||
finally
|
||||
call delete(l:servers_dir . '/foo-bar', 'rf')
|
||||
endtry
|
||||
End
|
||||
End
|
||||
|
||||
Describe lsp_settings#init
|
||||
It should setup commands and autocmds.
|
||||
call lsp_settings#clear()
|
||||
call lsp_settings#init()
|
||||
let g:vim_lsp_settings_filetype_no_delays = 1
|
||||
autocmd vim_lsp_suggest_python
|
||||
Assert exists(':LspInstallServer')
|
||||
delcommand LspInstallServer
|
||||
Assert !exists('#vim_lsp_suggest_efm_langserver')
|
||||
for v in filter(split(execute('augroup'), '\s\+'), 'v:val=~"^vim_lsp_"')
|
||||
exe 'augroup ' . v
|
||||
silent! autocmd!
|
||||
augroup END
|
||||
silent! exe 'augroup! ' . v
|
||||
endfor
|
||||
bw!
|
||||
unlet g:vim_lsp_settings_filetype_no_delays
|
||||
End
|
||||
|
||||
It should setup commands and autocmds with python.
|
||||
call lsp_settings#clear()
|
||||
call lsp_settings#init()
|
||||
new
|
||||
let g:lsp_settings = {'pyls': {'cmd': ['foo', 'bar'], 'allowlist': ['python', 'zsh']}}
|
||||
let g:vim_lsp_settings_filetype_no_delays = 1
|
||||
Throw /E117/ :setfiletype python
|
||||
bw!
|
||||
for v in filter(split(execute('augroup'), '\s\+'), 'v:val=~"^vim_lsp_suggest"')
|
||||
exe 'augroup ' . v
|
||||
silent! autocmd!
|
||||
augroup END
|
||||
silent! exe 'augroup! ' . v
|
||||
endfor
|
||||
unlet g:lsp_settings
|
||||
unlet g:vim_lsp_settings_filetype_no_delays
|
||||
End
|
||||
End
|
||||
|
||||
Describe lsp_settings#root_path
|
||||
It should return full-path to the directory that contains one of args
|
||||
if empty(globpath(&rtp, 'autoload/lsp/utils.vim'))
|
||||
Skip vim-lsp plugin required, use --runtimepath {path-to-plugin-dir}
|
||||
endif
|
||||
let s:_saved_lsp_settings_root_markers = g:lsp_settings_root_markers
|
||||
let g:lsp_settings_root_markers = []
|
||||
try
|
||||
new autoload/testbuffer
|
||||
Assert Equal(lsp_settings#root_path(['lsp_settings/']), expand('%:p:h'))
|
||||
Assert Equal(lsp_settings#root_path(['README.md']), expand('%:p:h:h'))
|
||||
Assert Equal(lsp_settings#root_path(['not exist file name', 'README.md']), expand('%:p:h:h'))
|
||||
finally
|
||||
bwipe! autoload/testbuffer
|
||||
let g:lsp_settings_root_markers = s:_saved_lsp_settings_root_markers
|
||||
endtry
|
||||
End
|
||||
|
||||
It should return '' when directory not found
|
||||
if empty(globpath(&rtp, 'autoload/lsp/utils.vim'))
|
||||
Skip vim-lsp plugin required, use --runtimepath {path-to-plugin-dir}
|
||||
endif
|
||||
let s:_saved_lsp_settings_root_markers = g:lsp_settings_root_markers
|
||||
let g:lsp_settings_root_markers = []
|
||||
try
|
||||
new autoload/testbuffer
|
||||
Assert Empty(lsp_settings#root_path(['not exist file name']))
|
||||
finally
|
||||
bwipe! autoload/testbuffer
|
||||
let g:lsp_settings_root_markers = s:_saved_lsp_settings_root_markers
|
||||
endtry
|
||||
End
|
||||
End
|
||||
End
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user