Tools for SOFA Development
From SOFAWiki
How to Setup Tools for SOFA Development
Requirements
Many tools and editors can be used to develop code in Sofa, and anyone is free to choose the ones they prefer. However, in order to respect the Coding Rules, several important settings should be in place :
- The preferred indentation mode is 4 spaces, with no indentation for namespaces.
- Some editors insist to use tabulations. In this case set the tabulation width to 4. This setting should also be done in all editors, so that codes using tabs are correctly displayed
- Disable automatic re-indenting of source code, in particular replacement of tabs with spaces. Otherwise the commit changes will be very large, and will introduce many more conflicts when other developers update their version
- Also try to avoid editors that change the CR/CRLF line endings when saving a file. To avoid such issues as much as possible, please enable auto-props in subversion so that text files are flagged as using native line endings when added to the repository
The following pages provide instructions on how to configure and use several tools. They can be useful to beginners. As we support 3 different systems (Linux, Mac, Windows) it will also be useful for more advanced developers to quickly find information on how to work in a new environment when required (due to driver issues, to fix cryptic compiler errors, ...).
If your favorite editor is not listed or its page is not yet created, feel free to contribute !
Instructions
Feature Comparison
| Tool | Supported OS | SVN Versioning | Build | Code Edition | Debugging | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Linux | Mac | Windows | Update | Commit | Diff | Log | Compilation | Link to errors | Import project | Completion | Go to definition | Search in multiple files | Replace in multiple files | ||
| Shell | ok | ok | difficult | ok | ok | ok | possible | ok | no | no | no | no | ok | ok | possible |
| Emacs | ok | ok | possible | to be tested | ok | ok | no | to be tested | ok | ok | to be tested | ||||
| Visual Studio | no | no | ok | to be tested (plugins) | ok | ok | ok | ok | ok | ok | ok | ok | |||
