The deepest analysis Iris Code offers. Full file scoring, complexity analysis, function-level signals, import analysis, secrets detection, and type-safety-aware checks that are specific to TypeScript.
Iris analyses Vue script and script-setup blocks plus Svelte instance and module scripts with the same JavaScript/TypeScript rules. Findings keep their real component line numbers; template markup and styles are deliberately excluded from scoring and duplicate matching.
File scoring, complexity, function size, code smells, and secrets coverage for backend and service code. Import analysis is partial. Type-safety checks are not applicable to Go.
Complexity, code smells, and secrets scanning for scripts and services so mixed-language repos still get one local-first score workflow. Function-level and import analysis are partial.
Methods, complexity, code smells, and secrets across Ruby and Rails, including the extensionless files Ruby projects rely on and .erb templates, where findings report the line in the template itself. Adds three Ruby-specific checks: method_missing without respond_to_missing?, god classes, and Rails parameters reaching a model without permit. Unused-code detection does not apply, because Ruby resolves constants at runtime.
C# source and .NET project files get local health scoring, method and complexity signals, secrets detection, and C#-specific checks for large classes, catch-all exception handling, async void methods, and hard-to-read LINQ chains. Project files are scanned for secrets and package references; .NET dependency CVE analysis is separate from this analyzer.
Java source gets local health scoring, method and complexity signals, secrets detection, and Java-specific checks for catch-all exception handling and process execution. Unused imports are reported and the check reads Javadoc, so an import referenced only from a {@link} is left alone. A .properties file is treated as configuration rather than code: it is scanned for committed credentials and nothing else. Maven and Gradle dependency analysis is separate from this analyzer.
Rust source gets local health scoring, function and complexity signals, secrets detection, and Rust-specific checks for unwrap, expect, and explicit panics. Those are exempt inside #[cfg(test)] modules, because Rust puts tests in the file under test and a whole-file exemption would spare the production half too. Imports are counted but never judged unused: a trait is imported so its methods become callable and its name is then never written again. Cargo dependency analysis reads Cargo.lock for the full resolved tree.
Start with the files people touch most, commit one shared configuration, and only then turn on enforcement. That rollout pattern matters more than chasing perfect language parity on day one.