mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-16 01:07:06 +08:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
0
test/command_callback/hdl_server/foo.vhd
Normal file
0
test/command_callback/hdl_server/foo.vhd
Normal file
1
test/command_callback/hdl_server/with_git/files/foo.vhd
Normal file
1
test/command_callback/hdl_server/with_git/files/foo.vhd
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
@@ -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') }
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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') }
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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') }
|
||||
|
||||
116
test/command_callback/test_pyright_command_callback.vader
Normal file
116
test/command_callback/test_pyright_command_callback.vader
Normal 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,
|
||||
\ },
|
||||
\}
|
||||
Reference in New Issue
Block a user