LoginSignup
0
0

More than 3 years have passed since last update.

AtomでのRuby入力補完にrobeを使う

Posted at

概要

autocomplete-rubyがいいぞということでインストールを試みたものの
- ruby2.4以降だとrsenseのサーバが起動せず利用できない
- rsenseの開発が停止して数年経過している
- 代替案としてsolargraphがあったがこちらも動作せず
というわけで他に何かないか探していたところ「robe」が出てきました。

Atomのパッケージ「robe」は現在のところ候補をリストで表示するのみのようです。
宣言へのJumpやドキュメントへのリンクなどの機能はありません。

AtomでRubyの入力補完するのにおすすめのパッケージあれば教えてください。。。

環境

OS:MacOS Mojave
Ruby:2.6.x
   anyenv下のrbenvでインストール

robeとは

  • 開発が継続中(直近2019/5に更新あり)
  • Ruby1.9.3-2.6まで対応している。
  • emacsでよく使われている Git

インストール

  • robeをダウンロード
git clone https://github.com/dgutov/robe /任意のディレクトリ/robe
  • Atomにパッケージ「 autocomplete-robe」をインストール

  • settingにてrobeを設置したパスを設定
    /任意のディレクトリ/robe

  • gemのpryをbunlerでインストール
    Gemfileにgem 'pry'を記載してbundle updateを実行
    gem install pryでは動作しませんでした。

公式に以下の記載がありました

Please note that robe server requires pry to be installed (with bundler).

雑記

以下は、調査の過程でわかった内容です。rsenseの問題が解消するわけではないので、興味のある方だけお読みください

autocomplete-rubyが動作しない

rsenseのサーバが起動しないことが全ての原因。
補完機能が動作する仕組みとしては、rsenseがローカルでサーバを起動していてそれを利用してAtomのautocomplete-rubyが動作するようになっているために、動作しませんでした。
また、rsenseへのパスが設定できキックができていると、エラー自体はログファイルに書き込まれるために、表面上はエラーを表示しないので気付きにくかったが、そこはAtomのコンソール(Ctrl+Cmd+I)の内容を確認すると気づけます。

Ruby2.6.1のBundlerの不具合

/tmp/rsense.logに下記の内容が記載されていたため調査

Bundler 2 requires Ruby 2.3 or later. Either install bundler 1 or update to a supported Ruby version.

以下のサイトで説明がされていますが、Ruby2.6.1ではBundlerのバージョンが正しく起動しないという不具合がありました。
Ruby 2.6.1 の Bundler の不具合のお知らせ
Ruby 2.6.1 に含まれる Bundler 1.17.2 に不具合があるという話

これだ!
ということでRubyのバージョンを2.6.2と2.6.3でためしましたが、不具合自体は解消されたもののエラーそのものは改善されませんでした。。。

どうしてもrsenseがいいという場合には

Rubyのバージョンを2.3.8にすれば動作することは確認できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0