VS Code extension for Solid.js language support, powered by @drskillissue/ganko and @drskillissue/ganko-lsp.
- Solid-specific diagnostics for reactivity, correctness, and performance
- CSS and JSX policy diagnostics (including accessibility-oriented checks)
- Rule severity overrides directly from VS Code settings
- Optional ESLint config ingestion from
eslint.config.{mjs,js,cjs}
- Go to definition, find references, and rename symbol
- Hover information, completions, and signature help
- Document symbols and workspace symbol search
- Document highlights, folding ranges, and selection ranges
- Linked editing for JSX tag pairs
- Code actions for fixable diagnostics
- Reactive graph visualization command (
Solid: Show Reactive Graph) - Mermaid-rendered graph panel for dependency exploration
- Semantic token support for Solid reactive constructs
- Inlay hints for reactive dependencies
- Status bar health indicator and output channel integration
- TypeScript / JavaScript:
.ts,.tsx,.js,.jsx - Stylesheets:
.css,.scss,.sass,.less
| Setting | Type | Default | Description |
|---|---|---|---|
solid.enable |
boolean | true |
Enable the Solid language server |
solid.exclude |
string[] | [] |
Glob patterns to exclude from analysis (e.g. ["backend/**", "scripts/**"]). Matched relative to workspace root. |
solid.logLevel |
string | "info" |
Log level for the language server (trace, debug, info, warning, error, critical, off) |
solid.trace.server |
string | "off" |
LSP trace level (off, messages, verbose) |
solid.accessibilityPolicy |
string | "wcag-aa" |
Policy template for CSS/JSX style linting (wcag-aa, wcag-aaa, mobile-first, dense-ui, large-text) |
solid.eslintConfig.enable |
boolean | true |
Read rule overrides from ESLint config |
solid.eslintConfig.path |
string | - | Custom ESLint config path (relative to workspace root). Uses auto-discovery if not set. |
solid.enableTypeScriptDiagnostics |
boolean | false |
Push TypeScript diagnostics alongside ganko diagnostics |
solid.lsp.env |
object | {} |
Environment variables passed to the LSP process |
Rule overrides are configured per rule key as solid.rules.<rule-id>.
- Allowed values:
error,warn,off,default defaultuses the built-in rule severity
Example:
{
"solid.rules.signal-call": "error",
"solid.rules.effect-as-memo": "warn",
"solid.rules.prefer-for": "off",
"solid.rules.css-policy-contrast": "warn"
}Severity precedence (highest to lowest):
- VS Code
solid.rules.<rule-id>overrides - ESLint config overrides (when
solid.eslintConfig.enableistrue) - Built-in rule defaults
| Command | Description |
|---|---|
| Solid: Restart Language Server | Restarts the language server |
| Solid: Show Reactive Graph | Opens a reactive dependency graph panel |
| Solid: Show Output Channel | Opens extension logs |
| Solid: Show Memory Usage | Shows language server heap usage |
Token types contributed by the extension:
solidSignalsolidStoresolidMemosolidDerivedsolidPropssolidResourcesolidAccessorsolidEffect
Token modifiers:
reactivetrackeddeclaration
The extension shows language server state in the status bar:
$(loading~spin) Solid LSP- starting$(check) Solid LSP- running$(circle-slash) Solid LSP- stopped$(error) Solid LSP- error
Click the status bar item to open the output channel.
# From monorepo root
bun install
bun run --cwd packages/vscode build-
Build the extension:
bun run --cwd packages/vscode build
-
Open this repository in VS Code.
-
Press
F5to launch an Extension Development Host. -
Open a Solid project in the new window.
bun run --cwd packages/vscode packageThis produces a .vsix file in packages/vscode/.
This extension requires a trusted workspace. It does not activate in untrusted workspaces.
- VS Code
>=1.105.0 - Node.js
>=22.0.0