randomgeon/addons/loggie/tools/loggie_enums.gd
Dan Baker 02b3be35b0 Sets up initial project structure
Initializes the project with core files including:

- Editor configuration (.editorconfig, .gitattributes, .gitignore, .vscode/settings.json)
- Log.gd addon for enhanced debugging
- Loggie addon for advanced logging
- Project assets folder
2025-04-29 17:35:39 +01:00

79 lines
4.2 KiB
GDScript

@tool
class_name LoggieEnums extends Node
## Based on which log level is currently set to be used by the Loggie., attempting to log a message that's on
## a higher-than-configured log level will result in nothing happening.
enum LogLevel {
ERROR, ## Log level which includes only the logging of Error type messages.
WARN, ## Log level which includes the logging of Error and Warning type messages.
NOTICE, ## Log level which includes the logging of Error, Warning and Notice type messages.
INFO, ## Log level which includes the logging of Error, Warning, Notice and Info type messages.
DEBUG ## Log level which includes the logging of Error, Warning, Notice, Info and Debug type messages.
}
## The classification of message types that can be used to distinguish two identical strings in nature
## of their origin. This is different from [enum LogLevel].
enum MsgType {
STANDARD, ## A message that is considered a standard text that is not special in any way.
ERROR, ## A message that is considered to be an error message.
WARNING, ## A message that is considered to be a warning message.
DEBUG ## A message that is considered to be a message used for debugging.
}
enum MsgFormatMode {
PLAIN, ## Prints will be plain text.
ANSI, ## Prints will be styled using the ANSI standard. Compatible with Powershell, Win CMD, etc.
BBCODE, ## Prints will be styled using the Godot BBCode rules. Compatible with the Godot console.
MARKDOWN, ## Prints will be styled using the Markdown standard. Compatible with most Markdown readers.
}
## Classifies various steps that can happen during preprocessing.
enum PreprocessStep {
## A timestamp will be added to the message.
APPEND_TIMESTAMPS = 1 << 0,
## The name of the domain from which the message is coming will be added to the message.
APPEND_DOMAIN_NAME = 1 << 1,
## Whether Loggie should use the scripts from which it is being called to
## figure out a class name for the class that called a loggie function,
## and append it to the outputted message.
## This only works in debug builds because it uses [method @GDScript.get_stack].
## See that method's documentation to see why that can't be used in release builds.
APPEND_CLASS_NAME = 1 << 2,
}
enum BoxCharactersMode {
COMPATIBLE, ## Boxes are drawn using characters that compatible with any kind of terminal or text reader.
PRETTY ## Boxes are drawn using special unicode characters that create a prettier looking box which may not display properly in some terminals or text readers.
}
## Defines a list of possible approaches that can be taken to derive some kind of a class name proxy from a script that doesn't have a 'class_name' clause.
enum NamelessClassExtensionNameProxy {
NOTHING, ## If there is no class_name, nothing will be displayed.
SCRIPT_NAME, ## Use the name of the script whose class_name we tried to read. (e.g. "my_script.gd").
BASE_TYPE, ## Use the name of the base type which the script extends (e.g. 'Node2D', 'Control', etc.)
}
## Defines a list of possible behaviors for the 'show_loggie_specs' setting.
enum ShowLoggieSpecsMode {
DISABLED, ## Loggie specs won't be shown.
ESSENTIAL, ## Show only the essentials.
ADVANCED ## Show all loggie specs.
}
## Defines a list of possible outcomes that can happen when attempting to log a message.
enum LogAttemptResult {
SUCCESS, ## Message will be logged successfully.
LOG_LEVEL_INSUFFICIENT, ## Message won't be logged because it was output at a log level higher than what Loggie is currently set to.
DOMAIN_DISABLED, ## Message won't be logged because it was outputted from a disabled domain.
INVALID_CHANNEL, ## Message won't be logged because the channel which was supposed to send it doesn't exist.
}
## Defines a list of possible ways to configure Loggie to check for updates.
enum UpdateCheckType {
DONT_CHECK, ## If the user doesn't want Loggie to check for updates at all.
CHECK_AND_SHOW_MSG, ## If the user wants Loggie to check for updates, and display info in a terminal message.
CHECK_DOWNLOAD_AND_SHOW_MSG, ## If the user wants Loggie to check for updates, download the update, and display info in a terminal message.
CHECK_AND_SHOW_UPDATER_WINDOW, ## If the user wants Loggie to check for updats, and display the updater window.
}