Wednesday July 11, 2007 I've justed checked in support for Ruby hints and quickfixes. Most Java IDE users should be familiar with this, but I'll illustrate with some screenshots:
I've opened a Ruby file - notice the little lightbulb thingy and the underline on one of the lines:
The tooltip for the lightbulb will tell you that you have a block variable which is reusing a local variable. This means that the local variable will be modified by the block - which is sometimes not intentional. Let's put the caret there and press Alt-Enter (or invoke the "Fix Code..." item from the Source menu)
You can now use the arrow keys to choose among the available fixes, and press Return to apply one. This will initiate in-place editing of only the local variable references (or only the block variable references, depending on which fix you selected). When you're done you have a unique block variable that is no longer aliasing or side-effecting the local variable:
(The in-place editing is still a bit buggy because of issue 108889. Hopefully we can get it fixed soon.)
Here's another hint: Rails Deprecations. This looks for usages of deprecated Rails idioms, and adds little warning signs with a description. Here's an example of how this looks:
In the above code, you're using the @request field, instead of the request or request= attribute methods.
And by the way, if any Rails experts are reading this: The Rails Deprecation document describes
these fields are deprecated, yet the Rails code generator itself spits out code which uses them (specifically, in the controller's functional test). Is there
a good reason for this? For now, the rails deprecation hint skips Rails test files when scanning for this issue.
And finally, here's a line-specific quickfix. It only kicks in to analyze the current line and is suitable for things you wouldn't want splattered all over your file, such as offers to create classes and methods etc. This tip looks for class or method definitions on a single line, and offers to split and reformat them across multiple lines (I think Charlie requested this one). Here's a typical same-line-class put into a rails controller test:
Applying the fix yields the expected result - semicolons removed, newlines placed in the right places and indentation fixed as expected:
You can configure the available hints under options. (The Ruby options are going to be expanded and reorganized shortly). Here's the hints panel which lets you see the available hints, enable/disable them, and configure whether each hint is shown as a warning, an error, or a warning on the cursor-line only.
Notice how the list of hints is kinda short today... That will be the topic of my next blog entry!
P.S. We're after feature freeze so whether this appears on the update center or in the default product remains to be seen, but I'm always an optimist. In any case, it will be easy to access it. For now however it's in the daily builds
(2007-07-11 15:45:09.0) Permalink Comments [6]
Posted by 217.74.220.92 on July 11, 2007 at 04:23 PM PDT #
Posted by Tor Norbye on July 11, 2007 at 04:26 PM PDT #
Posted by Nathan Fiedler on July 11, 2007 at 05:22 PM PDT #
Posted by freeman on July 11, 2007 at 07:30 PM PDT #
Can you providde a few more details on "code templation" - did you mean code templates or code completion? I tried with code completion and each seems to work okay. Also, can you be a bit more specific about what the problem is with editing rhtml code - is it the keybinding issue you've described earlier, or something else?
Posted by Tor Norbye on July 12, 2007 at 08:45 AM PDT #
Posted by freeman on July 16, 2007 at 09:25 PM PDT #