diff --git a/gulpfile.js b/gulpfile.js index 79050179..2ce71406 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -175,6 +175,14 @@ function addPluginDTS() { // Ensure consistent indentation and line endings contents = cleanFile(contents); + // Mark events in doc!! + contents = contents.replace(/( \*\/\n\s+)on(.*IDisposable)/gm, function(_, m0, m1) { + var m = m0.match(/( +)$/); + var indentation = m[1]; + return ' * @event\n' + indentation + ' */\n' + indentation + 'on' + m1; + }); + + data.contents = new Buffer(contents); fs.writeFileSync('website/playground/monaco.d.ts.txt', contents); diff --git a/monaco.d.ts b/monaco.d.ts index efc44bda..880c51e8 100644 --- a/monaco.d.ts +++ b/monaco.d.ts @@ -2198,22 +2198,27 @@ declare module monaco.editor { export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithTrackedRanges, ITextModelWithDecorations, IEditorModel { /** * An event emitted when the contents of the model have changed. + * @event */ onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; /** * An event emitted when decorations of the model have changed. + * @event */ onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; /** * An event emitted when the model options have changed. + * @event */ onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; /** * An event emitted when the language associated with the model has changed. + * @event */ onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; /** * An event emitted right before disposing the model. + * @event */ onWillDispose(listener: () => void): IDisposable; /** @@ -2820,30 +2825,37 @@ declare module monaco.editor { export interface IEditor { /** * An event emitted when the content of the current model has changed. + * @event */ onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; /** * An event emitted when the language of the current model has changed. + * @event */ onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; /** * An event emitted when the options of the current model has changed. + * @event */ onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; /** * An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) + * @event */ onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; /** * An event emitted when the cursor position has changed. + * @event */ onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; /** * An event emitted when the cursor selection has changed. + * @event */ onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; /** * An event emitted when the editor has been disposed. + * @event */ onDidDispose(listener: () => void): IDisposable; /** @@ -3037,26 +3049,32 @@ declare module monaco.editor { export interface ICommonCodeEditor extends IEditor { /** * An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). + * @event */ onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; /** * An event emitted when the decorations of the current model have changed. + * @event */ onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; /** * An event emitted when the text inside this editor gained focus (i.e. cursor blinking). + * @event */ onDidFocusEditorText(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor lost focus. + * @event */ onDidBlurEditorText(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor or an editor widget gained focus. + * @event */ onDidFocusEditor(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor or an editor widget lost focus. + * @event */ onDidBlurEditor(listener: () => void): IDisposable; /** @@ -3164,6 +3182,7 @@ declare module monaco.editor { export interface ICommonDiffEditor extends IEditor { /** * An event emitted when the diff information computed by this diff editor has been updated. + * @event */ onDidUpdateDiff(listener: () => void): IDisposable; /** @@ -3645,38 +3664,47 @@ declare module monaco.editor { export interface ICodeEditor extends ICommonCodeEditor { /** * An event emitted on a "mouseup". + * @event */ onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mousedown". + * @event */ onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "contextmenu". + * @event */ onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mousemove". + * @event */ onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mouseleave". + * @event */ onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "keyup". + * @event */ onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; /** * An event emitted on a "keydown". + * @event */ onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; /** * An event emitted when the layout of the editor has changed. + * @event */ onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; /** * An event emitted when the scroll in the editor has changed. + * @event */ onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; /** diff --git a/website/playground/monaco.d.ts.txt b/website/playground/monaco.d.ts.txt index efc44bda..880c51e8 100644 --- a/website/playground/monaco.d.ts.txt +++ b/website/playground/monaco.d.ts.txt @@ -2198,22 +2198,27 @@ declare module monaco.editor { export interface IModel extends IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithTrackedRanges, ITextModelWithDecorations, IEditorModel { /** * An event emitted when the contents of the model have changed. + * @event */ onDidChangeContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; /** * An event emitted when decorations of the model have changed. + * @event */ onDidChangeDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; /** * An event emitted when the model options have changed. + * @event */ onDidChangeOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; /** * An event emitted when the language associated with the model has changed. + * @event */ onDidChangeMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; /** * An event emitted right before disposing the model. + * @event */ onWillDispose(listener: () => void): IDisposable; /** @@ -2820,30 +2825,37 @@ declare module monaco.editor { export interface IEditor { /** * An event emitted when the content of the current model has changed. + * @event */ onDidChangeModelContent(listener: (e: IModelContentChangedEvent2) => void): IDisposable; /** * An event emitted when the language of the current model has changed. + * @event */ onDidChangeModelMode(listener: (e: IModelModeChangedEvent) => void): IDisposable; /** * An event emitted when the options of the current model has changed. + * @event */ onDidChangeModelOptions(listener: (e: IModelOptionsChangedEvent) => void): IDisposable; /** * An event emitted when the configuration of the editor has changed. (e.g. `editor.updateOptions()`) + * @event */ onDidChangeConfiguration(listener: (e: IConfigurationChangedEvent) => void): IDisposable; /** * An event emitted when the cursor position has changed. + * @event */ onDidChangeCursorPosition(listener: (e: ICursorPositionChangedEvent) => void): IDisposable; /** * An event emitted when the cursor selection has changed. + * @event */ onDidChangeCursorSelection(listener: (e: ICursorSelectionChangedEvent) => void): IDisposable; /** * An event emitted when the editor has been disposed. + * @event */ onDidDispose(listener: () => void): IDisposable; /** @@ -3037,26 +3049,32 @@ declare module monaco.editor { export interface ICommonCodeEditor extends IEditor { /** * An event emitted when the model of this editor has changed (e.g. `editor.setModel()`). + * @event */ onDidChangeModel(listener: (e: IModelChangedEvent) => void): IDisposable; /** * An event emitted when the decorations of the current model have changed. + * @event */ onDidChangeModelDecorations(listener: (e: IModelDecorationsChangedEvent) => void): IDisposable; /** * An event emitted when the text inside this editor gained focus (i.e. cursor blinking). + * @event */ onDidFocusEditorText(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor lost focus. + * @event */ onDidBlurEditorText(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor or an editor widget gained focus. + * @event */ onDidFocusEditor(listener: () => void): IDisposable; /** * An event emitted when the text inside this editor or an editor widget lost focus. + * @event */ onDidBlurEditor(listener: () => void): IDisposable; /** @@ -3164,6 +3182,7 @@ declare module monaco.editor { export interface ICommonDiffEditor extends IEditor { /** * An event emitted when the diff information computed by this diff editor has been updated. + * @event */ onDidUpdateDiff(listener: () => void): IDisposable; /** @@ -3645,38 +3664,47 @@ declare module monaco.editor { export interface ICodeEditor extends ICommonCodeEditor { /** * An event emitted on a "mouseup". + * @event */ onMouseUp(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mousedown". + * @event */ onMouseDown(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "contextmenu". + * @event */ onContextMenu(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mousemove". + * @event */ onMouseMove(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "mouseleave". + * @event */ onMouseLeave(listener: (e: IEditorMouseEvent) => void): IDisposable; /** * An event emitted on a "keyup". + * @event */ onKeyUp(listener: (e: IKeyboardEvent) => void): IDisposable; /** * An event emitted on a "keydown". + * @event */ onKeyDown(listener: (e: IKeyboardEvent) => void): IDisposable; /** * An event emitted when the layout of the editor has changed. + * @event */ onDidLayoutChange(listener: (e: EditorLayoutInfo) => void): IDisposable; /** * An event emitted when the scroll in the editor has changed. + * @event */ onDidScrollChange(listener: (e: IScrollEvent) => void): IDisposable; /** diff --git a/website/typedoc-theme/assets/css/main.css b/website/typedoc-theme/assets/css/main.css index 12dff497..e7c1e294 100644 --- a/website/typedoc-theme/assets/css/main.css +++ b/website/typedoc-theme/assets/css/main.css @@ -863,3 +863,11 @@ input[type=checkbox]:checked + .tsd-widget:before { background-position: -160px .tsd-select .tsd-select-label:before { background-position: -280px 0; } } img { max-width: 100%; } + +/* MONACO_CHANGE */ +.tsd-breadcrumb li:after { + content: "."; +} +.tsd-breadcrumb li:last-of-type:after { + content: ""; +} \ No newline at end of file diff --git a/website/typedoc-theme/helpers/sortModelGroups.js b/website/typedoc-theme/helpers/sortModelGroups.js new file mode 100644 index 00000000..753e26c9 --- /dev/null +++ b/website/typedoc-theme/helpers/sortModelGroups.js @@ -0,0 +1,78 @@ + +// https://github.com/TypeStrong/typedoc/blob/master/src/lib/models/reflections/abstract.ts#L37 +var ReflectionKind = { + Global: 0, + ExternalModule: 1, + Module: 2, + Enum: 4, + EnumMember: 16, + Variable: 32, + Function: 64, + Class: 128, + Interface: 256, + Constructor: 512, + Property: 1024, + Method: 2048, + CallSignature: 4096, + IndexSignature: 8192, + ConstructorSignature: 16384, + Parameter: 32768, + TypeLiteral: 65536, + TypeParameter: 131072, + Accessor: 262144, + GetSignature: 524288, + SetSignature: 1048576, + ObjectLiteral: 2097152, + TypeAlias: 4194304, + Event: 8388608, +} +// https://github.com/TypeStrong/typedoc/blob/master/src/lib/converter/plugins/GroupPlugin.ts#L20 +var WEIGHTS = [ + ReflectionKind.Global, + ReflectionKind.ExternalModule, + ReflectionKind.Module, + + ReflectionKind.Function, + ReflectionKind.Variable, + + ReflectionKind.Enum, + ReflectionKind.EnumMember, + ReflectionKind.Class, + ReflectionKind.Interface, + ReflectionKind.TypeAlias, + + ReflectionKind.Constructor, + ReflectionKind.Event, + ReflectionKind.Property, + ReflectionKind.Accessor, + ReflectionKind.Method, + ReflectionKind.ObjectLiteral, + + ReflectionKind.Parameter, + ReflectionKind.TypeParameter, + ReflectionKind.TypeLiteral, + ReflectionKind.CallSignature, + ReflectionKind.ConstructorSignature, + ReflectionKind.IndexSignature, + ReflectionKind.GetSignature, + ReflectionKind.SetSignature, +]; + +// https://github.com/TypeStrong/typedoc/blob/master/src/lib/converter/plugins/GroupPlugin.ts#L235 +function sortFunc(a, b) { + var aWeight = WEIGHTS.indexOf(a.kind); + var bWeight = WEIGHTS.indexOf(b.kind); + if (aWeight == bWeight) { + if (a.flags.isStatic && !b.flags.isStatic) return 1; + if (!a.flags.isStatic && b.flags.isStatic) return -1; + if (a.name == b.name) return 0; + return a.name > b.name ? 1 : -1; + } else return aWeight - bWeight; +} +module.exports = { + sortModelGroups: function ( model ) { + if (model.groups) { + model.groups.sort(sortFunc); + } + } +} \ No newline at end of file diff --git a/website/typedoc-theme/layouts/default.hbs b/website/typedoc-theme/layouts/default.hbs index 3e2d27f2..421090e7 100644 --- a/website/typedoc-theme/layouts/default.hbs +++ b/website/typedoc-theme/layouts/default.hbs @@ -8,7 +8,9 @@ + {{!--MONACO_CHANGE + MONACO_CHANGE--}} diff --git a/website/typedoc-theme/partials/header.hbs b/website/typedoc-theme/partials/header.hbs index 102d966f..1fef8353 100644 --- a/website/typedoc-theme/partials/header.hbs +++ b/website/typedoc-theme/partials/header.hbs @@ -13,9 +13,13 @@
  • The search index is not available
  • + {{!--MONACO_CHANGE {{project.name}} + MONACO_CHANGE--}} + {{project.name}} + {{!--MONACO_CHANGE
    Options @@ -46,6 +50,7 @@ Menu
    + MONACO_CHANGE--}}
    @@ -54,6 +59,7 @@ + {{!--MONACO_CHANGE

    {{#compact}} {{model.kindString}}  {{model.name}} @@ -66,6 +72,7 @@ > {{/if}} {{/compact}}

    + MONACO_CHANGE--}} \ No newline at end of file diff --git a/website/typedoc-theme/partials/member.sources.hbs b/website/typedoc-theme/partials/member.sources.hbs index 29bcb85c..10d16c59 100644 --- a/website/typedoc-theme/partials/member.sources.hbs +++ b/website/typedoc-theme/partials/member.sources.hbs @@ -14,7 +14,10 @@ {{#if url}}
  • Defined in {{fileName}}:{{line}}
  • {{else}} + {{!--MONACO_CHANGE
  • Defined in {{fileName}}:{{line}}
  • + MONACO_CHANGE--}} +
  • Defined in {{fileName}}:{{line}}
  • {{/if}} {{/each}} diff --git a/website/typedoc-theme/templates/reflection.hbs b/website/typedoc-theme/templates/reflection.hbs index cdfd9c1e..0346bfeb 100644 --- a/website/typedoc-theme/templates/reflection.hbs +++ b/website/typedoc-theme/templates/reflection.hbs @@ -73,6 +73,9 @@ {{/if}} +{{!--MONACO_CHANGE--}} +{{sortModelGroups model}} +{{!--MONACO_CHANGE--}} {{#with model}} {{> index}} {{> members}}