Reference
Language Support
Semfora Engine supports 31 languages with varying levels of semantic analysis capabilities.
31
Total Languages
10
Full Support
9
Symbol Extraction
12
Markup & Config
18
Call Graph
20
With Linters
| Language | Extensions | Category | Symbols | Call Graph | Complexity | Duplicates | Linters | Test Frameworks |
|---|---|---|---|---|---|---|---|---|
| TypeScript | .ts, .tsx | Full Support | ESLint, Biome, Prettier, TSC | Vitest, Jest | ||||
| JavaScript | .js, .jsx, .mjs, .cjs | Full Support | ESLint, Biome, Prettier | Vitest, Jest, Mocha | ||||
| Python | .py, .pyi | Full Support | Ruff, Black, Mypy | pytest | ||||
| Rust | .rs | Full Support | Clippy, Rustfmt | cargo test | ||||
| Go | .go | Full Support | golangci-lint, gofmt | go test | ||||
| Java | .java | Full Support | Checkstyle, PMD, SpotBugs | JUnit, TestNG | ||||
| Kotlin | .kt, .kts | Full Support | detekt, ktlint | JUnit, Kotest | ||||
| C# | .cs | Full Support | dotnet-format, Roslyn | xUnit, NUnit | ||||
| C | .c, .h | Full Support | clang-tidy, cppcheck | — | ||||
| C++ | .cpp, .cc, .cxx, .hpp, .hxx, .hh | Full Support | clang-tidy, cppcheck | Google Test, Catch2 | ||||
| Ruby | .rb | Symbol Extraction | — | RSpec, Minitest | ||||
| PHP | .php | Symbol Extraction | — | PHPUnit | ||||
| Swift | .swift | Symbol Extraction | — | XCTest | ||||
| Scala | .scala | Symbol Extraction | — | ScalaTest | ||||
| Elixir | .ex, .exs | Symbol Extraction | — | ExUnit | ||||
| Haskell | .hs | Symbol Extraction | — | — | ||||
| Lua | .lua | Symbol Extraction | — | — | ||||
| Bash/Shell | .sh, .bash, .zsh, .fish | Symbol Extraction | ShellCheck, shfmt | — | ||||
| PowerShell | .ps1 | Symbol Extraction | — | Pester | ||||
| Vue | .vue | Markup & Config | ESLint | Vitest, Vue Test Utils | ||||
| Svelte | .svelte | Markup & Config | ESLint | Vitest | ||||
| HTML | .html, .htm | Markup & Config | HTMLHint | — | ||||
| CSS | .css | Markup & Config | Stylelint | — | ||||
| SCSS/Sass | .scss, .sass | Markup & Config | Stylelint | — | ||||
| HCL/Terraform | .tf, .hcl, .tfvars | Markup & Config | tflint | — | ||||
| YAML | .yml, .yaml | Markup & Config | yamllint | — | ||||
| JSON | .json | Markup & Config | jsonlint | — | ||||
| TOML | .toml | Markup & Config | — | — | ||||
| XML | .xml, .xsd, .xsl, .svg, .plist, .pom | Markup & Config | — | — | ||||
| Markdown | .md, .markdown | Markup & Config | markdownlint | — | ||||
| Gradle | .gradle | Markup & Config | — | — |
Supported Linters (26 total)
Core Languages
- Rust: Clippy, Rustfmt
- JS/TS: ESLint, Biome, Prettier, TSC
- Python: Ruff, Black, Mypy
- Go: golangci-lint, gofmt
JVM Languages
- Java: Checkstyle, PMD, SpotBugs
- Kotlin: detekt, ktlint
Systems
- C/C++: clang-tidy, cppcheck
- C#: dotnet-format, Roslyn
Web & Config
- HTML: HTMLHint
- CSS: Stylelint
- Shell: ShellCheck, shfmt
- Terraform: tflint
Feature Levels
Full Support
Complete semantic analysis including symbol extraction, call graph generation, complexity metrics, and framework detection.
Symbol Extraction
Function, class, and variable detection. Call graph support may be limited. Complexity and duplicate detection available.
Markup & Config
Basic parsing for markup languages and configuration files. Symbol extraction where applicable, linting support for many formats.