Is possible in Intellij Idea 14 do something like in Eclipse: Refactor : Extract Class?
Or I should do it manually?
Not found proper option in menu, and I am startled option is not available.
Anything that's worth doing in eclipse can be done faster and easier in IntelliJ, but if you're used to eclipse then you'll have to work a little bit to understand IntelliJ's way of doing things.
If you place your cursor somewhere in the java code in question (or on the class name in the project window), the Refactor menu will have an Extract option. Extract Delegate, Interface, and Superclass are the three options that deal directly with classes. These menu options aren't available if your cursor isn't in java class code.
The Interface option extracts an interface, renames your class and makes it implement the interface. The 'Superclass' option extracts a superclass and changes references to refer to it rather than your, now, derived class. The Delegate option simply extracts the methods and properties you choose into a new class.
Place your cursor onto the name of your inner class and press F6.
The refactoring you are looking for is probably extract delegate.
Related
Is there a way to view a list of all variables and methods in a class like in Eclipse, where all variables and methods of the class are listed vertically on the right side of the window. This Eclipse feature is useful to quickly see all the members of a class and you can click them to jump to their definitions.
Googling for this question led me to a lot of stuff about finding variable values when debugging, which I already know how to do and is not what I'm looking for.
Thanks for any help!
Use pragmas for this.
#pragma mark directives show up in XCode in the menus for direct access to methods.
Using them allows them to appear directly in the jump bar.
Also check out the answer to the question here.
What is the significance of #pragma marks? Why do we need #pragma marks?
I use the Generate function in the context menu to create my getter and setter methods. But there seems no way to tell Intellij to place the generated methods after the last method in the file ie at the bottom of the class definition. This is possible in Eclipse. Anybody know how to do it automatically in Intellij?
First of all a little hint. IntelliJ is designed to use without a mouse, so I prefer using the keyboard-shortcut Alt + Insert for code generating.
I don't know any possibility to generally define the place for inserting generated code. I recommend to place the cursor there, where you want to insert generated code and then generate it.
If you want to generate getters and setters via Generate menu, the only way is to place cursor at the bottom of your class (or wherever you want them to be)
But if your field is not used yet, there is another option: navigate to the field you need getter/setter for, press Alt+Enter (it calls intentions dialog) and choose "generate getter and setter" option. Then getter and setter will be generated at the bottom of the class (but not below inner classes if any).
settings > code style > java > arrangement
lets you customize the auto formatting options
I just moved to IntelliJ from Eclipse. I know how to get call hierarchy for methods (by pressing Ctrl+Alt+H), however, I can't get call hierarchy for classes (not type hierarchy), when I press Ctrl+Alt+H on the class name, nothing happened, when I use navigate->call hierarchy, the menu entry cannot be clicked (gray color). I need to know where the class gets called/initialized. This cool feature is in Eclipse, so I think IntelliJ also has this too.
You should be able to do the call hierarchy on a constructor. Alternatively, I've always found a usage search more useful than the call hierarchy.
Press Alt+F7 on a class, method, or field or right click and select "Find Usages". The results are categorized (new instance creation, type parameter, import, etc) so it's extremely simple to find what you're looking for.
I'm looking for a generate method from usage. IntelliJ supports extract, rename etc. But if i write, for instance, $this->new_method($a) i would like to quickly generate this method in the same class. Does this exist or maybe there is a plugin for it?
Thanks for any help
Place cursor on non existing method
Alt + Enter (or wait and click on light bulb)
Choose Add method from submenu.
Xcode has these handy time savers in the scripts menu called "Code->Place Accessor Defs on Clipboard" and "Code->Place Accessor Decls on Clipboard". These scripts allow you to automate the generation of getter and setter methods for any highlighted instance variables.
Does anyone know of a similar script that outputs Objective-C 2.0 Property declaration statements?
Check out:
Matt Gallagher's property accessors script for XCode
Accessorizer if you want a whole application for the generation of property accessors.
You can use the "Edit User Scripts..." menu option in the Scripts menu to create these yourself.
I also recommend textexpander which makes the process a little more intuitive and generalized such that the same "snippets" can be used across text editors.