coffeehaml 0.6.0 → 0.7.0
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/dist/ast.d.ts +6 -0
- package/dist/ast.d.ts.map +1 -1
- package/dist/ast.js +2 -0
- package/dist/ast.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/parser.js +8 -2
- package/dist/parser.js.map +1 -1
- package/dist/prettier/coffeescript-formatter.d.ts +31 -0
- package/dist/prettier/coffeescript-formatter.d.ts.map +1 -0
- package/dist/prettier/coffeescript-formatter.js +409 -0
- package/dist/prettier/coffeescript-formatter.js.map +1 -0
- package/dist/prettier/index.d.ts +8 -0
- package/dist/prettier/index.d.ts.map +1 -0
- package/dist/prettier/index.js +69 -0
- package/dist/prettier/index.js.map +1 -0
- package/dist/prettier/options.d.ts +10 -0
- package/dist/prettier/options.d.ts.map +1 -0
- package/dist/prettier/options.js +200 -0
- package/dist/prettier/options.js.map +1 -0
- package/dist/prettier/printer.d.ts +45 -0
- package/dist/prettier/printer.d.ts.map +1 -0
- package/dist/prettier/printer.js +652 -0
- package/dist/prettier/printer.js.map +1 -0
- package/docs/examples.md +201 -1
- package/docs/grammar.md +90 -1
- package/docs/index.html +260 -37
- package/package.json +10 -3
- package/syntaxes/CoffeeHaml.tmLanguage +815 -868
- package/syntaxes/coffeehaml.tmLanguage.json +352 -161
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printer.js","sourceRoot":"","sources":["../../src/prettier/printer.ts"],"names":[],"mappings":"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"}
|
package/docs/examples.md
CHANGED
|
@@ -371,6 +371,206 @@ Haml comments and their nested children are stripped entirely.
|
|
|
371
371
|
init = ->
|
|
372
372
|
console.log "ready"
|
|
373
373
|
init()
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## 11. Statement Continuation (v0.4.2)
|
|
378
|
+
|
|
379
|
+
Indented children of `-` control blocks compile as continuation code lines.
|
|
380
|
+
No more single-line straitjacket for complex logic:
|
|
381
|
+
|
|
382
|
+
```haml
|
|
383
|
+
- if user.role == 'admin' && user.permissions.includes('write')
|
|
384
|
+
%AdminPanel
|
|
385
|
+
%h2 Admin
|
|
386
|
+
%p Welcome back, = user.name
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
Multi-statement blocks:
|
|
390
|
+
|
|
391
|
+
```haml
|
|
392
|
+
- if results.length > 0
|
|
393
|
+
sorted = results.sort (a, b) -> b.score - a.score
|
|
394
|
+
topThree = sorted.slice 0, 3
|
|
395
|
+
%Results{ data: topThree }
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Works with `for`, `while`, and bare statements too:
|
|
399
|
+
|
|
400
|
+
```haml
|
|
401
|
+
%div
|
|
402
|
+
- x = computeBaseValue()
|
|
403
|
+
- x *= multiplier
|
|
404
|
+
- x += offset
|
|
405
|
+
%p= x
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
---
|
|
409
|
+
|
|
410
|
+
## 12. Expression Continuation (v0.5.0)
|
|
411
|
+
|
|
412
|
+
Long inline expressions can break across indented continuation lines:
|
|
413
|
+
|
|
414
|
+
```haml
|
|
415
|
+
%h1= "Welcome, " +
|
|
416
|
+
user.firstName + " " +
|
|
417
|
+
user.lastName
|
|
418
|
+
|
|
419
|
+
%div= someFunction(
|
|
420
|
+
arg1,
|
|
421
|
+
arg2,
|
|
422
|
+
arg3
|
|
423
|
+
)
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
Indented TEXT children of `=` are joined into the expression before compilation:
|
|
427
|
+
|
|
428
|
+
```haml
|
|
429
|
+
%p= formatMessage(
|
|
430
|
+
user.name,
|
|
431
|
+
user.role,
|
|
432
|
+
if premium then "⭐" else ""
|
|
433
|
+
)
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## 13. Arrow Continuation (v0.6.0)
|
|
439
|
+
|
|
440
|
+
`=` with an arrow function can have indented element children — the elements
|
|
441
|
+
become the arrow body's JSX:
|
|
442
|
+
|
|
443
|
+
```haml
|
|
444
|
+
%ul
|
|
445
|
+
= items.map (item) ->
|
|
446
|
+
%li{ key: item.id }
|
|
447
|
+
%span.icon= item.icon
|
|
448
|
+
%a{ href: item.url }= item.label
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
Compiles to:
|
|
452
|
+
|
|
453
|
+
```js
|
|
454
|
+
jsx("ul", null,
|
|
455
|
+
...items.map(item => jsx("li", { key: item.id },
|
|
456
|
+
jsx("span", { className: "icon" }, item.icon),
|
|
457
|
+
jsx("a", { href: item.url }, item.label)
|
|
458
|
+
))
|
|
459
|
+
)
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
Works inline within elements too:
|
|
463
|
+
|
|
464
|
+
```haml
|
|
465
|
+
%Dashboard
|
|
466
|
+
= widgets.filter (w) -> w.active
|
|
467
|
+
.map (w) ->
|
|
468
|
+
%WidgetCard{ widget: w, key: w.id }
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## 14. CLI Init Scaffold (v0.6.0)
|
|
474
|
+
|
|
475
|
+
Interactive project setup wizard:
|
|
476
|
+
|
|
477
|
+
```bash
|
|
478
|
+
$ npx coffeehaml init
|
|
479
|
+
|
|
480
|
+
☕ CoffeeHaml init — project scaffold
|
|
481
|
+
Working directory: /my-react-app
|
|
482
|
+
Detected: package.json, Vite, TypeScript
|
|
483
|
+
|
|
484
|
+
Add coffeehaml as devDependency? (Y/n):
|
|
485
|
+
Configure Vite plugin? (Y/n):
|
|
486
|
+
Create sample .chaml component? (Y/n):
|
|
487
|
+
Add build/watch scripts to package.json? (Y/n):
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
Detects your project type, installs dependencies, patches Vite config,
|
|
491
|
+
creates a sample component, and adds npm scripts — all interactive.
|
|
492
|
+
|
|
493
|
+
---
|
|
494
|
+
|
|
495
|
+
## 15. Watch Mode (v0.5.0)
|
|
496
|
+
|
|
497
|
+
```bash
|
|
498
|
+
# Watch and recompile on every change
|
|
499
|
+
$ npx coffeehaml watch src/ --wrap component
|
|
500
|
+
|
|
501
|
+
# With observer HOC wrapping
|
|
502
|
+
$ npx coffeehaml watch src/ --wrap observer
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
Uses native `fs.watch` — zero dependencies. Recursively scans on startup,
|
|
506
|
+
recompiles individual files on change.
|
|
507
|
+
|
|
508
|
+
---
|
|
509
|
+
|
|
510
|
+
## 16. HOC Wrapping (v0.4.0)
|
|
511
|
+
|
|
512
|
+
Wrap components in higher-order functions:
|
|
513
|
+
|
|
514
|
+
```haml
|
|
515
|
+
-# With Vite plugin (default: component)
|
|
516
|
+
-# Or via CLI / Node API:
|
|
517
|
+
|
|
518
|
+
%div.page
|
|
519
|
+
%h1 Hello
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
```bash
|
|
523
|
+
# Single HOC
|
|
524
|
+
$ npx coffeehaml compile app.chaml --wrap observer
|
|
525
|
+
# → export default observer(function App(props) { ... })
|
|
526
|
+
|
|
527
|
+
# HOC chain
|
|
528
|
+
$ npx coffeehaml compile app.chaml --wrap observer,memo,forwardRef
|
|
529
|
+
# → export default observer(memo(forwardRef(function App(props) { ... })))
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
Node API:
|
|
533
|
+
|
|
534
|
+
```js
|
|
535
|
+
compile(source, { wrap: ['observer', 'memo'] })
|
|
536
|
+
compile(source, { wrap: 'observer' })
|
|
537
|
+
compile(source, { wrap: 'component' }) // plain component
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
## 17. Multi-Error Parser Recovery (v0.6.0)
|
|
543
|
+
|
|
544
|
+
The parser no longer stops at the first error. It collects all errors,
|
|
545
|
+
recovers at structural boundaries, and returns a partial AST:
|
|
546
|
+
|
|
547
|
+
```js
|
|
548
|
+
const result = compile(brokenSource);
|
|
549
|
+
console.log(result.errors);
|
|
550
|
+
// [
|
|
551
|
+
// { message: "Unexpected token '}'", location: { line: 3, column: 12 } },
|
|
552
|
+
// { message: "Unclosed attribute block", location: { line: 7, column: 1 } },
|
|
553
|
+
// ]
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
Errors carry source locations (line/column) for IDE integration and
|
|
557
|
+
clickable terminal output.
|
|
558
|
+
|
|
559
|
+
---
|
|
560
|
+
|
|
561
|
+
## 18. Source-Located Errors (v0.5.0)
|
|
562
|
+
|
|
563
|
+
All errors carry file, line, and column:
|
|
564
|
+
|
|
565
|
+
```bash
|
|
566
|
+
$ npx coffeehaml compile bad.chaml
|
|
567
|
+
Error: bad.chaml:12:3 — Unexpected ')' in expression
|
|
568
|
+
%div{ onClick: -> handle() ) }
|
|
569
|
+
^
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
CoffeeScript compile errors are wrapped with source location context,
|
|
573
|
+
making it clear which `.chaml` line triggered the failure.
|
|
374
574
|
```
|
|
375
575
|
|
|
376
576
|
### Markdown (build-time)
|
|
@@ -716,4 +916,4 @@ Or use a raw CoffeeScript expression:
|
|
|
716
916
|
```
|
|
717
917
|
|
|
718
918
|
Fragments are implicit — multiple top-level nodes in a Document emit
|
|
719
|
-
a React Fragment automatically.
|
|
919
|
+
a React Fragment automatically.
|
package/docs/grammar.md
CHANGED
|
@@ -341,6 +341,95 @@ arr...
|
|
|
341
341
|
"Hello, #{name}"
|
|
342
342
|
|
|
343
343
|
// Heregex
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## Continuation (v0.4.2 / v0.5.0 / v0.6.0)
|
|
349
|
+
|
|
350
|
+
CoffeeHaml supports three forms of indented continuation, extending the
|
|
351
|
+
grammar beyond single-line constructs.
|
|
352
|
+
|
|
353
|
+
### Statement Continuation (`-`, v0.4.2)
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
Statement := '-' Whitespace CodeStatement Newline
|
|
357
|
+
(Indent CodeLine+ Dedent)?
|
|
358
|
+
|
|
359
|
+
CodeLine := [^\\n]+ Newline
|
|
360
|
+
// Indented code lines concatenated to the primary statement.
|
|
361
|
+
// Enables multi-line CoffeeScript inside - blocks.
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
The indented lines are joined to the primary statement with newline
|
|
365
|
+
separators before CoffeeScript compilation:
|
|
366
|
+
|
|
367
|
+
```haml
|
|
368
|
+
- x = computeValue()
|
|
369
|
+
x *= multiplier # continuation
|
|
370
|
+
x += offset # continuation
|
|
371
|
+
%p= x
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Compiles as a single CoffeeScript block: `x = computeValue(); x *= multiplier; x += offset`.
|
|
375
|
+
|
|
376
|
+
### Expression Continuation (`=`, v0.5.0)
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
Output := '=' Whitespace Expression Newline
|
|
380
|
+
(Indent TextLine+ Dedent)?
|
|
381
|
+
|
|
382
|
+
TextLine := [^\\n]+ Newline
|
|
383
|
+
// TEXT children of = outputs are joined to the expression.
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Indented TEXT children of `=` outputs are concatenated into the expression:
|
|
387
|
+
|
|
388
|
+
```haml
|
|
389
|
+
%h1= "Hello, " +
|
|
390
|
+
user.firstName +
|
|
391
|
+
" " +
|
|
392
|
+
user.lastName
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### Arrow Continuation (`= expr ->`, v0.6.0)
|
|
396
|
+
|
|
397
|
+
```
|
|
398
|
+
ArrowOutput := '=' Whitespace Expression ArrowSuffix Newline
|
|
399
|
+
(Indent Node+ Dedent)?
|
|
400
|
+
|
|
401
|
+
ArrowSuffix := '->' | '=>' Arguments?
|
|
402
|
+
// Detected after CoffeeScript expression parsing.
|
|
403
|
+
// Triggers element-body mode for indented children.
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
When `=` is followed by an expression ending in a CoffeeScript arrow
|
|
407
|
+
(`->` or `=>`), the indented children become the arrow body — compiled
|
|
408
|
+
as JSX elements within the arrow function:
|
|
409
|
+
|
|
410
|
+
```haml
|
|
411
|
+
= items.map (item) ->
|
|
412
|
+
%li{ key: item.id }
|
|
413
|
+
%span= item.label
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Compiles to:
|
|
417
|
+
|
|
418
|
+
```js
|
|
419
|
+
items.map(item => jsx("li", { key: item.id },
|
|
420
|
+
jsx("span", null, item.label)
|
|
421
|
+
))
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
This works both at the module level (`emitOutput`) and inline within
|
|
425
|
+
elements (`emitChildToJs`), enabling functional mapping with full element
|
|
426
|
+
syntax in both positions.
|
|
427
|
+
|
|
428
|
+
### Continuation Precedence
|
|
429
|
+
|
|
430
|
+
1. Arrow continuation takes priority — if the expression ends with `->` or `=>`, children are treated as the arrow body.
|
|
431
|
+
2. Otherwise, TEXT children are joined as expression continuations (for multi-line expressions).
|
|
432
|
+
3. Statement continuations are always code lines, joined before CoffeeScript compilation.
|
|
344
433
|
/// pattern /g
|
|
345
434
|
|
|
346
435
|
// Destructuring
|
|
@@ -429,4 +518,4 @@ it checks patterns in this order:
|
|
|
429
518
|
7. `-` → ControlFlow
|
|
430
519
|
8. `=` / `==` → Output
|
|
431
520
|
9. `:` + identifier → Filter
|
|
432
|
-
10. anything else → RawText
|
|
521
|
+
10. anything else → RawText
|