Understanding the suricata codebase

Hello. I want to understand the code base of suricata, however I am not sure where to start. What sort of code editor/ide should I use?, Which files should I start with etc? How do I compile on the raspberry pi?

The code is quite large, so where to start would be best determined what you want to work on? A protocol parser? A new input source? Figure that out, then it will be much easier to point to a starting point, or at least an example.

As for building on a Raspberry Pi - Raspbian appears pretty close to Debian, so starting with our Debian build from source documentation would be a good start:

https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Debian_Installation