From f816f7fba8498aaded98219ccb445ca542867827 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 25 Aug 2023 19:44:59 -0700 Subject: [PATCH] phpstorm - Generate hints about Civi::dispatcher() --- .../phpstorm/Civi/PhpStorm/EventGenerator.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 tools/extensions/phpstorm/Civi/PhpStorm/EventGenerator.php diff --git a/tools/extensions/phpstorm/Civi/PhpStorm/EventGenerator.php b/tools/extensions/phpstorm/Civi/PhpStorm/EventGenerator.php new file mode 100644 index 0000000000..561e95ec96 --- /dev/null +++ b/tools/extensions/phpstorm/Civi/PhpStorm/EventGenerator.php @@ -0,0 +1,37 @@ + 'generate', + ]; + } + + public function generate() { + $inspector = new CiviEventInspector(); + + $builder = new PhpStormMetadata('events', __CLASS__); + $builder->registerArgumentsSet('events', ...array_keys($inspector->getAll())); + + foreach ([CiviEventDispatcher::class, CiviEventDispatcherInterface::class] as $class) { + foreach (['dispatch', 'addListener', 'removeListener', 'getListeners', 'hasListeners'] as $method) { + $builder->addExpectedArguments(sprintf("\\%s::%s()", $class, $method), 0, 'events'); + } + } + + $builder->write(); + } + +} -- 2.25.1