I have some ideas on how to make Code Completion in RubyMine more useful.
1. Indicate to the user the currently inferred type. For example, when the cursor is on a variable, it should be easily visible to the user if RubyMine has inferred a type, and if yes, which type it inferred. This way the user will directly know if code completion is going to work.
2. When the user attempts to invoke code completion, but a type or scope could not be inferred, there should be a [optional] fallback to code completion list based on simple look-up table. Similar to the way completion works in plain text files.
3. Increase the quality and accuracy of type inferrence. I know it's very difficult to accurately infer types in a dynamic language that's full of "meta"... But have a look at RSense. http://cx4a.org/software/rsense/ ... I wished RubyMine's Code Completion was as awesome as this :)
Would really like to hear your thoughts on this.