我如何配置 SublimeLinter-contrib-rustc 来找到 "piston" crate?

How do I configure SublimeLinter-contrib-rustc to find the "piston" crate?

我正在使用 Piston 构建 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; 移动到文件的第一行,我会得到错误 "can't find crate for 'graphics'".

EDIT:原来启用 "use-cargo" 设置解决了这个问题。我在我的项目根目录中添加了一个“.sublimelinterrc”文件,其中包含以下内容:

{
  "linters": {
    "rust": {
      "use-crate-root": true,
      "use-cargo": true
    }
  }
}

我无法重现您的错误。但是,我将列出我所做的似乎有效的事情。也许您会看到我们分歧的一个步骤,这会给您提示要看哪里。

我安装了Sublime Text 3,我选择了稳定版,build 3083,我installed Package Control,然后三个包:

  1. SublimeLinter (3.5.1)
  2. Sublime Linter-contrib-rustc (1.3.5)
  3. 生锈 (2015.05.28.16.43.21)

我重新启动了 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
...