Compliments to the chef

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Compliments to the chef

Louis LaBrunda
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/kL7TzVY9UdsJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

Seth Berman
Hi Lou,

Thank you for compliment, I appreciate the feedback.

- Seth

On Tuesday, June 12, 2012 1:46:03 PM UTC-4, Louis LaBrunda wrote:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

On Tuesday, June 12, 2012 1:46:03 PM UTC-4, Louis LaBrunda wrote:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

On Tuesday, June 12, 2012 1:46:03 PM UTC-4, Louis LaBrunda wrote:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

On Tuesday, June 12, 2012 1:46:03 PM UTC-4, Louis LaBrunda wrote:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/VMTLgFpBDRwJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

jtuchel
In reply to this post by Louis LaBrunda
Hi Lou, hi Seth,

It's no secret that I also like CodeAssist very much. So a simple +1 from my side

Having all this work done now, wouldn't the next step be a better search facility?
Just imagine how much cooler VAST would be with an intelligent search tool a la MethodFinder in Pharo?

Two remarks (maybe outdated since I didn't check with V8.5.1):
The Transcript doesn't support CodeAssist - nor do Workspaces - or am I missing some setting?
The pane that you can switch on in Inspectors (the one that displays beneathe the two normal inspector panes) also doesn't support CodeAssist

Both Inspectors and Workspaces are great places for CodeAssist, because that is where you experiment with code snippets and might make good use of CodeAssist. Especially in the Inspector where you want to quickly find out what's inside some object or want to tweak something - so CodeAssist would help keeping your track of thoughts...

Joachim



Am Dienstag, 12. Juni 2012 19:46:03 UTC+2 schrieb Louis LaBrunda:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/28454DE1aeEJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

Seth Berman
Hi Joachim,

You are correct, the Transcript does not support code assist.
Workspaces do support code assist, but it is currently somewhat limited because once the contents
of the workspace can no longer have a valid parse tree generated from it, then code assist will not be able to do its job.  
Because of the way that Workspaces are typically used, with random code snippits here and there, missing periods and so on,
this tends to happen quite a lot.  There are many approaches that can be taken to help solve this, and I'm certainly open to ideas.
Once this problem is solved, I would probably provide the option to activate code assist in the Transcript...for now it really wouldn't provide much benefit if I did.

Code Assist in Inspectors
Stay Tuned:)

+1 better search facility.  We are looking into this area.

Thanks Joachim

-- Seth

On Thursday, June 14, 2012 3:21:31 AM UTC-4, [hidden email] wrote:
Hi Lou, hi Seth,

It's no secret that I also like CodeAssist very much. So a simple +1 from my side

Having all this work done now, wouldn't the next step be a better search facility?
Just imagine how much cooler VAST would be with an intelligent search tool a la MethodFinder in Pharo?

Two remarks (maybe outdated since I didn't check with V8.5.1):
The Transcript doesn't support CodeAssist - nor do Workspaces - or am I missing some setting?
The pane that you can switch on in Inspectors (the one that displays beneathe the two normal inspector panes) also doesn't support CodeAssist

Both Inspectors and Workspaces are great places for CodeAssist, because that is where you experiment with code snippets and might make good use of CodeAssist. Especially in the Inspector where you want to quickly find out what's inside some object or want to tweak something - so CodeAssist would help keeping your track of thoughts...

Joachim



Am Dienstag, 12. Juni 2012 19:46:03 UTC+2 schrieb Louis LaBrunda:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/k6SAjTgbm5AJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

jtuchel
Hi Seth,

a naive approach would probably be to try and find the closest possible chunk of source code around the current cursor position that can possibly be used as a parse tree. Not sure what the performance implications are, but I can imagine there could be at least a few cases in which such a brute-force approach leads to some result. Some things that surely work are Class names and Constants which typically are receivers, known workspace variables are the same thing.

>Code Assist in Inspectors
>Stay Tuned:)

I can't wait ;-)

It's good to hear you are working on (or at least willing to ;-) ) a better search tool (and hopefully also a better search result presentation tool). Such seemingly small improvements can make such a big improvement in the development process...

Joachim

Am Donnerstag, 14. Juni 2012 17:47:16 UTC+2 schrieb Seth Berman:
Hi Joachim,

