提交 9a57fba4 编写于 作者: B Benjamin Pasero

output: disable monarch mode and "language" configuration

上级 03871624
......@@ -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<OutputWorker>;
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<OutputWorker>(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<modes.ILink[]> => {
return wireCancellationToken(token, this._provideLinks(model.uri));
......@@ -84,12 +38,12 @@ export class OutputMode extends AbstractMode {
});
}
private _worker<T>(runner:(worker:OutputWorker)=>winjs.TPromise<T>): winjs.TPromise<T> {
private _worker<T>(runner: (worker: OutputWorker) => winjs.TPromise<T>): winjs.TPromise<T> {
return this._modeWorkerManager.worker(runner);
}
static $_provideLinks = OneWorkerAttr(OutputMode, OutputMode.prototype._provideLinks);
private _provideLinks(resource:URI):winjs.TPromise<modes.ILink[]> {
private _provideLinks(resource: URI): winjs.TPromise<modes.ILink[]> {
return this._worker((w) => w.provideLinks(resource));
}
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册