Skip to content

Language Server Indexing Format (LSIF) generator for PHP

License

Notifications You must be signed in to change notification settings

davidrjenni/lsif-php

Repository files navigation

lsif-php Open in Gitpod

CI Coverage License: MIT Packagist Version PHP Version Docker Image Version Docker Image Size

Language Server Indexing Format (LSIF) generator for PHP


This repository is indexed using itself and available on Sourcegraph.

Requirements

lsif-php needs the composer.json and composer.lock file of the project to index present in the current directory. It uses the autoload and autoload-dev properties to determine which directories to scan.

Usage

To use a self-hosted Sourcegraph instance, set the SRC_ENDPOINT and SRC_ACCESS_TOKEN environment variables.

GitHub Actions

Add the following job to your workflow:

on:
  - push

jobs:
  lsif-php:
    runs-on: ubuntu-latest
    container: davidrjenni/lsif-php:main
    steps:
      - uses: actions/checkout@v3
      - name: Generate LSIF data
        run: lsif-php
      - name: Apply container owner mismatch workaround
        run: |
          # FIXME: see https://github.com/actions/checkout/issues/760
          git config --global --add safe.directory ${GITHUB_WORKSPACE}
      - name: Upload LSIF data
        run: src code-intel upload -github-token=${{ secrets.GITHUB_TOKEN }}

Add the following job to your pipeline:

code_navigation:
  image: davidrjenni/lsif-php:main
  artifacts:
    reports:
      lsif: dump.lsif
  script:
    - lsif-php
    - src code-intel upload

Manual

Install lsif-php with composer and the src binary. Then generate the LSIF data and upload it:

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