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
- Method (when you are in the selector)
- Source (multiple lines)
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:
“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! 😀