Подсветка синтаксиса с помощью 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)