mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 13:55:41 +01:00
Fix error Cannot read property 'getModeId' of null
When a monaco editor instance is created and destroyed shortly afterwards, the error 'Cannot read property 'getModeId' of null' occurs. As far as I could trace this issue, this happens because in onModelAdd a call to setTimeout is made with a delay of 500ms, which in turn calls _doValidate. If the monaco editor instance is destroyed before the callback is called, _doValidate tries to call model.getModeId(), but model is null. The little additional null-check in this PR ensures no exception is thrown if the model cannot be determined. Unfortunately, I wasn't able to reproduce this problem using vs code playground or similar. It is easily reproducible in our angular application which uses monaco-editor@0.21.2. Here, we display a monaco editor instance in a property editor on the right side of the screen which is newly instantiated whenever the user selects a new object on the left side of the screen. If you quickly change the items selected the error occurs. I'll be happy to provide a screen recording including the Chrome dev tools console if needed. Last but not least: Thanks for all your great work! :)
This commit is contained in:
parent
23bd524cc3
commit
a78b94491d
1 changed files with 1 additions and 1 deletions
|
|
@ -103,7 +103,7 @@ export class DiagnosticsAdapter {
|
|||
.then((diagnostics) => {
|
||||
const markers = diagnostics.map((d) => toDiagnostics(resource, d));
|
||||
let model = editor.getModel(resource);
|
||||
if (model.getModeId() === languageId) {
|
||||
if (model && model.getModeId() === languageId) {
|
||||
editor.setModelMarkers(model, languageId, markers);
|
||||
}
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue