Skip to content

Commit

Permalink
Merge branch 'st4107'
Browse files Browse the repository at this point in the history
  • Loading branch information
deathaxe committed Mar 16, 2024
2 parents 47748c6 + 0388b42 commit 6ee5ee4
Show file tree
Hide file tree
Showing 3 changed files with 133 additions and 7 deletions.
57 changes: 50 additions & 7 deletions Syntaxes/Less.sublime-syntax
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,16 @@ variables:
ident_start: (?:{{nmstart}}|@+{)

property_or_selector_begin: (?={{ident_begin}}|{{selector_start}})
property_end: (?=[;)}]|{{at_rules}})

selector_begin: (?={{selector_start}}|@+{) # for backward compatibility only
selector_start: '[[:alpha:].:#%&*\[{{combinator_char}}]'
selector_end: (?=[;{}])

tag_name_begin: (?=[[:alpha:]]|@+{)

lang_range_begin: (?={{ident_start}}|\*)
unquoted_url_begin: (?={{ident_start}}|/)

# Less variables

at_rules: |-
Expand Down Expand Up @@ -122,14 +126,20 @@ contexts:
- meta_append: true
- include: less-line-comments

##[ CSS AT RULES ]############################################################
##[ CSS AT RULES ]#############################################################

at-other:
- meta_prepend: true
- include: less-plugins
- include: less-declarations
- include: less-variable-calls

###[ CSS CONTAINER QUERIES ]###################################################

container-style-queries:
- meta_append: true
- include: less-interpolations

###[ CSS MEDIA QUERIES ]#######################################################

media-query-conditions:
Expand All @@ -151,7 +161,7 @@ contexts:
- selector-body

maybe-property:
- include: comments
- meta_include_prototype: false
- include: property-end
- include: property-identifiers
# otherwise it is part of a selector
Expand All @@ -172,11 +182,9 @@ contexts:

property-end:
# property mixins or values are followed/terminated by one of ; ) }
- match: (?=[;)}]|{{at_rules}})
- match: '{{property_end}}'
pop: 1

###[ CSS SELECTORS ]############################################################

selector-body:
- meta_prepend: true
- include: less-selector-guard
Expand Down Expand Up @@ -234,6 +242,7 @@ contexts:
###[ CSS PROPERTY LISTS ]######################################################

property-list-body:
- meta_include_prototype: false
- meta_scope: meta.property-list.css meta.block.css
- include: block-end
- include: stylesheet
Expand Down Expand Up @@ -317,15 +326,40 @@ contexts:

###[ CSS STRING CONSTANTS ]####################################################

line-names-content:
font-family-names:
# replace CSS context to add interpolation support
- match: '{{ident_begin}}'
push: font-family-name-body

