Releases: mdr/mash
Releases · mdr/mash
v0.0.8
v0.0.7
v0.0.6
v0.0.5
- os.open, os.clipboard
- Support @shortflag parameter attribute
- Support attributes with arguments; @alias attribute for methods
- os.read/Path.read
- maths.squareRoot
- Object.bless
- zip function
- Shortcuts to jump to start/end of multiline buffer
- Object subtraction with a list of field names
- @namedParam parameters collect all named arguments
- max/min/maxBy/minBy support --default argument if run on empty sequence
- @last, @Flag and @lazy attributes (instead of lazy keyword)
- time.fromMillisSinceEpoch
- Add diskSpace / df command
- @Private attribute
- HistoryEntry.reexecute
- core.split
- Bracket matching
- List.intersect
- List subtraction
- Add Path.write (same functionality as os.write)
- Add os.createTemp(dir|file)
- Add String.lines
- git.remotes
- Add most List methods to String, treating strings as collections of strings
- Add time.today function
- Namespaces and loading .mash files as modules
- Doc comments
- Basic class support
- Add grep --regex
- Add type.hint
- sort --naturalOrder
- Very basic Host/Url/DNS: net.url, net.Url, net.Host
- Better user-defined function type inference
- map/flatMap/each --withIndex
- Destructuring in assignment and function params
- Add http.delete
- Object browser can apply an expression to the result
- git.tag.create/delete/list
- Text lines browser
- Incremental search in objects browser
- Date and DateTime can now be compared with >, <, etc
- Add String.toDate/toDateTime to give natural language date parsing
- Add --standardIn flag to os.run
- Add DateTime.fuzzy
- Allow hiding columns in objects table browser
- Add collections.deselect
- Add --prefix flag to Object.hoist
- Add collections.grep
- Insert whole
- mash.version
- Single value browser
- config.view.humanTime -- control whether to display relative friendly datetimes
- sortBy can pass in multiple attributes as sort keys
- History navigation skips over multiline entries until "committed" to by some non-history action
- Comparison operators handle nulls
- sort/sortBy handle nulls
- Add collection.indexOf
- Add core.try
- Add Function/BoundMethod.invoke
- Add view.tree
- Add net.urlEncode
- Add core.while
- Add headers & cookies to http.Response
- Object.hoist can hoist sequence-valued fields
- Object tree printing and browsing
- Object table browser cell navigation
- Add mash.source
- Add String.contains, String.endsWith
- Add git.RemoteBranch.createLocal method
- Render boolean fields as tick/crosses on object table browser
- Add --regex flat to String.replace
- Add flatten
- Add inBackground, parallelMap, sleep
- Add http.put, random.uuid
- Support headers in http.*
- Fix string escapes in interpolated strings
- Add collections.sliding
- Add core.tap
- Add time.parseIso8601, http.post functions
- Add core.timeTaken method to time how long code execution takes
- Add maths.stats to compute summary statistics on collections of numbers
- Add maths.log function
v0.0.4
- Add ProcessResult.duration method
- Support multi-line commands
- Scope local variables within { } blocks
- Support 0- and n-argument lambdas: "=> 42", "x y => x + y"
- Add collections.reduce function
- Add Object.withField and .get method
- Add function names to stack trace items
- Infer semicolons
- Function parameters can have defaults: "def f n (m = 100) = ..."
- Add Number.to, Number.until to specify ranges
- Add ProcessResult.succeeded/.failed
- Allow multi-statement lambdas immediately inside parens and blocks
- Add lazy parameters, not evaluated until used within function body
- Add Number.times to repeat a block
- Make Boolean values callable
- Add git.isRepo
- Add os.within
- Add --basicAuth option to http.get
- Allow expressions in object label position
- Assignment returns a value
- Add 'cd' builtin for mish
- Add Object.hoist
- Make Lists comparable
- Allow _ in param position, signifying anonymous parameter
- Support input/output redirection in mish, using < and >
- Add json.asJson/json.fromString function
v0.0.3
- Add provenance information to stack trace entries
- Separate Object from Any
- Object addition: { foo: 42 } + { bar: 100 }
- Object field subtraction: { foo: 42 } - "foo"
- Fix bugs in os.up and git.clone
- Improve Ctrl-Space invocation assistance
- Add compound assignment operators: +=, -=, *=, /=
- Remember the most recent incomplete command as the last entry in history
- Add a globals object, prevent infinite loops when toStringing cycles
- Add Any.isA method
v0.0.2
- Varargs support in user-defined functions
- Better error messages for illegal function arguments
- Added identity function
- Field accessor methods in Git CommitHashClass
- All collections functions now work on strings
- Assignment to array syntax lvalues: xs[2] = 42; obj["field"] = "value"
- alias assignment: tac = alias reverse
- String/integer multiplication: "xy" * 3 = "xyxyxy"
- Added Number.toInt method
- Add startup tips
- Insert row reference from object browser
- !{..} syntax returns information about the process output, new !!{..} syntax throws it away
- Additional basic Git command support
- Added --regex flag for split
- Added --append fag for write
- Added ProcessResult.toPath method
- Added --createIntermediates flag for mkdir
- Variadic parameters can require at least one argument
- Added view.raw, view.browser to control output formatting
- Support substring path completions
- Headless member exprs
- Date arithmetic
- Local variable scopes
- Block expressions
- Basic stack traces
- flatMap
- Object browser selection
- Numbered results
- History objects