by google

google /ijaas

Make IntelliJ as a Java server that does autocompletion for Vim.

425 Stars 20 Forks Last release: Not found Apache License 2.0 25 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

IntelliJ as a Service

Make IntelliJ as a Java server that does autocompletion for Vim.

This is not an official Google product (i.e. a 20% project).


  1. git clone.
  2. Import project into IntelliJ. Use Gradle plugin.
  3. Run
    gradle buildPlugin
    . It creates
    at the git root dir. (You can pass
    to specify the IntelliJ version.)
  4. Select "File" menu and click "Settings...". In "Plugins" menu, click "Install plugin from disk..." button. Choose
    . You can uninstall this plugin from this menu.
  5. Restart IntelliJ.
  6. Add "vim" directory to your runtimepath in Vim in your own way. (e.g. Plug "$HOME/src/ijaas/vim").


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'
  Plug '$HOME/src/ijaas/vim'

You can start another IntelliJ instance by using

gradle runIdea
. You can pass
to 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
. The ijaas vim plugin will recognize
and use that to connect to the ijaas IntelliJ plugin.

Using with ALE

You can define an ALE linter.

# Disable buf_write_post. Files are checked by ALE.
let g:ijaas_disable_buf_write_post = 1

Define 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'), \ })

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.