Add error marking to the shader error console output

This makes it possible to see where the shader error is without
having to look at the trace printed below the source code.
This commit is contained in:
Hugo Locurcio 2021-07-17 03:05:11 +02:00
parent de83ee57e5
commit 9fc2849a57
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C

View file

@ -1351,7 +1351,13 @@ Error ShaderCompilerRD::compile(RS::ShaderMode p_mode, const String &p_code, Ide
if (err != OK) {
Vector<String> shader = p_code.split("\n");
for (int i = 0; i < shader.size(); i++) {
print_line(itos(i + 1) + " " + shader[i]);
if (i + 1 == parser.get_error_line()) {
// Mark the error line to be visible without having to look at
// the trace at the end.
print_line(vformat("E%4d-> %s", i + 1, shader[i]));
} else {
print_line(vformat("%5d | %s", i + 1, shader[i]));
}
}
_err_print_error(nullptr, p_path.utf8().get_data(), parser.get_error_line(), parser.get_error_text().utf8().get_data(), ERR_HANDLER_SHADER);