Basically, what’s happening is that in your robot-config.cpp, you’re including main.h, which is including the robot-config.hpp, which is including main.h, which includes the robot-config.hpp, etc, etc.
What you can do to fix this is either not including main.h in robot-config.hpp, or not including robot-config.hpp in main.h. In robot-config.cpp you can just #include both of them seperately.
After recreating this on my machine, VSCode does show this as an error but you should still be able to compile the program. If you don’t want the error to appear visually, you can create a file in your project’s root directory (contains Makefile, common.mk, project.pros, etc.). Name this file .clangd and put the following inside of it:
Interesting, I have never encountered that issue. You can open up file explorer/finder/whatever you normally use to navigate files, and create the file through that instead of VSCode.
Oh also, you definitely want to use header guards for this. This will prevent your recursive inclusion problem from actually redefining everything an infinite number of times. Simply add the line #pragma once at the top of all of your header files.