rip-lang 1.4.2 → 1.4.4

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/CHANGELOG.md CHANGED
@@ -5,6 +5,46 @@ All notable changes to Rip will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.4.4] - 2025-11-08
9
+
10
+ ### Changed
11
+ - **S-expression formatter - Clean room rebuild**
12
+ - Complete rewrite of `formatSExpr()` with clear, simple rules
13
+ - Fixed indentation hierarchy: children ALWAYS indented more than parents
14
+ - Fixed method chaining indentation (`.` operator in call heads)
15
+ - Multi-line heads now properly re-indented to maintain hierarchy
16
+ - Block nodes always expand children on separate lines
17
+ - Removed all column-based continuation complexity
18
+ - +89 lines added, -52 lines removed (net +37 for clarity)
19
+
20
+ - **INLINE_FORMS cleanup**
21
+ - Removed legacy MUMPS cruft (tag, entryref, lock-*, newline, etc.)
22
+ - Organized by category with aligned comments
23
+ - Added `new` to inline forms for compact constructor calls
24
+ - Clear documentation of what belongs and why
25
+
26
+ ### Improved
27
+ - S-expression output is now beautifully formatted with perfect hierarchy
28
+ - Method chaining like `s.replace().trim()` displays correctly
29
+ - Simple constructors stay compact: `(new (Date))`
30
+ - Complex constructors expand naturally: `(new (Set (...)))`
31
+
32
+ All 938 tests passing (100%) ✅
33
+
34
+ ## [1.4.3] - 2025-11-07
35
+
36
+ ### Refactored
37
+ - **Convert generateNot to s-expression approach** - Following Rip philosophy!
38
+ - Check operand TYPE at s-expression level (not regex on generated code)
39
+ - Handles primitives: `!1`, `!x`, `!true` (clean output without extra parens)
40
+ - Handles property access: `!obj.prop`, `!arr[0]` (clean output)
41
+ - Conservative for complex expressions: `!(a + b)` (keeps parens)
42
+ - Simple, maintainable logic (~26 lines)
43
+ - Follows philosophy from Issues #46 (flattenBinaryChain) and #49 (unwrapComprehensionIIFE)
44
+ - **Work at IR level, not string level!**
45
+
46
+ All 938 tests passing (100%) ✅
47
+
8
48
  ## [1.4.2] - 2025-11-07
9
49
 
10
50
  ### Fixed