Skip to content

LSIF Typed: add command-line tool to emit Graph

Administrator requested to merge olafurpg/lsif-typed-cli into main

Created by: olafurpg

This PR implements two separate, but complementary, components:

  • LSIF Testing DSL: this DSL makes it possible to write minimized test examples that stress all features of LSIF, including features like cross-repo implementations. Until now, we have usually written tests against lsif-go/lsif-java/lsif-node but that approach is problematic because those language may not use all LSIF features. Also, even the smallest Go/Java/JS program may generate a modestly large LSIF dump to stress a corner case. With this new testing DSL, we can write minimal code examples that stress precisely a specific behavior of LSIF.
  • LSIF Typed to Graph command-line tool: this command-line tool takes as input the path to an LSIF Typed payload and prints to stdout the converted LSIF graph output, which can be piped into a dump.lsif file and uploaded to Sourcegraph via src lsif upload.

A good portion of the diff includes auto-generated files for the testing DSL (tree-sitter parser) and the generated snapshot tests. The tree-sitter generated files should be collapsed by default in the diff since the PR includes .gitattributes files that mark those files as generated (thank you @varungandhi-src for the suggestion 🙏 )

Fixes https://github.com/sourcegraph/sourcegraph/issues/30894

Fixes https://github.com/sourcegraph/sourcegraph/issues/31173

Merge request reports

Loading