gzz-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gzz] ``search_bindings--benja``: Convenient bindings for full-text


From: Benja Fallenstein
Subject: Re: [Gzz] ``search_bindings--benja``: Convenient bindings for full-text search
Date: Sat, 02 Nov 2002 17:19:28 +0100
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.1) Gecko/20020913 Debian/1.1-1

Tuomas Lukka wrote:

On Sat, Nov 02, 2002 at 03:25:43PM +0100, Benja Fallenstein wrote:
I don't know yet; search policy objects need an own PEG. However, we can use StringSearcher for now (which means passing all the so-far typed ones).

The problem is that we want to be able to have e.g. tab completion depending on the policy object.

Ahh, that's an excellent point. Please make this explicit in the PEG.

But are there others than tab completion? Would be nice not to force
StringSearchers to have an user interface.


Hm, replacement: enter an abbreviation and have it expanded to a whole word. This is not Tab completion because it doesn't only add characters.

I just want to ensure that there's some way to tweak these things easily, because I don't feel able to decide which way it should be, not even which way it should be by default, at this time. So I want this PEG to only specify how to enter and exit search mode, but leave what happens inside search mode to future pegs with possibly conflicting options.

I'm imagining that it shows the cell with context (like common text search functions show the found text in context). Then also showing more than one search result would probably be confusing.

Needs to be flexible; I OTOH want to see ~5 results (with their contexts),
to understand what my solution space is like.


Yes. I'm not 100% sure what I want, but I have a feeling that I don't want more than one result with context in two dimensions... but not sure. It should definitely be flexible. Again, I think the right interfaces for making viewing flexible are out of scope for this peg; if you have ideas, it would be nice if you pegged them.

Sure, it should exit and do nothing (not move, not anything else).

Yes. Please put in PEG.


Ok. This, as a way to exit search mode, is definitely in scope.

Also needs a binding to go to the next search result in a list.
Yes, but I think this also needs more thinking and another PEG. One possibility:

Up/Down: move between search results
Right: do Tab completion

Not Tab? ;)


No, I find Tab too hard to type for this, actually. (Of course typing Tab should have the same effect.) With cursor keys, you also need to move your hand, but at least you can have moving in the other direction (via Left) and choosing between possibilities (via Up/Down) at the same time.

(Definition: "next completion point" -- often what you get when you hit Tab in a shell, e.g. if you've typed "c" and possible completions are "clang" and "clash," the completion point is after "cla." When you've typed "cla," however, hitting Tab would give you nothing, but the "next completion point" is still defined-- to be after "clang" or "clash," depending on what is selected; see below.)

One possibility I'd like is--

- Show one possible completion at all times.
- Show a line cursor after the last character entered. (This means that in the above case, we'd have "c|lang", where | is the position of the line cursor. A shell would only show "c.") - When a character is typed, put it after the line cursor and re-calculate the completion. (If we type 'l', the cursor just moves right. If we type 'x', we see "cx" and should get some indication that there is no possible completion.) - Typing 'Right' moves to the next completion point. (Typing 'Right' once will get us to "cla|ng." Typing 'Right' again will get us to "clang|", because that is the next completion point given that "clang" is currently shown.) - Typing 'Up/Down' selects between the options at the current completion point. (If we have "clang", "clash", "clash of cultures", and "clash of paradigms", and we're at "cla|ng", typing Up/Down will cycle between "clang" and "clash"; to get to "clash of paradigms", we'll select "clash", then type 'Right', get to "clash|", and use 'Down' to get to "clash| of paradigms".)

The nice point about this design is that you could get pretty far using mostly the cursor keys. However, this is personal preference, isn't 100% thought-out either and will require another PEG. I'm just explaining because you asked :-)

We'll need to fork things anyway for the bindings...
Hm, what do you mean?

Well, as there will be more and more conflicting proposals we need
to be able to construct things out of pieces so everyone can have
their favorite stuff.


Ok. Sure.

- Benja





reply via email to

[Prev in Thread] Current Thread [Next in Thread]