textmate/php.tmbundle

PHP grammar is injected into itself

Ingramz opened this issue · 0 comments

An Atom user found an interesting bug: atom/language-php#326

Namely what is happening is that from the injection selector: ^text.html - (meta.embedded | meta.tag), L:^text.html meta.tag, L:text.html.php source.js the last two alternatives L:^text.html meta.tag and L:text.html.php source.js do not exclude the meta.embedded.block.php scope. This causes the PHP part of the grammar to be injected into itself in these two cases.

Here are all three cases to test with, from which the last two are currently misbehaving:

<?php /* <?php echo 'test'; ?> */ ?>

<script type="text/javascript">
  var str = "<?php /* <?php echo 'test'; ?> */ ?>";
</script>

<img style="<?php /* <?php echo 'test'; ?> */ ?>" />