Skip to content

Commit ad0942b

Browse files
chore(status_bar): refactor status bar item
1 parent 47f2611 commit ad0942b

File tree

2 files changed

+25
-27
lines changed

2 files changed

+25
-27
lines changed

src/extension.ts

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,12 @@ import {
2323
languages,
2424
window,
2525
workspace,
26-
StatusBarItem,
27-
StatusBarAlignment,
2826
WebviewView,
2927
} from "vscode";
3028
import { GGShieldResolver } from "./lib/ggshield-resolver";
3129
import { getCurrentFile, isGitInstalled } from "./utils";
3230
import { GitGuardianWebviewProvider } from "./ggshield-webview/gitguardian-webview-view";
33-
import { StatusBarStatus, updateStatusBarItem } from "./gitguardian-interface/gitguardian-status-bar";
31+
import { createStatusBarItem, StatusBarStatus, updateStatusBarItem } from "./gitguardian-interface/gitguardian-status-bar";
3432
import {
3533
generateSecretName,
3634
GitGuardianSecretHoverProvider,
@@ -42,8 +40,6 @@ import { GitGuardianRemediationMessageWebviewProvider } from "./ggshield-webview
4240
* Extension diagnostic collection
4341
*/
4442
let diagnosticCollection: DiagnosticCollection;
45-
let statusBar: StatusBarItem;
46-
4743
/**
4844
* Scan a file using ggshield
4945
*
@@ -55,22 +51,22 @@ let statusBar: StatusBarItem;
5551
* @param filePath path to file
5652
* @param fileUri file uri
5753
*/
58-
async function scanFile(
54+
export async function scanFile(
5955
this: any,
6056
filePath: string,
6157
fileUri: Uri,
6258
configuration: GGShieldConfiguration
6359
): Promise<void> {
6460
const results = ggshieldScanFile(filePath, configuration);
6561
if (!results) {
66-
updateStatusBarItem(StatusBarStatus.ready, statusBar);
62+
updateStatusBarItem(StatusBarStatus.ready);
6763
return;
6864
}
6965
let incidentsDiagnostics: Diagnostic[] = parseGGShieldResults(results);
7066
if (incidentsDiagnostics.length !== 0) {
71-
updateStatusBarItem(StatusBarStatus.secretFound, statusBar);
67+
updateStatusBarItem(StatusBarStatus.secretFound);
7268
} else {
73-
updateStatusBarItem(StatusBarStatus.noSecretFound, statusBar);
69+
updateStatusBarItem(StatusBarStatus.noSecretFound);
7470
}
7571
diagnosticCollection.set(fileUri, incidentsDiagnostics);
7672
}
@@ -162,13 +158,11 @@ export function activate(context: ExtensionContext) {
162158
);
163159
context.subscriptions.push(ggshieldViewProvider, ggshieldRemediationMessageViewProvider, ggshieldQuotaViewProvider);
164160

165-
statusBar = window.createStatusBarItem(StatusBarAlignment.Left, 0);
166-
updateStatusBarItem(StatusBarStatus.initialization, statusBar);
161+
createStatusBarItem(context);
167162

168163
//generic commands to open correct view on status bar click
169164
registerOpenViewsCommands(context, outputChannel);
170165
registerQuotaViewCommands(ggshieldQuotaViewProvider);
171-
context.subscriptions.push(statusBar);
172166

173167
context.subscriptions.push(
174168
languages.registerHoverProvider("*", new GitGuardianSecretHoverProvider())
@@ -180,14 +174,14 @@ export function activate(context: ExtensionContext) {
180174
// Check if ggshield is authenticated
181175
ggshieldAuthStatus(configuration, context);
182176
if (context.globalState.get("isAuthenticated", false)) {
183-
updateStatusBarItem(StatusBarStatus.ready, statusBar);
177+
updateStatusBarItem(StatusBarStatus.ready);
184178
setApiKey(configuration, ggshieldApiKey(configuration));
185179
ggshieldViewProvider.refresh();
186180
ggshieldRemediationMessageViewProvider.refresh();
187181
ggshieldQuotaViewProvider.refresh();
188182

189183
} else {
190-
updateStatusBarItem(StatusBarStatus.unauthenticated, statusBar);
184+
updateStatusBarItem(StatusBarStatus.unauthenticated);
191185
}
192186
})
193187
.then(async () => {
@@ -262,10 +256,10 @@ export function activate(context: ExtensionContext) {
262256
context
263257
).then(() => {
264258
if (context.globalState.get("isAuthenticated", false)) {
265-
updateStatusBarItem(StatusBarStatus.ready, statusBar);
259+
updateStatusBarItem(StatusBarStatus.ready);
266260
setApiKey(configuration, ggshieldApiKey(configuration));
267261
} else {
268-
updateStatusBarItem(StatusBarStatus.unauthenticated, statusBar);
262+
updateStatusBarItem(StatusBarStatus.unauthenticated);
269263
}
270264
ggshieldViewProvider.refresh();
271265
ggshieldRemediationMessageViewProvider.refresh();
@@ -276,7 +270,7 @@ export function activate(context: ExtensionContext) {
276270
}),
277271
commands.registerCommand("gitguardian.logout", async () => {
278272
logoutGGShield(ggshieldResolver.configuration, context);
279-
updateStatusBarItem(StatusBarStatus.unauthenticated, statusBar);
273+
updateStatusBarItem(StatusBarStatus.unauthenticated);
280274
setApiKey(configuration, undefined);
281275
ggshieldViewProvider.refresh();
282276
ggshieldRemediationMessageViewProvider.refresh();
@@ -286,13 +280,8 @@ export function activate(context: ExtensionContext) {
286280
})
287281
.catch((error) => {
288282
outputChannel.appendLine(`Error: ${error.message}`);
289-
updateStatusBarItem(StatusBarStatus.error, statusBar);
283+
updateStatusBarItem(StatusBarStatus.error);
290284
});
291285
}
292286

293-
export function deactivate() {
294-
if (diagnosticCollection) {
295-
diagnosticCollection.dispose();
296-
statusBar.dispose();
297-
}
298-
}
287+
export function deactivate() {}

src/gitguardian-interface/gitguardian-status-bar.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import { StatusBarItem, ThemeColor } from "vscode";
1+
import { ExtensionContext, StatusBarAlignment, StatusBarItem, ThemeColor, window } from "vscode";
2+
3+
4+
let statusBarItem: StatusBarItem;
5+
26

37
export interface StatusBarConfig {
48
text: string;
@@ -16,7 +20,13 @@ export enum StatusBarStatus {
1620
error = "Error",
1721
}
1822

19-
export function getStatusBarConfig(status: StatusBarStatus): StatusBarConfig {
23+
export function createStatusBarItem(context: ExtensionContext): void {
24+
statusBarItem = window.createStatusBarItem(StatusBarAlignment.Left, 0);
25+
updateStatusBarItem(StatusBarStatus.initialization);
26+
context.subscriptions.push(statusBarItem);
27+
}
28+
29+
function getStatusBarConfig(status: StatusBarStatus): StatusBarConfig {
2030
switch (status) {
2131
case StatusBarStatus.initialization:
2232
return {
@@ -64,7 +74,6 @@ export function getStatusBarConfig(status: StatusBarStatus): StatusBarConfig {
6474

6575
export function updateStatusBarItem(
6676
status: StatusBarStatus,
67-
statusBarItem: StatusBarItem
6877
): void {
6978
const config = getStatusBarConfig(status);
7079
statusBarItem.text = config.text;

0 commit comments

Comments
 (0)