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

时间:2010-07-29 09:43:48

标签: gtk code-completion gtksourceview

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

有人可以给我一些教程的url或描述gtk_source_completion_XXX函数的使用吗?

2 个答案:

答案 0 :(得分:6)

您需要的是通过key-press-event信号(或类似信号)解析用户输入。

  • 通过调用gtk_text_view_get_buffer获取 GtkTextBuffer
  • 通过调用gtk_text_buffer_get_insert获取 GtkTextMark
  • 通过调用gtk_text_buffer_get_iter_at_mark获取 GtkTextIter
  • 通过gtk_text_iter_ends_word检查 GtkTextIter 是否在单词的末尾。
  • 如果是的话
    • 然后使用gtk_text_iter_backward_word_start获取单词开头的GtkTextIter。
    • 调用gtk_text_buffer_get_text获取未完成的单词。
    • 搜索相关标识符并将其显示在GTK_WINDOW_POPUP类型的GtkWindow上的GtkTreeView中。

如果您想在.::->之后显示自动完成列表,那么您应该通过上述方法获取上一个字词。

答案 1 :(得分:4)

是的,你可以做what ccSadegh said。或者您可以使用GtkSourceCompletion