scip: Haskell bindings for the SCIP code intelligence protocol

[ apache, language, library ] [ Propose Tags ] [ Report a vulnerability ]

SCIP (pronounced "skip") is a language-agnostic protocol for indexing source code, used to power code navigation functionality such as go-to-definition, find-references, and find-implementations. . This package provides Haskell bindings generated from the SCIP protobuf schema via proto-lens.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.8.0, 0.8.1, 0.9.0
Dependencies base (>=4.17 && <5), proto-lens-runtime (>=0.7.0.0 && <0.8) [details]
Tested with ghc ==9.4.8 || ==9.6.7 || ==9.8.4 || ==9.10.3
License Apache-2.0
Author SCIP Maintainers
Maintainer code-intel@sourcegraph.com
Uploaded by jupblb at 2026-06-29T17:19:13Z
Category Language
Home page https://github.com/scip-code/scip
Bug tracker https://github.com/scip-code/scip/issues
Source repo head: git clone https://github.com/scip-code/scip.git(bindings/haskell)
Distributions
Downloads 20 total (15 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2026-06-29 [all 1 reports]

Readme for scip-0.9.0

[back to package description]

scip --- Haskell bindings for SCIP

SCIP (pronounced "skip") is a language-agnostic protocol for indexing source code. This package exposes Haskell types and lenses generated from scip.proto via proto-lens.

Usage

import Data.ProtoLens (decodeMessage)
import qualified Data.ByteString as BS
import qualified Proto.Scip as Scip
import           Proto.Scip_Fields (documents, occurrences, symbol)
import           Lens.Family2 ((^.))

main :: IO ()
main = do
  bytes <- BS.readFile "index.scip"
  case decodeMessage bytes :: Either String Scip.Index of
    Left  err -> putStrLn $ "parse error: " ++ err
    Right idx -> mapM_ print
      [ occ ^. symbol
      | doc <- idx ^. documents
      , occ <- doc ^. occurrences
      ]