0

So kann ich die Farbe {{#if media.isMobile}} und es ist End-Tag {{/if}}. Aber alles zwischen den Blöcken ist jetzt nur noch normaler Text (bevor es eine schöne HTML-Färbung hatte). Wie bekomme ich den Inhalt zwischen den Captures, die mit der obersten Ebene des Wörterbuchs erfasst werden sollen (Da alles, was nicht innerhalb der Tags ist, immer noch die richtige Farbe hat)?Textmate: Der gesamte Text innerhalb der Anfangs- und Endaufnahme ist nicht farbig/übereinstimmend

Hier ist meine Sprachmodellcode für if, sofern Sie benötigen

<key>if_token</key> 
    <dict> 
     <key>begin</key> 
     <string>(\{\{#)(if) (.+)(\}\})</string> 
     <key>beginCaptures</key> 
     <dict> 
      <key>1</key> 
      <dict> 
       <key>name</key> 
       <string>>punctuation.definition.tag.begin.html</string> 
      </dict> 
      <key>2</key> 
      <dict> 
       <key>name</key> 
       <string>keyword.operator.handlebars</string> 
      </dict> 
      <key>3</key> 
      <dict> 
       <key>name</key> 
       <string>variable.parameter.handlebars</string> 
      </dict> 
      <key>4</key> 
      <dict> 
       <key>name</key> 
       <string>punctuation.definition.tag.end.html</string> 
      </dict> 
     </dict> 
     <key>end</key> 
     <string>(\{\{\/)(if)(}})</string> 
     <key>endCaptures</key> 
     <dict> 
      <key>1</key> 
      <dict> 
       <key>name</key> 
       <string>punctuation.definition.tag.begin.html</string> 
      </dict> 
      <key>2</key> 
      <dict> 
       <key>name</key> 
       <string>keyword.operator.handlebars</string> 
      </dict> 
      <key>3</key> 
      <dict> 
       <key>name</key> 
       <string>punctuation.definition.tag.end.html</string> 
      </dict>    
     </dict> 

    </dict> 

Antwort

1

figured it out. Anstatt den gesamten Block zu erfassen. Capture Begin: {{#if .. und Ende: }} als ein Muster. Und {{/if}} als ein anderer.