Repository: godotengine/godot
File: modules/mono/csharp_script.h (C/C++)

Code before:
	/* TODO */ void add_global_constant(const StringName &p_variable, const Variant &p_value) override {}

	/* SCRIPT GLOBAL CLASS FUNCTIONS */
	virtual bool handles_global_class_type(const String &p_type) const override;
	virtual String get_global_class_name(const String &p_path, String *r_base_type = nullptr, String *r_icon_path = nullptr) const override;

	/* DEBUGGER FUNCTIONS */
	String debug_get_error() const override;
	int debug_get_stack_level_count() const override;
	int debug_get_stack_level_line(int p_level) const override;
	String debug_get_stack_level_function(int p_level) const override;
	String debug_get_stack_level_source(int p_level) const override;
	/* TODO */ void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems, int p_max_depth) override {
		return "";
	}
	Vector<StackInfo> debug_get_current_stack_info() override;

	/* PROFILING FUNCTIONS */
	/* TODO */ void profiling_start() override {}
	/* TODO */ void profiling_stop() override {}
	/* TODO */ int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max) override {
		return 0;
	}
	/* TODO */ int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max) override {
		return 0;
	}

	void frame() override;

	/* TODO? */ void get_public_functions(List<MethodInfo> *p_functions) const override {}
	/* TODO? */ void get_public_constants(List<Pair<String, Variant>> *p_constants) const override {}
	/* TODO? */ void get_public_annotations(List<MethodInfo> *p_annotations) const override {}

	void reload_all_scripts() override;
	void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) override;

	/* LOADER FUNCTIONS */
	void get_recognized_extensions(List<String> *p_extensions) const override;

#ifdef TOOLS_ENABLED
	Error open_in_external_editor(const Ref<Script> &p_script, int p_line, int p_col) override;
	bool overrides_external_editor() override;
#endif

	RBMap<Object *, CSharpScriptBinding>::Element *insert_script_binding(Object *p_object, const CSharpScriptBinding &p_script_binding);
	bool setup_csharp_script_binding(CSharpScriptBinding &r_script_binding, Object *p_object);

	static void tie_native_managed_to_unmanaged(GCHandleIntPtr p_gchandle_intptr, Object *p_unmanaged, const StringName *p_native_name, bool p_ref_counted);

Review comment (suggestion):
```suggestion
	/* TODO */ void profiling_set_save_native_calls(bool p_opt) override {}
```

Code after:
	/* TODO */ void add_global_constant(const StringName &p_variable, const Variant &p_value) override {}

	/* SCRIPT GLOBAL CLASS FUNCTIONS */
	virtual bool handles_global_class_type(const String &p_type) const override;
	virtual String get_global_class_name(const String &p_path, String *r_base_type = nullptr, String *r_icon_path = nullptr) const override;

	/* DEBUGGER FUNCTIONS */
	String debug_get_error() const override;
	int debug_get_stack_level_count() const override;
	int debug_get_stack_level_line(int p_level) const override;
	String debug_get_stack_level_function(int p_level) const override;
	String debug_get_stack_level_source(int p_level) const override;
	/* TODO */ void debug_get_stack_level_locals(int p_level, List<String> *p_locals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ void debug_get_stack_level_members(int p_level, List<String> *p_members, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ void debug_get_globals(List<String> *p_locals, List<Variant> *p_values, int p_max_subitems, int p_max_depth) override {}
	/* TODO */ String debug_parse_stack_level_expression(int p_level, const String &p_expression, int p_max_subitems, int p_max_depth) override {
		return "";
	}
	Vector<StackInfo> debug_get_current_stack_info() override;

	/* PROFILING FUNCTIONS */
	/* TODO */ void profiling_start() override {}
	/* TODO */ void profiling_stop() override {}
	/* TODO */ void profiling_set_save_native_calls(bool p_enable) override {}
	/* TODO */ int profiling_get_accumulated_data(ProfilingInfo *p_info_arr, int p_info_max) override {
		return 0;
	}
	/* TODO */ int profiling_get_frame_data(ProfilingInfo *p_info_arr, int p_info_max) override {
		return 0;
	}

	void frame() override;

	/* TODO? */ void get_public_functions(List<MethodInfo> *p_functions) const override {}
	/* TODO? */ void get_public_constants(List<Pair<String, Variant>> *p_constants) const override {}
	/* TODO? */ void get_public_annotations(List<MethodInfo> *p_annotations) const override {}

	void reload_all_scripts() override;
	void reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) override;

	/* LOADER FUNCTIONS */
	void get_recognized_extensions(List<String> *p_extensions) const override;

#ifdef TOOLS_ENABLED
	Error open_in_external_editor(const Ref<Script> &p_script, int p_line, int p_col) override;
	bool overrides_external_editor() override;
#endif

	RBMap<Object *, CSharpScriptBinding>::Element *insert_script_binding(Object *p_object, const CSharpScriptBinding &p_script_binding);
	bool setup_csharp_script_binding(CSharpScriptBinding &r_script_binding, Object *p_object);