Software Engineer Blog

エンジニアブログです。技術情報(Go/TypeScript/k8s)や趣味の話も書くかもです。

ijaas導入時に詰まった点

概要

ijaasを導入に当たって、変なところで詰まったので残しておきます。

ijaasとは

github.com

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

IntelliJをサーバーとして立てて、Vim からAPI経由で各種機能を
利用できるようにしている模様です。
導入の基本は、 README.md に記載の通りの手順で問題ないはずです。

詰まった点

1. PluginがInstallできない

Setting > Plugins > install plugin from disk 実行時に、下記エラーが発生

f:id:midori5:20171119143922p:plain
incompatible

解消

IntelliJのバージョンが合ってなかったため、発生していた模様です。
build.gradle

def intellijVersion = 'IC-2017.1.5'
if (project.hasProperty('intellij.version')) {
  intellijVersion = getProperty('intellij.version')
}

intellij.version で切り替えができる模様のため、
build.properties を追加して上げれば良いです。

intellij.version=IC-2017.2.6

2. IntelliJ上からbuildPluginするとIdea取得で失敗

S3より、Ideaを取得する部分で失敗していました。

解消

コンソールより実行で解消できました。

% gradle buildPlugin

3. NeoVimから実行できない

ch_open がNeoVimに実装されていない(?) 関係上、利用できませんでした。
(IntelliJへの接続に利用しているため、全般の機能が利用不可かと..)

if exists("$IJAAS_PORT")
  let s:ch = ch_open('localhost:' . $IJAAS_PORT)
else
  let s:ch = ch_open('localhost:5800')
endif

解消

Vim を使う。

4. 保存時の ijaas#buf_write_post() でTimeout

一旦コメントアウトしております。
( complete()organize_import() は利用できました。)

5. IntelliJで該当Projectを起動していないと動作しない

該当ProjectをIntelliJで開いた状態で、利用する必要があるみたいです。

所感

まだ、実用的なコードで試せてないですが、
オートコンプリートはきれいに動作してました。
その他の機能に関しては、上手く動かせない部分もありました。
(機能を理解できていないからかと..)
あと、 メソッドジャンプ機能 が欲しいです。