提交 3cc884df 编写于 作者: A Alex Dima

Clean up modesRegistry

上级 9e589be9
......@@ -30,14 +30,13 @@ import {IContextViewService} from 'vs/platform/contextview/browser/contextView';
import {IModeService} from 'vs/editor/common/services/modeService';
import {IModelService} from 'vs/editor/common/services/modelService';
import colorizer = require('vs/editor/browser/standalone/colorizer');
import {IEditorModesRegistry, Extensions} from 'vs/editor/common/modes/modesRegistry';
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import {Registry} from 'vs/platform/platform';
import {AbstractKeybindingService} from 'vs/platform/keybinding/browser/keybindingServiceImpl';
import {ICodeEditorService} from 'vs/editor/common/services/codeEditorService';
import {IJSONSchema} from 'vs/base/common/jsonSchema';
import * as JSONContributionRegistry from 'vs/platform/jsonschemas/common/jsonContributionRegistry';
import {ILanguageExtensionPoint} from 'vs/editor/common/services/modeService';
import {registerLanguage} from 'vs/editor/common/modes/modesRegistry';
// Set defaults for standalone editor
DefaultConfig.editor.wrappingIndent = 'none';
......@@ -402,8 +401,7 @@ export function configureMode(modeId: string, options: any): void {
}
export function registerWorkerParticipant(modeId:string, moduleName:string, ctorName:string): void {
var modeRegistry = <IEditorModesRegistry> Registry.as(Extensions.EditorModes);
modeRegistry.registerWorkerParticipant(modeId, moduleName, ctorName);
ModesRegistry.registerWorkerParticipant(modeId, moduleName, ctorName);
}
export function getAPI(): typeof vscode {
......@@ -418,7 +416,7 @@ export function createCustomMode(language:MonarchTypes.ILanguage): TPromise<Mode
var modeId = language.name;
var name = language.name;
registerLanguage({
ModesRegistry.registerLanguage({
id: modeId,
aliases: [name]
});
......@@ -431,7 +429,7 @@ export function createCustomMode(language:MonarchTypes.ILanguage): TPromise<Mode
}
export function registerStandaloneLanguage(language:ILanguageExtensionPoint, defModule:string): void {
registerLanguage(language);
ModesRegistry.registerLanguage(language);
PluginsRegistry.registerOneTimeActivationEventListener('onLanguage:' + language.id, () => {
require([defModule], (value:{language:MonarchTypes.ILanguage}) => {
......
......@@ -15,8 +15,7 @@ import Mime = require('vs/base/common/mime');
import Errors = require('vs/base/common/errors');
import Event, {Emitter} from 'vs/base/common/event';
import {ILanguageExtensionPoint} from 'vs/editor/common/services/modeService';
import {IEditorModesRegistry, ILegacyLanguageDefinition, Extensions} from 'vs/editor/common/modes/modesRegistry';
import {Registry} from 'vs/platform/platform';
import {ModesRegistry, ILegacyLanguageDefinition} from 'vs/editor/common/modes/modesRegistry';
interface ILanguagePointData {
knownModeIds: { [id: string]: boolean; };
......@@ -162,8 +161,6 @@ export interface ICompatModeDescriptor {
ctorName: string;
}
let modesRegistry = <IEditorModesRegistry>Registry.as(Extensions.EditorModes);
class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILanguagePointData>, ILanguageExtensionPointHandler {
private knownModeIds: { [id: string]: boolean; };
......@@ -191,11 +188,11 @@ class LanguageExtensionPointHandler implements IThreadSynchronizableObject<ILang
this.id2ConfigurationFiles = {};
this._isRegisteredWithThreadService = false;
modesRegistry.getCompatModes().forEach((m) => this.registerCompatMode(m));
modesRegistry.onDidAddCompatMode((m) => this.registerCompatMode(m));
ModesRegistry.getCompatModes().forEach((m) => this.registerCompatMode(m));
ModesRegistry.onDidAddCompatMode((m) => this.registerCompatMode(m));
modesRegistry.getLanguages().forEach((m) => this.registerLanguage(m));
modesRegistry.onDidAddLanguage((m) => this.registerLanguage(m));
ModesRegistry.getLanguages().forEach((m) => this.registerLanguage(m));
ModesRegistry.onDidAddLanguage((m) => this.registerLanguage(m));
}
// -- BEGIN IThreadSynchronizableObject
......
......@@ -22,30 +22,10 @@ export interface ILegacyLanguageDefinition {
// Define extension point ids
export var Extensions = {
EditorModes: 'editor.modes'
ModesRegistry: 'editor.modesRegistry'
};
export interface IEditorModesRegistry {
onDidAddCompatMode: Event<ILegacyLanguageDefinition>;
onDidAddLanguage: Event<ILanguageExtensionPoint>;
// --- worker participants registration
registerWorkerParticipant(modeId:string, moduleId:string, ctorName?:string):void;
getWorkerParticipants(modeId:string):Modes.IWorkerParticipantDescriptor[];
_getAllWorkerParticipants(): Modes.IWorkerParticipantDescriptor[];
_setWorkerParticipants(participants:Modes.IWorkerParticipantDescriptor[]);
// --- modes registration
registerCompatMode(def:ILegacyLanguageDefinition): void;
getCompatModes(): ILegacyLanguageDefinition[];
registerLanguage(def:ILanguageExtensionPoint): void;
getLanguages(): ILanguageExtensionPoint[];
}
class EditorModesRegistry implements IEditorModesRegistry {
export class EditorModesRegistry {
private _workerParticipants: Modes.IWorkerParticipantDescriptor[];
private _compatModes: ILegacyLanguageDefinition[];
......@@ -106,17 +86,5 @@ class EditorModesRegistry implements IEditorModesRegistry {
}
}
var mR = new EditorModesRegistry();
Registry.add(Extensions.EditorModes, mR);
export function registerCompatMode(def:ILegacyLanguageDefinition): void {
mR.registerCompatMode(def);
}
export function registerLanguage(def:ILanguageExtensionPoint): void {
mR.registerLanguage(def);
}
export function registerWorkerParticipant(modeId:string, moduleId:string, ctorName?:string): void {
mR.registerWorkerParticipant(modeId, moduleId, ctorName);
}
export var ModesRegistry = new EditorModesRegistry();
Registry.add(Extensions.ModesRegistry, ModesRegistry);
......@@ -18,8 +18,7 @@ import Objects = require('vs/base/common/objects');
import MonarchDefinition = require('vs/editor/common/modes/monarch/monarchDefinition');
import {createTokenizationSupport} from 'vs/editor/common/modes/monarch/monarchLexer';
import {compile} from 'vs/editor/common/modes/monarch/monarchCompile';
import {Registry} from 'vs/platform/platform';
import {IEditorModesRegistry, Extensions} from 'vs/editor/common/modes/modesRegistry';
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import MonarchCommonTypes = require('vs/editor/common/modes/monarch/monarchCommon');
import {IDisposable, combinedDispose, empty as EmptyDisposable} from 'vs/base/common/lifecycle';
import {createAsyncDescriptor0, createAsyncDescriptor1} from 'vs/platform/instantiation/common/descriptors';
......@@ -273,8 +272,7 @@ export class ModeServiceImpl implements IModeService {
}
private _createModeDescriptor(modeId:string): Modes.IModeDescriptor {
var modesRegistry = <IEditorModesRegistry>Registry.as(Extensions.EditorModes);
var workerParticipants = modesRegistry.getWorkerParticipants(modeId);
var workerParticipants = ModesRegistry.getWorkerParticipants(modeId);
return {
id: modeId,
workerParticipants: workerParticipants.map(p => createAsyncDescriptor0(p.moduleId, p.ctorName))
......@@ -383,8 +381,7 @@ export class MainThreadModeServiceImpl extends ModeServiceImpl {
let r = this._threadService.getRemotable(ModeServiceWorkerHelper);
if (!this._hasInitialized) {
this._hasInitialized = true;
let modeRegistry = <IEditorModesRegistry> Registry.as(Extensions.EditorModes);
r.initialize(modeRegistry._getAllWorkerParticipants());
r.initialize(ModesRegistry._getAllWorkerParticipants());
}
return r;
}
......@@ -428,8 +425,7 @@ export class ModeServiceWorkerHelper {
}
public initialize(workerParticipants:Modes.IWorkerParticipantDescriptor[]): void {
var modeRegistry = <IEditorModesRegistry> Registry.as(Extensions.EditorModes);
modeRegistry._setWorkerParticipants(workerParticipants);
ModesRegistry._setWorkerParticipants(workerParticipants);
}
public instantiateMode(modeId:string): void {
......
......@@ -7,11 +7,11 @@
import 'vs/css!vs/languages/css/common/css-hover';
import nls = require('vs/nls');
import Platform = require('vs/platform/platform');
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
import lintRules = require('vs/languages/css/common/services/lintRules');
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'css',
extensions: ['.css'],
aliases: ['CSS', 'css'],
......
......@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'handlebars',
extensions: ['.handlebars', '.hbs'],
aliases: ['Handlebars', 'handlebars'],
......
......@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'html',
extensions: ['.html', '.htm', '.shtml', '.mdoc', '.jsp', '.asp', '.aspx', '.jshtm'],
aliases: ['HTML', 'htm', 'html', 'xhtml'],
......
......@@ -9,11 +9,11 @@ import env = require('vs/base/common/flags');
import platform = require('vs/platform/platform');
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
import Options = require('vs/languages/typescript/common/options');
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
let defaults = Options.javaScriptOptions;
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'javascript',
extensions: ['.js', '.es6'],
firstLine: '^#!.*\\bnode',
......@@ -24,8 +24,6 @@ modesExtensions.registerCompatMode({
ctorName: 'JSMode'
});
// ----- Registration and Configuration --------------------------------------------------------
var configurationRegistry = <ConfigurationRegistry.IConfigurationRegistry>platform.Registry.as(ConfigurationRegistry.Extensions.Configuration);
configurationRegistry.registerConfiguration({
......
......@@ -7,9 +7,9 @@
import nls = require('vs/nls');
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
import Platform = require('vs/platform/platform');
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'json',
extensions: ['.json', '.bowerrc', '.jshintrc', '.jscsrc', '.eslintrc'],
aliases: ['JSON', 'json'],
......
......@@ -8,10 +8,10 @@ import 'vs/css!vs/languages/css/common/css-hover';
import platform = require('vs/platform/platform');
import nls = require('vs/nls');
import lintRules = require('vs/languages/css/common/services/lintRules');
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'less',
extensions: ['.less'],
aliases: ['Less', 'less'],
......
......@@ -5,11 +5,11 @@
'use strict';
import nls = require('vs/nls');
import ModesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
import Platform = require('vs/platform/platform');
ModesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'markdown',
extensions: ['.md', '.markdown', '.mdown', '.mkdn', '.mkd', '.mdwn', '.mdtxt', '.mdtext'],
aliases: ['Markdown', 'markdown'],
......
......@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'php',
extensions: ['.php', '.phtml', '.ctp'],
aliases: ['PHP', 'php'],
......
......@@ -7,9 +7,9 @@
// Load plain text in the main code
import 'vs/languages/plaintext/common/plaintext';
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'plaintext',
extensions: ['.txt', '.gitignore'],
aliases: ['Plain Text', 'text'],
......
......@@ -4,9 +4,9 @@
*--------------------------------------------------------------------------------------------*/
'use strict';
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'razor',
extensions: ['.cshtml'],
aliases: ['Razor', 'razor'],
......
......@@ -5,13 +5,13 @@
'use strict';
import 'vs/css!vs/languages/css/common/css-hover';
import ModesExt = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import Platform = require('vs/platform/platform');
import nls = require('vs/nls');
import LintRules = require('vs/languages/css/common/services/lintRules');
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
ModesExt.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'sass',
extensions: ['.scss'],
aliases: ['Sass', 'sass', 'scss'],
......
......@@ -5,7 +5,7 @@
'use strict';
import env = require('vs/base/common/flags');
import modesExt = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import javascript = require('vs/languages/javascript/common/javascript.extensions');
import typescript = require('vs/languages/typescript/common/typescript');
import {AsyncDescriptor} from 'vs/platform/instantiation/common/descriptors';
......@@ -14,12 +14,12 @@ import {AsyncDescriptor} from 'vs/platform/instantiation/common/descriptors';
// this guy is for the workbench, but not for the standalone editor
if (env.enableJavaScriptRewriting && !env.enableTypeScriptServiceModeForJS) {
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/globalVariableRewriter', 'GlobalVariableCollector');
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/angularServiceRewriter', 'AngularServiceRewriter');
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/requireRewriter');
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/defineRewriter');
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/es6PropertyDeclarator');
modesExt.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/importAndExportRewriter', 'ImportsAndExportsCollector');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/globalVariableRewriter', 'GlobalVariableCollector');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/angularServiceRewriter', 'AngularServiceRewriter');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/requireRewriter');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/defineRewriter');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/es6PropertyDeclarator');
ModesRegistry.registerWorkerParticipant('javascript', 'vs/languages/typescript/common/js/importAndExportRewriter', 'ImportsAndExportsCollector');
}
typescript.Extensions.setProjectResolver(new AsyncDescriptor<typescript.IProjectResolver2>(
......
......@@ -8,7 +8,7 @@ import 'vs/css!./typescript';
import nls = require('vs/nls');
import env = require('vs/base/common/flags');
import platform = require('vs/platform/platform');
import modesExtensions = require('vs/editor/common/modes/modesRegistry');
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import ConfigurationRegistry = require('vs/platform/configuration/common/configurationRegistry');
import options = require('vs/languages/typescript/common/options');
let defaults = options.typeScriptOptions;
......@@ -17,7 +17,7 @@ let defaults = options.typeScriptOptions;
if (!env.enableTypeScriptServiceMode) {
modesExtensions.registerCompatMode({
ModesRegistry.registerCompatMode({
id: 'typescript',
extensions: ['.ts'],
aliases: ['TypeScript', 'ts', 'typescript'],
......
......@@ -7,7 +7,7 @@ import 'vs/css!../browser/media/output.contribution';
import nls = require('vs/nls');
import {KeyMod, KeyCode} from 'vs/base/common/keyCodes';
import {CommonEditorRegistry, EditorActionDescriptor} from 'vs/editor/common/editorCommonExtensions';
import {registerCompatMode} from 'vs/editor/common/modes/modesRegistry';
import {ModesRegistry} from 'vs/editor/common/modes/modesRegistry';
import platform = require('vs/platform/platform');
import {SyncActionDescriptor} from 'vs/platform/actions/common/actions';
import {registerSingleton} from 'vs/platform/instantiation/common/extensions';
......@@ -21,7 +21,7 @@ import panel = require('vs/workbench/browser/panel');
registerSingleton(IOutputService, OutputService);
// Register Output Mode
registerCompatMode({
ModesRegistry.registerCompatMode({
id: OUTPUT_MODE_ID,
extensions: [],
aliases: [null],
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册