Redraw Whitespace characters on GtkSourceView Python

269 Views Asked by At

I am using GtkSource.view in Python to display whitespace characters.

After setting View.set_draw_spaces(GtkSource.DrawSpacesFlags.ALL), it is displaying whitespace characters, But I want to redraw/customize some symbols like Non-Breaking space, Non-Breaking Hyphen, Zero-width-space ,and make Breakpoint symbol smaller.

But how to customize/redefine these characters or to extend/redefine GtkSourceView methods.

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('GtkSource', '3.0')
import cairo

from gi.repository import Gtk
from gi.repository import GtkSource
from gi.repository import GObject

window = Gtk.Window()
window.set_default_size(200, 200)
window.connect("destroy", Gtk.main_quit)

textview = GtkSource.View()
textview.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)
textbuffer = GtkSource.Buffer()
textbuffer.set_text("He\tllo world\n"*2, -1)

end_iter = textbuffer.get_end_iter()
textbuffer.insert(end_iter, '\nNonbreaking space: \n')
textbuffer.insert(end_iter, unichr(0x00a0)*10)
textbuffer.insert(end_iter, '\nNonbreaking Hyphen: \n')
textbuffer.insert(end_iter, unichr(0x2011)*10)
textbuffer.insert(end_iter, '\nZero Width Space: \n')
textbuffer.insert(end_iter, unichr(0x200b))

draw_spaces = GtkSource.DrawSpacesFlags.ALL
textview.set_draw_spaces(draw_spaces)
textview.set_buffer(textbuffer)

window.add(textview)
window.show_all()

Gtk.main()

Any Help?

enter image description here

0

There are 0 best solutions below