如何配置SublimeLinter-contrib-rustc以找到"活塞"箱?

时间:2015-07-12 23:53:39

标签: rust sublimetext3 sublimelinter

我正在与活塞建立一个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
    }
  }
}

1 个答案:

答案 0 :(得分:3)

我无法重现您的错误。但是,我会列出我所做的似乎有用的内容。也许你会看到我们分歧的一步,这会给你一个在哪里看的暗示。

我安装了Sublime Text 3.我选择了稳定的频道,构建了3083.我installed Package Control,然后是三个包:

  1. SublimeLinter(3.5.1)
  2. Sublime Linter-contrib-rustc(1.3.5)
  3. Rust(2015.05.28.16.43.21)
  4. 我重新启动了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
    ...