Issue description:
Allow custom shader code inside of the visual shaders.
I made a mockup of what the node will look like.

Edited: mockup
The inputs could be auto-generated from uniforms in the shader code.
This is the definition of a function. You mean scan the shader code for variables?
I meant it like adding something similar to uniform vec3 Color = ...; in the shader code and the node automatically adding an input called Color which is passed to the shader using that uniform.
I've created a similar Expression node my my own noise module in:
https://github.com/Xrayez/godot-anl/commit/facbbcc59e0666c93b4a7877ec61910491eeb0f6
https://github.com/Xrayez/godot-anl/commit/299bfc61840a6bfec7f711bc8a577f1bdfae941f
I've adapted visual shader codebase to my own needs, some structures share similarities, might be useful...
I currently began to implement it. Not sure if the resulted form will be the same, but I always trying to achieve the best result. demo screenshot -

Most helpful comment
I currently began to implement it. Not sure if the resulted form will be the same, but I always trying to achieve the best result. demo screenshot -