Fix code highlighting in debug points browser, for debug points set on AST node #726
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #725
When you select a debug point in the debug point browser, it updates itself according to the target of the selected debug point.
In the case of an AST node, it updates the code presenter (code and highlighting) and updates its layout to display this code presenter:
The method
#updateCode:
calls the method#addTextSegmentDecoration:
that asks an adapter to add highlighting to the corresponding morphs.However, for an obscure reason,
SpPanedLayout>>#replaceSecond:
called fromDebugPointBrowserPresenter >> switchToNodeTargetView
seems to replace the morphs corresponding to the presenter, and thus the highlight that was just added disappears.To fix that, I just reversed the order of method calls in
DebugPointNodeTarget >> updateDebugPointUIManager:
.First, we display the code presenter (which replaces the morphs corresponding to the code presenter) and then we update this code presenter (we add the highlight). In this order, the highlight remains and is correct