0

我想更改降价文件的列表标记GEdit在主题中的显示方式tomorrow_night-eighties.xml,我从https://wiki.gnome.org/Projects/GtkSourceView/StyleSchemes下载了该主题。我知道 GEdit 从

/usr/share/gtksourceview-3.0/language-specs/

降价语言文件是markdown.lang. 样式位于我的用户目录中:

~/.local/share/gtksourceview-2.0/styles

我所做的是以下内容:

  1. 我添加:<style name="markdown:list-marker" foreground="#cc99cc" bold="true"/>到样式文档中的可用样式列表中。在我的用户.local/share/....文件夹中。

  2. 我更改了语言规范:

    <style id="list-marker" _name="List Marker" map-to="markdown:list-marker"/><styles>...</styles>区域/标签中,以使其可用于进一步向下引用。

我的主题设置为我的主题,tomorrow_night-eighties.xml~/.local/share/gtksourceview-2.0/styles打开了一个降价文件。更改后 GEdit 不再突出显示列表标记。

我不明白的是,缺少什么?我只更改了参考并引入了新样式,根本没有更改正则表达式,那为什么会阻止它突出显示呢?

4

2 回答 2

0

似乎 GEdit 不会自动注意到这些文件中的更改,并且必须重新导入首选项中的样式,并且如果语言文件发生更改,请确保还重新启动 GEdit。

于 2016-09-29T13:00:27.310 回答
0

创建属性时存在标识符<context>和标签的错误,可能也是标签。<language>id=<style>

参见stackexchange

下面的原型测试套件是在这个环境中运行的:

linuxuser@ubuntu:~$ gedit  -V
gedit - Version 3.28.1

linuxuser@ubuntu:~$ uname -a
Linux ubuntu 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:00 UTC 2019 i686 i686 i686 GNU/Linux

linuxuser@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:    18.04
Codename:   bionic

演示此失败的测试套件语言文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--
 This file is part of GtkSourceView
 special mods for extended background highlighting and comments MJS aka etx 2021

id (mandatory)
Identifier for the description. 
This is used for external references and must be unique among language descriptions. 
It can contain a string of letters, digits, hyphens ("-") and underscores ("_"). NOT!!!

as follows for   id    attribute of both tags     language   &   context

empirical evidence gathered via simultaneously changing both id's to be identical

fails  reliably:    xRef
fail unreliably:    x-ref   X_-ef3
    but     aOk:    xref  xref3   x-ref3
-->
<language id="xRef"   name="C..C xref augment cpp"   version="2.0" _section="other">

  <definitions>     
    <context id="special-multiline-comment" style-ref="def:note" >   <!-- hi-liter -->
      <start>/(\*  ..  ..  ..  \*)+/</start>
      <end>\%{0@start}</end>
    </context>

    <!--Main context-->
    <context  class="no-spell-check"   id="xRef" >
      <include>

        <context ref="special-multiline-comment"/>    <!--  override MUST precede to supercede  -->

        <!-- actual language definition: editing hi lite stuff plus everything from C++ -->
        <context ref="cpp:cpp"/>

      </include>
    </context>
  </definitions>
</language>
于 2021-09-10T18:19:21.703 回答