Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

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

Open
1 of 3 tasks
keevan opened this issue Feb 5, 2022 · 0 comments
Open
1 of 3 tasks

Comments

@keevan
Copy link

keevan commented Feb 5, 2022

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:

  • When using SQL inside a PHP string, it isn't styling joined strings (e.g. concat via .) and
  • When starting the string with a lowercase select, this does not trigger SQL highlighting. I could override the styles and transform them to lowercase, but this might actually be a project's styling convention, to not have the code be screaming at you.

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant