Advertisement
elhigu

Mako.tmLanguage

Mar 3rd, 2012
613
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5.     <key>bundleUUID</key>
  6.     <string>E3BADC20-6B0E-11D9-9DC9-000D93589AF6</string>
  7.     <key>fileTypes</key>
  8.     <array>
  9.         <string>mako</string>
  10.         <string>mak</string>
  11.     </array>
  12.     <key>name</key>
  13.     <string>Mako template</string>
  14.     <key>patterns</key>
  15.     <array>
  16.        
  17.         <!-- % if,else, elif, for -->
  18.         <dict>
  19.             <key>match</key>
  20.             <string>\b(endif|endfor)\b</string>
  21.             <key>name</key>
  22.             <string>keyword.control.flow.python</string>
  23.         </dict>
  24.  
  25.         <dict>
  26.             <key>begin</key>
  27.             <string>%\s*(if|else|elif|for)</string>
  28.             <key>beginCaptures</key>
  29.             <dict>
  30.                 <key>1</key>
  31.                 <dict>
  32.                     <key>name</key>
  33.                     <string>keyword.control.flow.python</string>
  34.                 </dict>
  35.             </dict>
  36.             <key>end</key>
  37.             <string>$</string>
  38.             <key>patterns</key>
  39.             <array>
  40.                 <dict>
  41.                     <key>include</key>
  42.                     <string>source.python</string>
  43.                 </dict>
  44.             </array>
  45.         </dict>
  46.  
  47.         <!-- Mako comments -->
  48.         <dict>
  49.             <key>match</key>
  50.             <string>##.*$</string>
  51.             <key>name</key>
  52.             <string>comment.block.html</string>
  53.         </dict>
  54.  
  55.         <dict>
  56.             <key>begin</key>
  57.             <string>&lt;%doc&gt;</string>
  58.             <key>end</key>
  59.             <string>&lt;/%doc&gt;</string>
  60.             <key>name</key>
  61.             <string>comment.block.html</string>
  62.         </dict>
  63.  
  64.         <!-- Rest of mako tags (stole code from HTML) -->
  65.         <dict>
  66.             <key>begin</key>
  67.             <string>(&lt;/?)((?i:%page|%include|%def|%block|%namespace|%inherit|%call|%text)\b)</string>
  68.             <key>beginCaptures</key>
  69.             <dict>
  70.                 <key>1</key>
  71.                 <dict>
  72.                     <key>name</key>
  73.                     <string>punctuation.definition.tag.begin.html</string>
  74.                 </dict>
  75.                 <key>2</key>
  76.                 <dict>
  77.                     <key>name</key>
  78.                     <string>entity.name.tag.inline.any.html</string>
  79.                 </dict>
  80.             </dict>
  81.             <key>end</key>
  82.             <string>((?: ?/%)?&gt;)</string>
  83.             <key>endCaptures</key>
  84.             <dict>
  85.                 <key>1</key>
  86.                 <dict>
  87.                     <key>name</key>
  88.                     <string>punctuation.definition.tag.end.html</string>
  89.                 </dict>
  90.             </dict>
  91.             <key>name</key>
  92.             <string>meta.tag.inline.any.html</string>
  93.             <key>patterns</key>
  94.             <array>
  95.                 <dict>
  96.                     <key>include</key>
  97.                     <string>#tag-stuff</string>
  98.                 </dict>
  99.             </array>
  100.         </dict>
  101.  
  102.         <!-- Python blocks <% ... %> and ${} -->
  103.         <dict>
  104.             <key>begin</key>
  105.             <string>&lt;%\!?</string>
  106.             <key>end</key>
  107.             <string>%&gt;</string>
  108.             <key>patterns</key>
  109.             <array>
  110.                 <dict>
  111.                     <key>include</key>
  112.                     <string>source.python</string>
  113.                 </dict>
  114.             </array>
  115.         </dict>
  116.  
  117.         <dict>
  118.             <key>begin</key>
  119.             <string>\${</string>
  120.             <key>end</key>
  121.             <string>}</string>
  122.             <key>patterns</key>
  123.             <array>
  124.                 <dict>
  125.                     <key>include</key>
  126.                     <string>source.python</string>
  127.                 </dict>
  128.             </array>
  129.         </dict>
  130.         <dict>
  131.             <key>include</key>
  132.             <string>text.html.basic</string>
  133.         </dict>
  134.     </array>
  135.  
  136.     <!--
  137.         Stolen from HTML.tmLanguage just for colouring attributes inside tags nice
  138.     -->
  139.     <key>repository</key>
  140.     <dict>
  141.         <key>string-double-quoted</key>
  142.         <dict>
  143.             <key>begin</key>
  144.             <string>"</string>
  145.             <key>beginCaptures</key>
  146.             <dict>
  147.                 <key>0</key>
  148.                 <dict>
  149.                     <key>name</key>
  150.                     <string>punctuation.definition.string.begin.html</string>
  151.                 </dict>
  152.             </dict>
  153.             <key>end</key>
  154.             <string>"</string>
  155.             <key>endCaptures</key>
  156.             <dict>
  157.                 <key>0</key>
  158.                 <dict>
  159.                     <key>name</key>
  160.                     <string>punctuation.definition.string.end.html</string>
  161.                 </dict>
  162.             </dict>
  163.             <key>name</key>
  164.             <string>string.quoted.double.html</string>
  165.             <key>patterns</key>
  166.             <array>
  167.                 <dict>
  168.                     <key>include</key>
  169.                     <string>#embedded-code</string>
  170.                 </dict>
  171.                 <dict>
  172.                     <key>include</key>
  173.                     <string>#entities</string>
  174.                 </dict>
  175.             </array>
  176.         </dict>
  177.         <key>string-single-quoted</key>
  178.         <dict>
  179.             <key>begin</key>
  180.             <string>'</string>
  181.             <key>beginCaptures</key>
  182.             <dict>
  183.                 <key>0</key>
  184.                 <dict>
  185.                     <key>name</key>
  186.                     <string>punctuation.definition.string.begin.html</string>
  187.                 </dict>
  188.             </dict>
  189.             <key>end</key>
  190.             <string>'</string>
  191.             <key>endCaptures</key>
  192.             <dict>
  193.                 <key>0</key>
  194.                 <dict>
  195.                     <key>name</key>
  196.                     <string>punctuation.definition.string.end.html</string>
  197.                 </dict>
  198.             </dict>
  199.             <key>name</key>
  200.             <string>string.quoted.single.html</string>
  201.             <key>patterns</key>
  202.             <array>
  203.                 <dict>
  204.                     <key>include</key>
  205.                     <string>#embedded-code</string>
  206.                 </dict>
  207.                 <dict>
  208.                     <key>include</key>
  209.                     <string>#entities</string>
  210.                 </dict>
  211.             </array>
  212.         </dict>
  213.         <key>tag-generic-attribute</key>
  214.         <dict>
  215.             <key>match</key>
  216.             <string>\b([a-zA-Z\-:]+)</string>
  217.             <key>name</key>
  218.             <string>entity.other.attribute-name.html</string>
  219.         </dict>
  220.         <key>tag-id-attribute</key>
  221.         <dict>
  222.             <key>begin</key>
  223.             <string>\b(id)\b\s*(=)</string>
  224.             <key>captures</key>
  225.             <dict>
  226.                 <key>1</key>
  227.                 <dict>
  228.                     <key>name</key>
  229.                     <string>entity.other.attribute-name.id.html</string>
  230.                 </dict>
  231.                 <key>2</key>
  232.                 <dict>
  233.                     <key>name</key>
  234.                     <string>punctuation.separator.key-value.html</string>
  235.                 </dict>
  236.             </dict>
  237.             <key>end</key>
  238.             <string>(?&lt;='|")</string>
  239.             <key>name</key>
  240.             <string>meta.attribute-with-value.id.html</string>
  241.             <key>patterns</key>
  242.             <array>
  243.                 <dict>
  244.                     <key>begin</key>
  245.                     <string>"</string>
  246.                     <key>beginCaptures</key>
  247.                     <dict>
  248.                         <key>0</key>
  249.                         <dict>
  250.                             <key>name</key>
  251.                             <string>punctuation.definition.string.begin.html</string>
  252.                         </dict>
  253.                     </dict>
  254.                     <key>contentName</key>
  255.                     <string>meta.toc-list.id.html</string>
  256.                     <key>end</key>
  257.                     <string>"</string>
  258.                     <key>endCaptures</key>
  259.                     <dict>
  260.                         <key>0</key>
  261.                         <dict>
  262.                             <key>name</key>
  263.                             <string>punctuation.definition.string.end.html</string>
  264.                         </dict>
  265.                     </dict>
  266.                     <key>name</key>
  267.                     <string>string.quoted.double.html</string>
  268.                     <key>patterns</key>
  269.                     <array>
  270.                         <dict>
  271.                             <key>include</key>
  272.                             <string>#embedded-code</string>
  273.                         </dict>
  274.                         <dict>
  275.                             <key>include</key>
  276.                             <string>#entities</string>
  277.                         </dict>
  278.                     </array>
  279.                 </dict>
  280.                 <dict>
  281.                     <key>begin</key>
  282.                     <string>'</string>
  283.                     <key>beginCaptures</key>
  284.                     <dict>
  285.                         <key>0</key>
  286.                         <dict>
  287.                             <key>name</key>
  288.                             <string>punctuation.definition.string.begin.html</string>
  289.                         </dict>
  290.                     </dict>
  291.                     <key>contentName</key>
  292.                     <string>meta.toc-list.id.html</string>
  293.                     <key>end</key>
  294.                     <string>'</string>
  295.                     <key>endCaptures</key>
  296.                     <dict>
  297.                         <key>0</key>
  298.                         <dict>
  299.                             <key>name</key>
  300.                             <string>punctuation.definition.string.end.html</string>
  301.                         </dict>
  302.                     </dict>
  303.                     <key>name</key>
  304.                     <string>string.quoted.single.html</string>
  305.                     <key>patterns</key>
  306.                     <array>
  307.                         <dict>
  308.                             <key>include</key>
  309.                             <string>#embedded-code</string>
  310.                         </dict>
  311.                         <dict>
  312.                             <key>include</key>
  313.                             <string>#entities</string>
  314.                         </dict>
  315.                     </array>
  316.                 </dict>
  317.             </array>
  318.         </dict>
  319.         <key>tag-stuff</key>
  320.         <dict>
  321.             <key>patterns</key>
  322.             <array>
  323.                 <dict>
  324.                     <key>include</key>
  325.                     <string>#tag-id-attribute</string>
  326.                 </dict>
  327.                 <dict>
  328.                     <key>include</key>
  329.                     <string>#tag-generic-attribute</string>
  330.                 </dict>
  331.                 <dict>
  332.                     <key>include</key>
  333.                     <string>#string-double-quoted</string>
  334.                 </dict>
  335.                 <dict>
  336.                     <key>include</key>
  337.                     <string>#string-single-quoted</string>
  338.                 </dict>
  339.                 <dict>
  340.                     <key>include</key>
  341.                     <string>#embedded-code</string>
  342.                 </dict>
  343.             </array>
  344.         </dict>
  345.     </dict>
  346.     <!-- end thievery from HTML -->
  347.  
  348.     <key>scopeName</key>
  349.     <string>text.html.mako</string>
  350.     <key>uuid</key>
  351.     <string>ACB58B55-9437-4AE6-AF42-715517CF51DG</string>
  352. </dict>
  353. </plist>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement