diff --git a/src/vs/workbench/parts/output/common/outputMode.ts b/src/vs/workbench/parts/output/common/outputMode.ts index 0eefc3386f69339427dc425f595345b65159591d..507160b225dd4312eb08370135c6dc442f034120 100644 --- a/src/vs/workbench/parts/output/common/outputMode.ts +++ b/src/vs/workbench/parts/output/common/outputMode.ts @@ -4,8 +4,6 @@ *--------------------------------------------------------------------------------------------*/ 'use strict'; -import types = require('vs/editor/common/modes/monarch/monarchTypes'); -import {compile} from 'vs/editor/common/modes/monarch/monarchCompile'; import {IModeDescriptor} from 'vs/editor/common/modes'; import {IInstantiationService} from 'vs/platform/instantiation/common/instantiation'; import {IModelService} from 'vs/editor/common/services/modelService'; @@ -17,66 +15,22 @@ import URI from 'vs/base/common/uri'; import * as modes from 'vs/editor/common/modes'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {AbstractMode, ModeWorkerManager} from 'vs/editor/common/modes/abstractMode'; -import {createTokenizationSupport} from 'vs/editor/common/modes/monarch/monarchLexer'; -import {LanguageConfigurationRegistry, IRichLanguageConfiguration} from 'vs/editor/common/modes/languageConfigurationRegistry'; import {wireCancellationToken} from 'vs/base/common/async'; -export const language: types.IMonarchLanguage = { - defaultToken: '', - tokenPostfix: '.log', - ignoreCase: true, - - tokenizer: { - root: [ - - // Log levels - [/^\[trace.*?\]|trace:?/, 'debug-token.output'], - [/^\[http.*?\]|http:?/, 'debug-token.output'], - [/^\[debug.*?\]|debug:?/, 'debug-token.output'], - [/^\[verbose.*?\]|verbose:?/, 'debug-token.output'], - [/^\[information.*?\]|information:?/, 'info-token.output'], - [/^\[info.*?\]|info:?/, 'info-token.output'], - [/^\[warning.*?\]|warning:?/, 'warn-token.output'], - [/^\[warn.*?\]|warn:?/, 'warn-token.output'], - [/^\[error.*?\]|error:?/, 'error-token.output'], - [/^\[fatal.*?\]|fatal:?/, 'error-token.output'] - ] - } -}; - export class OutputMode extends AbstractMode { - public static LANG_CONFIG:IRichLanguageConfiguration = { - brackets: [['{','}'], ['[',']'], ['(',')'], ['<','>']], - autoClosingPairs: [ - { open: '"', close: '"', notIn: ['string', 'comment'] }, - { open: '\'', close: '\'', notIn: ['string', 'comment'] }, - { open: '{', close: '}', notIn: ['string', 'comment'] }, - { open: '[', close: ']', notIn: ['string', 'comment'] }, - { open: '(', close: ')', notIn: ['string', 'comment'] }, - { open: '<', close: '>', notIn: ['string', 'comment'] }, - ] - }; - - public tokenizationSupport: modes.ITokenizationSupport; - private _modeWorkerManager: ModeWorkerManager; constructor( - descriptor:IModeDescriptor, + descriptor: IModeDescriptor, @IInstantiationService instantiationService: IInstantiationService, @IModeService modeService: IModeService, @IModelService modelService: IModelService, @IEditorWorkerService editorWorkerService: IEditorWorkerService ) { super(descriptor.id); - let lexer = compile(descriptor.id, language); this._modeWorkerManager = new ModeWorkerManager(descriptor, 'vs/workbench/parts/output/common/outputWorker', 'OutputWorker', null, instantiationService); - this.tokenizationSupport = createTokenizationSupport(modeService, this, lexer); - - LanguageConfigurationRegistry.register(this.getId(), OutputMode.LANG_CONFIG); - modes.LinkProviderRegistry.register(this.getId(), { provideLinks: (model, token): Thenable => { return wireCancellationToken(token, this._provideLinks(model.uri)); @@ -84,12 +38,12 @@ export class OutputMode extends AbstractMode { }); } - private _worker(runner:(worker:OutputWorker)=>winjs.TPromise): winjs.TPromise { + private _worker(runner: (worker: OutputWorker) => winjs.TPromise): winjs.TPromise { return this._modeWorkerManager.worker(runner); } static $_provideLinks = OneWorkerAttr(OutputMode, OutputMode.prototype._provideLinks); - private _provideLinks(resource:URI):winjs.TPromise { + private _provideLinks(resource: URI): winjs.TPromise { return this._worker((w) => w.provideLinks(resource)); } -} +} \ No newline at end of file