зеркало из https://github.com/microsoft/lsif-node.git
af612ddd52 | ||
---|---|---|
.. | ||
.vscode | ||
bin | ||
example | ||
image | ||
src | ||
.eslintrc.json | ||
LICENSE | ||
README.md | ||
package-lock.json | ||
package.json | ||
tsconfig.json | ||
tsconfig.publish.json | ||
tsconfig.watch.json |
README.md
lsif-util
Scripts to help LSIF developers.
Installation
npm install -g lsif-util
Usage
lsif-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 --stdin
Validation
Returns 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)
Visualization
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.png
Filters
Filters 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 3
Visualizing ranges that have "foo" somewhere in them:
lsif-util visualize .\example\line.json --label range --regex foo