Slint 文件编辑不能在 Rust 中及时索引

这个现象在编写 VS Code 中编写 Slint DSL 代码时非常常见. 表现为修改 Slint 代码, 如:

  1. 导出新的 component/global;
  2. 为 component 增加/修改方法, 属性, 回调;
  3. 在 global 中修改结构体属性, 修改回调;

随后前往 Rust 的 native code 中试图调用这些方法时, Rust 的代码提示无法找到相关的 component 或者更新后的方法, 回调和属性. 类似这样:

  1. 代码提示不能正确推导 app 的类型;
  2. 点击 HomeComponentTest 无法跳转到 build.rs 生成的 UI 代码 (Rust) 中对应的结构体.

此时, 最简单的方法是找到 VS Code 底部的 rust-analyzer, 鼠标悬停, 然后点击 "Restart Server". 等待 Rust Analyzer 重新索引整个文件目录之后, 上述两个现象就能很好解决了:

笔者目前还没有更好的方法能够解决这个问题, 可能需要探索 Rust Analyzer 的配置. 有开发者提到了 类似的问题, 不过其他人提到的解决方案是更新 Rust native code 来触发 Rust Analyzer 的索引机制. 不过似乎我尝试没有生效. 这个还需要进一步探索来寻找根因, 非重点问题, 所以暂时不去深究.

posted @ 2024-01-14 23:21  那阵东风  阅读(86)  评论(0编辑  收藏  举报