feat(parser): add Elixir language support

- [x] Add Elixir documentation extraction (@doc and @moduledoc attributes)
- [x] Add Elixir symbol extraction (modules, functions, macros, structs, protocols)
- [x] Add tree-sitter Elixir language parser integration
- [x] Add Elixir language detection for .ex and .exs file extensions
- [x] Add Elixir symbol extraction tests
- [x] Update language support table in README
- [x] Improve install script with package manager detection and LSP installation
- [x] Fix shell script portability (replace echo -e with printf)
- [x] Fix checksum verification in install script for macOS/Linux compatibility
This commit is contained in:
2026-01-23 20:31:08 +00:00
parent ac1b81b70e
commit b8d868115c
9 changed files with 672 additions and 8 deletions
+3
View File
@@ -60,6 +60,7 @@ const (
LangVue Language = "vue"
LangJSON Language = "json"
LangYAML Language = "yaml"
LangElixir Language = "elixir"
LangUnknown Language = "unknown"
)
@@ -87,6 +88,8 @@ func DetectLanguage(filename string) Language {
return LangJSON
case ".yaml", ".yml":
return LangYAML
case ".ex", ".exs":
return LangElixir
default:
return LangUnknown
}
+4
View File
@@ -29,10 +29,14 @@ func TestDetectLanguage(t *testing.T) {
{"index.html", LangHTML},
{"page.htm", LangHTML},
{"Component.vue", LangVue},
{"app.ex", LangElixir},
{"app_test.exs", LangElixir},
{"mix.exs", LangElixir},
{"unknown.txt", LangUnknown},
{"README", LangUnknown},
{"path/to/file.go", LangGo},
{"path/to/file.ts", LangTypeScript},
{"path/to/file.ex", LangElixir},
}
for _, tt := range tests {