Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Bartek thindil Jasicki
2020-08-07 17:43:11 +02:00
57 changed files with 1069 additions and 58 deletions

View File

View File

@@ -0,0 +1 @@

View File

@@ -4,6 +4,10 @@
Before:
call ale#assert#SetUpLinterTest('c', 'ccls')
Save b:ale_c_build_dir_names
Save b:ale_c_ccls_executable
Save b:ale_c_ccls_init_options
After:
call ale#assert#TearDownLinterTest()
@@ -47,3 +51,19 @@ Execute(The initialization options should be configurable):
let b:ale_c_ccls_init_options = { 'cacheDirectory': '/tmp/ccls' }
AssertLSPOptions { 'cacheDirectory': '/tmp/ccls' }
Execute(The compile command database should be detected correctly):
call ale#test#SetFilename('ccls_paths/with_ccls/dummy.c')
AssertLSPOptions {}
call ale#test#SetFilename('ccls_paths/with_compile_commands_json/dummy.c')
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_compile_commands_json') }
call ale#test#SetFilename('ccls_paths/with_build_dir/dummy.c')
let b:ale_c_build_dir_names = ['unusual_build_dir_name']
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_build_dir/unusual_build_dir_name') }

View File

@@ -1,7 +1,6 @@
Before:
call ale#assert#SetUpLinterTest('c', 'cppcheck')
let b:command_tail = ' -q --language=c --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t'
let b:command_tail = ' -q --language=c --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'' --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t'
After:
" Remove a test file we might open for some tests.
@@ -10,9 +9,8 @@ After:
set buftype=nofile
endif
call ale#assert#TearDownLinterTest()
unlet! b:command_tail
call ale#assert#TearDownLinterTest()
Execute(The executable should be configurable):
AssertLinter 'cppcheck', ale#Escape('cppcheck') . b:command_tail
@@ -28,6 +26,7 @@ Execute(cppcheck for C should detect compile_commands.json files):
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --project=' . ale#Escape('compile_commands.json')
\ . ' --enable=style %t'
@@ -38,6 +37,7 @@ Execute(cppcheck for C should detect compile_commands.json files in build direct
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/with_build_dir'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --project=' . ale#Escape(ale#path#Simplify('build/compile_commands.json'))
\ . ' --enable=style %t'
@@ -47,6 +47,7 @@ Execute(cppcheck for C should include file dir if compile_commands.json file is
AssertLinter 'cppcheck',
\ ale#Escape('cppcheck')
\ . ' -q --language=c'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths'))
\ . ' %t'
@@ -61,6 +62,7 @@ Execute(cppcheck for C should ignore compile_commands.json file if buffer is mod
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ' %t'

View File

@@ -4,6 +4,10 @@
Before:
call ale#assert#SetUpLinterTest('cpp', 'ccls')
Save b:ale_c_build_dir_names
Save b:ale_cpp_ccls_executable
Save b:ale_cpp_ccls_init_options
After:
call ale#assert#TearDownLinterTest()
@@ -47,3 +51,19 @@ Execute(The initialization options should be configurable):
let b:ale_cpp_ccls_init_options = { 'cacheDirectory': '/tmp/ccls' }
AssertLSPOptions { 'cacheDirectory': '/tmp/ccls' }
Execute(The compile command database should be detected correctly):
call ale#test#SetFilename('ccls_paths/with_ccls/dummy.c')
AssertLSPOptions {}
call ale#test#SetFilename('ccls_paths/with_compile_commands_json/dummy.c')
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_compile_commands_json') }
call ale#test#SetFilename('ccls_paths/with_build_dir/dummy.c')
let b:ale_c_build_dir_names = ['unusual_build_dir_name']
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_build_dir/unusual_build_dir_name') }

View File

@@ -1,6 +1,6 @@
Before:
call ale#assert#SetUpLinterTest('cpp', 'cppcheck')
let b:command_tail = ' -q --language=c++ --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t'
let b:command_tail = ' -q --language=c++ --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'' --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t'
After:
" Remove a test file we might open for some tests.
@@ -26,6 +26,7 @@ Execute(cppcheck for C++ should detect compile_commands.json files):
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c++'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --project=' . ale#Escape('compile_commands.json')
\ . ' --enable=style %t'
@@ -36,6 +37,7 @@ Execute(cppcheck for C++ should detect compile_commands.json files in build dire
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/with_build_dir'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c++'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --project=' . ale#Escape(ale#path#Simplify('build/compile_commands.json'))
\ . ' --enable=style %t'
@@ -45,6 +47,7 @@ Execute(cppcheck for C++ should include file dir if compile_commands.json file i
AssertLinter 'cppcheck',
\ ale#Escape('cppcheck')
\ . ' -q --language=c++'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths'))
\ . ' %t'
@@ -59,6 +62,7 @@ Execute(cppcheck for C++ should ignore compile_commands.json file if buffer is m
\ ale#path#CdString(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ale#Escape('cppcheck')
\ . ' -q --language=c++'
\ . ' --template=''{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}'''
\ . ' --enable=style'
\ . ' -I' . ale#Escape(ale#path#Simplify(g:dir . '/cppcheck_paths/one'))
\ . ' %t'

View File

@@ -49,7 +49,10 @@ Execute(Should return directory for 'go.mod' if found in parent directory):
Execute(Should return nearest directory with '.git' if found in parent directory):
call ale#test#SetFilename('test.go')
call mkdir(g:dir . '/.git')
if !isdirectory(g:dir . '/.git')
call mkdir(g:dir . '/.git')
endif
AssertLSPProject g:dir

View File

@@ -1,6 +1,10 @@
Before:
call ale#assert#SetUpLinterTest('objc', 'ccls')
Save b:ale_c_build_dir_names
Save b:ale_objc_ccls_executable
Save b:ale_objc_ccls_init_options
After:
call ale#assert#TearDownLinterTest()
@@ -44,3 +48,19 @@ Execute(The initialization options should be configurable):
let b:ale_objc_ccls_init_options = { 'cacheDirectory': '/tmp/ccls' }
AssertLSPOptions { 'cacheDirectory': '/tmp/ccls' }
Execute(The compile command database should be detected correctly):
call ale#test#SetFilename('ccls_paths/with_ccls/dummy.c')
AssertLSPOptions {}
call ale#test#SetFilename('ccls_paths/with_compile_commands_json/dummy.c')
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_compile_commands_json') }
call ale#test#SetFilename('ccls_paths/with_build_dir/dummy.c')
let b:ale_c_build_dir_names = ['unusual_build_dir_name']
AssertLSPOptions { 'compilationDatabaseDirectory':
\ ale#path#Simplify(g:dir . '/ccls_paths/with_build_dir/unusual_build_dir_name') }

View File

@@ -0,0 +1,116 @@
Before:
call ale#assert#SetUpLinterTest('python', 'pyright')
let b:bin_dir = has('win32') ? 'Scripts' : 'bin'
After:
unlet! b:bin_dir
unlet! b:executable
call ale#assert#TearDownLinterTest()
Execute(The command callback should return the correct default string):
AssertLinter
\ 'pyright-langserver',
\ ale#Escape('pyright-langserver') . ' --stdio'
Execute(The executable should be configurable):
let g:ale_python_pyright_executable = '/bin/foo-bar'
AssertLinter
\ '/bin/foo-bar',
\ ale#Escape('/bin/foo-bar') . ' --stdio'
Execute(The default configuration should be mostly empty):
" The default configuration needs to have at least one key in it,
" or the server won't start up properly.
AssertLSPConfig {'python': {}}
let b:ale_python_pyright_config = {}
AssertLSPConfig {'python': {}}
Execute(virtualenv paths should be set in configuration by default):
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
AssertLSPConfig {
\ 'python': {
\ 'pythonPath': ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/python'),
\ 'venvPath': ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env'),
\ },
\}
Execute(The pythonPath should be set based on whatever the ovveride for the venvPath is set to):
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
" This overrides the default detection of the path.
let b:ale_python_pyright_config = {
\ 'python': {
\ 'venvPath': '/foo/bar',
\ },
\}
AssertLSPConfig {
\ 'python': {
\ 'pythonPath': ale#path#Simplify('/foo/bar/' . b:bin_dir . '/python'),
\ 'venvPath': '/foo/bar',
\ },
\}
Execute(You should be able to override pythonPath when venvPath is detected):
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
" This overrides the default detection of the path.
let b:ale_python_pyright_config = {
\ 'python': {
\ 'pythonPath': '/bin/python',
\ },
\}
AssertLSPConfig {
\ 'python': {
\ 'pythonPath': '/bin/python',
\ 'venvPath': ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env'),
\ },
\}
Execute(You should be able to override both pythonPath and venvPath):
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
" This overrides the default detection of the path.
let b:ale_python_pyright_config = {
\ 'python': {
\ 'pythonPath': '/bin/python',
\ 'venvPath': '/other/dir',
\ },
\}
AssertLSPConfig {
\ 'python': {
\ 'pythonPath': '/bin/python',
\ 'venvPath': '/other/dir',
\ },
\}
Execute(You should be able to define other settings):
call ale#test#SetFilename('python_paths/with_virtualenv/subdir/foo/bar.py')
let b:ale_python_pyright_config = {
\ 'python': {
\ 'analysis': {'logLevel': 'warning'},
\ },
\ 'pyright': {
\ 'disableLanguageServices': v:true,
\ },
\}
AssertLSPConfig {
\ 'python': {
\ 'analysis': {'logLevel': 'warning'},
\ 'pythonPath': ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env/' . b:bin_dir . '/python'),
\ 'venvPath': ale#path#Simplify(g:dir . '/python_paths/with_virtualenv/env'),
\ },
\ 'pyright': {
\ 'disableLanguageServices': v:true,
\ },
\}