atom / language-sql

SQL package for Atom
Other
38 stars 50 forks source link

When used within a PHP string, interpolated PHP variables remain unstyled #87

Closed keevan closed 2 years ago

keevan commented 2 years ago

Prerequisites

Description

Out of the box, VSCode seems to not encounter this particular issue with SQL highlighting within a PHP string. The highlighting seems to interpret the PHP variable as a string, when it probably should fallback to the language of the file / outer scope and check what sort of class it should have - in this particular case, it should be interpreted as a PHP variable.

Also, I might create another issue for the following, but not sure how easy it is to check for this problem:

Steps to Reproduce

  1. Create new file
  2. Paste in the following:
    <?php
    $editors = '"'.implode('","', ['vim', 'atom', 'vscode']).'"';
    $results = database::select_one_column(
      "SELECT user.id
         FROM user
        WHERE user.healthy = true
          AND user.editor IN ($editors)"
    );

Expected behavior:

$editors should be highlighted/styled like a PHP variable

Screenshot from VSCode

image

Actual behavior:

$editors is styled like any other plain PHP string.

Screenshot from Atom

image

Reproduces how often:

100% of the time

Versions

Atom : 1.58.0 Electron: 9.4.4 Chrome : 83.0.4103.122 Node : 12.14.1

apm 2.6.2 npm 6.14.13 node 12.14.1 x64 atom 1.58.0 python git 2.25.1

Ubuntu 20

Additional Information

It applies the styles of syntax--source syntax--sql syntax--embedded syntax--php and takes the form of a text element.

image

It is also worth noting that disabling this package, will correctly display PHP string interpolation.

keevan commented 2 years ago

Closing this issue, seems more of a language-php issue than a language-sql one after reading some package / grammar documentation, so creating an issue there instead.