Slint 文件编辑不能在 Rust 中及时索引
这个现象在编写 VS Code 中编写 Slint DSL 代码时非常常见. 表现为修改 Slint 代码, 如:
- 导出新的 component/global;
- 为 component 增加/修改方法, 属性, 回调;
- 在 global 中修改结构体属性, 修改回调;
随后前往 Rust 的 native code 中试图调用这些方法时, Rust 的代码提示无法找到相关的 component 或者更新后的方法, 回调和属性. 类似这样:
- 代码提示不能正确推导
app
的类型; - 点击
HomeComponentTest
无法跳转到build.rs
生成的 UI 代码 (Rust) 中对应的结构体.
此时, 最简单的方法是找到 VS Code 底部的 rust-analyzer
, 鼠标悬停, 然后点击 "Restart Server". 等待 Rust Analyzer 重新索引整个文件目录之后, 上述两个现象就能很好解决了:
笔者目前还没有更好的方法能够解决这个问题, 可能需要探索 Rust Analyzer 的配置. 有开发者提到了 类似的问题, 不过其他人提到的解决方案是更新 Rust native code 来触发 Rust Analyzer 的索引机制. 不过似乎我尝试没有生效. 这个还需要进一步探索来寻找根因, 非重点问题, 所以暂时不去深究.