1 This is how we exclude in the .iml files
 2 For example in example-nbody.iml
 3 ```xml
 4 <module>
 5   <component name="NewModuleRootManager" inherit-compiler-output="true">
 6     <exclude-output />
 7     <content url="file://$MODULE_DIR$/../examples/nbody">
 8       <sourceFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/java" isTestSource="false" />
 9       <sourceFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/resources" type="java-resource" />
10       <!--<excludeFolder url="file://$MODULE_DIR$/../examples/nbody/src/main/java/nbody" />-->
11   </component>
12 </module>
13 ```
14 Sadly to exclude a single file we have to go to
15 ```
16     IntelliJ>Settings>Build, Execution, Deployment> Compiler>Excludes
17 
18     And add to the UI
19     FULL_PATH_TO_HAT/hat/wraps/opengl/src/main/java/wrap/opengl/GLCallbackEventHandler.java
20 ```
21 
22 
23 We need these to be able to run in a run configuration
24 ```
25 RunConfiguration
26    VMOptions
27      -XstartOnFirstThread  (on mac only for nbody/opengl)
28      --enable-native-access=ALL-UNNAMED
29       -Djava.library.path=FULL_PATH_TO_HAT/build
30 
31   WorkingDirectory
32      FULL_PATH_TO_HAT/wraps/opengl/src/main/java/wrap/opengl/GLCallbackEventHandler.java
33      /Users/grfrost/github/babylon-grfrost-fork/hat/intellij
34 
35   Assuming Working dir is
36      FULL_PATH_TO_HAT/intellij
37 
38 ```
39 
40 Note that run configs are held in `intellij/.idea/workspace.xml`
41 
42 I tend to add them manually.
43 ```xml
44 <project version="4">
45   // other components
46 <component name="RunManager">
47   <configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
48       <classpathModifications>
49         <entry path="$PROJECT_DIR$/../build/hat-backend-ffi-opencl-1.0.jar" />
50         <entry path="$PROJECT_DIR$/backend_ffi_shared.iml" />
51       </classpathModifications>
52       <option name="MAIN_CLASS_NAME" value="nbody.Main" />
53       <module name="example_nbody" />
54       <option name="VM_PARAMETERS" value="-XstartOnFirstThread --enable-native-access=ALL-UNNAMED -Djava.library.path=../build" />
55       <extension name="coverage">
56         <pattern>
57           <option name="PATTERN" value="nbody.*" />
58           <option name="ENABLED" value="true" />
59         </pattern>
60       </extension>
61       <method v="2">
62         <option name="Make" enabled="true" />
63       </method>
64   </configuration>
65   <recent_temporary>
66       <list>
67         <item itemvalue="Application.Main" />
68       </list>
69   </recent_temporary>
70 </component>
71 </project>
72 ```
73 
74