Daniel Kinzler wrote:
Am 11.02.22 um 09:15 schrieb Kunal Mehta:
Seems like what you're asking for is https://docs.gitlab.com/ee/user/project/code_intelligence.html, right?
AFAICT that functionality is available in self-hosted GitLab, it just requires someone writing a LSIF implementation for PHP, as it's not already listed on https://lsif.dev/#implementations-server.
Oh nice! I did a few minutes of digging on LSIF and sourcegraph, and it does sound quite good! Sourcegraph provides a search backend backend, navigation frontend, integration API and plugins for GitLab as well as Phabricato and even browser extensions. We could integrate it with codesearch as well, via its API. And LSIF is an open format for representing the kind if info we need.
Peter, what do you think of targeting LSIF instead of MongoDB?
Not sure. I need to research. My main concern is that LSIF is an index-based graph. So it needs some stuff on top of it to turn it into something usable for humans. Sourcegraph is
I mean, just as an experiment. We still need to look closely whether LSIF really covers our needs. https://code.visualstudio.com/blogs/2019/02/19/lsif says that: /Same as LSP, LSIF doesn't contain any program symbol information nor does the LSIF define any symbol semantics (for example, what makes the definition of a symbol or whether a method overrides another method). The LSIF therefore doesn't define a symbol database, which is consistent with the LSP approach./
That's actually quite a bummer. The most critical kind of search after "where is
this called" is "what overrides this method"... Do I understand correctly that LSIF doesn't do that?
Seems like it does with limitations.
PS: Sourcegraph's licensing model is a bit confusing though, seems like it's Apache for the core, and "open but not free" for some extra bits.
Generally speaking, seems like LSIF can work. I'll research and get back next week.