Using an Interactive Development Environment (IDE) can help to speed up code development, particularly in Helios. One excellent and recommended C++ IDE is CLion by JetBrains, and is available on PC, Mac, and Linux. Students and academics can get a free license for CLion the entire JetBrains suite. Visit here to get the free license.
Below, we will walk through setting up Helios in CLion and go through some basic features. CLion is very feature-rich, so you are encouraged to consult additional resources to utilize the full power of the IDE.
In order to use CLion to build Helios, you need to first set up the compiler set (called Toolchains) on your system. This is detailed for PC, Linux, and Mac on the page Dependent Software.
If you have not already done so, pull the Helios code from GitHub by going to "File->Open from Version Control", then type in the URL to the Helios repository "https://www.github.com/PlantSimulationLab/Helios". If you already pulled Helios and have it saved somewhere on your system, go to "File->Open" and browse to your Helios main directory. You should see the directory structure of Helios show up in the left Project pane. Use the Project pane to navigate to the Helios project you'd like to work on. In this example, we'll run the Context self-test.
By default, CLion will build the code in the directory "cmake-build-debug", but to keep with the usual Helios convention, let's change it to just build in the "build" directory. Open up the "Preferences" window, which can be found under "File->Preferences" (or "CLion->Preferences" on a Mac). As a note, if you ever want to find something in CLion, just go to "Help->Find Action" and it will usually point you to what you need based on a quick search. Navigate to "Build, Execution, Deployment->CMake". Under "Build directory", change the name to "build".
Now, you can right-click on the CMakeLists.txt file for your project in the Project pane and select "Load CMake Project". In the upper right toolbar, there is a drop-down menu between the hammer icon and play icon, which should list the executable file which in this case is called "context_selftest".
You can now hit the play icon in the upper toolbar to the right of the build icon. If all goes well, the code should build and run successfully.
You can edit any files by double-clicking them in the Project pane. They should save automatically when edits are made. You generally should not need to re-build every time you make a change to a file. Just clicking the play icon should automatically compile and run.
CLion has some great debugging features built-in. In order to debug your code, click the bug icon to the right of the play icon. The "Debug" window should show up at the bottom. If the run fails, it will indicate there has been a failure in the Console. Click on the "Debugger" tab in the upper left corner of the Debug window. The frames pane will indicate a trace of different entry points leading to the failure location. Usually the bottom few will correspond to Helios code, and the upper ones will correspond to underlying C or C++ code. You can start at the bottom of the trace and work up to find the place where the error occurred (this will be the last frame moving upward before you reach a core C library file).
CLion is fully integrated with GitHub, and allows for easy updating of your code (pull), committing of your code (commit+push), and can easily visualize changes to your code relative to the previous version. It is pretty straightforward to use. Much of the functionality can be accessed by clicking on the "Commit" tab in the left of the editor. There are also Git-related buttons in the upper-right corner of the IDE window to pull, push, and commit code.
Possibly one of CLion's most useful features is its integration with Doxygen documentation. When hovering over a function or variable, it can display a pop-up dialogue containing fully rendered Doxygen documentation (if available).
In order to enable this feature, go to the Preferences, then navigate to "Editor->General->Appearance" and tick the box for "Render documentation comments".