SmartBreakpoints: alpha release 1.0

Hello!
I am super proud and happy to announce the first release of SmartBreakpoints 🙂

Features:
– One-shot AST based breakpoints
– Persistent breakpoints
– Integration to SmartSuggestions menu (check out the previous post)
– halts only at base level (for now this is by default, later on it would be nice to have the ability to break in system methods as well).
– Works in Pharo 4.0 (with posibility of being backported to 3.0 eventually)

This is an experimental feature: finally I succeeded on being able to insert breakpoints everywhere (even in system methods) but it is not thoroughly tested. So, now it would be nice if you could use it, test it and let me know if it breaks, and where (it’s likely to break somewhere, but I cannot prevent all possible use cases) 🙂

So, how do you get it? Run this Script:

Gofer it
	smalltalkhubUser: 'ClaraAllende' project: 'SmartBreakpoints';
	configurationOf: 'SmartBreakpoints';
	loadStable .
By clariallende

Break it all!

Salut à tous!

In case you don’t know the song that gives title to this post:

Today I’m going to tell you a little more on those fancy breakpoints we want to get 🙂

Now that Reflectivity is more or less ported and almost stable (I keep on doing small refactorings and improvements, and fixing bugs), I have started to work in a small API for inserting breakpoints. After thinking of it for a while (and thanks to Martin Dias for the brainstorming), I decided to integrate them to SmartSuggestions framework, which provides suggestions (duh!) based in the selected text or the cursor position.Currently there are suggestions for:

  • Temporary/Instance/Class Variable
  • Class
  • Method (when you are in the selector)
  • Source (multiple lines)
  • Message

What I did was just adding a new suggestion which triggers the creation of a new breakpoint. In particular, I am interested in methods and message sends.

So, let’s check out how it looks like:

Screen Shot 2014-07-11 at 14.05.17

 

“Break here” triggers the creation of a one shot breakpoint, that inserts a halt using Reflectivity.

Eventually I am thinking of having either a submenu to choose which kind of breakpoint you want to insert or some sort of pop-up menu. Currently, you can insert two kind of breakpoints: persistent ones, and one-shot. All of them are available at message-send and method level, because they are AST based.

For now this is super alfa: still cannot insert breakpoints anywhere you want (you have the suggestion, but in some cases the image still crashes). But I wanted to do some show off 😛

And then, the roadmap would be:

  • Be able to insert breakpoint everywhere (even in the methods that reflect on the system itself, this is related to the image crashes);
  • Have other kinds of breakpoints: by condition, by exception, etc;
  • Have a nice way to uninstall breakpoints;
  • Have a nice way to pick which kind of breakpoint you want to use.

The first item is the most important to get fixed to make SmartBreakpoints “usable”. Once that is done,  I will create a configuration and start asking for feedback (because the only way of full proving the tool will be getting people to use it).

So, stay tuned! I will have more cool stuff to show soon, I hope! 😀

Clari

By clariallende