You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If two editors are open for the same file, a number of issues arise related to breakpoint management due to the fact that both editors have their own DebugEditorModels.
Steps to Reproduce:
Open an editor.
Open a second instance (Ctrl+\)
Add a breakpoint.
Right click on the breakpoint decoration in the first editor and say 'Edit Breakpoint'
Observe that the breakpoint editor opens in the second editor.
Move the breakpoint up or down a few lines by adding or removing content from the second editor.
Observe hundreds of warnings about calling deltaDecorations recursively, as well as, possibly, a freeze and numerous stack overflow warnings.
Additional Information
There are two related issues. A DebugEditorModel is supposed to ignore events that originate from itself, which is the import of the check for this.updatingDecorations here:
But if another editor is active for the same URI, then each will trigger the other to check its breakpoints and eventually emit a new change event.
Relatedly, in the DebugEditorService, a new model is created for every editor, regardless of whether a model exists for that URI. This may also lead to undisposed DebugEditorModels.
Bug Description:
If two editors are open for the same file, a number of issues arise related to breakpoint management due to the fact that both editors have their own
DebugEditorModel
s.Steps to Reproduce:
Ctrl+\
)deltaDecorations
recursively, as well as, possibly, a freeze and numerous stack overflow warnings.Additional Information
There are two related issues. A
DebugEditorModel
is supposed to ignore events that originate from itself, which is the import of the check forthis.updatingDecorations
here:theia/packages/debug/src/browser/editor/debug-editor-model.ts
Lines 308 to 320 in fe8e4c1
But if another editor is active for the same URI, then each will trigger the other to check its breakpoints and eventually emit a new change event.
Relatedly, in the
DebugEditorService
, a new model is created for every editor, regardless of whether a model exists for that URI. This may also lead to undisposedDebugEditorModels
.theia/packages/debug/src/browser/editor/debug-editor-service.ts
Lines 61 to 73 in fe8e4c1
The text was updated successfully, but these errors were encountered: