> > I too find the programmable completion very annoying.
> 
> And I find them very useful, except where they have bugs (e.g. "sudo
> -e", which should work like 'sudoedit').  IMHO tab-completion should
> complete to what's supposed to be there in most cases, maybe even giving
> hints if there is a choice between several types of "data" (e.g. options
> vs. filenames; where the former start with "-" or "--").
> 
> OTOH, I think applications should ideally provide their own
> tab-completion, to make sure the same commandline-parser is used for
> both completion and interpretation.

I don't think the debate should be about how useful it is or how annoying it is.

If I have a file called myfile.jpg how does *LINUX* know what the file is?

You might think it's a picture because of the .jpg extension--but firefox will 
tell you based off the MIME TYPE.

So will the file command.

I'm not saying we need to integrate mime typing into tab completion--because it 
would probably slow things to a crawl, but since we can't do it the RIGHT way, 
we need another approach.

Here's what I see--correct me if I'm wrong, or add to it:
* Tab completion based off a file name or part of a file name is wrong.  You 
don't know if myfile.jpg is really a jpg or a pdf or a text file.  Take my 
original firefox example where myfile.asp was really a PDF.  And just last 
night I tried to get mplayer to play a WMV file (windows media) and it wouldn't 
auto-complete.  Although it played just fine.

* Because restricted tab-completion is broken, we need to find a solution

* A better way would be mime-type completion--but it would probably slow 
tab-completion to a crawl when you had more than a few files.  (A quick 
non-scientific test in a src directory shows 17 files all less than 100K took 
1.017 seconds)

* Tracker seems pretty cool, but I know nothing about it.  Can we query it for 
a file's mime type and make it fast?

* Disable it or enable it by default but have an option to disable/enable it 
system wide and/or per-user.

And just to be clear, I'm not talking about disabiling the ability to do 
something like "svn chec<TAB>" to get "svn checkout" or tab-completion of ssh 
hostnames.  I am specifically talking about limiting the list of files 
presented based on the application you are trying to start and the file 
extensions.

What Ian said a few messages up the thread hits the nail on the head for me: 
"Predictability is far far more important than functionality for completion to 
be an effective useability aid."

I think the best way to solve this is by using the last option above.  Either 
enable or disable it by default, but provide options to enable/disable it on a 
per-user or per-system basis.  It's not my right to tell someone they can't run 
their system using broken tab-completion if they want it that way.

-A


-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss

Reply via email to