You are correct, the Transcript does not support code assist.
Workspaces do support code assist, but it is currently somewhat limited because once the contents
of the workspace can no longer have a valid parse tree generated from it, then code assist will not be able to do its job.  
Because of the way that Workspaces are typically used, with random code snippits here and there, missing periods and so on,
this tends to happen quite a lot.  There are many approaches that can be taken to help solve this, and I'm certainly open to ideas.
Once this problem is solved, I would probably provide the option to activate code assist in the Transcript...for now it really wouldn't provide much benefit if I did.

Code Assist in Inspectors
Stay Tuned:)

+1 better search facility.  We are looking into this area.

Thanks Joachim

-- Seth

On Thursday, June 14, 2012 3:21:31 AM UTC-4, [hidden email] wrote:
Hi Lou, hi Seth,

It's no secret that I also like CodeAssist very much. So a simple +1 from my side

Having all this work done now, wouldn't the next step be a better search facility?
Just imagine how much cooler VAST would be with an intelligent search tool a la MethodFinder in Pharo?

Two remarks (maybe outdated since I didn't check with V8.5.1):
The Transcript doesn't support CodeAssist - nor do Workspaces - or am I missing some setting?
The pane that you can switch on in Inspectors (the one that displays beneathe the two normal inspector panes) also doesn't support CodeAssist

Both Inspectors and Workspaces are great places for CodeAssist, because that is where you experiment with code snippets and might make good use of CodeAssist. Especially in the Inspector where you want to quickly find out what's inside some object or want to tweak something - so CodeAssist would help keeping your track of thoughts...

Joachim



Am Dienstag, 12. Juni 2012 19:46:03 UTC+2 schrieb Louis LaBrunda:
Hi Everyone,

My compliments to the chef of the new type ahead feature of VA Smalltalk 8.5. It is a wonderful and useful feature.

When I first read some comments about it in this group, all good, I wasn't sure I would like it or even care to use it. But after using V8.5 for a while, it is just there helping all the time. I have come to really like it. The proof of its value is when I have to return to V8.0 to work on some things I haven't yet converted to V8.5, I find I miss the type ahead greatly. So, thank you Instantiations and everyone who had a hand in bring us this wonderful feature.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/pRUPVaBlJuwJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

Louis LaBrunda
Hi Seth and Joachim,

To feed off of Joachim's idea:

a naive approach would probably be to try and find the closest possible chunk of source code around the current cursor position that can possibly be used as a parse tree.

perhaps maybe you could scan up to find a line that defines temporary variables like "| temp1 temp2 |" and go from there.  I would gladly pay the price of having to add such a line (even if I didn't need it) to turn on Code Assist.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/C5v2jucOb1gJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

Seth Berman
Joachim, Louis,

Both of these are great approaches...or really the combination of both these ideas would probably be the way to go.
(I'll call the "pivot" the place in the workspace where the parser should start)

If Louis's idea worked out, the best pivot would be right before the "| temp1 temp2 |" declarations.  This would provide the most
information about variables and what they are, what gets assigned to them, what messages they understand, what objects are returned by these messages
and the whole chain reaction that follows until you arrive at the current cursor position with hopefully a wealth of information.
The issue with this approach is that the way folks use workspaces can easily get one into situations where a valid parse tree is created, but is semantically incorrect.  And because
of this, it's not easily detectable.
Example:

| temp1 temp2 |

temp1 := OrderedCollection new.   "No Problem"
temp2 := OrderedCollection new.
temp1 asSortedCollection              "Line 5: No Statement terminator"

"Snippet for a separate task"
temp2 <Request Code Assist>      "Line 8"

The workspace writer probably intends this to be 2 separate snippets of code that they evaluate separately as needed.  It's probably an unreasonable assumption that everyone statement terminates all of their snippets.  
One could make it a requirement for Code Assist to work, but I don't like that kind of stuff if I can help it.
On Line 5 the parser moves forward and sees "temp1 asSortedCollection temp2" which is actually valid (even though temp2 is probably not an implemented message).  So this creates a valid parse tree but we know it's incorrect
based on our "very loosely" defined formatting rules of separating the 2 snippets with a carriage return (in this case).  There are many variations that can lead to this kind of situation.

Without building in semantic rule-sets (which only have a probability of being correct), this isn't a good pivot to pick to guarantee success.  As Joachim was suggesting, we could put the pivot close to the cursor point and backup.
Unfortunately, this can fail too with variations of the example above which I won't enumerate on at the moment.

The question may just come down to what's good enough.  I don't mind this approach, but there are 2 caveats I would add.  The first is I do mind showing incorrect results to the user, and if I can't detect if it's incorrect then that is a problem.
And the second is pretty simple...which is, while we are doing this...we might as well do it well:)  

So I'm thinking out loud a little, but I'm still favoring a combination approach of what has been suggested, but trying to put together some REALLY GOOD snippet detection so we can get past this problem and make code assist more useful for workspaces.

Thank you for the ideas...very good thoughts.

-- Seth



On Friday, June 15, 2012 10:01:42 AM UTC-4, Louis LaBrunda wrote:
Hi Seth and Joachim,

To feed off of Joachim's idea:

a naive approach would probably be to try and find the closest possible chunk of source code around the current cursor position that can possibly be used as a parse tree.

perhaps maybe you could scan up to find a line that defines temporary variables like "| temp1 temp2 |" and go from there.  I would gladly pay the price of having to add such a line (even if I didn't need it) to turn on Code Assist.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/1XF38-P_qeEJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Compliments to the chef

Louis LaBrunda
Hey Seth,

I'm glad to see you are thinking about adding Code Assist to workspaces.  I think this may be a case where we don't want the "perfect" to be the "enemy of the good" or "good enough" as you said.

In that vain, you can make Code Assist in workspaces an option.  If someone doesn't like how it works or doesn't want to change how they work in workspaces, they can just turn it off and not be bothered by it.

I for one wouldn't mind having to sprinkle | temp | or even | | throughout a workspace with multiple snippets to ensure Code Assist would work properly.  I don't think it would take long to get use to needing them and would just start each new snippet with them.  If it doesn't take much more of a change than that to get Code Assist in workspaces, it is a small price to pay.

I wonder if Joachim or anyone else who likes Code Assist feels the same?

Lou

On Friday, June 15, 2012 11:31:49 AM UTC-4, Seth Berman wrote:
Joachim, Louis,

Both of these are great approaches...or really the combination of both these ideas would probably be the way to go.
(I'll call the "pivot" the place in the workspace where the parser should start)

If Louis's idea worked out, the best pivot would be right before the "| temp1 temp2 |" declarations.  This would provide the most
information about variables and what they are, what gets assigned to them, what messages they understand, what objects are returned by these messages
and the whole chain reaction that follows until you arrive at the current cursor position with hopefully a wealth of information.
The issue with this approach is that the way folks use workspaces can easily get one into situations where a valid parse tree is created, but is semantically incorrect.  And because
of this, it's not easily detectable.
Example:

| temp1 temp2 |

temp1 := OrderedCollection new.   "No Problem"
temp2 := OrderedCollection new.
temp1 asSortedCollection              "Line 5: No Statement terminator"

"Snippet for a separate task"
temp2 <Request Code Assist>      "Line 8"

The workspace writer probably intends this to be 2 separate snippets of code that they evaluate separately as needed.  It's probably an unreasonable assumption that everyone statement terminates all of their snippets.  
One could make it a requirement for Code Assist to work, but I don't like that kind of stuff if I can help it.
On Line 5 the parser moves forward and sees "temp1 asSortedCollection temp2" which is actually valid (even though temp2 is probably not an implemented message).  So this creates a valid parse tree but we know it's incorrect
based on our "very loosely" defined formatting rules of separating the 2 snippets with a carriage return (in this case).  There are many variations that can lead to this kind of situation.

Without building in semantic rule-sets (which only have a probability of being correct), this isn't a good pivot to pick to guarantee success.  As Joachim was suggesting, we could put the pivot close to the cursor point and backup.
Unfortunately, this can fail too with variations of the example above which I won't enumerate on at the moment.

The question may just come down to what's good enough.  I don't mind this approach, but there are 2 caveats I would add.  The first is I do mind showing incorrect results to the user, and if I can't detect if it's incorrect then that is a problem.
And the second is pretty simple...which is, while we are doing this...we might as well do it well:)  

So I'm thinking out loud a little, but I'm still favoring a combination approach of what has been suggested, but trying to put together some REALLY GOOD snippet detection so we can get past this problem and make code assist more useful for workspaces.

Thank you for the ideas...very good thoughts.

-- Seth



On Friday, June 15, 2012 10:01:42 AM UTC-4, Louis LaBrunda wrote:
Hi Seth and Joachim,

To feed off of Joachim's idea:

a naive approach would probably be to try and find the closest possible chunk of source code around the current cursor position that can possibly be used as a parse tree.

perhaps maybe you could scan up to find a line that defines temporary variables like "| temp1 temp2 |" and go from there.  I would gladly pay the price of having to add such a line (even if I didn't need it) to turn on Code Assist.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/AtI2opqzDFYJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.