gulp-phug 1.3.4 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/index.js +23 -8
  2. package/package.json +4 -4
  3. package/support/composer.json +1 -1
  4. package/support/composer.lock +93 -178
  5. package/support/vendor/autoload.php +15 -0
  6. package/support/vendor/bin/phug +119 -0
  7. package/support/vendor/bin/var-dump-server +119 -0
  8. package/support/vendor/composer/ClassLoader.php +166 -32
  9. package/support/vendor/composer/InstalledVersions.php +387 -329
  10. package/support/vendor/composer/autoload_classmap.php +1 -5
  11. package/support/vendor/composer/autoload_files.php +2 -3
  12. package/support/vendor/composer/autoload_namespaces.php +1 -1
  13. package/support/vendor/composer/autoload_psr4.php +3 -4
  14. package/support/vendor/composer/autoload_real.php +12 -37
  15. package/support/vendor/composer/autoload_static.php +6 -17
  16. package/support/vendor/composer/installed.json +97 -184
  17. package/support/vendor/composer/installed.php +129 -151
  18. package/support/vendor/composer/platform_check.php +16 -4
  19. package/support/vendor/phug/phug/.github/workflows/coverage.yml +71 -0
  20. package/support/vendor/phug/phug/.github/workflows/multi-tester.yml +46 -0
  21. package/support/vendor/phug/phug/.github/workflows/split.yml +41 -0
  22. package/support/vendor/phug/phug/.github/workflows/style.yml +48 -0
  23. package/support/vendor/phug/phug/.github/workflows/tests.yml +49 -0
  24. package/support/vendor/phug/phug/.multi-tester.yml +42 -10
  25. package/support/vendor/phug/phug/composer.json +25 -16
  26. package/support/vendor/phug/phug/phpcs.xml +4 -0
  27. package/support/vendor/phug/phug/phpunit.xml +2 -0
  28. package/support/vendor/phug/phug/phug +1 -1
  29. package/support/vendor/phug/phug/release.php +8 -0
  30. package/support/vendor/phug/phug/src/Phug/Ast/Ast/Node.php +7 -1
  31. package/support/vendor/phug/phug/src/Phug/Ast/composer.json +1 -2
  32. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/Element/BlockElement.php +1 -1
  33. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AssignmentNodeCompiler.php +9 -1
  34. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/AttributeNodeCompiler.php +1 -0
  35. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ElementNodeCompiler.php +6 -0
  36. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompiler/ImportNodeCompiler.php +4 -4
  37. package/support/vendor/phug/phug/src/Phug/Compiler/Compiler/NodeCompilerInterface.php +1 -1
  38. package/support/vendor/phug/phug/src/Phug/Compiler/composer.json +5 -2
  39. package/support/vendor/phug/phug/src/Phug/DependencyInjection/DependencyInjection.php +1 -1
  40. package/support/vendor/phug/phug/src/Phug/DependencyInjection/composer.json +1 -2
  41. package/support/vendor/phug/phug/src/Phug/Event/Event/ListenerQueue.php +3 -0
  42. package/support/vendor/phug/phug/src/Phug/Event/EventManagerTrait.php +1 -1
  43. package/support/vendor/phug/phug/src/Phug/Event/composer.json +1 -2
  44. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AbstractFormat.php +15 -12
  45. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/AssignmentContainerInterface.php +2 -1
  46. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractAssignmentContainerElement.php +11 -1
  47. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AbstractMarkupElement.php +1 -1
  48. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AssignmentElement.php +9 -4
  49. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/AttributeElement.php +4 -1
  50. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/CodeElement.php +2 -2
  51. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MarkupElement.php +10 -8
  52. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinCallElement.php +2 -1
  53. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Element/MixinElement.php +2 -1
  54. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Format/XmlFormat.php +213 -20
  55. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/AssignmentHelpersTrait.php +7 -4
  56. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/HandleVariable.php +4 -4
  57. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter/Partial/MagicAccessorTrait.php +1 -7
  58. package/support/vendor/phug/phug/src/Phug/Formatter/Formatter.php +1 -1
  59. package/support/vendor/phug/phug/src/Phug/Formatter/composer.json +1 -2
  60. package/support/vendor/phug/phug/src/Phug/Invoker/Invoker.php +1 -1
  61. package/support/vendor/phug/phug/src/Phug/Invoker/composer.json +5 -2
  62. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Partial/IndentStyleTrait.php +5 -5
  63. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AssignmentScanner.php +8 -2
  64. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/AttributeScanner.php +23 -11
  65. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/ConditionalScanner.php +1 -1
  66. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/FilterScanner.php +6 -10
  67. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/IndentationScanner.php +1 -1
  68. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/KeywordScanner.php +1 -1
  69. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/MultilineScanner.php +6 -12
  70. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/Partial/TrailingOutdentHandlerTrait.php +26 -0
  71. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/Scanner/TextScanner.php +3 -3
  72. package/support/vendor/phug/phug/src/Phug/Lexer/Lexer/State.php +9 -9
  73. package/support/vendor/phug/phug/src/Phug/Lexer/composer.json +1 -2
  74. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Event/NodeEvent.php +3 -2
  75. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AssignmentNode.php +5 -1
  76. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/AttributeNode.php +4 -1
  77. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/ElementNode.php +5 -1
  78. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/FilterNode.php +2 -1
  79. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinCallNode.php +5 -1
  80. package/support/vendor/phug/phug/src/Phug/Parser/Parser/Node/MixinNode.php +5 -1
  81. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AbstractTokenHandler.php +87 -0
  82. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AssignmentTokenHandler.php +6 -21
  83. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeEndTokenHandler.php +5 -10
  84. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeStartTokenHandler.php +7 -23
  85. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AttributeTokenHandler.php +21 -19
  86. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/AutoCloseTokenHandler.php +5 -17
  87. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/BlockTokenHandler.php +4 -10
  88. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CaseTokenHandler.php +4 -10
  89. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ClassTokenHandler.php +7 -34
  90. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CodeTokenHandler.php +4 -10
  91. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/CommentTokenHandler.php +4 -10
  92. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ConditionalTokenHandler.php +4 -10
  93. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoTokenHandler.php +4 -10
  94. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/DoctypeTokenHandler.php +4 -10
  95. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/EachTokenHandler.php +4 -10
  96. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpansionTokenHandler.php +5 -11
  97. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ExpressionTokenHandler.php +4 -10
  98. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/FilterTokenHandler.php +4 -10
  99. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ForTokenHandler.php +4 -10
  100. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IdTokenHandler.php +7 -33
  101. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/ImportTokenHandler.php +14 -20
  102. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/IndentTokenHandler.php +4 -10
  103. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationEndTokenHandler.php +4 -10
  104. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/InterpolationStartTokenHandler.php +29 -30
  105. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/KeywordTokenHandler.php +4 -10
  106. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinCallTokenHandler.php +4 -10
  107. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/MixinTokenHandler.php +4 -10
  108. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/NewLineTokenHandler.php +4 -10
  109. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/OutdentTokenHandler.php +4 -10
  110. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/Partial/StaticAttributeTrait.php +36 -0
  111. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationEndTokenHandler.php +4 -10
  112. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagInterpolationStartTokenHandler.php +7 -10
  113. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TagTokenHandler.php +6 -21
  114. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/TextTokenHandler.php +4 -10
  115. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/VariableTokenHandler.php +4 -10
  116. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhenTokenHandler.php +4 -10
  117. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/WhileTokenHandler.php +4 -10
  118. package/support/vendor/phug/phug/src/Phug/Parser/Parser/TokenHandler/YieldTokenHandler.php +4 -10
  119. package/support/vendor/phug/phug/src/Phug/Parser/Parser.php +1 -1
  120. package/support/vendor/phug/phug/src/Phug/Parser/composer.json +1 -2
  121. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Cli.php +5 -5
  122. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/ExtensionsTrait.php +1 -1
  123. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Partial/FacadeOptionsTrait.php +1 -1
  124. package/support/vendor/phug/phug/src/Phug/Phug/Phug/Phug.php +14 -5
  125. package/support/vendor/phug/phug/src/Phug/Phug/composer.json +5 -2
  126. package/support/vendor/phug/phug/src/Phug/Reader/Reader.php +9 -9
  127. package/support/vendor/phug/phug/src/Phug/Reader/composer.json +4 -0
  128. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/FileAdapter.php +21 -4
  129. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php +5 -0
  130. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Adapter/StreamAdapter.php +1 -1
  131. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/CacheInterface.php +1 -1
  132. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/AdapterTrait.php +1 -1
  133. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/Debug/DebuggerTrait.php +56 -10
  134. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Partial/RendererOptionsTrait.php +1 -1
  135. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/Dump.php +1 -1
  136. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/LinkDump.php +2 -2
  137. package/support/vendor/phug/phug/src/Phug/Renderer/Renderer/Profiler/ProfilerModule.php +1 -1
  138. package/support/vendor/phug/phug/src/Phug/Renderer/composer.json +7 -3
  139. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php +67 -0
  140. package/support/vendor/phug/phug/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php +67 -0
  141. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesInterface.php +16 -0
  142. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesOrderInterface.php +17 -0
  143. package/support/vendor/phug/phug/src/Phug/Util/Util/AttributesStorage.php +44 -0
  144. package/support/vendor/phug/phug/src/Phug/Util/Util/Collection.php +2 -0
  145. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderableInterface.php +22 -0
  146. package/support/vendor/phug/phug/src/Phug/Util/Util/OrderedValue.php +25 -0
  147. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributeTrait.php +2 -1
  148. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/AttributesOrderTrait.php +19 -0
  149. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ModuleContainerTrait.php +3 -3
  150. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OptionTrait.php +1 -1
  151. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/OrderTrait.php +27 -0
  152. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/StaticMemberTrait.php +1 -1
  153. package/support/vendor/phug/phug/src/Phug/Util/Util/Partial/ValueTrait.php +5 -3
  154. package/support/vendor/phug/phug/src/Phug/Util/Util/SandBox.php +1 -0
  155. package/support/vendor/phug/phug/src/Phug/Util/Util/TestCase.php +47 -4
  156. package/support/vendor/phug/phug/src/Phug/Util/composer.json +5 -6
  157. package/support/vendor/symfony/deprecation-contracts/CHANGELOG.md +5 -0
  158. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/LICENSE +1 -1
  159. package/support/vendor/symfony/deprecation-contracts/README.md +26 -0
  160. package/support/vendor/symfony/{polyfill-php72 → deprecation-contracts}/composer.json +9 -9
  161. package/support/vendor/symfony/deprecation-contracts/function.php +27 -0
  162. package/support/vendor/symfony/polyfill-mbstring/LICENSE +1 -1
  163. package/support/vendor/symfony/polyfill-mbstring/Mbstring.php +256 -57
  164. package/support/vendor/symfony/polyfill-mbstring/README.md +1 -1
  165. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
  166. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1 -1
  167. package/support/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +102 -27
  168. package/support/vendor/symfony/polyfill-mbstring/bootstrap.php +33 -8
  169. package/support/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
  170. package/support/vendor/symfony/polyfill-mbstring/composer.json +5 -4
  171. package/support/vendor/symfony/var-dumper/CHANGELOG.md +63 -0
  172. package/support/vendor/symfony/var-dumper/Caster/AddressInfoCaster.php +82 -0
  173. package/support/vendor/symfony/var-dumper/Caster/AmqpCaster.php +12 -10
  174. package/support/vendor/symfony/var-dumper/Caster/ArgsStub.php +6 -7
  175. package/support/vendor/symfony/var-dumper/Caster/Caster.php +59 -31
  176. package/support/vendor/symfony/var-dumper/Caster/ClassStub.php +7 -9
  177. package/support/vendor/symfony/var-dumper/Caster/ConstStub.php +20 -4
  178. package/support/vendor/symfony/var-dumper/Caster/CurlCaster.php +31 -0
  179. package/support/vendor/symfony/var-dumper/Caster/CutArrayStub.php +1 -1
  180. package/support/vendor/symfony/var-dumper/Caster/CutStub.php +2 -2
  181. package/support/vendor/symfony/var-dumper/Caster/DOMCaster.php +61 -156
  182. package/support/vendor/symfony/var-dumper/Caster/DateCaster.php +27 -26
  183. package/support/vendor/symfony/var-dumper/Caster/DoctrineCaster.php +6 -4
  184. package/support/vendor/symfony/var-dumper/Caster/DsCaster.php +1 -1
  185. package/support/vendor/symfony/var-dumper/Caster/DsPairStub.php +1 -1
  186. package/support/vendor/symfony/var-dumper/Caster/EnumStub.php +4 -5
  187. package/support/vendor/symfony/var-dumper/Caster/ExceptionCaster.php +64 -49
  188. package/support/vendor/symfony/var-dumper/Caster/FFICaster.php +171 -0
  189. package/support/vendor/symfony/var-dumper/Caster/FiberCaster.php +43 -0
  190. package/support/vendor/symfony/var-dumper/Caster/FrameStub.php +6 -8
  191. package/support/vendor/symfony/var-dumper/Caster/GdCaster.php +30 -0
  192. package/support/vendor/symfony/var-dumper/Caster/GmpCaster.php +4 -2
  193. package/support/vendor/symfony/var-dumper/Caster/ImagineCaster.php +2 -0
  194. package/support/vendor/symfony/var-dumper/Caster/ImgStub.php +1 -1
  195. package/support/vendor/symfony/var-dumper/Caster/IntlCaster.php +10 -8
  196. package/support/vendor/symfony/var-dumper/Caster/LinkStub.php +14 -17
  197. package/support/vendor/symfony/var-dumper/Caster/MemcachedCaster.php +10 -8
  198. package/support/vendor/symfony/var-dumper/Caster/MysqliCaster.php +33 -0
  199. package/support/vendor/symfony/var-dumper/Caster/OpenSSLCaster.php +69 -0
  200. package/support/vendor/symfony/var-dumper/Caster/PdoCaster.php +8 -6
  201. package/support/vendor/symfony/var-dumper/Caster/PgSqlCaster.php +21 -19
  202. package/support/vendor/symfony/var-dumper/Caster/ProxyManagerCaster.php +4 -2
  203. package/support/vendor/symfony/var-dumper/Caster/RdKafkaCaster.php +188 -0
  204. package/support/vendor/symfony/var-dumper/Caster/RedisCaster.php +31 -31
  205. package/support/vendor/symfony/var-dumper/Caster/ReflectionCaster.php +100 -44
  206. package/support/vendor/symfony/var-dumper/Caster/ResourceCaster.php +33 -46
  207. package/support/vendor/symfony/var-dumper/Caster/ScalarStub.php +27 -0
  208. package/support/vendor/symfony/var-dumper/Caster/SocketCaster.php +64 -0
  209. package/support/vendor/symfony/var-dumper/Caster/SplCaster.php +57 -44
  210. package/support/vendor/symfony/var-dumper/Caster/SqliteCaster.php +32 -0
  211. package/support/vendor/symfony/var-dumper/Caster/StubCaster.php +15 -5
  212. package/support/vendor/symfony/var-dumper/Caster/SymfonyCaster.php +66 -10
  213. package/support/vendor/symfony/var-dumper/Caster/TraceStub.php +7 -11
  214. package/support/vendor/symfony/var-dumper/Caster/UninitializedStub.php +25 -0
  215. package/support/vendor/symfony/var-dumper/Caster/UuidCaster.php +2 -0
  216. package/support/vendor/symfony/var-dumper/Caster/VirtualStub.php +21 -0
  217. package/support/vendor/symfony/var-dumper/Caster/XmlReaderCaster.php +25 -10
  218. package/support/vendor/symfony/var-dumper/Caster/XmlResourceCaster.php +7 -5
  219. package/support/vendor/symfony/var-dumper/Cloner/AbstractCloner.php +103 -72
  220. package/support/vendor/symfony/var-dumper/Cloner/ClonerInterface.php +1 -5
  221. package/support/vendor/symfony/var-dumper/Cloner/Cursor.php +21 -21
  222. package/support/vendor/symfony/var-dumper/Cloner/Data.php +51 -77
  223. package/support/vendor/symfony/var-dumper/Cloner/DumperInterface.php +11 -14
  224. package/support/vendor/symfony/var-dumper/Cloner/Stub.php +40 -31
  225. package/support/vendor/symfony/var-dumper/Cloner/VarCloner.php +21 -104
  226. package/support/vendor/symfony/var-dumper/Command/Descriptor/CliDescriptor.php +9 -19
  227. package/support/vendor/symfony/var-dumper/Command/Descriptor/HtmlDescriptor.php +10 -11
  228. package/support/vendor/symfony/var-dumper/Command/ServerDumpCommand.php +27 -15
  229. package/support/vendor/symfony/var-dumper/Dumper/AbstractDumper.php +68 -48
  230. package/support/vendor/symfony/var-dumper/Dumper/CliDumper.php +126 -113
  231. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/CliContextProvider.php +1 -1
  232. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/ContextProviderInterface.php +0 -3
  233. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/RequestContextProvider.php +5 -6
  234. package/support/vendor/symfony/var-dumper/Dumper/ContextProvider/SourceContextProvider.php +10 -15
  235. package/support/vendor/symfony/var-dumper/Dumper/ContextualizedDumper.php +8 -11
  236. package/support/vendor/symfony/var-dumper/Dumper/DataDumperInterface.php +3 -0
  237. package/support/vendor/symfony/var-dumper/Dumper/HtmlDumper.php +122 -146
  238. package/support/vendor/symfony/var-dumper/Dumper/ServerDumper.php +10 -10
  239. package/support/vendor/symfony/var-dumper/Exception/ThrowingCasterException.php +1 -1
  240. package/support/vendor/symfony/var-dumper/LICENSE +1 -1
  241. package/support/vendor/symfony/var-dumper/README.md +6 -6
  242. package/support/vendor/symfony/var-dumper/Resources/bin/var-dump-server +4 -0
  243. package/support/vendor/symfony/var-dumper/Resources/functions/dump.php +35 -10
  244. package/support/vendor/symfony/var-dumper/Server/Connection.php +16 -14
  245. package/support/vendor/symfony/var-dumper/Server/DumpServer.php +16 -14
  246. package/support/vendor/symfony/var-dumper/Test/VarDumperTestTrait.php +9 -9
  247. package/support/vendor/symfony/var-dumper/VarDumper.php +69 -17
  248. package/support/vendor/symfony/var-dumper/composer.json +10 -16
  249. package/support/vendor/symfony/polyfill-php72/Php72.php +0 -217
  250. package/support/vendor/symfony/polyfill-php72/README.md +0 -28
  251. package/support/vendor/symfony/polyfill-php72/bootstrap.php +0 -57
  252. package/support/vendor/symfony/polyfill-php80/LICENSE +0 -19
  253. package/support/vendor/symfony/polyfill-php80/Php80.php +0 -105
  254. package/support/vendor/symfony/polyfill-php80/README.md +0 -24
  255. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +0 -22
  256. package/support/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +0 -11
  257. package/support/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +0 -5
  258. package/support/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +0 -5
  259. package/support/vendor/symfony/polyfill-php80/bootstrap.php +0 -42
  260. package/support/vendor/symfony/polyfill-php80/composer.json +0 -40
