From bcbfe782288fb08a0ae117bdcac0edfc8df186f0 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Fri, 27 Jan 2017 16:33:20 +0100 Subject: [PATCH] Prepare for 0.8.1 --- CHANGELOG.md | 20 ++++--- monaco.d.ts | 86 ++++++++++++++++++++++++------ website/playground/monaco.d.ts.txt | 86 ++++++++++++++++++++++++------ 3 files changed, 154 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b38473a..96fcae87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,18 @@ # Monaco Editor Change log ## [0.8.1] - - - CSS/JSON/HTML language supports updated: - - CSS: Support for @apply - - SCSS: Map support - - New HTML formatter options: unformatedContent, wrapAttributes + - CSS/JSON/HTML language supports updated: + - CSS: Support for @apply + - SCSS: Map support + - New HTML formatter options: unformatedContent, wrapAttributes + - Fixed issue where the editor was throwing in Safari due to `Intl` missing. + - Fixed multiple issues where the editor would not position the cursor correctly when using browser zooming. + +### API + - Added `disableMonospaceOptimizations` editor option that can be used in case browser zooming exposes additional issues. + - Added `formatOnPaste` editor option. + - Added `IActionDescriptor.precondition`. + - Breaking change: renamed `registerTypeDefinitionProvider` to `registerImplementationProvider` and associated types. ## [0.8.0] - This release has been brewing for a while and comes with quite a number of important changes. diff --git a/monaco.d.ts b/monaco.d.ts index 7972ba4c..4f4f0fbc 100644 --- a/monaco.d.ts +++ b/monaco.d.ts @@ -1215,6 +1215,11 @@ declare module monaco.editor { * Defaults to false. */ disableTranslate3d?: boolean; + /** + * Disable the optimizations for monospace fonts. + * Defaults to false. + */ + disableMonospaceOptimizations?: boolean; /** * Should the cursor be hidden in the overview ruler. * Defaults to false. @@ -1315,6 +1320,11 @@ declare module monaco.editor { * Defaults to false. */ formatOnType?: boolean; + /** + * Enable format on paste. + * Defaults to false. + */ + formatOnPaste?: boolean; /** * Enable the suggestion box to pop-up on trigger characters. * Defaults to true. @@ -1474,6 +1484,7 @@ declare module monaco.editor { readonly _internalEditorViewOptionsBrand: void; readonly theme: string; readonly canUseTranslate3d: boolean; + readonly disableMonospaceOptimizations: boolean; readonly experimentalScreenReader: boolean; readonly rulers: number[]; readonly ariaLabel: string; @@ -1503,6 +1514,7 @@ declare module monaco.editor { export interface IViewConfigurationChangedEvent { readonly theme: boolean; readonly canUseTranslate3d: boolean; + readonly disableMonospaceOptimizations: boolean; readonly experimentalScreenReader: boolean; readonly rulers: boolean; readonly ariaLabel: boolean; @@ -1538,6 +1550,7 @@ declare module monaco.editor { readonly parameterHints: boolean; readonly iconsInSuggestions: boolean; readonly formatOnType: boolean; + readonly formatOnPaste: boolean; readonly suggestOnTriggerCharacters: boolean; readonly acceptSuggestionOnEnter: boolean; readonly acceptSuggestionOnCommitCharacter: boolean; @@ -2794,10 +2807,18 @@ declare module monaco.editor { * A label of the action that will be presented to the user. */ label: string; + /** + * Precondition rule. + */ + precondition?: string; /** * An array of keybindings for the action. */ keybindings?: number[]; + /** + * The keybinding rule (condition on top of precondition). + */ + keybindingContext?: string; /** * Control if the action should show up in the context menu and where. * The context menu of the editor has these default: @@ -2812,10 +2833,6 @@ declare module monaco.editor { * Control the order in the context menu group. */ contextMenuOrder?: number; - /** - * The keybinding rule. - */ - keybindingContext?: string; /** * Method that will be executed when the action is triggered. * @param editor The editor instance is passed in as a convinience @@ -3006,6 +3023,10 @@ declare module monaco.editor { * Scroll vertically or horizontally as necessary and reveal a range centered vertically. */ revealRangeInCenter(range: IRange): void; + /** + * Scroll vertically or horizontally as necessary and reveal a range at the top of the viewport. + */ + revealRangeAtTop(range: IRange): void; /** * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. */ @@ -3932,9 +3953,9 @@ declare module monaco.languages { export function registerDefinitionProvider(languageId: string, provider: DefinitionProvider): IDisposable; /** - * Register a type definition provider (used by e.g. go to implementation). + * Register a type implementation provider (used by e.g. go to implementation). */ - export function registerTypeDefinitionProvider(languageId: string, provider: TypeDefinitionProvider): IDisposable; + export function registerImplementationProvider(languageId: string, provider: ImplementationProvider): IDisposable; /** * Register a code lens provider (used by e.g. inline code lenses). @@ -4020,6 +4041,23 @@ declare module monaco.languages { Folder = 18, } + /** + * A snippet string is a template which allows to insert text + * and to control the editor cursor when insertion happens. + * + * A snippet can define tab stops and placeholders with `$1`, `$2` + * and `${3:foo}`. `$0` defines the final tab stop, it defaults to + * the end of the snippet. Variables are defined with `$name` and + * `${name:default value}`. The full snippet syntax is documented + * [here](http://code.visualstudio.com/docs/customization/userdefinedsnippets#_creating-your-own-snippets). + */ + export interface SnippetString { + /** + * The snippet string. + */ + value: string; + } + /** * A completion item represents a text snippet that is * proposed to complete text that is being typed. @@ -4058,18 +4096,30 @@ declare module monaco.languages { */ filterText?: string; /** - * A string that should be inserted in a document when selecting + * A string or snippet that should be inserted in a document when selecting * this completion. When `falsy` the [label](#CompletionItem.label) * is used. */ - insertText?: string; + insertText?: string | SnippetString; /** - * An [edit](#TextEdit) which is applied to a document when selecting - * this completion. When an edit is provided the value of - * [insertText](#CompletionItem.insertText) is ignored. + * A range of text that should be replaced by this completion item. * - * The [range](#Range) of the edit must be single-line and one the same - * line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. + * Defaults to a range from the start of the [current word](#TextDocument.getWordRangeAtPosition) to the + * current position. + * + * *Note:* The range must be a [single line](#Range.isSingleLine) and it must + * [contain](#Range.contains) the position at which completion has been [requested](#CompletionItemProvider.provideCompletionItems). + */ + range?: Range; + /** + * @deprecated **Deprecated** in favor of `CompletionItem.insertText` and `CompletionItem.range`. + * + * ~~An [edit](#TextEdit) which is applied to a document when selecting + * this completion. When an edit is provided the value of + * [insertText](#CompletionItem.insertText) is ignored.~~ + * + * ~~The [range](#Range) of the edit must be single-line and on the same + * line completions were [requested](#CompletionItemProvider.provideCompletionItems) at.~~ */ textEdit?: editor.ISingleEditOperation; } @@ -4284,6 +4334,10 @@ declare module monaco.languages { * Describe what to do with the indentation. */ indentAction: IndentAction; + /** + * Describe whether to outdent current line. + */ + outdentCurrentLine?: boolean; /** * Describes text to be appended after the new line and after the indentation. */ @@ -4519,11 +4573,11 @@ declare module monaco.languages { * The type definition provider interface defines the contract between extensions and * the go to implementation feature. */ - export interface TypeDefinitionProvider { + export interface ImplementationProvider { /** * Provide the implementation of the symbol at the given position and document. */ - provideTypeDefinition(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; + provideImplementation(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; } /** @@ -5074,12 +5128,14 @@ declare module monaco.languages.html { readonly insertSpaces: boolean; readonly wrapLineLength: number; readonly unformatted: string; + readonly contentUnformatted: string; readonly indentInnerHtml: boolean; readonly preserveNewLines: boolean; readonly maxPreserveNewLines: number; readonly indentHandlebars: boolean; readonly endWithNewline: boolean; readonly extraLiners: string; + readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline'; } export interface CompletionConfiguration { diff --git a/website/playground/monaco.d.ts.txt b/website/playground/monaco.d.ts.txt index 7972ba4c..4f4f0fbc 100644 --- a/website/playground/monaco.d.ts.txt +++ b/website/playground/monaco.d.ts.txt @@ -1215,6 +1215,11 @@ declare module monaco.editor { * Defaults to false. */ disableTranslate3d?: boolean; + /** + * Disable the optimizations for monospace fonts. + * Defaults to false. + */ + disableMonospaceOptimizations?: boolean; /** * Should the cursor be hidden in the overview ruler. * Defaults to false. @@ -1315,6 +1320,11 @@ declare module monaco.editor { * Defaults to false. */ formatOnType?: boolean; + /** + * Enable format on paste. + * Defaults to false. + */ + formatOnPaste?: boolean; /** * Enable the suggestion box to pop-up on trigger characters. * Defaults to true. @@ -1474,6 +1484,7 @@ declare module monaco.editor { readonly _internalEditorViewOptionsBrand: void; readonly theme: string; readonly canUseTranslate3d: boolean; + readonly disableMonospaceOptimizations: boolean; readonly experimentalScreenReader: boolean; readonly rulers: number[]; readonly ariaLabel: string; @@ -1503,6 +1514,7 @@ declare module monaco.editor { export interface IViewConfigurationChangedEvent { readonly theme: boolean; readonly canUseTranslate3d: boolean; + readonly disableMonospaceOptimizations: boolean; readonly experimentalScreenReader: boolean; readonly rulers: boolean; readonly ariaLabel: boolean; @@ -1538,6 +1550,7 @@ declare module monaco.editor { readonly parameterHints: boolean; readonly iconsInSuggestions: boolean; readonly formatOnType: boolean; + readonly formatOnPaste: boolean; readonly suggestOnTriggerCharacters: boolean; readonly acceptSuggestionOnEnter: boolean; readonly acceptSuggestionOnCommitCharacter: boolean; @@ -2794,10 +2807,18 @@ declare module monaco.editor { * A label of the action that will be presented to the user. */ label: string; + /** + * Precondition rule. + */ + precondition?: string; /** * An array of keybindings for the action. */ keybindings?: number[]; + /** + * The keybinding rule (condition on top of precondition). + */ + keybindingContext?: string; /** * Control if the action should show up in the context menu and where. * The context menu of the editor has these default: @@ -2812,10 +2833,6 @@ declare module monaco.editor { * Control the order in the context menu group. */ contextMenuOrder?: number; - /** - * The keybinding rule. - */ - keybindingContext?: string; /** * Method that will be executed when the action is triggered. * @param editor The editor instance is passed in as a convinience @@ -3006,6 +3023,10 @@ declare module monaco.editor { * Scroll vertically or horizontally as necessary and reveal a range centered vertically. */ revealRangeInCenter(range: IRange): void; + /** + * Scroll vertically or horizontally as necessary and reveal a range at the top of the viewport. + */ + revealRangeAtTop(range: IRange): void; /** * Scroll vertically or horizontally as necessary and reveal a range centered vertically only if it lies outside the viewport. */ @@ -3932,9 +3953,9 @@ declare module monaco.languages { export function registerDefinitionProvider(languageId: string, provider: DefinitionProvider): IDisposable; /** - * Register a type definition provider (used by e.g. go to implementation). + * Register a type implementation provider (used by e.g. go to implementation). */ - export function registerTypeDefinitionProvider(languageId: string, provider: TypeDefinitionProvider): IDisposable; + export function registerImplementationProvider(languageId: string, provider: ImplementationProvider): IDisposable; /** * Register a code lens provider (used by e.g. inline code lenses). @@ -4020,6 +4041,23 @@ declare module monaco.languages { Folder = 18, } + /** + * A snippet string is a template which allows to insert text + * and to control the editor cursor when insertion happens. + * + * A snippet can define tab stops and placeholders with `$1`, `$2` + * and `${3:foo}`. `$0` defines the final tab stop, it defaults to + * the end of the snippet. Variables are defined with `$name` and + * `${name:default value}`. The full snippet syntax is documented + * [here](http://code.visualstudio.com/docs/customization/userdefinedsnippets#_creating-your-own-snippets). + */ + export interface SnippetString { + /** + * The snippet string. + */ + value: string; + } + /** * A completion item represents a text snippet that is * proposed to complete text that is being typed. @@ -4058,18 +4096,30 @@ declare module monaco.languages { */ filterText?: string; /** - * A string that should be inserted in a document when selecting + * A string or snippet that should be inserted in a document when selecting * this completion. When `falsy` the [label](#CompletionItem.label) * is used. */ - insertText?: string; + insertText?: string | SnippetString; /** - * An [edit](#TextEdit) which is applied to a document when selecting - * this completion. When an edit is provided the value of - * [insertText](#CompletionItem.insertText) is ignored. + * A range of text that should be replaced by this completion item. * - * The [range](#Range) of the edit must be single-line and one the same - * line completions where [requested](#CompletionItemProvider.provideCompletionItems) at. + * Defaults to a range from the start of the [current word](#TextDocument.getWordRangeAtPosition) to the + * current position. + * + * *Note:* The range must be a [single line](#Range.isSingleLine) and it must + * [contain](#Range.contains) the position at which completion has been [requested](#CompletionItemProvider.provideCompletionItems). + */ + range?: Range; + /** + * @deprecated **Deprecated** in favor of `CompletionItem.insertText` and `CompletionItem.range`. + * + * ~~An [edit](#TextEdit) which is applied to a document when selecting + * this completion. When an edit is provided the value of + * [insertText](#CompletionItem.insertText) is ignored.~~ + * + * ~~The [range](#Range) of the edit must be single-line and on the same + * line completions were [requested](#CompletionItemProvider.provideCompletionItems) at.~~ */ textEdit?: editor.ISingleEditOperation; } @@ -4284,6 +4334,10 @@ declare module monaco.languages { * Describe what to do with the indentation. */ indentAction: IndentAction; + /** + * Describe whether to outdent current line. + */ + outdentCurrentLine?: boolean; /** * Describes text to be appended after the new line and after the indentation. */ @@ -4519,11 +4573,11 @@ declare module monaco.languages { * The type definition provider interface defines the contract between extensions and * the go to implementation feature. */ - export interface TypeDefinitionProvider { + export interface ImplementationProvider { /** * Provide the implementation of the symbol at the given position and document. */ - provideTypeDefinition(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; + provideImplementation(model: editor.IReadOnlyModel, position: Position, token: CancellationToken): Definition | Thenable; } /** @@ -5074,12 +5128,14 @@ declare module monaco.languages.html { readonly insertSpaces: boolean; readonly wrapLineLength: number; readonly unformatted: string; + readonly contentUnformatted: string; readonly indentInnerHtml: boolean; readonly preserveNewLines: boolean; readonly maxPreserveNewLines: number; readonly indentHandlebars: boolean; readonly endWithNewline: boolean; readonly extraLiners: string; + readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline'; } export interface CompletionConfiguration {