Skip to content

Commit 132e429

Browse files
authored
Merge pull request #30 from JeffreyVdb/feat/elixir-language-support
feat: add Elixir language support (.ex, .exs)
2 parents 6dcec20 + ee99818 commit 132e429

9 files changed

Lines changed: 596 additions & 1 deletion

File tree

LANGUAGE_SUPPORT.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
| C# | `.cs` | tree-sitter-csharp | class (class/record), method (method/constructor), type (interface/enum/struct/delegate) | `[Attribute]` | `/// <summary>` XML doc comments | Properties and `const` fields not indexed |
1616
| C | `.c` | tree-sitter-c | function, type (struct/enum/union), constant || `/* */` and `//` comments | `#define` macros extracted as constants; no class/method hierarchy |
1717
| C++ | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hh`, `.hxx`, `.h`* | tree-sitter-cpp | function, class, method, type (struct/enum/union/alias), constant || `/* */` and `//` comments | Namespace symbols are used for qualification but not emitted as standalone symbols |
18+
| Elixir | `.ex`, `.exs` | tree-sitter-elixir | class (defmodule/defimpl), type (defprotocol/@type/@callback), method (def/defp/defmacro/defguard inside module), function (top-level def) || `@doc`/`@moduledoc` strings | Homoiconic grammar; custom walker required. `defstruct`, `use`, `import`, `alias` not indexed |
1819

1920
\* `.h` uses C++ parsing first, then falls back to C when no C++ symbols are extracted.
2021

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ Every tool response includes a `_meta` envelope with timing, token savings, and
297297
| C# | `.cs` | class, method, type, record |
298298
| C | `.c` | function, type, constant |
299299
| C++ | `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hh`, `.hxx`, `.h`* | function, class, method, type, constant |
300+
| Elixir | `.ex`, `.exs` | class (module/impl), type (protocol/@type/@callback), method, function |
300301

301302
\* `.h` is parsed as C++ first, then falls back to C when no C++ symbols are extracted.
302303

pyproject.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,10 @@ exclude = [".claude/"]
3333
[tool.pytest.ini_options]
3434
testpaths = ["tests"]
3535
asyncio_mode = "auto"
36+
37+
[dependency-groups]
38+
dev = [
39+
"pytest>=9.0.2",
40+
"pytest-asyncio>=1.3.0",
41+
"pytest-cov>=7.0.0",
42+
]

0 commit comments

Comments
 (0)