Ragex. Analyzers. SCIP. Registry
(Ragex v0.15.0)
View Source
Maps project marker files to languages and their SCIP indexer tools.
Detects which languages are present in a project directory by looking
for marker files (e.g. go.mod -> Go, Cargo.toml -> Rust), and
knows which SCIP indexer binary to run for each language.
Supported Languages
| Language | Marker File(s) | Indexer Binary | Extensions |
|---|---|---|---|
| Go | go.mod | scip-go | .go |
| Rust | Cargo.toml | rust-analyzer | .rs |
| Java | pom.xml, build.gradle | scip-java | .java |
| Kotlin | build.gradle.kts | scip-java | .kt, .kts |
| Scala | build.sbt | scip-java | .scala |
| C/C++ | CMakeLists.txt | scip-clang | .c, .cpp, .h |
| C# | *.csproj, *.sln | scip-dotnet | .cs |
| Ruby | Gemfile | scip-ruby | .rb |
| Dart | pubspec.yaml | scip-dart | .dart |
| PHP | composer.json | scip-php | .php |
Languages already handled natively by Ragex (Elixir, Erlang, Python, JavaScript/TypeScript) are excluded -- Ragex's own analyzers or Metastatic provide deeper AST access for those.
Summary
Functions
Returns all known SCIP-supported language definitions.
Check which SCIP indexer binaries are available on the system.
Detect which SCIP-supported languages are present in a directory.
Returns language info for a given language name, or nil.
Check if the scip CLI is available.
Returns all file extensions handled by SCIP (not by native analyzers).
Types
Functions
@spec all_languages() :: [language_info()]
Returns all known SCIP-supported language definitions.
@spec check_indexers() :: %{ required(String.t()) => %{available: boolean(), path: String.t() | nil} }
Check which SCIP indexer binaries are available on the system.
Returns a map of %{language => %{available: bool, path: String.t() | nil}}.
@spec detect_languages(String.t()) :: [language_info()]
Detect which SCIP-supported languages are present in a directory.
Returns a list of language info maps for each detected language.
@spec get_language(String.t()) :: language_info() | nil
Returns language info for a given language name, or nil.
@spec scip_cli_available?() :: boolean()
Check if the scip CLI is available.
@spec scip_extensions() :: [String.t()]
Returns all file extensions handled by SCIP (not by native analyzers).