diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-05 02:48:41 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-05 02:48:41 +0900 |
| commit | ee5d0e84c2060f10c20a4b3e519bf0f928fd170d (patch) | |
| tree | b7ab50ac5674cebc88bea60e5a2c33a59b4482d2 /crates/shirabe-external-packages/src | |
| parent | 11cdaae87c37e479fea6c39447041c312410b101 (diff) | |
| download | php-shirabe-ee5d0e84c2060f10c20a4b3e519bf0f928fd170d.tar.gz php-shirabe-ee5d0e84c2060f10c20a4b3e519bf0f928fd170d.tar.zst php-shirabe-ee5d0e84c2060f10c20a4b3e519bf0f928fd170d.zip | |
feat(plugin): discover and list plugin-provided commands
Port Application::getPluginCommands: resolve the local composer with
plugins force-enabled, fall back to Factory::createGlobal, and collect
commands from CommandProvider capability adapters. PhpCommandProxy now
mirrors name/description/aliases/hidden over RPC so `list` output
matches upstream; input definitions remain TODO(plugin).
PhpClass::php_class_name returns an owned String because PHP-backed
proxies only know their class at runtime (the override-skip warning
prints get_class). CommandProvider::getCommands hands out shared
Rc<RefCell> handles since the commands are stored in the application.
Factory::createGlobal now propagates createConfig errors instead of
swallowing them, and Application::getComposer only catches the
exception classes upstream catches, so a ParsingException reaches
doRun's GithubActionError path as in Composer.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src')
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/command/command.rs | 2 | ||||
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/command/complete_command.rs | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/crates/shirabe-external-packages/src/symfony/console/command/command.rs b/crates/shirabe-external-packages/src/symfony/console/command/command.rs index 88c1839b..ca61717d 100644 --- a/crates/shirabe-external-packages/src/symfony/console/command/command.rs +++ b/crates/shirabe-external-packages/src/symfony/console/command/command.rs @@ -559,7 +559,7 @@ pub trait Command: std::fmt::Debug + shirabe_php_shim::AsAny + shirabe_php_shim: } impl shirabe_php_shim::PhpClass for CommandData { - fn php_class_name(&self) -> &'static str { + fn php_class_name(&self) -> String { panic!( "php_class_name called on the base command state; concrete commands supply their class name" ); diff --git a/crates/shirabe-external-packages/src/symfony/console/command/complete_command.rs b/crates/shirabe-external-packages/src/symfony/console/command/complete_command.rs index 8a2ccc97..cc8747ec 100644 --- a/crates/shirabe-external-packages/src/symfony/console/command/complete_command.rs +++ b/crates/shirabe-external-packages/src/symfony/console/command/complete_command.rs @@ -150,7 +150,7 @@ impl CompleteCommand { fn get_class_of_command(command: &std::rc::Rc<std::cell::RefCell<dyn Command>>) -> String { // LazyCommand is intentionally not ported. - command.borrow().php_class_name().to_string() + command.borrow().php_class_name() } fn get_definition_options( |
