Ok. There are now a bunch of people that have signed on to work on this thing.
Time to start divvying up the workload.
#1: First, we need a Ruby Class for the core essentials of the completion stuff. It needs to:
Be an external library that can be called from a hundred different tmCommands
Be fully runnable from the terminal by manually passing in all the arguments (so, use the TM_* vars only as fallback)
Get the text you're in the middle of writing
Get the list of completions based on that text from somewhere (see #2)
Show the menu and let you make your selection
Return a snippet with the results
#2: To go with the first one, we need to define the format that the list will be in. Plist format, simple or xml or binary
This list will either be:
the contents of a static file or
a command that returns the list in the necessary format
(this is where you could write something smart to parse stuff)
I'd like to use the .completions file extenstion, maybe .tmCompletions ?
Eventually we could pressure Allan into more advanced support for it ;)
Once we have the basic format (#2) and the basic completer (#1), we can… (#3)
#3: Start writing static plist lists of completions. This is not ideal for all languages, obviously, but will make the completer useful quickly. Best for code like HTML that is just what it is.
HTML 4
XHTML
CSS
JavaScript Core Stuff
#3.5: tmCompletions generators.
Maybe something that will parse your entire Rails application and manually create a code completion list of all the Classes and methods.
Maybe something to convert an hdoc into a codecompletion list
While some people are busy with #3, other people can get on with #4
#4: My real goal of this whole thing. Dynamic lists.
I figure this part will take the form of various plugins for various languages and libraries and your own personal code libraries and whatever you like.
Could be based on stuff done in #3.5
We need to work with #1 and #2 to make sure everything needed for #4 is available and extendable.
Ok, so who wants to do what?
Personally, I want to do all of it, but i have a job and a family and other stuff I need to do.
So i guess we should divvy it up and get it done faster.
thomas Aylott — design42 — subtleGradient — CrazyEgg