Make IntelliJ as a Java server that does autocompletion for Vim.
Make IntelliJ as a Java server that does autocompletion for Vim.
This is not an official Google product (i.e. a 20% project).
gradle buildPlugin. It creates
build/distributions/ijaas-*.zipat the git root dir. (You can pass
-Pintellij.version=IC-2017.2.6to specify the IntelliJ version.)
ijaas-*.zip. You can uninstall this plugin from this menu.
If you want to isolate your development version and the current version, you might need two clones. You can load Vim plugins conditionally by using environment variables.
if !exists('$USE_DEV_IJAAS') Plug '$HOME/src/ijaas-dev/vim' else Plug '$HOME/src/ijaas/vim' endif
You can start another IntelliJ instance by using
gradle runIdea. You can pass
-Dijaas.port=5801to make the testing IntelliJ process listen on a different port (see https://github.com/JetBrains/gradle-intellij-plugin/issues/18). Connect to the testing IntelliJ with
USE_DEV_IJAAS=1 IJAAS_PORT=5801 vim. The ijaas vim plugin will recognize
IJAAS_PORTand use that to connect to the ijaas IntelliJ plugin.
You can define an ALE linter.
# Disable buf_write_post. Files are checked by ALE. let g:ijaas_disable_buf_write_post = 1Define ijaas linter.
function! s:ijaas_handle(buffer, lines) abort let l:response = json_decode(join(a:lines, '\n'))[1] if has_key(l:response, 'error') || has_key(l:response, 'cause') return [{ \ 'lnum': 1, \ 'text': 'ijaas: RPC error: error=' . l:response['error'] \ . ' cause=' . l:response['cause'], }] endif
return l:response['result']['problems'] endfunction call ale#linter#Define('java', { \ 'name': 'ijaas', \ 'executable': 'nc', \ 'command': "echo '[0, {"method": "java_src_update", "params": {"file": "%s"}}]' | nc localhost 5800 -N", \ 'lint_file': 1, \ 'callback': function('s:ijaas_handle'), \ })