【问题标题】:RubyMine code autocompletionRubyMine 代码自动补全
【发布时间】:2015-11-05 16:01:40
【问题描述】:

我即将习惯在 Android Studio 中使用 Java。最棒的是,一切都被强烈地宣布了。因此,当我键入 MyClass.someme... 时,IDE 为我提供了高级代码自动完成功能。发展迅速而愉快。

但后来我想学习 RubyOnRails。我爱上了 JetBrains 产品,所以我在我的 Windows 机器上安装了 RubyMine。

尽管 Windows 环境存在许多问题,但我还是对不太好的代码完成感到困惑。即使 IDE 知道该方法(可以通过 Ctrl+B 组合找到),它也不会在弹出菜单中提供它(发现图片)。

来自railstutorial.org的函数:

# SomeControllerHelper.rb
# Redirects to stored location (or to the default)
def redirect_back_or (default)
  redirect_to(session[:forwarding_url] || default)
  session.delete(:forwarding_url)
end

有没有办法解决这个问题?有没有更好的具有真正智能代码完成功能的 IDE?

【问题讨论】:

  • Ruby 采用动态类型语言,这意味着您无需键入方法返回类型或参数类型。另一件事是在运行时完成的元编程。这两件事都使得自动完成功能比 Java 更难实现,Java 只是静态类型的编译语言。 RubyMine 是 Ruby 语言的最佳 IDE。
  • 这是一个答案,@BartoszŁęcki。谢谢!

标签: ruby-on-rails ruby autocomplete ide rubymine


【解决方案1】:

如前所述,由于动态类型,Ruby 的代码完成非常复杂。从 C#/Java 切换我已经为此苦苦挣扎了一段时间,并且我找到了一种至少可以稍微减轻它的方法。示例:

def extract_data_from_this_array(input_array)
  # some code
end

假设您想要处理作为输入的数组。您键入 input_array 并没有列出任何方法或所有方法,因为 Ruby 不知道它是一个数组。我要做的是写:

Array.new.

RubyMine 建议使用所有 Array 方法。当您刚刚选择 Ruby 时,它会很有帮助。

【讨论】:

    【解决方案2】:

    尽管由于 Ruby 的动态特性,RubyMine 并不总是适用于所有代码完成。但是,我仍然认为它是代码完成、方法导航、搜索功能的最佳 Ruby IDE。

    这是一个屏幕截图,向您展示如何配置 RubyMine 以完成代码:

    Here 是 Justin Gordon 的一个很好的教程,它展示了 RubyMine 的一些很棒的特性,你可能会感兴趣。

    我不知道任何其他 Ruby IDE 的代码完成功能比 RubyMine 更智能。事实上,绝大多数 Ruby 程序员甚至不使用 IDE,而是使用文本编辑器!

    以下是一些简短的站点点文章,可以为您提供更多见解:

    Which IDEs do Rubyists Use?

    What Editor Do Rubyists Use?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2011-07-14
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-25
      相关资源
      最近更新 更多