我弄清楚了如何让 Diesel 与我的项目配合使用,但是当我尝试使用架构模块中的功能时,我没有从安装了 RLS 扩展的 VS Code 中得到任何代码完成建议。
我还尝试获取有关 IntelliJ Rust 插件的建议,但没有成功;也许我错过了一些东西。问题似乎来自宏的使用。
#[macro_use]
extern crate diesel;
use diesel::prelude::*;
mod db;
mod models;
mod schema;
use models::post::Post;
#[get("/")]
fn main() {
use schema::posts::dsl::*;
let connection = db::establish_connection();
let results = posts.load::<Post>(&connection).unwrap();
for post in results {
println!("{}", post.content);
}
}
Run Code Online (Sandbox Code Playgroud)
该代码有效,但在我编写后我从 VS Code 中没有得到任何结果posts。或者schema::。
在我看来,这是 Diesel 的一项重要功能,我不敢相信用它来完成代码是不可能的。
Intellij-rust 目前对宏/生成代码的支持非常差。虽然diesel生成了一个位于idea索引路径中的文件,但它在内部使用宏使其无法扩展并获得自动完成功能,因为运行该宏需要执行diesel程序宏,这会产生一个实际的进程,使其无法自动完成在性能方面。
如果你真的想要这样的东西,那么非常麻烦但又有点用的东西就是用来cargo expand扩展柴油生成的模块,然后复制并粘贴结果来代替柴油宏调用。尽管如此,每次都这样做是不切实际的,尤其是在使用 VCS 时,但这对于学习柴油 API 可能很有用。
| 归档时间: |
|
| 查看次数: |
837 次 |
| 最近记录: |