New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

racer does not complete crate from cargo #551

Closed
zyanho opened this Issue May 26, 2016 · 52 comments

Comments

Projects
None yet
@zyanho
Copy link

zyanho commented May 26, 2016

my env:

mac osx ---- 10.11.5
rustc --version ---- rustc 1.10.0-nightly (476fe6eef 2016-05-21)
cargo --version ---- cargo 0.11.0-nightly (259324c 2016-05-20)
racer --version ---- racer 1.2.10
rustup --version ---- rustup 0.1.12 (c6e430a 2016-05-12)

echo $CARGO_HOME
/Users/zyanho/.cargo
echo $RUST_SRC_PATH
/Users/zyanho/code/rust/rustc-nightly/src
racer complete std::time
MATCH time,1,0,/Users/zyanho/code/rust/rustc-nightly/src/libstd/time/mod.rs,Module,/Users/zyanho/code/rust/rustc-nightly/src/libstd/time/mod.rs
MATCH time,1,0,/Users/zyanho/code/rust/rustc-nightly/src/libstd/time/mod.rs,Module,/Users/zyanho/code/rust/rustc-nightly/src/libstd/time/mod.rs
ls ~/.cargo/registry/index/github.com-1ecc6299db9ec823/ir/on/iron
/Users/zyanho/.cargo/registry/index/github.com-1ecc6299db9ec823/ir/on/iron
racer complete iron:: 
show noting

thanks for help

@zyanho

This comment has been minimized.

Copy link
Author

zyanho commented May 26, 2016

RUST_BACKTRACE=1 CARGO_HOME=~/.cargo RUST_LOG=debug racer complete iron
DEBUG:racer::nameres: do_file_search iron
DEBUG:racer::nameres: do_file_search srcpaths ~/code/rust/rustc-nightly/src
DEBUG:racer::nameres: do_file_search v is ["~/code/rust/rustc-nightly/src", "."]

it seem not search in ~/.cargo/registry/src/

@dyxushuai

This comment has been minimized.

Copy link

dyxushuai commented Jun 1, 2016

Same problem with me.

@Systemcluster

This comment has been minimized.

Copy link

Systemcluster commented Jun 2, 2016

I can attest that this is not an isolated issue.

RUST_BACKTRACE=1 CARGO_HOME=~/.cargo RUST_LOG=debug racer complete sdl2::
DEBUG:racer::nameres: do_file_search sdl2
DEBUG:racer::nameres: do_file_search srcpaths /usr/local/src/rust/src
DEBUG:racer::nameres: do_file_search v is ["/usr/local/src/rust/src", "."]

Environment:

OSX 10.11.4
rustc 1.11.0-nightly (12d16599d 2016-06-01)
cargo 0.12.0-nightly (7d79da0 2016-05-31)
racer 1.2.10

Tested package exists in my cargo path:

$ ls ~/.cargo/registry/src/github.com-1ecc6299db9ec823/sdl2-0.19.0/src/
sdl2
@erisco

This comment has been minimized.

Copy link

erisco commented Jun 14, 2016

> SET CARGO_HOME=C:\Users\erisco\.cargo
> SET RUST_LOG=debug
> SET RUST_SRC_PATH=C:\Users\erisco\rustc-1.9.0\src
> racer complete "glium::"
DEBUG:racer::nameres: do_file_search glium
DEBUG:racer::nameres: do_file_search srcpaths C:\Users\erisco\rustc-1.9.0\src
DEBUG:racer::nameres: do_file_search v is ["C:\\Users\\erisco\\rustc-1.9.0\\src", "."]
Windows 10
rustc 1.9.0 (e4e8b6668 2016-05-18)
cargo 0.10.0-nightly (10ddd7d 2016-04-08)
racer 1.2.10
@jkaye2012

This comment has been minimized.

Copy link

jkaye2012 commented Jun 23, 2016

This is one of the biggest issues I have working with Rust from Emacs. Lack of completion for third-party libraries makes it much more painful to use many of them than it should be.

Can anyone provide a good starting point for how one could debug/fix this issue? It seems that the relevant code is somewhere in nameres.rs/cargo.rs (or the interaction between them), but I haven't found a good way to reliably test changes as I make them.

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Jun 23, 2016

Does this affect all third party crates, or just some? I've found the third party crate support to be good overall, but I haven't updated for a while, and it's possible there's been a regression.

@jkaye2012

This comment has been minimized.

Copy link

jkaye2012 commented Jun 23, 2016

At least the redis crate and rust-zmq aren't working for me. Do you have an example of one that's working for you so I can test it out on my setup?

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Jun 23, 2016

The Redis crate suffers from a known infinite recursion bug in Racer. One crate that works for me is uuid. I can provide lots more examples if you like.

@jkaye2012

This comment has been minimized.

Copy link

jkaye2012 commented Jun 23, 2016

Looks like that works for me as well! Seems like I've been getting unlucky to have the dependencies I've been using not work.

I guess this becomes more about finding the edge cases in external crate completion then - I would be more than willing to look into this if a current contributor could share with me how they go about testing and verifying their changes.

@sunchao

This comment has been minimized.

Copy link

sunchao commented Jul 28, 2016

I have the same issue: racer couldn't complete anything from cargo. Anyone know how to resolve this? Thanks.

@zhxchen17

This comment has been minimized.

Copy link

zhxchen17 commented Aug 17, 2016

The same issue on Window 10, but racer seems to complete correctly under my Arch Linux environment.

@zoumi

This comment has been minimized.

Copy link

zoumi commented Aug 28, 2016

I have the same issue.
system: Window7 64bit
rust:Rust nightly GNU 1.10 32bit

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Sep 5, 2016

For those of you not on windows; are you using multirust? Support for multirust cargo packages was removed back in May. Switching to rustup.rs seems to fix the problem.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Sep 5, 2016

I had what appeared to be the same issue while I was using rustup.rs on OS X, but it's been a couple of weeks since I tried

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Sep 5, 2016

@DominoTree there's some other issues which may cause completions to fail, but this seemed like the biggest offender. I've got PRs up for the other issues I'm aware off (TOML parse failure -> panic, dropping a diagnostic builder)

@zoumi

This comment has been minimized.

Copy link

zoumi commented Sep 6, 2016

@jwilm
I didn't use multirust.I installed rust from the .mis intaller.

I'm using sublime text. Sometimes it works, and sometimes do not.But it never complete for crate user32-ays.
And it take much of time to complete for winapi crate.It makes me annoyed.
Can there be a cache to speed up it?

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Sep 10, 2016

@jwilm - I've done a fresh OS install with rustup and built racer from the latest git source, and I'm still unable to complete anything that isn't either in the stdlib or in the current directory. I've pasted a bunch of stuff below - if there's anything else I can provide that would be helpful, please let me know.

➜  ~ uname -a
Darwin Nicks-MacBook-Pro.local 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64
➜  ~ rustc --version
rustc 1.11.0 (9b21dcd6a 2016-08-15)
➜  ~ rustup --version
rustup 0.6.3 (a0e2132 2016-08-28)
➜  ~ cargo --version
cargo 0.12.0-nightly (6b98d1f 2016-07-04)
➜  ~ racer --version
racer 1.2.10

➜  ~ echo $RUST_SRC_PATH
/Users/nprice/.rust/src/rustc-1.11.0/src

➜  ~ RUST_LOG=debug racer complete s
DEBUG:racer::nameres: do_file_search s
DEBUG:racer::nameres: do_file_search srcpaths /Users/nprice/.rust/src/rustc-1.11.0/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nprice/.rust/src/rustc-1.11.0/src", "."]
MATCH serialize,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libserialize/lib.rs,Module,serialize
MATCH std,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libstd/lib.rs,Module,std
MATCH syntax,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax/lib.rs,Module,syntax
MATCH syntax_ext,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax_ext/lib.rs,Module,syntax_ext
MATCH syntax_pos,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax_pos/lib.rs,Module,syntax_pos

