问题标签 [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 投票
0 回答
109 浏览

regex - 在 gtksourceview 中通过制表符分隔的列突出显示语法

我正在为所有.bed文件编写语法高亮文件。每列的确切内容可能会有所不同,通常如下所示

到目前为止,我有第一列选择和链工作:

床.lang

我想对此进行扩展,以便根据我可以定义的方案对每一列进行不同的格式化。即坐标是一种颜色,名称是另一种颜色,分数是另一种颜色。问题是坐标和分数等都是数字字符串。

我能看到的“最简单”的解决方案是一个可以选择列的正则表达式,如果选择更大,则列数不返回任何内容(不环绕行)。

反向搜索似乎不起作用(因为正则表达式中的“>”字符。我尝试过但表现不佳的一些正则表达式是:

  1. 建立迭代匹配并以不同方式格式化是行不通的。多次选择相同的字符串会导致所有语法高亮失败。

    /li>
  2. 选择“数字字符串”

    /li>

我将继续破解一个丑陋的解决方案,但我想知道是否有一些我没有想到的优雅的东西。

0 投票
1 回答
353 浏览

c - GtkSourceView/ GtkSourceBuffer - 如何用红色标记一行并显示一个图标

我想将 GtkSourceView 中的一些文本标记为红色并显示一个图标。这是我目前的尝试,似乎什么也没做:

printf 打印正确的行号。

如果我两次调用该方法,gtk 会打印一些 gtk-critical:“Mark myMark 已存在于缓冲区中”。

然而,在 gtksourceview 上根本没有明显的变化。

可能我应该做些什么gtk_source_mark_attributes来更改特定类别的属性?但是如何?我找不到任何关于如何使用它的好信息。

0 投票
1 回答
61 浏览

c - gtkSourceView - 查询工具提示文本的使用

我想在我的 gtkSourceView 上使用回调“query-tooltip-text”。我使用以下方法将回调连接到信号:

这很好用.. 每当显示工具提示时,都会调用我的方法。...->message是一个永久保存在内存中的 c 字符串。这是我的回调方法:

gtk3 源文档统计我应该控制字符串的生命周期并在完成后释放它,我认为应该没问题。

但是,我的回调在第二次调用后因双自由段错误而失败:

与官方文档中的说法完全不同,看起来 gtk3 在使用后释放了字符串的内存。我试图像这样修改我的回调:

效果很好,但是我担心我的应用程序现在会吃掉内存。你知道query-tooltip-text回调的正确用法是什么吗?

0 投票
1 回答
949 浏览

gtk - 如何在 Gtk SourceView 中使用自定义语言高亮语法?

我正在尝试创建自己的语言定义,并将其用于突出显示我的应用程序中的语法。

我遇到的问题是,当尝试从我的应用程序的数据文件夹 ( /usr/share/myapp/) 访问语言定义时,即使使用从c.lang复制的文件/usr/share/gtksourceview-3.0/language-specs/,只是为了测试,我在运行时收到此错误:

所以它要求一些模式文件?language-specs所以我继续并从不是文件的文件夹中复制了每个文件lang,其中包括language.dtdlanguage.rnglanguage2.rng.

现在,当我再次运行时,出现以下错误:

那有什么意思?那是与命名空间相关的吗?这是非常奇特的,因为完全相同的文件在gtksourceview文件夹中可以完美运行。

有什么线索吗?这些“RelaxNG”文件是否仅在其原始目录中有效?如果是这样,我该如何改变呢?我查看了这些文件,但没有找到对其原始文件夹的任何引用...

这是与该问题相关的源代码(在 Vala 中):

该应用程序确实找到了语言“c”,我已经通过调试进行了检查。

0 投票
1 回答
29 浏览

gtksourceview - 如何在“B”之后突出显示“A”,但不突出显示“B”本身?

假设我想为出现在字符 B 之后的每个字符 A 定义一个特殊样式。如果我这样做?

然后 B 本身被突出显示,这是我不想要的;我只想突出显示 A。我该怎么做?

0 投票
1 回答
303 浏览

xml - 语法高亮 gtksourceview,使用另一个 xml 文件?

gedit我们可以在文件夹中以某种XML file格式添加我们的语言定义/usr/share/gtksourceview-3.0/language-specs/,但是我们可以在我们的XML引用中引用其他XML文件吗?在我的语言定义中,当它们位于某些特殊字符之间时,我想添加一些脚本(C , Python , Java...),因为它们已经有一个我只想使用它的 XML 文件。

任何人都有实现这一目标的线索?

https://developer.gnome.org/gtksourceview/stable/lang-tutorial.html

0 投票
1 回答
286 浏览

gtk3 - GTK SourceView 滚动以标记不工作

我正在尝试用文本填充 SourceView 的缓冲区,然后滚动以使特定行可见,如下所示:

这会滚动到缓冲区中或多或少的随机位置。我在这里做错了吗?或者这不起作用?

0 投票
2 回答
395 浏览

c - GtkSourceGutter - 如何在特定行上呈现图标或文本

我已经插入了自定义 gtk 源排水沟渲染器 pixbuf,我想在特定行上渲染图标。

参考 API 声明该接口与 GtkTreeView 上的接口非常相似,但不适用于树模型。那么......如果 GtkSourceGutter 不适用于树模型,我应该如何将数据呈现到特定行?

我检查了整个库中的每个函数,每个建议的 api 和子对象,甚至没有任何提示。

这没有任何意义。手册页说 GtkSourceGutterRendererPixbuf 用于在 CELL 中显示图标。这样做 gtk_source_gutter_renderer_pixbuf_set_pixbuf(renderer, pixbuf);将为装订线中的所有单元格呈现图标。如果唯一的方法是使用 cairo 手动绘制 pixbuf ..这些渲染器有什么意义?

如何使用 gtksourcegutterrenderer在特定行中渲染 pixbuf ?


在此处输入图像描述

0 投票
0 回答
182 浏览

python - 在 GtkSourceView Python 上重绘空白字符

我在 Python 中使用 GtkSource.view 来显示空白字符。

设置 View.set_draw_spaces(GtkSource.DrawSpacesFlags.ALL) 后,它显示空白字符,但我想重绘/自定义一些符号,如不间断空格、不间断连字符、零宽度空间,并使断点符号更小.

但是如何自定义/重新定义这些字符或扩展/重新定义 GtkSourceView 方法。

有什么帮助吗?

在此处输入图像描述

0 投票
2 回答
76 浏览

c - gtk_source_mark_attributes_render_icon 的第二个参数

函数的第二个参数应该是什么gtk_source_mark_attributes_render_icon() 它显然是类型GtkWidget*,根据参考页面,这是

“可以使用哪些样式设置的小部件”

我觉得有点不清楚。

当我打电话时,gtk_source_mark_attributes_render_icon(att, some_random_widget, 40);似乎什么都没有发生,并且在排水沟中渲染的 pixbuf 小到 10x10 或其他东西。我什至将装订线尺寸设置为 40,因为我最初认为,图像是如此之小,因为装订线的宽度是如此之小。

如何在排水沟中渲染更大的 pixbuf?