'use strict' ; import * as vscode from 'vscode' ; export default abstract class deepscanCodeActionProvider implements vscode . CodeActionProvider { private scheme : string = 'deepscan' ; private commandId : string ; private uri : vscode . Uri ; constructor ( id ) { this . commandId = `${ this . scheme }.${ id }` ; this . uri = vscode . Uri . parse ( `${ this . scheme }://${ id }` ) ; } provideCodeActions ( document , range , context , token ) { let diagnostics = context . diagnostics . filter ( diagnostic => this . scheme === diagnostic . source ) ; return this . codeActions ( document , range , diagnostics , token ) ; } abstract codeActions ( document , range , diagnostics , token ) ; protected getScheme ( ) { return this . scheme ; } protected getCommandId ( ) { return this . commandId ; } protected getUri ( ) { return this . uri ; } }