Administrator
|
I needed an entry completion with groups, like Mac's Spotlight. While I was at it, I figured it would also be useful as a UI for the existing Spotlight. So I made a SpotlightMorph, which is a very Mac-like stand-alone Morph, which is a textField + results morph, and an adaptor for EntryCompetion, SpotlightEntryCompletion, which can be passed to #entryCompletion: And here's a screenshot for the impatient ;) To load (tested in Pharo 2.0 latest): Gofer it smalltalkhubUser: 'SeanDeNigris' project: 'SeansPlayground'; package: 'Spotlight'; load. Then try: SpotlightCompletionExample open. or SpotlightMorphExample exampleFileSearch. or SpotlightMorphExample exampleSmalltalkSearch.
Cheers,
Sean |
Cool :P
Did you had a look at: https://ci.inria.fr/pharo-contribution/job/New-Pharo-IDE/ There is also a Spotlight thingy there :)
Ben On 30 Dec 2013, at 15:23, Sean DeNigris <[hidden email]> wrote:
|
looks cool… but it does not works in 3.0 :(
in any case, I vote to include the UI part (at least) in the new-pharo-ide :) Esteban
On 30 Dec 2013, at 15:26, Benjamin <[hidden email]> wrote:
|
I think your GUI takes too much space on screen , there is too much open space and that for me is not good. Also I would love to see it work in Pharo 3, I have no reason to work on Pharo 2 and loads of reasons to work on Pharo 3 :) I would also like to have a sticky window on demand so it does not disappear each time I click away. Of course I welcome any effort to improve spotlight , its definitely a very useful and important feature for pharo. On Mon, Dec 30, 2013 at 4:58 PM, Esteban Lorenzano <[hidden email]> wrote:
|
In reply to this post by Sean P. DeNigris
Sounds really cool and yes the new ide guys wanted a widgets and behavior like that. How about to add Packages?
|
In reply to this post by Sean P. DeNigris
Hi Sean, Thanks for this! I wanted a widget like this for a long time. Indeed, Ben worked on a similar idea, but I think your rendering works much better and your code is at the Morphic level. It would certainly be interesting to join forces here.
I reviewed a bit your code. Here is what I liked: - I like it that you have explicit models for each section. - I like the rendering of the sections. - I like the Announcements.
- I like the fluent API for defining results.
Here is what I think could be improved:
- Computing the result list should not block the UI (it can take long). - The amount of items in a section should be limited and if there are more of them they should be seen in a separate list or something like that. The idea would be to limit the vertical size of the widget.
- The input text should be a field (so, no enter should be allowed). - The widget should be dismissible with Esc. - The list of results should not allow editing (it now does so). - Pressing the up/down arrows should move in the list. Any other typed character should continue modifying the text field area.
- The first element in the list should be selected all the time. Like this, you can type and then press Enter without using arrows and the mouse. - "SpotlightCompletionExample open" does not seem work. What do you say? I would be happy to review more code. Cheers, Doru On Mon, Dec 30, 2013 at 3:23 PM, Sean DeNigris <[hidden email]> wrote:
"Every thing has its own flow"
|
In reply to this post by Benjamin Van Ryseghem (Pharo)
What is this "New-Pharo-IDE"? 2013/12/30 Benjamin <[hidden email]>
|
In reply to this post by Tudor Girba-2
One more thing: Collection>>flatCollect: is already in Pharo3, so you do not need it in the Spotlight package anymore :) Doru
On Tue, Dec 31, 2013 at 11:56 AM, Tudor Girba <[hidden email]> wrote:
"Every thing has its own flow"
|
In reply to this post by Nicolai Hess
It was a brainstorming group that was working on designing a new look and feel for Pharo.
Stef
|
Administrator
|
In reply to this post by kilon.alios
I agree. I haven't figured out how to fix the width. No matter how I set the #hResizing of SpotlightMorph, it expands as much as it wants. Should be easy. It's only on 2.0 right now, because that's where the app I'm using it in runs. I don't see why not...
Cheers,
Sean |
Administrator
|
In reply to this post by Stéphane Ducasse
Sure! It's completely configurable via the API. In the example it was showing classes and selectors, but you could show files, or your own domain objects (which is how I'm using it).
Cheers,
Sean |
Administrator
|
In reply to this post by Tudor Girba-2
Thanks for the thorough feedback :)
Cool! Glad you like it... Absolutely :) Yes! These are the first two items on my to-do list, but I wanted to release and get feedback first. These should all be working. I'll see if maybe I forgot to commit something... I have to think about this one. - For Spotlight, I guess it makes sense as long as the most exact match appears first. There was a reaaaaaaally annoying Spotlight behavior that "String" would send you to browse StringAPISetting or some such nonsense. - For entry completion, what if the text field is part of a larger widget. It's conceivable that one would end up typing something not in the list, and the text field may have its own enter behavior e.g. accept on enter... I'm not sure what you mean. Will you say more about these?
Cheers,
Sean |
Administrator
|
In reply to this post by Tudor Girba-2
Would you be more specific… If I do it in a fresh 2.0 image after using the Gofer expression above, I get a text field. If I type "int" in the text field, I get results below. And if I click on one of the results, I it is entered into the text field.
Cheers,
Sean |
Administrator
|
In reply to this post by Tudor Girba-2
As a start, to make it more useable, I limited each group to 7 results. Mac's Spotlight seems to take the total screen height available and divide it equally among the groups, but I'm not going to write that algorithm now...
Cheers,
Sean |
Administrator
|
In reply to this post by Sean P. DeNigris
Thanks for the feedback everyone!
A few enhancements: - Close on escape - Select next on down arrow when open - Show all on down arrow when closed - Select previous on up arrow - Accept on enter - requires an override in PluggableTextFieldMorph, but I think the change can be integrated in Core - For entry completion (unlike our current behavior): - Keyboard focus remains with the text field, so: - you can continue to type - the selected item stays selected as long as it remains visible, even if it moves around in the list (maybe doesn't matter for completion...) I'm off to celebrate... See you in the new year!
Cheers,
Sean |
In reply to this post by Sean P. DeNigris
Hi, I am in Pharo 3.0, and I think everyone else should be as well at this point :) Doru On Tue, Dec 31, 2013 at 10:26 PM, Sean P. DeNigris <[hidden email]> wrote: Tudor Girba-2 wrote "Every thing has its own flow"
|
Administrator
|
You would recommend 3.0 even for production systems?
-------- Original message -------- From: "Tudor Girba-2 [via Smalltalk]" <[hidden email]> Date: 01/01/2014 1:23 AM (GMT-05:00) To: "Sean P. DeNigris" <[hidden email]> Subject: Re: Spotlight Demo Hi, I am in Pharo 3.0, and I think everyone else should be as well at this point :) Doru On Tue, Dec 31, 2013 at 10:26 PM, Sean P. DeNigris <[hidden email]> wrote: Tudor Girba-2 wrote "Every thing has its own flow"
If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Spotlight-Demo-tp4733077p4733394.html
Cheers,
Sean |
I certainly do recommend it. I am using it since 3 months in production, and for my purposes (mainly using Moose for various analyses), it works perfectly. But, even if you would get problems, leaving on the very edge is more productive (but more counter-intuitive) when the community is smaller. Just look at Pharo 2.0. It takes longer to get fixes integrated, and if you depend on them, your life will be harder. On the latest Pharo, you might get some problems at first, but I suspect you can find those problems quite fast and the reaction you would get will more than payoff.
And yet another reason is this: if you have serious interests in Pharo, you will sooner or later end up wanting to influence one part or another (for example, extend Collection with flatCollect: :)). In this case, working on the latest version puts you in a better position to influence Pharo in the direction you want it to go.
As I said, it is less obvious, but I think in our community, it makes much better sense to live closer to the edge. Cheers, Doru On Wed, Jan 1, 2014 at 12:30 PM, Sean P. DeNigris <[hidden email]> wrote: You would recommend 3.0 even for production systems? "Every thing has its own flow"
|
On 01 Jan 2014, at 18:52, Tudor Girba <[hidden email]> wrote:
Stef
|
Free forum by Nabble | Edit this page |