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

gtk - 确定文件的 MIME 类型

如何确定文件的 mime 类型(在 OCaml 中)?

我正在尝试为 GtkSourceView 控件设置语言,但要做到这一点,我需要先确定语言。我能看到的唯一方法是使用 mime 类型 - 有一个函数将返回正确的语言,如下所示:

我真的不想将语言硬编码到我的源代码中。如果无法确定 OCaml 中的 mime 类型(在搜索文档后我还没有找到方法),是否有另一种方法可以确定源语言?

0 投票
2 回答
1755 浏览

c++ - 为了使用 Glib::wrap,必须对 Glib::init() 进行什么操作?

因此,我尝试使用 GtkSourceViewmm 在 C++ 中使用GtkSourceView,它的文档和支持级别给我的印象是很长一段时间都没有仔细研究过它。但我总是一个乐观主义者:)

我正在尝试使用类似于以下的代码添加SourceView :

不幸的是,它吐出了警告

(algoviz:4992):glibmm-WARNING **:无法包装“GtkSourceLanguage”类型的对象。提示:此错误通常是由于未能调用库 init() 函数引起的。

当我在调试器中查看它时,确实上面的第二行(带有 的那一行Glib::wrap())正在返回NULL。我不知道为什么会这样,但我试图通过添加Glib::init()到程序的开头来注意警告,但这似乎也没有任何帮助。

我已经尝试过Google'ing,但没有成功。有谁知道 Glib 想让我初始化什么以便能够进行 wrap 调用?或者,更好的是,有没有人知道任何使用 GtkSourceViewmm(不仅仅是常规 GtkSourceView)的工作示例代码?我无法找到任何实际的示例代码,甚至在 Google 代码搜索上也找不到。

谢谢!

0 投票
2 回答
927 浏览

django - 向 gtksourceview 添加新语言(Django 的 gedit 模板语言)

我在向 gtksourceview(由 gedit 使用)添加新语言时遇到了问题。

我想添加 Django 的模板语言,但有些东西不起作用:
我无法让%}停止语法着色。

这是一个片段:

此代码段正确地为我的代码着色,但它不会在%}处停止。它在%}之后继续着色,所以有问题。

我制作了一个有效的片段:

它工作得很好。

{{}}有效,但%}无效。

我尝试使用 html 实体和反斜杠 (\),但它不起作用。

有人知道可能是什么问题吗?

谢谢。

0 投票
2 回答
1607 浏览

gtk - 如何使基本代码自动完成?

我在 GTK 和 gtksourceview2.0 中制作简单的代码编辑器。我想在我的编辑器中添加一个代码完成窗口。应该有 10-15 个关键字(始终相同)。

谁能给我一些教程的网址或描述 gtk_source_completion_XXX 函数的用法?

0 投票
1 回答
2073 浏览

gtk - c gtk+: 将文本文件加载到 GtkSourceView 的 TextBuffer 中

我正在使用带有 gtk+ 和 gtksourceview-2.0 的 C 语言编写程序。

我正在使用 GtkFileChooser 让用户选择一个文件,当他点击它时,我希望将内容加载到 GtkSourceView 的 TextBuffer

这是当用户双击 GtkFileChooser 上的文件时执行的函数:

这是我的应用程序的输出:

之后我在命令 gtk_text_buffer_set_text 上遇到分段错误

如您所见,我有两个已注释掉的命令。尝试 g_debug 缓冲区显然会产生分段错误,因为我没有在字符串的末尾添加零,即使我尝试在字符串的末尾添加零,我也会遇到分段错误。我可能做错了什么。

在这里,我试图只写缓冲区的前两个字符,但没有运气。

有任何想法吗?

更新

完成的功能:

0 投票
1 回答
1426 浏览

c - C Gtk+2 Glade3:如何将 SourceBuffer 设置为从 glade 加载的 GtkSourceView?

我正在尝试将 .c 文件加载到GtkSourceView小部件中。

使用 C 语言,使用 Gtk+ 2.22.1 和 Glade 3.6.7 和 GtkSourceView 2.10.1。

我注意到在 Glade UI 中我只能配置 aSourceView来保存 a TextBuffer; 我没有找到SourceBuffer组件。所以,我SourceView在 Glade 中创建了一个没有默认缓冲区的。现在我想将 设置为我的组件SourceBuffer的缓冲区。SourceView

gtk_source_view_new_with_buffer()SourceBuffer是我发现将 a 附加到 a的唯一方法SourceView。问题是这个函数正在创建一个SourceView,我想将一个附加SourceBuffer到一个已经创建SourceView的 Glade 上。我怎样才能做到这一点?

我没有粘贴任何代码,因为没有要显示的代码。我刚刚创建了一个 Glade 文件,其中包含一些 UI 组件以及SourceView-2带有 ID 的组件gtk_sourceview

在 C 文件中,我使用

缺少的是如何创建一个SourceBuffer并将其附加到SourceView组件。

谢谢!

更新: 我尝试使用:

但我收到以下断言错误:

我能做些什么来解决这个问题?

谢谢!

0 投票
1 回答
102 浏览

gtk - 在多个 GtkSourceView 之间链接撤消历史

我有一个包含几个 GtkSourceView 小部件的应用程序。主界面是一个包含多个“单元格”的表格——每个单元格都是一个 GtkSourceView。GtkSourceView 内置了对撤消的支持,但是每个小部件都有自己的“撤消堆栈”。我想在整个工作表上都有相同的撤消堆栈。

例如:假设最后一次编辑是在 SourceView A 中进行的,倒数第二次编辑是在 SourceView B 中。无论哪个 SourceView 具有焦点,第一次按 Ctrl-Z 应该恢复 A 中的更改,第二次按应该恢复B 的变化。

有没有一种方法可以在保持多个 SourceView 小部件的同时完成此操作,或者我最好自己尝试实现这种类型的撤消功能?

注意:我认为尝试将整个工作表放在单个 SourceView 中会太笨重。另外,我正在使用 Python。

0 投票
1 回答
1218 浏览

syntax-highlighting - gedit 中 lex 的语法高亮显示

我知道我只需要一个像/usr/share/gtksourceview-2.0/language-specs/javascript.lang. 我在哪里可以找到这样的 lex 语言定义?

0 投票
1 回答
1180 浏览

syntax-highlighting - Gedit highlight (gtksourceview):如何用颜色突出显示 [curly] 大括号内的块

我需要突出显示大括号内的每一段代码,所以我创建了一个规则:

它正确地突出显示代码、关键字和变量,但如果里面有另一个右大括号,它当然会停止。我知道正则表达式检查递归级别并非易事,但可能gtkSourceView语法对于此类情况有一些特殊之处?

这是一件严肃的事情,因为我正在突出显示的一种语言(实际上是 PegJS)只能在大括号内包含 JavaScript 代码,而不是在大括号外。我想用一种颜色突出显示它们:)


有关的:

0 投票
1 回答
144 浏览

fedora - 由于 gtksourceview,无法在 fedora 16 上配置和安装 java-gnome 绑定

我正在尝试在运行 Fedora 16 的桌面上安装 java-gnome 开发绑定。它的工作依赖项之一是 'gtksourceview'>=2.91。我尝试通过 yum 存储库和编译源代码来安装它,但是在为 java-gnome 包运行“./configure”时,没有一个被接受。

输出是:

检查所需的系统库: - Cairo 找到

  • 找到 GLib

  • 找到 GTK+

  • 发现盘古

  • 找到 RSVG

  • 发现攻击力

  • 未找到 GtkSourceView!