CodeSnip is more than just a simple repository for your code snippets, it can do some other things like create compilable units and test-compile your code that mean it needs to know something about your code. For that reason each snippet must be identified as one of six kinds, and there are rules governing the layout of the source code for each kind. The six kinds are:
If you want to be able use all of CodeSnip's functionality you must designate each of your snippets as one of the the first five kinds. Use the "learn more" links to find out what you need to do to comply with the requirements. Another way to learn is to examine the code from the main database, since it all conforms.
On the other hand if you only want to use CodeSnip as a repository for your code snippets, and don't want test compiling, just designate everything as freeform. Or mix and match.