Gtk2::S...w2::View(3)

πŸ“¦
version 0.12 Β· 2 versions
, in fedora 43

πŸ’– 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::Color or undef)

πŸ–ΌοΈ 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::Pixbuf or undef)

πŸ”’ 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 : default false : readable / writable) β€” Whether to enable auto indentation
  • 'completion' (Glib::Object::_Unregistered::GtkSourceCompletion : default undef : 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 : default false : readable / writable) β€” Whether to highlight the current line
  • 'indent-on-tab' (boolean : default true : 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 : default false : readable / writable) β€” Whether to insert spaces instead of tabs
  • 'right-margin-position' (Glib::UInt : default 80 : readable / writable) β€” Position of the right margin
  • 'show-line-marks' (boolean : default false : readable / writable) β€” Whether to display line mark pixbufs
  • 'show-line-numbers' (boolean : default false : readable / writable) β€” Whether to display line numbers
  • 'show-right-margin' (boolean : default false : 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 : default 8 : 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 (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