➜  ~ git:(master) RUST_LOG=debug racer complete t
DEBUG:racer::nameres: do_file_search t
DEBUG:racer::nameres: do_file_search srcpaths /Users/nprice/.rust/src/rustc-1.11.0/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nprice/.rust/src/rustc-1.11.0/src", "."]
MATCH term,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libterm/lib.rs,Module,term
MATCH test,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libtest/lib.rs,Module,test

➜  ~ ls ~/.cargo/registry/src/
github.com-1ecc6299db9ec823

➜  ~ ls ~/.cargo/registry/src/github.com-1ecc6299db9ec823/
aho-corasick-0.5.2         libc-0.2.16                strsim-0.5.1               toml-0.1.30
ansi_term-0.7.5            log-0.3.6                  syntex_errors-0.43.0       typed-arena-1.1.0
ansi_term-0.8.0            memchr-0.1.11              syntex_pos-0.43.0          typed-arena-1.2.0
bitflags-0.5.0             racer-1.2.10               syntex_syntax-0.32.0       unicode-segmentation-0.1.2
bitflags-0.7.0             regex-0.1.73               syntex_syntax-0.43.0       unicode-width-0.1.3
clap-2.10.4                regex-0.1.75               term-0.2.14                unicode-xid-0.0.3
clap-2.2.6                 regex-syntax-0.3.4         term-0.4.4                 utf8-ranges-0.1.3
env_logger-0.3.4           regex-syntax-0.3.5         term_size-0.1.1            vec_map-0.6.0
kernel32-sys-0.2.2         rustc-serialize-0.3.19     thread-id-2.0.0            winapi-0.2.8
libc-0.2.15                strsim-0.4.1               thread_local-0.2.6         winapi-build-0.1.1
@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Sep 10, 2016

@DominoTree can you run the complete command with RUST_LOG=racer=trace? This will be a firehose of data, so maybe you could provide it as a gist?

Super appreciate your debugging efforts.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Sep 10, 2016

@jwilm I ran it with RUST_LOG=racer=trace but I didn't seem to get anything different than I did above.

➜  ~ RUST_LOG=racer=trace racer complete s
DEBUG:racer::nameres: do_file_search s
DEBUG:racer::nameres: do_file_search srcpaths /Users/nprice/.rust/src/rustc-1.11.0/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nprice/.rust/src/rustc-1.11.0/src", "."]
MATCH serialize,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libserialize/lib.rs,Module,serialize
MATCH std,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libstd/lib.rs,Module,std
MATCH syntax,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax/lib.rs,Module,syntax
MATCH syntax_ext,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax_ext/lib.rs,Module,syntax_ext
MATCH syntax_pos,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libsyntax_pos/lib.rs,Module,syntax_pos

➜  ~ RUST_LOG=racer=trace racer complete t
DEBUG:racer::nameres: do_file_search t
DEBUG:racer::nameres: do_file_search srcpaths /Users/nprice/.rust/src/rustc-1.11.0/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nprice/.rust/src/rustc-1.11.0/src", "."]
MATCH term,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libterm/lib.rs,Module,term
MATCH test,1,0,/Users/nprice/.rust/src/rustc-1.11.0/src/libtest/lib.rs,Module,test

I went ahead and dumped a trace of the syscalls it makes

syscalls:
https://gist.github.com/DominoTree/01030f32288bbee7c14ff1747230e68c

syscalls with stack backtraces:
https://gist.github.com/DominoTree/b4e7deac874b4e8a4a6886fa174784e6

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Sep 11, 2016

Hmm, it seems that in Vim, working in a project that uses pcap - racer is able to complete pcap:: but when I call racer complete pcap:: from the command line, it gives me no results.

@JohnMurray

This comment has been minimized.

Copy link

JohnMurray commented Nov 17, 2016

So I've been having similar issues and this ticket (in various forms) seems to be repeated in this project's issues so sharing this find if not mentioned elsewhere or if someone finds this helpful. Just playing around for a bit, this seems to work (although it's a complete hack). I appended my source path with a direct path to iron (the crate I'm most interested in getting working) and now I'm seeing completions.

export RUST_SRC_PATH="${RUST_SRC_PATH}:$HOME/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src";
> racer complete iron::
MATCH Iron,25,11,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/iron.rs,Struct,pub struct Iron<H>
MATCH Timeouts,39,11,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/iron.rs,Struct,pub struct Timeouts
MATCH Protocol,71,9,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/iron.rs,Enum,pub enum Protocol {

> racer complete iron::request::
MATCH Url,8,11,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/request/url.rs,Struct,pub struct Url
MATCH Request,28,11,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/request/mod.rs,Struct,pub struct Request<'a, 'b: 'a>
MATCH Body,112,11,/Users/jmurray/.cargo/registry/src/github.com-1ecc6299db9ec823/iron-0.4.0/src/request/mod.rs,Struct,pub struct Body<'a, 'b: 'a>(HttpReader<&'a mut buffer::BufReader<&'b mut NetworkStream>>);

Sill having issues getting this to work within an editor (even with this path set), but still interesting.

@pronebird

This comment has been minimized.

Copy link

pronebird commented Dec 7, 2016

Can't make it work for third party modules either. Any diagnostics or anything we can gather to help solving this?

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Dec 7, 2016

Can't make it work for third party modules either. Any diagnostics or anything we can gather to help solving this?

More than having the right diagnostics, the real problem is time. There's not a lot of bandwidth among regular racer contributors to dig into our issue backlog. The time I personally have for Racer has been going towards support for RLS, and next on that list is fixing the stack overflow that can bring down the entire process. We would seriously welcome any help we can get, and I can make time to help land PRs (of which there is a minor backlog at the moment 😞).

To answer your question though, I think @DominoTree's comment about working in vim versus not working on the command line would be a good lead to chase down (what's different in these cases?). It seems like the reports here are about not working on the command-line. This matches what I've observed since Racer works fine when called from YCM.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 7, 2016

I've rebuilt my entire environment a few times since I've posted here, but I just checked and on the latest Git version of racer, I am able to use it to complete the hyper crate in Vim, but not from the command-line.

I'm going to start hacking around and see if I can figure out what's going on, since it seems that I'm still able to replicate this behavior.

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Dec 7, 2016

Thanks @DominoTree! 😄

Looking forward to hear what you find out.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 8, 2016

Just getting started, but at first glance, I think this behavior might be caused by do_file_search in namers.rs not looking at Cargo.lock in the current directory or project root.

It looks like all it does is check the environment var with let srcpaths = std::env::var("RUST_SRC_PATH").unwrap_or("".into());

Providing a file path, line number, and character number to racer on the command line provides proper completions for third-party crates.

I'll keep poking around and see if I can make it behave differently.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 23, 2016

Got a chance to look at this some more and it does look like it's simply that attempting a completion as an argument to racer will not look for any external crates because not in the context of a project or a source file.

I think if this were documented more clearly, people wouldn't try to complete crates on the commandline and then assume that racer is broken.

We could also have racer try to find the nearest Cargo.toml file and use that, but I think that could introduce even more confusion.

I'm also wondering about what benefits there are from having this completion available in the first place, other than quickly testing whether racer works or not.

@jwilm

This comment has been minimized.

Copy link
Collaborator

jwilm commented Dec 23, 2016

@DominoTree thank you so much for continuing to look into this!

attempting a completion as an argument to racer will not look for any external crates because not in the context of a project or a source file.

We could also have racer try to find the nearest Cargo.toml file and use that, but I think that could introduce even more confusion.

I could imagine letting standard library completions work regardless, but for crate looks outside of a project, we should probably just detect that, print an error, and exit. Does that sound reasonable? Also, given your research, did you find that the command line completions work as expected in a project context?

I'm also wondering about what benefits there are from having this completion available in the first place, other than quickly testing whether racer works or not.

