質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RubyMine

RubyMineは、Ruby/Ruby on RailsベースのWebアプリケーション開発を行うためのIDEです。コードエディタやコードアシスタンス、グラフィカルなデバッガを搭載しており、様々なバージョン管理システムに対応しています。

Q&A

解決済

1回答

1827閲覧

rubymineのジャンプ機能を使いこなしたい

k499778

総合スコア599

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RubyMine

RubyMineは、Ruby/Ruby on RailsベースのWebアプリケーション開発を行うためのIDEです。コードエディタやコードアシスタンス、グラフィカルなデバッガを搭載しており、様々なバージョン管理システムに対応しています。

2グッド

1クリップ

投稿2021/04/25 11:18

編集2021/04/25 11:26

前提・実現したいこと

元々Java開発が中心でしたが、今Railsを勉強しています。
RubyMineを使っていますが、ジャンプ機能について少し違和感があり、ご相談させていただきたいです。

メソッドなどを選択して「Command クリック」をすると、その呼び出し元が表示されたりします(ジャンプするときもありますが)。
例:updateを「Command クリック」時
イメージ説明

JavaのEclipseの感覚だと、呼び出し元に基本的にジャンプするように思いますが、
RubyMineでは基本的に候補が表示され、あとは自分で該当のメソッドを自分で探す形になるのでしょうか?
また、皆さんはどのようにメソッドの呼び出し元を確認したい場合、操作しますでしょうか?
候補が表示され、その中から自分で該当クラスを探し見つける形でしょうか。

例の画像は少し標準のメソッドなので、たとえが悪いかもですが、
例えば、Fugaクラス内で、Hogeクラスのexecuteメソッドが使われており、どのような定義になっているかを確認したいときに、executeを「Command クリック」すると、そのままHogeクラスのexecuteメソッドにジャンプせず、候補が表示されました。

なので、Hogeクラスで「Command クリック」して、ジャンプし、その中でファイル内検索で「execute」と検索して、該当のexecuteメソッドの定義を確認しました。

少しJavaだと一発で定義元にジャンプできたのでめんどくさいな。と思ってしまいます。
そこがコンパイル言語とスクリプト言語の差なのでしょうか。
Javaではimportにより明示的に書かれているから、特定できるのでしょうか。。うーん。

皆さんはどのようにメソッドの呼び出し元を確認したい場合、操作しますでしょうか?
教えて頂けると助かります。

試したこと

・ググってみたが、RubyMineのジャンプ機能のリファレンスやジャンプ機能がすごい!という記事が多く、なかなか自分の気にしているところが消化されなかった。

shinoharat, rahhi555👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

少しJavaだと一発で定義元にジャンプできたのでめんどくさいな。と思ってしまいます。
そこがコンパイル言語とスクリプト言語の差なのでしょうか。
Javaではimportにより明示的に書かれているから、特定できるのでしょうか。。うーん。

ほぼご推察のとおり、言語の特性の違いです。

定義元を正確に特定できるかどうかは、
コンパイル方式(Java) vs インタプリタ方式(Ruby) というより、
静的型付け(Java) vs 動的型付け(Ruby) の違いが影響していると思います。

--

皆さんはどのようにメソッドの呼び出し元を確認したい場合、操作しますでしょうか?

私は、エディタの機能で候補を表示 → あとは自力でコードを読んで判断 という感じです。

めんどくさいと思われる気持ちも十分理解できます。
静的型付けの言語は、IDEでの補完も強力ですから、それと比べるとやや見劣りするでしょう。

--

Ruby の開発コミュニティでも、その辺は課題になっていて、2020.12.25 にリリースされた Ruby3.0 から、静的解析機能(RBS)が導入されました。

これは、通常の .rb ファイルとは別に .rbs という型情報専用のファイルを作ることで、静的型付け言語のようなIDEサポートを受けられるよ、という機能です。
詳しくは以下の記事などを参考にしてください。

https://techlife.cookpad.com/entry/2020/12/09/120454
https://techlife.cookpad.com/entry/2020/12/09/120314

RubyMine では、バージョン 2021.1 から RBS がサポートされているようです。
Ruby のバージョンが 3.0 より前でも使えるようです。

https://www.jetbrains.com/ja-jp/ruby/whatsnew/

ただし、RBS は新しめの機能なので、まだまだ発展途上です。
試すにしても、過度な期待は出来ないと思います。

投稿2021/04/26 03:22

編集2021/04/26 07:27
shinoharat

総合スコア1669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k499778

2021/04/26 04:57 編集

ありがとうございます。スッキリしました。 まずはジャンプ手順としても特に現状の動きで問題ないことがわかってよかったです。 なお理由に関しても静的動的の違いということが分かり助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問