This Question is Possibly Answered

1 "correct" answer available (4 pts) 2 "helpful" answers available (2 pts)
17 Replies Last post: Jan 28, 2013 6:07 PM by Alexander Dodatko  
Benoit Menendez Newbie 5 posts since
Sep 3, 2002
Currently Being Moderated

May 4, 2012 12:54 PM

RubyMotion support

I'm playing with RubyMotion and would love RubyMine to support the syntax extensions (named parameters) and IOS SDK.

 

Are you planning to support RubyMotion?

 

Thanks,

Dmitry Jemerov Master 12,564 posts since
Aug 19, 2002
Currently Being Moderated
May 4, 2012 2:08 PM in response to: Benoit Menendez
Re: RubyMotion support

We're currently discussing this internally. It's quite likely that we will support MacRuby (and RubyMotion specifically), but we don't have any timeframe for this yet.

Andrei Fokau Newbie 3 posts since
May 8, 2012
Currently Being Moderated
May 8, 2012 11:05 PM in response to: Dmitry Jemerov
Re: RubyMotion support

Hm, this doesn't look promising to me. It is just the argument syntax and method "duplicates" which cause major complications.

Could you make a "try at your own risk" dev-plugin for the starters?

Or maybe open-source your ruby plugin so that the community could fix it?

Dmitry Jemerov Master 12,564 posts since
Aug 19, 2002
Currently Being Moderated
May 9, 2012 1:09 AM in response to: Andrei Fokau
Re: RubyMotion support

I don't know why this doesn't look promising. Obviously we can't change our near-term development plans immediately as every new technology gets announced, but RubyMotion/MacRuby support is something we're seriously considering.

 

The main problem is not the syntax, but rather implementing code completion for Cocoa methods in Ruby code.

The Ruby plugin and RubyMine share the same codebase. RubyMine is a commercial product, and we have no intentions of open-sourcing it.

Andrei Fokau Newbie 3 posts since
May 8, 2012
Currently Being Moderated
May 9, 2012 10:28 AM in response to: Dmitry Jemerov
Re: RubyMotion support

I am sorry for my pessimistic evaluation. I just thought that your sentence meant "we might add RubyMotion support in a half a year".

 

I have some partial solution for code completion by generating class stubs from bridgesupport-files. It is far from ideal but it gives some hints. I believe one can make the stubs even better in near future. I was also considering writing a plugin for RubyMine to deal with the syntax, but this requires some time for a person having no experience in this matter. Having no source code for the Ruby plugin, it is probably unrealistic.

 

As I can see, RubyMotion support in TextMate and Redcar is being actively implemented, so one could use them in the meantime. I haven't seen anyone considering tweaking Radrails but this seems possible since the code is open https://github.com/aptana/radrails However, RubyMine is my favorite Ruby IDE and will probably always be.

 

What is your near-time development plans and how soon can you put RubyMotion in them?

Dmitry Jemerov Master 12,564 posts since
Aug 19, 2002
Currently Being Moderated
May 9, 2012 2:51 PM in response to: Andrei Fokau
Re: RubyMotion support

Actually "half a year" is a fairly good estimate for when this functionality might be released. Right now we're working on RubyMine 4.5, which will be released as EAP very soon, and which will not include any MacRuby or RubyMotion support.

Bob Hutchison Newbie 4 posts since
Oct 8, 2002
Currently Being Moderated
May 14, 2012 4:08 PM in response to: Dmitry Jemerov
Re: RubyMotion support

You say the main problem is not the syntax. Maybe so for complete support of RubyMotion in RubyMine. However, lack of syntax support is stopping anyone from using RubyMine with RubyMotion in the interrum. If you reformat code with the named parameter syntax the code will be broken by RubyMine. Fixing that would represent an immediate tangible bennefit to RubyMine/RubyMotion users.

 

For example...

 

    def application(application, didFinishLaunchingWithOptions:launchOptions)

becomes
    def application(application, didFinishLaunchingWithOptions
      :launchOptions)
and that won't comple.

Dmitry Jemerov Master 12,564 posts since
Aug 19, 2002
Currently Being Moderated
May 17, 2012 6:17 PM in response to: Bob Hutchison
Re: RubyMotion support

The MacRuby syntax for hashes will be supported in RubyMine 4.5.

Bob Hutchison Newbie 4 posts since
Oct 8, 2002
Currently Being Moderated
May 17, 2012 8:11 PM in response to: Dmitry Jemerov
Re: RubyMotion support

Wonderful! Thanks!

Adam Cooper Newbie 4 posts since
Jan 14, 2010
Currently Being Moderated
May 9, 2012 1:40 AM in response to: Andrei Fokau
Re: RubyMotion support

I actually think it's encouraging to hear that JetBrains is already discussing what it would take to do this only one day after RubyMotion was announced. Considering none of us knew about RubyMotion six days ago, and considering there isn't another product that offers the sort of advanced auto-completion and refactoring support that RubyMine does, it's probably best if we cut the RubyMine team some slack. I continue to get emails multiple times a day from people voting for RubyMotion support in RubyMine. If there's a real demand for it, I'm sure JetBrains will come through.

 

