Some possibly useful suggestions-
I have been using the 10F,12F, and 16F lately, and I use a simple system that works quite well for me. My projects are always on the smaller side (these things don't hold a lot of code anyway) so I usually have just 2 files- main.c and fuses.c. I have MPLABX generate the fuse settings, save them in fuses.c, create a main.c from a standard template I have with section header comments, macros, etc.
I have tried MCC to generate code, but it usually ends up in a mess so I don't use that. I have a set of macros that take care of the pin stuff and all other peripheral code I simply look up in the datasheet- its not hard, and the benefit is you have to dig into the datasheet a little (that's a good thing). Over time, you can use your previous projects to lookup code that you can reuse.
Here is a simple example of a main.c file-
https://gist.github.com/anonymous/619b77bc725c5eb0d65c57749ccfd50a(those macros would probably need tweaking for your 18F, I don't think it has ANSEL for example)
After you get a template setup that works the way you like, when you create a new project just use your blank template, fill in where needed, add your specific code, and have fun.
I can jump around different pics (10/12/16) without much trouble. The projects all look the same, no surprises, nothing forgotten, and its just a matter of figuring out the peripherals you want to use and setting them up according to the datasheet.
One other suggestion for anyone listening-
use-
#include <stdint.h>
so that you can use uint8_t, uint16_t, int8_t, int32_t, etc.- instead of unsigned char, unsigned short, char, long, etc.
that way you know exactly what you are dealing with (unless you always know what an unsigned int actually means for each cpu/compiler combo you use). The previous post reminded me that I never know exactly what an unsigned int actually is (I usually have a pretty good idea, but me and the compiler may not agree). It may be a known known when programming pc's, but with microcontrollers you never really know (except for char and unsigned char- thats pretty certain).
/my_little_unimportant_rant_over