Skip to content

Commit 8b5fa41

Browse files
authored
Update test badge
split: 39dd7c399e46a9a22490c061a2c91d3ef1579af6
1 parent b4440ff commit 8b5fa41

File tree

9 files changed

+35
-9
lines changed

9 files changed

+35
-9
lines changed

Parser.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,8 +330,8 @@ public function parse($input, $path = null)
330330

331331
foreach ($expandingNodes as $expandingNode) {
332332
$current = $expandingNode;
333-
while ($outerNode = $expandingNode->getOuterNode()) {
334333

334+
while ($outerNode = $expandingNode->getOuterNode()) {
335335
/** @var NodeInterface $expandedNode */
336336
$expandedNode = $outerNode;
337337
$current->setOuterNode(null);

Parser/Event/NodeEvent.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Phug\Event;
66
use Phug\Parser\NodeInterface;
7+
use Phug\ParserEvent;
78

89
class NodeEvent extends Event
910
{
@@ -12,8 +13,8 @@ class NodeEvent extends Event
1213
/**
1314
* NodeEvent constructor.
1415
*
15-
* @param $name
16-
* @param NodeInterface $node
16+
* @param ParserEvent::* $name
17+
* @param NodeInterface $node
1718
*/
1819
public function __construct($name, NodeInterface $node)
1920
{

Parser/Node/AssignmentNode.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44

55
use Phug\Parser\Node;
66
use Phug\Util\AttributesInterface;
7+
use Phug\Util\OrderableInterface;
78
use Phug\Util\Partial\AttributeTrait;
89
use Phug\Util\Partial\NameTrait;
10+
use Phug\Util\Partial\OrderTrait;
911

10-
class AssignmentNode extends Node implements AttributesInterface
12+
class AssignmentNode extends Node implements AttributesInterface, OrderableInterface
1113
{
1214
use NameTrait;
1315
use AttributeTrait;
16+
use OrderTrait;
1417
}

Parser/Node/AttributeNode.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33
namespace Phug\Parser\Node;
44

55
use Phug\Parser\Node;
6+
use Phug\Util\OrderableInterface;
67
use Phug\Util\Partial\CheckTrait;
78
use Phug\Util\Partial\EscapeTrait;
89
use Phug\Util\Partial\NameTrait;
10+
use Phug\Util\Partial\OrderTrait;
911
use Phug\Util\Partial\ValueTrait;
1012
use Phug\Util\Partial\VariadicTrait;
1113

12-
class AttributeNode extends Node
14+
class AttributeNode extends Node implements OrderableInterface
1315
{
1416
use NameTrait;
1517
use ValueTrait;
1618
use EscapeTrait;
1719
use CheckTrait;
1820
use VariadicTrait;
21+
use OrderTrait;
1922
}

Parser/Node/ElementNode.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44

55
use Phug\Parser\Node;
66
use Phug\Util\AttributesInterface;
7+
use Phug\Util\AttributesOrderInterface;
78
use Phug\Util\Partial\AssignmentTrait;
9+
use Phug\Util\Partial\AttributesOrderTrait;
810
use Phug\Util\Partial\AttributeTrait;
911
use Phug\Util\Partial\NameTrait;
1012

11-
class ElementNode extends Node implements AttributesInterface
13+
class ElementNode extends Node implements AttributesInterface, AttributesOrderInterface
1214
{
1315
use NameTrait;
1416
use AttributeTrait;
1517
use AssignmentTrait;
18+
use AttributesOrderTrait;
1619

1720
/**
1821
* @var bool

Parser/Node/MixinCallNode.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,18 @@
44

55
use Phug\Parser\Node;
66
use Phug\Util\AttributesInterface;
7+
use Phug\Util\AttributesOrderInterface;
78
use Phug\Util\Partial\AssignmentTrait;
9+
use Phug\Util\Partial\AttributesOrderTrait;
810
use Phug\Util\Partial\AttributeTrait;
911
use Phug\Util\Partial\NameTrait;
1012

11-
class MixinCallNode extends Node implements AttributesInterface
13+
class MixinCallNode extends Node implements AttributesInterface, AttributesOrderInterface
1214
{
1315
use NameTrait;
1416
use AttributeTrait;
1517
use AssignmentTrait;
18+
use AttributesOrderTrait;
1619

1720
/**
1821
* @var bool

Parser/Node/MixinNode.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44

55
use Phug\Parser\Node;
66
use Phug\Util\AttributesInterface;
7+
use Phug\Util\AttributesOrderInterface;
78
use Phug\Util\Partial\AssignmentTrait;
9+
use Phug\Util\Partial\AttributesOrderTrait;
810
use Phug\Util\Partial\AttributeTrait;
911
use Phug\Util\Partial\NameTrait;
1012

11-
class MixinNode extends Node implements AttributesInterface
13+
class MixinNode extends Node implements AttributesInterface, AttributesOrderInterface
1214
{
1315
use NameTrait;
1416
use AttributeTrait;
1517
use AssignmentTrait;
18+
use AttributesOrderTrait;
1619
}

Parser/TokenHandler/AssignmentTokenHandler.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public function handleToken(TokenInterface $token, State $state)
3939

4040
/** @var ElementNode|MixinCallNode $current */
4141
$current = $state->getCurrentNode();
42+
$node->setOrder($current->getNextAttributeIndex());
4243
$current->getAssignments()->attach($node);
4344

4445
if ($state->expectNext([AttributeStartToken::class])) {

Parser/TokenHandler/AttributeTokenHandler.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
use Phug\Parser\Node\MixinCallNode;
1111
use Phug\Parser\State;
1212
use Phug\Parser\TokenHandlerInterface;
13+
use Phug\Util\AttributesOrderInterface;
14+
use Phug\Util\OrderableInterface;
1315

1416
class AttributeTokenHandler implements TokenHandlerInterface
1517
{
@@ -46,8 +48,15 @@ public function handleToken(TokenInterface $token, State $state)
4648
}
4749
}
4850

49-
/** @var ElementNode|MixinCallNode $current */
51+
/** @var ElementNode|MixinCallNode|AssignmentNode $current */
5052
$current = $state->getCurrentNode();
53+
54+
if ($current instanceof AttributesOrderInterface) {
55+
$node->setOrder($current->getNextAttributeIndex());
56+
} elseif ($current instanceof OrderableInterface) {
57+
$node->setOrder($current->getOrder());
58+
}
59+
5160
$current->getAttributes()->attach($node);
5261
}
5362
}

0 commit comments

Comments
 (0)