From 3fd42506e7c6adf2bbe42aa9750ba0c65d596dd6 Mon Sep 17 00:00:00 2001 From: Ramya Achutha Rao Date: Tue, 26 Sep 2017 15:10:52 -0700 Subject: [PATCH] Clear coverage before applying Fixes #1171 --- src/goCover.ts | 25 ++++++++++++++++--------- src/goDeclaration.ts | 12 ++++++------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/goCover.ts b/src/goCover.ts index 0a50dfd35..a6b5ece14 100644 --- a/src/goCover.ts +++ b/src/goCover.ts @@ -145,15 +145,22 @@ function highlightCoverage(editor: vscode.TextEditor, file: CoverageFile, remove let cfg = vscode.workspace.getConfiguration('go', editor.document.uri); let coverageOptions = cfg['coverageOptions']; let coverageDecorator = cfg['coverageDecorator']; - let hideUncovered = remove || coverageOptions === 'showCoveredCodeOnly'; - let hideCovered = remove || coverageOptions === 'showUncoveredCodeOnly'; - - if (coverageDecorator === 'gutter') { - editor.setDecorations(coveredGutter, hideCovered ? [] : file.coveredRange); - editor.setDecorations(uncoveredGutter, hideUncovered ? [] : file.uncoveredRange); - } else { - editor.setDecorations(uncoveredHighLight, hideUncovered ? [] : file.uncoveredRange); - editor.setDecorations(coveredHighLight, hideCovered ? [] : file.coveredRange); + + editor.setDecorations(coveredGutter, []); + editor.setDecorations(coveredHighLight, []); + editor.setDecorations(uncoveredGutter, []); + editor.setDecorations(uncoveredHighLight, []); + + if (remove) { + return; + } + + if (coverageOptions === 'showCoveredCodeOnly' || coverageOptions === 'showBothCoveredAndUncoveredCode') { + editor.setDecorations(coverageDecorator === 'gutter' ? coveredGutter : coveredHighLight, file.coveredRange); + } + + if (coverageOptions === 'showUncoveredCodeOnly' || coverageOptions === 'showBothCoveredAndUncoveredCode') { + editor.setDecorations(coverageDecorator === 'gutter' ? uncoveredGutter : uncoveredHighLight, file.uncoveredRange); } } diff --git a/src/goDeclaration.ts b/src/goDeclaration.ts index d04895feb..3a44281b5 100644 --- a/src/goDeclaration.ts +++ b/src/goDeclaration.ts @@ -57,7 +57,7 @@ function definitionLocation_godef(document: vscode.TextDocument, position: vscod return new Promise((resolve, reject) => { // Spawn `godef` process - let p = cp.execFile(godef, ['-t', '-i', '-f', document.fileName, '-o', offset.toString()], {env}, (err, stdout, stderr) => { + let p = cp.execFile(godef, ['-t', '-i', '-f', document.fileName, '-o', offset.toString()], { env }, (err, stdout, stderr) => { try { if (err && (err).code === 'ENOENT') { return reject(missingToolMsg + 'godef'); @@ -89,7 +89,7 @@ function definitionLocation_godef(document: vscode.TextDocument, position: vscod if (!includeDocs) { return resolve(definitionInformation); } - cp.execFile(godoc, [pkgPath], {env}, (err, stdout, stderr) => { + cp.execFile(godoc, [pkgPath], { env }, (err, stdout, stderr) => { if (err && (err).code === 'ENOENT') { vscode.window.showInformationMessage('The "godoc" command is not available.'); } @@ -126,11 +126,11 @@ function definitionLocation_gogetdoc(document: vscode.TextDocument, position: vs } return new Promise((resolve, reject) => { - + let gogetdocFlagsWithoutTags = ['-u', '-json', '-modified', '-pos', document.fileName + ':#' + offset.toString()]; let buildTags = vscode.workspace.getConfiguration('go', document.uri)['buildTags']; let gogetdocFlags = (buildTags && useTags) ? [...gogetdocFlagsWithoutTags, '-tags', '"' + buildTags + '"'] : gogetdocFlagsWithoutTags; - let p = cp.execFile(gogetdoc, gogetdocFlags, {env}, (err, stdout, stderr) => { + let p = cp.execFile(gogetdoc, gogetdocFlags, { env }, (err, stdout, stderr) => { try { if (err && (err).code === 'ENOENT') { return reject(missingToolMsg + 'gogetdoc'); @@ -174,9 +174,9 @@ function definitionLocation_guru(document: vscode.TextDocument, position: vscode if (!path.isAbsolute(guru)) { return Promise.reject(missingToolMsg + 'guru'); } - + return new Promise((resolve, reject) => { - let p = cp.execFile(guru, ['-json', '-modified', 'definition', document.fileName + ':#' + offset.toString()], {env}, (err, stdout, stderr) => { + let p = cp.execFile(guru, ['-json', '-modified', 'definition', document.fileName + ':#' + offset.toString()], { env }, (err, stdout, stderr) => { try { if (err && (err).code === 'ENOENT') { return reject(missingToolMsg + 'guru');