Ragex. Analyzers. SCIP. Indexer
(Ragex v0.18.4)
View Source
Orchestrates external SCIP indexer binaries.
Runs the appropriate SCIP indexer (e.g. scip-go, rust-analyzer,
scip-java) in the project directory, producing an index.scip file.
Then converts it to JSON via scip print --json for parsing.
All external processes run with configurable timeouts and are killed if they exceed the limit.
Flow
- Detect language from project marker files
- Check that the indexer binary is available
- Run the indexer -> produces
index.scip - Run
scip print --json index.scip-> JSON output - Return JSON string for the Parser to consume
Configuration
config :ragex, :scip,
indexer_timeout: 300_000, # 5 minutes default
index_file: "index.scip" # default output filename
Summary
Functions
Convert an existing SCIP index file to JSON using the scip CLI.
Check if a SCIP index file already exists for a project.
Run a SCIP indexer for the given language in the project directory.
Auto-detect languages and index all of them.
Functions
Convert an existing SCIP index file to JSON using the scip CLI.
Useful when the index was generated externally (e.g. by CI).
Check if a SCIP index file already exists for a project.
Returns the path if found, nil otherwise.
Run a SCIP indexer for the given language in the project directory.
Returns {:ok, json_string} with the JSON representation of the
SCIP index, or {:error, reason}.
Options
:timeout-- max time for the indexer to run (default 5 min):index_file-- output filename (default "index.scip")
Auto-detect languages and index all of them.
Returns {:ok, results} where results is a map of
%{language => {:ok, json} | {:error, reason}}.