GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - scip-code/scip: SCIP Code Intelligence Protocol

BranchesTags
Open more actions menu

Latest commit

 

History

348 Commits
348 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
bindings
bindings
 
 
cmd/scip
cmd/scip
 
 
docs
docs
 
 
reprolang
reprolang
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.prettierignore
.prettierignore
 
 
.prettierrc
.prettierrc
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
buf.gen.yaml
buf.gen.yaml
 
 
buf.yaml
buf.yaml
 
 
checks.nix
checks.nix
 
 
flake.lock
flake.lock
 
 
flake.nix
flake.nix
 
 
go.mod
go.mod
 
 
go.sum
go.sum
 
 
go.work
go.work
 
 
go.work.sum
go.work.sum
 
 
scip.proto
scip.proto
 
 

Repository files navigation

SCIP Code Intelligence Protocol

SCIP (pronunciation: "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 and Rust bindings for SCIP: These include many utility functions to help build tooling on top of SCIP.
  • Auto-generated bindings for TypeScript and Haskell.
  • The scip CLI, which makes SCIP indexes a breeze to work with.

If you're interested in better understanding the motivation behind SCIP, check out the announcement blog post and the design doc.

If you're interested in writing a new indexer that emits SCIP, check out our documentation on how to write an indexer. Also, check out the Debugging section in the Development docs.

If you're interested in consuming SCIP data, you can either use one of the provided language bindings, or generate code for the SCIP Protobuf schema using the Protobuf toolchain for your language ecosystem. Also, check out the Debugging section in the Development docs.

Tools using SCIP

Several indexers currently emit SCIP data:

  • scip-java: Java, Scala, Kotlin
  • scip-typescript: TypeScript, JavaScript
  • rust-analyzer: Rust
  • scip-clang: C++, C
  • scip-ruby: Ruby
  • scip-python: Python
  • scip-dotnet: C#, Visual Basic
  • scip-dart: Dart
  • scip-php: PHP
  • debian-lsp: Debian packaging files

For more details about indexers, see the Sourcegraph documentation.

Other tools which use SCIP include the Sourcegraph CLI, and the SCIP CLI in this repo.

Installing the scip CLI

You can find binaries for the scip CLI tool here. You can also compile a binary locally using:

git clone https://github.com/scip-code/scip.git --depth=1
cd scip
go build ./cmd/scip

You can consult the CLI reference or --help for usage information.

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 Code of Conduct.

About

SCIP Code Intelligence Protocol

scip-code.org

Resources

Readme
Apache-2.0 license
Activity
Custom properties

Stars

882 stars

Watchers

17 watching

Forks

82 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.