01 · Languages
Detected source languages
Enola detects extractors from project markers and source extensions. A polyglot repository runs every matching extractor and produces one graph.
| Category | Languages and formats |
|---|---|
| Systems | Go, Rust, C, C++ |
| JVM | Java, Kotlin, Scala |
| .NET | C#, F#, VB.NET, Razor/Blazor, XAML |
| Web | TypeScript/JavaScript, Angular, Vue/Nuxt, Svelte/SvelteKit, Ember |
| Mobile | Swift, Dart/Flutter |
| Scripting | Python, Ruby, PHP |
| Infrastructure | Terraform/HCL, Ansible |
| Interface formats | OpenAPI, AsyncAPI, Protocol Buffers/gRPC, GraphQL |
02 · Capabilities
Check capabilities separately
| Capability | What to verify |
|---|---|
| Declarations | Modules, classes, functions, methods, and constants appear as facts. |
| Dependencies | Imports and package dependencies resolve to their targets. |
| Calls | Call sites resolve where static information is sufficient. |
| Frameworks | Routes, dependency injection, jobs, events, or storage are recognized. |
| Cross-repository | Interface and call edges link across loaded repositories. |
03 · Verify
Inspect the repository result
enola --generate enola --explain .
Read the snapshot receipt for active extractors and fact counts. For a graph containing two or more repositories, run enola coverage cluster.yaml to see resolved and unresolved cross-repository calls. These results are more precise than the general language list.
04 · Limits
Account for static-analysis limits
Dynamic imports, runtime registration, metaprogramming, generated code, and unsupported framework behavior can leave relationships unresolved. Enola reports only facts available to the snapshot and does not execute the application.
05 · Missing support
Report a coverage gap
Include the language or framework version, a minimal source example, the expected fact or relation, and the relevant receipt or coverage output in a GitHub issue. Remove proprietary source before posting.