Gtk2::S...w2::View(3)
π Gtk2::SourceView2::View π
okay bestie, gather round, because this one is the main character of syntax highlighting. this is Gtk2::SourceView2::View, straight out of the User Contributed Perl Documentation collection, and it's giving "text editor but make it fancy." it's the widget you slap on screen when you want a Gtk2::TextView that actually understands code β line numbers, indentation, right margins, the whole glow-up. π¦
π HIERARCHY π
so like, family tree time. this widget did NOT come from nowhere, she has ancestors:
Glib::Object
+----Glib::InitiallyUnowned
+----Gtk2::Object
+----Gtk2::Widget
+----Gtk2::Container
+----Gtk2::TextView
+----Gtk2::SourceView2::View
she's a Gtk2::TextView at heart, just with extra sparkle on top. periodt. β¨
π INTERFACES π
and she's also rocking these:
Glib::Object::_Unregistered::AtkImplementorIface
Gtk2::Buildable
yes queen, accessibility AND buildable. versatility is the vibe. π
β METHODS β
here's where it gets juicy. every single one, no skips, we're not doing that here.
π Making one
widget = Gtk2::SourceView2::View->newβ brand new view, fresh out the box, zero buffer attached. baby's first view. πΌwidget = Gtk2::SourceView2::View->new_with_buffer ($buffer)β same thing but you hand her a buffer right away.$buffer(Gtk2::SourceView2::Buffer)
βοΈ Auto indent
boolean = $view->get_auto_indent$view->set_auto_indent ($enable)$enable(boolean)
π Draw spaces
drawspacesflags = $view->get_draw_spaces$view->set_draw_spaces ($flags)$flags(Gtk2::SourceView2::DrawSpacesFlags)
π Highlight current line
boolean = $view->get_highlight_current_line$view->set_highlight_current_line ($show)$show(boolean)
β¨οΈ Indent on tab
boolean = $view->get_indent_on_tab$view->set_indent_on_tab ($enable)$enable(boolean)
π Indent width
integer = $view->get_indent_width$view->set_indent_width ($width)$width(integer)
π«§ Spaces instead of tabs
boolean = $view->get_insert_spaces_instead_of_tabs$view->set_insert_spaces_instead_of_tabs ($enable)$enable(boolean)
π¨ Mark category background
color = $view->get_mark_category_background ($category)$category(string)
$view->set_mark_category_background ($category, $color)$category(string)$color(Gtk2::Gdk::Colororundef)
πΌοΈ Mark category pixbuf
pixbuf or undef = $view->get_mark_category_pixbuf ($category)$category(string)
$view->set_mark_category_pixbuf ($category, $pixbuf)$category(string)$pixbuf(Gtk2::Gdk::Pixbuforundef)
π’ Mark category priority
integer = $view->get_mark_category_priority ($category)$category(string)
$view->set_mark_category_priority ($category, $priority)$category(string)$priority(integer)
π Right margin position
integer = $view->get_right_margin_position$view->set_right_margin_position ($pos)$pos(integer)
π Show line marks
boolean = $view->get_show_line_marks$view->set_show_line_marks ($show)$show(boolean)
π’ Show line numbers
boolean = $view->get_show_line_numbers$view->set_show_line_numbers ($show)$show(boolean)
π Show right margin
boolean = $view->get_show_right_margin$view->set_show_right_margin ($show)$show(boolean)
π Smart home end
smarthomeendtype = $view->get_smart_home_end$view->set_smart_home_end ($smart_he)$smart_he(Gtk2::SourceView2::SmartHomeEndType)
π Tab width
integer = $view->get_tab_width$view->set_tab_width ($width)$width(integer)
π PROPERTIES π
the glow-up settings, all of them, with their defaults, because defaults matter:
'auto-indent'(boolean: defaultfalse: readable / writable) β Whether to enable auto indentation'completion'(Glib::Object::_Unregistered::GtkSourceCompletion: defaultundef: readable) β The completion object associated with the view'draw-spaces'(Gtk2::SourceView2::DrawSpacesFlags: default : readable / writable) β Set if and how the spaces should be visualized'highlight-current-line'(boolean: defaultfalse: readable / writable) β Whether to highlight the current line'indent-on-tab'(boolean: defaulttrue: readable / writable) β Whether to indent the selected text when the tab key is pressed'indent-width'(integer: default-1: readable / writable) β Number of spaces to use for each step of indent'insert-spaces-instead-of-tabs'(boolean: defaultfalse: readable / writable) β Whether to insert spaces instead of tabs'right-margin-position'(Glib::UInt: default80: readable / writable) β Position of the right margin'show-line-marks'(boolean: defaultfalse: readable / writable) β Whether to display line mark pixbufs'show-line-numbers'(boolean: defaultfalse: readable / writable) β Whether to display line numbers'show-right-margin'(boolean: defaultfalse: readable / writable) β Whether to display the right margin'smart-home-end'(Gtk2::SourceView2::SmartHomeEndType: default"disabled": readable / writable) β HOME and END keys move to first/last non whitespace characters on line before going to the start/end of the line'tab-width'(Glib::UInt: default8: readable / writable) β Width of a tab character expressed in spaces
lowkey the 'draw-spaces' default is just an empty value up there, that's not me being lazy, that's literally what's written. π
π£ SIGNALS π£
when she has something to say, she says it. all of these:
line-mark-activated (Gtk2::SourceView2::View, Gtk2::TextIter, Gtk2::Gdk::Event)move-lines (Gtk2::SourceView2::View, boolean, integer)move-words (Gtk2::SourceView2::View, integer)redo (Gtk2::SourceView2::View)show-completion (Gtk2::SourceView2::View)smart-home-end (Gtk2::SourceView2::View, Gtk2::TextIter, integer)undo (Gtk2::SourceView2::View)
π§ ENUMS AND FLAGS π§
flags Gtk2::SourceView2::DrawSpacesFlags
'space'/'GTK_SOURCE_DRAW_SPACES_SPACE''tab'/'GTK_SOURCE_DRAW_SPACES_TAB''newline'/'GTK_SOURCE_DRAW_SPACES_NEWLINE''nbsp'/'GTK_SOURCE_DRAW_SPACES_NBSP''leading'/'GTK_SOURCE_DRAW_SPACES_LEADING''text'/'GTK_SOURCE_DRAW_SPACES_TEXT''trailing'/'GTK_SOURCE_DRAW_SPACES_TRAILING''all'/'GTK_SOURCE_DRAW_SPACES_ALL'
enum Gtk2::SourceView2::SmartHomeEndType
'disabled'/'GTK_SOURCE_SMART_HOME_END_DISABLED''before'/'GTK_SOURCE_SMART_HOME_END_BEFORE''after'/'GTK_SOURCE_SMART_HOME_END_AFTER''always'/'GTK_SOURCE_SMART_HOME_END_ALWAYS'
π SEE ALSO π
go read these too, they're the extended universe:
Gtk2::SourceView2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container, Gtk2::TextView
Β©οΈ COPYRIGHT Β©οΈ
Copyright (C) 2009 by Emmanuel Rodriguez
okay that's the whole thing, you're officially certified in Gtk2::SourceView2::View bestie πβ¨ this was documented by the Perl crew at perl v5.42.0, dated 2025-07-25, and honestly? iconic of them. now go forth and make your text editor pretty. π
π«Ά
π¦ where this page comes from
- fedora 43: perl-Gtk2-SourceView2 0.12-18.fc43 Β· GPL-2.0-or-later OR Artistic-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms