Shell Presets
How do you want to display your prompt?
Last updated
How do you want to display your prompt?
Last updated
While ShellManager.GetLine()
prompts for input, it decides which shell preset, PromptPresetBase
, is used according to the list of presets, ShellPresets
, that should make a new prompt preset class that you made for your shell.
CurrentPreset
specifies the current PromptPresetBase
class, which is usually found in the ShellPresets
list. It usually calls the PromptPresetManager.CurrentPresets[ShellType]
variable.
The first preset should implement a preset called Default
in the ShellPresets
dictionary.
PromptPresetManager.SetPreset()
queries both the shell pre-defined presets, ShellPresets
, and the custom presets, CustomShellPresets
. After that, it sets the preset to the specified preset in the internal CurrentPresets
.
Every preset must implement a base class, PromptPresetBase
and IPromptPreset
, as in below:
The only essential values that you must override in your shell preset class are:
PresetName
: Read-only property. The shell preset name. If this preset is your first preset, it must be Default
.
PresetPrompt
: Read-only property. Usually calls the overridable internal function PresetPromptBuilder()
. If it's simple, overriding it with a string is enough.
Optionally, these variables can be overridden:
PresetPromptCompletion
: Read-only property. Usually calls the overridable internal function PresetPromptCompletionBuilder()
. If it's simple, overriding it with a string is enough.
PresetPromptShowcase
: Read-only property. Usually calls the overridable internal function PresetPromptBuilderShowcase()
. If it's simple, overriding it with a string is enough.
PresetPromptCompletionShowcase
: Read-only property. Usually calls the overridable internal function PresetPromptCompletionBuilderShowcase()
. If it's simple, overriding it with a string is enough.
Since the Showcase
versions of the properties are meant to simulate how the preset would look in the real-world, you shouldn't try to access any external asset, especially those that the non-showcase properties use.
The easiest way to avoid using these assets is to make up things, such as database.sqlite
for the SQL shell.