[Pharo-project] Improving the programmer experience with Pharo (ideas)
Hi, I'm just starting an internship for 3 months and we were talking about the scope for my time here. This is a summary of what we have discussed: The main objective it's to improve the AST and use it to implement as many improvements and refactors/transformations as we can to help the programmer. Some ideas: - distinguish the code scope (for example, when you have lot of blocks all together when you pass over with the mouse that it get special something to understand where you are) - make suggestions depending on what you have selected. Example if it's a variable rename it, or find accesses (...) - highlight selectors - implements some rules to help code improvement, for example if you select some part of the code and it's repeated you can do an: extract method, or extract to variable transformation. - improve the navigation between static code - review the refactoring API and evaluate a change for admitting AST nodes and avoid the use of strings... Please let me know your thoughts about it and if you have more ideas, they are always welcome.
On Mon, Apr 8, 2013 at 1:08 PM, Gisela Decuzzi <giseladecuzzi@gmail.com> wrote:
Please let me know your thoughts about it and if you have more ideas, they are always welcome.
1) when you have a selector with multiple keywords, I would like to navigate easily between the arguments. For example : self doSomething: (1) with: (2) andThen: (3) I would like to be able to easily go in one of the 3 positions (for example typing TAB could go from one to the next). Dolphin had something equivalent. 2) The pretty printer (ALT+SHIFT+u) should keep all comments where they are and be a bit smarter and more configurable 3) I want AST-based text seletion. Lukas has a screencast where he demonstrates the use of CTRL+SHIFT+Up and CTRL+SHIFT+Down to select larger and larger (respectively smaller and smaller) AST nodes in the source code. Something like https://www.youtube.com/watch?v=fTMX1f8Lu5w and http://youtu.be/_RvHz3vJ3kA?t=52s -- Damien Cassou http://damiencassou.seasidehosting.st "Success is the ability to go from one failure to another without losing enthusiasm." Winston Churchill
On Apr 8, 2013, at 1:21 PM, Damien Cassou <damien.cassou@gmail.com> wrote:
On Mon, Apr 8, 2013 at 1:08 PM, Gisela Decuzzi <giseladecuzzi@gmail.com> wrote:
Please let me know your thoughts about it and if you have more ideas, they are always welcome.
1) when you have a selector with multiple keywords, I would like to navigate easily between the arguments. For example :
self doSomething: (1) with: (2) andThen: (3)
I would like to be able to easily go in one of the 3 positions (for example typing TAB could go from one to the next). Dolphin had something equivalent.
2) The pretty printer (ALT+SHIFT+u) should keep all comments where they are and be a bit smarter and more configurable
That we will see :) this is a good idea because since we want better and easier way to do code transformation we will have to handle this point.
3) I want AST-based text seletion. Lukas has a screencast where he demonstrates the use of CTRL+SHIFT+Up and CTRL+SHIFT+Down to select larger and larger (respectively smaller and smaller) AST nodes in the source code. Something like https://www.youtube.com/watch?v=fTMX1f8Lu5w and http://youtu.be/_RvHz3vJ3kA?t=52s
We will get that :)
Cool! On 08.04.2013, at 13:08, Gisela Decuzzi <giseladecuzzi@gmail.com> wrote:
Hi, I'm just starting an internship for 3 months and we were talking about the scope for my time here. This is a summary of what we have discussed: The main objective it's to improve the AST and use it to implement as many improvements and refactors/transformations as we can to help the programmer. Some ideas: - distinguish the code scope (for example, when you have lot of blocks all together when you pass over with the mouse that it get special something to understand where you are)
+1. The same for the keyboard would be cool (maybe highlight brackets like it's done in some popular text editors)
- make suggestions depending on what you have selected. Example if it's a variable rename it, or find accesses (â¦)
You should take a look at Pavels work Periscope (http://smalltalkhub.com/#!/~PavelKrivanek/Periscope) which is his take on LightTable and does some of these things already.
- highlight selectors - implements some rules to help code improvement, for example if you select some part of the code and it's repeated you can do an: extract method, or extract to variable transformation. - improve the navigation between static code - review the refactoring API and evaluate a change for admitting AST nodes and avoid the use of strings...
Please let me know your thoughts about it and if you have more ideas, they are always welcome.
participants (4)
-
Damien Cassou -
Gisela Decuzzi -
Max Leske -
stephane ducasse