public function compile(Twig_Compiler $compiler)
{
- $function = $compiler->getEnvironment()->getFunction($this->getAttribute('name'));
+ $name = $this->getAttribute('name');
+
+ $function = $compiler->getEnvironment()->getFunction($name);
+
if (false === $function) {
- throw new Twig_Error_Syntax(sprintf('The function "%s" does not exist', $this->getAttribute('name')), $this->getLine());
+ $alternativeFunctions = array();
+
+ foreach ($compiler->getEnvironment()->getFunctions() as $functionName => $function) {
+ if (false !== strpos($functionName, $name)) {
+ $alternativeFunctions[] = $functionName;
+ }
+ }
+
+ $exceptionMessage = sprintf('The function "%s" does not exist', $name);
+
+ if (count($alternativeFunctions)) {
+ $exceptionMessage = sprintf('%s. Did you mean "%s"?', $exceptionMessage, implode('", "', $alternativeFunctions));
+ }
+
+ throw new Twig_Error_Syntax($exceptionMessage, $this->getLine());
}
$compiler