Error Lens
ExtensionFreeInline diagnostic highlighting for errors and warnings.
- Best for
- inline diagnostic message rendering at point of occurrence, severity-level filtering with granular toggle control, diagnostic range selection and editor cursor positioning
- Type
- Extension · Free
- Score
- 57/100
- Best alternative
- Cursor
Capabilities15 decomposed
inline diagnostic message rendering at point of occurrence
Medium confidenceRenders diagnostic messages (errors, warnings, info, hints) directly at the end of code lines using VS Code's inline decoration API, eliminating the need to hover over squiggly underlines. Messages are appended to the line with configurable font styling, margins, and alignment, integrating with VS Code's built-in diagnostic provider system to display messages from any language server protocol (LSP) compliant linter or language server without requiring additional computation.
Uses VS Code's native decoration API to render messages inline rather than in a separate panel, with configurable font family, weight, size, and margin — providing persistent visual feedback without hover interaction. Respects VS Code's global problems.visibility setting (v1.85.0+) to avoid conflicts with upstream UI preferences.
More lightweight than custom diagnostic panels and more discoverable than hover-only approaches because messages are always visible in context, reducing cognitive load compared to switching between editor and problems panel.
severity-level filtering with granular toggle control
Medium confidenceProvides independent toggle commands for each diagnostic severity level (errors, warnings, info, hints) and a master toggle, allowing developers to filter which diagnostic types are displayed inline. Filtering is managed through VS Code's command palette and persisted in extension settings, enabling workspace-specific diagnostic visibility policies without modifying linter configuration.
Implements independent toggle commands for each severity level rather than a single on/off switch, allowing fine-grained control over diagnostic visibility. Settings are persisted in VS Code's configuration system, enabling per-workspace policies without modifying source code or linter files.
More flexible than linter-level rule disabling because filtering can be toggled without code changes, and more granular than VS Code's native problems.visibility setting which only supports show/hide all.
diagnostic range selection and editor cursor positioning
Medium confidenceProvides a command that sets the editor selection to the exact range of a diagnostic (start and end position), enabling quick navigation to the problematic code segment. Selection behavior is configurable via `selectProblemType` setting, supporting different selection modes (e.g., select word, select line, select range).
Implements diagnostic range selection via VS Code's editor selection API, with configurable selection modes in `selectProblemType` setting. Enables keyboard-driven navigation to errors without requiring mouse interaction or manual text selection.
Faster than manual cursor positioning and more precise than line-based selection because it uses the exact diagnostic range from the language server.
upstream vs code problems visibility synchronization
Medium confidenceRespects VS Code's global `#problems.visibility#` setting (v1.85.0+) to avoid conflicts with upstream UI preferences, allowing developers to manage diagnostic visibility through VS Code's native settings. Synchronization is configurable per visualization layer (inline messages, gutter icons, status bar) via `respectUpstreamEnabled` setting.
Implements upstream synchronization via VS Code's settings API, allowing errorLens to respect global `problems.visibility` setting without requiring manual configuration duplication. Synchronization is configurable per visualization layer, enabling fine-grained control over which decorations respect upstream settings.
Reduces configuration complexity by leveraging VS Code's native settings, and prevents conflicts between errorLens and VS Code's native problems panel visibility management.
customizable inline message styling and layout
Medium confidenceProvides 75+ configuration settings for customizing the appearance of inline diagnostic messages, including font family, weight, size, style (italic), margins, and alignment. Styling is applied via VS Code's decoration API, enabling fine-grained control over message appearance without modifying extension code or CSS.
Provides 75+ granular configuration settings for message styling, enabling developers to customize appearance without modifying extension code. Styling is applied via VS Code's decoration API, ensuring compatibility with VS Code's theming system and accessibility features.
More flexible than hardcoded styling because it supports per-workspace customization, and more accessible than default styling because it enables font size and contrast adjustments for developers with visual accessibility needs.
multi-linter configuration file support with path customization
Medium confidenceSupports searching multiple linter configuration file types (ESLint, Pylint, etc.) by allowing developers to specify custom file paths via `lintFilePaths` setting. The extension searches specified paths to find linter rules and configurations, enabling support for non-standard linter configurations or multiple linters in a single workspace.
Implements multi-linter support through configurable file path patterns in `lintFilePaths` setting, allowing developers to specify custom configuration locations without hardcoding linter-specific paths. Enables support for non-standard configurations and monorepo setups.
More flexible than hardcoded linter paths because it supports custom configurations, and more powerful than single-linter support because it enables multiple linters in a single workspace.
diagnostic decoration refresh and update management
Medium confidenceProvides a command (`updateEverything`) to manually refresh all diagnostic decorations in the editor, with configurable update behavior (update or clear). Enables developers to force re-render of inline messages and gutter icons when diagnostics change or when extension state becomes out of sync with language server diagnostics.
Implements manual refresh via a command with configurable update behavior (update vs. clear), allowing developers to force re-render of decorations when extension state becomes out of sync. Provides both update and clear modes for different troubleshooting scenarios.
Provides manual control over decoration rendering, enabling developers to recover from state inconsistencies without restarting the editor or extension.
linter rule disabling via inline comment injection
Medium confidenceProvides a command that automatically inserts linter-specific disable comments (e.g., `// eslint-disable-next-line rule-name`) at the current diagnostic location, with configurable comment format per linter. The extension searches linter configuration files (`.eslintrc.json`, etc.) to determine the correct comment syntax and rule code, then injects the comment without requiring manual lookup.
Automatically detects linter type and correct comment syntax by parsing linter configuration files, then injects disable comments at the diagnostic location. Supports configurable comment formats via `disableLineComments` setting, enabling multi-linter support without hardcoding syntax.
Faster than manually typing disable comments and less error-prone than copying syntax from documentation, because it reads the actual linter config to determine correct format.
linter rule definition lookup with configuration file search
Medium confidenceProvides a command that searches linter configuration files (e.g., `.eslintrc.json`) for the definition of a specific rule code associated with a diagnostic, then displays or opens the rule definition. The search path is configurable via `lintFilePaths` setting, allowing support for multiple linter types and custom configuration locations.
Implements file-system-based rule definition search by parsing linter configuration files in the workspace, rather than querying external documentation APIs. Supports configurable search paths via `lintFilePaths` setting, enabling multi-linter and custom configuration support.
Faster than manual documentation lookup because it searches local configuration, and more contextual than generic web search because it shows the actual rule configuration in the project.
diagnostic message copying and clipboard integration
Medium confidenceProvides commands to copy diagnostic message text or diagnostic code to clipboard with a single keystroke or command palette invocation. Supports copying the full message string or just the rule code, enabling quick sharing of diagnostic information or pasting into issue trackers without manual selection.
Provides separate commands for copying message text vs. diagnostic code, allowing developers to choose what information to capture without manual selection. Integration with VS Code's clipboard API ensures cross-platform compatibility.
Faster than manual text selection and copying, and more precise than selecting the entire line because it isolates just the diagnostic information.
diagnostic exclusion with persistent settings storage
Medium confidenceProvides a command to exclude specific diagnostics from display by writing exclusion rules to VS Code settings.json, preventing those diagnostics from appearing inline or in the problems panel. Exclusions are persisted at workspace or user scope and can be manually edited or reverted through settings.
Implements exclusion as a settings-based mechanism rather than in-memory filtering, allowing exclusions to persist across sessions and be version-controlled or shared across team members. Exclusions are stored in VS Code's configuration system alongside other extension settings.
More persistent than temporary filtering because exclusions survive editor restarts, and more flexible than linter-level rule disabling because it can hide diagnostics without modifying source code or linter configuration.
gutter icon rendering for diagnostic indicators
Medium confidenceRenders small icons in the editor gutter (left margin) to indicate the presence and severity of diagnostics on each line, providing a visual summary of code quality without inline message text. Gutter icons are configurable and can be toggled independently from inline messages, enabling a minimalist diagnostic visualization mode.
Implements gutter icon rendering as an independent visualization layer that can be toggled separately from inline messages, allowing developers to choose between minimal (icons only) or verbose (icons + messages) diagnostic display modes.
Less visually intrusive than inline messages while still providing quick visual feedback, and more discoverable than relying on squiggly underlines alone because icons are persistent and visible at a glance.
status bar diagnostic message display
Medium confidenceDisplays the diagnostic message for the current cursor position in VS Code's status bar (bottom of editor), providing an alternative to inline messages for developers who prefer a centralized information panel. Status bar display is configurable and can be toggled independently from inline messages and gutter icons.
Provides status bar diagnostic display as an independent visualization option that can be toggled separately from inline messages, enabling developers to choose between persistent inline feedback or cursor-position-aware status bar feedback.
Less visually intrusive than inline messages and more discoverable than hover-only approaches, while maintaining diagnostic visibility in a consistent location that doesn't clutter the code editor.
workspace-level diagnostic exclusion by file path
Medium confidenceProvides a command to exclude entire workspaces or file paths from diagnostic display, preventing diagnostics from appearing in specified directories or projects. Exclusions are stored in extension settings and can be toggled on/off without removing the exclusion rule, enabling temporary suppression of diagnostics for specific workspace paths.
Implements workspace-level exclusion as a toggle-able setting rather than a permanent deletion, allowing developers to temporarily suppress diagnostics for specific paths without losing the exclusion configuration. Exclusions are stored in extension settings and can be managed programmatically.
More flexible than linter-level ignore files because exclusions can be toggled without code changes, and more granular than disabling the entire extension because it targets specific workspace paths.
browser-based problem search integration
Medium confidenceProvides a command that opens a web browser search for the diagnostic message or rule code, enabling quick lookup of documentation or solutions. The search query format is configurable via `searchForProblemQuery` setting, supporting different search engines or documentation sites (e.g., Stack Overflow, MDN, ESLint docs).
Implements search integration via configurable URL templates in `searchForProblemQuery` setting, allowing developers to customize search engine or documentation site without modifying extension code. Supports dynamic query substitution for diagnostic message and rule code.
Faster than manual documentation lookup because it opens search results directly, and more flexible than hardcoded search engines because the query format is configurable per team or project.
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with Error Lens, ranked by overlap. Discovered automatically through the match graph.
Blinky
An open-source AI debugging agent for VSCode
DeepSource Autofix™ AI
Improve code quality with static analysis and AI.
VsCoq
VsCoq is an extension for Visual Studio Code with support for the Coq Proof Assistant
Rubberduck - ChatGPT for Visual Studio Code
Generate code, edit code, explain code, generate tests, find bugs, diagnose errors, and even create your own conversation templates.
Inkling
VS Code language support for the inkling language
ESLint
Real-time ESLint integration with auto-fix.
Best For
- ✓developers working with strict linting rules (ESLint, Pylint, etc.)
- ✓teams using multiple language servers simultaneously
- ✓developers who prefer inline feedback over panel-based diagnostics
- ✓developers working with aggressive linting (many warnings/hints)
- ✓teams with varying diagnostic sensitivity across projects
- ✓developers who want to focus on critical issues first
- ✓developers who want keyboard-driven navigation to errors
- ✓developers applying batch fixes to multiple diagnostics
Known Limitations
- ⚠Cannot customize diagnostic generation itself — only visualizes existing VS Code diagnostics
- ⚠Message rendering adds visual clutter on lines with multiple diagnostics
- ⚠Font styling options are limited to CSS properties supported by VS Code decoration API
- ⚠Performance may degrade with 100+ diagnostics in a single file due to decoration rendering overhead
- ⚠Filtering is extension-level only — does not affect VS Code's native problems panel or other diagnostic consumers
- ⚠No regex-based filtering for specific rule codes (e.g., hide only ESLint rule 'no-unused-vars')
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
About
Highlights errors, warnings, and diagnostics inline at the point of occurrence with the full message text. Eliminates the need to hover by making all problems immediately visible in context.
Categories
Alternatives to Error Lens
Anthropic's terminal coding agent — file ops, git, MCP servers, extended thinking, slash commands.
Compare →Are you the builder of Error Lens?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →