quick overview of eclipse features i use most often, Sandra is writing a document on how to install eclipse and how to get it to play nicely with casa because it's not intuitive
- highly configurable ide written in java with a plugin architecture for user-supplied modules
- practically any language which has been around for any length of time has an eclipse plugin
- one can download a version of eclipse with the c++ plugin already installed http://www.eclipse.org/cdt/
- there is also a python development plugin, PyDev, http://pydev.org/
- project explorer (left) - expandable/collapsable view of project tree
- right panel contains outline of source file members etc, i find most useful the methods, which provide a one-click navigation to the corresponding declaration/implementation in the source.
- bottom panel has tabs for output of useful features such call and type hierarchies.
- lots of buttons along the top that I never use
immediately obvious features
- syntax colorization (highly configurable)
- variable highlighting
- immediate feedback for syntax errors, method call errors, etc => minimal cost involved to fix these because can fix before compiler gets them
- hover over methods, variables etc to get definitions/declarations. click to grab focus for scrollability
- method completion available by typing variable name and "." (or "->" if pointer or "::" if class name) and waiting a second or two for a list of possible methods to pop up. Can filter these farther by minimal match.
right click on a variable/method/etc for many options, including code navigation and inspection:
- Navigate to declaration
- Inspect call hierarchy for methods
- Inspect class hierarchy for classes
- had problems getting many features to work on linux, so abandoned it until Sandra showed me she had PyDev working on her mac so I tried on my Mac and was able to configure things well. I'm still in the very early exploration phase.
- many of the same features as the C++ interface, plus code folding
- having lots of options is a double-edged sword, it can be difficult to find the option you are interested in changing although the preference categories are generally well organized in a hierarchical layout.
- finicky about which jvm you use, at least on linux. default mac jvm seems ok so far.
- can exhaust jvm memory under some (somewhat confusing and unknown) circumstances
- seems to have issues at least sometimes in recognizing class hierarchies when templates are involved.
- feature exploration can be a time consuming, albeit pleasurable, diversion