@@ -7,9 +7,12 @@
7
7
  "homepage": "http://phug-lang.com",
8
8
  "authors": [
9
9
  {
10
- "name": "KyleKatarn",
11
- "email": "jade-php@selfbuild.fr",
10
+ "name": "kylekatarnls",
12
11
  "homepage": "http://github.com/kylekatarnls"
12
+ },
13
+ {
14
+ "name": "Torben Koehn",
15
+ "email": "torben@talesoft.codes"
13
16
  }
14
17
  ],
15
18
  "support": {
@@ -21,20 +24,21 @@
21
24
  "minimum-stability": "dev",
22
25
  "require": {
23
26
  "php": ">=5.5.0",
24
- "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0"
27
+ "symfony/var-dumper": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
25
28
  },
26
29
  "require-dev": {
27
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.0",
28
- "phpunit/php-code-coverage": "^2.2 || ^4.0 || ^5.2 || ^6.0 || ^7.0",
29
- "squizlabs/php_codesniffer": "~3.4.2",
30
- "js-phpize/js-phpize-phug": "^1.2 || ^2.2",
31
- "pug-php/pug-filter-coffee-script": "^1.2",
32
- "nodejs-php-fallback/coffeescript": "^1.0",
33
- "nodejs-php-fallback/less": "^1.0",
34
- "nodejs-php-fallback/uglify": "^1.0",
35
- "nodejs-php-fallback/stylus": "^1.0",
36
30
  "cebe/markdown": "^1.1",
37
- "kylekatarnls/multi-tester": "^1.4"
31
+ "js-phpize/js-phpize-phug": "^1.2 || ^2.2.1",
32
+ "nodejs-php-fallback/coffeescript": "^1.0.1",
33
+ "nodejs-php-fallback/less": "^1.0.5",
34
+ "nodejs-php-fallback/stylus": "^1.0.4",
35
+ "nodejs-php-fallback/uglify": "^1.0.4",
36
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^8.5.34 || ^9.6.13",
37
+ "phpunit/php-code-coverage": "^2.2.4 || ^4.0.8 || ^5.3.2 || ^6.1.4 || ^7.0.15 || ^9.2.28",
38
+ "phpunit/php-invoker": "^1.1.4 || ^3.1.1",
39
+ "pug-php/pug": "^2.7.3 || ^3.4.1",
40
+ "pug-php/pug-filter-coffee-script": "^1.3.1",
41
+ "squizlabs/php_codesniffer": "^3.7.2"
38
42
  },
39
43
  "replace": {
40
44
  "phug/ast": "self.version",
@@ -65,9 +69,9 @@
65
69
  "./src/Phug/Lexer/",
66
70
  "./src/Phug/Parser/",
67
71
  "./src/Phug/Reader/",
68
- "./src/Phug/Renderer/",
69
- "./src/Phug/Util/"
70
- ]
72
+ "./src/Phug/Renderer/"
73
+ ],
74
+ "Phug\\Util\\": "./src/Phug/Util/Util/"
71
75
  }
72
76
  },
73
77
  "autoload-dev": {
@@ -81,5 +85,10 @@
81
85
  "dev-master": "1.x-dev",
82
86
  "dev-facade": "0.4.x-dev"
83
87
  }
88
+ },
89
+ "config": {
90
+ "allow-plugins": {
91
+ "nodejs-php-fallback/nodejs-php-fallback": true
92
+ }
84
93
  }
85
94
  }
@@ -2,6 +2,10 @@
2
2
  <ruleset name="PSR-2">
3
3
  <rule ref="PSR2">
4
4
  <exclude-pattern>*.js</exclude-pattern>
5
+ <exclude-pattern>*/src/Phug/Renderer/Renderer/Adapter/Stream/Template.php</exclude-pattern>
6
+ <exclude-pattern>*/src/Phug/Util/Util/TestCase.php</exclude-pattern>
7
+ <exclude-pattern>*/src/Phug/Util/CompatibilityUtil/TestCaseTyped.php</exclude-pattern>
8
+ <exclude-pattern>*/src/Phug/Util/CompatibilityUtil/TestCaseUntyped.php</exclude-pattern>
5
9
  </rule>
6
10
  <file>src</file>
7
11
  </ruleset>
@@ -7,6 +7,8 @@
7
7
  convertErrorsToExceptions="true"
