Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add BreakBeforePoint + Break on component lifecycle #206

Merged
merged 9 commits into from
Feb 11, 2025
Merged

Conversation

Nyan11
Copy link
Collaborator

@Nyan11 Nyan11 commented Feb 6, 2025

No description provided.

@Nyan11
Copy link
Collaborator Author

Nyan11 commented Feb 6, 2025

image

image

@Nyan11
Copy link
Collaborator Author

Nyan11 commented Feb 6, 2025

image

@Nyan11 Nyan11 requested a review from LabordePierre February 6, 2025 12:32
Copy link
Member

@LabordePierre LabordePierre left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Nyan11 I think we need to clarify two cases:

  • Object Centric Breakpoint
  • No-Object Centric Breackpoint (classic)
    This can be done by explicit labels (not sur to know if this OCB or not).

Other remark:

  • A component can be re-activated after passivation, not only when a new component is create. This is why I'm asking on top. Example: Can I add a breakpoint on passivate for "this" component (#default) of for all components with this "component type"?

@LabordePierre LabordePierre added the enhancement New feature or request label Feb 6, 2025
@Nyan11
Copy link
Collaborator Author

Nyan11 commented Feb 6, 2025

@Nyan11 I think we need to clarify two cases:

Object Centric Breakpoint
No-Object Centric Breackpoint (classic)
This can be done by explicit labels (not sur to know if this OCB or not).

I agree, i think there should be 2 type of logos:

  • The "!" red: for classic breakpoint.
  • A "!" + something else for object-centric.

This change should be done also in the PharoDebugger project.

  • A component can be re-activated after passivation, not only when a new component is create. This is why I'm asking on top. Example: Can I add a breakpoint on passivate for "this" component (#default) of for all components with this "component type"?

In the inspector of deployed components:

  • Halt once when #initialize is a classic Breakpoint. It will break on any new instance (or the same instance).
  • Halt once when #activate is a classic Breakpoint. It will break on any new instance (or the same instance).
  • Halt when #passivate is an Object Centric Breakpoint. It will only break for this instance.
  • Halt when #remove is an Object Centric Breakpoint. It will only break for this instance.

In the browser:

  • Break once on #componentInitialize is a classic Breakpoint. It will break on any new instance (or the same instance).
  • Break once on #componentActivate is a classic Breakpoint. It will break on any new instance (or the same instance).

@Nyan11
Copy link
Collaborator Author

Nyan11 commented Feb 10, 2025

  • Better world menu (show molecule graph + inspect)
  • Put the molecule graph on the inspector in the last position
  • Add classical breakpoint on lifecycle in the browser menu
  • Add button on the molecule graph (inspect deployed components + refresh the graph)
  • Change some logo on the molecule browser menu (for the molecule specialized panels)
  • Add molecule specialized panels in the molecule graph
  • Add lifecyles breakpoint on molecule graph (classic and object-oriented)
  • Add object oriented breakpoint on the component contracts
  • I also clean up the old code of Molecule-IDE and remove lot of unescessary things.

Currenlty there is a bug on object centric breakpoint (see: pharo-project/pharo#17808), that does not allow to open the Debug Point Browser if you use the object-centric debug point. You need to clear them all using the "Remove All Debug Points" in the same menu.
image

Also there are problem with object-centric breakpoint in GPS example with the fork. If you try to put it in the Events of MolGNSGPS it will not trigger. It should trigger inside the #componentActivate method but it does not ???
image

Pictures

New world menu:
image
image

New Molecule browser menu + new icons for old panels:
image
image
image

Molecule graph:
image
image

@Nyan11 Nyan11 requested a review from LabordePierre February 10, 2025 16:48
@Nyan11
Copy link
Collaborator Author

Nyan11 commented Feb 11, 2025

@labordep @LabordePierre

@labordep labordep merged commit 0418d6c into main Feb 11, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants