问题标签 [gtksourceview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
67 浏览

python - 如何在 python 的 GtkSourceView 中加载样式?

如何在 GtkSourceView 中加载新样式?

在 Gedit 中,我可以看到它列出了在中找到的样式/usr/share/gtksourceview-3.0/styles,如何让我自己的 GtkSourceView 加载其中一种样式?

0 投票
0 回答
478 浏览

assembly - 如何在 Gedit 中突出显示不同的汇编语言?

默认情况下,使用 GtkSourceView 的文本编辑器(例如 Gedit 和 Mousepad)不会突出显示.asm文件。Drew Noakes的解决方案是将 x86 汇编语言的 GtkSourceView 语言定义文件下载到.local/share/gtksourceview-3.0/language-specs/. 我知道如何根据GNOME.org 的 GtkSourceView 文档制作语言定义文件。

但是,我经常使用多个指令集,每个指令集都需要不同的突出显示规则:

  • MOS 6502 组件(适用于 NES、Commodore 64、Apple II、Atari 8-bit 等)
  • 夏普 SM83 组件(用于 Game Boy)
  • Zilog Z80 组件(用于 MSX、ZX Spectrum、Game Gear 等)
  • ARM 组件(用于 Game Boy Advance 等)

它们都可能使用.s.asm作为文件名后缀,因此<metadata><property name="globs">*.s</property></metadata>似乎不足以区分它们。

有没有一种好方法可以将汇编语言文件的指令集指示给 GtkSourceView 编辑器?特别是,有没有比使用shared-mime-info为每个 ISA 本地定义 Internet 媒体类型、使用<magic>并确保所有协作者也具有相同的本地定义的 Internet 媒体类型更好的方法?

0 投票
0 回答
37 浏览

xml - 如何使用 gtk 源视图和 XML 在文本编辑器中为语法高亮添加自定义配色方案

我使用gtk构建了一个文本编辑器。这是一个非常简单的文本编辑器。我想使用gtk 源视图(可能)添加语法突出显示。我想使用我为此文本编辑器制作的XML文件格式的自定义样式表。如何在我的文本编辑器中添加语法高亮?并想使用我的自定义配色方案。以及将该XML文件放在哪里?请有任何建议!

0 投票
1 回答
52 浏览

c - GTK3+中如何更改行号模式的背景颜色?

我正在用 C/GTK3+ 设计一个文本编辑器,使用 GtkSourceView 类能够通过方法显示行号 gtk_source_view_set_show_line_numbers。我可以修改 textview 和 text 的背景颜色,但不能修改包含行号的面板的背景颜色。默认情况下,它似乎是白色的。你能告诉我如何修改它吗?

在此处输入图像描述

这是代码:

0 投票
0 回答
105 浏览

regex - GtkSourceView - Gedit:正则表达式匹配差异

我尝试^(\[\^)([^\]\s\p{C}]+)(\])\ (\P{C}*(?:\n(?!\n[\[\n])\P{C}*)*)dar.lang(位于/usr/share/gtksourceview-3.0/language-specs)中使用此 RegEx 来捕获具有多个段落的脚注(即 ia 以 2 个空行结束,即 3 \n)。

当我打开 Gedit 时,我看到这个 RegExdar.lang仅突出显示 [^1]... 脚注的第一段(忽略最后两个):

在此处输入图像描述

但是,当我在 Gedit 的“查找”对话框中使用相同的 RegEx(需要按下放大镜图标并激活“匹配为正则表达式”)时,它会完美匹配:

在此处输入图像描述

即使我在 RegEx 中替换两个出现的\P{C}*with ,我也会得到相同的结果.......*

我应该如何更改dar.lang,以便它也像 Gedit 的 Find 一样捕获具有多个段落的脚注?(regex101的行为与 Gedit 的“查找”对话框一样正确)。

更新:

看起来有人遇到了类似的问题。一个(可行的)建议是匹配空行^$而不是\n,因为 GtkSourceView 的语法引擎是基于行的(即“正则表达式一次只能访问一行文本”)。

但是我也看到人们说语法引擎使用 PCRE,一旦我运行syntax.dar文件grep --perl-regexp

我懂了:

所以另一方面,它看起来像标准的 PCRE 行为......

0 投票
1 回答
107 浏览

gtk - 可以将 Gtk 小部件导入 Gtk#

我正在尝试将其GtkSourceView用于 Gtk# 项目,因为TextView它简直太可怕了。

我怎样才能做到这一点?

有一个 GtkSourceView-sharp 但它已经过时并且不起作用。

0 投票
0 回答
28 浏览

regex - 是否可以在基于新行的正则表达式引擎中匹配一个段落后跟两个空行?

我试图为“dar”标记语言创建语法突出显示。要突出显示的元素之一是以两个空行结尾的多段脚注。它不起作用(如第一个链接所示)。语法引擎的作者认为这可能是由于引擎是基于行的(即一次只处理一行),但也暗示可能有一种解决方法grep --perl-regexp似乎以相同的方式工作)。

是否可以创建一种解决方法,绕过语法引擎的限制,并且能够匹配syntax.dar文件中的多段注释 [^1]?

0 投票
1 回答
59 浏览

c - GtkSourceView-CRITICAL **: 高亮单行花费了太多时间,语法高亮将被禁用

我遇到了与 GtkSourceView4 相关的这个问题,我想了解如何避免它

(litos:4353): GtkSourceView-CRITICAL **: 12:57:09.105: Highlighting a single line took too much time, syntax highlighting will be disabled

当我尝试插入标签时会发生这种情况,<h1>, <h2>但不插入其他标签,如<p>, <code>等。这似乎是一个已经提交https://bugzilla.redhat.com/show_bug.cgi?id=1882163没有解决方案的错误。

由于我正在使用使用 GtkSourceView4 的其他程序并且突出显示正常工作,这可能是由于 API 使用不当,特别是 function gtk_source_buffer_set_highlight_syntax。我正在使用 Gtksourceview4 和 GTK3。这是对突出显示文本感兴趣的代码的一部分

你可以在这里找到完整的程序https://github.com/gioretikto/litos

0 投票
0 回答
23 浏览

c - 使用 `gtk_source_search_context_get_occurrences_count` 计算出现次数

我不明白如何计算gtk_source_search_context_get_occurrences_countGtkSourceBuffer 中出现的次数。正确找到并突出显示所有事件,但函数始终返回 -1,根据文档https://developer-old.gnome.org/gtksourceview/3.24/GtkSourceSearchContext.html#gtk-source-search-context-get-occurrences -count表示缓冲区没有被完全扫描。你能告诉我如何完全扫描缓冲区吗?这就是我目前所拥有的:

void find (GtkButton *button, gpointer userData) { (void)button;

}

0 投票
0 回答
26 浏览

c - GtkSourceView如何在排水沟中做一个可点击的标记

我需要使装订线中显示的图标“可点击”以响应不同的操作(可能显示一个菜单来执行不同的操作)。类似于您在调试器中启用/禁用断点的东西。

我想这与排水沟和排水沟渲染器有关,但我完全迷路了,有人能指出我正确的方向吗?或者去哪里找例子?