Error Lens
ExtensionFreeInline diagnostic highlighting for errors and warnings.
Capabilities15 decomposed
inline diagnostic message rendering at point of occurrence
Medium confidenceRenders diagnostic messages (errors, warnings, info, hints) directly at the end of lines in the editor using VS Code's inline decoration API, eliminating the need for hover interactions. Messages are positioned after code with configurable spacing (default 4ch margin) and styled with customizable font family, weight, size, and italic formatting. The extension consumes diagnostic data from VS Code's Language Server Protocol (LSP) and built-in diagnostic providers, then applies real-time decorations that update whenever diagnostics change.
Uses VS Code's native inline decoration API to render diagnostic messages at end-of-line with full styling control (font family, weight, size, italic, margin), rather than relying on hover tooltips or separate problem panels. Respects upstream VS Code diagnostic visibility settings via `respectUpstreamEnabled` configuration.
More lightweight and integrated than separate diagnostic panels or hover-only approaches because it leverages VS Code's built-in decoration system and requires no external API calls or model inference.
full-line background highlighting for diagnostic severity levels
Medium confidenceApplies background color highlighting to entire lines containing diagnostics, with colors differentiated by severity level (error, warning, info, hint). The highlighting is rendered via VS Code's line decoration API and can be toggled independently from inline messages. Each severity level can be individually enabled or disabled through commands (`errorLens.toggleError`, `errorLens.toggleWarning`, etc.), allowing developers to filter visual noise by focusing on specific problem types.
Implements per-severity-level toggling via independent commands, allowing developers to selectively hide warnings while keeping errors visible, rather than an all-or-nothing diagnostic visibility toggle. Uses VS Code's line decoration API to apply background colors that respect theme color schemes.
More granular than VS Code's built-in problem panel because it allows filtering by severity level without hiding diagnostics from the language server, and provides immediate visual feedback in context rather than requiring panel navigation.
browser-based problem search and documentation lookup
Medium confidenceProvides a command (`errorLens.searchForProblem`) that opens a browser search query for the current diagnostic, allowing developers to quickly search for documentation, solutions, or discussions about the error. The search query is configurable via the `searchForProblemQuery` setting, which can include placeholders for the diagnostic code and message. This enables one-click access to external resources without manual typing of search terms.
Implements configurable browser search via the `searchForProblemQuery` setting, allowing developers to customize the search engine and query format. Supports placeholders for diagnostic code and message to enable targeted searches.
Faster than manually typing search queries because it uses the diagnostic code and message directly, though it requires upfront configuration of the search query template and depends on search result relevance.
workspace-level diagnostic visibility toggling
Medium confidenceProvides a command (`errorLens.toggleWorkspace`) that enables or disables Error Lens decorations for the current workspace, allowing developers to temporarily disable the extension for specific workspaces without uninstalling it. The workspace toggle state is stored in workspace-specific VS Code settings and persists across sessions. This enables different diagnostic visualization preferences for different projects.
Implements workspace-level toggling via the `errorLens.toggleWorkspace` command, allowing developers to enable or disable Error Lens for specific workspaces without affecting global settings. Toggle state persists in workspace settings.
More flexible than global enable/disable because it allows different diagnostic visualization preferences for different projects, though it requires manual toggling per workspace and does not support selective disabling of specific decorations.
global master enable/disable toggle with command palette access
Medium confidenceProvides a command (`errorLens.toggle`) that globally enables or disables all Error Lens decorations (inline messages, line highlighting, gutter icons, status bar) with a single command. The toggle state is stored in VS Code settings and persists across sessions. This allows developers to quickly disable Error Lens without uninstalling the extension, useful for temporary focus or testing.
Implements a single global master toggle via the `errorLens.toggle` command that affects all decorations simultaneously, stored in VS Code settings and accessible via command palette. Provides quick on/off control without uninstalling.
Simpler than uninstalling and reinstalling the extension because it preserves all settings and can be toggled quickly, though it does not support selective disabling of specific decoration types.
inline message display toggling independent from other decorations
Medium confidenceProvides a command (`errorLens.toggleInlineMessage`) that enables or disables only the inline message text display while keeping other decorations (line highlighting, gutter icons) visible. The toggle state is stored in the `messageEnabled` setting and persists across sessions. This allows developers to reduce text clutter while maintaining visual indicators of diagnostic presence.
Implements independent toggling of inline message display via the `errorLens.toggleInlineMessage` command, allowing developers to disable text messages while keeping visual indicators. Provides granular control over decoration visibility.
More flexible than global disable because it allows selective disabling of inline messages while keeping other decorations visible, enabling customized diagnostic visualization per developer preference.
decoration refresh and cache invalidation on demand
Medium confidenceProvides a command (`errorLens.updateEverything`) that manually refreshes all Error Lens decorations and invalidates internal caches, forcing a re-render of all diagnostic visualizations. The command accepts an optional parameter `kind` with values 'update' (refresh decorations) or 'clear' (clear all decorations). This allows developers to recover from display glitches or stale decoration states without reloading the editor.
Implements manual decoration refresh and cache invalidation via the `errorLens.updateEverything` command with optional `kind` parameter, allowing developers to recover from display glitches without reloading the editor. Provides both update and clear modes.
Faster than reloading the editor because it only refreshes Error Lens decorations without restarting VS Code, though it is a workaround for underlying issues and should not be needed in normal operation.
gutter icon indicators for diagnostic presence
Medium confidenceDisplays small icon indicators in the editor gutter (left margin) at lines containing diagnostics, providing a visual marker without consuming inline space. Icons are rendered via VS Code's gutter decoration API and serve as a compact alternative to full-line highlighting for quickly locating problem lines. The gutter icons are styled consistently with VS Code's theme and severity level.
Renders severity-specific icons in the editor gutter using VS Code's gutter decoration API, providing a space-efficient alternative to inline messages and line highlighting. Icons are theme-aware and respect VS Code's color scheme.
More compact than inline messages and full-line highlighting, making it suitable for developers with limited screen space or those preferring minimal visual decoration while still maintaining diagnostic visibility.
status bar diagnostic summary display
Medium confidenceOptionally displays a summary of diagnostics in VS Code's status bar (bottom of editor), showing counts or messages for the current file or workspace. The status bar display is controlled via the `respectUpstreamEnabled.statusBar` setting (default: false) and can be toggled independently from inline and gutter decorations. This provides a non-intrusive way to monitor overall diagnostic health without consuming editor space.
Provides optional status bar display controlled via `respectUpstreamEnabled.statusBar` setting, allowing developers to toggle status bar feedback independently from inline and gutter decorations. Respects VS Code's upstream diagnostic visibility settings.
Less intrusive than inline messages or line highlighting because it uses the status bar area which is expected for summary information, and can be disabled without affecting other diagnostic visualizations.
per-severity-level diagnostic filtering and toggling
Medium confidenceProvides independent toggle commands for each diagnostic severity level (error, warning, info, hint), allowing developers to selectively show or hide diagnostics by type without affecting the language server's diagnostic generation. Toggling is implemented via four separate commands (`errorLens.toggleError`, `errorLens.toggleWarning`, `errorLens.toggleInfo`, `errorLens.toggleHint`) that update the `enabledDiagnosticLevels` setting. This filtering applies to all decorations (inline messages, line highlighting, gutter icons) simultaneously.
Implements independent toggle commands for each severity level that update the `enabledDiagnosticLevels` setting, allowing granular filtering without affecting the language server's diagnostic generation. Toggling state persists across sessions via VS Code settings.
More flexible than VS Code's built-in problem panel filtering because it allows independent toggling of each severity level via command palette or keybindings, and applies filtering across all Error Lens decorations simultaneously.
linter disable comment insertion for current line
Medium confidenceProvides a command (`errorLens.disableLine`) that inserts a linter-specific disable comment on the current line to suppress diagnostics for that line. The comment format is configurable via the `disableLineComments` setting, supporting different linter syntaxes (e.g., `// eslint-disable-next-line` for ESLint, `# noqa` for Pylint). The extension reads the current diagnostic code and inserts the appropriate disable directive without requiring manual typing.
Automates insertion of linter-specific disable comments by reading the diagnostic code and applying the configured comment format, reducing manual typing and syntax errors. Supports multiple linter syntaxes via the `disableLineComments` setting.
Faster than manually typing disable comments because it uses the diagnostic code directly and applies the correct syntax based on configuration, though it requires upfront configuration of the `disableLineComments` setting.
linter rule definition lookup and navigation
Medium confidenceProvides a command (`errorLens.findLinterRuleDefinition`) that searches for linter rule definitions in local configuration files (e.g., `.eslintrc.json`, `pyproject.toml`) based on the current diagnostic code. The extension reads file paths from the `lintFilePaths` setting and performs a text search to locate rule definitions, then opens the file in the editor. This allows developers to quickly navigate to rule configurations without manually searching the filesystem.
Implements text-based search for linter rule definitions in local configuration files specified via `lintFilePaths` setting, enabling quick navigation to rule configurations without manual file browsing. Supports multiple linter config file formats.
Faster than manually opening linter config files because it uses the diagnostic code to search directly, though it requires upfront configuration and performs only text-based search without syntax parsing.
diagnostic message and code copying to clipboard
Medium confidenceProvides two commands (`errorLens.copyProblemMessage` and `errorLens.copyProblemCode`) that copy the full diagnostic message text or the diagnostic code/rule identifier to the clipboard. These commands operate on the diagnostic at the current cursor position and enable quick sharing or documentation of diagnostic information without manual selection and copying.
Provides separate commands for copying diagnostic message text and diagnostic code, allowing developers to choose what information to copy without manual selection. Operates on the diagnostic at the current cursor position.
Faster than manually selecting and copying diagnostic text because it uses the diagnostic data directly, though it only works on the current cursor position and does not support bulk copying.
diagnostic exclusion and suppression via settings
Medium confidenceProvides a command (`errorLens.excludeProblem`) that adds a diagnostic code to an exclusion list in VS Code settings, suppressing that diagnostic from being displayed by Error Lens. The exclusion is stored in the `errorLens.exclude` setting and persists across sessions. This allows developers to permanently hide specific rules or diagnostics without modifying linter configuration files or inserting disable comments.
Implements per-rule exclusion via the `errorLens.exclude` setting, allowing developers to suppress specific diagnostics without modifying linter configuration or inserting disable comments. Exclusions are user-specific and persist across sessions.
More flexible than linter disable comments because exclusions are user-specific and do not affect the repository, though they only apply to Error Lens visualization and do not affect the language server's diagnostic generation.
diagnostic range selection and highlighting in editor
Medium confidenceProvides a command (`errorLens.selectProblem`) that selects the text range of the current diagnostic in the editor, highlighting the problematic code. The selection is based on the diagnostic range provided by the language server or linter, and the selection behavior is configurable via the `selectProblemType` setting. This allows developers to quickly identify and select the exact code causing the diagnostic without manual selection.
Automatically selects the diagnostic range in the editor using the language server's range data, with configurable selection behavior via the `selectProblemType` setting. Enables quick identification of problematic code without manual selection.
Faster than manually selecting diagnostic ranges because it uses the language server's range data directly, though it depends on the accuracy of the language server's range reporting.
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.
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.
DeepSource Autofix™ AI
Improve code quality with static analysis and AI.
LanguageTool
Open-source multilingual grammar checker for 30+ languages.
Pylance
High-performance Python language server.
Metabob: Debug and Refactor with AI
Generative AI to automate debugging and refactoring Python code
Copilot
An everyday AI companion by Microsoft.
Best For
- ✓developers working with strict linters (ESLint, TypeScript, Pylint)
- ✓teams enforcing code quality standards with many inline diagnostics
- ✓developers who prefer keyboard-centric workflows
- ✓developers working with large files (500+ lines) with many diagnostics
- ✓teams using strict linting rules that generate many warnings
- ✓developers who prefer visual scanning over reading inline text
- ✓developers who frequently search for error documentation online
- ✓teams using unfamiliar linters or rules that require external documentation
Known Limitations
- ⚠Cannot customize message content itself — only styling and visibility of diagnostics generated by language servers or linters
- ⚠Message rendering may overlap with long lines of code if margin is not configured appropriately
- ⚠Performance impact unknown for files with 100+ diagnostics per file
- ⚠Inline messages respect VS Code's upstream diagnostic visibility settings, so disabling problems globally disables Error Lens
- ⚠Line highlighting colors are determined by VS Code theme and cannot be fully customized per severity level without theme modification
- ⚠Highlighting applies to entire lines, which may obscure code readability if many adjacent lines are highlighted
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
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 →