42a58afbde
* 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>
74 lines
1.9 KiB
TypeScript
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();
|
|
}
|