The other thing I'm sure JetBrains has to consider is how this fits in with AppCode. RubyMine seems to be focused on the Rails web development market while a completely separate product, AppCode, is targeting the iOS market. While the language of RubyMotion matches up with RubyMine, the market really matches up more with the new AppCode product.

 

I'm not sure what the right solution is, but what'd be really neat is if we could 1) code in Ruby, 2) get RubyMine's Ruby editing and refactoring, 3) get AppCode-like integration with Interface Builder. If you could add autocomplete and Interface Builder integration features for RubyMotion users, you'd suddenly make that platform a lot more attractive. For me, I don't really care whether those features are packaged into RubyMine or into AppCode as long as I had a product that let me build iOS apps in Ruby with excellent autocomplete and refactoring support, and maybe even Interface Builder support (though I could see that needing to come in a later version), I'd' be very interested.

 

Adam

Andrei Fokau Newbie 3 posts since
May 8, 2012
Currently Being Moderated
May 9, 2012 10:40 AM in response to: Adam Cooper
Re: RubyMotion support

Concerning RubyMotion and Interface Builder, you may be interested in http://ianp.org/2012/05/07/rubymotion-and-interface-builder/

Adam Cooper Newbie 4 posts since
Jan 14, 2010
Currently Being Moderated
May 9, 2012 3:16 PM in response to: Andrei Fokau
Re: RubyMotion support

Thanks Andrei! I wasn't aware of this option for working with interface builder. Nor was I aware of the work being done on textmate and redcar to support RubyMotion.

 

So, you make a good point--if the open source guys have been able to start adding basic autocomplete (and even interface builder) support this quickly, it'd be nice to hear from JetBrains what their plans are and how long it would take to incorporate similar features into their products.

 

And, look at that, before I was able to hit Post, Dmitry has replied:

 

Actually "half a year" is a fairly good estimate for when this functionality might be released. Right now we're working on RubyMine 4.5, which will be released as EAP very soon, and which will not include any MacRuby or RubyMotion support.

 

 

So it sounds like JetBrains is focused on 4.5 and won't be able to really start working on this for a while. As someone who works at a software development tools company myself, I can understand this, but it is a bit disappointing to know it will take so long.

 

Dmitry, anything you guys can do to keep the community informed of what JetBrains plans to do with RubyMotion and how the progress is going will be greatly appreciated. We understand you've got existing product plans and can't just magically add support for any new thing that comes along, but just knowing whether it's coming or not and having some idea about when to expect it is a big help.

Dmitry Jemerov Master 12,564 posts since
Aug 19, 2002
Currently Being Moderated
May 9, 2012 4:22 PM in response to: Adam Cooper
Re: RubyMotion support

AppCode is built very closely around the XCode project model, which is completely irrelevant in the case of RubyMotion. I would expect that the RubyMotion support will become a feature of RubyMine, not AppCode. Of course, that doesn't block us from implementing Interface Builder integration too.

Dennis Ushakov JetBrains 410 posts since
Sep 10, 2008
Currently Being Moderated
May 4, 2012 11:57 PM in response to: Benoit Menendez
Re: RubyMotion support

Hello Benoit,

 

I've created feature request for RubyMotion support, feel free to vote for it and track it's progress

Adam Cooper Newbie 4 posts since
Jan 14, 2010
Currently Being Moderated
May 4, 2012 8:04 PM in response to: Dennis Ushakov
Re: RubyMotion support

Thanks Dennis. The link you gave to the feature request is broken. I believe it should be: http://youtrack.jetbrains.com/issue/RUBY-11039

Dennis Ushakov JetBrains 410 posts since
Sep 10, 2008
Currently Being Moderated
May 4, 2012 11:57 PM in response to: Adam Cooper
Re: RubyMotion support

Thank you for correcting, I've fixed link in my message.

Alexander Dodatko Newbie 1 posts since
Jan 28, 2013
Currently Being Moderated
Jan 28, 2013 6:11 PM in response to: Dennis Ushakov
Re: RubyMotion support

Please also add support for RubyMotion named parameters indentation. I wish they had a closer look to those in Objective-C (meaning, parameters must be aligned by colon rather than parameter name).

 

As is :

                    def tableView(tableView,

                         didSelectRowAtIndexPath:indexPath)

 

 

 

To be :

                    def tableView(tableView,

  didSelectRowAtIndexPath:indexPath)

=========================================

 

 

 

The same thing refers to invocations :

As is :

UIView.animateWithDuration(2,
    delay: 1,
    options: UIViewAnimationOptionCurveLinear,
    animations: lambda {
       @view.frame = [@points[@current_index], [100, 100]]
    }, completion:lambda {|finished|
      self.animate_to_next_point
    })

 

 

To be :

 

UIView.animateWithDuration( 2,
                     delay: 1,
                   options: UIViewAnimationOptionCurveLinear,
                animations: lambda { @view.frame = [@points[@current_index], [100, 100]] }, 
                completion:lambda {|finished| self.animate_to_next_point })

 

=========================================

 

P.S. Not sure it's the right place to leave such suggestions but it is the only RubyMotion thread I've found so far.

More Like This

  • Retrieving data ...