font-family-name-body:
- meta_include_prototype: false
- meta_scope: meta.string.css string.unquoted.css
- include: less-string-interpolations
# allow unquoted space separated font names
- match: (?!\s+{{ident_start}}){{break}}
pop: 1
# function call ahead, skip font name
- match: (?=\s+{{ident}}\()
pop: 1
- match: '{{unicode}}'

language-ranges:
# replace CSS context to add interpolation support
- match: '{{lang_range_begin}}'
push: language-range-content

line-name-content:
- meta_prepend: true
- include: less-string-interpolations

string-content:
- meta_prepend: true
- include: less-string-interpolations

###[ CSS URL STRINGS ]#########################################################

quoted-url:
# does not yet exist in CSS but is not unlikely
- match: \"
scope:
meta.string.css string.quoted.double.css
Expand All @@ -337,6 +371,15 @@ contexts:
punctuation.definition.string.begin.css
set: single-quoted-url-body

unquoted-urls:
# replace CSS context to add interpolation support
- match: '{{unquoted_url_begin}}'
push: unquoted-url-body

unquoted-url-body:
- meta_prepend: true
- include: less-string-interpolations

###[ CSS PROTOTYPES ]##########################################################

terminator-pop:
Expand Down
7 changes: 7 additions & 0 deletions tests/syntax_test_css.less
Original file line number Diff line number Diff line change
Expand Up @@ -2477,6 +2477,13 @@
font: sans serif;
/* ^^^^^^^^^^ meta.string.css string.unquoted.css */
font: san\73 -\73 erif;
/* ^^^^^^^^^^^^^^^^ meta.string.css string.unquoted.css */
font: sans serif var(--name);
/* ^^^^^^^^^^ meta.string.css string.unquoted.css */
/* ^^^^^^^^^^^ meta.function-call */
font: inherit;
/* ^^^^^^^ support - string */
Expand Down
76 changes: 76 additions & 0 deletions tests/syntax_test_less.less
Original file line number Diff line number Diff line change
Expand Up @@ -652,6 +652,54 @@ custom-@{element}-selector {}
// ^^^^^^^^ meta.string.css string.unquoted.css meta.interpolation.less
// ^^^^^^ meta.string.css string.unquoted.css - meta.interpolation

.pseudo-class-lang:lang(@{lng}-*K\*, de-@{DE}, *-@{lng}-EN, "de-*@{DE}\*") {}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.selector.css
// ^^^^ meta.function-call.identifier.css
// ^ meta.function-call.arguments.css meta.group.css - meta.string - meta.interpolation
// ^^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css meta.interpolation.less
// ^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css string.unquoted.css
// ^^ meta.function-call.arguments.css meta.group.css - meta.string - meta.interpolation
// ^^^ meta.function-call.arguments.css meta.group.css meta.string.css string.unquoted.css
// ^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css meta.interpolation.less
// ^^ meta.function-call.arguments.css meta.group.css - meta.string - meta.interpolation
// ^^ meta.function-call.arguments.css meta.group.css meta.string.css string.unquoted.css
// ^^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css meta.interpolation.less
// ^^^ meta.function-call.arguments.css meta.group.css meta.string.css string.unquoted.css
// ^^ meta.function-call.arguments.css meta.group.css - meta.string - meta.interpolation
// ^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css - meta.interpolation
// ^^^^^ meta.function-call.arguments.css meta.group.css meta.string.css meta.interpolation.less
// ^^^ meta.function-call.arguments.css meta.group.css meta.string.css - meta.interpolation
// ^ meta.function-call.arguments.css meta.group.css - meta.string - meta.interpolation
// ^^^^ entity.other.pseudo-class.css
// ^ punctuation.section.group.begin.css
// ^ punctuation.definition.variable.less
// ^ punctuation.section.interpolation.begin.less
// ^^^ variable.other.less
// ^ punctuation.section.interpolation.end.less
// ^ constant.other.wildcard.asterisk.css, variable.language.wildcard.asterisk.css
// ^^ constant.character.escape.css
// ^ punctuation.separator.sequence.css
// ^^^ string.unquoted.css
// ^ punctuation.definition.variable.less
// ^ punctuation.section.interpolation.begin.less
// ^^ variable.other.less
// ^ punctuation.section.interpolation.end.less
// ^ punctuation.separator.sequence.css
// ^ constant.other.wildcard.asterisk.css, variable.language.wildcard.asterisk.css
// ^ punctuation.definition.variable.less
// ^ punctuation.section.interpolation.begin.less
// ^^^ variable.other.less
// ^ punctuation.section.interpolation.end.less
// ^ punctuation.separator.sequence.css
// ^ punctuation.definition.string.begin.css
// ^ punctuation.definition.variable.less
// ^ punctuation.section.interpolation.begin.less
// ^^ variable.other.less
// ^ punctuation.section.interpolation.end.less
// ^^ constant.character.escape.css
// ^ punctuation.definition.string.end.css
// ^ punctuation.section.group.end.css

.nested-selector-interpolation-tests {

@{selector} {
Expand Down Expand Up @@ -756,6 +804,34 @@ custom-@{element}-selector {}
// ^^^^^ variable.other.less
// ^^^ support.constant.color.w3c.standard.css
// ^ punctuation.section.group.end.css

font: san\73 -\73 erif;
// ^^^^^^^^^^^^^^^^ meta.string.css string.unquoted.css

font: sans @{serif} var(--name);
// ^^^^^ meta.string.css string.unquoted.css
// ^^^^^^^^ meta.string.css meta.interpolation.less
// ^ - meta.string - meta.interpolation
// ^^^^^^^^^^^ meta.function-call

image: url(@{server}/assets/@{image}.png);
// ^ meta.property-value.css - meta.function-call
// ^^^ meta.property-value.css meta.function-call.identifier.css
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ meta.property-value.css meta.function-call.arguments.css meta.group.css
// ^^^^^^^^^ meta.path.url.css meta.string.css meta.interpolation.less - string
// ^^^^^^^^ meta.path.url.css meta.string.css string.unquoted.css
// ^^^^^^^^ meta.path.url.css meta.string.css meta.interpolation.less - string
// ^^^^ meta.path.url.css meta.string.css string.unquoted.css

grid: [@{line}name, line@{name}, li@{ne}name];
// ^^^^^^^ meta.string.css meta.interpolation.less - string
// ^^^^ meta.string.css string.unquoted.line-name.css
// ^^^^ meta.string.css string.unquoted.line-name.css
// ^^^^^^^ meta.string.css meta.interpolation.less - string
// ^^ meta.string.css string.unquoted.line-name.css
// ^^^^^ meta.string.css meta.interpolation.less - string
// ^^^^ meta.string.css string.unquoted.line-name.css

}

//=============================================================================
Expand Down

0 comments on commit 6ee5ee4

Please sign in to comment.