Подсветка синтаксиса с помощью GTK3 SourceView

Как включить подсветку синтаксиса в GtkSourceView с помощью GTK3? Мой код ниже не работает.

# HTML view
self.scrolledwindow_html = builder.get_object('scrolledwindow_html')
self.sourceview_html = GtkSource.View()
self.buffer_html = self.sourceview_html.get_buffer()

lang_manager = GtkSource.LanguageManager()
self.buffer_html.set_language(lang_manager.get_language('html'))
self.scrolledwindow_html.add(self.sourceview_html)

Давать ошибку:

AttributeError: у объекта 'TextBuffer' нет атрибута 'set_language'

1 ответ

Решение

Похоже, что исходный код инициализируется с Gtk.TextBuffer (который не знает о подсветке синтаксиса) вместо GtkSource.Buffer (который делает). Заставьте его использовать ваш выбор Buffer, сначала сделав буфер, и сообщив View использовать именно этот объект:

 self.buffer_html = GtkSource.Buffer()
 self.sourceview_html = GtkSource.View.new_with_buffer(self.buffer_html)
Другие вопросы по тегам