2 个版本
0.1.1 | 2023 年 10 月 10 日 |
---|---|
0.1.0 | 2023 年 10 月 10 日 |
#1138 在 文本处理
14KB
157 代码行
nu_plugin_ron
这是一个 nushell 插件,可以将 RON 文本解析成 nu
结构化类型。
安装
要永久添加插件,只需安装它并在上面调用 register
使用 Cargo
cargo install nu_plugin_ron
register ~/.cargo/bin/nu_plugin_ron
用法
考虑以下 RON 示例
Scene( // class name is optional
materials: { // this is a map
"metal": (
reflectivity: 1.0,
),
"plastic": (
reflectivity: 0.5,
),
},
entities: [ // this is an array
(
name: "hero",
material: "metal",
),
(
name: "monster",
material: "plastic",
),
],
)
$ open example.ron
╭───────────┬───────────────────────────────────────╮
│ │ ╭───┬──────────┬─────────╮ │
│ entities │ │ # │ material │ name │ │
│ │ ├───┼──────────┼─────────┤ │
│ │ │ 0 │ metal │ hero │ │
│ │ │ 1 │ plastic │ monster │ │
│ │ ╰───┴──────────┴─────────╯ │
│ │ ╭─────────┬─────────────────────────╮ │
│ materials │ │ │ ╭──────────────┬──────╮ │ │
│ │ │ metal │ │ reflectivity │ 1.00 │ │ │
│ │ │ │ ╰──────────────┴──────╯ │ │
│ │ │ │ ╭──────────────┬──────╮ │ │
│ │ │ plastic │ │ reflectivity │ 0.50 │ │ │
│ │ │ │ ╰──────────────┴──────╯ │ │
│ │ ╰─────────┴─────────────────────────╯ │
╰───────────┴───────────────────────────────────────╯
$ open example.ron | update materials.metal.reflectivity 2.00 | save -f new_example.ron
$ open new_example.ron
╭───────────┬───────────────────────────────────────╮
│ │ ╭───┬──────────┬─────────╮ │
│ entities │ │ # │ material │ name │ │
│ │ ├───┼──────────┼─────────┤ │
│ │ │ 0 │ metal │ hero │ │
│ │ │ 1 │ plastic │ monster │ │
│ │ ╰───┴──────────┴─────────╯ │
│ │ ╭─────────┬─────────────────────────╮ │
│ materials │ │ │ ╭──────────────┬──────╮ │ │
│ │ │ metal │ │ reflectivity │ 2.00 │ │ │
│ │ │ │ ╰──────────────┴──────╯ │ │
│ │ │ │ ╭──────────────┬──────╮ │ │
│ │ │ plastic │ │ reflectivity │ 0.50 │ │ │
│ │ │ │ ╰──────────────┴──────╯ │ │
│ │ ╰─────────┴─────────────────────────╯ │
╰───────────┴───────────────────────────────────────╯
依赖关系
~14–27MB
~384K SLoC