Fixes updating CodeLens after file save

Fixes updating active line annotations after file save
This commit is contained in:
Eric Amodio
2017-02-06 15:56:39 -05:00
parent b0257ca040
commit 964cfd363e
3 changed files with 48 additions and 16 deletions

View File

@@ -1,6 +1,6 @@
'use strict';
import { Functions, Iterables, Strings } from './system';
import { CancellationToken, CodeLens, CodeLensProvider, commands, DocumentSelector, ExtensionContext, Position, Range, SymbolInformation, SymbolKind, TextDocument, Uri, workspace } from 'vscode';
import { CancellationToken, CodeLens, CodeLensProvider, commands, DocumentSelector, Event, EventEmitter, ExtensionContext, Position, Range, SymbolInformation, SymbolKind, TextDocument, Uri, workspace } from 'vscode';
import { BuiltInCommands, Commands, DocumentSchemes } from './constants';
import { CodeLensCommand, CodeLensLocation, IConfig, ICodeLensLanguageLocation } from './configuration';
import GitProvider, { GitCommit, GitUri, IGitBlame, IGitBlameLines } from './gitProvider';
@@ -31,6 +31,11 @@ export class GitAuthorsCodeLens extends CodeLens {
export default class GitCodeLensProvider implements CodeLensProvider {
private _onDidChangeCodeLensesEmitter = new EventEmitter<void>();
public get onDidChangeCodeLenses(): Event<void> {
return this._onDidChangeCodeLensesEmitter.event;
}
static selector: DocumentSelector = { scheme: DocumentSchemes.File };
private _config: IConfig;
@@ -39,6 +44,11 @@ export default class GitCodeLensProvider implements CodeLensProvider {
this._config = workspace.getConfiguration('').get<IConfig>('gitlens');
}
reset() {
Logger.log('Triggering a reset of the git CodeLens provider');
this._onDidChangeCodeLensesEmitter.fire();
}
async provideCodeLenses(document: TextDocument, token: CancellationToken): Promise<CodeLens[]> {
let languageLocations = this._config.codeLens.languageLocations.find(_ => _.language.toLowerCase() === document.languageId);
if (languageLocations == null) {