我正在与活塞建立一个Rust游戏,我试图使用SublimeLinter Rust package。当我打开我的.rs游戏文件时,我得到了这个linter错误:
extern crate piston; // linter error: "can't find crate for 'piston'"
如果我检查Sublime控制台,我可以看到linter找到了rustc:
SublimeLinter: rust activated: /usr/local/bin/rustc
我在控制台中看不到任何明显的错误消息。我将活塞列为我的Cargo.toml中的依赖项,并且我能够cargo run
成功。
我是一个完整的Rust& SublimeLinter新手。
对于我先放入的导入,我收到类似的错误;例如,如果我将extern crate graphics;
移动到文件的第一行,我就会收到错误"无法找到'图形'"。
编辑:结果是" use-cargo"设置修复了问题。我添加了一个" .sublimelinterrc"使用以下内容将文件归档到我的项目根目录:
{
"linters": {
"rust": {
"use-crate-root": true,
"use-cargo": true
}
}
}
答案 0 :(得分:3)
我无法重现您的错误。但是,我会列出我所做的似乎有用的内容。也许你会看到我们分歧的一步,这会给你一个在哪里看的暗示。
我安装了Sublime Text 3.我选择了稳定的频道,构建了3083.我installed Package Control,然后是三个包:
我重新启动了Sublime Text并打开了一个使用Cargo的项目,并依赖于其他软件包。我打开了控制台( ctrl - `)和enabled debug mode,它将在下次Sublime重启时生效。
因为我有非标准的Rust安装,所以我看到由于缺少动态库,Sublime无法运行rustc
。然后我关闭了Sublime,并从我的终端打开了它:open /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
。这使用我的shell设置的环境变量。
我看到linter抱怨我的图书馆没有main
方法,所以我enabled the use-cargo
option。
SublimeLinter: rust output:
error: main function not found
error: aborting due to previous error
更改use-cargo
设置后,我在代码中引起了故意的语法错误,并看到它突出显示。然后我在extern crate
行中错误地命名了箱子,并看到它被突出显示。
找到板条箱似乎没有任何问题。我可以通过控制台告诉cargo
:
SublimeLinter: rust output:
Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.3.9
...