Fix uint's suffix is not highlighted in text shader editor

This commit is contained in:
jsjtxietian 2024-05-03 21:45:53 +08:00
parent 03e6fbb010
commit b851514b10
3 changed files with 11 additions and 1 deletions

View File

@ -334,6 +334,8 @@ void ShaderTextEditor::_load_theme_settings() {
warnings_panel->add_theme_font_override("normal_font", EditorNode::get_singleton()->get_editor_theme()->get_font(SNAME("main"), EditorStringName(EditorFonts)));
warnings_panel->add_theme_font_size_override("normal_font_size", EditorNode::get_singleton()->get_editor_theme()->get_font_size(SNAME("main_size"), EditorStringName(EditorFonts)));
}
syntax_highlighter->set_uint_suffix_enabled();
}
void ShaderTextEditor::_check_shader_mode() {

View File

@ -303,7 +303,7 @@ Dictionary CodeHighlighter::_get_line_syntax_highlighting_impl(int p_line) {
}
// Check for dot or underscore or 'x' for hex notation in floating point number or 'e' for scientific notation.
if ((str[j] == '.' || str[j] == 'x' || str[j] == '_' || str[j] == 'f' || str[j] == 'e') && !in_word && prev_is_number && !is_number) {
if ((str[j] == '.' || str[j] == 'x' || str[j] == '_' || str[j] == 'f' || str[j] == 'e' || (uint_suffix_enabled && str[j] == 'u')) && !in_word && prev_is_number && !is_number) {
is_number = true;
is_a_symbol = false;
is_char = false;
@ -617,6 +617,10 @@ void CodeHighlighter::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "color_regions"), "set_color_regions", "get_color_regions");
}
void CodeHighlighter::set_uint_suffix_enabled(bool p_enabled) {
uint_suffix_enabled = p_enabled;
}
void CodeHighlighter::set_number_color(Color p_color) {
number_color = p_color;
clear_highlighting_cache();

View File

@ -93,6 +93,8 @@ private:
Color symbol_color;
Color number_color;
bool uint_suffix_enabled = false;
protected:
static void _bind_methods();
@ -139,6 +141,8 @@ public:
void set_member_variable_color(Color p_color);
Color get_member_variable_color() const;
void set_uint_suffix_enabled(bool p_enabled = true);
};
#endif // SYNTAX_HIGHLIGHTER_H