-
Notifications
You must be signed in to change notification settings - Fork 5
Add Elixir parser support (.ex, .exs) #139
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Problem
Ix does not currently parse .ex or .exs files. Elixir source and script files are treated as unrecognized and excluded from analysis, meaning application logic, process definitions, and configuration written in Elixir are invisible to the system.
Proposed solution
Add an Elixir parser that can identify and extract:
- Module definitions (e.g.
defmodule MyApp.User do) - Function definitions (
def,defp) - Macros (
defmacro,defmacrop) - Use, import, alias, and require statements
- Struct definitions (e.g.
defstruct) - Pattern matching and guard clauses
- GenServer, Supervisor, and OTP behaviour callbacks
- Mix configuration and script patterns in
.exsfiles
Support the following file patterns: *.ex, *.exs
Why it matters
Elixir is built on the Erlang VM and is widely used for fault-tolerant, distributed, and real-time systems (e.g. Phoenix web framework, LiveView). Without parsing Elixir, Ix cannot reason about OTP process trees, module dependencies, or how application logic is structured across a concurrent, distributed codebase.
Merge requirements
Before this can be merged to main, the following must pass:
- Tested on 3 repos
- No regressions on existing parsers (
ix mapon a known TS/JS repo, verify counts unchanged) - Unit + smoke tests pass (
npm testinix-cli) - Module definitions (
defmodule) ingested as entities - Public and private functions (
def,defp) ingested as entities - Macros (
defmacro,defmacrop) ingested as entities -
use,import,alias, andrequirestatements resolved -
defstructingested and fields visible - OTP callbacks (GenServer, Supervisor) ingested and linked to their module
- CONTAINS chains correctly: module → function/macro/struct
-
.exsfiles ingested (Mix config and scripts visible) -
ix textreturns results withlanguage: elixir -
ix containsreturns members for a known Elixir module
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request