Skip to content

Commit c0f70ee

Browse files
Merge pull request #8409 from haidubogdan/t_8013_css_media_query_level_4
support for media query level 4 #8013
2 parents 50d72d4 + cc2611b commit c0f70ee

File tree

15 files changed

+21185
-18211
lines changed

15 files changed

+21185
-18211
lines changed

ide/css.editor/src/org/netbeans/modules/css/editor/module/main/MediaQueriesModule.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,11 @@ public List<CompletionProposal> getCompletionProposals(final CompletionContext c
152152
//no prefix
153153
proposals.addAll(getMediaTypes(context));
154154
break;
155-
155+
156+
case mediaCondition:
157+
proposals.addAll(getMediaFeatures(context));
158+
break;
159+
156160
case mediaFeature:
157161
//in media feature (max-width,...)
158162
proposals.addAll(getMediaFeatures(context));

ide/css.lib/src/org/netbeans/modules/css/lib/Css3.g

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -440,36 +440,73 @@ mediaQueryList
440440
;
441441

442442
mediaQuery
443-
:
444-
(mediaQueryOperator ws? )? mediaType ((ws? key_and)=> ws? key_and ws? mediaExpression )*
445-
| mediaExpression ((ws? key_and)=> ws? key_and ws? mediaExpression )*
443+
:
444+
mediaCondition
445+
| (mediaQueryOperator ws? )? mediaType ((ws? key_and) => ws? key_and ws? mediaConditionWithoutOr)?
446446
| {isLessSource()}? cp_variable
447447
;
448448

449449
mediaQueryOperator
450-
: key_only | NOT
451-
;
450+
:
451+
key_only | NOT
452+
;
453+
454+
mediaCondition
455+
:
456+
(NOT ws?) mediaInParens //media-not
457+
| mediaInParens (ws? (
458+
ws? key_and ws? mediaInParens //media-and
459+
| ws? key_or ws? mediaInParens //media-or
460+
)
461+
)*
462+
| LPAREN ws* RPAREN
463+
;
464+
465+
mediaConditionWithoutOr
466+
:
467+
(NOT ws?) mediaInParens //media-not
468+
| mediaInParens (ws? key_and ws? mediaInParens)* //media-and
469+
| (HASH) => {isCssPreprocessorSource()}? sass_interpolation_expression_var
470+
;
471+
472+
mediaInParens:
473+
LPAREN ws? (mediaCondition | mediaExpression) ws? RPAREN
474+
;
452475

453476
mediaType
454477
: IDENT | GEN | {isCssPreprocessorSource()}? sass_interpolation_expression_var
455478
;
456479

457480
mediaExpression
458481
:
459-
(LPAREN) => (LPAREN ws? mediaFeature mediaFeatureValue? ws? RPAREN)
482+
mediaFeature (ws? (COLON | mediaComparisonOperator) ws? mediaFeatureValue)?
483+
| mediaFeatureRangeContext
460484
| (HASH) => {isCssPreprocessorSource()}? sass_interpolation_expression_var
461485
;
462486

463-
mediaFeatureValue
464-
:
465-
ws? COLON ws?
466-
(
467-
{isCssPreprocessorSource()}? cp_expression
468-
|
469-
expression
470-
)
487+
mediaComparisonOperator
488+
:
489+
OPEQ | LESS | LESS_OR_EQ | GREATER | GREATER_OR_EQ
490+
;
491+
492+
mediaRangeExplicitValue
493+
: LENGTH | EMS | REM | RESOLUTION | EXS | DIMENSION
471494
;
472495

496+
mediaFeatureValue
497+
:
498+
mediaRangeExplicitValue
499+
| {isCssPreprocessorSource()}? cp_expression
500+
| expression
501+
;
502+
503+
mediaFeatureRangeContext
504+
:
505+
(mediaFeatureValue ws? (LESS | LESS_OR_EQ) ) => mediaFeatureValue ws? (LESS | LESS_OR_EQ) ws? mediaFeature (ws? (LESS | LESS_OR_EQ) ws? mediaFeatureValue)?
506+
| (mediaFeatureValue ws? (GREATER | GREATER_OR_EQ) ) => mediaFeatureValue ws? (GREATER | GREATER_OR_EQ) ws? mediaFeature (ws? (GREATER | GREATER_OR_EQ) ws? mediaFeatureValue)?
507+
| mediaFeatureValue ws? OPEQ ws? mediaFeature
508+
;
509+
473510
mediaFeature
474511
: IDENT | GEN | {isCssPreprocessorSource()}? ( cp_variable | sass_interpolation_expression_var )
475512
;

0 commit comments

Comments
 (0)