inline diagnostic message rendering at point of occurrence
Renders 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.
Unique: 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.
vs alternatives: 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
Provides 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.
Unique: 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.
vs alternatives: 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
Provides 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).
Unique: 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.
vs alternatives: 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
Respects 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.
Unique: 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.
vs alternatives: 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
Provides 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.
Unique: 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.
vs alternatives: 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
Supports 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.
Unique: 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.
vs alternatives: 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
Provides 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.
Unique: 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.
vs alternatives: 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
Provides 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.
Unique: 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.
vs alternatives: 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.
+7 more capabilities