#yew #formatter #rustfmt

app yew-fmt

Yew框架的代码格式化工具

10个版本 (4个重大更改)

0.5.1 2024年2月25日
0.5.0 2024年2月16日
0.4.0 2024年2月11日
0.3.0 2024年1月27日
0.1.1 2023年11月25日

开发工具类别中排名118

Download history 9/week @ 2024-04-23 279/week @ 2024-04-30 7/week @ 2024-05-14 14/week @ 2024-05-21 8/week @ 2024-05-28 1/week @ 2024-06-04 3/week @ 2024-06-11 4/week @ 2024-06-18 2/week @ 2024-06-25 66/week @ 2024-07-02 56/week @ 2024-07-09 57/week @ 2024-07-16 42/week @ 2024-07-23 212/week @ 2024-07-30 21/week @ 2024-08-06

每月下载量342

MIT 许可证

105KB
2.5K SLoC

yew-fmt

将增强HTML的Rust代码格式化成普通Rust代码

yew-fmtrustfmt的替代品,这意味着它除了格式化之外,还格式化yew::html!yew::html_nested!中的HTML。

安装 yew-fmt

安装它非常简单

cargo install yew-fmt

在项目中使用 yew-fmt

安装后,可以从命令行像 rustfmt 一样使用它。要验证这一点,请运行以下命令

yew-fmt --version

然而,因为它可以替换 rustfmt,所以它可以作为 cargo fmt 命令的后端。要将它设置为机器上的默认格式化工具,导出环境变量 RUSTFMT 并将其设置为 yew-fmt,在 Linux/MacOS 上可以使用以下命令

export RUSTFMT=yew-fmt

配置 yew-fmt

作为替代品,它继承了来自 rustfmt 的配置方法,这已在此处解释,所有 rustfmt 的配置选项也由 yew-fmt 支持。除此之外,yew-fmt 还提供了以下选项

yew.html_width

在回退到垂直格式化之前,HTML节点的最大宽度。

  • 默认值:从max_width继承
  • 可能值:任何正整数

yew.use_small_heuristics

yew.html_width 一起,不同类型的节点有不同的规则来决定何时断开。此选项控制使用哪些规则集。

默认

如果元素没有子元素或者所有子元素都是块级节点,则不会将它们拆分,否则会进行拆分。
if 节点总是会被拆分

<div>
    <code>{ "panic!(" }{ msg }{ ")" }</code>
</div>
if condition {
    <p>{ "Something else" }</p>
}

最大

元素只能因为超过 yew.html_width 而被拆分。
if 节点将保持在1行,除非它们超过 yew.html_width

<div><code>{ "panic!(" }{ msg }{ ")" }</code></div>
if condition { <p>{ "Something else" }</p> }

关闭

元素和 if 节点总是会被拆分

<div>
    <code>
        { "panic!(" }
        { msg }
        { ")" }
    </code>
</div>
if condition {
    <p>
        { "Something else" }
    </p>
}

yew.use_prop_init_shorthand

如果可能,使用属性初始化器缩写。

false

<div id={id} />

true

<div {id} />

yew.unwrap_literal_prop_values

如果属性初始化器只包含字面量,则移除其大括号。

  • 默认值:true
  • 可能的值:truefalse

false

<div id={"foo"} class="bar" />

true

<div id="foo" class="bar" />

yew.self_close_elements

如果元素没有子元素,则使其成为自闭合元素。

  • 默认值:true
  • 可能的值:truefalse

false

<div id="foo"></div>

true

<div id="foo" />

yew.html_flavor

默认情况下,yew-fmt 使用 Yew 的原始语法格式化 HTML,然而,此功能允许切换使用的 HTML 风味以适应例如社区制作的变体。目前,唯一支持的语法变体是 yew-html-ext

  • 默认值:"Base"
  • 可能的值:"Base""Ext"

Base

Yew 本身指定的默认语法。

Ext

yew-html-ext 的语法。

请注意,工作仍在进行中

由于该项目处于非常早期的开发阶段,rustfmt 的不是所有 CLI 选项都受支持,但该项目的最终目标是 100% 兼容性,因此下表中的所有 ❌ 最终将成为 🟩。

CLI 选项 支持
--backup 🟩
--check 🟩
--color 🟩
--config 🟩
--config-path 🟩
--edition 🟩
--emit files 🟩
--emit stdout 🟩
--files-with-diff 🟩
--print-config
--verbose
--quiet 🟩

依赖项

~3–11MB
~98K SLoC