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

c - gtksourceview 中的代码折叠

我在https://live.gnome.org/GtkSourceView上看到“我们现在可以使用 gtk+ 2.8 支持 GtkSourceView 中的代码折叠”。然而我在任何地方都找不到任何例子。准备好使用了吗?有没有可以提供的例子来让事情顺利进行?

我已阅读错误报告,并已通过电子邮件向 Bijan Binaee 提供帮助,但没有收到任何回复。任何人有任何见解?谢谢。

0 投票
1 回答
1585 浏览

python - 使用 GTK3 SourceView 突出显示语法

如何在GtkSourceView使用 GTK3 时启用语法高亮?我下面的代码不起作用。

给出错误:

AttributeError:“TextBuffer”对象没有属性“set_language”

0 投票
1 回答
1057 浏览

python - GtkSourceView 使用 Gobject Introspection 滚动到行 [python]

我已经使用 Gobject Introspection 成功创建了一个 python GTK 应用程序,并在 GTKSourceView Widget 中打开了一个源文件。

当用户单击按钮时,我试图滚动以将特定行(第 150 行)放置到屏幕的中心。

我已经阅读了如何(以编程方式)滚动到 gtktextview/gtksourceview 中的特定行

以及围绕 GtkSourceViews、GTKTextView 和这两者的缓冲区对象的文档(据我了解,sourceview 继承自 textview)

我尝试使用以下方法:

- 在第 150 行获取一个迭代器,然后使用 scroll_to_iter() 方法 - 在第 150 行获取一个迭代器,在迭代器处做一个标记,然后使用 scroll_to_mark() 方法

我知道迭代器和标记是正确的,因为我可以成功使用 place_cursor(iter) 方法,并且它成功地将标记放置在第 150 行的末尾,但是使用给定方法滚动到标记或迭代器什么都不做。

滚动到标记方法不返回值,但迭代器方法返回 false。

谁能建议一种方法来实现这一目标?

我的测试代码如下:

0 投票
0 回答
173 浏览

python - 在 gtksource.view 中搜索并突出显示?

Gedit 使用搜索突出显示。我知道 Gedit 使用 gtksourceview,并且想知道该搜索机制是如何实现的。

0 投票
1 回答
258 浏览

haskell - gtksourceview2:实现完成提供程序

文档指出SourceCompletionProvider

“实现此接口”在上下文中是什么意思?

我应该GObject使用功能创建新功能吗?有什么例子吗?

当我有 newGObject时,如何sourceCompletionProviderGetName向它添加功能(如 )?

谢谢

0 投票
1 回答
154 浏览

regex - 如何将数字与 GtkSourceView 语言规范中的可选字母后缀匹配?

我正在编写一个新的 GtkSourceView 语言规范;遵循教程和其他 Internet 资源中的信息。我定义的语言可以是一个数字:

  1. 一个或多个digit字符
  2. 可选附加(例如在末尾)字母L, l, N, 或n.

例子:

请注意,这只是几个可能的定义之一。

到目前为止,我已经写过(大约(省略定义的其他部分)):

我将其解释为: _Anumber以一个或多个数字字符开头,可选地后跟任何以下:N n l L,并在遇到非数字数字(例如空格,字母)时结束。

不幸的是,这不太奏效,因为附加任何指定的字符(或任何字符)都会导致它失败(在这种情况下,这意味着不突出显示。)

关于如何匹配这种模式的任何想法?提前致谢!:)

0 投票
1 回答
111 浏览

xml - 在 GtkSourceView 中使用重叠模式

有谁知道是否有办法在 GtkSourceView 3 XML 语言文件中指定重叠模式?例如,在下面的文本中,有没有办法以一种颜色突出显示foobar之间的“一些文本...”和另一种颜色的barbaz之间的“一些更多文本...” ?这里的问题是bar是一个上下文的结束,也是另一个上下文的开始,这意味着bar-baz上下文永远不会应用。

0 投票
2 回答
390 浏览

regex - gtksourceview 关键字转义

在我的语言中,关键字是文字#list-empty?,所以我想与之匹配。我正在使用 gtksourceview 提供语法高亮,并使用以下定义

<keyword>list-empty?</keyword>

但是,这匹配list-emptand list-empty(但不匹配文字list-empty?)。对我来说,这表明 gktsourceview 将其中的内容<keyword>视为正则表达式。所以我想逃避?并从字面上匹配它。然而,类似的东西:<keyword>list-empty\?<keyword>根本不起作用。

https://github.com/espringe/wisp/blob/bf1aed13/resources/wisp.lang#L67

那么我如何逃避?并与之匹配

0 投票
1 回答
214 浏览

gtk - gtksourceview 撤消,撤消超出预期

我正在编写一个文本编辑器,我似乎不了解有关 gtksourceview 和撤消的内容。我希望撤消操作在每次调用时撤消单个操作,但它似乎想做的不止于此。

这是一个例子:

我输入两行:

第一行

第二行

然后我先上去删除“r”,然后按 ctrl+z 执行撤消。这是什么结果:

第一行

第二

文档说:

动作被定义为调用 gtk_text_buffer_begin_user_action() 和 gtk_text_buffer_end_user_action() 之间的操作组,或同一行上的类似编辑(插入或删除)序列。

我看不出恢复“r”和删除“line”这个词是如何“在同一行上进行类似的编辑(插入或删除)”。

点击撤消非常令人迷惑,并且必须记住点击重做,因为撤消的操作比预期的要多。其他编辑不这样做,所以我只是执行错了吗?

这是我的撤消代码: GtkSourceBuffer *sbuffer;

0 投票
1 回答
171 浏览

gtk - gtksourceview-3.0 中的 gtk_source_iter_forward_search 发生了什么

我查看了GtkSourceView 3 Reference Manual,并且搜索了一段时间,但我找不到任何关于 gtk_source_iter_forward_search 为何从 gtksourceview 中删除或应该改用的内容的提及。

我还查看了 gtksourceview 网站上的功能链接,它作为功能列出:Caseless UTF-8 compliant search。

我查看了 gedit 源版本 3.2.6(因为我知道他们使用 gtksourceview),但他们似乎正在使用 gedit_document_search_forward,我猜它来自其他一些库。所以我的问题是,gtksourceview 中的搜索功能发生了什么变化?是否有另一个库提供与 gtk_source_iter_forward_search 类似的功能,还是现在在 gtksourceview 中以另一种方式完成?

我最初在 gtksourceview-2.0 中编写我的编辑器,现在我正在使用 gtksourceview-3.0 重写它,并且我已经建立了基于 gtk_source_iter_forward_search 函数的搜索转发功能。

谢谢。