Проблемы с gedit

В общем, попытался я устроить подсветку синтаксиса Icon для gedit, но не получается совсем — файл вроде корректный, а подсветка все равно не работает (((

Прям беда!

Однако, я попросил помощи у разработчиков своего дистрибутива Linux — надеюсь помогут :)
Также, желающие могут приобщиться к таинству и опробывать свои силы, откорректировав мой файл или взяв его за основу.

Итак, содержимое файла icon.lang:

Нажмите, чтобы развернуть

<?xml version="1.0" encoding="UTF-8"?>
<!--
 Syntax highlighting for Icon programming language
 Created by Oleg Baharew
-->

<language id="icon" _name="Icon" version="2.0" _section="Sources">
 <metadata>
    <property name="mimetypes">text/icon;application/icon</property>
    <property name="globs">*.icn</property>
    <property name="line-comment-start">#</property>
  </metadata>
  
  <style>
    <style id="comment" _name="Comment" map-to="def:comment"/>
    <style id="string" _name="String" map-to="def:string"/>
    <style id="preprocessor" _name="Preprocessor" map-to="def:preprocessor"/>
    <style id="keyword" _name="Keyword" map-to="def:keyword"/>
    <style id="function" _name="Function" map-to="def:function"/>
    <style id="operator" _name="Operator" map-to="def:operator"/>
    <style id="constant" _name="Constant" map-to="def:constant"/>
    <style id="number" _name="Number" map-to="def:decimal"/>
  </style>
  
  <default-regex-options case-sensitive="yes"/>

  <definitions>
    <context id="line-comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check">
      <start>#</start>
      <include>
        <context ref="def:in-line-comment"/>
      </include>
    </context>
    
     <context id="string" style-ref="string" end-at-line-end="true" class="string" class-disabled="no-spell-check">
      <start>"</start>
      <end>"</end>
      <start>'</start>
      <end>'</end>
    </context>
    
    <context id="preprocessor" style-ref="preprocessor" end-at-line-end="true">
    <keyword>$define</keyword>
    <keyword>$else</keyword> 
    <keyword>$endif</keyword>
    <keyword>$error</keyword>
    <keyword>$ifdef</keyword>
    <keyword>$ifndef</keyword>
    <keyword>$include</keyword>
    <keyword>$undef</keyword>
    </context>
    
    <context id="keywords" style-ref="keyword">
    <keyword>link</keyword>
    <keyword>global</keyword> 
    <keyword>procedure</keyword> 
    <keyword>initial</keyword> 
    <keyword>static</keyword>  
    <keyword>record</keyword> 
    <keyword>local</keyword>  
    <keyword>end</keyword> 
    <keyword>return</keyword> 
    <keyword>suspend</keyword> 
    <keyword>invocable</keyword>
    <keyword>main</keyword>
    </context>
    
    <context id="function" style-ref="function">
    <keyword>abs</keyword>
    <keyword>acos</keyword>
    <keyword>asin</keyword>
    <keyword>atan</keyword>
    <keyword>dtor</keyword>
    <keyword>exp</keyword>
    <keyword>cos</keyword>
    <keyword>iand</keyword>
    <keyword>icom</keyword>
    <keyword>ior</keyword>
    <keyword>ishift</keyword>
    <keyword>ixor</keyword>
    <keyword>log</keyword>
    <keyword>rtod</keyword>
    <keyword>sin</keyword>
    <keyword>sqrt</keyword>
    <keyword>tan</keyword>
    <keyword>any</keyword>
    <keyword>bal</keyword>
    <keyword>center</keyword>
    <keyword>detab</keyword>
    <keyword>entab</keyword>
    <keyword>find</keyword>
    <keyword>left</keyword>
    <keyword>many</keyword>
    <keyword>map</keyword>
    <keyword>match</keyword>
    <keyword>move</keyword>
    <keyword>pos</keyword>
    <keyword>repl</keyword>
    <keyword>reverse</keyword>
    <keyword>right</keyword>
    <keyword>tab</keyword>
    <keyword>trim</keyword>
    <keyword>upto</keyword>
    <keyword>char</keyword>
    <keyword>copy</keyword>
    <keyword>cset</keyword>
    <keyword>delete</keyword>
    <keyword>get</keyword>
    <keyword>image</keyword>
    <keyword>insert</keyword>
    <keyword>integer</keyword>
    <keyword>list</keyword>
    <keyword>member</keyword>
    <keyword>numeric</keyword>
    <keyword>ord</keyword>
    <keyword>pop</keyword>
    <keyword>pull</keyword>
    <keyword>push</keyword>
    <keyword>put</keyword>
    <keyword>real</keyword>
    <keyword>seq</keyword>
    <keyword>set</keyword>
    <keyword>sort</keyword>
    <keyword>sortf</keyword>
    <keyword>string</keyword>
    <keyword>table</keyword>
    <keyword>type</keyword>
    <keyword>chdir</keyword>
    <keyword>close</keyword>
    <keyword>delay</keyword>
    <keyword>display</keyword>
    <keyword>exit</keyword>
    <keyword>flush</keyword>
    <keyword>function</keyword>
    <keyword>getch</keyword>
    <keyword>getche</keyword>
    <keyword>getenv</keyword>
    <keyword>kbhit</keyword>
    <keyword>open</keyword>
    <keyword>name</keyword>
    <keyword>read</keyword>
    <keyword>reads</keyword>
    <keyword>remove</keyword>
    <keyword>rename</keyword>
    <keyword>seek</keyword>
    <keyword>stop</keyword>
    <keyword>system</keyword>
    <keyword>variable</keyword>
    <keyword>where</keyword>
    <keyword>write</keyword>
    <keyword>writes</keyword>	    
    </context> 
    
    <context id="operator" style-ref="operator" extend-parent="false">
    <keyword>break</keyword>
    <keyword>case</keyword>
    <keyword>of </keyword>
    <keyword>default</keyword>
    <keyword>create</keyword>
    <keyword>every</keyword>
    <keyword>do</keyword>
    <keyword>fail</keyword>
    <keyword>if</keyword>
    <keyword>then</keyword>
    <keyword>else</keyword>
    <keyword>next</keyword>
    <keyword>not</keyword>
    <keyword>repeat</keyword>
    <keyword>until</keyword>
    <keyword>while</keyword>
    <keyword>to</keyword>
    <keyword>by</keyword>
    </context>
    
    <context id="constants" style-ref="constant">
    <keyword>&amp;ascii</keyword>
    <keyword>&amp;clock</keyword>
    <keyword>&amp;cset</keyword>
    <keyword>&amp;date</keyword>
    <keyword>&amp;dateline</keyword>
    <keyword>&amp;digits</keyword>
    <keyword>&amp;e</keyword>
    <keyword>&amp;errout</keyword>
    <keyword>&amp;fail</keyword>
    <keyword>&amp;host</keyword>
    <keyword>&amp;input</keyword>
    <keyword>&amp;letters</keyword>
    <keyword>&amp;lcase</keyword>
    <keyword>&amp;level</keyword>
    <keyword>&amp;main</keyword>
    <keyword>&amp;null</keyword>
    <keyword>&amp;output</keyword>
    <keyword>&amp;phi</keyword>
    <keyword>&amp;pi</keyword>
    <keyword>&amp;pos</keyword>
    <keyword>&amp;program</keyword>
    <keyword>&amp;random</keyword>
    <keyword>&amp;source</keyword>
    <keyword>&amp;subject</keyword>
    <keyword>&amp;time</keyword>
    <keyword>&amp;trace</keyword>
    <keyword>&amp;ucase</keyword>
    <keyword>&amp;version</keyword>
    <keyword>&amp;x</keyword>
    <keyword>&amp;y</keyword>
    <keyword>&amp;lpress</keyword>
    <keyword>&amp;rpress</keyword>
    </context>
    
    <context id="number" style-ref="number">
      <match extended="true">
        (\b([0-9]+|0[xX][0-9a-fA-F]+)[Ll]?\b|
         \b(([0-9]+[Ee][-]?[0-9]+|
            ([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-]?[0-9]+)?)[fFdD]?|
            [0-9]+[FfDd]))
      </match>
    </context>
    
    <context id="icon" class="no-spell-check">
      <include>
        <context ref="line-comment"/>
        <context ref="string"/>
        <context ref="preprocessor"/>
        <context ref="keyword"/>
        <context ref="function"/>
        <context ref="operator"/>
        <context ref="constant"/>
        <context ref="number"/>
      </include>
    </context> 
  </definitions>
</language>

P.S: Не помогли мне :( И поэтому, разработка этой подсветки закрыта до востребования.

Добавить комментарий