mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-07 05:04:28 +08:00
refactor(javac): ale_java_javac_classpath variable supports String and List types
This commit is contained in:
@@ -41,10 +41,15 @@ endfunction
|
|||||||
function! s:BuildClassPathOption(buffer, import_paths) abort
|
function! s:BuildClassPathOption(buffer, import_paths) abort
|
||||||
" Filter out lines like [INFO], etc.
|
" Filter out lines like [INFO], etc.
|
||||||
let l:class_paths = filter(a:import_paths[:], 'v:val !~# ''[''')
|
let l:class_paths = filter(a:import_paths[:], 'v:val !~# ''[''')
|
||||||
call extend(
|
let l:cls_path = ale#Var(a:buffer, 'java_javac_classpath')
|
||||||
\ l:class_paths,
|
|
||||||
\ split(ale#Var(a:buffer, 'java_javac_classpath'), s:classpath_sep),
|
if !empty(l:cls_path) && type(l:cls_path) is v:t_string
|
||||||
\)
|
call extend(l:class_paths, split(l:cls_path, s:classpath_sep))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !empty(l:cls_path) && type(l:cls_path) is v:t_list
|
||||||
|
call extend(l:class_paths, l:cls_path)
|
||||||
|
endif
|
||||||
|
|
||||||
return !empty(l:class_paths)
|
return !empty(l:class_paths)
|
||||||
\ ? '-cp ' . ale#Escape(join(l:class_paths, s:classpath_sep))
|
\ ? '-cp ' . ale#Escape(join(l:class_paths, s:classpath_sep))
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ javac *ale-java-javac*
|
|||||||
|
|
||||||
g:ale_java_javac_classpath *g:ale_java_javac_classpath*
|
g:ale_java_javac_classpath *g:ale_java_javac_classpath*
|
||||||
*b:ale_java_javac_classpath*
|
*b:ale_java_javac_classpath*
|
||||||
Type: |String|
|
Type: |String| or |List|
|
||||||
Default: `''`
|
Default: `''`
|
||||||
|
|
||||||
This variable can be set to change the global classpath for Java.
|
This variable can be set to change the global classpath for Java.
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ After:
|
|||||||
Execute(The javac callback should return the correct default value):
|
Execute(The javac callback should return the correct default value):
|
||||||
AssertLinter 'javac', g:prefix . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
AssertLinter 'javac', g:prefix . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||||
|
|
||||||
Execute(The javac callback should use g:ale_java_javac_classpath correctly):
|
Execute(The javac callback should use string type g:ale_java_javac_classpath correctly):
|
||||||
let g:ale_java_javac_classpath = 'foo.jar'
|
let g:ale_java_javac_classpath = 'foo.jar'
|
||||||
|
|
||||||
AssertLinter 'javac',
|
AssertLinter 'javac',
|
||||||
@@ -39,6 +39,14 @@ Execute(The javac callback should use g:ale_java_javac_classpath correctly):
|
|||||||
\ . ' -cp ' . ale#Escape('foo.jar')
|
\ . ' -cp ' . ale#Escape('foo.jar')
|
||||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||||
|
|
||||||
|
Execute(The javac callback should use list type g:ale_java_javac_classpath correctly):
|
||||||
|
let g:ale_java_javac_classpath = ['foo.jar']
|
||||||
|
|
||||||
|
AssertLinter 'javac',
|
||||||
|
\ g:prefix
|
||||||
|
\ . ' -cp ' . ale#Escape('foo.jar')
|
||||||
|
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t'
|
||||||
|
|
||||||
Execute(The executable should be configurable):
|
Execute(The executable should be configurable):
|
||||||
let g:ale_java_javac_executable = 'foobar'
|
let g:ale_java_javac_executable = 'foobar'
|
||||||
|
|
||||||
@@ -108,6 +116,51 @@ Execute(The javac callback should combine discovered classpaths and manual ones)
|
|||||||
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t',
|
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t',
|
||||||
\ substitute(b:command, '%e', '\=ale#Escape(''javac'')', 'g')
|
\ substitute(b:command, '%e', '\=ale#Escape(''javac'')', 'g')
|
||||||
|
|
||||||
|
let g:ale_java_javac_classpath = ['configured.jar']
|
||||||
|
let b:command = ale_linters#java#javac#GetCommand(bufnr(''), [
|
||||||
|
\ '[DEBUG] Ignore this.',
|
||||||
|
\ '[INFO] Something we should ignore.',
|
||||||
|
\ '/foo/bar.jar',
|
||||||
|
\ '/xyz/abc.jar',
|
||||||
|
\], {})
|
||||||
|
|
||||||
|
AssertEqual
|
||||||
|
\ g:prefix
|
||||||
|
\ . ' -cp '
|
||||||
|
\ . ale#Escape(join(
|
||||||
|
\ [
|
||||||
|
\ '/foo/bar.jar',
|
||||||
|
\ '/xyz/abc.jar',
|
||||||
|
\ 'configured.jar',
|
||||||
|
\ ],
|
||||||
|
\ g:cp_sep
|
||||||
|
\ ))
|
||||||
|
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t',
|
||||||
|
\ substitute(b:command, '%e', '\=ale#Escape(''javac'')', 'g')
|
||||||
|
|
||||||
|
let g:ale_java_javac_classpath = ['configured.jar', 'configured2.jar']
|
||||||
|
let b:command = ale_linters#java#javac#GetCommand(bufnr(''), [
|
||||||
|
\ '[DEBUG] Ignore this.',
|
||||||
|
\ '[INFO] Something we should ignore.',
|
||||||
|
\ '/foo/bar.jar',
|
||||||
|
\ '/xyz/abc.jar',
|
||||||
|
\], {})
|
||||||
|
|
||||||
|
AssertEqual
|
||||||
|
\ g:prefix
|
||||||
|
\ . ' -cp '
|
||||||
|
\ . ale#Escape(join(
|
||||||
|
\ [
|
||||||
|
\ '/foo/bar.jar',
|
||||||
|
\ '/xyz/abc.jar',
|
||||||
|
\ 'configured.jar',
|
||||||
|
\ 'configured2.jar',
|
||||||
|
\ ],
|
||||||
|
\ g:cp_sep
|
||||||
|
\ ))
|
||||||
|
\ . ' -d ' . ale#Escape('TEMP_DIR') . ' %t',
|
||||||
|
\ substitute(b:command, '%e', '\=ale#Escape(''javac'')', 'g')
|
||||||
|
|
||||||
Execute(The javac callback should use string type g:ale_java_javac_sourcepath correctly):
|
Execute(The javac callback should use string type g:ale_java_javac_sourcepath correctly):
|
||||||
let g:ale_java_javac_sourcepath = 'java_paths/build/gen/main'
|
let g:ale_java_javac_sourcepath = 'java_paths/build/gen/main'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user