Skip to content

Add in-console editor command#19

Merged
amasiye merged 23 commits into
mainfrom
develop
Feb 22, 2026
Merged

Add in-console editor command#19
amasiye merged 23 commits into
mainfrom
develop

Conversation

@amasiye

@amasiye amasiye commented Feb 22, 2026

Copy link
Copy Markdown
Contributor

This pull request introduces several significant enhancements and new features to the Sendama CLI, focusing on editor and debugging capabilities, as well as improvements to project scaffolding and dependency management. Key highlights include the addition of a new in-console editor command, extensive editor-related classes, a robust debugging/logging system, and updates to project generation logic.

Editor and Scene Management Enhancements:

  • Added a new edit command (EditGame) that allows users to edit game configuration directly from the CLI, leveraging the new Editor infrastructure.
  • Introduced several foundational classes for the editor, including EditorSettings, EditorSceneSettings, ExecutionContext, and FocusTargetContext, enabling structured management of editor state, scene settings, and execution context. [1] [2] [3] [4]
  • Added enumerations and event classes to support editor event handling and keyboard input, such as ChronoUnit, EventType, EditorEvent, and KeyboardEvent. [1] [2] [3] [4]

Debugging and Logging System:

  • Implemented a new Debug class with support for configurable log levels, log directories, and methods for logging debug, info, warning, and error messages. This is complemented by a LogLevel enum and a custom DebugException for error handling. [1] [2] [3]

Project Generation and Dependency Management:

  • Improved the NewGame command to ensure the config directory is created and to include a template-based config/input.php file in new projects. [1] [2] [3]
  • Updated the default development dependencies in generated projects, bumping pestphp/pest to ^4.3.
  • Enhanced the GenerateScene command to support new options for scene type and class/meta file generation. [1] [2]

Dependency and Autoloading Updates:

  • Updated composer.json to require PHP ^8.4, added the atatusoft-ltd/termutil dependency, and configured autoloading for the Atatusoft\Termutil namespace. [1] [2]

Documentation:

  • Added a logo to the README.md for improved project branding.

Editor and Scene Management

  • Added the edit command (EditGame) and supporting editor infrastructure, including settings, context, and event handling classes. [1] [2] [3] [4] [5] [6] [7] [8] [9]

Debugging and Logging

  • Introduced a new Debug class, LogLevel enum, and DebugException for structured logging and error handling. [1] [2] [3]

Project Generation

  • Ensured new projects have a config directory and a generated config/input.php file; updated dev dependencies for new projects. [1] [2] [3] [4]
  • Enhanced the GenerateScene command with new options for scene type and file format. [1] [2]

Dependencies and Autoloading

  • Updated PHP version requirement, added atatusoft-ltd/termutil as a dependency, and configured autoloading for new namespaces. [1] [2]

Documentation

  • Added a project logo to the README.md.

@amasiye amasiye merged commit 0f9e89f into main Feb 22, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant