-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCHANGELOG
305 lines (288 loc) · 10.4 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
v0.0.9 (..)
-----------
* Add List.append/prepend
* Add Number.power
* Add --first parameter to grep
* Add html.escape
* Add mash.reload to reload init files
* Add status indicator suffix to line
* Disco borders
* Force printing using view.print
* Render the object browser on the alternate screen
* Add terminal function
* Distinct styling for class / function definition names, object literal fields and attributes
* Add os.findExecutableInPath (which)
* Quit (Ctrl-g)
* Undo (Ctrl-_), Redo (Alt-_)
* Copy (using Alt-w), Cut (Ctrl-w) and Paste (Ctrl-y)
* os.jump to quickly access recent dirs
* Allow shift selection
* json.prettyPrint --compact
* @safe parameters (avoid nullary evaluation)
* Shortcut to read lines in object browser
* Add git.Status.isClean
* Incremental history search: option to change directory for old command
* Help browser
* Add --finally param to try
* Make help's argument safe to improve usage
* Add mash.expressionFor
* Add safe function to avoid triggering nullary evaluation
* Path.setReadable, setWritable, setExecutable
* Inline evaluation (Ctrl-t) of simple values
* Include source in function help
* Syntax colouring for code snippets in help pages
* Syntax colouring for calling syntax
* Syntax colouring for tips
* Support beginning incremental search by pressing up from a partial line
* Underline matches in incremental search
* Key hints for incremental history search
* Support for standard editor actions / completions in browser expression
* Browser: can navigate in parent list using P/N
* Single object browser now supports marking
* Add String.deleteUpTo/deleteAfter
* Add .format method to DateTime
* Add .hour/minute/second method to DateTime
* Change groupBy --total to --all
* groupBy groups into an object by default, and takes a --groups parameter to emit a List
* http.* functions now take a --cookies parameter
* Allow non-String field names
* Add distinct String.indexOf which can find substrings
* Add git.amend
* Add field/value selectors to Object.fromPairs
* Add collections.transpose
* Allow 2D tables to support objects of objects
* Add --object and --select flags to groupBy
* Add String.toList
* Allow piping in and out of a !{mish expression}
* Object.reverse reverses the order of fields in an object
* Copy current focus in object browser
* Focus directory in object browser
* Open function will call any nullary .open method, and accepts variadic params
* Support nonunary anonymous function shortcuts using _1, _2, _3 "hole" syntax
* Support last parameters without need for @last attribute
* @atLeastOne and @flatten attributes for variadic parameters
* Add config option: config.view.browseLargeOutput
* Fix bug in split
* Support Ctrl-u = backwards kill line
* Add csv.write
* Add json.writeFile
* Add core.Character tag class
* Add List.naturalJoin
* Add List.cartesianProduct
* Support table rendering for list of lists
* random.int
* Object.sort, sortBy
* noArg for default argument sentinels
* base64.decode
* collections.allButLast
* select --add preserves class
* Import statements
* Support 256 terminal colours
* Loaded modules are now added to the global ns
* Add http.Response.getHeaders/getHeader
* Add Object.fromPairs
* http.headers are now sequences of Headers; added http.headersObject
* Expand semantics of ?. to return null or any missing member
v0.0.8 (27/March/2017)
----------------------
* Object.transformFields/transformValues
* Url.open
* Url.withQueryParams, http.XXX --queryParams={}
* os.delete deletes paths bottom up
* git.reflog
* http.post --form
* Add incremental search to single object table browser; always show appropriate status line
* support String.run --standardIn
* fix git.push --setUpstream with no argument
* collections.chunked
* sortBy supports --naturalOrder
* Make MashOrdering universal; can compare any value
* Add file parameter to http/json.post/put to send file as body
* Add hash.sha256
* Use ~ where possible in stack traces
* Fix bug with http and --json flag
* Add Path/PathSummary.open
* Add base64.encode
v0.0.7 (9/March/2017)
---------------------
* Fix performance problem in completions by avoiding rendering large objects
* Improve stack traces
* Add Object.grep
* Error on duplicate named arguments when using @namedArgs
* Add back/forward functions to navigate old directories
v0.0.6 (5/March/2017)
---------------------
* Add core.error function
* map/flatMap --withIndex replaced by detecting arity of incoming function
* Add Object.transform/whereField/whereNotField
* Add random.number
* Add Class.bless
* Add json.get/post/put/delete methods
* Suggestions for misspelled identifiers/members
* Include static methods in class help
* Syntax highlighting in error printer
* Incremental history search now case insensitive
* grep --negate
* Add List.new
* Add xml.fromFile, xml.fromString
* Object.unbless
* Include aliases in method help
v0.0.5 (8/February/2017)
------------------------
* 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 (26/July/2016)
---------------------
* 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 (6/July/2016)
--------------------
* 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 (22/June/2016)
---------------------
* 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
v0.0.1 (19/January/2016)
------------------------
* Initial release