I can’t speak for the Go bindings, but using the Rust crate has been pretty clean. Haven’t really felt the need to dip into deserializing raw .scip file in the time that I’ve been working with SCIP.
I have been using https://github.com/jacktasia/dumb-jump to quickly jump to definitions. LSP is hit or miss; in some languages, it works great, while in others, the implementation is not so good. I have been thinking about a middle ground based on Tree-sitter. GitHub uses Tree-sitter to power code navigation, but unfortunately, I can't find anything good that I can use offline. Why is there no ctags equivalent powered by Tree-sitter?
Something something powers go to definition… is this an implementation of an LSP server? Or a subset of what’s needed to implement LSP? A formerly proprietary alternative to LSP?
23 comments
Looks like it's defined using protocol buffers, with "rich Go and Rust bindings" and links to implementations for many other languages.