What is the purpose of the Intellij Commander? - intellij-idea

Can somebody tell me what the purpose of the Intellij Commander is?

http://jetbrains.net/devnet/docs/DOC-17 :
The two-panel Commander paradigm is a way of representing a hierarchy which provides the following benefits when working with the project elements:
In contrast to the tree-mode views, the Commander always shows only one hierarchy level which is rather convenient in many situations (e.g. when you are permanently working only with one package and don't want or just don't need to view the entire hierarchy-tree)
It provides a very convenient interface for copying and moving packages/classes (i.e., when using copy/move operations in one of the two panels, the destination is automatically suggested according to the location currently expanded in the opposite panel). For details on the operations available from the Commander, please look at the popup menus that appears when you right-click on different nodes in the commander tree. These menus are context-dependent and allow different operations on the elements of different types.
If you don't use it, you can always disable the Commander plug-in in Settings | Plugins.

Related

How to simply show *.jar in Intellij Idea?

The Intellij Idea show the External Libraries with group, version and jar, it seems too long, how to simply show aopalliance-1.0.jar on the top like in Eclipse??
That's currently not possible in IDEA.
Bear in mind that some libraries can contain multiple jars (for example expand the "<1.8>" library).
Also the dependency is defined by the group/artifact/version strings, so it makes sense to show them on the top level node.
However I agree that having exactly one node under the top level node for almost every library in the project is unnecessary and not good for usability.
So maybe the two nodes could be collapsed into a single node that shows both the jar name and the group/artifact/version string - with one of it probably grayed out a little.
I suggest you create a feature request at JetBrains issue tracker: https://youtrack.jetbrains.com/issues/IDEA

is it possible to have two project views in intellij idea

I am working with a big project on my IDEA with many modules. I would like to compare files and directories in the project view. Scrolling each time just to select the files for comparison is tedious. I am not using scroll from source so what I wanted to have is two views of the project, each one is scrolled to different files.
Is there a way to achieve that? Or any other alternative?
The closest you can get is the favourites view where you can drop individual files into a list and then compare them without having to scroll around the project view. Unfortunately that is only any use if you are comparing the same sets of files each time.
Unfortunately there is no out of the box way to do that, IDEA can run multiple instances, each with a different project, but switching is kind of painful.
One workaround is to import multiple maven projects as a modules of one project as described in this question.
There is an issue for that feature in the JetBrains issue tracker, it is interesting to read the conversation history there. Currently it seems JetBrains do not plan to implement this feature anywhere in the future.
...it makes no sense in IDEA. Unlike other platform-based IDEs, IDEA
supports multi-module projects, and all the contents displayed in a
single frame are modules of a single project. Introducing an extra
level of hierarchy above that would be unnecessary and extremely
confusing.
...
We don't have any plans to provide any other solution for this. The
1:1 correspondence between projects and frames is essential to the
internal design of IntelliJ IDEA: by definition, a project is the set
of code opened in a single frame. There is no way to change this
without rewriting the whole IDE, which we don't plan to do.
There was such view in intelliJ called Commander. Since last versions it's not shipped together with intelliJ, but you can install it as a plugin.
I think it will be helpful for your case.

Logical file groups/folders in IntelliJ

I just created a project, and I notice immediately that I can't seem to right-click on my src folder and create a logical file group/folder within the project view.
In many IDEs, I can arbitrarily organize source files in groups/folders. These grouping help me organize my business process and data access layers appropriately.
How do I do the same in IntelliJ?
I'm not sure what the exact equivalent to what you're thinking is, or if there even is one.
IntelliJ has a notion of "scopes". Under the Project/navigation view, click the configure dropdown and choose "Edit Scopes...". From this window, you can define a pattern to include certain files from your project.
For instance, all of my DAOs are in packages called my.company.<feature>.persistence. I create a scope called "DAOs" with the pattern src[myProject]:my.company.*.persistence.*. Now when I choose "DAOs" from the Project view dropdown, I see a filtered view of the project. I haven't found a way to show that filtered view alongside other scopes at the same time, however.
These scopes can also be shared, and they can be used to narrow down searches. They are similar in many ways to Eclipse's working sets.
Many scopes are defined implicitly, like Test and Production, Changed Files, VCS changesets, etc.

Why Local Classes don't show up in SE38 Classes list?

I'm writing an ABAP program using OO objects. In SE38, under the class folder of my program, some of my local classes do not show up. Some do.
All my classes are stored in an 'include'. As far as I know there's no Class-Builder capability for local classes.
When I rename a class, sometimes it gets renamed in the folder listing mentioned above, sometimes it doesn't.
When I add new classes, sometimes they show up, sometimes they don't.
What am I missing? Is there a particular way to add local classes to an include with other classes and have it show up in the Classes folder? Is there a way to refresh the listings?
Syntax is is being checked, the program finds the classes, so SAP is reading everything and recognizing it just fine. It just doesn't display under the classes folder.
As much as I enjoy OO, I'm starting to get the feeling that although it's the path forward, it's also semi-masochistic. I'm trying to be the leader of our group to encourage OO over classic ABAP. Things like this though, I have to iron out and understand before I could ever convince others. :)
The list of local objects in SE80/SE38 (classes as well as data types, forms and other stuff) isn't refreshed as frequently as one would like. It's not like the Outline view that you might know from Eclipse or similar tools from other IDEs. When in doubt, you might want to right-click the program in the tree view and rebuild the object list. Or you might want to switch to global classes altogether, which gives you a much better tool support.

Eclipse: Project nature benefits, reading project & plugins settings

So far I have two short questions:
1) What precisely are the benefits of creating custom nature?
2) Is it possible to somehow programmatically read files in [project]/.setting or [workspace]/.metadata/.plugins?
I'm using Eclipse Helios (3.6).
Ad 1. I've read that you can't have two natures ofthe same set, that you can use it to associate certain perspectives/tools (ex. builder) with it but well.. anyting else I can't do easily without nature? Ex. I can easily add a builder by modifying an IProject variable.
Ad 2. I tried to find a way to read project specific settings or plugin settings but failed. No specs, different file types, inconsistent XML tags... Is it at all possible without parsing them manually?
Thanks for your help!
Paweł
Think of a nature as a flag. All project-related functionality in Eclipse is triggered by natures. Project properties pages, context menu items, etc. appear based on presence of natures. Third parties can check for presence of nature to tell if the project is of certain "type". A nature also has install/uninstall methods. This gives you a convenient place to implement all actions that need to happen on the project when your technology is enabled. Why is that convenient? Because a third party can simply add the nature without knowing what else is necessary to configure and your code takes care of the rest.
Plugins write to [project]/.setting or [workspace]/.metadata/.plugins locations in different ways. The file formats are never documented as they aren't meant to be manipulated directly. Some plugins re-use the common ProjectScope and InstanceScope classes to read/write the data. Some read/write on their own. I would start with what information you are trying to read, figure out which plugin it belongs to and then see if there is public API in that plugin for accessing that information. Reading these settings directly is almost never going to be the correct approach.