I'm building a Rust game with Piston and I'm trying to use the SublimeLinter Rust package. When I open my .rs game files, I get this linter error:
extern crate piston; // linter error: "can't find crate for 'piston'"
If I check the Sublime console, I can see that the linter is finding rustc:
SublimeLinter: rust activated: /usr/local/bin/rustc
I don't see any obvious error messages in the console. I have piston listed as a dependency in my Cargo.toml and I'm able to cargo run
successfully.
I'm a complete Rust & SublimeLinter newbie.
I get a similar error for whichever import I put first; for example if I move extern crate graphics;
to be the first line in the file I get the error "can't find crate for 'graphics'".
EDIT: turns out enabling the "use-cargo" setting fixed the issue. I added a ".sublimelinterrc" file to my project root with these contents:
{
"linters": {
"rust": {
"use-crate-root": true,
"use-cargo": true
}
}
}
I have not been able to reproduce your error. However, I'll list what I did that seemed to work. Perhaps you will see a step where we diverged, and that will give you a hint of where to look.
I installed Sublime Text 3. I chose the stable channel, build 3083. I installed Package Control, and then three packages:
I restarted Sublime Text and opened a project of mine that uses Cargo and depends on other packages. I opened the console (ctrl-`) and enabled debug mode, which takes effect at the next Sublime restart.
Because I have non-standard install of Rust, I saw that Sublime was unable to run rustc
due to missing dynamic libraries. I then closed Sublime, and opened it from my terminal: open /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text
. This uses my environment variables set by my shell.
I saw that the linter was complaining that my library had no main
method, so I enabled the use-cargo
option.
SublimeLinter: rust output:
error: main function not found
error: aborting due to previous error
After changing the use-cargo
setting, I caused a deliberate syntax error in my code and saw that it was highlighted. I then misnamed the crate in the extern crate
line, and saw it was highlighted.
At no point did there seem to be a problem with finding crates. I could tell that cargo
was being used via the console:
SublimeLinter: rust output:
Updating registry `https://github.com/rust-lang/crates.io-index`
Downloading rand v0.3.9
...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With