标准库更新
自3月 MoonBit 标准库开源以来,我们已经接收到 221个 PR 🩷,吸引了26位贡献者进行代码贡献,贡献了近一万多行优质的代码。感谢所有贡献者对于MoonBit的热情与支持,正是你们的参与推动着我们不断进步。
MoonBit更新
模式匹配中拓展了array pattern
-
支持标准库中的
Vec
类型 -
支持更通用的 array pattern:如
[a, .., b]
fn main {
let xs = @vec.from_array([1, 2, 3])
match xs {
[1, .., 3] => { println("ok")}
_ => println("not ok")
}
// Output: ok
}
IDE更新
1. 在线IDE的打印输出从Output频道改为终端
修复了Firefox浏览器上输出偶尔被截断的问题,浏览器上的代码可以使用ANSI转义序列,比如:
2. 支持 x |> @pkg.
形式的补全
3. 矩阵函数不再显示 inlay hint
修改前
修改后
工具链更新
1. 工具链新增(实验性的)测试覆盖率工具
(注意:目前暂不支持Windows端)
-
moon test
支持--enable-coverage
选项,开启后会在运行时统计测试对当前程序的覆盖率。 -
加入
moon coverage
指令,用于读取和处理覆盖率统计数据-
在测试完成之后,可以使用
moon coverage report -f <格式>
输出覆盖率数据。支持的输出格式包括:-
bisect(OCaml Bisect 工具的输出格式,默认)
-
html(输出统计结果网页)
-
coveralls(适合 CodeCov 和 Coveralls 工具上传的 JSON 格式)
-
summary(在终端中输出简报)
更多功能可以通过moon coverage report -h
查看
-
-
可以使用
moon coverage clean
指令清除之前的覆盖率数据输出。
-
2. 构建系统添加 moon info
命令,用于生成包的公开接口描述文件,使用示例如下:
(注意:目前暂不支持Windows端)
$ moon new hello
$ cd hello
$ moon info
$ cat lib/lib.mbti
package username/hello/lib
// Values
fn hello() -> String
// Types and methods
// Traits
// Extension Methods