sourcegraph/lsif
renovate[bot] 2cb4a69d6d
Update dependency sinon to ^8.1.1 (#8216)
Co-authored-by: WhiteSource Renovate <renovatebot@gmail.com>
2020-02-01 17:35:54 +01:00
..
docs LSIF: Document that we use RFC3339 over ISO8601. (#7944) 2020-01-22 15:03:16 -06:00
src Clean old lsif redis-store data on startup (take 2). (#8155) 2020-01-31 08:51:24 -06:00
.dockerignore LSIF: Disable integration tests when in root (#6519) 2019-11-08 16:15:16 -06:00
.eslintrc.js Update dependency @sourcegraph/eslint-config to ^0.4.0 (#6445) 2019-11-05 22:40:54 +01:00
babel.config.js SQLite backend (#5332) 2019-09-13 14:42:49 -05:00
jest.config.js LSIF: Increase timeout for db integration tests. (#7223) 2019-12-16 18:41:45 -06:00
jest.setup.js LSIF: Increase timeout for db integration tests. (#7223) 2019-12-16 18:41:45 -06:00
package.json Update dependency sinon to ^8.1.1 (#8216) 2020-02-01 17:35:54 +01:00
README.md LSIF: Fix minor tech doc mistakes. (#7727) 2020-01-14 17:15:24 -06:00
tsconfig.json Update dependency @sourcegraph/eslint-config to ^0.5.0 (#6860) 2019-11-26 23:55:11 +01:00
tslint.json SQLite backend (#5332) 2019-09-13 14:42:49 -05:00
yarn.lock Update dependency sinon to ^8.1.1 (#8216) 2020-02-01 17:35:54 +01:00

LSIF code intelligence

This project is an early adopter of Microsoft's LSIF standard. LSIF (Language Server Index Format) is a format used to store the results of language server queries that are computed ahead-of-time. We uses this format to provide jump-to-definition, find-reference, and hover docstring functionality.

LSIF dumps are generated by running an LSIF indexer in a build or continuous integration environment. The dump is uploaded to a Sourcegraph instance via Sourcegraph CLI. An LSIF server, proxied by the frontend for auth, answers relevant LSP queries to provide fast and precise code intelligence.

Architecture

This project is split into two parts, both written in TypeScript. These parts are deployable independently, but for now they run in the same docker container. The HTTP server receives LSIF uploads and answers LSP queries by looking at relevant SQLite databases on-disk. The worker dequeues unconverted LSIF uploads from Postgres and converts them into SQLite databases that can be queried by the server.

Entrypoint

The dockerfile in this directory builds the application so that the output is self-contained. The docker image which is run in a production environment is produced later by either ./cmd/lsif-server or by ./cmd/server with the rest of the instance.

Documentation