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]

Modules

  • Proto
    • Proto.Scip
    • Proto.Scip_Fields

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.8.0
Dependencies base (>=4.20 && <5), proto-lens-runtime (>=0.7.0.0 && <0.8) [details]
Tested with ghc ==9.10.3
License Apache-2.0
Author SCIP Maintainers
Maintainer code-intel@sourcegraph.com
Uploaded by jupblb at 2026-06-02T11:19:34Z
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 0 total (0 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2026-06-02 [all 1 reports]

Readme for scip-0.8.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
      ]