Remove AbstractModeWorker
This commit is contained in:
parent
4cc4ccef3e
commit
eaba095155
14 changed files with 108 additions and 96 deletions
|
@ -7,7 +7,6 @@
|
|||
import {EventEmitter} from 'vs/base/common/eventEmitter';
|
||||
import {NullMode} from 'vs/editor/common/modes/nullMode';
|
||||
import {TextualSuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport';
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
import EditorCommon = require('vs/editor/common/editorCommon');
|
||||
import {IDisposable} from 'vs/base/common/lifecycle';
|
||||
|
@ -21,7 +20,7 @@ export function createWordRegExp(allowInWords:string = ''): RegExp {
|
|||
return NullMode.createWordRegExp(allowInWords);
|
||||
}
|
||||
|
||||
export abstract class AbstractMode<W extends AbstractModeWorker> implements Modes.IMode {
|
||||
export abstract class AbstractMode<W> implements Modes.IMode {
|
||||
|
||||
_instantiationService:IInstantiationService;
|
||||
_threadService:IThreadService;
|
||||
|
@ -245,7 +244,7 @@ export var isDigit:(character:string, base:number)=>boolean = (function () {
|
|||
};
|
||||
})();
|
||||
|
||||
export class FrankensteinMode extends AbstractMode<AbstractModeWorker> {
|
||||
export class FrankensteinMode extends AbstractMode<void> {
|
||||
|
||||
public suggestSupport:Modes.ISuggestSupport;
|
||||
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
|
||||
import {IMarkerService} from 'vs/platform/markers/common/markers';
|
||||
import {IResourceService} from 'vs/editor/common/services/resourceService';
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
|
||||
export abstract class AbstractModeWorker {
|
||||
|
||||
public resourceService:IResourceService;
|
||||
public markerService: IMarkerService;
|
||||
|
||||
private _modeId: string;
|
||||
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService
|
||||
) {
|
||||
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
}
|
||||
|
||||
_getModeId(): string {
|
||||
return this._modeId;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -10,7 +10,6 @@
|
|||
*/
|
||||
|
||||
import {AbstractMode} from 'vs/editor/common/modes/abstractMode';
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import {ILexer} from 'vs/editor/common/modes/monarch/monarchCommon';
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
import MonarchDefinition = require('vs/editor/common/modes/monarch/monarchDefinition');
|
||||
|
@ -25,7 +24,7 @@ import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerServic
|
|||
/**
|
||||
* The MonarchMode creates a Monaco language mode given a certain language description
|
||||
*/
|
||||
export class MonarchMode<W extends AbstractModeWorker> extends AbstractMode<W> {
|
||||
export class MonarchMode<W> extends AbstractMode<W> {
|
||||
|
||||
public suggestSupport:Modes.ISuggestSupport;
|
||||
public tokenizationSupport: Modes.ITokenizationSupport;
|
||||
|
|
|
@ -4,11 +4,20 @@
|
|||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import {IMarkerService} from 'vs/platform/markers/common/markers';
|
||||
import {IResourceService} from 'vs/editor/common/services/resourceService';
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
|
||||
/// <summary>
|
||||
/// This is a special worker that does nothing
|
||||
/// </summary>
|
||||
export class NullWorker extends AbstractModeWorker {
|
||||
export class NullWorker {
|
||||
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService
|
||||
) {
|
||||
|
||||
// console.log('null worker created');
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
|
||||
'use strict';
|
||||
|
||||
// Require the modes worker since it is used in all workers to avoid rebundleing of the code with all worker
|
||||
import 'vs/editor/common/modes/abstractModeWorker';
|
||||
// include these in the editor bundle because they are widely used by many languages
|
||||
import 'vs/editor/common/languages.common';
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import URI from 'vs/base/common/uri';
|
|||
import _severity from 'vs/base/common/severity';
|
||||
import strings = require('vs/base/common/strings');
|
||||
import winjs = require('vs/base/common/winjs.base');
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import languageService = require('vs/languages/css/common/services/cssLanguageService');
|
||||
import languageFacts = require('vs/languages/css/common/services/languageFacts');
|
||||
import occurrences = require('./services/occurrences');
|
||||
|
@ -28,22 +27,30 @@ import {IResourceService} from 'vs/editor/common/services/resourceService';
|
|||
import {filterSuggestions} from 'vs/editor/common/modes/supports/suggestSupport';
|
||||
import {ValidationHelper} from 'vs/editor/common/worker/validationHelper';
|
||||
|
||||
export class CSSWorker extends AbstractModeWorker {
|
||||
export class CSSWorker {
|
||||
|
||||
public languageService: languageService.ILanguageService;
|
||||
|
||||
private resourceService:IResourceService;
|
||||
private markerService: IMarkerService;
|
||||
private _modeId: string;
|
||||
private validationEnabled : boolean;
|
||||
private lintSettings : lintRules.IConfigurationSettings;
|
||||
private _validationHelper: ValidationHelper;
|
||||
|
||||
constructor(modeId: string, participants: Modes.IWorkerParticipant[], @IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService) {
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService
|
||||
) {
|
||||
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
|
||||
this._validationHelper = new ValidationHelper(
|
||||
this.resourceService,
|
||||
this._getModeId(),
|
||||
this._modeId,
|
||||
(toValidate) => this.doValidate(toValidate)
|
||||
);
|
||||
|
||||
|
@ -147,7 +154,7 @@ export class CSSWorker extends AbstractModeWorker {
|
|||
|
||||
private doValidate1(resource: URI):void {
|
||||
if (!this.validationEnabled) {
|
||||
this.markerService.changeOne(this._getModeId(), resource, []);
|
||||
this.markerService.changeOne(this._modeId, resource, []);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -164,7 +171,7 @@ export class CSSWorker extends AbstractModeWorker {
|
|||
.filter(entry => entry.getLevel() !== _level.Level.Ignore)
|
||||
.map(entry => this._createMarkerData(modelMirror, entry));
|
||||
|
||||
this.markerService.changeOne(this._getModeId(), resource, markerData);
|
||||
this.markerService.changeOne(this._modeId, resource, markerData);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
|
||||
import URI from 'vs/base/common/uri';
|
||||
import winjs = require('vs/base/common/winjs.base');
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import beautifyHTML = require('vs/languages/lib/common/beautify-html');
|
||||
import htmlTags = require('vs/languages/html/common/htmlTags');
|
||||
import network = require('vs/base/common/network');
|
||||
|
@ -32,16 +31,25 @@ interface IColorRange {
|
|||
value:string;
|
||||
}
|
||||
|
||||
export class HTMLWorker extends AbstractModeWorker {
|
||||
export class HTMLWorker {
|
||||
|
||||
private _contextService: IWorkspaceContextService;
|
||||
|
||||
private resourceService:IResourceService;
|
||||
private markerService: IMarkerService;
|
||||
private _modeId: string;
|
||||
private _tagProviders: htmlTags.IHTMLTagProvider[];
|
||||
|
||||
constructor(modeId: string, participants: Modes.IWorkerParticipant[], @IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService, @IWorkspaceContextService contextService:IWorkspaceContextService) {
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService,
|
||||
@IWorkspaceContextService contextService:IWorkspaceContextService
|
||||
) {
|
||||
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
this._contextService = contextService;
|
||||
|
||||
this._tagProviders = [];
|
||||
|
@ -95,7 +103,7 @@ export class HTMLWorker extends AbstractModeWorker {
|
|||
|
||||
var modeAtPosition = modelAtPosition.getMode();
|
||||
|
||||
return callback(modeAtPosition.getId() !== this._getModeId(), modelAtPosition);
|
||||
return callback(modeAtPosition.getId() !== this._modeId, modelAtPosition);
|
||||
}
|
||||
|
||||
_delegateToAllModes<T>(resource:URI, callback:(models:EditorCommon.IMirrorModel[]) => T): T {
|
||||
|
|
|
@ -72,7 +72,7 @@ export class JavaScriptWorker extends typeScriptWorker.TypeScriptWorker2 {
|
|||
markers.push(marker);
|
||||
}
|
||||
});
|
||||
this.markerService.changeOne(`/${this._getModeId() }/semantic`, resource, markers);
|
||||
this.markerService.changeOne(`/${this._modeId}/semantic`, resource, markers);
|
||||
return result.hasMissingFiles;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ import URI from 'vs/base/common/uri';
|
|||
import Severity from 'vs/base/common/severity';
|
||||
import EditorCommon = require('vs/editor/common/editorCommon');
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import HtmlContent = require('vs/base/common/htmlContent');
|
||||
import Parser = require('./parser/jsonParser');
|
||||
import JSONFormatter = require('vs/languages/json/common/features/jsonFormatter');
|
||||
|
@ -69,7 +68,7 @@ export interface IJSONWorkerContribution {
|
|||
collectDefaultSuggestions(resource: URI, result: ISuggestionsCollector): WinJS.Promise;
|
||||
}
|
||||
|
||||
export class JSONWorker extends AbstractModeWorker implements Modes.IExtraInfoSupport {
|
||||
export class JSONWorker implements Modes.IExtraInfoSupport {
|
||||
|
||||
private schemaService: SchemaService.IJSONSchemaService;
|
||||
private requestService: IRequestService;
|
||||
|
@ -77,17 +76,27 @@ export class JSONWorker extends AbstractModeWorker implements Modes.IExtraInfoSu
|
|||
private jsonIntellisense : JSONIntellisense.JSONIntellisense;
|
||||
private contributions: IJSONWorkerContribution[];
|
||||
private _validationHelper: ValidationHelper;
|
||||
private resourceService:IResourceService;
|
||||
private markerService: IMarkerService;
|
||||
private _modeId: string;
|
||||
|
||||
constructor(modeId: string, participants: Modes.IWorkerParticipant[], @IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService, @IRequestService requestService: IRequestService,
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService,
|
||||
@IRequestService requestService: IRequestService,
|
||||
@IWorkspaceContextService contextService: IWorkspaceContextService,
|
||||
@IInstantiationService instantiationService: IInstantiationService) {
|
||||
@IInstantiationService instantiationService: IInstantiationService
|
||||
) {
|
||||
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
|
||||
this._validationHelper = new ValidationHelper(
|
||||
this.resourceService,
|
||||
this._getModeId(),
|
||||
this._modeId,
|
||||
(toValidate) => this.doValidate(toValidate)
|
||||
);
|
||||
|
||||
|
@ -252,7 +261,7 @@ export class JSONWorker extends AbstractModeWorker implements Modes.IExtraInfoSu
|
|||
}
|
||||
});
|
||||
|
||||
this.markerService.changeOne(this._getModeId(), resource, markerData);
|
||||
this.markerService.changeOne(this._modeId, resource, markerData);
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
'use strict';
|
||||
|
||||
import WinJS = require('vs/base/common/winjs.base');
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import URI from 'vs/base/common/uri';
|
||||
import Types = require('vs/base/common/types');
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
|
@ -23,7 +22,7 @@ enum Theme {
|
|||
HC_BLACK
|
||||
}
|
||||
|
||||
export class MarkdownWorker extends AbstractModeWorker {
|
||||
export class MarkdownWorker {
|
||||
|
||||
private static DEFAULT_MODE = 'text/plain';
|
||||
|
||||
|
@ -95,15 +94,20 @@ export class MarkdownWorker extends AbstractModeWorker {
|
|||
].join('\n');
|
||||
|
||||
private modeService: IModeService;
|
||||
private resourceService:IResourceService;
|
||||
private markerService: IMarkerService;
|
||||
private _modeId: string;
|
||||
|
||||
constructor(
|
||||
modeId: string, participants: Modes.IWorkerParticipant[],
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService,
|
||||
@IModeService modeService: IModeService
|
||||
) {
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
this.modeService = modeService;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,6 @@ import {AbstractState} from 'vs/editor/common/modes/abstractState';
|
|||
import {IModeService} from 'vs/editor/common/services/modeService';
|
||||
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
|
||||
import {IThreadService} from 'vs/platform/thread/common/thread';
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import {RichEditSupport} from 'vs/editor/common/modes/supports/richEditSupport';
|
||||
import {TokenizationSupport, ILeavingNestedModeData, ITokenizationCustomization} from 'vs/editor/common/modes/supports/tokenizationSupport';
|
||||
import {TextualSuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport';
|
||||
|
@ -459,7 +458,7 @@ export class PHPEnterHTMLState extends PHPState {
|
|||
|
||||
}
|
||||
|
||||
export class PHPMode extends AbstractMode<AbstractModeWorker> implements ITokenizationCustomization {
|
||||
export class PHPMode extends AbstractMode<void> implements ITokenizationCustomization {
|
||||
|
||||
public tokenizationSupport: Modes.ITokenizationSupport;
|
||||
public richEditSupport: Modes.IRichEditSupport;
|
||||
|
|
|
@ -9,7 +9,6 @@ import {AbstractMode} from 'vs/editor/common/modes/abstractMode';
|
|||
import {AbstractState} from 'vs/editor/common/modes/abstractState';
|
||||
import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation';
|
||||
import {IThreadService} from 'vs/platform/thread/common/thread';
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import {TokenizationSupport} from 'vs/editor/common/modes/supports/tokenizationSupport';
|
||||
import {TextualSuggestSupport} from 'vs/editor/common/modes/supports/suggestSupport';
|
||||
import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService';
|
||||
|
@ -39,7 +38,7 @@ class State extends AbstractState {
|
|||
}
|
||||
}
|
||||
|
||||
export class Mode extends AbstractMode<AbstractModeWorker> {
|
||||
export class Mode extends AbstractMode<void> {
|
||||
|
||||
public suggestSupport:Modes.ISuggestSupport;
|
||||
public tokenizationSupport: Modes.ITokenizationSupport;
|
||||
|
|
|
@ -10,7 +10,6 @@ import URI from 'vs/base/common/uri';
|
|||
import lifecycle = require('vs/base/common/lifecycle');
|
||||
import EditorCommon = require('vs/editor/common/editorCommon');
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import objects = require('vs/base/common/objects');
|
||||
import ts = require('vs/languages/typescript/common/lib/typescriptServices');
|
||||
import Options = require('vs/languages/typescript/common/options');
|
||||
|
@ -34,7 +33,7 @@ import {IMarker, IMarkerService} from 'vs/platform/markers/common/markers';
|
|||
import {filterSuggestions} from 'vs/editor/common/modes/supports/suggestSupport';
|
||||
import {ValidationHelper} from 'vs/editor/common/worker/validationHelper';
|
||||
|
||||
export class TypeScriptWorker2 extends AbstractModeWorker {
|
||||
export class TypeScriptWorker2 {
|
||||
|
||||
private _modelListener: { [resource: string]: Function } = Object.create(null);
|
||||
|
||||
|
@ -42,15 +41,24 @@ export class TypeScriptWorker2 extends AbstractModeWorker {
|
|||
protected _options: Options;
|
||||
protected _disposables: lifecycle.IDisposable[] = [];
|
||||
private _validationHelper: ValidationHelper;
|
||||
private resourceService:IResourceService;
|
||||
protected markerService: IMarkerService;
|
||||
protected _modeId: string;
|
||||
|
||||
constructor(modeId: string, participants: Modes.IWorkerParticipant[], @IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService) {
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: Modes.IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService
|
||||
) {
|
||||
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
|
||||
this._validationHelper = new ValidationHelper(
|
||||
this.resourceService,
|
||||
this._getModeId(),
|
||||
this._modeId,
|
||||
(toValidate) => this.doValidate(toValidate)
|
||||
);
|
||||
|
||||
|
@ -76,7 +84,7 @@ export class TypeScriptWorker2 extends AbstractModeWorker {
|
|||
|
||||
return (
|
||||
/\.(ts|js)$/.test(element.getAssociatedResource().fsPath) ||
|
||||
element.getMode().getId() === this._getModeId()
|
||||
element.getMode().getId() === this._modeId
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -177,14 +185,14 @@ export class TypeScriptWorker2 extends AbstractModeWorker {
|
|||
markers.push.apply(markers, diagnostics.getSyntacticDiagnostics(project.languageService, resource, project.host.getCompilationSettings(),
|
||||
this._options, this.resourceService.get(resource).getMode().getId() === 'javascript'));
|
||||
markers.push.apply(markers, diagnostics.getExtraDiagnostics(project.languageService, resource, this._options));
|
||||
this.markerService.changeOne(`/${this._getModeId() }/syntactic`, resource, markers);
|
||||
this.markerService.changeOne(`/${this._modeId}/syntactic`, resource, markers);
|
||||
}
|
||||
|
||||
public doValidateSemantics(resource: URI): boolean {
|
||||
var project = this._projectService.getProject(resource);
|
||||
var result = diagnostics.getSemanticDiagnostics(project.languageService, resource, this._options);
|
||||
if (result) {
|
||||
this.markerService.changeOne(`/${this._getModeId() }/semantic`, resource, result.markers);
|
||||
this.markerService.changeOne(`/${this._modeId}/semantic`, resource, result.markers);
|
||||
return result.hasMissingFiles;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
import {TPromise} from 'vs/base/common/winjs.base';
|
||||
import {IMarkerService} from 'vs/platform/markers/common/markers';
|
||||
import {IResourceService} from 'vs/editor/common/services/resourceService';
|
||||
import {AbstractModeWorker} from 'vs/editor/common/modes/abstractModeWorker';
|
||||
import URI from 'vs/base/common/uri';
|
||||
import strings = require('vs/base/common/strings');
|
||||
import arrays = require('vs/base/common/arrays');
|
||||
|
@ -19,14 +18,23 @@ import {IWorkspaceContextService, IWorkspace} from 'vs/platform/workspace/common
|
|||
/**
|
||||
* A base class of text editor worker that helps with detecting links in the text that point to files in the workspace.
|
||||
*/
|
||||
export class OutputWorker extends AbstractModeWorker {
|
||||
export class OutputWorker {
|
||||
private _contextService: IWorkspaceContextService;
|
||||
private patterns: RegExp[];
|
||||
private resourceService:IResourceService;
|
||||
private markerService: IMarkerService;
|
||||
private _modeId: string;
|
||||
|
||||
constructor(modeId: string, participants: IWorkerParticipant[], @IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService, @IWorkspaceContextService contextService:IWorkspaceContextService) {
|
||||
super(modeId, participants, resourceService, markerService);
|
||||
|
||||
constructor(
|
||||
modeId: string,
|
||||
participants: IWorkerParticipant[],
|
||||
@IResourceService resourceService: IResourceService,
|
||||
@IMarkerService markerService: IMarkerService,
|
||||
@IWorkspaceContextService contextService:IWorkspaceContextService
|
||||
) {
|
||||
this._modeId = modeId;
|
||||
this.resourceService = resourceService;
|
||||
this.markerService = markerService;
|
||||
this._contextService = contextService;
|
||||
|
||||
let workspace = this._contextService.getWorkspace();
|
||||
|
|
Loading…
Reference in a new issue