I'm trying to augment a code browser with clickable links, similar to how Codesearch works (for a c++ library, if that's important).
Naively, I can see two ways I could use Kythe to help me add links to the file I'm currently viewing:
1. Create the graph, then query for the graph node corresponding to the file I'm looking at. I can then find all child nodes of the file node, and start introspecting on each of those. The included http_server can't do this out of the box, correct? Once you have the child nodes you can run CrossReference rpcs, but it doesn't look like the existing APIs are meant to retrieve a file node and its children.
2. Use a separate system to parse the file, then extract symbols from the AST and run xref requests (like in the example http_server) against those symbols (after somehow figuring out the correct ticket for each symbol).
I came in thinking that #1 must be the way to go, but I've been having difficulty understanding how file nodes fit into the graph. When I run the entrystream tool, I see entries for files that lack a signature:
{ "source":{"corpus":"mycorpus", "path":"main.cpp"}, "fact_name":"/kythe/node/kind", "fact_value":"ZmlsZQ=="}
This confuses me. How can I refer to files in the graph edges if they don't have a signature?