SonarQube Dashboard for Visual Studio CodeEnglish | Español SonarQube Dashboard connects each workspace folder to a SonarQube project and brings its results directly into the Visual Studio Code workflow. The extension can run a new repository analysis, inspect project status, compare Overall and New Code, review issues and Security Hotspots, analyze changes between scans, and publish findings directly in the Problems panel. RequirementsFor SonarQube Dashboard to work correctly:
The extension compares component paths returned by SonarQube with files found inside the open folder. The dashboard and Problems panel only show findings that can be matched to an existing local file. When the analyzed code is located inside a workspace subfolder, configure it under Advanced configuration → Local subfolder. An incorrect project, folder, or subfolder mapping can cause SonarQube to contain issues that do not appear in the extension. Main features
Quick start
After the first link is created, the extension synchronizes data automatically whenever the workspace is opened. The refresh icon in the side panel can be used to request a manual update. Side panel
The side panel provides a quick overview without leaving the VS Code explorer:
While synchronization is running, the panel displays a spinner and temporarily hides the previous data to avoid presenting a partial state. Data view and Overall / New Code selector
The global Overall / New Code selector updates all of the following together:
Overall represents the complete project state. New Code limits the current summaries, issues, hotspots, coverage, and duplication metrics to the new-code period configured in SonarQube. Historical evolution is displayed only in Overall. The New Code definition can change between analyses, so its values are not always directly comparable as a time series. In New Code, the extension hides the issue, severity, coverage, and duplication evolution charts and displays an explanatory notice instead of artificial zero values. Top summaryEach column displays:
The Historical comparison is shown only when the total from the latest SonarQube analysis matches the issues associated with local files. When paths are omitted, the extension avoids comparing the local subset against the project's global total. This top comparison always uses the analysis immediately preceding the latest available analysis. It is independent of the day, week, or month grouping selected in the evolution charts. Issues tableThe table contains:
The search field filters by file, rule, or description. The Severity, Type, File, Status, and Rule headers sort the table; selecting the same header again reverses the direction. Selecting a row opens the local file at the affected line. Selecting the rule opens its details in a dialog. Only issues whose SonarQube component matches a file in the open folder are included, taking the configured local subfolder into account. The header remains fixed while only the table body scrolls vertically. In-editor indicators, CodeLens, and issue details
When a file containing findings is opened, the extension marks the affected lines directly in the editor:
Indicators are only created for findings whose SonarQube path matches a real file in the linked folder. They are refreshed when dashboard data is synchronized and removed when its data is cleared. Top Files and Top Rules
Top FilesGroups issues by file and displays:
Top RulesGroups issues by rule and displays:
Both tables can be sorted by selecting File/Rule, Severity, or Issues. Selecting the same header again reverses the order, and the The headers remain outside the scrollable area, and both tables keep the same height. Historical evolution
The lower section contains two charts:
Each chart has its own Day / Week / Month selector in the upper-right corner and starts grouped by Day. Selectors are independent, so changing one chart's grouping does not modify any other chart. Each point represents the latest analysis in the selected interval: the latest analysis of each day, week, or month. Moving the pointer over a chart displays a tooltip that follows the cursor and shows that analysis's actual date and the values for every visible series. The legends are centered and interactive. Select a series to hide it or display it again. Quality Gate
The Quality Gate button opens a dialog containing:
Failed conditions are listed first. The dialog distinguishes between the total number of configured conditions and the failed conditions displayed by SonarQube in its interface. The dialog is divided into header, body, and footer. Only the body scrolls, so the title and action buttons remain visible. Issue lifecycle management
Select Manage issue from the Issues table, an editor hover, or the issue explorer to open the lifecycle dialog. Depending on the operations returned by SonarQube for the current token, the dialog can:
Every write operation displays a native confirmation dialog before SonarQube is modified. Status buttons are created only from the transitions included by
The current status is displayed in the Issues table and in the dialog; its matching action is disabled. Comments and history use mutually exclusive collapsible sections. Security flows and secondary locationsIssues that include execution flows expose all local locations involved in the finding:
The lifecycle dialog includes Previous and Next controls and a complete location list. Selecting a location opens the corresponding file and line. While a flow is active, VS Code displays colored whole-line decorations and CodeLens entries so the path can be followed directly in the editor. Locations that are part of the SonarQube flow but do not exist in the open workspace remain visible as unavailable and are never redirected to a different file with the same name. Coverage and duplications
The Coverage and duplication data tab provides separate current Overall and New Code views for:
Historical coverage and duplication charts are available in Overall only. They provide independent Day / Week / Month selectors, start grouped by Day, and retain the latest analysis from each interval. In New Code, the current metrics and file rankings remain available, while the historical charts are replaced with a notice explaining why the series is unavailable. Selecting a file loads line-level data on demand. Covered, partially covered, and uncovered lines are marked in the gutter and overview ruler. Duplicated lines receive a dedicated decoration, and the detail dialog lists each duplicated block together with every matching local file and range.
Non-empty duplicated lines display the word
Each duplication group can be opened in a dedicated Git-style comparison tab. It displays every local occurrence side by side with its original line numbers and provides direct navigation to the selected range.
Coverage requires the corresponding test reports to have been imported by the scanner during analysis. When SonarQube has no coverage data for a file, the extension leaves it undecorated. Missing historical metrics are also displayed as unavailable rather than as an artificial 0%. Quick issue navigation
The extension contributes an Issue explorer below the side-panel summary. It can group local issues by file, rule, or severity and can be restricted to the active file. Default shortcuts:
The status bar shows the current position, for example Automatic notificationsNotifications can be enabled or disabled from the dashboard configuration or VS Code settings. The extension notifies when synchronization detects:
The default significant-increase threshold is 20% with at least five additional issues. These values can be changed through Security Hotspots
The Security Hotspots tab provides a dedicated view containing:
Selecting a hotspot loads its details and opens a dialog containing:
The extension loads hotspot details on demand so they do not delay the initial dashboard load. Predefined integrationsVersion 0.20.1 detects known project tools and offers them as reusable pipeline steps. Depending on the available files, scripts, and dependencies, it can propose:
Detected integrations appear under Configuration → Pipeline, inside the Detected predefined integrations accordion below the template editor. Adding an integration removes it from the available list; removing it from custom steps makes it available again. Its command and failure policy remain editable. Configurable analysis pipeline
The Configuration → Pipeline tab automatically detects common build and test commands for the current project. Both commands can be overridden manually. Custom steps can also run dependency audits, linters, SAST tools, report generators, or any other tool available in the workspace. Each custom step provides:
When Analyze repository is opened, the run initially contains only the required SonarQube step. Add step can include the detected build command, tests, or any saved custom step. The command can be adjusted for that run, and its position relative to SonarQube is controlled by dragging the row from its handle. The Analyze button remains disabled while any step is incomplete. Optional steps can be removed before execution without changing the saved pipeline configuration.
While the pipeline runs, the dialog displays a stepper whenever more than one step is present. Each stage indicates whether it is running, succeeded, failed and stopped the pipeline, or failed with permission to continue. The log clearly separates the start and end of each step, displays the executed command, and preserves the complete tool output. Pipeline templatesVersion 0.21.0 adds a reusable template accordion under Configuration → Pipeline:
Reusable steps are created first under Pipeline steps. The template editor then lets you select a template, inspect its steps, add other available steps, remove them, and reorder them through drag & drop without changing the project's main step list. Built-in templates adapt to the commands and tools detected in the folder. Save changes updates the selected template for the workspace, including built-in templates, without creating duplicates. Custom templates are deleted with confirmation; deleting a workspace override for a built-in template restores its default definition. Templates can also be imported and exported as The exported format uses
Pipeline run history
The native Pipeline executions view, located in the side bar next to the Issue explorer, keeps the latest 30 runs for each analysis folder. Active runs display a loading state, while completed runs show their result and duration. Selecting any active or completed run opens a dedicated page that displays only that execution:
The page keeps the current execution visible while another one loads to avoid loading flashes. History is stored in workspace state, never includes the token, and can be cleared from the page. Internal diagnostics
The Diagnostics tab collects information for investigating connection, compatibility, and project-detection problems:
The page uses compact monochrome cards without category colors. Copy report produces text ready to attach to an issue. Credentials, authorization headers, and recognizable token, password, secret, or API-key values are redacted before copying. Repository analysis
The Analyze repository button detects the project type and selects the appropriate strategy:
In Automatic mode, detection priority is .NET → Maven → Gradle → NPM → Docker. The search examines the analysis folder and its subfolders up to three levels deep. In mixed repositories, another method can be selected manually, or Local subfolder can be configured to restrict detection to the correct component. SonarScanner for NPM reads the project's The extension runs the selected pipeline, displays progress and the complete log, supports cancellation, waits for SonarQube to finish its background task, and then updates the dashboard and Problems automatically. The dialog can be closed while execution continues without stopping the analysis; View log opens it again. Only Cancel analysis terminates the scanner. The token is masked in the log. Before enabling repository analysis, the extension queries the analysis-cache endpoint used by SonarScanner, which requires the Execute Analysis permission. If SonarQube rejects the request, analysis controls are hidden and the reason is shown in Configuration. A response indicating that no cache exists yet is considered valid. The backend repeats this validation before starting any scanner. Tool requirementsThe extension includes orchestration and downloads SonarScanner for .NET automatically, but it does not include complete compilers or SDKs:
Docker preserves the SonarScanner cache between analyses and uses the Java runtime included in the image to reduce subsequent execution time. Analysis can only run in a trusted workspace. The languages that can ultimately be analyzed also depend on the SonarQube edition, installed plugins, and server configuration. Problems integration
Overall issues are published as native VS Code diagnostics:
To avoid diagnostics being associated with the wrong files, an issue is not published when its SonarQube path cannot be resolved inside the linked folder. The Clear Problems command removes only diagnostics published by this extension. Configuration
The connection workflow is explicit: Connect validates the URL and token and loads the visible components without selecting one. The project dropdown remains empty and disabled when validation fails. A project is linked only after the user selects it and presses Synchronize. Unsaved server and token drafts are preserved when moving between Data and Configuration. The configuration page is split into SonarQube, Pipeline, and Notifications tabs, each with its own accordions. SonarQube contains connection, project, and advanced scanner settings; Pipeline contains steps, templates, and integrations; and Notifications groups automatic alerts. The configuration page manages:
Token securityThe token is stored through:
Therefore:
Do not include real tokens in screenshots, issues, or project files. SynchronizationA synchronization performs these actions:
When the active folder changes, the extension selects the matching configuration. Previous requests are cancelled so a stale response cannot overwrite the current data. Available settings
DevelopmentInstall dependencies and compile:
Keep the compiler running:
Press Structure
Colors, icons, severities, types, statuses, and metrics are centralized. Webview pages, components, scripts, dialogs, and styles are maintained in separate modules. Generate the VSIXFrom PowerShell:
Without reinstalling dependencies:
You can also run:
The VSIX uses the version defined in Install the VSIX
Repository
LicenseSee LICENSE for usage and distribution terms. This license is not an Open Source Initiative-approved license because it restricts modification and distribution of derivative works. |






















