Configure the Effect Language Service by adding options to theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Effect-TS/tsgo/llms.txt
Use this file to discover all available pages before exploring further.
@effect/language-service plugin entry in your tsconfig.json. All options are optional and fall back to their documented defaults.
Full configuration example
tsconfig.json
Diagnostic control
Maps rule names to severity levels, overriding each rule’s built-in default. Set to
{} to enable all diagnostics at their defaults. Valid severity values are "error", "warning", "suggestion", "message", and "off".When
false, suggestion-level Effect diagnostics are omitted from tsc CLI output. LSP and other editor flows are not affected.When
true, Effect suggestion and message-category diagnostics do not affect the tsc process exit code. The diagnostics are still reported; they just won’t cause a non-zero exit.When
true, Effect warning-category diagnostics do not affect the tsc process exit code.When
true, Effect error-category diagnostics do not affect the tsc process exit code.When
true, diagnostics that are globally disabled are still processed so that per-line or per-section @effect-diagnostics directive comments can re-enable them locally. Enabling this option has a performance cost proportional to the number of disabled rules.Key detection
Configures the key pattern formulas used by the
Default:
deterministicKeys diagnostic. Each entry is an object with the following fields:| Field | Type | Description |
|---|---|---|
target | "service" | "custom" | Whether the pattern applies to service identifiers or custom identifiers. |
pattern | string | The formula for deriving the key string. Use "default" for the built-in derivation. |
skipLeadingPath | string[] | Path prefixes to strip when computing the key (e.g. ["src/"]). |
When
true, the deterministicKeys rule also matches constructors annotated with @effect-identifier JSDoc tags, in addition to the standard structural detection.Pipeable style
Minimum number of contiguous pipeable transformation calls required to trigger the
missedPipeableOpportunity diagnostic. Increase this value to reduce noise in codebases that prefer explicit style.Layer graph and hover
Mermaid rendering service used to generate Layer graph diagram links in hover output. Accepted values:
"mermaid.live"— links open on mermaid.live"mermaid.com"— links open on mermaid.com- Any custom URL — the diagram payload is appended to the provided base URL
When
true, external links (such as Mermaid diagram URLs) are suppressed from hover output. Useful in air-gapped environments or when external URL generation is undesirable.How many levels deep the Layer graph extraction follows symbol references when building the hover diagram.
0 means only the immediate layer composition is shown. Higher values produce more complete graphs at the cost of analysis time.Effect.fn quick fix variants
Controls which
effectFnOpportunity quick fix variants are offered when the diagnostic suggests wrapping a function with Effect.fn. Each entry is a variant name. The only built-in variant is "span".Editor experience
When
true, suppresses redundant return-type inlay hints on Effect.gen, Effect.fn, and Effect.fnUntraced generator functions where the return type is already clear from context.Duplicate package detection
Package names that are permitted to appear in multiple versions without triggering the
duplicatePackage diagnostic. Useful when a controlled multi-version scenario is intentional (e.g. migrating between major versions).Auto-import style
The four options below control how the language service suggests and organises imports. Package name matching is case-insensitive for all four options.Package names that should be imported as namespace imports (
import * as X from '...') rather than named imports. Package matching is case-insensitive.Package names that should use barrel named imports (
import { X } from 'package') rather than deep-path imports. Package matching is case-insensitive.Maps package names to preferred local import aliases. Keys are case-insensitive package name matches; values are the alias to use in generated imports.
Controls whether named re-exports at a package’s top-level entry point are followed when resolving import candidates. Accepted values are case-insensitive; invalid values fall back to
"ignore"."ignore"— re-exports are not followed; only direct exports are considered."follow"— re-exports are traversed to find the original export source.