Categorygithub.com/sourcegraph/lsif-test
module
0.0.0-20210303211826-713a7df16097
Repository: https://github.com/sourcegraph/lsif-test.git
Documentation: pkg.go.dev

# README

⚠️ This project has been merged into github.com/sourcegraph/sourcegraph ⚠️

LSIF development and testing utilities

Install

Assumes a working Go installation:

# lsif-validate
go get github.com/sourcegraph/lsif-test/cmd/lsif-validate

# lsif-visualize
go get github.com/sourcegraph/lsif-test/cmd/lsif-visualize

Resulting binary should then be in your $GOPATH/bin (conventionally $HOME/go/bin), so make sure thats in your $PATH or else invoke using absolute/relative location.

Binary releases coming soon™️

lsif-validate

This command validates the output of an LSIF indexer. The following properties are validated:

  • Element IDs are unique

  • All references of element occur after its definition

  • A single metadata vertex exists and is the firsts element in the dump

  • The project root is a valid URL

  • Each document URI is a URL relative to the project root

  • Each range vertex has sane bounds (non-negative line/character values and the ending position occurs strictly after the starting position)

  • 1-to-n edges have a non-empty inVs array

  • Edges refer to identifiers attached to the correct element type, as follows:

    labelinV(s)outVcondition
    containsrangeif outV is a document
    itemrange
    itemreferenceResultif outV is a referenceResult
    nextresultSetrange/resultSet
    textDocument/definitiondefinitionResultrange/resultSet
    textDocument/referencesreferenceResultrange/resultSet
    textDocument/hoverhoverResultrange/resultSet
    monikermonikerrange/resultSet
    nextMonikermonikermoniker
    packageInformationpackageInformationmoniker
  • Each vertex is reachable from a range or document vertex (ignored: metadata, project, document, and event vertices)

  • Each range belongs to a unique document

  • No two ranges belonging to the same document improperly overlap

  • The inVs of each item edge belong to that document referred to by the edge's document field

# Packages

No description provided by the author