<?xml version="1.0" encoding="UTF-8" ?>
<class name="ScriptEditor" inherits="PanelContainer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Godot editor's script editor.
	</brief_description>
	<description>
		[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_script_editor].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="get_current_editor" qualifiers="const">
			<return type="ScriptEditorBase" />
			<description>
				Returns the [ScriptEditorBase] object that the user is currently editing.
			</description>
		</method>
		<method name="get_current_script">
			<return type="Script" />
			<description>
				Returns a [Script] that is currently active in editor.
			</description>
		</method>
		<method name="get_open_script_editors" qualifiers="const">
			<return type="ScriptEditorBase[]" />
			<description>
				Returns an array with all [ScriptEditorBase] objects which are currently open in editor.
			</description>
		</method>
		<method name="get_open_scripts" qualifiers="const">
			<return type="Script[]" />
			<description>
				Returns an array with all [Script] objects which are currently open in editor.
			</description>
		</method>
		<method name="goto_line">
			<return type="void" />
			<param index="0" name="line_number" type="int" />
			<description>
				Goes to the specified line in the current script.
			</description>
		</method>
		<method name="open_script_create_dialog">
			<return type="void" />
			<param index="0" name="base_name" type="String" />
			<param index="1" name="base_path" type="String" />
			<description>
				Opens the script create dialog. The script will extend [param base_name]. The file extension can be omitted from [param base_path]. It will be added based on the selected scripting language.
			</description>
		</method>
		<method name="register_syntax_highlighter">
			<return type="void" />
			<param index="0" name="syntax_highlighter" type="EditorSyntaxHighlighter" />
			<description>
				Registers the [EditorSyntaxHighlighter] to the editor, the [EditorSyntaxHighlighter] will be available on all open scripts.
				[b]Note:[/b] Does not apply to scripts that are already opened.
			</description>
		</method>
		<method name="unregister_syntax_highlighter">
			<return type="void" />
			<param index="0" name="syntax_highlighter" type="EditorSyntaxHighlighter" />
			<description>
				Unregisters the [EditorSyntaxHighlighter] from the editor.
				[b]Note:[/b] The [EditorSyntaxHighlighter] will still be applied to scripts that are already opened.
			</description>
		</method>
	</methods>
	<signals>
		<signal name="editor_script_changed">
			<param index="0" name="script" type="Script" />
			<description>
				Emitted when user changed active script. Argument is a freshly activated [Script].
			</description>
		</signal>
		<signal name="script_close">
			<param index="0" name="script" type="Script" />
			<description>
				Emitted when editor is about to close the active script. Argument is a [Script] that is going to be closed.
			</description>
		</signal>
	</signals>
</class>