Skip to content

Commit

Permalink
Add Code Lens for submitting the answer
Browse files Browse the repository at this point in the history
  • Loading branch information
jdneo committed Jan 6, 2019
1 parent b68b352 commit 1f48e94
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/codeLensProvider.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright (c) jdneo. All rights reserved.
// Licensed under the MIT license.

import * as vscode from "vscode";

class CodeLensProvider implements vscode.CodeLensProvider {

private validFileNamePattern: RegExp = /\d+\..*\.(.+)/;

public provideCodeLenses(document: vscode.TextDocument): vscode.ProviderResult<vscode.CodeLens[]> {
const fileName: string = document.fileName.trim();
const matchResult: RegExpMatchArray | null = fileName.match(this.validFileNamePattern);
if (!matchResult) {
return undefined;
}

const range: vscode.Range = new vscode.Range(document.lineCount - 1, 0, document.lineCount - 1, 0);

const lens: vscode.CodeLens = new vscode.CodeLens(range, {
title: "🙏 Submit to LeetCode",
command: "leetcode.submitSolution",
});

return [lens];
}
}

export const codeLensProvider: CodeLensProvider = new CodeLensProvider();
2 changes: 2 additions & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// Licensed under the MIT license.

import * as vscode from "vscode";
import { codeLensProvider } from "./codeLensProvider";
import * as cache from "./commands/cache";
import * as plugin from "./commands/plugin";
import * as session from "./commands/session";
Expand All @@ -25,6 +26,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
leetCodeStatusBarItem,
leetCodeChannel,
vscode.window.registerTreeDataProvider("leetCodeExplorer", leetCodeTreeDataProvider),
vscode.languages.registerCodeLensProvider({ scheme: "file" }, codeLensProvider),
vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()),
vscode.commands.registerCommand("leetcode.toogleLeetCodeCn", () => plugin.toogleLeetCodeCn()),
vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()),
Expand Down

0 comments on commit 1f48e94

Please sign in to comment.