diff options
author | w0rp <devw0rp@gmail.com> | 2017-05-04 17:14:42 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-05-04 17:14:48 +0100 |
commit | 528355e2c6cf64fbc0d459a7a512a7823f90043d (patch) | |
tree | cd9f0c4baca692f59144b4af08490a7b0ee79d15 | |
parent | ab7ab7d6e3038234068a05f73775e6c9e5b84598 (diff) | |
download | ale-528355e2c6cf64fbc0d459a7a512a7823f90043d.zip |
Fix #501 - Do not run javac when it is just a stub asking you to install Java on Mac OSX
-rw-r--r-- | ale_linters/java/javac.vim | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/ale_linters/java/javac.vim b/ale_linters/java/javac.vim index 5815c658..4e91c4f6 100644 --- a/ale_linters/java/javac.vim +++ b/ale_linters/java/javac.vim @@ -6,6 +6,27 @@ let s:classpath_sep = has('unix') ? ':' : ';' let g:ale_java_javac_options = get(g:, 'ale_java_javac_options', '') let g:ale_java_javac_classpath = get(g:, 'ale_java_javac_classpath', '') +" Detect if the javac command just shows an annoying popup for Mac OSX. +if has('macunix') + function s:GetIsJavacAnAppStoreStub() abort + let l:path = resolve(systemlist('which javac')[0]) + + for l:line in readfile(l:path) + " This string is present inside the executable for the popup. + if l:line =~? 'No Java runtime present' + return 1 + endif + endfor + + return 0 + endfunction + + let s:is_javac_an_app_store_stub = s:GetIsJavacAnAppStoreStub() + delfunction s:GetIsJavacAnAppStoreStub +else + let s:is_javac_an_app_store_stub = 0 +endif + function! ale_linters#java#javac#GetImportPaths(buffer) abort let l:pom_path = ale#path#FindNearestFile(a:buffer, 'pom.xml') @@ -32,6 +53,11 @@ function! s:BuildClassPathOption(buffer, import_paths) abort endfunction function! ale_linters#java#javac#GetCommand(buffer, import_paths) abort + " If running the command will just show a popup, then don't run it. + if s:is_javac_an_app_store_stub + return '' + endif + let l:cp_option = s:BuildClassPathOption(a:buffer, a:import_paths) let l:sp_option = '' |