davidrjenni/scip-php

SCIP Code Intelligence Protocol (SCIP) indexer for PHP

v0.0.2 2023-04-23 18:03 UTC

README

CI Coverage OpenSSF Scorecard License: MIT Packagist Version PHP Version Docker Image Version Docker Image Size Contributors

SCIP Code Intelligence Protocol (SCIP) indexer for PHP

This repository is indexed using itself and available on Sourcegraph.

And here is a Sourcegraph notebook with a demo and additional explanations.

Requirements

  • scip-php must be run in the root directory of the project you want to index.
  • It needs the composer.json and composer.lock files in the current working directory.
  • Also, scip-php needs an up-to-date autoloader and the dependencies must be installed in the vendor directory.

Usage

Manual

Install scip-php with composer and the src binary. Then generate the SCIP index and upload it:

composer require --dev davidrjenni/scip-php
vendor/bin/scip-php
src code-intel upload

Private Sourcegraph Instance

To use a private Sourcegraph instance, set the SRC_ENDPOINT and SRC_ACCESS_TOKEN environment variables first.

Contributing

See the contributing guidelines.

Development

  • Run composer lint to run all linters.
  • Run composer test to run the unit tests.
  • Run composer cover to generate a coverage report.

Inspecting the Output

  • Install the scip cli from github.com/sourcegraph/scip.
  • Run bin/scip-php to generate the SCIP index.
  • Run scip snapshot to generate snapshot files which can be used for inspecting the output of the index.
  • See the documentation for further functionality.

Bindings

The directory src/Bindings contains auto-generated bindings for SCIP. To update the bindings, download the protobuf schema for SCIP and regenerate the bindings:

wget -O src/Bindings/scip.proto https://raw.githubusercontent.com/sourcegraph/scip/main/scip.proto
composer gen-bindings

The protobuf compiler protoc must be present to generate the bindings.

See github.com/sourcegraph/scip for further information.