bw-hspc-contest-env/extension/bwcontest/src/extension.ts
David Poeschl 42a58afbde
Extension: Merge show team relevant repo management buttons (#17)
* Extension: Show team relevant repo management buttons

* fix formatting

* Fix: Actually delete team repo contents

Was passing incomplete path to remove API

* Extra logging

* Formatting

* Fix path on windows

* Remove logs

---------

Co-authored-by: orosmatthew <orosmatthew@pm.me>
2024-03-13 13:13:09 -04:00

74 lines
1.9 KiB
TypeScript

import * as vscode from 'vscode';
import { SidebarProvider } from './SidebarProvider';
import outputPanelLog from './outputPanelLog';
import {
startTeamStatusPollingOnActivation,
stopTeamStatusPolling,
useFastPolling
} from './contestMonitor/pollingService';
import {
clearCachedRepoState,
refreshRepoState,
setRepoManagerExtensionContext
} from './teamRepoManager';
import { BWPanel } from './problemPanel';
export interface BWContestSettings {
repoBaseUrl: string;
webUrl: string;
repoClonePath: string;
javaPath: string;
debugFastPolling: boolean;
}
export function extensionSettings(): BWContestSettings {
return vscode.workspace.getConfiguration().get<BWContestSettings>('BWContest')!;
}
export function activate(context: vscode.ExtensionContext) {
outputPanelLog.info('BWContest Extension Activated');
const sidebarProvider = new SidebarProvider(
context.extensionUri,
context,
extensionSettings().webUrl
);
let fastPolling = extensionSettings().debugFastPolling;
useFastPolling(fastPolling);
context.subscriptions.push(
vscode.window.registerWebviewViewProvider('bwcontest-sidebar', sidebarProvider),
vscode.commands.registerCommand('bwcontest.toggleFastPolling', () => {
if (!extensionSettings().debugFastPolling) {
outputPanelLog.trace('Tried to toggle fast polling, but not allowed.');
return;
}
fastPolling = !fastPolling;
useFastPolling(fastPolling);
}),
vscode.commands.registerCommand('bwcontest.showTestSubmitPage', () => {
BWPanel.show(context, extensionSettings().webUrl);
}),
vscode.commands.registerCommand('bwcontest.refreshState', () => {
refreshRepoState();
})
);
startTeamStatusPollingOnActivation(context);
setRepoManagerExtensionContext(context);
refreshRepoState();
vscode.workspace.onDidChangeWorkspaceFolders(() => {
refreshRepoState();
});
}
export function deactivate() {
outputPanelLog.info('BWContest Extension Deactivated');
stopTeamStatusPolling();
clearCachedRepoState();
}