<?xml version="1.0" encoding="UTF-8" ?>
<class name="EditorCommandPalette" inherits="ConfirmationDialog" api_type="editor" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Godot editor's command palette.
	</brief_description>
	<description>
		Object that holds all the available Commands and their shortcuts text. These Commands can be accessed through [b]Editor &gt; Command Palette[/b] menu.
		Command key names use slash delimiters to distinguish sections, for example: [code]"example/command1"[/code] then [code]example[/code] will be the section name.
		[codeblocks]
		[gdscript]
		var command_palette = EditorInterface.get_command_palette()
		# external_command is a function that will be called with the command is executed.
		var command_callable = Callable(self, "external_command").bind(arguments)
		command_palette.add_command("command", "test/command",command_callable)
		[/gdscript]
		[csharp]
		EditorCommandPalette commandPalette = EditorInterface.Singleton.GetCommandPalette();
		// ExternalCommand is a function that will be called with the command is executed.
		Callable commandCallable = new Callable(this, MethodName.ExternalCommand);
		commandPalette.AddCommand("command", "test/command", commandCallable)
		[/csharp]
		[/codeblocks]
		[b]Note:[/b] This class shouldn't be instantiated directly. Instead, access the singleton using [method EditorInterface.get_command_palette].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="add_command">
			<return type="void" />
			<param index="0" name="command_name" type="String" />
			<param index="1" name="key_name" type="String" />
			<param index="2" name="binded_callable" type="Callable" />
			<param index="3" name="shortcut_text" type="String" default="&quot;None&quot;" />
			<description>
				Adds a custom command to EditorCommandPalette.
				- [param command_name]: [String] (Name of the [b]Command[/b]. This is displayed to the user.)
				- [param key_name]: [String] (Name of the key for a particular [b]Command[/b]. This is used to uniquely identify the [b]Command[/b].)
				- [param binded_callable]: [Callable] (Callable of the [b]Command[/b]. This will be executed when the [b]Command[/b] is selected.)
				- [param shortcut_text]: [String] (Shortcut text of the [b]Command[/b] if available.)
			</description>
		</method>
		<method name="remove_command">
			<return type="void" />
			<param index="0" name="key_name" type="String" />
			<description>
				Removes the custom command from EditorCommandPalette.
				- [param key_name]: [String] (Name of the key for a particular [b]Command[/b].)
			</description>
		</method>
	</methods>
</class>
