Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Virtual methods in TextServerExtension are missing the undescore prefix #64814

Closed
touilleMan opened this issue Aug 24, 2022 · 1 comment · Fixed by #66492
Closed

Virtual methods in TextServerExtension are missing the undescore prefix #64814

touilleMan opened this issue Aug 24, 2022 · 1 comment · Fixed by #66492

Comments

@touilleMan
Copy link
Member

Godot version

4.0

System information

n/a

Issue description

Following this comment #64429 (comment)
I ran a simple Python script to check if the methods follow the "underscore is for virtual method rule":

import json
api = json.loads(open("extension_api.json").read())
virtual_without_underscore = [f"{c['name']}::{m['name']}" for c in api['classes'] for m in c.get('methods', ()) if m['is_virtual'] and not m['name'].startswith('_')]
print("\n".join(virtual_without_underscore))

The output shows that only TextServerExtension is affected by this rule:

TextServerExtension::has_feature
TextServerExtension::get_name
TextServerExtension::get_features
TextServerExtension::free_rid
TextServerExtension::has
TextServerExtension::load_support_data
TextServerExtension::get_support_data_filename
TextServerExtension::get_support_data_info
TextServerExtension::save_support_data
TextServerExtension::is_locale_right_to_left
TextServerExtension::name_to_tag
TextServerExtension::tag_to_name
TextServerExtension::create_font
TextServerExtension::font_set_data
TextServerExtension::font_set_data_ptr
TextServerExtension::font_set_face_index
TextServerExtension::font_get_face_index
TextServerExtension::font_get_face_count
TextServerExtension::font_set_style
TextServerExtension::font_get_style
TextServerExtension::font_set_name
TextServerExtension::font_get_name
TextServerExtension::font_set_style_name
TextServerExtension::font_get_style_name
TextServerExtension::font_set_antialiased
TextServerExtension::font_is_antialiased
TextServerExtension::font_set_generate_mipmaps
TextServerExtension::font_get_generate_mipmaps
TextServerExtension::font_set_multichannel_signed_distance_field
TextServerExtension::font_is_multichannel_signed_distance_field
TextServerExtension::font_set_msdf_pixel_range
TextServerExtension::font_get_msdf_pixel_range
TextServerExtension::font_set_msdf_size
TextServerExtension::font_get_msdf_size
TextServerExtension::font_set_fixed_size
TextServerExtension::font_get_fixed_size
TextServerExtension::font_set_force_autohinter
TextServerExtension::font_is_force_autohinter
TextServerExtension::font_set_hinting
TextServerExtension::font_get_hinting
TextServerExtension::font_set_subpixel_positioning
TextServerExtension::font_get_subpixel_positioning
TextServerExtension::font_set_embolden
TextServerExtension::font_get_embolden
TextServerExtension::font_set_transform
TextServerExtension::font_get_transform
TextServerExtension::font_set_variation_coordinates
TextServerExtension::font_get_variation_coordinates
TextServerExtension::font_set_oversampling
TextServerExtension::font_get_oversampling
TextServerExtension::font_get_size_cache_list
TextServerExtension::font_clear_size_cache
TextServerExtension::font_remove_size_cache
TextServerExtension::font_set_ascent
TextServerExtension::font_get_ascent
TextServerExtension::font_set_descent
TextServerExtension::font_get_descent
TextServerExtension::font_set_underline_position
TextServerExtension::font_get_underline_position
TextServerExtension::font_set_underline_thickness
TextServerExtension::font_get_underline_thickness
TextServerExtension::font_set_scale
TextServerExtension::font_get_scale
TextServerExtension::font_get_texture_count
TextServerExtension::font_clear_textures
TextServerExtension::font_remove_texture
TextServerExtension::font_set_texture_image
TextServerExtension::font_get_texture_image
TextServerExtension::font_set_texture_offsets
TextServerExtension::font_get_texture_offsets
TextServerExtension::font_get_glyph_list
TextServerExtension::font_clear_glyphs
TextServerExtension::font_remove_glyph
TextServerExtension::font_get_glyph_advance
TextServerExtension::font_set_glyph_advance
TextServerExtension::font_get_glyph_offset
TextServerExtension::font_set_glyph_offset
TextServerExtension::font_get_glyph_size
TextServerExtension::font_set_glyph_size
TextServerExtension::font_get_glyph_uv_rect
TextServerExtension::font_set_glyph_uv_rect
TextServerExtension::font_get_glyph_texture_idx
TextServerExtension::font_set_glyph_texture_idx
TextServerExtension::font_get_glyph_texture_rid
TextServerExtension::font_get_glyph_texture_size
TextServerExtension::font_get_glyph_contours
TextServerExtension::font_get_kerning_list
TextServerExtension::font_clear_kerning_map
TextServerExtension::font_remove_kerning
TextServerExtension::font_set_kerning
TextServerExtension::font_get_kerning
TextServerExtension::font_get_glyph_index
TextServerExtension::font_has_char
TextServerExtension::font_get_supported_chars
TextServerExtension::font_render_range
TextServerExtension::font_render_glyph
TextServerExtension::font_draw_glyph
TextServerExtension::font_draw_glyph_outline
TextServerExtension::font_is_language_supported
TextServerExtension::font_set_language_support_override
TextServerExtension::font_get_language_support_override
TextServerExtension::font_remove_language_support_override
TextServerExtension::font_get_language_support_overrides
TextServerExtension::font_is_script_supported
TextServerExtension::font_set_script_support_override
TextServerExtension::font_get_script_support_override
TextServerExtension::font_remove_script_support_override
TextServerExtension::font_get_script_support_overrides
TextServerExtension::font_set_opentype_feature_overrides
TextServerExtension::font_get_opentype_feature_overrides
TextServerExtension::font_supported_feature_list
TextServerExtension::font_supported_variation_list
TextServerExtension::font_get_global_oversampling
TextServerExtension::font_set_global_oversampling
TextServerExtension::get_hex_code_box_size
TextServerExtension::draw_hex_code_box
TextServerExtension::create_shaped_text
TextServerExtension::shaped_text_clear
TextServerExtension::shaped_text_set_direction
TextServerExtension::shaped_text_get_direction
TextServerExtension::shaped_text_get_inferred_direction
TextServerExtension::shaped_text_set_bidi_override
TextServerExtension::shaped_text_set_custom_punctuation
TextServerExtension::shaped_text_get_custom_punctuation
TextServerExtension::shaped_text_set_orientation
TextServerExtension::shaped_text_get_orientation
TextServerExtension::shaped_text_set_preserve_invalid
TextServerExtension::shaped_text_get_preserve_invalid
TextServerExtension::shaped_text_set_preserve_control
TextServerExtension::shaped_text_get_preserve_control
TextServerExtension::shaped_text_set_spacing
TextServerExtension::shaped_text_get_spacing
TextServerExtension::shaped_text_add_string
TextServerExtension::shaped_text_add_object
TextServerExtension::shaped_text_resize_object
TextServerExtension::shaped_get_span_count
TextServerExtension::shaped_get_span_meta
TextServerExtension::shaped_set_span_update_font
TextServerExtension::shaped_text_substr
TextServerExtension::shaped_text_get_parent
TextServerExtension::shaped_text_fit_to_width
TextServerExtension::shaped_text_tab_align
TextServerExtension::shaped_text_shape
TextServerExtension::shaped_text_update_breaks
TextServerExtension::shaped_text_update_justification_ops
TextServerExtension::shaped_text_is_ready
TextServerExtension::shaped_text_get_glyphs
TextServerExtension::shaped_text_sort_logical
TextServerExtension::shaped_text_get_glyph_count
TextServerExtension::shaped_text_get_range
TextServerExtension::shaped_text_get_line_breaks_adv
TextServerExtension::shaped_text_get_line_breaks
TextServerExtension::shaped_text_get_word_breaks
TextServerExtension::shaped_text_get_trim_pos
TextServerExtension::shaped_text_get_ellipsis_pos
TextServerExtension::shaped_text_get_ellipsis_glyph_count
TextServerExtension::shaped_text_get_ellipsis_glyphs
TextServerExtension::shaped_text_overrun_trim_to_width
TextServerExtension::shaped_text_get_objects
TextServerExtension::shaped_text_get_object_rect
TextServerExtension::shaped_text_get_size
TextServerExtension::shaped_text_get_ascent
TextServerExtension::shaped_text_get_descent
TextServerExtension::shaped_text_get_width
TextServerExtension::shaped_text_get_underline_position
TextServerExtension::shaped_text_get_underline_thickness
TextServerExtension::shaped_text_get_dominant_direction_in_range
TextServerExtension::shaped_text_get_carets
TextServerExtension::shaped_text_get_selection
TextServerExtension::shaped_text_hit_test_grapheme
TextServerExtension::shaped_text_hit_test_position
TextServerExtension::shaped_text_draw
TextServerExtension::shaped_text_draw_outline
TextServerExtension::shaped_text_get_grapheme_bounds
TextServerExtension::shaped_text_next_grapheme_pos
TextServerExtension::shaped_text_prev_grapheme_pos
TextServerExtension::format_number
TextServerExtension::parse_number
TextServerExtension::percent_sign
TextServerExtension::strip_diacritics
TextServerExtension::string_get_word_breaks
TextServerExtension::string_to_upper
TextServerExtension::string_to_lower
TextServerExtension::parse_structured_text

Should we rename those methods ? and bonus question would it be interesting to add a unittest that checks naming rules in ClassDB to avoid further naming errors ?

Steps to reproduce

n/a

Minimal reproduction project

No response

@bruvzg
Copy link
Member

bruvzg commented Aug 24, 2022

This is intentional, to allow building the same code as both module and GDExtension.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment