Пользовательская подсветка синтаксиса, неправильно себя ведущая в gedit

Я создаю пользовательский маркер синтаксиса для подобного разметке языка, который я создал для выполнения некоторого материала управления естественным языком, таким образом, я думал, что начну с простыми ключевыми словами, видя, поскольку я не должен придумывать regexes для них.

Я определил следующее в XML:

<language id="foo" _name="Foo" version="2.0" _section="Source">
  <metadata>
    <property name="mimetypes">text/x-c;text/x-csrc;image/x-xpixmap</property>
    <property name="globs">*.foo</property>
  </metadata>

  <styles>
    <style id="operator" _name="Operator" map-to="def:keyword" />
    <style id="member" _name="Member" map-to="def:type" />
  </styles>

  <definitions>

    <context id="members" style-ref="member">
      <keyword>ref</keyword>
      <keyword>alt</keyword>
      <keyword>pos</keyword>
      <keyword>num</keyword>
    </context>

    <context id="operators" style-ref="operator">
      <keyword>#</keyword>
      <keyword>$</keyword>
      <keyword>@</keyword>
      <keyword>[</keyword>
      <keyword>]</keyword>
      <keyword>:</keyword>
      <keyword>=</keyword>
      <keyword>:?</keyword>
      <keyword>&amp;</keyword>
    </context>

    <!--Main context-->
    <context id="opal" class="no-spell-check">
      <include>
        <context ref="members" />
        <context ref="operators" />
      </include>
    </context>

  </definitions>
</language>

Синтаксис действительно выделяется, но только на некоторых нечетных условиях. А именно, любое ключевое слово в operators контекстом должен и предшествовать и сопровождать символ неключевого слова, чтобы он выделится.

enter image description here

Я должен использовать regex для них, или я просто портил XML? Кроме того, почему делают members ключевые слова выделяются без проблемы?

1
задан 2 August 2016 в 04:24

0 ответов

Другие вопросы по тегам:

Похожие вопросы: