RubyMine code autocompletion

自作多情 提交于 2019-11-30 18:14:48

问题


I'm about to get used to work with Java in Android Studio. The great thing there is that everything is strongly declared. So when I type MyClass.someme..., the IDE offers me advanced code autocompletion features. The development is rapid and pleasantly.

But then I wanted to learn RubyOnRails. I'm in love with JetBrains products and so I've installed RubyMine on my Windows machine.

Despite of a bag of problems with Windows enviroment, I was confused with not-so-well working code completion. Even if the method is known by the IDE (it can be found by Ctrl+B combination), it does not offer it in popup menu (discover the picture).

Function from 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

Is there any way to fix this problem? Are there any better IDEs with really smart code completion?


回答1:


Although, RubyMine doesn't work for ALL code completion all the time due to the dynamic nature of Ruby. But, I still find it the BEST Ruby IDE for code completion, method navigation, searching features.

Here is a screenshot to show you how to configure RubyMine for Code Completion:

Here is a good tutorial by Justin Gordon which shows some awesome features of RubyMine which may interest you.

I don't know any other Ruby IDE that has smarter code completion than RubyMine. In fact, a vast majority of Ruby programmers doesn't even use an IDE, rather they use a Text Editor!

Here are couple of short sitepoint articles that would give you more insights:

Which IDEs do Rubyists Use?

What Editor Do Rubyists Use?




回答2:


As mentioned before, Ruby's code completion is very complicated due to dynamic typing. Switching from C#/Java I've been struggling with it for some time and I've found one way to at least mitigate it a bit. Example:

def extract_data_from_this_array(input_array)
  # some code
end

Suppose you want to deal with the array you're getting as an input. You type input_array and no methods or all methods are listed, because Ruby has no idea that it's an array. What I do is write:

Array.new.

And RubyMine suggests all Array methods. It helps a lot when you've just picked Ruby.



来源:https://stackoverflow.com/questions/31975469/rubymine-code-autocompletion

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!