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 compability issues with IE11.
Toggle Block Comment can remove extra whitespaces.
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 (bluriness or high GPU memory usage).
Simplified wrapping settings: wordWrap, wordWrapColumn and wordWrapMinified.
to the many others that have contributed PRs to vscode which have also made their way into the monaco-editor.
[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).
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[]
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)