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 nil
s
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) = '' |