diff --git a/src/activity.ts b/src/activity.ts index d4eed28f4..637865357 100644 --- a/src/activity.ts +++ b/src/activity.ts @@ -1,6 +1,6 @@ import { basename, parse, sep } from 'node:path'; -import type { Selection, TextDocument } from 'vscode'; -import { debug, env, window, workspace } from 'vscode'; +import type { Selection, TextDocument, Diagnostic } from 'vscode'; +import { debug, env, window, workspace, languages, DiagnosticSeverity } from 'vscode'; import { CONFIG_KEYS, CURSOR_IMAGE_KEY, @@ -52,6 +52,12 @@ async function fileDetails(_raw: string, document: TextDocument, selection: Sele raw = raw.replace(REPLACE_KEYS.CurrentColumn, (selection.active.character + 1).toLocaleString()); } + if (raw.includes(REPLACE_KEYS.CurrentErrors)) { + const diagnostics = languages.getDiagnostics(document.uri); + const errors = diagnostics.filter((diagnostic: Diagnostic) => diagnostic.severity === DiagnosticSeverity.Error); + raw = raw.replace(REPLACE_KEYS.CurrentErrors, errors.length.toLocaleString()); + } + if (raw.includes(REPLACE_KEYS.FileSize)) { let currentDivision = 0; let size: number; diff --git a/src/constants.ts b/src/constants.ts index 4cdf9a529..06052e3a6 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -37,6 +37,7 @@ export const enum REPLACE_KEYS { Workspace = '{workspace}', WorkspaceAndFolder = '{workspace_and_folder}', WorkspaceFolder = '{workspace_folder}', + CurrentErrors = '{current_errors}', } export const enum CONFIG_KEYS {