Skip to content

Commit 82ec804

Browse files
committed
Rename result provider to submission provider & make it extend webview base
1 parent d0ccd53 commit 82ec804

File tree

5 files changed

+54
-61
lines changed

5 files changed

+54
-61
lines changed

src/commands/submit.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { leetCodeExecutor } from "../leetCodeExecutor";
66
import { leetCodeManager } from "../leetCodeManager";
77
import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
88
import { getActiveFilePath } from "../utils/workspaceUtils";
9-
import { leetCodeResultProvider } from "../webview/leetCodeResultProvider";
9+
import { leetCodeSubmissionProvider } from "../webview/leetCodeSubmissionProvider";
1010

1111
export async function submitSolution(uri?: vscode.Uri): Promise<void> {
1212
if (!leetCodeManager.getUser()) {
@@ -21,7 +21,7 @@ export async function submitSolution(uri?: vscode.Uri): Promise<void> {
2121

2222
try {
2323
const result: string = await leetCodeExecutor.submitSolution(filePath);
24-
await leetCodeResultProvider.show(result);
24+
await leetCodeSubmissionProvider.show(result);
2525
} catch (error) {
2626
await promptForOpenOutputChannel("Failed to submit the solution. Please open the output channel for details.", DialogType.error);
2727
}

src/commands/test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { isWindows, usingCmd } from "../utils/osUtils";
1010
import { DialogType, promptForOpenOutputChannel, showFileSelectDialog } from "../utils/uiUtils";
1111
import { getActiveFilePath } from "../utils/workspaceUtils";
1212
import * as wsl from "../utils/wslUtils";
13-
import { leetCodeResultProvider } from "../webview/leetCodeResultProvider";
13+
import { leetCodeSubmissionProvider } from "../webview/leetCodeSubmissionProvider";
1414

1515
export async function testSolution(uri?: vscode.Uri): Promise<void> {
1616
try {
@@ -81,7 +81,7 @@ export async function testSolution(uri?: vscode.Uri): Promise<void> {
8181
if (!result) {
8282
return;
8383
}
84-
await leetCodeResultProvider.show(result);
84+
await leetCodeSubmissionProvider.show(result);
8585
} catch (error) {
8686
await promptForOpenOutputChannel("Failed to test the solution. Please open the output channel for details.", DialogType.error);
8787
}

src/extension.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ import { leetCodeManager } from "./leetCodeManager";
1818
import { leetCodeStatusBarController } from "./statusbar/leetCodeStatusBarController";
1919
import { DialogType, promptForOpenOutputChannel } from "./utils/uiUtils";
2020
import { leetCodePreviewProvider } from "./webview/leetCodePreviewProvider";
21-
import { leetCodeResultProvider } from "./webview/leetCodeResultProvider";
2221
import { leetCodeSolutionProvider } from "./webview/leetCodeSolutionProvider";
22+
import { leetCodeSubmissionProvider } from "./webview/leetCodeSubmissionProvider";
2323

2424
export async function activate(context: vscode.ExtensionContext): Promise<void> {
2525
try {
@@ -34,14 +34,14 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
3434

3535
const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider(context);
3636
leetCodePreviewProvider.initialize(context);
37-
leetCodeResultProvider.initialize(context);
3837
leetCodeSolutionProvider.initialize(context);
38+
leetCodeSubmissionProvider.initialize(context);
3939

4040
context.subscriptions.push(
4141
leetCodeStatusBarController,
4242
leetCodeChannel,
4343
leetCodePreviewProvider,
44-
leetCodeResultProvider,
44+
leetCodeSubmissionProvider,
4545
leetCodeSolutionProvider,
4646
leetCodeExecutor,
4747
vscode.window.createTreeView("leetCodeExplorer", { treeDataProvider: leetCodeTreeDataProvider, showCollapseAll: true }),

src/webview/leetCodeResultProvider.ts

Lines changed: 0 additions & 54 deletions
This file was deleted.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// Copyright (c) jdneo. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
import { ViewColumn } from "vscode";
5+
import { ILeetCodeWebviewOption, LeetCodeWebview } from "./LeetCodeWebview";
6+
import { markdownEngine } from "./markdownEngine";
7+
8+
class LeetCodeSubmissionProvider extends LeetCodeWebview {
9+
10+
private result: string;
11+
12+
public async show(result: string): Promise<void> {
13+
this.result = result;
14+
if (this.showWebviewInternal()) {
15+
this.panel.reveal(ViewColumn.Two);
16+
}
17+
}
18+
19+
public dispose(): void {
20+
if (this.panel) {
21+
this.panel.dispose();
22+
}
23+
}
24+
25+
protected getWebviewOption(): ILeetCodeWebviewOption {
26+
return {
27+
viewType: "leetcode.submission",
28+
title: "Submission",
29+
};
30+
}
31+
32+
protected getWebviewContent(): string {
33+
return `<!DOCTYPE html>
34+
<html lang="en">
35+
<head>
36+
<meta charset="UTF-8">
37+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
38+
${markdownEngine.getStyles()}
39+
</head>
40+
<body>
41+
<pre><code>${this.result.trim()}</code></pre>
42+
</body>
43+
</html>`;
44+
}
45+
}
46+
47+
export const leetCodeSubmissionProvider: LeetCodeSubmissionProvider = new LeetCodeSubmissionProvider();

0 commit comments

Comments
 (0)