Class: Godot::RubyLanguage
- Inherits:
-
ScriptLanguageExtension
- Object
- ScriptLanguageExtension
- Godot::RubyLanguage
- Defined in:
- lib/godot_rb/ruby_language.rb
Overview
Singleton pattern (singleton INSTANCE alone conflicts with RubyScript design)
TODO what does it take to make it a singleton instance?
Constant Summary collapse
- INSTANCE =
!
Dictionary _get_global_class_name ( String path ) virtual constLSP integration
String _auto_indent_code ( String code, int from_line, int to_line ) virtual const
Dictionary _complete_code ( String code, String path, Object owner ) virtual const
int _find_function ( String class_name, String function_name ) virtual const
Dictionary[] _get_built_in_templates ( StringName object ) virtual const
PackedStringArray _get_reserved_words ( ) virtual const
bool _is_control_flow_keyword ( String keyword ) virtual const
bool _overrides_external_editor ( ) virtual
Dictionary _lookup_code ( String code, String symbol, String path, Object owner ) virtual const
Dictionary _validate ( String script, String path, bool validate_functions, bool validate_errors, bool validate_warnings, bool validate_safe_lines ) virtual constDebugger integration
String _debug_get_error ( ) virtual const
Dictionary _debug_get_globals ( int max_subitems, int max_depth ) virtual
int _debug_get_stack_level_count ( ) virtual const
String _debug_get_stack_level_function ( int level ) virtual const
void* debug_get_stack_level_instance ( int level ) virtual
int _debug_get_stack_level_line ( int level ) virtual const
Dictionary _debug_get_stack_level_locals ( int level, int max_subitems, int max_depth ) virtual
Dictionary _debug_get_stack_level_members ( int level, int max_subitems, int max_depth ) virtual
String _debug_parse_stack_level_expression ( int level, String expression, int max_subitems, int max_depth ) virtualProfiling integration
int _profiling_get_accumulated_data ( ScriptLanguageExtensionProfilingInfo* info_array, int info_max ) virtual
int _profiling_get_frame_data ( ScriptLanguageExtensionProfilingInfo* info_array, int info_max ) virtual
void _profiling_start ( ) virtual
void _profiling_stop ( ) virtual!
void _reload_all_scripts ( ) virtual
void _reload_tool_script ( Script script, bool soft_reload ) virtual
void _thread_enter ( ) virtual
void _thread_exit ( ) virtual?
String _make_function ( String class_name, String function_name, PackedStringArray function_args ) virtual const
Script _make_template ( String template, String class_name, String base_class_name ) virtual const
Error _open_in_external_editor ( ScriptExtension script, int line, int column ) virtual RubyScript.new(self).new
Instance Method Summary collapse
-
#_add_global_constant(name, value) ⇒ Object
Same as add_named_global_constant, but does not set if the value is falsy.
- #_add_named_global_constant(name, value) ⇒ Object
- #_can_inherit_from_file ⇒ Object
- #_create_script ⇒ Object
-
#_debug_get_current_stack_info ⇒ Object
Debugging not supported yet.
- #_finish ⇒ Object
-
#_frame ⇒ Object
??.
-
#_get_comment_delimiters ⇒ Object
What
=begin-=end?. - #_get_extension ⇒ Object
-
#_get_name ⇒ Object
TODO: don’t generate a new Variant on every call.
-
#_get_public_annotations ⇒ Object
Godot API for Ruby?.
- #_get_public_constants ⇒ Object
- #_get_public_functions ⇒ Object
- #_get_recognized_extensions ⇒ Object
-
#_get_string_delimiters ⇒ Object
for syntax-highlighting.
- #_get_type ⇒ Object
- #_handles_global_class_type(type) ⇒ Object
-
#_has_named_classes ⇒ Object
Whether or not users may name classes in the Script dialog – no for both GDScript and C#.
-
#_is_using_templates ⇒ Object
TODO: templates.
- #_remove_named_global_constant(name) ⇒ Object
-
#_supports_builtin_mode ⇒ Object
What is “Builtin mode”?.
-
#_supports_documentation ⇒ Object
RDoc or Yardoc?.
-
#_validate_path(_path) ⇒ Object
All paths are fair game.
Instance Method Details
#_add_global_constant(name, value) ⇒ Object
Same as add_named_global_constant, but does not set if the value is falsy. This is because
Godot Engine preloads nils
in case the autoload fails to load.
Here in Ruby, we’ll just let NameError fail fast instead of leaving nil error risks.
FIXME: name might not be capitalized
41 42 43 |
# File 'lib/godot_rb/ruby_language.rb', line 41 def _add_global_constant(name, value) value and add_named_global_constant(name, value) end |
#_add_named_global_constant(name, value) ⇒ Object
44 |
# File 'lib/godot_rb/ruby_language.rb', line 44 def _add_named_global_constant(name, value) = RubyScript::Autoloads.const_set(name, value) |
#_can_inherit_from_file ⇒ Object
23 24 |
# File 'lib/godot_rb/ruby_language.rb', line 23 def _can_inherit_from_file = true # Whether or not users may name classes in the Script dialog – no for both GDScript and C# |
#_create_script ⇒ Object
51 |
# File 'lib/godot_rb/ruby_language.rb', line 51 def _create_script = RubyScript.new |
#_debug_get_current_stack_info ⇒ Object
Debugging not supported yet
60 |
# File 'lib/godot_rb/ruby_language.rb', line 60 def _debug_get_current_stack_info = Array.new |
#_finish ⇒ Object
55 56 57 |
# File 'lib/godot_rb/ruby_language.rb', line 55 def _finish #TODO clear all user scripts end |
#_get_comment_delimiters ⇒ Object
What =begin-=end?
20 21 |
# File 'lib/godot_rb/ruby_language.rb', line 20 def _get_comment_delimiters = PackedStringArray['#'] # What `=begin`-`=end`? # for syntax-highlighting |
#_get_extension ⇒ Object
18 |
# File 'lib/godot_rb/ruby_language.rb', line 18 def _get_extension = 'rb' |
#_get_name ⇒ Object
TODO: don’t generate a new Variant on every call
15 |
# File 'lib/godot_rb/ruby_language.rb', line 15 def _get_name = 'Ruby' |
#_get_public_annotations ⇒ Object
Godot API for Ruby?
63 |
# File 'lib/godot_rb/ruby_language.rb', line 63 def _get_public_annotations = Array.new |
#_get_public_constants ⇒ Object
64 |
# File 'lib/godot_rb/ruby_language.rb', line 64 def _get_public_constants = Dictionary.new |
#_get_public_functions ⇒ Object
65 |
# File 'lib/godot_rb/ruby_language.rb', line 65 def _get_public_functions = Array.new |
#_get_recognized_extensions ⇒ Object
19 |
# File 'lib/godot_rb/ruby_language.rb', line 19 def _get_recognized_extensions = PackedStringArray.from %w[rb rbw gemspec] |
#_get_string_delimiters ⇒ Object
for syntax-highlighting
22 |
# File 'lib/godot_rb/ruby_language.rb', line 22 def _get_string_delimiters = PackedStringArray.from %w[" ' / `].map { "#{_1} #{_1}" } |
#_get_type ⇒ Object
16 |
# File 'lib/godot_rb/ruby_language.rb', line 16 def _get_type = 'RubyScript'.to_godot |
#_handles_global_class_type(type) ⇒ Object
17 |
# File 'lib/godot_rb/ruby_language.rb', line 17 def _handles_global_class_type(type) = _get_type == type |
#_has_named_classes ⇒ Object
Whether or not users may name classes in the Script dialog – no for both GDScript and C#
25 26 |
# File 'lib/godot_rb/ruby_language.rb', line 25 def _has_named_classes = false #TODO: templates |
#_is_using_templates ⇒ Object
TODO: templates
27 28 |
# File 'lib/godot_rb/ruby_language.rb', line 27 def _is_using_templates = false # RDoc or Yardoc? |
#_remove_named_global_constant(name) ⇒ Object
45 46 47 48 49 |
# File 'lib/godot_rb/ruby_language.rb', line 45 def _remove_named_global_constant(name) RubyScript::Autoloads.remove_const(name) rescue NameError => e warn e end |
#_supports_builtin_mode ⇒ Object
What is “Builtin mode”?
31 32 33 |
# File 'lib/godot_rb/ruby_language.rb', line 31 def _supports_builtin_mode = false # All paths are fair game # @return error message (always empty here) |
#_supports_documentation ⇒ Object
RDoc or Yardoc?
29 30 |
# File 'lib/godot_rb/ruby_language.rb', line 29 def _supports_documentation = false # What is “Builtin mode”? |
#_validate_path(_path) ⇒ Object
All paths are fair game
34 |
# File 'lib/godot_rb/ruby_language.rb', line 34 def _validate_path(_path) = '' |