@jesscss/less-parser 2.0.0-alpha.7 → 2.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # @jesscss/less-parser
2
2
 
3
- A [Less](https://lesscss.org/) parser built on [parseman](https://www.npmjs.com/package/parseman). The grammar is the CSS grammar plus a Less delta: `lessGrammar = compose([cssGrammar, <Less delta>])`. It adds `@variable` / `@{interpolation}`, mixins, and the rest of Less on top of the shared CSS base in `@jesscss/css-parser`.
3
+ The Less grammar, layered on the CSS base parser the parser behind the language Jess ships today.
4
+
5
+ > **Status: alpha.** Part of [Jess](https://github.com/jesscss/jess), which *is* Less.js v5. Rendering `.less` is the one surface shipping today; everything else is roadmap. Expect gaps and [report bugs](https://github.com/jesscss/jess/issues). Docs live at [jesscss.github.io](https://jesscss.github.io/).
6
+
7
+ ## What it is
8
+
9
+ The Less grammar is the shared CSS grammar plus a Less delta:
10
+ `lessGrammar = compose([cssGrammar, <Less delta>])`. It adds `@variable` /
11
+ `@{interpolation}`, mixins, and the rest of Less on top of the spec-aligned CSS
12
+ base in [`@jesscss/css-parser`](https://www.npmjs.com/package/@jesscss/css-parser),
13
+ built on [parseman](https://www.npmjs.com/package/parseman) — **the fastest
14
+ general-purpose JavaScript parser** in its
15
+ [published benchmarks](https://matthew-dean.github.io/parseman/guide/benchmarks)
16
+ (see `@jesscss/css-parser` for figures and engineering details). It is the parser
17
+ Jess uses when it compiles `.less` — the "Now" tier of the language roadmap, and
18
+ the one dialect shipping in the alpha.
4
19
 
5
20
  Two ways to use it:
6
21
 
@@ -131,34 +146,4 @@ type BuildHost = (
131
146
 
132
147
  ## Part of Jess
133
148
 
134
- This package is developed as part of [Jess](https://github.com/jesscss/jess). Jess translates a Less string into a Jess AST; the sections below track the migration rules that entails.
135
-
136
- ### Converting Less 1.x-5.x to Less 6
137
-
138
- 1. Auto-wrap parens around division to dis-ambiguate.
139
- 2. Convert `@import` to `@use` and `@include` syntax.
140
- 3. Throw errors on `@plugin` and ask to refactor with `@from`
141
- 4. Convert function references to `@from '#less' ([func])`
142
- 5. Add parentheses after mixin calls e.g. `.ns > .mixin;` to `.ns.mixin();`
143
- 6. Convert local imports from `@import 'local'` to `@include './local.less'`
144
- 7. Convert `@import (less) './file.css';` to `@include './file.css' as less;`
145
- 8. Convert `@import (inline) './file.css';` to `@include './file.css' as text;`
146
- 9. Convert `@import (reference) './file.less';` to `@use './file.less';`
147
- 10. Files that consume variables, mixins, or rules (like with extend) should have a `@use` added.
148
- 11. Don't allow `.class` as a value in a declaration. Convert to `\.class` e.g. `@foo: .class` should be converted to `@foo: \.class` (or `selector(.class)`?).
149
- 12. In a custom property value, convert `@variable` to `@{variable}`.
150
-
151
- ### Converting Less 1.x-4.x to Jess
152
-
153
- 1. Auto-wrap expressions (like math) with `$()`
154
- 2. Convert mixin definitions `.my-mixin()` to `@mixin my-mixin()`
155
- 3. Convert mixin calls to function calls: `#ns > .mixin()` to `$ns.mixin()`
156
- 4. Throw errors on mixed case mixins: `.my-mixin()` and `.myMixin()`
157
- 5. Throw errors on mixed hash and class mixins: `#my-mixin()` and `.my-mixin()`
158
- 5. Convert variable declarations `@my-var` with `$my-var`
159
- 6. Convert interpolated vars `@{my-var}` to `$(my-var)`
160
- 7. Convert property references `$prop` to `$[prop]`
161
- 8. Convert color names in expressions to hex values (or wrapped in `color()`?) (because Jess doesn't support color keywords in expressions). Alternatively, should Jess allow `keyword` to denote keywords?
162
- 9. Convert `@rest...` to `...rest`
163
- 10. Convert `.rules()` to `@include .rules()` if `.rules` is a selector. What if it's a selector and mixin? Maybe something like `@include .rules, $rules();`? This might change the execution order from Less though.
164
- 11. Convert `@foo: extract(@bar, 1)` to `@let foo: $bar[0];`?
149
+ This package is developed as part of [Jess](https://github.com/jesscss/jess), the Less.js v5 rewrite. Jess translates a Less string into the core Jess AST, which the compiler then evaluates and renders to CSS. Licensed MIT.
@@ -1 +1 @@
1
- {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
@@ -530,6 +530,7 @@ var LessGrammar = class LessGrammar extends _jesscss_css_parser_jess.CssParser {
530
530
  }
531
531
  }
532
532
  const valItems = items.slice(colonIdx + 1, end);
533
+ if (valItems.length > 0 && valItems[valItems.length - 1].comp === ",") valItems.pop();
533
534
  if (valItems.length) {
534
535
  const vText = this._source.slice(valItems[0].span.start, valItems[valItems.length - 1].span.end);
535
536
  if (/(?:^|[\s,])\.-?[_a-zA-Z]/.test(vText)) this._warn(`Unquoted selector capture in variable "@${name}" is deprecated; wrap the value in quotes or ~"...".`, "unquoted-selector-capture");
@@ -530,6 +530,7 @@ var LessGrammar = class LessGrammar extends CssParser {
530
530
  }
531
531
  }
532
532
  const valItems = items.slice(colonIdx + 1, end);
533
+ if (valItems.length > 0 && valItems[valItems.length - 1].comp === ",") valItems.pop();
533
534
  if (valItems.length) {
534
535
  const vText = this._source.slice(valItems[0].span.start, valItems[valItems.length - 1].span.end);
535
536
  if (/(?:^|[\s,])\.-?[_a-zA-Z]/.test(vText)) this._warn(`Unquoted selector capture in variable "@${name}" is deprecated; wrap the value in quotes or ~"...".`, "unquoted-selector-capture");