<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I certainly don't have any skills in this area so can't help with the issue, but I do want to say I am happy someone is working on a bundle for confluence wiki :)  <div><br></div><div>Regards</div><div>Richard</div><div><br></div><div><div><div>On Sep 5, 2008, at 4:10 PM, Fritz Anderson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>I'm building up a grammar for the Confluence wiki markup, and I'm  <br>having trouble with tags that take a list of parameters.<br><br>Tags look like this (all strings are examples only):<br><br>{noparams}<br>{oneparam:key=10}<br>{twoparams:keyOne=value|keyTwo=2%}<br>{threeparams:keyA=a value|keyB=another value|keyC=a third value}<br><br>So the tag name can stand alone, or if it is followed by ':', it takes  <br>a '|'-delimited list of key=value pairs.<br><br>When I use the grammar fragment at the end of this message, noparams,  <br>oneparam, and twoparams are highlighted as I expect. When there are  <br>three or more parameters, the first and last parameters are  <br>highlighted as I expect, but the middle ones are highlighted as plain  <br>entity.confluence.<br><br>I'm sure this is a defect in my match= regular expression, but I'm not  <br>seeing it. Could someone enlighten me, please?<br><br><span class="Apple-tab-span" style="white-space:pre">     </span>— F<br><br>{<span class="Apple-tab-span" style="white-space:pre">    </span>name = 'entity.confluence';<br><span class="Apple-tab-span" style="white-space:pre">       </span>match = '(?x:<br><span class="Apple-tab-span" style="white-space:pre">     </span><span class="Apple-tab-span" style="white-space:pre">    </span>\{<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span>([-[:alnum:]]+)<br><span class="Apple-tab-span" style="white-space:pre">   </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span>(:(\w+)=([^|}]+)<br><span class="Apple-tab-span" style="white-space:pre">  </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span> (<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span>\|(\w+)=([^|}]+)<br><span class="Apple-tab-span" style="white-space:pre">  </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span> )*<br><span class="Apple-tab-span" style="white-space:pre">       </span><span class="Apple-tab-span" style="white-space:pre">    </span><span class="Apple-tab-span" style="white-space:pre">    </span>)?<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">    </span>\}<br><span class="Apple-tab-span" style="white-space:pre">        </span><span class="Apple-tab-span" style="white-space:pre">    </span>)';<br><span class="Apple-tab-span" style="white-space:pre">       </span>captures = {<br><span class="Apple-tab-span" style="white-space:pre">      </span><span class="Apple-tab-span" style="white-space:pre">    </span>1 = { name = 'keyword.confluence'; };<br><span class="Apple-tab-span" style="white-space:pre">     </span><span class="Apple-tab-span" style="white-space:pre">    </span>3 = { name = 'support.confluence'; };<br><span class="Apple-tab-span" style="white-space:pre">     </span><span class="Apple-tab-span" style="white-space:pre">    </span>4 = { name = 'string.confluence'; };<br><span class="Apple-tab-span" style="white-space:pre">      </span><span class="Apple-tab-span" style="white-space:pre">    </span>6 = { name = 'support.confluence'; };<br><span class="Apple-tab-span" style="white-space:pre">     </span><span class="Apple-tab-span" style="white-space:pre">    </span>7 = { name = 'string.confluence'; };<br><span class="Apple-tab-span" style="white-space:pre">      </span>};<br>},<br><br><br><br>_______________________________________________<br>textmate mailing list<br><a href="mailto:textmate@lists.macromates.com">textmate@lists.macromates.com</a><br><a href="http://lists.macromates.com/listinfo/textmate">http://lists.macromates.com/listinfo/textmate</a><br></div></blockquote></div><br></div></body></html>