Вам нужно проанализировать ввод пользователя по сигналу key-press-event
(или аналогичным сигналам).
- Получите GtkTextBuffer , вызвав gtk_text_view_get_buffer.
- Получите GtkTextMark , вызвав gtk_text_buffer_get_insert.
- Получите GtkTextIter , вызвав gtk_text_buffer_get_iter_at_mark.
- Проверьте, находится ли GtkTextIter в конце слова с помощью gtk_text_iter_ends_word.
- Если бы это было
- затем используйте gtk_text_iter_backward_word_start, чтобы получить GtkTextIter для начала слова.
- Вызовите gtk_text_buffer_get_text, чтобы получить незавершенное слово.
- Поиск связанных идентификаторов и отображение их в GtkTreeView в GtkWindow типа GTK_WINDOW_POPUP.
Если вы хотите показать список автозаполнения после .
или ::
или ->
, то вы должны получить предыдущее слово с помощью подхода, подобного приведенному выше.