I've used many editors and IDE's for application development from vi to complicated IDE's. I've personally used eclipse professionally for the last six years. I also love Notepad++ but it is not a replacement for what a true IDE can bring to the table whether it be a professional development shop or a game mod development effort.
For those that might be interested in adopting an IDE for their project development, I've highlighted some of the more useful features that would apply to modding in Sins.
Eclipse Project Explorer and Editors:
Projects are easily managed in Eclipse through the Project Explorer.
Eclipse File Search and Compare Capabilities:
I've loaded the full reference files for Diplomacy/Entrenchment/Vanilla as seperate Eclipse projects. This allows me quite a bit of lattitude when searching for game resources.
- Workspace - searches across all projects (my mod, diplomacy, entrenchment, vanilla)
- Selected resources - searches only against the resources or directory selected
- Enclosing projects - applies when searching for a string highlighted in a file such as a Buff or Abiltiy name.
- Working set - Can setup working sets against specified project resources such as only GameInfo directories, etc.
* Tip: Want to open a referenced Ability or Buff file? Simply highlight the Buff name inside the quotes and select the menu option Navigate/Open Resource (Alt+n then u). The open resource dialogue appears with the entity pre-selected.
Eclipse Search Results:
Eclipse Compare With Capability:
Eclipse has several nice capabilities when it comes to source file comparisons.
- Two different files can be compared directly
- Two directories can be be compared directly
- Two projects can be compared directly
- A resource that is checked into CVS can be compared to the latest branch check in.
- A resource that is checked into CVS can be compared to any branch or version checked in.
Eclipse CVS Integration:
Eclipse CVS Synchronization Capabilities:
Allows resources to be reviewed prior to check in.
Eclipse Team/CVS Options.
- Synchronize with Repository - Usually done at the project level to see modified resources
- Commit... - Commits selected resources to the repository. I usually perform synchronize over an explicit commit.
- Tag as Version... - Very useful way to create checkpoints during a versions development. Tags, or checkpoints, can be used to compare changes over a given period of time. I personally like to tag the source whenever a stable build during branch development. Tags can also be used to supplement branching if source code merges aren't really your thing.
- Branch... - Allows a new branch to be created. I prefer to branch from Head and merge back to Head after the branch is deployed.
- Show History - Shows a all history for the selected resource. History can then be loaded or compared against.
Eclipse Ant/Project Build Capabilities:
Eclipse easily integrates with Ant which is a very nice way to deploy a mod from the project workspace to the mod installation directory. Also note that ant will only copy modified files which allows for quick and easy source file modifications and migration to the mod directory for testing.
I've also built some custom ant tasks that help in the building and deployment of my mod project. You can look here if you want more information on the three taskdefs shown in the screen print and an example of the ant build.xml (https://forums.sinsofasolarempire.com/380774).