monaco-editor/CHANGELOG.md

105 KiB

Monaco Editor Changelog

[0.45.0]

Breaking Changes

  • wordBasedSuggestions: boolean -> 'off' | 'currentDocument' | 'matchingDocuments' | 'allDocuments'
  • occurrencesHighlight: boolean -> 'off' | 'singleFile' | 'multiFile'

Additions

  • Many bug fixes
  • IEditorScrollbarOptions.ignoreHorizontalScrollbarInContentHeight
  • IDiffEditor.goToDiff
  • IDiffEditor.revealFirstDiff

[0.44.0]

  • Removes old diff editor implementation.
  • Custom diff algorithms no longer can be passed via diff editor options, instead a service should be used (see #3558 for more details).

[0.42.0]

  • Uses new diff editor widget by default. Use experimental.useVersion2: false to use the old widget. The old widget will be replaced in the next update.
  • Diff editor uses inline mode by default when width is too small. Use the config option useInlineViewWhenSpaceIsLimited to control this behavior.
  • Fixes broken language features when a model is created before the editor.

[0.41.0]

  • IDiffEditor.diffReviewNext was renamed to IDiffEditor.accessibleDiffViewerNext.
  • IDiffEditor.diffReviewPrev was renamed to IDiffEditor.accessibleDiffViewerPrev.
  • Introduces InlineCompletionsProvider.yieldsToGroupIds to allows inline completion providers to yield to other providers.
  • Bugfixes

Contributions to monaco-editor:

[0.40.0]

  • Support for Glyph Margin Widgets
  • Removes getDiffLineInformationForOriginal and getDiffLineInformationForModified from IDiffEditor
  • createTrustedTypesPolicy is optional now
  • New option IModelDecorationOptions.shouldFillLineOnLineBreak
  • New option EditorOptions.readOnlyMessage

[0.39.0]

  • New method Environment.createTrustedTypesPolicy to override trusted types handling.
  • Bugfixes

Contributions to monaco-editor:

[0.38.0]

  • diffAlgorithm values changed: smart -> legacy, experimental -> advanced
  • New registerEditorOpener API
  • New property IViewZone.showInHiddenAreas to show view zones in hidden areas
  • New properties InlineCompletions.suppressSuggestions and InlineCompletions.enableForwardStability
  • Bugfixes

Contributions to monaco-editor:

[0.37.1]

  • Fixes Inline Completions feature

[0.37.0]

  • New registerLinkOpener API
  • New onLanguageEncountered event for when a language is encountered during tokenization.
  • Updated TypeScript to 5.0
  • New required field canFormatMultipleRanges on DocumentRangeFormattingEditProvider
  • Bugfixes

Contributions to monaco-editor:

[0.36.1]

  • Marks unneeded dependencies as dev dependencies.

[0.36.0]

  • Maintenance release

[0.35.0]

  • Adds sticky scrolling
  • Support for custom diff algorithms

Breaking Changes

  • Renamed the option enableDropIntoEditor to dropIntoEditor
  • Changed IContentWidgetPosition.range: Range to IContentWidgetPosition.secondaryPosition: Position
  • renderFinalNewline config: is now of type 'on' | 'off' | 'dimmed' (was boolean).
  • cursorSmoothCaretAnimation config: is now of type 'off' | 'explicit' | 'on' (was boolean)

Contributions to monaco-editor:

[0.34.1]

  • Adds API to register global actions, commands, or keybinding rules

[0.34.0]

  • Introduction of IEditor.createDecorationsCollection API
  • New function removeAllMarkers to remove all markers
  • Support for light high contrast theme
  • Introduction of BracketPairColorizationOptions.independentColorPoolPerBracketType
  • Introduction of PositionAffinity.LeftOfInjectedText and PositionAffinity.RightOfInjectedText
  • Introduction of IEditorOptions.showFoldingControls: 'never'
  • Introduction of IDiffEditorBaseOptions.renderMarginRevertIcon: boolean
  • Inline Quick Suggestions
  • Introduction of IContentWidgetPosition.positionAffinity
  • Provider can now be registered for a LanguageSelector

Breaking Changes

  • IEditorInlayHintsOptions tweaks
  • Iteration on InlineCompletion API
  • WorkspaceFileEdit -> IWorkspaceFileEdit
    • oldUri -> oldResource
    • newUri -> newResource
  • WorkspaceTextEdit -> IWorkspaceTextEdit
    • edit -> textEdit (now supports insertAsSnippet)
    • modelVersionId?: number -> versionId: number | undefined
  • InlayHint API tweaks
  • Soft deprecation of ICodeEditor.deltaDecorations, no adoption required. IEditor.createDecorationsCollection API should be used instead.

Contributions to monaco-editor:

[0.33.0]

  • The first parameter of all monaco.languages.register*Provider functions has changed to take a DocumentSelector instead of a single languageId
  • The Environment.getWorker function can now return a Promise

Breaking Changes

  • InlayHintKind.Other is removed.

Thank you

Contributions to monaco-editor:

[0.32.1] (04.02.2022)

[0.32.0] (03.02.2022)

Breaking Changes

  • The binary format for IEncodedLineTokens has changed to support strikethrough text.
  • IDiffEditor.getDomNode() has been renamed to IDiffEditor.getContainerDomNode().
  • InlayHint.text has been replaced by InlayHint.label and InlayHintsProvider.provideInlayHints now returns an InlayHintList.

Thank you

Contributions to monaco-editor:

[0.31.1] (14.12.2021)

[0.31.0] (10.12.2021)

Breaking Changes

  • the generated code is now bundled with ESBuild and the generated code makes use of newer browser features, e.g. optional chaining. These features should be available in all browsers, but they might not be parsed correctly by older JS parsers, specifically parcel v1 might have problems parsing the JS.

Thank you

[0.30.1] (09.11.2021)

[0.30.0] (04.11.2021)

  • adds support for rendering horizontal guides between bracket pairs and improves the vertical rendering to account for content in between brackets.
  • adds new hover.above option to control the hover position.
  • adds ICodeEditor.onDidChangeHiddenAreas which is fired when folding/unfolding.
  • to address CVE-2021-42574, the editor now renders Unicode directional formatting characters by default. The special rendering can be turned off using renderControlCharacters. See https://code.visualstudio.com/updates/v1_62#_unicode-directional-formatting-characters for an explanation.

Breaking Changes

  • renamed enum members of monaco.KeyCode to align with the names given for browser codes.
  • renamed ITextModel.getModeId() to ITextModel.getLanguageId()
  • renamed IPasteEvent.mode to IPasteEvent.languageId

Thank you

Contributions to monaco-editor-webpack-plugin:

Contributions to monaco-languages:

[0.29.1] (11.10.2021)

Thank you

Contributions to monaco-languages:

[0.29.0] (08.10.2021)

  • adds an ariaContainerElement option for editors
  • adds guides.bracketPairs to enable guides driven by bracket pairs
  • adds maxFileSize to control the maximum file size for which to compute diffs
  • adds CodeActionProvider.resolveCodeAction

Breaking Change

  • consolidated the options renderIndentGuides, highlightActiveIndentGuide to guides

Thank you

Contributions to monaco-editor:

Contributions to monaco-editor-samples:

Contributions to monaco-editor-webpack-plugin:

Contributions to monaco-languages:

Contributions to monaco-typescript:

[0.28.0] (22.09.2021)

monaco.languages.typescript.typescriptDefaults.setInlayHintsOptions({
	includeInlayParameterNameHints: 'all',
	includeInlayParameterNameHintsWhenArgumentMatchesName: true,
	includeInlayFunctionParameterTypeHints: true,
	includeInlayVariableTypeHints: true,
	includeInlayPropertyDeclarationTypeHints: true,
	includeInlayFunctionLikeReturnTypeHints: true,
	includeInlayEnumMemberValueHints: true
});
  • adds support for bracket pair highlighting, which can be enabled by configuring bracketPairColorization.enabled when creating a new editor:
var editor = monaco.editor.create(document.getElementById('container'), {
	model: model,
	language: 'javascript',
	'bracketPairColorization.enabled': true
});
  • registerCodeActionProvider now accepts metadata to specify provided code action kinds (e.g. quickfix, refactor or source).

Thank you

Contributions to monaco-editor:

Contributions to monaco-html:

Contributions to monaco-languages:

Contributions to monaco-typescript:

[0.27.0] (16.08.2021)

  • added property inlineClassName to style injected text
  • added option foldingImportsByDefault
  • added more JSON diagnostic options.

Breaking Change

  • changed seedSearchStringFromSelection from boolean to 'never' | 'always' 'selection'
  • changed suggestion preview mode subwordDiff to subwordSmart, introduced subword

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

[0.26.1] (15.07.2021)

[0.26.0] (15.07.2021)

  • added support for injected text. Use IModelDecorationOptions.before/after.
  • added support for inlay hints provider.

Breaking Changes

  • CompletionItemLabel now has the property label, detail and description (instead of name, parameters, qualifier and type).

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript:

[0.25.2] (17.06.2021)

[0.25.1] (15.06.2021)

[0.25.0] (11.06.2021)

  • added a new feature inlineSuggest that features a provider api and new settings.
  • added suggest.preview to toggle previewing the selected suggest item.
  • added suggest.showDeprecated
  • CSS/HTML: added support for custom data format
  • HTML: added registerHTMLLanguageService

Breaking changes

  • renamed inlineHints to inlayHints.

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.24.0 (12.05.2021)

  • added a setting domReadOnly which controls if the <textarea> used for editor input should have the DOM readonly attribute
  • added a setting useShadowDOM which can be set to false to prevent the editor from using shadow DOM in its implementation (e.g. for the contextmenus).
  • added a settings autoClosingDelete that controls how backspace works inside auto-closing pairs.
  • added DiagnosticsOptions.onlyVisible for TypeScript which limits the computation of diagnostics to only visible text models.
  • fixed issue where the editor would not load in Safari 13.

Breaking changes

  • EditorAutoClosingOvertypeStrategy has been renamed to EditorAutoClosingEditStrategy

Thank you

Contributions to monaco-editor:

Contributions to monaco-editor-webpack-plugin:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.23.0 (05.03.2021)

Thank you

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.22.3 (01.02.2021)

Fixes a regression where symbol icons used in suggestions or quick outline were missing colors (see https://github.com/microsoft/monaco-editor/issues/2329).

0.22.2 (01.02.2021)

Fixes a regression where under certain webpack configurations process.nextTick could be used without explicitly checking for it being defined (see https://github.com/microsoft/monaco-editor/issues/2328).

0.22.1 (29.01.2021)

Fixes a regression where format commands would no longer work (see https://github.com/microsoft/monaco-editor/issues/2327).

0.22.0 (29.01.2021)

New & Noteworthy

  • new grammars for Modula-3 and ECL (Enterprise Control Language).
  • added monaco.editor.onDidChangeMarkers to listen for marker changes.
  • added monaco.editor.registerCommand to register global commands.
  • added monaco.languages.setColorMap to allow defining the color map used for tokenization.
  • added IMonarchLanguage.includeLF to allow matching against the \n at the end of each line.
  • new editor option stickyTabStops to make interacting with spaces in indentation behave more like interacting with tabs.

Breaking changes

  • The ESM version of the editor will no longer define a global monaco object. You can define global.MonacoEnvironment = { globalAPI: true } if you want for the editor to define this global object.
  • Renamed OnTypeRenameProvider to LinkedEditingRangeProvider and related methods like the editor option renameOnType (now linkedEditing), registerOnTypeRenameProvider (now registerLinkedEditingRangeProvider), etc.
  • Renamed OnEnterRule.oneLineAboveText to OnEnterRule.previousLineText

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript:

Contributions to monaco-css:

  • @jpett: Fix error Cannot read property 'getModeId' of null PR #10

0.21.3 (18.01.2021)

Fixes a regression in suggestions where the browser clipboard API would be accessed by incomplete suggestion lists (see 96d61842ba).

0.21.2 (27.09.2020)

Fixes a regression in monaco-css.

Breaking changes

  • monaco.uri methods file, from, isUri, joinPath, parse, revive are now static. Changing new monaco.uri.method to monaco.uri.method resolves 'TypeError: monaco.Uri.file is not a constructor at...' errors.

0.21.1 (24.09.2020)

Fixes a few regressions.

Thank you

Contributions to monaco-html:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.21.0 (21.09.2020)

New & Noteworthy

  • Added Paste in the context menu in browsers which support the clipboard API.
  • Many improvements in monaco-typescript: support for "deprecated" tags, API to participate in the web worker, improved lib.d.ts resolving.
  • New tokenization support for: Julia, Scala, Lexon, Terraform HCL, Dart, Systemverilog.
  • New semantic tokens provider sample on the playground.
  • New shadow dom sample
  • New overflowWidgetsDomNode constructor option to pass in a parent for overflowing widgets.
  • New minimap.size option: proportional, fill, fit.
  • New OnTypeRename provider and option renameOnType.
  • Fixed issue where cross-origin web workers were not working on Safari.
  • Fixed many issues around embedding the editor in iframes or in shadow dom.
  • Fixed issue with automaticLayout.
  • Fixed issue with scrolling speed on Firefox.
  • New options: tabIndex, scrollPredominantAxis, columnSelection, padding, unfoldOnClickAfterEndOfLine, renderLineHighlightOnlyWhenFocus, definitionLinkOpensInPeek, showDeprecated, comments.ignoreEmptyLines, find.cursorMoveOnType, find.loop.
  • New diff editor options: originalCodeLens, modifiedCodeLens.
  • Changed options: rulers can now define different colors, renderWhitespace can now be trailing.

Breaking changes

  • CompletionItemLabel.signature has been renamed to CompletionItemLabel.parameters.
  • The signature of CompletionItemProvider.resolveCompletionItem has changed.
  • IMarker.code.link was renamed to IMarker.code.target.
  • IMarkerData.code.link was renamed to IMarkerData.code.target.
  • EditorLayoutInfo has been restructured.

Thank you

Contributions to monaco-editor:

Contributions to monaco-typescript:

Contributions to monaco-json:

Contributions to monaco-languages:

0.20.0 (11.02.2020)

New & Noteworthy

  • The editor can now be hosted inside a Shadow Root.
  • There is new API to read the editor's content width and height.
  • New editor options:
    • renderValidationDecorations - render validation decorations even in read only editors
    • wrappingStrategy - delegate wrapping points computation to the browser
    • comments.insertSpace - insert a space around comments when running commenting commands
    • foldingHighlight - highlight folded regions
    • peekWidgetDefaultFocus - focus the inline editor or the tree when opening peek view

Breaking changes

  • Renamed onCompositionStart, onCompositionEnd to onDidCompositionStart, onDidCompositionEnd
  • Changed the argument passed in to onDidPaste
  • WorkspaceEdit.edits has now changed its shape such that edits must no longer be grouped by resource.
  • The Monaco Editor no longer supports IE 11. The last version that was tested in IE 11 is 0.18.1.

Thank you

Contributions to monaco-editor:

Contributions to monaco-typescript:

Contributions to monaco-languages:

0.19.3 (14.01.2020)

  • brings back a way to get resolved editor options - #1734

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

0.19.2 (06.01.2020)

  • fixes issue with default value of autoIndent - #1726

0.19.1 (06.01.2020)

  • fixes issue with .d.ts file in the ESM distribution - #1729
  • adds types for global editor options (such as wordBasedSuggestions) - #1746
  • adds support for reStructuredText.

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

0.19.0 (20.12.2019)

New & Noteworthy

  • It is now possible to pass in a dimension in the editor construction options in order to avoid a synchronous layout.
  • There is new API to provide semantic tokens.
  • New options:
    • multiCursorPaste: define how to distribute paste in case of multi-cursor
    • matchBrackets: control if enclosing brackets should be highlighted
  • Fixes for tokenization in: TypeScript, JavaScript, Handlebars, Kotlin and VB.

Breaking changes

  • getConfiguration() is replaced by getRawOptions(), which returns the passed in editor options.
  • Starting with this version, the Monaco Editor no longer supports IE 11. The last version that was tested in IE 11 is 0.18.1.

Thank you

Contributions to monaco-editor:

Contributions to monaco-editor-webpack-plugin:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.18.1 (19.09.2019)

  • fixes 2 issues with the ESM distribution - #1572 and #1574
  • fixes very slow scrolling in Firefox - #1575
  • new syntax highlighting for: pascaligo, ABAP, Sophia ML, Twig and MIPS.

Thank you

Contributions to monaco-editor:

Contributions to monaco-json:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.18.0 (04.09.2019)

New & Noteworthy

  • Minimap enhancement
    • Selections and find results are now rendered in the minimap.
    • Model decorations now support IModelDecorationOptions.minimap, once set the decoration will be rendered in the minimap
  • New editor options
    • autoClosingOvertype: it controls whether the editor allows typing over closing quotes or brackets.
    • cursorSurroundingLines: it controls how many visible lines to display around the cursor while moving the cursor towards beginning or end of a file.
    • renderWhitespace: "selection": the editor can render whitespaces only in selection.

API changes

  • DeclarationProvider: The declaration provider interface defines the contract between extensions and the go to declaration feature.
  • SelectionRangeProvider Provide smart selection ranges for the given positions, see VS Code issue.
  • CodeLensProvider should now return CodeLensList instead of ICodeLensSymbol[].
  • DocumentSymbol has a new property tags to support more types.
  • View Zone id is now string instead of number.

Thank you

Contributions to monaco-json:

0.17.1 (25.06.2019)

  • Update monaco-typescript to TypeScript 3.5.0.

0.17.0 (05.05.2019)

New & Noteworthy

  • Localization support is brought back for AMD bundle. We lost the localization support when VS Code moved to the localization system but now AMD bundles ships the same localized strings VS Code localization extensions ship. For more details, please read Monaco#822 and related VS Code upstream issue
  • LinkProvider.ProvideLinks should now return ILinksList instead of ILink[].
  • IEditorOptions.iconsInSuggestions and EditorContribOptions.iconsInSuggestions are now replaced by EditorContribOptions.suggest.showIcons.
  • We introduced EditorContribOptions.suggest.maxVisibleSuggestions to control maximum suggestions to show in suggestions widget.
  • EditorContribOptions.suggest.filteredTypes is now introduced to allow suggestions to be filtered by the user. For more details, please read vscode#45039.

Thank You

Contributions to monaco-editor:

0.16.2 (19.03.2019)

0.16.1 (14.03.2019)

0.16.0 (05.03.2019)

New & Noteworthy

  • Added built-in support for AMD cross-domain web worker loading.
  • Added API to remeasure fonts (monaco.editor.remeasureFonts) in case custom fonts are used and the editor is painted at a time when the fonts are not finished loading.
  • Various editor improvements, such as an option to renderFinalNewline, or to have a cursorSmoothCaretAnimation
  • Colorization support for Tcl, Pascal, Kotlin and GraphQL.

Breaking changes

  • We are no longer shipping WinJS.Promise, but we are shipping with a Promise shim (for IE11).
  • CompletionItem.range is now mandatory. Most times, you can use model.getWordUntilPosition() to get a good range.
  • DefinitionLink has been renamed to LocationLink and a couple of its fields have also been renamed.

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript:

0.15.6 (23.11.2018)

0.15.5 (16.11.2018)

0.15.4 (15.11.2018)

0.15.3 (15.11.2018)

0.15.2 (14.11.2018)

0.15.1 (13.11.2018)

0.15.0 (12.11.2018)

New & Noteworthy

  • Improved typings in monaco.d.ts to better reflect null types.

Breaking changes

  • We are slowly migrating our code-base away from WinJS promises, so the exposed monaco.Promise API has been reduced to indicate that. We are setting up a Promise polyfill to cover browsers which do not have a native Promise implementation yet (i.e. IE11).
  • CompletionItemProvider.provideCompletionItems and CompletionItemProvider.resolveCompletionItem have been modified to better reflect the API of VS Code. Both arguments and return type have changed.
  • SignatureHelpProvider.provideSignatureHelp now receives an extra argument for the context.
  • Various new editor options or tweaks to existing ones: parameterHints, autoClosingBrackets, autoClosingQuotes, autoSurround, copyWithSyntaxHighlighting, tabCompletion.

Thank you

Contributions to monaco-editor:

Contributions to monaco-languages:

Contributions to monaco-typescript:

Contributions to monaco-json:

Contributions to monaco-css:

0.14.3 (17.08.2018)

0.14.2 (10.08.2018)

0.14.1 (10.08.2018)

0.14.0 (10.08.2018)

New & Noteworthy

  • Using tree-shaking to reduce the amount of shipped code.
  • TypeScript and JavaScript coloring is now done with Monarch.
  • typescriptServices is no longer loaded on the UI thread, this helps with webpack's bundle output size.
  • Added coloring for: apex, azcli, clojure, powerquery, rust, scheme and shell.
  • Added sub-word navigation commands.
  • Added font zoom commands.
  • Syntax highlighting for deleted lines in inline diff editor.
  • Highlighted indent guide.
  • Column selection using middle mouse button.
  • Added editor options: scrollBeyondLastColumn, hover, suggest, highlightActiveIndentGuide, showUnused.
  • Added setTokensProvider with EncodedTokensProvider.
  • Added monaco.languages.getEncodedLanguageId to get the numeric language id.
  • DefinitionProvider.provideDefinition, ImplementationProvider.provideImplementation, TypeDefinitionProvider.provideTypeDefinition can now return a DefinitionLink.

Breaking Changes

  • Removed no longer used Severity.
  • Renamed IEditor.isFocused to IEditor.hasTextFocus.
  • Renamed ICodeEditor.onDidFocusEditor to ICodeEditor.onDidFocusEditorWidget.
  • Renamed ICodeEditor.onDidBlurEditor to ICodeEditor.onDidBlurEditorWidget.
  • DocumentSymbolProvider.provideDocumentSymbols must now return DocumentSymbol[].

Thank you

Contributions to monaco-editor:

Contributions to monaco-typescript:

Contributions to monaco-languages:

0.13.1 (15.05.2018)

  • Fixes issue #871: TypeScript import error after mocaco-editor upgraded from 0.12 to 0.13

0.13.0 (11.05.2018)

New & Noteworthy

  • New folding provider registerFoldingRangeProvider.
  • You can now specifies the stack order of a decoration by setting IModelDecorationOptions.zIndex. A decoration with greater stack order is always in front of a decoration with a lower stack order.
  • You can now tell Monaco if there is an inlineClassName which affects letter spacing. the stack order of a decoration by setting IModelDecorationOptions.inlineClassNameAffectsLetterSpacing.
  • Get the text length for a certain line on text model (ITextModel.getLineLength(lineNumber: number))
  • New option codeActionsOnSave, controls whether code action kinds will be run on save.
  • New option codeActionsOnSaveTimeout, controls timeout for running code actions on save.
  • New option multiCursorMergeOverlapping, controls if overlapping selections should be merged. Default to true.

Breaking Change

  • Removed ICodeEditor.getCenteredRangeInViewport.
  • RenameProvider.resolveRenameLocation now returns RenameLocation instead of IRange.

Thank you

0.12.0 (11.04.2018)

  • Special thanks to Tim Kendrick for contributing a webpack plugin - monaco-editor-webpack-plugin - now available on npm.

Breaking changes

  • Introduced MarkerSeverity instead of Severity for markers serverity.
  • Replaced RenameProvider.resolveInitialRenameValue with RenameProvider.resolveRenameLocation.
  • Fixed typo in monaco-typescript, renamed setMaximunWorkerIdleTime to setMaximumWorkerIdleTime.

Thank you

0.11.1 (15.03.2018)

  • Fixes issue #756: Can't use "Enter" key to accept an IntelliSense item
  • Fixes issue #757: TypeScript errors in editor.api.d.ts typings

0.11.0 (14.03.2018)

New & Noteworthy

  • ESM distribution (compatible with e.g. webpack).
  • New interval tree decorations implementation.
  • New piece tree text buffer implementation.
  • The minimap can be placed to the left.
  • Line numbers can be displayed in an interval.
  • The cursor width can be customized.
  • Smooth scrolling can be turned on.
  • Color decorators and color picker via DocumentColorProvider.

Breaking changes

  • Replaced MarkedString with IMarkdownString. Source code snippets can be expressed using the GH markdown syntax.
  • Renamed IResourceEdit to ResourceTextEdit.

API changes

  • Merged IModel, IReadOnlyModel, IEditableTextModel, ITextModelWithMarkers, ITokenizedModel, ITextModelWithDecorations to ITextModel. A type alias for IModel is defined for compatibility.
  • Merged ICommonCodeEditor and ICodeEditor to ICodeEditor.
  • Merged ICommonDiffEditor and IDiffEditor to IDiffEditor.
  • CompletionItem.documentation, ParameterInformation.documentation and SignatureInformation.documentation can now be an IMarkdownString.
  • Added CompetionItem.command, CompletionItem.commitCharacters and CompletionItem.additionalTextEdits.
  • Added language configuration folding which can define markers for code patterns where a folding regions should be created. See for example the Python configuration.
  • Added by accident ResourceFileEdit (due to how monaco.d.ts is generated from vscode). That is not honoured by the editor, and should not be used.

Thank you

0.10.1 (16.10.2017)

  • Fixes issue #601: window.opener should be set to null to protect against malicious code

0.10.0 (17.08.2017)

Breaking changes

  • Removed CodeAction.
  • Method provideCodeActions in CodeActionProvider now returns Command[] | Thenable<Command[]> instead of CodeAction[] | Thenable<CodeAction[]>, which is already removed.

API changes

  • added monaco.editor.getModelMarkers. Get markers for owner and/or resource.

Notable Fixes

  • No longer use CSS class .row for command palette to avoid CSS conflicts with Bootstrap.
  • Fix Accessibility Help Dialog accessible issue on IE/Edge.
  • Fix Find Widget CSS compatibility issues with IE11.
  • Toggle Block Comment can remove extra whitespaces.

Thank you

0.9.0 (03.07.2017)

New & Noteworthy

  • Minimap (on by default, use editor.minimap to disable it).
  • Drag and Drop (on by default, use editor.dragAndDrop to disable it).
  • Copy text with formatting.

Accessibility

  • There is a new guide for making the editor accessible to all.
  • There is a new Alt+F1 (Ctrl+F1 in IE) accessibility help panel.
  • There is a new F8/Shift+F8 diff review panel in the diff editor.
  • Many bugfixes, including now respecting the Windows High Contrast Theme on Edge.

Breaking changes

  • A lot has changed w.r.t. how themes work in the editor, mostly driven by the work to support theming in VS Code. editor.updateOptions() no longer accepts theme; the theme can be changed via the newly introduced monaco.editor.setTheme(). Additionally, we recommend editor colors be customized via monaco.editor.defineTheme() instead of via CSS -- see sample. The color names will be stable, while the CSS class names might break at any time.
  • Support for the internal snippet syntax has been discontinued and snippet must now use the official, TextMate-like syntax. Find its grammar and samples here.
  • Changed IModel.findMatches to accept a list of word separators.
  • Changed the shape of the IModelContentChangedEvent emitted via IModel.onDidChangeContent to now contain a batch of all the changes that the model had.
  • No longer using transform: translate3d, now using will-change: transform for browser layer hinting. Use the disableLayerHinting option if you have any trouble with browser layers (blurriness or high GPU memory usage).
  • Simplified wrapping settings: wordWrap, wordWrapColumn and wordWrapMinified.

API changes

  • added monaco.languages.registerTypeDefinitionProvider.
  • new editor options:
    • accessibilityHelpUrl - the url of a page to open for documentation about how to operate the editor when using a Screen Reader.
    • find.seedSearchStringFromSelection - Ctrl+F/Cmd+F seeds search string from the editor selection.
    • find.autoFindInSelection - Ctrl+F/Cmd+F turns on the find in selection toggle if the editor selection is multiline.
    • minimap.enabled - enable minimap.
    • minimap.showSlider - control when to render the minimap slider.
    • minimap.renderCharacters - render characters or blocks in the minimap.
    • minimap.maxColumn - maximum number of columns the minimap shows.
    • overviewRulerBorder - toggle that the overview ruler renders a border.
    • links - enable link detection.
    • multiCursorModifier - change the multi cursor modifier key.
    • accessibilitySupport - optimize the editor for use with a Screen Reader.
    • autoIndent - automatically fix indentation when moving lines, pasting or typing.
    • dragAndDrop - dragging and dropping editor selection within the editor.
    • occurrencesHighlight - enable highlighting of occurences.
    • showFoldingControls - fine-tune when the folding icons should show
    • matchBrackets - enable bracket matching
    • letterSpacing - configure font's letter-spacing.

Thank you


0.8.3 (03.03.2017)

  • Fixes an issue in monaco-typescript where it would attempt to validate a disposed model.

0.8.2 (01.03.2017)

  • Fixes the following regressions:
    • issue #385: Cannot add action to the left-hand-side of the diff editor
    • issue #386: Shortcuts for actions added via editor.addAction don't show up in the Command Palette
    • issue #387: Cannot change diff editor to a custom theme based on high contrast

0.8.1 (27.01.2017)

  • 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] (18.01.2017)

  • This release has been brewing for a while and comes with quite a number of important changes.
  • There are many bugfixes and speed/memory usage improvements.
  • Now shipping TypeScript v2.1.5 in monaco-typescript (JS and TS language support).

No longer supporting IE9 and IE10

  • we have not made the editor fail on purpose in these browsers, but we have removed IE9/IE10 targeted workarounds from our codebase;
  • now using Typed Arrays in a number of key places resulting in considerable speed boosts and lower memory consumption.

Monarch Tokenizer

  • Monarch states are now memoized up to a depth of 5. This results in considerable memory improvements for files with many lines.
  • Speed improvements to Monarch tokenizer that resulted in one breaking change:
  • when entering an embedded mode (i.e. nextEmbedded), the state ending up in must immediately contain a nextEmbedded: "@pop" rule. This helps in quickly figuring out where the embedded mode should be left. The editor will throw an error if the Monarch grammar does not respect this condition.

Tokens are styled in JS (not in CSS anymore)

  • This is a breaking change
  • Before, token types would be rendered on the span node of text, and CSS rules would match token types and assign styling to them (i.e. color, boldness, etc.to style tokens)
  • To enable us to build something like a minimap, we need to know the text color in JavaScript, and we have therefore moved the token style matching all to JavaScript. In the future, we foresee that even decorations will have to define their color in JavaScript.
  • It is possible to create a custom theme via a new API method monaco.editor.defineTheme() and the playground contains a sample showing how that works.
  • Token types can be inspected via F1 > Developer: Inspect tokens. This will bring up a widget showing the token type and the applied styles.

API changes:

Namespaces

  • added monaco.editor.onDidCreateEditor that will be fired whenever an editor is created (will fire even for a diff editor, with the two editors that a diff editor consists of).
  • added monaco.editor.tokenize that returns logical tokens (before theme matching, as opposed to monaco.editor.colorize).
  • added monaco.languages.registerTypeDefinitionProvider

Models

  • removed IModel.getMode().
  • structural changes in the events IModelLanguageChangedEvent, IModelDecorationsChangedEvent and IModelTokensChangedEvent;
  • changed IModel.findMatches, IModel.findNextMatch and IModel.findPreviousMatch to be able to capture matches while searching.

Editors

  • ICodeEditor.addAction and IDiffEditor.addAction now return an IDisposable to be able to remove a previously added action.
  • renamed ICodeEditor.onDidChangeModelMode to ICodeEditor.onDidChangeModelLanguage;
  • ICodeEditor.executeEdits can now take resulting selection for better undo/redo stack management;
  • added ICodeEditor.getTargetAtClientPoint(clientX, clientY) to be able to do hit testing.
  • added IViewZone.marginDomNode to be able to insert a dom node in the margin side of a view zone.
  • settings:
    • lineDecorationsWidth can now take a value in the form of "1.2ch" besides the previous accepted number (in px)
    • renderLineHighlight can now take a value in the set 'none' | 'gutter' | 'line' | 'all'.
    • added fixedOverflowWidgets to render overflowing content widgets as 'fixed' (defaults to false)
    • added acceptSuggestionOnCommitCharacter to accept suggestions on provider defined characters (defaults to true)
    • added emptySelectionClipboard - copying without a selection copies the current line (defaults to true)
    • added suggestFontSize - the font size for the suggest widget
    • added suggestLineHeight - the line height for the suggest widget
  • diff editor settings:
    • added renderIndicators - Render +/- indicators for added/deleted changes. (defaults to true)

Thank you


[0.7.1] (07.10.2016)

  • Bugfixes in monaco-html, including fixing formatting.

[0.7.0] (07.10.2016)

  • Adopted TypeScript 2.0 in all the repos (also reflected in monaco.d.ts).
  • Added YAML colorization support.
  • Brought back the ability to use editor.addAction() and have the action show in the context menu.
  • Web workers now get a nice label next to the script name.

API changes:

  • settings:
    • new values for lineNumbers: 'on' | 'off' | 'relative'
    • new values for renderWhitespace: 'none' | 'boundary' | 'all'
  • removed model.setMode(), as IMode will soon disappear from the API.

Debt work

  • Removed HTML, razor, PHP and handlebars from monaco-editor-core:
    • the monaco-editor-core is now finally language agnostic.
    • coloring for HTML, razor, PHP and handlebars is now coming in from monaco-languages.
    • language smarts for HTML, razor and handlebars now comes from monaco-html.
  • Packaging improvements:
    • thanks to the removal of the old languages from monaco-editor-core, we could improve the bundling and reduce the number of .js files we ship.
    • we are thinking about simplifying this further in the upcoming releases.

Thank you


0.6.1 (06.09.2016)

  • Fixed regression where editor.addCommand was no longer working.

0.6.0 (05.09.2016)

  • This will be the last release that contains specific IE9 and IE10 fixes/workarounds. We will begin cleaning our code-base and remove them.
  • We plan to adopt TypeScript 2.0, so this will be the last release where monaco.d.ts is generated by TypeScript 1.8.
  • javascript and typescript language services:
    • exposed API to get to the underlying language service.
    • fixed a bug that prevented modifying extraLibs.
  • Multiple improvements/bugfixes to the css, less, scss and json language services.
  • Added support for ATS/Postiats.

API changes:

  • settings:
    • new: mouseWheelZoom, wordWrap, snippetSuggestions, tabCompletion, wordBasedSuggestions, renderControlCharacters, renderLineHighlight, fontWeight.
    • removed: tabFocusMode, outlineMarkers.
    • renamed: indentGuides -> renderIndentGuides, referenceInfos -> codeLens
  • added editor.pushUndoStop() to explicitly push an undo stop
  • added suppressMouseDown to IContentWidget
  • added optional resolveLink to ILinkProvider
  • removed enablement, contextMenuGroupId from IActionDescriptor
  • removed exposed constants for editor context keys.

Notable bugfixes:

  • Icons missing in the find widget in IE11 #148
  • Multiple context menu issues
  • Multiple clicking issues in IE11/Edge (#137, #118)
  • Multiple issues with the high-contrast theme.
  • Multiple IME issues in IE11, Edge and Firefox.

Thank you


0.5.1 (24.06.2016)

  • Fixed mouse handling in IE

[0.5.0] (24.06.2016)

Breaking changes

  • monaco.editor.createWebWorker now loads the AMD module and calls create and passes in as first argument a context of type monaco.worker.IWorkerContext and as second argument the initData. This breaking change was needed to allow handling the case of misconfigured web workers (running on a file protocol or the cross-domain case)
  • the CodeActionProvider.provideCodeActions now gets passed in a CodeActionContext that contains the markers at the relevant range.
  • the hoverMessage of a decoration is now a MarkedString | MarkedString[]
  • the contents of a Hover returned by a HoverProvider is now a MarkedString | MarkedString[]
  • removed deprecated IEditor.onDidChangeModelRawContent, IModel.onDidChangeRawContent

Notable fixes

  • Broken configurations (loading from file:// or misconfigured cross-domain loading) now load the web worker code in the UI thread. This caused a breaking change in the behaviour of monaco.editor.createWebWorker
  • The right-pointing mouse pointer is oversized in high DPI - issue
  • The editor functions now correctly when hosted inside a position:fixed element.
  • Cross-origin configuration is now picked up (as advertised in documentation from MonacoEnvironment)