Scripts to help LSIF developers.
npm install -g lsif-utillsif-util [validate|visualize] [file] --inputFormat [line|json] [--stdin] [filters]| Option | Description | Default |
|---|---|---|
| --inputFormat | Specify input format (choices: "line", "json") | line |
| --stdin | Read from standard input | false |
You can use the --stdin flag to pipe LSIF output:
lsif-tsc -p .\tsconfig.json --stdout | lsif-util validate --stdinReturns whether the LSIF input file is syntatically valid or not.
Verifies the following:
- Vertex properties are correct
- Edge properties are correct
- Vertices are emitted before connecting edges
- Vertices are used in at least one edge (except metadata)
| Option | Default | Description |
|---|---|---|
| --distance | 1 | Max distance between any vertex and the filtered input |
Outputs a DOT graph.
You can either visualize it online using Viz.js or install Graphviz and pipe it to the DOT tool:
lsif-util visualize .\example\line.json --distance 2 | dot -Tpng -o image.pngFilters can help you narrow down what you want to validate/visualize. You can filter by some of the most common properties in LSIF. Different values should be separated by space. The "regex" filter is a special case that only accepts one value.
| Property | Node | Example |
|---|---|---|
| --id | Vertex/Edge | 1 2 3 |
| --inV | Edge | 1 2 3 |
| --outV | Edge | 1 2 3 |
| --type | Vertex/Edge | vertex edge |
| --label | Vertex/Edge | project range item |
| --property | Edge | references definitions |
| --regex | Vertex/Edge | foo |
Validating outgoing edges from vertices 1, 2 or 3:
lsif-util validate .\example\line.json --outV 1 2 3Visualizing ranges that have "foo" somewhere in them:
lsif-util visualize .\example\line.json --label range --regex foo