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

Syntax highlighting of @each directive inside .vue style block #267

@aaadotpm

Description

@aaadotpm

Prerequisites

Description

Using @each SCSS directive inside a .vue file breaks subsequent syntax highlighting. Digging through grammars/scss.cson it seems like 'end': '\\s*((?=}))' is incorrect.

Replacing the line with 'end': '\\s*(?={)' as in the similar @if-directive fixes the issue.

See the following branch in our fork for a fix that solves the issue https://github.com/internetfriendsforever/language-sass/tree/each-directive-fix

Commit is here internetfriendsforever@8e56bc8

Steps to Reproduce

  1. use @each directive in
<style lang="scss">
@each $key, $value in $map {
    .color-#{$key} {
      stroke: $value;
    }
 }
</style>

Expected behavior:

Normal syntax highlighting

Actual behavior:

Syntax highlighting after @each directive is broken. Affects both SCSS within the <style> block and the remaining code in the document.

Reproduces how often:

100% of the time for <style lang="scss"> blocks inside a .vue file
0% of the time in a pure .scss file.

Versions

Atom    : 1.40.1
Electron: 3.1.10
Chrome  : 66.0.3359.181
Node    : 10.2.0
apm  2.4.3
npm  6.2.0
node 10.2.1 x64
atom 1.40.1
python 2.7.10
git 2.20.1

Running Mac OS 10.14.6

Additional Information

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions