我是一个初学者,只是一个学习 C 和 GTK 的爱好者,并且一直在努力阅读 textview / buffer / iter 的文档,并用一个简单的自我挑战项目标记我的挑战是让一个 < 符号在键入时突出显示想法是标记不同类型的开括号,直到它们关闭,这样当输入 > 时,将不再突出显示开括号。所以我有第一部分工作并且 < 符号将突出显示所以我的问题是我是如何做到的是否接近它应该读的样子,以及放置开始和结束标签的位置是否正确。
void highlight_open(){
GtkTextIter _start, _end;
gtk_text_buffer_get_iter_at_mark(buffer, &_end, gtk_text_buffer_get_insert(buffer));
gtk_text_buffer_get_iter_at_offset(buffer, &_start, gtk_text_iter_get_offset(&_end));
gtk_text_iter_backward_char(&_start);
gtk_text_buffer_apply_tag(buffer, red_tag, &_start, &_end);
}
void key_release(GtkWidget *widget, GdkEventKey *event, gpointer data){
switch (event->keyval){
case GDK_KEY_less:
highlight_open();
break;
default:
break;
}
}