coffeehaml 0.5.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.
Files changed (44) hide show
  1. package/README.md +13 -4
  2. package/dist/ast.d.ts +6 -0
  3. package/dist/ast.d.ts.map +1 -1
  4. package/dist/ast.js +2 -0
  5. package/dist/ast.js.map +1 -1
  6. package/dist/cli.js +178 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/compiler.js +8 -10
  9. package/dist/compiler.js.map +1 -1
  10. package/dist/emitter.js +81 -5
  11. package/dist/emitter.js.map +1 -1
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/parser.d.ts +7 -1
  17. package/dist/parser.d.ts.map +1 -1
  18. package/dist/parser.js +46 -4
  19. package/dist/parser.js.map +1 -1
  20. package/dist/prettier/coffeescript-formatter.d.ts +31 -0
  21. package/dist/prettier/coffeescript-formatter.d.ts.map +1 -0
  22. package/dist/prettier/coffeescript-formatter.js +409 -0
  23. package/dist/prettier/coffeescript-formatter.js.map +1 -0
  24. package/dist/prettier/index.d.ts +8 -0
  25. package/dist/prettier/index.d.ts.map +1 -0
  26. package/dist/prettier/index.js +69 -0
  27. package/dist/prettier/index.js.map +1 -0
  28. package/dist/prettier/options.d.ts +10 -0
  29. package/dist/prettier/options.d.ts.map +1 -0
  30. package/dist/prettier/options.js +200 -0
  31. package/dist/prettier/options.js.map +1 -0
  32. package/dist/prettier/printer.d.ts +45 -0
  33. package/dist/prettier/printer.d.ts.map +1 -0
  34. package/dist/prettier/printer.js +652 -0
  35. package/dist/prettier/printer.js.map +1 -0
  36. package/dist/vite-plugin.d.ts.map +1 -1
  37. package/dist/vite-plugin.js +11 -1
  38. package/dist/vite-plugin.js.map +1 -1
  39. package/docs/examples.md +201 -1
  40. package/docs/grammar.md +90 -1
  41. package/docs/index.html +260 -37
  42. package/package.json +10 -3
  43. package/syntaxes/CoffeeHaml.tmLanguage +815 -868
  44. 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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAUD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAgDhF"}
1
+ {"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAUD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CA4DhF"}
@@ -23,6 +23,16 @@ export default function coffeehaml(options = {}) {
23
23
  filename: id,
24
24
  componentName: compilerOpts.componentName || componentNameFromPath(id),
25
25
  });
26
+ // Inject React Fast Refresh pragma and HMR accept when in component mode
27
+ let preamble = '';
28
+ let postamble = '';
29
+ if (compilerOpts.wrap && compilerOpts.wrap !== 'none' && !compilerOpts.wrap.includes) {
30
+ // Component or observer mode — add Fast Refresh support
31
+ preamble = '// @refresh reset\n';
32
+ const name = compilerOpts.componentName || componentNameFromPath(id);
33
+ postamble = `\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n if (mod?.${name}) import.meta.hot?.data?.refresh?.();\n });\n}\n`;
34
+ }
35
+ const finalCode = preamble + result.code + postamble;
26
36
  if (result.errors.length > 0) {
27
37
  const err = result.errors[0];
28
38
  this.error({
@@ -37,7 +47,7 @@ export default function coffeehaml(options = {}) {
37
47
  return null;
38
48
  }
39
49
  return {
40
- code: result.code,
50
+ code: finalCode,
41
51
  map: result.sourceMap ? { mappings: result.sourceMap } : null,
42
52
  };
43
53
  },
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../src/vite-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAMhC,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAErD,+DAA+D;AAC/D,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,WAAW,CAAC;IAClE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,UAAmC,EAAE;IACtE,gFAAgF;IAChF,MAAM,YAAY,GAAoB;QACpC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW;QACjB,GAAG,OAAO,CAAC,eAAe;KAC3B,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAElB,SAAS,CAAC,IAAY,EAAE,EAAU;YAChC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,OAAO;YAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE;gBAC3B,GAAG,YAAY;gBACf,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,YAAY,CAAC,aAAa,IAAI,qBAAqB,CAAC,EAAE,CAAC;aACvE,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,CAAC;oBACT,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,EAAE;oBACF,aAAa;oBACb,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;wBAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;wBACjC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;qBACtC,CAAC,CAAC,CAAC,SAAS;iBACd,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAS,CAAC,CAAC,CAAC,IAAI;aACrE,CAAC;QACJ,CAAC;QAED,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;YAC9B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,4DAA4D;gBAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;gBACxC,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"vite-plugin.js","sourceRoot":"","sources":["../src/vite-plugin.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