### Godot version

4.0.3.stable

### System information

Linux - Godot v4.0.3.stable - Vulkan (Forward+)

### Issue description

Disabling the shader pre-processor with `#pragma disable_preprocessor` causes errors to be displayed about built-ins being unknown. However, the shader will correctly compile and function as normal - the error is only in the shader editor.

Example screenshot:
![Screenshot from 2023-06-20 17-55-20](https://github.com/godotengine/godot/assets/19494722/06c9ea85-1e60-4f8c-8630-bbcfd13685c5)


### Steps to reproduce

1. Open project
2. Open `error-example.gdshader` in shader editor
3. Observe error

### Minimal reproduction project

[godot-4-shader-preprocessor-editor-error-minimal-reproduction-project-main.zip](https://github.com/godotengine/godot/files/11804403/godot-4-shader-preprocessor-editor-error-minimal-reproduction-project-main.zip)

Can also be found at: https://github.com/MenacingMecha/godot-4-shader-preprocessor-editor-error-minimal-reproduction-project
_recompile();
}
void Shader::_recompile() {
	set_code(get_code());
}
void Shader::set_path(const String &p_path, bool p_take_over) {
	Resource::set_path(p_path, p_take_over);
	RS::get_singleton()->shader_set_path_hint(shader, p_path);
}
void Shader::set_include_path(const String &p_path) {
	
	
	include_path = p_path;
}
void Shader::set_code(const String &p_code) {
	for (const Ref<ShaderInclude> &E : include_dependencies) {
		E->disconnect(SNAME("changed"), callable_mp(this, &Shader::_dependency_changed));
	}
	String type = ShaderLanguage::get_shader_type(p_code);
	if (type == "canvas_item") {
		mode = MODE_CANVAS_ITEM;
	} else if (type == "particles") {
		mode = MODE_PARTICLES;
	} else if (type == "sky") {
		mode = MODE_SKY;
	} else if (type == "fog") {
		mode = MODE_FOG;
	} else {
		mode = MODE_SPATIAL;