[Docker] Cloud9にコード補完機能「c9.ide.language.codeintel」を追加する
オンライン版のCloud9であれば既に入っている機能ですが、Dockerで構築したオリジナル版の場合、コード補完機能がデフォルトで入っていません。今回は、コード補完機能「c9.ide.language.codeintel」を追加していきます。
更新日: 2018.7.17公開日: 2017.12.27
Dockerイメージ
先日の記事「[Docker] Cloud9 + PHP 7 環境を軽量なAlpine Linuxで構築する」で作ったオリジナルDockerイメージを利用します。
ディレクトリ構成
cloud9
└── .gitignore
└── c9_config
└── .nakignore
└── metadata
└── project.settings
└── state.settings
└── Dockerfile //<--追記
└── docker-compose.yml
ディレクトリ構成も一緒です。
Dockerfileにc9.ide.language.codeintelをインストールするパートを追記します。
Dockerfile
基本的には、公式Githubレポジトリの通りです。
ベースがAlpine Linuxなので、pipのインストール部分が公式のドキュメントと異なります。
ベースイメージにUbuntuやDebianなどを使っている場合は、下記のAlpine Linux特有というところを、apt-getあたりに置き換えればうまくいくと思います。
RUN apk --update add py-pip //Alpine Linux特有
RUN pip install -U virtualenv
RUN virtualenv --python=python2 $HOME/.c9/python2
RUN source $HOME/.c9/python2/bin/activate
RUN apk --update add python-dev //Alpine Linux特有
RUN mkdir /tmp/codeintel
RUN pip download -d /tmp/codeintel codeintel==0.9.3
RUN cd /tmp/codeintel && tar xf CodeIntel-0.9.3.tar.gz && mv CodeIntel-0.9.3/SilverCity CodeIntel-0.9.3/silvercity && tar czf CodeIntel-0.9.3.tar.gz CodeIntel-0.9.3
RUN pip install -U --no-index --find-links=/tmp/codeintel codeintel
イメージを再ビルド && コンテナ再起動
docker-composeで構築する場合は、「dockercompose build」を、単純にイメージを作成する場合は、「docker build .」でイメージを作成します。
作成後はコンテナを再起動 or 再作成します。
確認
Cloud9の画面をリロードして、試しに何かのコードを入力してみます。
上のスクリーンショットはPHPですが、「for」と打つと候補が出てきてタブで選択すれば「foreach」の入力補完がされます。
補完されると、$variableにフォーカスが当たっているので、「変数名を入力してタブ、変数名を入力してタブ」で、サクッとforeach文章が作成できます。これは便利!
Cloud9にコード補完機能「c9.ide.language.codeintel」を追加しました。
Dockerイメージのサイズが300MBくらい上がってしまいますが、コードを素早く打てるので、サイズアップ以上のメリットがありますね。