Skip to content

Commit f505975

Browse files
committed
Add directory exclusions for "expectedArguments" and "expectedReturnValues" generators
1 parent f83009e commit f505975

File tree

4 files changed

+30
-12
lines changed

4 files changed

+30
-12
lines changed

src/PhpStormMetadataGenerator.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,27 @@ public function __construct(
3838
private readonly NamingStrategyInterface $naming = new SimpleNamingStrategy(),
3939
) {
4040
$this->phpstormMetadataVisitors[] = new GenerateEnumArgumentsSet(
41-
$this->naming,
42-
$argumentSetPrefix,
43-
$ignoreDirectories,
41+
naming: $this->naming,
42+
argumentSetPrefix: $argumentSetPrefix,
43+
excludes: $ignoreDirectories,
44+
);
45+
$this->phpstormMetadataVisitors[] = new GenerateEnumExpectedArguments(
46+
naming: $this->naming,
47+
argumentSetPrefix: $argumentSetPrefix,
48+
excludes: $ignoreDirectories,
49+
);
50+
$this->phpstormMetadataVisitors[] = new GenerateEnumExpectedReturnValues(
51+
naming: $this->naming,
52+
argumentSetPrefix: $argumentSetPrefix,
53+
excludes: $ignoreDirectories,
4454
);
45-
$this->phpstormMetadataVisitors[] = new GenerateEnumExpectedArguments($this->naming, $argumentSetPrefix);
46-
$this->phpstormMetadataVisitors[] = new GenerateEnumExpectedReturnValues($this->naming, $argumentSetPrefix);
4755
$this->phpstormMetadataVisitors[] = new GenerateStructOverrides(
4856
naming: $this->naming,
4957
argumentSetPrefix: $argumentSetPrefix,
50-
ignoreDirectories: $ignoreDirectories,
58+
excludes: $ignoreDirectories,
5159
);
52-
$this->phpstormMetadataVisitors[] = new GenerateStructures($this->naming, $ignoreDirectories);
5360

61+
$this->phpstormMetadataVisitors[] = new GenerateStructures($this->naming, $ignoreDirectories);
5462
$this->entrypointMetadataVisitors[] = new GenerateExportFunctions($this->naming, $ignoreDirectories);
5563
}
5664

src/PhpStormMetadataGenerator/GenerateEnumExpectedArguments.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,21 @@
2222
*/
2323
final class GenerateEnumExpectedArguments extends Visitor
2424
{
25+
/**
26+
* @param list<non-empty-string> $excludes
27+
*/
2528
public function __construct(
2629
private readonly NamingStrategyInterface $naming,
2730
private readonly string $argumentSetPrefix,
31+
private readonly array $excludes = [],
2832
) {
2933
}
3034

3135
public function enter(NamespaceNode $ctx, TypeDefinitionNode|FunctionNode $node): iterable
3236
{
33-
if (!$node instanceof FunctionNode || $node->name === null) {
37+
if (!$node instanceof FunctionNode
38+
|| $node->name === null
39+
|| $node->location->matches($this->excludes)) {
3440
return;
3541
}
3642

src/PhpStormMetadataGenerator/GenerateEnumExpectedReturnValues.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@
2424
*/
2525
final class GenerateEnumExpectedReturnValues extends Visitor
2626
{
27+
/**
28+
* @param list<non-empty-string> $excludes
29+
*/
2730
public function __construct(
2831
private readonly NamingStrategyInterface $naming,
2932
private readonly string $argumentSetPrefix,
33+
private readonly array $excludes = [],
3034
) {
3135
}
3236

@@ -36,7 +40,7 @@ public function enter(NamespaceNode $ctx, TypeDefinitionNode|FunctionNode $node)
3640
|| $node->name === null
3741
|| !$node->returns instanceof TypeDefinitionNode
3842
|| !$node->returns->type instanceof EnumTypeNode
39-
) {
43+
|| $node->location->matches($this->excludes)) {
4044
return;
4145
}
4246

src/PhpStormMetadataGenerator/GenerateStructOverrides.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,13 +84,13 @@ final class GenerateStructOverrides extends Visitor
8484
private array $names = self::BUILTIN_TYPES;
8585

8686
/**
87-
* @param list<non-empty-string> $ignoreDirectories
87+
* @param list<non-empty-string> $excludes
8888
*/
8989
public function __construct(
9090
private readonly NamingStrategyInterface $naming,
9191
private readonly string $argumentSetPrefix,
9292
private readonly string $globalArgumentSetSuffix = 'types_list',
93-
private readonly array $ignoreDirectories = [],
93+
private readonly array $excludes = [],
9494
) {
9595
}
9696

@@ -100,7 +100,7 @@ public function __construct(
100100
private function getTypeAliases(TypeInterface $type): ?array
101101
{
102102
if ($type instanceof RecordTypeNode && $type->name !== null) {
103-
if ($type->location->matches($this->ignoreDirectories)) {
103+
if ($type->location->matches($this->excludes)) {
104104
return null;
105105
}
106106

0 commit comments

Comments
 (0)