[Top][All Lists]
[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