Yes, you are correct. However, cmake (and by extension the vscode cmake extension) very often uses ./build and the out-of-source build directory. So if Modern Fortran starts using ./build to place the .mod, .smod and fypp-generated files. There is no way we can guarantee that we won’t break one’s build by overwriting a .mod generated via the build system with one generated via the linter (which does a mock compilation).
True, and we do do that with the linter’s preprocessor (fpp, cpp depending on the compiler used for linting), but because fypp is a tool external to the compiler piping its output to the compiler can only be done with stdin. Even gfortran does not officially support that, or if it does it’s undocumented. The gfortan -x flag only lists c, c++ and assembler as supported languages.