You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
something definitely happened to syntax highlighting. @classProp used to be yellow throughout.
why such a dramatic change in approach, if i may ask? thanks!
This package provides syntax definitions. It is not responsible for how choosen scopes are highlighted.
According to CoffeScript syntax specification, @ is a synonym for this and thus its scope was changed from punctuation.definition.variable to variable.language.this.
Variables followed by dot are scoped variable.other.object.
see:
Due to former implementation, this intended distinction was not correctly applied to variables preceeded by @. They unintentionally were scoped variable.other.member, assuming they don't have further members, which has been fixed by v2.4.8
the theme im using (and themes in general) are built up on definitions the parser gives them, can’t expect theme authors to adjust each time parser changes how it parses, can you.
i think in coffescript case parsing @ as variable.language.this and therefore making it and following property/method have special “this” colors defies the purpose of @ being a short form of this. note that it doesn’t require the . — idea being that at symbol stands out enough as in @method() or @prop, so it doesn’t need special highlighting by itself, it needs to be distinct from local variables, that’s all.
and it definitely doesn’t make sense to have three different colors (and italic font style only for at symbol) for @prop.method() case, too many, kinda hard on the eyes.
Activity
deathaxe commentedon Jan 5, 2026
This package provides syntax definitions. It is not responsible for how choosen scopes are highlighted.
According to CoffeScript syntax specification,
@is a synonym forthisand thus its scope was changed frompunctuation.definition.variabletovariable.language.this.Variables followed by dot are scoped
variable.other.object.see:
CoffeeScript/CoffeeScript.sublime-syntax
Lines 861 to 865 in 95a1c63
CoffeeScript/CoffeeScript.sublime-syntax
Lines 899 to 902 in 95a1c63
Leaf members are scoped
variable.other.member.see:
CoffeeScript/CoffeeScript.sublime-syntax
Lines 936 to 937 in 95a1c63
Due to former implementation, this intended distinction was not correctly applied to variables preceeded by
@. They unintentionally were scopedvariable.other.member, assuming they don't have further members, which has been fixed by v2.4.8falsefalse commentedon Jan 5, 2026
thank you for the most detailed explanation!
the theme im using (and themes in general) are built up on definitions the parser gives them, can’t expect theme authors to adjust each time parser changes how it parses, can you.
i think in coffescript case parsing
@asvariable.language.thisand therefore making it and following property/method have special “this” colors defies the purpose of@being a short form ofthis. note that it doesn’t require the.— idea being that at symbol stands out enough as in@method()or@prop, so it doesn’t need special highlighting by itself, it needs to be distinct from local variables, that’s all.and it definitely doesn’t make sense to have three different colors (and italic font style only for at symbol) for
@prop.method()case, too many, kinda hard on the eyes.what do you think?
deathaxe commentedon Jan 6, 2026
Colors are always a highly personal issue. Hence ST distinguishes syntax definitions from color schemes.
There are certainly too many possible details for color scheme authors to handle them all in all languages.
Hence
UI: Customize Color Schemecommand provides an interface for personal adjustments.