- Range – a new
Latte\Compiler\Rangeclass (extendingPositionwith alength) gives every token and parser node a precise source span instead of just a starting position, unlocking richer tooling and editor integrations - StatementNode::$tagRanges – statement nodes now expose exact byte ranges for their opening and closing tags, making it straightforward to map compiled output back to the original template
|limitaccepts strings – the|limitfilter now works on strings too, so you can trim text the same way you slice arrays{dedent}– fixed inline content handling andatLineStarttracking; the logic moved into a dedicatedDedentclass with considerably more test coverage (#412, #413, #414)PhpHelpers::checkCode()–proc_opennow uses array syntax for the PHP binary path, so installations where the interpreter lives in a directory with spaces no longer break (#415)- TemplateGenerator – stopped emitting the
/** source */comment for multi-line template names, which could produce broken PHP {switch}– a{case}with a single value now compiles to===instead ofin_array(), producing faster and cleaner generated PHP