diff --git a/package.json b/package.json index fa3b0d3..553d731 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "displayName": "Coverage Tool", "publisher": "justinbossis", "description": "Highlights coverage.py lines in VSCode", - "version": "0.2.0", + "version": "0.2.1", "engines": { "vscode": "^1.92.0" }, diff --git a/src/config/ConfigProvider.ts b/src/config/ConfigProvider.ts index 8cd5141..21ab34c 100644 --- a/src/config/ConfigProvider.ts +++ b/src/config/ConfigProvider.ts @@ -16,6 +16,7 @@ function createDecor(bgColor: string) { isWholeLine: true, overviewRulerLane: OverviewRulerLane.Full, overviewRulerColor: bgColor.replace(RegExp(/0\.(\d+)/), '0.8'), + rangeBehavior: 1, }, ); } diff --git a/src/extension.ts b/src/extension.ts index cf37972..19b3aa8 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -105,9 +105,9 @@ async function updateCache(files: vscode.Uri) { } function updateDecorations(editor: vscode.TextEditor, coverage: IFileDecorationRange) { - editor.setDecorations(config.excludedDecor, coverage.excludedRanges); - editor.setDecorations(config.missingDecor, coverage.missingRanges); - editor.setDecorations(config.executedDecor, coverage.executedRanges); + editor.setDecorations(config.excludedDecor, coverage.excludedRanges.filter(range => editor.document.validateRange(range))); + editor.setDecorations(config.missingDecor, coverage.missingRanges.filter(range => editor.document.validateRange(range))); + editor.setDecorations(config.executedDecor, coverage.executedRanges.filter(range => editor.document.validateRange(range))); } function updateFileHighlight(editor: vscode.TextEditor) { @@ -282,6 +282,11 @@ export async function activate(context: vscode.ExtensionContext) { updateFileHighlight(editor); } }); + vscode.workspace.onDidChangeTextDocument(event => { + if (vscode.window.activeTextEditor && event.document === vscode.window.activeTextEditor.document) { + updateFileHighlight(vscode.window.activeTextEditor); + } + }, null, context.subscriptions); const rootPath = vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0 ? vscode.workspace.workspaceFolders[0].uri.fsPath