<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Ok. There are now a bunch of people that have signed on to work on this thing.<BR><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Time to start divvying up the workload.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>#1: First, we need a Ruby Class for the core essentials of the completion stuff. It needs to:</B></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">  </SPAN>Be an external library that can be called from a hundred different tmCommands</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Be fully runnable from the terminal by manually passing in all the arguments (so, use the TM_* vars only as fallback)</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Get the text you're in the middle of writing</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre"> </SPAN>Get the list of completions based on that text from somewhere (see #2)</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">       </SPAN>Show the menu and let you make your selection</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>Return a snippet with the results</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>#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</B></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">     </SPAN>This list will either be:</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">            </SPAN>the contents of a static file or </DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">            </SPAN>a command that returns the list in the necessary format</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">                      </SPAN>(this is where you could write something smart to parse stuff)</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">       </SPAN>I'd like to use the .completions file extenstion, maybe .tmCompletions ?</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">     </SPAN>Eventually we could pressure Allan into more advanced support for it ;)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Once we have the basic format (#2) and the basic completer (#1), we can… (#3)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>#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.</B></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre"> </SPAN>HTML 4</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">       </SPAN>XHTML</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">        </SPAN>CSS</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">  </SPAN>JavaScript Core Stuff</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>#3.5: tmCompletions generators.</B></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">    </SPAN>Maybe something that will parse your entire Rails application and manually create a code completion list of all the Classes and methods.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">     </SPAN>Maybe something to convert an hdoc into a codecompletion list</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>While some people are busy with #3, other people can get on with #4</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><B>#4: My real goal of this whole thing. Dynamic lists.</B></DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">  </SPAN>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.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">     </SPAN>Could be based on stuff done in #3.5</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre"> </SPAN>We need to work with #1 and #2 to make sure everything needed for #4 is available and extendable.</DIV><DIV><SPAN class="Apple-tab-span" style="white-space:pre">    </SPAN></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Ok, so who wants to do what?</DIV><DIV>Personally, I want to do all of it, but i have a job and a family and other stuff I need to do. </DIV><DIV>So i guess we should divvy it up and get it done faster.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "></SPAN>thomas Aylott —<SPAN class="Apple-converted-space"> </SPAN><I style="font-style: italic; "><SPAN class="Apple-style-span" style="font-style: italic; ">design</SPAN></I><B style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; ">42</SPAN></B><SPAN class="Apple-converted-space"> </SPAN>— </SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; -khtml-border-horizontal-spacing: 0px; -khtml-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><B style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; "><SPAN class="Apple-style-span" style="font-weight: bold; ">subtleGradient </SPAN></SPAN></B></SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; -khtml-border-horizontal-spacing: 0px; -khtml-border-vertical-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: normal; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">— </SPAN><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; ">CrazyEgg</SPAN></SPAN></SPAN></DIV></BODY></HTML>