SCIP Code Intelligence Protocol
SCIP (pronounciation: "skip") is a language-agnostic protocol
for indexing source code,
which can be used to power code navigation functionality
such as Go to Definition, Find References, and Find Implementations.
This repository includes:
- A protobuf schema for SCIP.
- Rich Go bindings for SCIP: This includes many utility functions
to help build tooling on top of SCIP.
- Auto-generated bindings for TypeScript, Rust and Haskell.
- The
scip
CLI makes SCIP indexes
a breeze to work with.
SCIP CLI reference
Usage:
scip convert [--from=<path>] [--to=<path>]
scip stats [--from=<path>]
scip snapshot [--from=<path>] [--output=<path>]
scip --version
scip -h | --help
Options:
--from=<path> Input file for conversion [default: index.scip].
--to=<path> Output file for conversion [default: dump.lsif].
--output=<path> Output directory [default: scip-snapshot].
--version Show version.
-h --help Show help text.
A single dash path ('-') for --from (--to) is interpreted as stdin (stdout).
The 'convert' subcommand currently only supports conversion from SCIP to LSIF.
Contributing
We welcome questions, suggestions as well as code and docs contributions.
For submitting contributions, check out Development.md
to better understand project structure and common workflows.
Contributors should abide by the Sourcegraph Code of Conduct.