Iris Code
FeaturesPlaygroundMCPTeamsPricingDocs
Get Iris Code Free
Sign inGet Iris Code Free
Language support

Apply one quality workflow across a mixed-language repository.

See exactly which checks Iris Code supports for TypeScript, JavaScript, Vue, Svelte, Go, Python, Ruby, C#, Java, and Rust. Coverage differs by language, and this page shows those differences instead of implying every analyser does the same work.
See coverageInstall Iris Code
CapabilityTS/JS/SFCGoPythonRubyC#JavaRust
File scoring
Complexity analysis
Function-level signal
Import analysis
Secrets detection
Type-safety checks
Code smells
Full Partial N/A
01

TypeScript & JavaScript

.ts.tsx.js.jsx.mjs.cjs

TypeScript & JavaScript

Full coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalFull
Import analysisFull
Secrets detectionFull
Type-safety checksTS only
Code smellsFull
src/api/users.ts
51
HEALTH SCORE
⚠ Warning
threshold: 70
Complexity
High
Duplication
3 blocks
Coupling
11 deps
Type safety
2 any
Secrets detected
API_KEY — OpenAI token patternline 4
DB_PASSWORD — credential patternline 11
02

Vue & Svelte components

.vue.svelte<script>lang="ts"

Vue & Svelte components

Script coverage

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 scoringFull
Complexity analysisFull
Function-level signalFull
Import analysisFull
Secrets detectionFull
Type-safety checksTS only
Code smellsFull
src/api/users.ts
51
HEALTH SCORE
⚠ Warning
threshold: 70
Complexity
High
Duplication
3 blocks
Coupling
11 deps
Type safety
2 any
Secrets detected
API_KEY — OpenAI token patternline 4
DB_PASSWORD — credential patternline 11
03

Go

.go

Go

Good coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalFull
Import analysisPartial
Secrets detectionFull
Code smellsFull
internal/handler/users.go
68
HEALTH SCORE
⚠ Below threshold
threshold: 70
Complexity
Medium
Fn size
2 large
Smells
3
Secrets
None
Top issues
◐ HandleRequest() complexity 18
◐ validatePayload() 84 lines
◐ parseUser() duplicated 2×
04

Python

.py

Python

Good coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalPartial
Import analysisPartial
Secrets detectionFull
Code smellsFull
scripts/data_pipeline.py
73
HEALTH SCORE
✓ Passing
threshold: 70
Complexity
Medium
Smells
4
Secrets
None
Score
73
Top issues
◐ transform_data() complexity 12
◐ Long parameter list in load()
◐ Dead code block lines 88-94
05

Ruby

.rb.erbGemfile

Ruby

Good coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalFull
Import analysisPartial
Secrets detectionFull
Rails-aware checksFull
Code smellsFull
app/controllers/orders_controller.rb
68
HEALTH SCORE
✗ Below threshold
threshold: 70
Complexity
Medium
Smells
3
Secrets
None
Score
68
Top issues
✗ params passed to Order without permit
◐ method_missing without respond_to_missing?
◐ Order defines 24 methods
06

C#

.cs.csproj.NET

C#

Good coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalFull
Project referencesPartial
Secrets detectionFull
.NET idiom checksFull
Code smellsFull
Controllers/OrdersController.cs
61
HEALTH SCORE
Below threshold
threshold: 70
Complexity
High
Async
void
LINQ
Long chain
Project
.csproj
Top issues
async void SaveOrder()
catch (Exception ex)
.csproj API token on line 4
07

Java

.java.properties

Java

Good coverage

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.

File scoringFull
Complexity analysisFull
Method-level signalFull
Unused import detectionFull
Secrets detectionFull
Java idiom checksFull
Code smellsFull
shop-api/src/main/java/OrderController.java
39
HEALTH SCORE
Below threshold
threshold: 70
Secrets
3
Catch-all
2
Imports
1 unused
Config
.properties
Top issues
dbPassword committed on line 19
catch (Exception e)
Runtime.getRuntime().exec on line 52
08

Rust

.rsCargo.lock

Rust

Good coverage

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.

File scoringFull
Complexity analysisFull
Function-level signalFull
Import analysisPartial
Secrets detectionFull
Test-aware panic checksFull
Code smellsFull
crates/shop-core/src/lib.rs
86
HEALTH SCORE
Above threshold
threshold: 70
unwrap
2
panic!
2
#[cfg(test)]
exempt
Lockfile
Cargo.lock
Top issues
raw.parse().unwrap() on line 12
panic! on line 23
test module unwraps not counted

Start with the code your team changes most

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.

Explore featuresBrowse the docs
Iris Code

Score every file. Stop the bad ones shipping.

Product
FeaturesPricingTeamsPlaygroundCompare
Surfaces
CLIMCP for agentsLanguagesDownloadVS Code MarketplaceOpen VSXJetBrains Marketplace
Learn
DocsGetting startedHealth scoreGit hooks.irisconfig.jsonCLI reference
Company
AboutBlogChangelogExtended trialsContactSupportX / Twitter
Legal
SecurityPrivacy PolicyTerms of ServiceJetBrains Plugin EULA
© 2026 Iris Code — built by David Jaja.v1.28.0