diff --git a/build/lib/monaco-editor.d.ts b/build/lib/monaco-editor.d.ts index 50dbc5491cd..859a20f7d9d 100644 --- a/build/lib/monaco-editor.d.ts +++ b/build/lib/monaco-editor.d.ts @@ -14,9 +14,9 @@ declare module monaco.worker { declare module monaco.languages { - export function registerLanguageConfiguration(languageId: string, configuration: IRichEditConfiguration): IDisposable; + export function setLanguageConfiguration(languageId: string, configuration: IRichLanguageConfiguration): IDisposable; - export function registerTokensProvider(languageId: string, support: ITokenizationSupport2): IDisposable; + export function setTokensProvider(languageId: string, support: TokensProvider): IDisposable; export function registerReferenceProvider(languageId: string, support: ReferenceProvider): IDisposable; @@ -55,7 +55,7 @@ declare module monaco.languages { blockComment?: CharacterPair; } - export interface IRichEditConfiguration { + export interface IRichLanguageConfiguration { comments?: CommentRule; brackets?: CharacterPair[]; wordPattern?: RegExp; @@ -103,25 +103,25 @@ declare module monaco.languages { getId(): string; } - export interface IToken2 { + export interface IToken { startIndex: number; scopes: string | string[]; } - export interface ILineTokens2 { - tokens: IToken2[]; - endState: IState2; + export interface ILineTokens { + tokens: IToken[]; + endState: IState; retokenize?: Promise; } - export interface IState2 { - clone(): IState2; - equals(other: IState2): boolean; + export interface IState { + clone(): IState; + equals(other: IState): boolean; } - export interface ITokenizationSupport2 { - getInitialState(): IState2; - tokenize(line: string, state: IState2): ILineTokens2; + export interface TokensProvider { + getInitialState(): IState; + tokenize(line: string, state: IState): ILineTokens; } /** @@ -354,8 +354,6 @@ declare module monaco.languages { declare module monaco.editor { - export function setupServices(services: IEditorOverrideServices): IEditorOverrideServices; - export function create(domElement: HTMLElement, options: IEditorConstructionOptions, services: IEditorOverrideServices): ICodeEditor; export function createDiffEditor(domElement: HTMLElement, options: IDiffEditorConstructionOptions, services: IEditorOverrideServices): IDiffEditor; @@ -2341,7 +2339,6 @@ declare module monaco.editor { onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; onWillDispose(listener: () => void): IDisposable; - addBulkListener(listener: BulkListenerCallback): IDisposable; /** * A unique identifier associated with this model. */ @@ -3372,47 +3369,6 @@ declare module monaco.editor { IDiffEditor: string; }; - export var EventType: { - Disposed: string; - ConfigurationChanged: string; - ModelDispose: string; - ModelChanged: string; - ModelTokensChanged: string; - ModelModeChanged: string; - ModelModeSupportChanged: string; - ModelOptionsChanged: string; - ModelRawContentChanged: string; - ModelContentChanged2: string; - ModelRawContentChangedFlush: string; - ModelRawContentChangedLinesDeleted: string; - ModelRawContentChangedLinesInserted: string; - ModelRawContentChangedLineChanged: string; - EditorTextBlur: string; - EditorTextFocus: string; - EditorFocus: string; - EditorBlur: string; - ModelDecorationsChanged: string; - CursorPositionChanged: string; - CursorSelectionChanged: string; - CursorRevealRange: string; - CursorScrollRequest: string; - ViewFocusGained: string; - ViewFocusLost: string; - ViewFocusChanged: string; - ViewScrollChanged: string; - ViewZonesChanged: string; - ViewLayoutChanged: string; - ContextMenu: string; - MouseDown: string; - MouseUp: string; - MouseMove: string; - MouseLeave: string; - KeyDown: string; - KeyUp: string; - EditorLayout: string; - DiffUpdated: string; - }; - export var Handler: { ExecuteCommand: string; ExecuteCommands: string; diff --git a/build/lib/monaco-editor.d.ts.recipe b/build/lib/monaco-editor.d.ts.recipe index 43585a26b35..b787561abdd 100644 --- a/build/lib/monaco-editor.d.ts.recipe +++ b/build/lib/monaco-editor.d.ts.recipe @@ -14,11 +14,11 @@ declare module monaco.worker { declare module monaco.languages { #includeAll(vs/editor/browser/standalone/standaloneLanguages;modes.=>): -#include(vs/editor/common/modes/supports/richEditSupport): CommentRule, IRichEditConfiguration +#include(vs/editor/common/modes/supports/richEditSupport): CommentRule, IRichLanguageConfiguration #include(vs/editor/common/modes/supports/onEnter): IIndentationRules, IOnEnterRegExpRules #include(vs/editor/common/modes/supports/electricCharacter): IBracketElectricCharacterContribution, IDocComment #include(vs/editor/common/modes/supports/characterPair): ICharacterPairContribution -#includeAll(vs/editor/common/modes;editorCommon.IRange=>IRange;editorCommon.IPosition=>IPosition;editorCommon.=>editor.): +#includeAll(vs/editor/common/modes;editorCommon.IRange=>IRange;editorCommon.IPosition=>IPosition;editorCommon.=>editor.;IToken2=>IToken;ILineTokens2=>ILineTokens;IState2=>IState): #include(vs/editor/common/services/modeService): ILanguageExtensionPoint } diff --git a/src/vs/editor/browser/standalone/standaloneEditor.ts b/src/vs/editor/browser/standalone/standaloneEditor.ts index 49d850f5fdd..226a2e16315 100644 --- a/src/vs/editor/browser/standalone/standaloneEditor.ts +++ b/src/vs/editor/browser/standalone/standaloneEditor.ts @@ -46,6 +46,9 @@ function shallowClone(obj:T): T { return r; } +/** + * @internal + */ export function setupServices(services: IEditorOverrideServices): IEditorOverrideServices { return startup.setupServices(services); } @@ -327,7 +330,6 @@ export function colorizeModelLine(model:IModel, lineNumber:number, tabSize:numbe export function createMonacoEditorAPI()/*: typeof monaco.editor*/ { return { // methods - setupServices: setupServices, create: create, createDiffEditor: createDiffEditor, diff --git a/src/vs/editor/browser/standalone/standaloneLanguages.ts b/src/vs/editor/browser/standalone/standaloneLanguages.ts index 12a863b65e3..f42ec96e349 100644 --- a/src/vs/editor/browser/standalone/standaloneLanguages.ts +++ b/src/vs/editor/browser/standalone/standaloneLanguages.ts @@ -16,15 +16,15 @@ import {ILanguageExtensionPoint} from 'vs/editor/common/services/modeService'; import {ensureStaticPlatformServices} from 'vs/editor/browser/standalone/standaloneServices'; import * as modes from 'vs/editor/common/modes'; import {startup} from './standaloneCodeEditor'; -import {IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; -export function registerLanguageConfiguration(languageId:string, configuration:IRichEditConfiguration): IDisposable { +export function setLanguageConfiguration(languageId:string, configuration:IRichLanguageConfiguration): IDisposable { startup.initStaticServicesIfNecessary(); let staticPlatformServices = ensureStaticPlatformServices(null); return staticPlatformServices.modeService.registerRichEditSupport(languageId, configuration); } -export function registerTokensProvider(languageId:string, support:modes.ITokenizationSupport2): IDisposable { +export function setTokensProvider(languageId:string, support:modes.TokensProvider): IDisposable { startup.initStaticServicesIfNecessary(); let staticPlatformServices = ensureStaticPlatformServices(null); return staticPlatformServices.modeService.registerTokenizationSupport2(languageId, support); @@ -161,8 +161,8 @@ export function registerStandaloneSchema(uri:string, schema:IJSONSchema) { export function createMonacoLanguagesAPI()/*: typeof monaco.languages*/ { return { // provider methods - registerLanguageConfiguration: registerLanguageConfiguration, - registerTokensProvider: registerTokensProvider, + setLanguageConfiguration: setLanguageConfiguration, + setTokensProvider: setTokensProvider, registerReferenceProvider: registerReferenceProvider, registerRenameProvider: registerRenameProvider, // SuggestRegistry: SuggestRegistry, diff --git a/src/vs/editor/common/editorCommon.ts b/src/vs/editor/common/editorCommon.ts index f1a81042220..625467eb2f1 100644 --- a/src/vs/editor/common/editorCommon.ts +++ b/src/vs/editor/common/editorCommon.ts @@ -1953,6 +1953,9 @@ export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWi onDidChangeMode(listener: (e:IModelModeChangedEvent)=>void): IDisposable; onWillDispose(listener: ()=>void): IDisposable; + /** + * @internal + */ addBulkListener(listener:BulkListenerCallback):IDisposable; /** @@ -3621,6 +3624,9 @@ export var ClassName = { EditorErrorDecoration: 'redsquiggly' }; +/** + * @internal + */ export var EventType = { Disposed: 'disposed', diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index a5534eccbbe..116623f8bc0 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -309,7 +309,7 @@ export interface IState2 { clone():IState2; equals(other:IState2):boolean; } -export interface ITokenizationSupport2 { +export interface TokensProvider { getInitialState(): IState2; tokenize(line:string, state:IState2): ILineTokens2; } diff --git a/src/vs/editor/common/modes/monarch/monarchDefinition.ts b/src/vs/editor/common/modes/monarch/monarchDefinition.ts index 123804ca5f8..225c1dbb664 100644 --- a/src/vs/editor/common/modes/monarch/monarchDefinition.ts +++ b/src/vs/editor/common/modes/monarch/monarchDefinition.ts @@ -10,9 +10,9 @@ */ import {ILexer} from 'vs/editor/common/modes/monarch/monarchCommon'; -import {IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; -export function createRichEditSupport(lexer: ILexer): IRichEditConfiguration { +export function createRichEditSupport(lexer: ILexer): IRichLanguageConfiguration { return { diff --git a/src/vs/editor/common/modes/supports/richEditSupport.ts b/src/vs/editor/common/modes/supports/richEditSupport.ts index a99430c2f57..2e89876afda 100644 --- a/src/vs/editor/common/modes/supports/richEditSupport.ts +++ b/src/vs/editor/common/modes/supports/richEditSupport.ts @@ -17,7 +17,7 @@ export interface CommentRule { blockComment?: CharacterPair; } -export interface IRichEditConfiguration { +export interface IRichLanguageConfiguration { comments?: CommentRule; brackets?: CharacterPair[]; wordPattern?: RegExp; @@ -29,7 +29,7 @@ export interface IRichEditConfiguration { export class RichEditSupport implements IRichEditSupport { - private _conf: IRichEditConfiguration; + private _conf: IRichLanguageConfiguration; public electricCharacter: BracketElectricCharacterSupport; public comments: ICommentsConfiguration; @@ -38,9 +38,9 @@ export class RichEditSupport implements IRichEditSupport { public onEnter: IRichEditOnEnter; public brackets: IRichEditBrackets; - constructor(modeId:string, previous:IRichEditSupport, rawConf:IRichEditConfiguration) { + constructor(modeId:string, previous:IRichEditSupport, rawConf:IRichLanguageConfiguration) { - let prev:IRichEditConfiguration = null; + let prev:IRichLanguageConfiguration = null; if (previous instanceof RichEditSupport) { prev = previous._conf; } @@ -66,7 +66,7 @@ export class RichEditSupport implements IRichEditSupport { this.wordDefinition = this._conf.wordPattern || NullMode.DEFAULT_WORD_REGEXP; } - private static _mergeConf(prev:IRichEditConfiguration, current:IRichEditConfiguration): IRichEditConfiguration { + private static _mergeConf(prev:IRichLanguageConfiguration, current:IRichLanguageConfiguration): IRichLanguageConfiguration { return { comments: (prev ? current.comments || prev.comments : current.comments), brackets: (prev ? current.brackets || prev.brackets : current.brackets), @@ -78,7 +78,7 @@ export class RichEditSupport implements IRichEditSupport { }; } - private _handleOnEnter(modeId:string, conf:IRichEditConfiguration): void { + private _handleOnEnter(modeId:string, conf:IRichLanguageConfiguration): void { // on enter let onEnter: IOnEnterSupportOptions = {}; let empty = true; @@ -101,7 +101,7 @@ export class RichEditSupport implements IRichEditSupport { } } - private _handleComments(modeId:string, conf:IRichEditConfiguration): void { + private _handleComments(modeId:string, conf:IRichLanguageConfiguration): void { let commentRule = conf.comments; // comment configuration diff --git a/src/vs/editor/common/services/modeService.ts b/src/vs/editor/common/services/modeService.ts index 60ef0f8b5ab..8679b09bc72 100644 --- a/src/vs/editor/common/services/modeService.ts +++ b/src/vs/editor/common/services/modeService.ts @@ -10,7 +10,7 @@ import {TPromise} from 'vs/base/common/winjs.base'; import {ServiceIdentifier, createDecorator} from 'vs/platform/instantiation/common/instantiation'; import * as modes from 'vs/editor/common/modes'; import {ILanguage} from 'vs/editor/common/modes/monarch/monarchTypes'; -import {IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {IModelService} from 'vs/editor/common/services/modelService'; @@ -73,8 +73,8 @@ export interface IModeService { getOrCreateModeByLanguageName(languageName: string): TPromise; getOrCreateModeByFilenameOrFirstLine(filename: string, firstLine?:string): TPromise; - registerRichEditSupport(modeId: string, support: IRichEditConfiguration): IDisposable; + registerRichEditSupport(modeId: string, support: IRichLanguageConfiguration): IDisposable; registerTokenizationSupport(modeId: string, callback: (mode: modes.IMode) => modes.ITokenizationSupport): IDisposable; - registerTokenizationSupport2(modeId: string, support: modes.ITokenizationSupport2): IDisposable; + registerTokenizationSupport2(modeId: string, support: modes.TokensProvider): IDisposable; registerMonarchDefinition(modelService: IModelService, editorWorkerService: IEditorWorkerService, modeId:string, language:ILanguage): IDisposable; } diff --git a/src/vs/editor/common/services/modeServiceImpl.ts b/src/vs/editor/common/services/modeServiceImpl.ts index 817a7f1cdca..7a5e3acc1c1 100644 --- a/src/vs/editor/common/services/modeServiceImpl.ts +++ b/src/vs/editor/common/services/modeServiceImpl.ts @@ -25,7 +25,7 @@ import {compile} from 'vs/editor/common/modes/monarch/monarchCompile'; import {createRichEditSupport} from 'vs/editor/common/modes/monarch/monarchDefinition'; import {createTokenizationSupport} from 'vs/editor/common/modes/monarch/monarchLexer'; import {ILanguage} from 'vs/editor/common/modes/monarch/monarchTypes'; -import {IRichEditConfiguration, RichEditSupport} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration, RichEditSupport} from 'vs/editor/common/modes/supports/richEditSupport'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {LanguagesRegistry} from 'vs/editor/common/services/languagesRegistry'; import {ILanguageExtensionPoint, IValidLanguageExtensionPoint, IModeLookupResult, IModeService} from 'vs/editor/common/services/modeService'; @@ -443,7 +443,7 @@ export class ModeServiceImpl implements IModeService { return this.doRegisterMonarchDefinition(modeId, lexer); } - public registerRichEditSupport(modeId: string, support: IRichEditConfiguration): IDisposable { + public registerRichEditSupport(modeId: string, support: IRichLanguageConfiguration): IDisposable { return this.registerModeSupport(modeId, modes.MutableSupport.RichEditSupport, (mode) => new RichEditSupport(modeId, mode.richEditSupport, support)); } @@ -451,7 +451,7 @@ export class ModeServiceImpl implements IModeService { return this.registerModeSupport(modeId, modes.MutableSupport.TokenizationSupport, callback); } - public registerTokenizationSupport2(modeId: string, support: modes.ITokenizationSupport2): IDisposable { + public registerTokenizationSupport2(modeId: string, support: modes.TokensProvider): IDisposable { return this.registerModeSupport(modeId, modes.MutableSupport.TokenizationSupport, (mode) => { return new TokenizationSupport2Adapter(mode, support); }); @@ -508,9 +508,9 @@ export class TokenizationSupport2Adapter implements modes.ITokenizationSupport { public shouldGenerateEmbeddedModels = false; private _mode: modes.IMode; - private _actual: modes.ITokenizationSupport2; + private _actual: modes.TokensProvider; - constructor(mode: modes.IMode, actual: modes.ITokenizationSupport2) { + constructor(mode: modes.IMode, actual: modes.TokensProvider) { this._mode = mode; this._actual = actual; } diff --git a/src/vs/editor/node/languageConfiguration.ts b/src/vs/editor/node/languageConfiguration.ts index cc3dd8a7f90..dc850dfe880 100644 --- a/src/vs/editor/node/languageConfiguration.ts +++ b/src/vs/editor/node/languageConfiguration.ts @@ -7,7 +7,7 @@ import * as nls from 'vs/nls'; import {parse} from 'vs/base/common/json'; import {readFile} from 'vs/base/node/pfs'; -import {IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; import {IModeService} from 'vs/editor/common/services/modeService'; import {IAutoClosingPair} from 'vs/editor/common/modes'; @@ -70,7 +70,7 @@ export class LanguageConfigurationFileHandler { private _handleConfig(modeId:string, configuration:ILanguageConfiguration): void { - let richEditConfig:IRichEditConfiguration = {}; + let richEditConfig:IRichLanguageConfiguration = {}; if (configuration.comments) { richEditConfig.comments = configuration.comments; diff --git a/src/vs/editor/test/common/mocks/mockModeService.ts b/src/vs/editor/test/common/mocks/mockModeService.ts index ff7ccf881d8..d6b2de4549c 100644 --- a/src/vs/editor/test/common/mocks/mockModeService.ts +++ b/src/vs/editor/test/common/mocks/mockModeService.ts @@ -10,7 +10,7 @@ import {TPromise} from 'vs/base/common/winjs.base'; import {ServiceIdentifier} from 'vs/platform/instantiation/common/instantiation'; import * as modes from 'vs/editor/common/modes'; import {ILanguage} from 'vs/editor/common/modes/monarch/monarchTypes'; -import {IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; import {IEditorWorkerService} from 'vs/editor/common/services/editorWorkerService'; import {IModelService} from 'vs/editor/common/services/modelService'; import {IModeService, IModeLookupResult} from 'vs/editor/common/services/modeService'; @@ -83,13 +83,13 @@ export class MockModeService implements IModeService { throw new Error('Not implemented'); } - registerRichEditSupport(modeId: string, support: IRichEditConfiguration): IDisposable { + registerRichEditSupport(modeId: string, support: IRichLanguageConfiguration): IDisposable { throw new Error('Not implemented'); } registerTokenizationSupport(modeId: string, callback: (mode: modes.IMode) => modes.ITokenizationSupport): IDisposable { throw new Error('Not implemented'); } - registerTokenizationSupport2(modeId: string, support: modes.ITokenizationSupport2): IDisposable { + registerTokenizationSupport2(modeId: string, support: modes.TokensProvider): IDisposable { throw new Error('Not implemented'); } registerMonarchDefinition(modelService: IModelService, editorWorkerService: IEditorWorkerService, modeId:string, language:ILanguage): IDisposable { diff --git a/src/vs/editor/test/common/modesUtil.ts b/src/vs/editor/test/common/modesUtil.ts index b7b91229bf7..afa1cdd2eab 100644 --- a/src/vs/editor/test/common/modesUtil.ts +++ b/src/vs/editor/test/common/modesUtil.ts @@ -85,7 +85,7 @@ export function executeTests(tokenizationSupport: modes.ITokenizationSupport, te } } -export function executeTests2(tokenizationSupport: modes.ITokenizationSupport2, tests:ITestItem2[][]): void { +export function executeTests2(tokenizationSupport: modes.TokensProvider, tests:ITestItem2[][]): void { for (var i = 0, len = tests.length; i < len; i++) { assert.ok(true, 'TEST #' + i); executeTest2(tokenizationSupport, tests[i]); @@ -118,7 +118,7 @@ function executeTest(tokenizationSupport: modes.ITokenizationSupport, tests:ITes } } -function executeTest2(tokenizationSupport: modes.ITokenizationSupport2, tests:ITestItem2[]): void { +function executeTest2(tokenizationSupport: modes.TokensProvider, tests:ITestItem2[]): void { var state = tokenizationSupport.getInitialState(); for (var i = 0, len = tests.length; i < len; i++) { assert.ok(true, tests[i].line); diff --git a/src/vs/languages/typescript/common/mode.ts b/src/vs/languages/typescript/common/mode.ts index a7763bac7db..f21e090880e 100644 --- a/src/vs/languages/typescript/common/mode.ts +++ b/src/vs/languages/typescript/common/mode.ts @@ -8,7 +8,7 @@ import * as modes from 'vs/editor/common/modes'; import * as lifecycle from 'vs/base/common/lifecycle'; import {createTokenizationSupport2, Language} from 'vs/languages/typescript/common/tokenization'; import {createWordRegExp} from 'vs/editor/common/modes/abstractMode'; -import {RichEditSupport, IRichEditConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; +import {RichEditSupport, IRichLanguageConfiguration} from 'vs/editor/common/modes/supports/richEditSupport'; import {IModelService} from 'vs/editor/common/services/modelService'; import {IModeService} from 'vs/editor/common/services/modeService'; import {IMarkerService} from 'vs/platform/markers/common/markers'; @@ -38,7 +38,7 @@ function setupMode(modelService:IModelService, markerService:IMarkerService, mod disposables.push(modeService.registerTokenizationSupport2(modeId, createTokenizationSupport2(language))); } -const richEditConfiguration:IRichEditConfiguration = { +const richEditConfiguration:IRichLanguageConfiguration = { wordPattern: createWordRegExp('$'), comments: { diff --git a/src/vs/languages/typescript/common/tokenization.ts b/src/vs/languages/typescript/common/tokenization.ts index d56fafdd0fa..9643d82f9fd 100644 --- a/src/vs/languages/typescript/common/tokenization.ts +++ b/src/vs/languages/typescript/common/tokenization.ts @@ -12,7 +12,7 @@ export enum Language { EcmaScript5 } -export function createTokenizationSupport2(language:Language):Modes.ITokenizationSupport2 { +export function createTokenizationSupport2(language:Language):Modes.TokensProvider { var classifier = ts.createClassifier(), bracketTypeTable = language === Language.TypeScript ? tsBracketTypeTable : jsBracketTypeTable,