8
8
  convertNoticesToExceptions="true"
9
9
  convertWarningsToExceptions="true"
10
+ enforceTimeLimit="true"
11
+ defaultTimeLimit="1"
10
12
  verbose="true">
11
13
  <testsuites>
12
14
  <testsuite name="Phug">
@@ -19,7 +19,7 @@ if (!file_exists($autoload)) {
19
19
 
20
20
  include $autoload;
21
21
 
22
- $cli = new Cli('Phug', [
22
+ $cli = new Cli('Phug\Phug', [
23
23
  'render',
24
24
  'renderFile',
25
25
  'renderDirectory',
@@ -1,5 +1,13 @@
1
1
  <?php
2
2
 
3
+ /**
4
+ * Example:
5
+ * ```
6
+ * php release.php minor stable message.md
7
+ * ```.
8
+ *
9
+ * Put release notes in message.md as Markdown format.
10
+ */
3
11
  $settings = parse_ini_file('.env');
4
12
 
5
13
  function env($var)
@@ -4,6 +4,7 @@ namespace Phug\Ast;
4
4
 
5
5
  use InvalidArgumentException;
6
6
  use Phug\AstException;
7
+ use ReturnTypeWillChange;
7
8
 
8
9
  /**
9
10
  * Represents a node in a tree-like data structure.
@@ -369,7 +370,6 @@ class Node implements NodeInterface
369
370
  $level = $level ?: 0;
370
371
 
371
372
  foreach ($this->children as $child) {
372
-
373
373
  /** @var NodeInterface $child */
374
374
  if ($child->is($callback)) {
375
375
  yield $child;
@@ -418,6 +418,7 @@ class Node implements NodeInterface
418
418
  /**
419
419
  * {@inheritdoc}
420
420
  */
421
+ #[ReturnTypeWillChange]
421
422
  public function getIterator()
422
423
  {
423
424
  foreach ($this->children as $child) {
@@ -428,6 +429,7 @@ class Node implements NodeInterface
428
429
  /**
429
430
  * {@inheritdoc}
430
431
  */
432
+ #[ReturnTypeWillChange]
431
433
  public function count()
432
434
  {
433
435
  return $this->getChildCount();
@@ -436,6 +438,7 @@ class Node implements NodeInterface
436
438
  /**
437
439
  * {@inheritdoc}
438
440
  */
441
+ #[ReturnTypeWillChange]
439
442
  public function offsetExists($offset)
440
443
  {
441
444
  return $this->hasChildAt($offset);
@@ -444,6 +447,7 @@ class Node implements NodeInterface
444
447
  /**
445
448
  * {@inheritdoc}
446
449
  */
450
+ #[ReturnTypeWillChange]
447
451
  public function offsetGet($offset)
448
452
  {
449
453
  return $this->getChildAt($offset);
@@ -452,6 +456,7 @@ class Node implements NodeInterface
452
456
  /**
453
457
  * {@inheritdoc}
454
458
  */
459
+ #[ReturnTypeWillChange]
455
460
  public function offsetSet($offset, $value)
456
461
  {
457
462
  if (!($value instanceof NodeInterface)) {
@@ -475,6 +480,7 @@ class Node implements NodeInterface
475
480
  /**
476
481
  * {@inheritdoc}
477
482
  */
483
+ #[ReturnTypeWillChange]
478
484
  public function offsetUnset($offset)
479
485
  {
480
486
  $this->removeChildAt($offset);
@@ -11,8 +11,7 @@
11
11
  "email": "torben@talesoft.codes"
12
12
  },
13
13
  {
14
- "name": "KyleKatarn",
15
- "email": "jade-php@selfbuild.fr",
14
+ "name": "kylekatarnls",
16
15
  "homepage": "http://github.com/kylekatarnls"
17
16
  }
18
17
  ],
@@ -51,7 +51,7 @@ class BlockElement extends AbstractElement
51
51
  */
52
52
  public function addCompiler(CompilerInterface $compiler)
53
53
  {
54
- if (!in_array($compiler, $this->compilers)) {
54
+ if (!in_array($compiler, $this->compilers, true)) {
55
55
  $blocks = &$compiler->getBlocksByName($this->name);
56
56
  $blocks[] = $this;
57
57
  $this->compilers[] = $compiler;
@@ -8,6 +8,7 @@ use Phug\Formatter\ElementInterface;
8
8
  use Phug\Parser\Node\AssignmentNode;
9
9
  use Phug\Parser\Node\AttributeNode;
10
10
  use Phug\Parser\NodeInterface;
11
+ use Phug\Util\OrderableInterface;
11
12
  use SplObjectStorage;
12
13
 
13
14
  class AssignmentNodeCompiler extends AbstractNodeCompiler
@@ -25,9 +26,16 @@ class AssignmentNodeCompiler extends AbstractNodeCompiler
25
26
  */
26
27
  $name = $node->getName();
27
28
  $attributes = new SplObjectStorage();
29
+
28
30
  foreach ($node->getAttributes() as $attribute) {
29
31
  /* @var AttributeNode $attribute */
30
- $attributes->attach($this->getCompiler()->compileNode($attribute, $parent));
32
+ $attributeElement = $this->getCompiler()->compileNode($attribute, $parent);
33
+
34
+ if ($attribute instanceof OrderableInterface && $attributeElement instanceof OrderableInterface) {
35
+ $attributeElement->setOrder($attribute->getOrder());
36
+ }
37
+
38
+ $attributes->attach($attributeElement);
31
39
  }
32
40
 
33
41
  return new AssignmentElement($name, $attributes, null, $node);
@@ -71,6 +71,7 @@ class AttributeNodeCompiler extends AbstractNodeCompiler
71
71
  $name = $this->compileName($node);
72
72
  $value = $this->compileValue($node);
73
73
  $attribute = new AttributeElement($name, $value, $node);
74
+ $attribute->setOrder($node->getOrder());
74
75
  $attribute->setIsVariadic($node->isVariadic());
75
76
 
76
77
  return $attribute;
@@ -9,6 +9,7 @@ use Phug\Formatter\ElementInterface;
9
9
  use Phug\Parser\Node\ElementNode;
10
10
  use Phug\Parser\Node\ExpressionNode;
11
11
  use Phug\Parser\NodeInterface;
12
+ use Phug\Util\OrderableInterface;
12
13
  use SplObjectStorage;
13
14
 
14
15
  class ElementNodeCompiler extends AbstractNodeCompiler
@@ -35,6 +36,11 @@ class ElementNodeCompiler extends AbstractNodeCompiler
35
36
  $markup = new MarkupElement($name, $node->isAutoClosed(), $attributes, $node);
36
37
  foreach ($node->getAssignments() as $assignment) {
37
38
  $compiledAssignment = $compiler->compileNode($assignment, $parent);
39
+
40
+ if ($compiledAssignment instanceof OrderableInterface && $assignment instanceof OrderableInterface) {
41
+ $compiledAssignment->setOrder($assignment->getOrder());
42
+ }
43
+
38
44
  if ($compiledAssignment instanceof AssignmentElement) {
39
45
  $markup->addAssignment($compiledAssignment);
40
46
  }
@@ -23,11 +23,11 @@ class ImportNodeCompiler extends AbstractNodeCompiler
23
23
  protected function isPugImport($path)
24
24
  {
25
25
  $compiler = $this->getCompiler();
26
- $extension = pathinfo($path, PATHINFO_EXTENSION) ?: '';
26
+ $extension = pathinfo((string) $path, PATHINFO_EXTENSION);
27
27
  $extensions = $compiler->getOption('extensions');
28
28
 
29
29
  if ($extension === '') {
30
- return in_array('', $extensions);
30
+ return in_array('', $extensions, true);
31
31
  }
32
32
 
33
33
  if (!$compiler->getOption('allow_composite_extensions')) {
@@ -72,7 +72,7 @@ class ImportNodeCompiler extends AbstractNodeCompiler
72
72
 
73
73
  $paths = $isAbsolutePath
74
74
  ? null
75
- : [dirname($compiler->getPath()) ?: '.'];
75
+ : [dirname((string) $compiler->getPath()) ?: '.'];
76
76
 
77
77
  $path = $compiler->resolve($node->getPath(), $paths);
78
78
  $compiler->registerImportPath($path);
@@ -135,7 +135,7 @@ class ImportNodeCompiler extends AbstractNodeCompiler
135
135
  'input',
136
136
  'meta',
137
137
  'hr',
138
- ])) {
138
+ ], true)) {
139
139
  $yield = $yield->getParent();
140
140
  }
141
141
  if ($compiler->getImportNode()) {
@@ -11,7 +11,7 @@ use Phug\Parser\NodeInterface as ParserNodeInterface;
11
11
  interface NodeCompilerInterface
12
12
  {
13
13
  /**
14
- * @param $nodeList
14
+ * @param $nodeList
15
15
  * @param ElementInterface $parent
16
16
  *
17
17
  * @return array
@@ -7,9 +7,12 @@
7
7
  "homepage": "http://phug-lang.com",
8
8
  "authors": [
9
9
  {
10
- "name": "KyleKatarn",
11
- "email": "jade-php@selfbuild.fr",
10
+ "name": "kylekatarnls",
12
11
  "homepage": "http://github.com/kylekatarnls"
12
+ },
13
+ {
14
+ "name": "Torben Koehn",
15
+ "email": "torben@talesoft.codes"
13
16
  }
14
17
  ],
15
18
  "support": {
@@ -305,7 +305,7 @@ class DependencyInjection implements DependencyInjectionInterface
305
305
  return call_user_func_array($this->cache[$cacheKey], func_get_args());
306
306
  };
307
307
  $arguments = array_map(function ($dependencyName) use ($exclude, $callee) {
308
- return in_array($dependencyName, $exclude)
308
+ return in_array($dependencyName, $exclude, true)
309
309
  ? $callee
310
310
  : $this->get($dependencyName, $exclude);
311
311
  }, $dependency->getDependencies());
@@ -11,8 +11,7 @@
11
11
  "email": "torben@talesoft.codes"
12
12
  },
13
13
  {
14
- "name": "KyleKatarn",
15
- "email": "jade-php@selfbuild.fr",
14
+ "name": "kylekatarnls",
16
15
  "homepage": "http://github.com/kylekatarnls"
17
16
  }
18
17
  ],
@@ -2,10 +2,12 @@
2
2
 
3
3
  namespace Phug\Event;
4
4
 
5
+ use ReturnTypeWillChange;
5
6
  use SplPriorityQueue;
6
7
 
7
8
  class ListenerQueue extends SplPriorityQueue
8
9
  {
10
+ #[ReturnTypeWillChange]
9
11
  public function compare($priority, $priorityToCompare)
10
12
  {
11
13
  if ($priority === $priorityToCompare) {
@@ -15,6 +17,7 @@ class ListenerQueue extends SplPriorityQueue
15
17
  return $priority > $priorityToCompare ? -1 : 1;
16
18
  }
17
19
 
20
+ #[ReturnTypeWillChange]
18
21
  public function insert($value, $priority)
19
22
  {
20
23
  if (!is_callable($value)) {
@@ -50,7 +50,7 @@ trait EventManagerTrait
50
50
  $listeners->setExtractFlags(ListenerQueue::EXTR_BOTH);
51
51
 
52
52
  foreach ($listeners as $listener) {
53
- if (!in_array($listener['data'], $queue)) {
53
+ if (!in_array($listener['data'], $queue, true)) {
54
54
  $this->attach($eventName, $listener['data'], $listener['priority']);
55
55
  }
56
56
  }
@@ -11,8 +11,7 @@
11
11
  "email": "torben@talesoft.codes"
12
12
  },
13
13
  {
14
- "name": "KyleKatarn",
15
- "email": "jade-php@selfbuild.fr",
14
+ "name": "kylekatarnls",
16
15
  "homepage": "http://github.com/kylekatarnls"
17
16
  }
18
17
  ],
@@ -51,7 +51,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
51
51
  is_object($_pug_temp = %s) && method_exists($_pug_temp, "__toBoolean")
52
52
  ? $_pug_temp->__toBoolean()
53
53
  : $_pug_temp';
54
- const HTML_EXPRESSION_ESCAPE = 'htmlspecialchars(%s)';
54
+ const HTML_EXPRESSION_ESCAPE = 'htmlspecialchars((string) (%s))';
55
55
  const HTML_TEXT_ESCAPE = 'htmlspecialchars';
56
56
  const PAIR_TAG = '%s%s%s';
57
57
  const TRANSFORM_EXPRESSION = '%s';
@@ -233,7 +233,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
233
233
  /**
234
234
  * @param string|ElementInterface $element
235
235
  * @param bool $noDebug
236
- * @param $element
236
+ * @param $element
237
237
  *
238
238
  * @return string
239
239
  */
@@ -248,7 +248,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
248
248
  if (is_a($element, $className)) {
249
249
  $elementCode = $handler($element);
250
250
  $debugCode = $debug ? $this->getDebugInfo($element) : '';
251
- $glue = mb_strlen($debugCode) && in_array(mb_substr($elementCode, 0, 1), ["\n", "\r"])
251
+ $glue = mb_strlen($debugCode) && in_array(mb_substr($elementCode, 0, 1), ["\n", "\r"], true)
252
252
  ? "\n"
253
253
  : '';
254
254
 
@@ -460,13 +460,16 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
460
460
  return 'null';
461
461
  }
462
462
 
463
- if ($value instanceof ExpressionElement &&
464
- in_array(($code = strtolower($value->getValue())), ['true', 'false', 'null', 'undefined'])
465
- ) {
466
- return $code;
463
+ if ($value instanceof ExpressionElement) {
464
+ $code = strtolower($value->getValue());
465
+
466
+ if (in_array($code, ['true', 'false', 'null', 'undefined'], true)) {
467
+ return $code;
468
+ }
467
469
  }
468
470
 
469
471
  $code = $this->formatAssignmentValue($value);
472
+
470
473
  if ($value instanceof ExpressionElement && $value->isEscaped()) {
471
474
  return $this->exportHelper('array_escape', [$formattedName, $code]);
472
475
  }
@@ -767,7 +770,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
767
770
  ' }',
768
771
  ' }',
769
772
  ' foreach ($__pug_mixin_vars as $__pug_key => &$__pug_value) {',
770
- ' if (!in_array($__pug_key, $__pug_names)) {',
773
+ ' if (!in_array($__pug_key, $__pug_names, true)) {',
771
774
  ' $$__pug_key = &$__pug_value;',
772
775
  ' }',
773
776
  ' }',
@@ -866,13 +869,13 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
866
869
  '$__pug_mixin_vars = [];',
867
870
  'foreach (array_keys(get_defined_vars()) as $__local_pug_key) {',
868
871
  ' if (mb_substr($__local_pug_key, 0, 6) === \'__pug_\' || '.
869
- 'in_array($__local_pug_key, [\'attributes\', \'block\', \''.$variablesVariable.'\'])) {',
872
+ 'in_array($__local_pug_key, [\'attributes\', \'block\', \''.$variablesVariable.'\'], true)) {',
870
873
  ' continue;',
871
874
  ' }',
872
875
  ' $'.$variablesVariable.'[$__local_pug_key] = &$$__local_pug_key;',
873
876
  ' $__local_pug_ref = &$GLOBALS[$__local_pug_key];',
874
877
  ' $__local_pug_value = &$$__local_pug_key;',
875
- ' if($__local_pug_ref !== $__local_pug_value){',
878
+ ' if ($__local_pug_ref !== $__local_pug_value) {',
876
879
  ' $__pug_mixin_vars[$__local_pug_key] = &$__local_pug_value;',
877
880
 
878
881
  ' continue;',
@@ -917,7 +920,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
917
920
  ' }'."\n".
918
921
  (
919
922
  $variablesVariable
920
- ? ' if(isset($'.$variablesVariable.'[$__local_pug_key])){'."\n".
923
+ ? ' if (isset($'.$variablesVariable.'[$__local_pug_key])) {'."\n".
921
924
  ' $$__local_pug_key = &$'.$variablesVariable.'[$__local_pug_key];'."\n".
922
925
  ' continue;'."\n".
923
926
  ' }'."\n"
@@ -925,7 +928,7 @@ abstract class AbstractFormat implements FormatInterface, OptionInterface
925
928
  ).
926
929
  ' $__local_pug_ref = &$GLOBALS[$__local_pug_key];'."\n".
927
930
  ' $__local_pug_value = &$__pug_children_vars[$__local_pug_key];'."\n".
928
- ' if($__local_pug_ref !== $__local_pug_value){'."\n".
931
+ ' if ($__local_pug_ref !== $__local_pug_value) {'."\n".
929
932
  ' $$__local_pug_key = &$__local_pug_value;'."\n".
930
933
  ' continue;'."\n".
931
934
  ' }'."\n".
@@ -3,8 +3,9 @@
3
3
  namespace Phug\Formatter;
4
4
 
5
5
  use Phug\Formatter\Element\AssignmentElement;
6
+ use Phug\Util\AttributesOrderInterface;
6
7
 
7
- interface AssignmentContainerInterface extends ElementInterface
8
+ interface AssignmentContainerInterface extends ElementInterface, AttributesOrderInterface
8
9
  {
9
10
  public function getName();
10
11
 
@@ -4,10 +4,16 @@ namespace Phug\Formatter\Element;
4
4
 
5
5
  use Phug\Formatter\AbstractElement;
6
6
  use Phug\Formatter\AssignmentContainerInterface;
7
+ use Phug\Util\Partial\AttributesOrderTrait;
7
8
  use SplObjectStorage;
8
9
 
9
10
  abstract class AbstractAssignmentContainerElement extends AbstractElement implements AssignmentContainerInterface
10
11
  {
12
+ use AttributesOrderTrait;
13
+
14
+ /**
15
+ * @var SplObjectStorage<AssignmentElement>
16
+ */
11
17
  private $assignments;
12
18
 
13
19
  /**
@@ -19,6 +25,10 @@ abstract class AbstractAssignmentContainerElement extends AbstractElement implem
19
25
  */
20
26
  public function addAssignment(AssignmentElement $element)
21
27
  {
28
+ if ($element->getOrder() === null) {
29
+ $element->setOrder($this->getNextAttributeIndex());
30
+ }
31
+
22
32
  $element->setContainer($this);
23
33
  $this->getAssignments()->attach($element);
24
34
 
@@ -42,7 +52,7 @@ abstract class AbstractAssignmentContainerElement extends AbstractElement implem
42
52
  /**
43
53
  * Return markup assignments list.
44
54
  *
45
- * @return SplObjectStorage[AssignmentElement]
55
+ * @return SplObjectStorage<AssignmentElement>
46
56
  */
47
57
  public function getAssignments()
48
58
  {
@@ -19,7 +19,7 @@ abstract class AbstractMarkupElement extends AbstractAssignmentContainerElement
19
19
  public function belongsTo(array $tagList)
20
20
  {
21
21
  if (is_string($this->getName())) {
22
- return in_array(strtolower($this->getName()), $tagList);
22
+ return in_array(strtolower($this->getName()), $tagList, true);
23
23
  }
24
24
 
25
25
  return false;
@@ -6,27 +6,32 @@ use Phug\Ast\NodeInterface;
6
6
  use Phug\Formatter\AbstractElement;
7
7
  use Phug\Formatter\AssignmentContainerInterface;
8
8
  use Phug\Parser\NodeInterface as ParserNode;
9
+ use Phug\Util\AttributesInterface;
10
+ use Phug\Util\OrderableInterface;
9
11
  use Phug\Util\Partial\AttributeTrait;
10
12
  use Phug\Util\Partial\NameTrait;
13
+ use Phug\Util\Partial\OrderTrait;
14
+ use SplObjectStorage;
11
15
 
12
- class AssignmentElement extends AbstractElement
16
+ class AssignmentElement extends AbstractElement implements AttributesInterface, OrderableInterface
13
17
  {
14
18
  use AttributeTrait;
15
19
  use NameTrait;
20
+ use OrderTrait;
16
21
 
17
22
  /**
18
23
  * AssignmentElement constructor.
19
24
  *
20
25
  * @param string $name
21
- * @param \SplObjectStorage|null $attributes
22
- * @param AssignmentContainerInterface|null $markup
26
+ * @param SplObjectStorage|null $attributes
27
+ * @param AssignmentContainerInterface|null $container
23
28
  * @param ParserNode|null $originNode
24
29
  * @param NodeInterface|null $parent
25
30
  * @param array|null $children
26
31
  */
27
32
  public function __construct(
28
33
  $name,
29
- \SplObjectStorage $attributes = null,
34
+ SplObjectStorage $attributes = null,
30
35
  AssignmentContainerInterface $container = null,
31
36
  ParserNode $originNode = null,
32
37
  NodeInterface $parent = null,
@@ -4,12 +4,15 @@ namespace Phug\Formatter\Element;
4
4
 
5
5
  use Phug\Ast\NodeInterface;
6
6
  use Phug\Parser\NodeInterface as ParserNode;
7
+ use Phug\Util\OrderableInterface;
7
8
  use Phug\Util\Partial\NameTrait;
9
+ use Phug\Util\Partial\OrderTrait;
8
10
  use Phug\Util\Partial\VariadicTrait;
9
11
 
10
- class AttributeElement extends AbstractValueElement
12
+ class AttributeElement extends AbstractValueElement implements OrderableInterface
11
13
  {
12
14
  use NameTrait;
15
+ use OrderTrait;
13
16
  use VariadicTrait;
14
17
 
15
18
  /**
@@ -82,7 +82,7 @@ class CodeElement extends AbstractValueElement implements TransformableInterface
82
82
  T_TRAIT,
83
83
  T_TRY,
84
84
  T_WHILE,
85
- ]);
85
+ ], true);
86
86
  }
87
87
 
88
88
  public function hasBlockContent()
@@ -106,7 +106,7 @@ class CodeElement extends AbstractValueElement implements TransformableInterface
106
106
  $this->isCodeBlockOpening() &&
107
107
  !$this->hasBlockContent()
108
108
  )
109
- ) && !in_array(end($tokens), [';', '{']);
109
+ ) && !in_array(end($tokens), [';', '{'], true);
110
110
  }
111
111
 
112
112
  /**
@@ -4,10 +4,12 @@ namespace Phug\Formatter\Element;
4
4
 
5
5
  use Phug\Ast\NodeInterface;
6
6
  use Phug\Parser\NodeInterface as ParserNode;
7
+ use Phug\Util\AttributesInterface;
7
8
  use Phug\Util\Partial\AttributeTrait;
8
9
  use Phug\Util\Partial\NameTrait;
10
+ use SplObjectStorage;
9
11
 
10
- class MarkupElement extends AbstractMarkupElement
12
+ class MarkupElement extends AbstractMarkupElement implements AttributesInterface
11
13
  {
12
14
  use AttributeTrait;
13
15
  use NameTrait;
@@ -20,17 +22,17 @@ class MarkupElement extends AbstractMarkupElement
20
22
  /**
21
23
  * MarkupElement constructor.
22
24
  *
23
- * @param string $name
24
- * @param bool $autoClosed
25
- * @param \SplObjectStorage|null $attributes
26
- * @param ParserNode|null $originNode
27
- * @param NodeInterface|null $parent
28
- * @param array|null $children
25
+ * @param string $name
26
+ * @param bool $autoClosed
27
+ * @param SplObjectStorage|null $attributes
28
+ * @param ParserNode|null $originNode
29
+ * @param NodeInterface|null $parent
30
+ * @param array|null $children
29
31
  */
30
32
  public function __construct(
31
33
  $name,
32
34
  $autoClosed = false,
33
- \SplObjectStorage $attributes = null,
35
+ SplObjectStorage $attributes = null,
34
36
  ParserNode $originNode = null,
35
37
  NodeInterface $parent = null,
36
38
  array $children = null
@@ -2,10 +2,11 @@
2
2
 
3
3
  namespace Phug\Formatter\Element;
4
4
 
5
+ use Phug\Util\AttributesInterface;
5
6
  use Phug\Util\Partial\AttributeTrait;
6
7
  use Phug\Util\Partial\NameTrait;
7
8
 
8
- class MixinCallElement extends AbstractAssignmentContainerElement
9
+ class MixinCallElement extends AbstractAssignmentContainerElement implements AttributesInterface
9
10
  {
10
11
  use AttributeTrait;
11
12
  use NameTrait;