From 8817581a1832b8011462091bbadca40678569374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E5=8D=A1=E7=90=B3?= Date: Wed, 18 Sep 2019 11:10:55 +0800 Subject: [PATCH 1/2] fix: CodeLens position --- src/codelens/CustomCodeLensProvider.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts index 52deaf38..efca3c27 100644 --- a/src/codelens/CustomCodeLensProvider.ts +++ b/src/codelens/CustomCodeLensProvider.ts @@ -22,13 +22,29 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider { return; } + const fileName: string = document.fileName.trim(); + const workspaceFolder: string = vscode.workspace.getConfiguration("leetcode").get("workspaceFolder", ""); + + if (fileName.indexOf(workspaceFolder) === -1) { + return undefined; + } + const content: string = document.getText(); const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=.* lang=.*/); if (!matchResult) { return undefined; } - const range: vscode.Range = new vscode.Range(document.lineCount - 1, 0, document.lineCount - 1, 0); + let codeLensLine: number = content.length - 1; + + for (let i: number = 0; i < content.length; ++i) { + if (content[i].indexOf("@lc code=end") >= 0) { + codeLensLine = i; + break; + } + } + + const range: vscode.Range = new vscode.Range(codeLensLine, 0, codeLensLine, 0); const codeLens: vscode.CodeLens[] = []; if (shortcuts.indexOf("submit") >= 0) { From 7c1cff957a861da4575a6446c33ac81f8ab85c9c Mon Sep 17 00:00:00 2001 From: Sheng Chen Date: Fri, 27 Sep 2019 19:59:11 +0800 Subject: [PATCH 2/2] Update version and fix some bugs --- package-lock.json | 18 +++++++++--------- package.json | 2 +- src/codelens/CustomCodeLensProvider.ts | 15 ++++----------- 3 files changed, 14 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index cb81a83b..88602cc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -316,9 +316,9 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", - "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==" }, "combined-stream": { "version": "1.0.7", @@ -485,9 +485,9 @@ } }, "end-of-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { "once": "^1.4.0" } @@ -1786,9 +1786,9 @@ } }, "vsc-leetcode-cli": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.10.tgz", - "integrity": "sha512-eGf0GorHCkheBnqJN5B/RslZcfdcI6wL/v5Z23e4M3IZVOrrasiL9t6alAVXsOmeVubdMDJAaWT8R08lY46YCA==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.11.tgz", + "integrity": "sha512-W0qFCLMh1vfFk/nbSj0Zc80tm1/kPAbF5gRJdm01XV19+2BE8RRHcwhWVPsOUksE6cK7Rw1KuvzGxS9wDLG2Qw==", "requires": { "ansi-styles": "3.2.1", "cheerio": "0.20.0", diff --git a/package.json b/package.json index bedaed77..45f6e63e 100644 --- a/package.json +++ b/package.json @@ -683,6 +683,6 @@ "markdown-it": "^8.4.2", "require-from-string": "^2.0.2", "unescape-js": "^1.1.1", - "vsc-leetcode-cli": "2.6.10" + "vsc-leetcode-cli": "2.6.11" } } diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts index efca3c27..4764e999 100644 --- a/src/codelens/CustomCodeLensProvider.ts +++ b/src/codelens/CustomCodeLensProvider.ts @@ -22,23 +22,16 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider { return; } - const fileName: string = document.fileName.trim(); - const workspaceFolder: string = vscode.workspace.getConfiguration("leetcode").get("workspaceFolder", ""); - - if (fileName.indexOf(workspaceFolder) === -1) { - return undefined; - } - const content: string = document.getText(); const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=.* lang=.*/); if (!matchResult) { return undefined; } - let codeLensLine: number = content.length - 1; - - for (let i: number = 0; i < content.length; ++i) { - if (content[i].indexOf("@lc code=end") >= 0) { + let codeLensLine: number = document.lineCount - 1; + for (let i: number = document.lineCount - 1; i >= 0; i--) { + const lineContent: string = document.lineAt(i).text; + if (lineContent.indexOf("@lc code=end") >= 0) { codeLensLine = i; break; }