I don't quite understand this part. Are you suggesting the command line completion feature shouldn't exist other than checking that racer is hooked up properly? I think the way the stdio "daemon" mode works is to parse stdin lines as a set of arguments as if the program was run anew, so we can't exactly get rid of it. Even if that weren't true, I'm guessing at least a few people depend on the command line lookups since the feature was added at some point.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 23, 2016

From what I can tell, when using the complete option on the command-line, it only searches RUST_SRC_PATH and the current directory recursively, regardless of project context. If we want it to work in a project context, I think we'll need to have it look for Cargo.toml and Cargo.lock and work from there - or maybe even locate main.rs or lib.rs. I don't completely have my head wrapped around the matchers and nameres stuff works, but none of it seems to be called when populating the places to search when doing complete on the command line. nameres.rs#L570:L575

Here's the basic behavior and debug output from what I'm looking at. https://gist.github.com/DominoTree/7e080fccd268afcadcab47979405991f

As far as the second bit, I was mostly wondering aloud whether the complete option is really being used by anyone (seeing as it currently doesn't quite behave as expected) - I imagine that a lot of people are probably downloading racer and then trying it on the command-line with the complete option before adding it to their editor/IDE, and then assuming racer doesn't work.

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 23, 2016

I think that do_file_search is the only thing that gets called due to the logic in complete_fully_qualified_name_ at https://github.com/phildawes/racer/blob/master/src/racer/core.rs#L823 - I think this is where we might need to make changes.

@dato

This comment has been minimized.

Copy link

dato commented Dec 27, 2016

A brief question for @DominoTree and other Vim users in the thread:

  • are you using YouCompleteMe?
  • with YCM, are you using racerd?
  • if not, what else?

(I'm just trying to figure out what's making the difference, and racerd advertises completing from project crates. I perused its source briefly, but couldn't find where it does it. Perhaps it's higher level, in YCM itself.)

Thx.

@bruno-medeiros

This comment has been minimized.

Copy link

bruno-medeiros commented Dec 28, 2016

As far as the second bit, I was mostly wondering aloud whether the complete option is really being used by anyone (seeing as it currently doesn't quite behave as expected)

Wait, what?

RustDT uses the complete command (well, complete-with-snippet actually). It doesn't use the daemon mode. I thought the daemon was just an optimization for start-up times, etc... are you saying completion works more accurately when in daemon mode?

@DominoTree

This comment has been minimized.

Copy link

DominoTree commented Dec 28, 2016

Just tested, and, complete and complete-with-snippet on the commandline do not appear to look at Cargo.toml to find external crates to complete, as long as you're not providing a file name and line/char number to complete from. If you do provide them, it seems to work as expected.

In my earlier post, I think I'd made some incorrect assumptions about the complete commands.

I'm not really sure about daemon mode, or even potential differences from how racer may be called by RustDT. If RustDT is getting completions by file name and character position, it should work fine.

I'm trying to find some time to dig into this some more. Hopefully below illustrates what I'm trying to say.

➜  racer git:(master) grep toml ./Cargo.toml
toml = "~0.2.1"


➜  racer git:(master) RUST_LOG=debug racer complete-with-snippet toml::
DEBUG:racer::nameres: do_file_search toml
DEBUG:racer::nameres: do_file_search srcpaths /Users/nxp6336/.multirust/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nxp6336/.multirust/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src", "."]


➜  racer git:(master) RUST_LOG=debug racer complete toml::
DEBUG:racer::nameres: do_file_search toml
DEBUG:racer::nameres: do_file_search srcpaths /Users/nxp6336/.multirust/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src
DEBUG:racer::nameres: do_file_search v is ["/Users/nxp6336/.multirust/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src", "."]


➜  racer git:(master) ✗ cat src/test.rs
extern crate toml;

use toml::*;

fn main() {
    toml::
}


➜  racer git:(master) ✗ racer complete-with-snippet 6 10 src/test.rs
PREFIX 56,56,
MATCH Parser;Parser;89;11;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/parser.rs;Struct;pub struct Parser<'a>;"Parser for converting a string to a TOML `Value` instance.\n\nThis parser contains the string slice that is being parsed, and exports the"
MATCH ParserError;ParserError;107;11;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/parser.rs;Struct;pub struct ParserError;"A structure representing a parse error.\n\nThe data in this structure can be used to trace back to the original cause\nof the error in order to provide diagnostics about parse errors."
MATCH Encoder;Encoder;38;11;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs;Struct;pub struct Encoder;"A structure to transform Rust values into TOML values.\n\nThis encoder implements the serialization `Encoder` interface, allowing\n`Encodable` rust types to be fed into the encoder. The output of this\nencoder is a TOML `Table` structure. The resulting TOML can be stringified\nif necessary.\n\n# Example\n\n```\nextern crate rustc_serialize\;\nextern crate toml\;\n\n# fn main() {\nuse toml::{Encoder, Value}\;\nuse rustc_serialize::Encodable\;\n\n#[derive(RustcEncodable)]\nstruct MyStruct { foo: isize, bar: String }\nlet my_struct = MyStruct { foo: 4, bar: \"hello!\".to_string() }\;\n\nlet mut e = Encoder::new()\;\nmy_struct.encode(&mut e).unwrap()\;\n\nassert_eq!(e.toml.get(&\"foo\".to_string()), Some(&Value::Integer(4)))\n# }"
MATCH Error;Error;52;9;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs;Enum;pub enum Error {;"Enumeration of errors which can occur while encoding a rust value into a\nTOML value."
MATCH encode;encode(${1:t});163;7;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs;Function;pub fn encode<T: ::rustc_serialize::Encodable>(t: &T) -> Value;"Encodes an encodable value into a TOML value.\n\nThis function expects the type given to represent a TOML table in some form.\nIf encoding encounters an error, then this function will fail the task."
MATCH encode_str;encode_str(${1:t});185;7;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs;Function;pub fn encode_str<T: ::rustc_serialize::Encodable>(t: &T) -> String;"Encodes an encodable value into a TOML string.\n\nThis function expects the type given to represent a TOML table in some form.\nIf encoding encounters an error, then this function will fail the task."
MATCH Decoder;Decoder;17;11;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs;Struct;pub struct Decoder;"A structure to transform TOML values into Rust values.\n\nThis decoder implements the serialization `Decoder` interface, allowing\n`Decodable` types to be generated by this decoder. The input is any"
MATCH DecodeError;DecodeError;28;11;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs;Struct;pub struct DecodeError;"Description for errors which can occur while decoding a type."
MATCH DecodeErrorKind;DecodeErrorKind;37;9;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs;Enum;pub enum DecodeErrorKind {;"Enumeration of possible errors which can occur while decoding a structure."
MATCH decode;decode(${1:toml});71;7;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs;Function;pub fn decode<T: ::rustc_serialize::Decodable>(toml: Value) -> Option<T>;"Decodes a TOML value into a decodable type.\n\nThis function will consume the given TOML value and attempt to decode it\ninto the type specified. If decoding fails, `None` will be returned. If a\nfiner-grained error is desired, then it is recommended to use `Decodable`\ndirectly."
MATCH decode_str;decode_str(${1:s});95;7;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs;Function;pub fn decode_str<T: ::rustc_serialize::Decodable>(s: &str) -> Option<T>;"Decodes a string into a toml-encoded value.\n\nThis function will parse the given string into a TOML value, and then parse\nthe TOML value into the desired type. If any error occurs, `None` is\nreturned.\n\nIf more fine-grained errors are desired, these steps should be driven\nmanually."
MATCH Value;Value;65;9;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs;Enum;pub enum Value {;"Representation of a TOML value."
MATCH Array;Array;76;9;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs;Type;pub type Array = Vec<Value>\;;""
MATCH Table;Table;79;9;/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs;Type;pub type Table = BTreeMap<String, Value>\;;""
END


➜  racer git:(master) ✗ racer complete 6 10 src/test.rs
PREFIX 56,56,
MATCH Parser,89,11,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/parser.rs,Struct,pub struct Parser<'a>
MATCH ParserError,107,11,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/parser.rs,Struct,pub struct ParserError
MATCH Encoder,38,11,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs,Struct,pub struct Encoder
MATCH Error,52,9,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs,Enum,pub enum Error {
MATCH encode,163,7,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs,Function,pub fn encode<T: ::rustc_serialize::Encodable>(t: &T) -> Value
MATCH encode_str,185,7,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/encoder/mod.rs,Function,pub fn encode_str<T: ::rustc_serialize::Encodable>(t: &T) -> String
MATCH Decoder,17,11,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs,Struct,pub struct Decoder
MATCH DecodeError,28,11,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs,Struct,pub struct DecodeError
MATCH DecodeErrorKind,37,9,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs,Enum,pub enum DecodeErrorKind {
MATCH decode,71,7,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs,Function,pub fn decode<T: ::rustc_serialize::Decodable>(toml: Value) -> Option<T>
MATCH decode_str,95,7,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/decoder/mod.rs,Function,pub fn decode_str<T: ::rustc_serialize::Decodable>(s: &str) -> Option<T>
MATCH Value,65,9,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs,Enum,pub enum Value {
MATCH Array,76,9,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs,Type,pub type Array = Vec<Value>;
MATCH Table,79,9,/Users/nxp6336/.cargo/registry/src/github.com-1ecc6299db9ec823/toml-0.1.30/src/lib.rs,Type,pub type Table = BTreeMap<String, Value>;
END
@huettenhain

This comment has been minimized.

Copy link

huettenhain commented May 12, 2017

Hey there, I came here because I have this problem on Windows 10 with racer 2.0.6. I appended %USERPROFILE%\.cargo\registry\src to RUST_SRC_PATH and with RUST_LOG=debug, I can see that racer is now searching in this directory as well. However, this doesn't give me code completion for external crates, including the aforementioned uuid. Is there any known fix for this? If no, what's the status?

@BigBeautifulBro

This comment has been minimized.

Copy link

BigBeautifulBro commented Dec 31, 2017

I had an issue where racer did not work at all for nightly for crates from within emacs until I set an environment variable. Racer did work for me on stable in emacs without having to do anything special.

To fix the issue, I set the CARGO_HOME environment variable to something like C:\users\David\.cargo

I found the fix by googling for the issue and came across people with similar issues and solutions in this thread on reddit: https://www.reddit.com/r/rust/comments/50w0q2/racer_not_autocompleting_on_with_third_party/

I am using rustup.

my environment is as follows:
system: Windows 10 64bit
rust toolchain: nightly-x86_64-pc-windows-msvc

@theherk

This comment has been minimized.

Copy link

theherk commented Mar 6, 2018

This issue persists. I'm on OSX and cannot complete from external crates. I can complete from rust-src.

export RUST_SRC_PATH=$(rustc --print sysroot)/lib/rustlib/src/rust/src
export CARGO_HOME=$HOME/.cargo

I'm unclear why CARGO_HOME is relevant since when running at debug I can see it only searched RUST_SRC_PATH.

@vlisivka

This comment has been minimized.

Copy link

vlisivka commented Mar 13, 2018

I have same issue. Environment: Linux, Fedora 27.
I created simple project with just one external crate (see in attachment) and tried to get completion for it. Output:

[vlisivka@vlisivka src]$ RUST_SRC_PATH=/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src RUST_BACKTRACE=1 CARGO_HOME=$HOME/.cargo RUST_LOG=racer=trace racer complete 2 13 main.rs
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
PREFIX 35,35,
DEBUG:racer::core: Path: contextstr is |nanomsg|, searchstr is ||
DEBUG:racer::core: Complete path with line: "use nanomsg::"
DEBUG:racer::nameres: resolve_path P[nanomsg::] "main.rs" 35 StartsWith
DEBUG:racer::nameres: resolve_path P[nanomsg] "main.rs" 35 ExactMatch
DEBUG:racer::nameres: resolve_name nanomsg "main.rs" 35 ExactMatch Type
DEBUG:racer::nameres: search_local_scopes PathSegment { name: "nanomsg", types: [] } "main.rs" 35 ExactMatch Type
DEBUG:racer::nameres: searching scope Type start: 0 point: 35 'nanomsg' "main.rs" ExactMatch local: true, session: Session { .. }
DEBUG:racer::matchers: found an extern crate: |extern crate nanomsg;|
DEBUG:racer::matchers: extern crate nanomsg
DEBUG:racer::nameres: get_crate_file nanomsg, "main.rs"
DEBUG:racer::cargo: get_crate_file: from_path="main.rs"
TRACE:racer::cargo: get_crate_file_from_overrides; crate_name="nanomsg", path="main.rs"
TRACE:racer::cargo: trying path="main.rs/.cargo/config"
TRACE:racer::cargo: file_name() is none
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
TRACE:racer::nameres: Searching 1 delayed imports for nanomsg
DEBUG:racer::matchers: found use: nanomsg in |use nanomsg:: ;|
DEBUG:racer::ast: unable to parse crate. Returning None |use nanomsg:: ;|
TRACE:racer::nameres: Closure definition match is looking for nanomsg in 84 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
DEBUG:racer::nameres: search_crate_root |PathSegment { name: "nanomsg", types: [] }| "main.rs"
DEBUG:racer::nameres: search_prelude file PathSegment { name: "nanomsg", types: [] } ExactMatch Type
DEBUG:racer::nameres: searching scope Type start: 0 point: 0 'nanomsg' "/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/prelude/v1.rs" ExactMatch local: true, session: Session { .. }
TRACE:racer::nameres: Closure definition match is looking for nanomsg in 2324 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
DEBUG:racer::nameres: resolve_path returning []
END

foo.tar.gz

@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Mar 13, 2018

@vlisivka
Is Cargo.lock generated?

@vlisivka

This comment has been minimized.

Copy link

vlisivka commented Mar 13, 2018

@kngwyu Yes, Cargo.lock is generated. I built test project first, then added use nanomsg:: ; to test completion. I checked with strace -e trace=file, and racer does not try to open Cargo.* files.
(Edited)

[vlisivka@vlisivka src]$ RUST_SRC_PATH=/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src RUST_BACKTRACE=1 CARGO_HOME=$HOME/.cargo RUST_LOG=racer=trace strace -e trace=file -f racer complete 2 13 main.rs   2>&1 | grep -i Cargo
execve("/home/vlisivka/.cargo/bin/racer", ["racer", "complete", "2", "13", "main.rs"], 0x7ffd7bab8c88 /* 62 vars */) = 0
DEBUG:racer::cargo: get_crate_file: from_path="main.rs"
TRACE:racer::cargo: get_crate_file_from_overrides; crate_name="nanomsg", path="main.rs"
TRACE:racer::cargo: trying path="main.rs/.cargo/config"
[pid 12946] stat("main.rs/.cargo/config", 0x7fc4899afe80) = -1 ENOTDIR (Not a directory)
TRACE:racer::cargo: file_name() is none
[pid 12946] stat("main.rs/Cargo.toml", 0x7fc4899afee0) = -1 ENOTDIR (Not a directory)
[pid 12946] stat("Cargo.toml", 0x7fc4899afe90) = -1 ENOENT (No such file or directory)

@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Mar 13, 2018

@vlisivka
How about racer find-definition ?
I'm trying to reproduce, but now installing nanomsg package😓 in my distro

@vlisivka

This comment has been minimized.

Copy link

vlisivka commented Mar 13, 2018

Sorry, I made few mistakes. It looks that racer need to be executed in top directory, not in src. Package versions in Cargo.toml must be exact, not "^0.6" or "*", because racer uses versions from Cargo.toml instead of Cargo.lock.

But still no luck with completion.

@vlisivka

This comment has been minimized.

Copy link

vlisivka commented Mar 13, 2018

No luck with find-definition (racer 2.0.12):

[vlisivka@vlisivka foo]$ RUST_SRC_PATH=/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src RUST_BACKTRACE=1 CARGO_HOME=$HOME/.cargo RUST_LOG=racer=trace racer find-definition 2 7 src/main.rs
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
DEBUG:racer::core: find_definition_ for |""| |"nanomsg"| Path
DEBUG:racer::nameres: resolve_path P[nanomsg] "src/main.rs" 29 ExactMatch
DEBUG:racer::nameres: resolve_name nanomsg "src/main.rs" 29 ExactMatch Both
DEBUG:racer::nameres: search_local_scopes PathSegment { name: "nanomsg", types: [] } "src/main.rs" 29 ExactMatch Both
DEBUG:racer::nameres: searching scope Both start: 0 point: 29 'nanomsg' "src/main.rs" ExactMatch local: true, session: Session { .. }
DEBUG:racer::matchers: found an extern crate: |extern crate nanomsg;|
DEBUG:racer::matchers: extern crate nanomsg
DEBUG:racer::nameres: get_crate_file nanomsg, "src/main.rs"
DEBUG:racer::cargo: get_crate_file: from_path="src/main.rs"
TRACE:racer::cargo: get_crate_file_from_overrides; crate_name="nanomsg", path="src/main.rs"
TRACE:racer::cargo: trying path="src/main.rs/.cargo/config"
TRACE:racer::cargo: trying path="src/.cargo/config"
TRACE:racer::cargo: file_name() is none
TRACE:racer::cargo: get_crate_file tomlfile is "Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/src/main.rs/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/src/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/tmp/foo/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/Cargo.toml"
TRACE:racer::cargo: find_src_via_lockfile searching for nanomsg in "Cargo.lock"
TRACE:racer::cargo: parse_toml_file: "Cargo.lock"
DEBUG:racer::cargo: get_cargo_packages found lock_table {"metadata": Table({"checksum cc 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)": String("fedf677519ac9e865c4ff43ef8f930773b37ed6e6ea61b6b83b400a7b5787f49"), "checksum cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)": String("56d741ea7a69e577f6d06b36b7dff4738f680593dc27a701ffa8506b73ce28bb"), "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)": String("5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb"), "checksum libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)": String("f54263ad99207254cf58b5f701ecb432c717445ea2ee8af387334bdd1a03fdff"), "checksum nanomsg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)": String("76ccf9e51352fe07b21a15056877f9058fb7b471aeae03f9249e7f7134147713"), "checksum nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)": String("a1c99d8b346eb279bcb61913440b558073ea1f1cc8c51adcf0efe90f690d2c5a"), "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)": String("3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903")}), "package": Array([Table({"name": String("cc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("1.0.6")}), Table({"dependencies": Array([String("cc 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("cmake"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.1.29")}), Table({"dependencies": Array([String("nanomsg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)"), String("nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("foo"), "version": String("0.1.0")}), Table({"name": String("gcc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.3.54")}), Table({"name": String("libc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.2.39")}), Table({"dependencies": Array([String("libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)"), String("nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("nanomsg"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.6.2")}), Table({"dependencies": Array([String("cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)"), String("gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)"), String("libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)"), String("pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("nanomsg-sys"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.6.2")}), Table({"name": String("pkg-config"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.3.9")})])}
TRACE:racer::cargo: get_cargo_packages processing cc
TRACE:racer::cargo: get_versioned_cratefile searching for cc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing cmake
TRACE:racer::cargo: get_versioned_cratefile searching for cmake
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing foo
DEBUG:racer::cargo: get_cargo_packages skipping foo
TRACE:racer::cargo: get_cargo_packages processing gcc
TRACE:racer::cargo: get_versioned_cratefile searching for gcc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing libc
TRACE:racer::cargo: get_versioned_cratefile searching for libc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing nanomsg
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing nanomsg-sys
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg-sys
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing pkg-config
TRACE:racer::cargo: get_versioned_cratefile searching for pkg-config
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile got packages
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "cc", version: Some("1.0.6"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("alexcrichton/cc-rs")}), "travis-ci": Table({"repository": String("alexcrichton/cc-rs")})}), "dependencies": Table({"rayon": Table({"optional": Boolean(true), "version": String("1.0")})}), "dev-dependencies": Table({"tempdir": Table({"version": String("0.3")})}), "features": Table({"parallel": Array([String("rayon")])}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "categories": Array([String("development-tools")]), "description": String("A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n"), "documentation": String("https://docs.rs/cc"), "homepage": String("https://github.com/alexcrichton/cc-rs"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("cc"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/cc-rs"), "version": String("1.0.6")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: cc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "cmake", version: Some("0.1.29"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"dependencies": Table({"cc": Table({"version": String("1.0")})}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "description": String("A build dependency for running `cmake` to build a native library\n"), "documentation": String("http://alexcrichton.com/cmake-rs"), "homepage": String("https://github.com/alexcrichton/cmake-rs"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("cmake"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/cmake-rs"), "version": String("0.1.29")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: cmake
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "gcc", version: Some("0.3.54"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("alexcrichton/gcc-rs")}), "travis-ci": Table({"repository": String("alexcrichton/gcc-rs")})}), "dependencies": Table({"rayon": Table({"optional": Boolean(true), "version": String("0.8")})}), "dev-dependencies": Table({"tempdir": Table({"version": String("0.3")})}), "features": Table({"parallel": Array([String("rayon")])}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "categories": Array([String("development-tools")]), "description": String("A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n"), "documentation": String("https://docs.rs/gcc"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("gcc"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/gcc-rs"), "version": String("0.3.54")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: gcc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "libc", version: Some("0.2.39"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"project_name": String("rust-lang-libs/libc"), "repository": String("rust-lang/libc")}), "travis-ci": Table({"repository": String("rust-lang/libc")})}), "features": Table({"default": Array([String("use_std")]), "use_std": Array([])}), "package": Table({"authors": Array([String("The Rust Project Developers")]), "description": String("A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n"), "documentation": String("http://doc.rust-lang.org/libc"), "homepage": String("https://github.com/rust-lang/libc"), "license": String("MIT/Apache-2.0"), "name": String("libc"), "readme": String("README.md"), "repository": String("https://github.com/rust-lang/libc"), "version": String("0.2.39")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: libc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "nanomsg", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("blabaere/nanomsg.rs")}), "travis-ci": Table({"repository": String("blabaere/nanomsg.rs")})}), "dependencies": Table({"libc": String("0.2.18"), "nanomsg-sys": Table({"path": String("./nanomsg_sys"), "version": String("0.6.2")})}), "features": Table({"bundled": Array([String("nanomsg-sys/bundled")]), "no_anl": Array([String("nanomsg-sys/no_anl")])}), "project": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Jason E. Aten"), String("David C. Bishop"), String("Dennis Lawler"), String("Zachary Tong"), String("Dan Burkert"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "categories": Array([String("network-programming")]), "description": String("A high-level, Rust idiomatic wrapper around nanomsg."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("nanomsg"), String("binding"), String("network"), String("pub"), String("sub")]), "license": String("MIT"), "name": String("nanomsg"), "readme": String("./README.md"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: 
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "nanomsg-sys", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"build-dependencies": Table({"cmake": String("0.1.22"), "gcc": String("0.3"), "pkg-config": String("0.3")}), "dependencies": Table({"libc": String("0.2.18")}), "features": Table({"bundled": Array([]), "no_anl": Array([])}), "package": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "build": String("build.rs"), "description": String("The low-level bindings that is used by the nanomsg library."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("binding"), String("nanomsg")]), "license": String("MIT"), "links": String("nanomsg"), "name": String("nanomsg-sys"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: nanomsg_sys
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "pkg-config", version: Some("0.3.9"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"dev-dependencies": Table({"lazy_static": String("0.2")}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "description": String("A library to run the pkg-config system tool at build time in order to be used in\nCargo build scripts.\n"), "documentation": String("https://docs.rs/pkg-config"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("pkg-config"), "repository": String("https://github.com/alexcrichton/pkg-config-rs"), "version": String("0.3.9")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: pkg_config
TRACE:racer::cargo: find_src_via_lockfile returning None
TRACE:racer::cargo: find_src_via_tomlfile looking for nanomsg
TRACE:racer::cargo: parse_toml_file: "Cargo.toml"
DEBUG:racer::cargo: get_local_packages found table {"dependencies": Table({"nanomsg": String("0.6.2"), "nanomsg-sys": String("0.6.2")}), "package": Table({"authors": Array([String("Volodymyr Lisivka <vlisivka@gmail.com>")]), "name": String("foo"), "version": String("0.1.0")})};getting packages for section 'dependencies'
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.toml"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg-sys
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.toml"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
DEBUG:racer::cargo: get_local_packages found table {"dependencies": Table({"nanomsg": String("0.6.2"), "nanomsg-sys": String("0.6.2")}), "package": Table({"authors": Array([String("Volodymyr Lisivka <vlisivka@gmail.com>")]), "name": String("foo"), "version": String("0.1.0")})};getting packages for section 'dev-dependencies'
TRACE:racer::cargo: get_local_packages didn't find section dev-dependencies
DEBUG:racer::cargo: find_src_via_tomlfile found local packages: [PackageInfo { name: "nanomsg", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs") }, PackageInfo { name: "nanomsg-sys", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs") }]
DEBUG:racer::cargo: find_src_via_tomlfile found local packages dev: []
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("blabaere/nanomsg.rs")}), "travis-ci": Table({"repository": String("blabaere/nanomsg.rs")})}), "dependencies": Table({"libc": String("0.2.18"), "nanomsg-sys": Table({"path": String("./nanomsg_sys"), "version": String("0.6.2")})}), "features": Table({"bundled": Array([String("nanomsg-sys/bundled")]), "no_anl": Array([String("nanomsg-sys/no_anl")])}), "project": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Jason E. Aten"), String("David C. Bishop"), String("Dennis Lawler"), String("Zachary Tong"), String("Dan Burkert"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "categories": Array([String("network-programming")]), "description": String("A high-level, Rust idiomatic wrapper around nanomsg."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("nanomsg"), String("binding"), String("network"), String("pub"), String("sub")]), "license": String("MIT"), "name": String("nanomsg"), "readme": String("./README.md"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_tomlfile package_name: 
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"build-dependencies": Table({"cmake": String("0.1.22"), "gcc": String("0.3"), "pkg-config": String("0.3")}), "dependencies": Table({"libc": String("0.2.18")}), "features": Table({"bundled": Array([]), "no_anl": Array([])}), "package": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "build": String("build.rs"), "description": String("The low-level bindings that is used by the nanomsg library."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("binding"), String("nanomsg")]), "license": String("MIT"), "links": String("nanomsg"), "name": String("nanomsg-sys"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_tomlfile package_name: nanomsg_sys
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
TRACE:racer::nameres: Searching 1 delayed imports for `nanomsg`
DEBUG:racer::matchers: found a glob!! UseVisitor { ident: None, paths: [PathWithAlias { ident: "nanomsg", path: P[nanomsg] }], is_glob: true }
DEBUG:racer::matchers: found a glob: now searching for P[nanomsg::nanomsg]
DEBUG:racer::nameres: resolve_path P[nanomsg::nanomsg] "src/main.rs" 22 ExactMatch
DEBUG:racer::nameres: resolve_path P[nanomsg] "src/main.rs" 22 ExactMatch
DEBUG:racer::nameres: resolve_name nanomsg "src/main.rs" 22 ExactMatch Type
DEBUG:racer::nameres: search_local_scopes PathSegment { name: "nanomsg", types: [] } "src/main.rs" 22 ExactMatch Type
DEBUG:racer::nameres: searching scope Type start: 0 point: 22 'nanomsg' "src/main.rs" ExactMatch local: true, session: Session { .. }
DEBUG:racer::matchers: found an extern crate: |extern crate nanomsg;|
DEBUG:racer::matchers: extern crate nanomsg
DEBUG:racer::nameres: get_crate_file nanomsg, "src/main.rs"
DEBUG:racer::cargo: get_crate_file: from_path="src/main.rs"
TRACE:racer::cargo: get_crate_file_from_overrides; crate_name="nanomsg", path="src/main.rs"
TRACE:racer::cargo: trying path="src/main.rs/.cargo/config"
TRACE:racer::cargo: trying path="src/.cargo/config"
TRACE:racer::cargo: file_name() is none
TRACE:racer::cargo: get_crate_file tomlfile is "Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/src/main.rs/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/src/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/foo/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/tmp/foo/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/tmp/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/vlisivka/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/home/Cargo.toml"
TRACE:racer::cargo: find_workspace_root checking "/Cargo.toml"
TRACE:racer::cargo: find_src_via_lockfile searching for nanomsg in "Cargo.lock"
TRACE:racer::cargo: parse_toml_file: "Cargo.lock"
DEBUG:racer::cargo: get_cargo_packages found lock_table {"metadata": Table({"checksum cc 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)": String("fedf677519ac9e865c4ff43ef8f930773b37ed6e6ea61b6b83b400a7b5787f49"), "checksum cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)": String("56d741ea7a69e577f6d06b36b7dff4738f680593dc27a701ffa8506b73ce28bb"), "checksum gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)": String("5e33ec290da0d127825013597dbdfc28bee4964690c7ce1166cbc2a7bd08b1bb"), "checksum libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)": String("f54263ad99207254cf58b5f701ecb432c717445ea2ee8af387334bdd1a03fdff"), "checksum nanomsg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)": String("76ccf9e51352fe07b21a15056877f9058fb7b471aeae03f9249e7f7134147713"), "checksum nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)": String("a1c99d8b346eb279bcb61913440b558073ea1f1cc8c51adcf0efe90f690d2c5a"), "checksum pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)": String("3a8b4c6b8165cd1a1cd4b9b120978131389f64bdaf456435caa41e630edba903")}), "package": Array([Table({"name": String("cc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("1.0.6")}), Table({"dependencies": Array([String("cc 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("cmake"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.1.29")}), Table({"dependencies": Array([String("nanomsg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)"), String("nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("foo"), "version": String("0.1.0")}), Table({"name": String("gcc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.3.54")}), Table({"name": String("libc"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.2.39")}), Table({"dependencies": Array([String("libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)"), String("nanomsg-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("nanomsg"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.6.2")}), Table({"dependencies": Array([String("cmake 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)"), String("gcc 0.3.54 (registry+https://github.com/rust-lang/crates.io-index)"), String("libc 0.2.39 (registry+https://github.com/rust-lang/crates.io-index)"), String("pkg-config 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)")]), "name": String("nanomsg-sys"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.6.2")}), Table({"name": String("pkg-config"), "source": String("registry+https://github.com/rust-lang/crates.io-index"), "version": String("0.3.9")})])}
TRACE:racer::cargo: get_cargo_packages processing cc
TRACE:racer::cargo: get_versioned_cratefile searching for cc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing cmake
TRACE:racer::cargo: get_versioned_cratefile searching for cmake
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing foo
DEBUG:racer::cargo: get_cargo_packages skipping foo
TRACE:racer::cargo: get_cargo_packages processing gcc
TRACE:racer::cargo: get_versioned_cratefile searching for gcc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing libc
TRACE:racer::cargo: get_versioned_cratefile searching for libc
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing nanomsg
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing nanomsg-sys
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg-sys
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_cargo_packages processing pkg-config
TRACE:racer::cargo: get_versioned_cratefile searching for pkg-config
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.lock"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile got packages
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "cc", version: Some("1.0.6"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cc-1.0.6/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("alexcrichton/cc-rs")}), "travis-ci": Table({"repository": String("alexcrichton/cc-rs")})}), "dependencies": Table({"rayon": Table({"optional": Boolean(true), "version": String("1.0")})}), "dev-dependencies": Table({"tempdir": Table({"version": String("0.3")})}), "features": Table({"parallel": Array([String("rayon")])}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "categories": Array([String("development-tools")]), "description": String("A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n"), "documentation": String("https://docs.rs/cc"), "homepage": String("https://github.com/alexcrichton/cc-rs"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("cc"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/cc-rs"), "version": String("1.0.6")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: cc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "cmake", version: Some("0.1.29"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.29/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"dependencies": Table({"cc": Table({"version": String("1.0")})}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "description": String("A build dependency for running `cmake` to build a native library\n"), "documentation": String("http://alexcrichton.com/cmake-rs"), "homepage": String("https://github.com/alexcrichton/cmake-rs"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("cmake"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/cmake-rs"), "version": String("0.1.29")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: cmake
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "gcc", version: Some("0.3.54"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/gcc-0.3.54/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("alexcrichton/gcc-rs")}), "travis-ci": Table({"repository": String("alexcrichton/gcc-rs")})}), "dependencies": Table({"rayon": Table({"optional": Boolean(true), "version": String("0.8")})}), "dev-dependencies": Table({"tempdir": Table({"version": String("0.3")})}), "features": Table({"parallel": Array([String("rayon")])}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "categories": Array([String("development-tools")]), "description": String("A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n"), "documentation": String("https://docs.rs/gcc"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("gcc"), "readme": String("README.md"), "repository": String("https://github.com/alexcrichton/gcc-rs"), "version": String("0.3.54")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: gcc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "libc", version: Some("0.2.39"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.39/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"project_name": String("rust-lang-libs/libc"), "repository": String("rust-lang/libc")}), "travis-ci": Table({"repository": String("rust-lang/libc")})}), "features": Table({"default": Array([String("use_std")]), "use_std": Array([])}), "package": Table({"authors": Array([String("The Rust Project Developers")]), "description": String("A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n"), "documentation": String("http://doc.rust-lang.org/libc"), "homepage": String("https://github.com/rust-lang/libc"), "license": String("MIT/Apache-2.0"), "name": String("libc"), "readme": String("README.md"), "repository": String("https://github.com/rust-lang/libc"), "version": String("0.2.39")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: libc
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "nanomsg", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("blabaere/nanomsg.rs")}), "travis-ci": Table({"repository": String("blabaere/nanomsg.rs")})}), "dependencies": Table({"libc": String("0.2.18"), "nanomsg-sys": Table({"path": String("./nanomsg_sys"), "version": String("0.6.2")})}), "features": Table({"bundled": Array([String("nanomsg-sys/bundled")]), "no_anl": Array([String("nanomsg-sys/no_anl")])}), "project": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Jason E. Aten"), String("David C. Bishop"), String("Dennis Lawler"), String("Zachary Tong"), String("Dan Burkert"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "categories": Array([String("network-programming")]), "description": String("A high-level, Rust idiomatic wrapper around nanomsg."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("nanomsg"), String("binding"), String("network"), String("pub"), String("sub")]), "license": String("MIT"), "name": String("nanomsg"), "readme": String("./README.md"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: 
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "nanomsg-sys", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"build-dependencies": Table({"cmake": String("0.1.22"), "gcc": String("0.3"), "pkg-config": String("0.3")}), "dependencies": Table({"libc": String("0.2.18")}), "features": Table({"bundled": Array([]), "no_anl": Array([])}), "package": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "build": String("build.rs"), "description": String("The low-level bindings that is used by the nanomsg library."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("binding"), String("nanomsg")]), "license": String("MIT"), "links": String("nanomsg"), "name": String("nanomsg-sys"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: nanomsg_sys
TRACE:racer::cargo: find_src_via_lockfile examining PackageInfo { name: "pkg-config", version: Some("0.3.9"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs") }
TRACE:racer::cargo: find_src_via_lockfile package_source "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/src/lib.rs"
TRACE:racer::cargo: find_src_via_lockfile tomlfile "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/Cargo.toml"
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/pkg-config-0.3.9/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"dev-dependencies": Table({"lazy_static": String("0.2")}), "package": Table({"authors": Array([String("Alex Crichton <alex@alexcrichton.com>")]), "description": String("A library to run the pkg-config system tool at build time in order to be used in\nCargo build scripts.\n"), "documentation": String("https://docs.rs/pkg-config"), "keywords": Array([String("build-dependencies")]), "license": String("MIT/Apache-2.0"), "name": String("pkg-config"), "repository": String("https://github.com/alexcrichton/pkg-config-rs"), "version": String("0.3.9")})}
DEBUG:racer::cargo: find_src_via_lockfile package_name: pkg_config
TRACE:racer::cargo: find_src_via_lockfile returning None
TRACE:racer::cargo: find_src_via_tomlfile looking for nanomsg
TRACE:racer::cargo: parse_toml_file: "Cargo.toml"
DEBUG:racer::cargo: get_local_packages found table {"dependencies": Table({"nanomsg": String("0.6.2"), "nanomsg-sys": String("0.6.2")}), "package": Table({"authors": Array([String("Volodymyr Lisivka <vlisivka@gmail.com>")]), "name": String("foo"), "version": String("0.1.0")})};getting packages for section 'dependencies'
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.toml"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs"
TRACE:racer::cargo: get_versioned_cratefile searching for nanomsg-sys
DEBUG:racer::cargo: get_cargo_rootdir. "Cargo.toml"
DEBUG:racer::cargo: get_cargo_rootdir. CARGO_HOME is set: "/home/vlisivka/.cargo"
DEBUG:racer::cargo: get_versioned_cratefile: cargo rootdir is "/home/vlisivka/.cargo"
DEBUG:racer::cargo: crate path "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src"
DEBUG:racer::cargo: crate path with lib.rs "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs"
DEBUG:racer::cargo: get_local_packages found table {"dependencies": Table({"nanomsg": String("0.6.2"), "nanomsg-sys": String("0.6.2")}), "package": Table({"authors": Array([String("Volodymyr Lisivka <vlisivka@gmail.com>")]), "name": String("foo"), "version": String("0.1.0")})};getting packages for section 'dev-dependencies'
TRACE:racer::cargo: get_local_packages didn't find section dev-dependencies
DEBUG:racer::cargo: find_src_via_tomlfile found local packages: [PackageInfo { name: "nanomsg", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/src/lib.rs") }, PackageInfo { name: "nanomsg-sys", version: Some("0.6.2"), source: Some("/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/src/lib.rs") }]
DEBUG:racer::cargo: find_src_via_tomlfile found local packages dev: []
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"badges": Table({"appveyor": Table({"repository": String("blabaere/nanomsg.rs")}), "travis-ci": Table({"repository": String("blabaere/nanomsg.rs")})}), "dependencies": Table({"libc": String("0.2.18"), "nanomsg-sys": Table({"path": String("./nanomsg_sys"), "version": String("0.6.2")})}), "features": Table({"bundled": Array([String("nanomsg-sys/bundled")]), "no_anl": Array([String("nanomsg-sys/no_anl")])}), "project": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Jason E. Aten"), String("David C. Bishop"), String("Dennis Lawler"), String("Zachary Tong"), String("Dan Burkert"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "categories": Array([String("network-programming")]), "description": String("A high-level, Rust idiomatic wrapper around nanomsg."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("nanomsg"), String("binding"), String("network"), String("pub"), String("sub")]), "license": String("MIT"), "name": String("nanomsg"), "readme": String("./README.md"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_tomlfile package_name: 
TRACE:racer::cargo: parse_toml_file: "/home/vlisivka/.cargo/registry/src/github.com-1ecc6299db9ec823/nanomsg-sys-0.6.2/Cargo.toml"
DEBUG:racer::cargo: get_package_name found lock_table {"build-dependencies": Table({"cmake": String("0.1.22"), "gcc": String("0.3"), "pkg-config": String("0.3")}), "dependencies": Table({"libc": String("0.2.18")}), "features": Table({"bundled": Array([]), "no_anl": Array([])}), "package": Table({"authors": Array([String("Daniel Fagnan <dnfagnan@gmail.com>"), String("Benoît Labaere <benoit.labaere@gmail.com>"), String("Chip Collier")]), "build": String("build.rs"), "description": String("The low-level bindings that is used by the nanomsg library."), "documentation": String("https://github.com/thehydroimpulse/nanomsg.rs"), "homepage": String("https://github.com/thehydroimpulse/nanomsg.rs"), "keywords": Array([String("binding"), String("nanomsg")]), "license": String("MIT"), "links": String("nanomsg"), "name": String("nanomsg-sys"), "repository": String("https://github.com/thehydroimpulse/nanomsg.rs"), "version": String("0.6.2")})}
DEBUG:racer::cargo: find_src_via_tomlfile package_name: nanomsg_sys
TRACE:racer::nameres: Searching 1 delayed imports for `nanomsg`
DEBUG:racer::matchers: import use nanomsg::*; involved in a cycle; ignoring
TRACE:racer::nameres: Closure definition match is looking for `nanomsg` in 98 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
DEBUG:racer::nameres: search_crate_root |PathSegment { name: "nanomsg", types: [] }| "src/main.rs"
DEBUG:racer::nameres: search_prelude file PathSegment { name: "nanomsg", types: [] } ExactMatch Type
DEBUG:racer::nameres: searching scope Type start: 0 point: 0 'nanomsg' "/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/prelude/v1.rs" ExactMatch local: true, session: Session { .. }
TRACE:racer::nameres: Closure definition match is looking for `nanomsg` in 2324 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
DEBUG:racer::nameres: resolve_path returning []
TRACE:racer::nameres: Closure definition match is looking for `nanomsg` in 98 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
DEBUG:racer::nameres: search_crate_root |PathSegment { name: "nanomsg", types: [] }| "src/main.rs"
DEBUG:racer::nameres: search_prelude file PathSegment { name: "nanomsg", types: [] } ExactMatch Both
DEBUG:racer::nameres: searching scope Both start: 0 point: 0 'nanomsg' "/home/vlisivka/.rustup/toolchains/stable-i686-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/prelude/v1.rs" ExactMatch local: true, session: Session { .. }
TRACE:racer::nameres: Closure definition match is looking for `nanomsg` in 2324 characters
DEBUG:racer::nameres: search_scope found matches ExactMatch []
END
@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Mar 13, 2018

I could reproduce, but, now I have no idea why racer can't find this crate and it needs more debugging 😨
Sorry very much, and, thanks for reporting!

@Bravo555

This comment has been minimized.

Copy link

Bravo555 commented Mar 18, 2018

I also have this issue.

marcel@marcel:~/Documents/dev/learning/rust/snake-game$ rustup --version
rustup 1.11.0 (e751ff9f8 2018-02-13)
marcel@marcel:~/Documents/dev/learning/rust/snake-game$ cargo --version
cargo 0.25.0 (96d8071da 2018-02-26)
marcel@marcel:~/Documents/dev/learning/rust/snake-game$ rustc --version
rustc 1.24.1 (d3ae9a9e0 2018-02-27)
marcel@marcel:~/Documents/dev/learning/rust/snake-game$ echo $RUST_SRC_PATH
/home/marcel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src
marcel@marcel:~/Documents/dev/learning/rust/snake-game$ RUST_BACKTRACE=1 CARGO_HOME=~/.cargo RUST_LOG=debug racer complete piston::
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
DEBUG:racer::util: Nope. Trying rustc --sysroot and appending lib/rustlib/src/rust/src to that.
DEBUG:racer::nameres: do_file_search with search string "piston"
DEBUG:racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
DEBUG:racer::util: Nope. Trying rustc --sysroot and appending lib/rustlib/src/rust/src to that.
DEBUG:racer::nameres: do_file_search srcpath: "/home/marcel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src"
DEBUG:racer::nameres: do_file_search v: ["/home/marcel/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src", "."]

I'm working with VS Code and Rust (rls) addon.

@Bravo555

This comment has been minimized.

Copy link

Bravo555 commented Mar 18, 2018

Command line returns nothing, but strangely enough, some completions work directly in the IDE:
screenshot from 2018-03-18 12-12-36
screenshot from 2018-03-18 12-12-51
Any ideas why and how could I show racer debug log in VS Code?

@vlisivka

This comment has been minimized.

Copy link

vlisivka commented Mar 18, 2018

@Bravo555 Try to complete position in file, e.g. racer complete 2 13 src/main.rs

@Chad-

This comment has been minimized.

Copy link

Chad- commented Mar 21, 2018

I think I am running to this issue on Windows 10. I installed the rand crate while going through "the book", but I can't seem to get any completions for it.

C:\Users\Chad\projects\guessing_game>echo %RUST_SRC_PATH%
C:\Users\Chad\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib\rustlib\src\rust\src

C:\Users\Chad\projects\guessing_game>echo %CARGO_HOME%
C:\Users\Chad\.cargo

C:\Users\Chad\projects\guessing_game>echo %RUST_LOG%
debug

C:\Users\Chad\projects\guessing_game>racer complete rand::
DEBUG 2018-03-21T06:08:52Z: racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
DEBUG 2018-03-21T06:08:52Z: racer::nameres: do_file_search with search string "rand"
DEBUG 2018-03-21T06:08:52Z: racer::util: Getting rust source path. Trying env var RUST_SRC_PATH.
DEBUG 2018-03-21T06:08:52Z: racer::nameres: do_file_search srcpath: "C:\\Users\\Chad\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\src\\rust\\src"
DEBUG 2018-03-21T06:08:52Z: racer::nameres: do_file_search v: ["C:\\Users\\Chad\\.rustup\\toolchains\\stable-x86_64-pc-windows-msvc\\lib\\rustlib\\src\\rust\\src", "."]


C:\Users\Chad\projects\guessing_game>

Completion on something such as std:: does work properly. Please let me know if there is anything I could do to help debug this further.

@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Mar 29, 2018

For nanomsg crate this problem is fixed in my branch.

@sashaweiss

This comment has been minimized.

Copy link

sashaweiss commented Apr 12, 2018

I'm still having issues with this - should the merged PR reference above have fixed the issue, slash has that PR been released?

My configurations are as below:

>>> cargo --version
cargo 0.26.0 (41480f5cc 2018-02-26)
>>> racer --version
racer 2.0.13
>>> rustc --version
rustc 1.25.0 (84203cac6 2018-03-25)
>>> echo $RUST_SRC_PATH
/Users/sasha/.rustup/toolchains/stable-x86_64-apple-darwin/lib/rustlib/src/rust/src
>>> echo $CARGO_HOME
/Users/sasha/.cargo
>>> racer complete termion::
>>> racer complete std::io::
<lots of stuff, removed for clarity>

If there's anything I can do to help debug further, please let me know! (Or if I'm doing something wrong - relatively new Rust user here.)

@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Apr 15, 2018

@sashaweiss
To complete names in outer crate, you have to run racer in cargo project.
Though my patch for nightly version solves many problem, I think stable(released) version of racer can complete names from termion crate.

@sashaweiss

This comment has been minimized.

Copy link

sashaweiss commented Apr 17, 2018

Thanks for the reply - I played around a bit more, and I've found that it sometimes completes and sometimes doesn't, and I'm having trouble identifying a pattern. Once I have more details to share I can follow up! Thanks again.

@kngwyu

This comment has been minimized.

Copy link
Collaborator

kngwyu commented Jul 8, 2018

Closed via #855

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment