[gnome-builder/wip/gtk4-port: 104/736] libide/sourceview: start tearing apart more of IdeSourceView




commit f069f401872d513b7c4171dd65cd9b54fab281cb
Author: Christian Hergert <chergert redhat com>
Date:   Sun Mar 27 00:28:08 2022 -0700

    libide/sourceview: start tearing apart more of IdeSourceView
    
    We will end up with something much more minimal than we have, and can
    probably bring a lot over from EditorSourceView and friends. The amount
    we have in this class is just too much.

 src/libide/sourceview/ide-source-view.c | 491 +++-----------------------------
 src/libide/sourceview/ide-source-view.h | 431 ++++------------------------
 2 files changed, 88 insertions(+), 834 deletions(-)
---
diff --git a/src/libide/sourceview/ide-source-view.c b/src/libide/sourceview/ide-source-view.c
index 3254f15eb..c04dbcba5 100644
--- a/src/libide/sourceview/ide-source-view.c
+++ b/src/libide/sourceview/ide-source-view.c
@@ -65,11 +65,9 @@
 
 #define ALL_ACCELS_MASK (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)
 
-#define _GDK_RECTANGLE_X2(rect) dzl_cairo_rectangle_x2(rect)
-#define _GDK_RECTANGLE_Y2(rect) dzl_cairo_rectangle_y2(rect)
-#define _GDK_RECTANGLE_CONTAINS(rect,other) dzl_cairo_rectangle_contains_rectangle(rect,other)
-#define _GDK_RECTANGLE_CENTER_X(rect) dzl_cairo_rectangle_center(rect)
-#define _GDK_RECTANGLE_CENTER_Y(rect) dzl_cairo_rectangle_middle(rect)
+#define _GDK_RECTANGLE_X2(r) ((r)->x + (r)->width)
+#define _GDK_RECTANGLE_Y2(r) ((r)->y + (r)->height)
+#define _GDK_RECTANGLE_CONTAINS(rect,other) rectangle_contains_rectangle(rect,other)
 #define TRACE_RECTANGLE(name, rect) \
   IDE_TRACE_MSG ("%s = Rectangle(x=%d, y=%d, width=%d, height=%d)", \
                  name, (rect)->x, (rect)->y, (rect)->width, (rect)->height)
@@ -99,7 +97,7 @@ typedef struct
   IdeHover                    *hover;
 
   DzlBindingGroup             *file_setting_bindings;
-  DzlSignalGroup              *buffer_signals;
+  IdeSignalGroup              *buffer_signals;
 
   guint                        change_sequence;
 
@@ -300,6 +298,16 @@ static void     ide_source_view_maybe_overwrite          (IdeSourceView
                                                           const gchar           *text,
                                                           gint                   len);
 
+static inline cairo_bool_t
+rectangle_contains_rectangle (const cairo_rectangle_int_t *a,
+                              const cairo_rectangle_int_t *b)
+{
+  return (a->x <= b->x &&
+          a->x + (int) a->width >= b->x + (int) b->width &&
+          a->y <= b->y &&
+          a->y + (int) a->height >= b->y + (int) b->height);
+}
+
 static gpointer
 get_selection_owner (IdeSourceView *self)
 {
@@ -450,7 +458,7 @@ ide_source_view_block_handlers (IdeSourceView *self)
 
   g_assert (IDE_IS_SOURCE_VIEW (self));
 
-  dzl_signal_group_block (priv->buffer_signals);
+  ide_signal_group_block (priv->buffer_signals);
 }
 
 static void
@@ -460,7 +468,7 @@ ide_source_view_unblock_handlers (IdeSourceView *self)
 
   g_assert (IDE_IS_SOURCE_VIEW (self));
 
-  dzl_signal_group_unblock (priv->buffer_signals);
+  ide_signal_group_unblock (priv->buffer_signals);
 }
 
 static void
@@ -1263,7 +1271,7 @@ ide_source_view__buffer__notify_can_undo (IdeSourceView *self,
 static void
 ide_source_view_bind_buffer (IdeSourceView  *self,
                              IdeBuffer      *buffer,
-                             DzlSignalGroup *group)
+                             IdeSignalGroup *group)
 {
   IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
   g_autoptr(IdeContext) context = NULL;
@@ -1334,7 +1342,7 @@ ide_source_view_bind_buffer (IdeSourceView  *self,
 
 static void
 ide_source_view_unbind_buffer (IdeSourceView  *self,
-                               DzlSignalGroup *group)
+                               IdeSignalGroup *group)
 {
   IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
 
@@ -3241,71 +3249,6 @@ ide_source_view_update_display_name (IdeSourceView *self)
     }
 }
 
-static void
-ide_source_view_real_set_mode (IdeSourceView         *self,
-                               const gchar           *mode,
-                               IdeSourceViewModeType  type)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-  g_autofree gchar *suggested_default = NULL;
-  gboolean overwrite;
-
-  IDE_ENTRY;
-
-  g_assert (IDE_IS_SOURCE_VIEW (self));
-
-  if (!priv->buffer)
-    IDE_EXIT;
-
-#ifdef IDE_ENABLE_TRACE
-  {
-    const gchar *old_mode = "null";
-
-    if (priv->mode)
-      old_mode = ide_source_view_mode_get_name (priv->mode);
-    IDE_TRACE_MSG ("transition from mode (%s) to (%s)", old_mode, mode ?: "<default>");
-  }
-#endif
-
-  ide_source_view_save_column (self);
-
-  if (priv->mode)
-    {
-      IdeSourceViewMode *old_mode = g_object_ref (priv->mode);
-      const gchar *str;
-
-      /* see if this mode suggested a default next mode */
-      str = ide_source_view_mode_get_default_mode (old_mode);
-      suggested_default = g_strdup (str);
-
-      g_clear_object (&priv->mode);
-      g_object_unref (old_mode);
-    }
-
-  if (mode == NULL)
-    {
-      mode = suggested_default ?: "default";
-      type = IDE_SOURCE_VIEW_MODE_TYPE_PERMANENT;
-    }
-
-  /* reset the count when switching to permanent mode */
-  if (type == IDE_SOURCE_VIEW_MODE_TYPE_PERMANENT)
-    priv->count = 0;
-
-  priv->mode = _ide_source_view_mode_new (GTK_WIDGET (self), mode, type);
-
-  overwrite = ide_source_view_mode_get_block_cursor (priv->mode);
-  if (overwrite != gtk_text_view_get_overwrite (GTK_TEXT_VIEW (self)))
-    gtk_text_view_set_overwrite (GTK_TEXT_VIEW (self), overwrite);
-  g_object_notify (G_OBJECT (self), "overwrite");
-
-  ide_source_view_update_auto_indent_override (self);
-
-  ide_source_view_update_display_name (self);
-
-  IDE_EXIT;
-}
-
 static void
 ide_source_view_real_set_overwrite (IdeSourceView *self,
                                     gboolean       overwrite)
@@ -3331,36 +3274,6 @@ ide_source_view_real_swap_selection_bounds (IdeSourceView *self)
   gtk_text_buffer_select_range (buffer, &selection_bound, &insert);
 }
 
-static void
-ide_source_view_real_movement (IdeSourceView         *self,
-                               IdeSourceViewMovement  movement,
-                               gboolean               extend_selection,
-                               gboolean               exclusive,
-                               gboolean               apply_count)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-  gint count = -1;
-
-  g_assert (IDE_IS_SOURCE_VIEW (self));
-
-  if (apply_count)
-    count = priv->count;
-
-  if (priv->scrolling_to_scroll_mark)
-    priv->scrolling_to_scroll_mark = FALSE;
-
-  _ide_source_view_apply_movement (self,
-                                   movement,
-                                   extend_selection,
-                                   exclusive,
-                                   count,
-                                   priv->command_str,
-                                   priv->command,
-                                   priv->modifier,
-                                   priv->search_char,
-                                   &priv->target_line_column);
-}
-
 static void
 ide_source_view_real_move_error (IdeSourceView    *self,
                                  GtkDirectionType  dir)
@@ -3464,8 +3377,8 @@ is_same_range (GtkTextIter *new_start,
 }
 
 static void
-ide_source_view_real_restore_insert_mark_full (IdeSourceView *self,
-                                               gboolean       move_mark)
+ide_source_view_restore_insert_mark (IdeSourceView *self,
+                                     gboolean       move_mark)
 {
   IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
   GtkTextBuffer *buffer;
@@ -3508,12 +3421,6 @@ ide_source_view_real_restore_insert_mark_full (IdeSourceView *self,
     }
 }
 
-static void
-ide_source_view_real_restore_insert_mark (IdeSourceView *self)
-{
-  ide_source_view_real_restore_insert_mark_full (self, TRUE);
-}
-
 void
 _ide_source_view_clear_saved_mark (IdeSourceView *self)
 {
@@ -4099,7 +4006,7 @@ ide_source_view_focus_in_event (GtkWidget     *widget,
       priv->saved_selection_line_column = priv->saved_line_column;
     }
 
-  ide_source_view_real_restore_insert_mark_full (self, FALSE);
+  ide_source_view_restore_insert_mark (self, FALSE);
 
   /* restore line highlight if enabled */
   if (priv->highlight_current_line)
@@ -5552,7 +5459,7 @@ ide_source_view_destroy (GtkWidget *widget)
 
   /* Ensure we release the buffer immediately */
   if (priv->buffer_signals != NULL)
-    dzl_signal_group_set_target (priv->buffer_signals, NULL);
+    ide_signal_group_set_target (priv->buffer_signals, NULL);
 
   GTK_WIDGET_CLASS (ide_source_view_parent_class)->destroy (widget);
 }
@@ -5740,10 +5647,6 @@ ide_source_view_set_property (GObject      *object,
       ide_source_view_set_font_desc (self, g_value_get_boxed (value));
       break;
 
-    case PROP_HIGHLIGHT_CURRENT_LINE:
-      ide_source_view_set_highlight_current_line (self, g_value_get_boolean (value));
-      break;
-
     case PROP_INDENT_STYLE:
       ide_source_view_set_indent_style (self, g_value_get_enum (value));
       break;
@@ -6805,79 +6708,79 @@ ide_source_view_init (IdeSourceView *self)
   dzl_binding_group_bind (priv->file_setting_bindings, "overwrite-braces",
                           self, "overwrite-braces", G_BINDING_SYNC_CREATE);
 
-  priv->buffer_signals = dzl_signal_group_new (IDE_TYPE_BUFFER);
+  priv->buffer_signals = ide_signal_group_new (IDE_TYPE_BUFFER);
 
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "changed",
                                    G_CALLBACK (ide_source_view__buffer_changed_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "request-scroll-to-insert",
                                    G_CALLBACK (ide_source_view__buffer_request_scroll_to_insert_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "line-flags-changed",
                                    G_CALLBACK (ide_source_view__buffer_line_flags_changed_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::can-redo",
                                    G_CALLBACK (ide_source_view__buffer__notify_can_redo),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::can-undo",
                                    G_CALLBACK (ide_source_view__buffer__notify_can_undo),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::file-settings",
                                    G_CALLBACK (ide_source_view__buffer_notify_file_settings_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::language",
                                    G_CALLBACK (ide_source_view__buffer_notify_language_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::style-scheme",
                                    G_CALLBACK (ide_source_view__buffer_notify_style_scheme_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "insert-text",
                                    G_CALLBACK (ide_source_view__buffer_insert_text_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "insert-text",
                                    G_CALLBACK (ide_source_view__buffer_insert_text_after_cb),
                                    self,
                                    G_CONNECT_SWAPPED | G_CONNECT_AFTER);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "delete-range",
                                    G_CALLBACK (ide_source_view__buffer_delete_range_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "delete-range",
                                    G_CALLBACK (ide_source_view__buffer_delete_range_after_cb),
                                    self,
                                    G_CONNECT_SWAPPED | G_CONNECT_AFTER);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "mark-set",
                                    G_CALLBACK (ide_source_view__buffer_mark_set_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "loaded",
                                    G_CALLBACK (ide_source_view__buffer_loaded_cb),
                                    self,
                                    G_CONNECT_SWAPPED);
-  dzl_signal_group_connect_object (priv->buffer_signals,
+  ide_signal_group_connect_object (priv->buffer_signals,
                                    "notify::has-selection",
                                    G_CALLBACK (ide_source_view__buffer_notify_has_selection_cb),
                                    self,
@@ -7106,29 +7009,6 @@ ide_source_view_get_iter_at_visual_column (IdeSourceView *self,
     }
 }
 
-const gchar *
-ide_source_view_get_mode_name (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
-
-  if (priv->mode)
-    return ide_source_view_mode_get_name (priv->mode);
-
-  return NULL;
-}
-
-const gchar *
-ide_source_view_get_mode_display_name (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
-
-  return priv->display_name;
-}
-
 gboolean
 ide_source_view_get_overwrite_braces (IdeSourceView *self)
 {
@@ -7173,184 +7053,6 @@ ide_source_view_set_overwrite_braces (IdeSourceView *self,
     }
 }
 
-void
-ide_source_view_pop_snippet (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-  IdeSnippet *snippet;
-
-  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
-
-  if ((snippet = g_queue_pop_head (priv->snippets)))
-    {
-      g_autofree gchar *new_text = NULL;
-
-      new_text = ide_snippet_get_full_text (snippet);
-
-      ide_snippet_finish (snippet);
-      g_signal_emit (self, signals [POP_SNIPPET], 0, snippet);
-      g_object_unref (snippet);
-
-      if ((snippet = g_queue_peek_head (priv->snippets)))
-        {
-          ide_snippet_replace_current_chunk_text (snippet, new_text);
-          ide_snippet_unpause (snippet);
-          ide_snippet_move_next (snippet);
-        }
-    }
-
-  ide_source_view_invalidate_window (self);
-}
-
-void
-ide_source_view_clear_snippets (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
-
-  while (priv->snippets->length)
-    ide_source_view_pop_snippet (self);
-}
-
-/**
- * ide_source_view_push_snippet:
- * @self: An #IdeSourceView
- * @snippet: An #IdeSnippet.
- * @location: (allow-none): A location for the snippet or %NULL.
- *
- * Pushes a new snippet onto the source view.
- *
- * Since: 3.32
- */
-void
-ide_source_view_push_snippet (IdeSourceView     *self,
-                              IdeSnippet  *snippet,
-                              const GtkTextIter *location)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-  IdeSnippetContext *context;
-  IdeSnippet *previous;
-  GtkTextBuffer *buffer;
-  GtkTextIter iter;
-  gboolean has_more_tab_stops;
-  gboolean insert_spaces;
-  gchar *line_prefix;
-  guint tab_width;
-
-  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
-  g_return_if_fail (IDE_IS_SNIPPET (snippet));
-  g_return_if_fail (!location ||
-                    (gtk_text_iter_get_buffer (location) == (void*)priv->buffer));
-
-  if ((previous = g_queue_peek_head (priv->snippets)))
-    ide_snippet_pause (previous);
-
-  g_queue_push_head (priv->snippets, g_object_ref (snippet));
-
-  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self));
-
-  if (location != NULL)
-    iter = *location;
-  else
-    gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer));
-
-  context = ide_snippet_get_context (snippet);
-
-  insert_spaces = gtk_source_view_get_insert_spaces_instead_of_tabs (GTK_SOURCE_VIEW (self));
-  ide_snippet_context_set_use_spaces (context, insert_spaces);
-
-  tab_width = gtk_source_view_get_tab_width (GTK_SOURCE_VIEW (self));
-  ide_snippet_context_set_tab_width (context, tab_width);
-
-  line_prefix = text_iter_get_line_prefix (&iter);
-  ide_snippet_context_set_line_prefix (context, line_prefix);
-  g_free (line_prefix);
-
-  g_signal_emit (self, signals [PUSH_SNIPPET], 0, snippet, &iter);
-
-  gtk_text_buffer_begin_user_action (buffer);
-  ide_source_view_block_handlers (self);
-  has_more_tab_stops = ide_snippet_begin (snippet, buffer, &iter);
-  ide_source_view_scroll_to_insert (self);
-  ide_source_view_unblock_handlers (self);
-  gtk_text_buffer_end_user_action (buffer);
-
-  if (!ide_source_view_can_animate (self))
-    {
-      GtkTextMark *mark_begin;
-      GtkTextMark *mark_end;
-
-      mark_begin = ide_snippet_get_mark_begin (snippet);
-      mark_end = ide_snippet_get_mark_end (snippet);
-
-      if (mark_begin != NULL && mark_end != NULL)
-        {
-          GtkTextIter begin;
-          GtkTextIter end;
-
-          gtk_text_buffer_get_iter_at_mark (buffer, &begin, mark_begin);
-          gtk_text_buffer_get_iter_at_mark (buffer, &end, mark_end);
-
-          /*
-           * HACK:
-           *
-           * We need to let the GtkTextView catch up with us so that we can get
-           * a realistic area back for the location of the end iter.  Without
-           * pumping the main loop, GtkTextView will clamp the result to the
-           * height of the insert line.
-           */
-          while (gtk_events_pending ())
-            gtk_main_iteration ();
-
-          animate_expand (self, &begin, &end);
-        }
-    }
-
-  if (!has_more_tab_stops)
-    ide_source_view_pop_snippet (self);
-
-  ide_source_view_invalidate_window (self);
-}
-
-void
-ide_source_view_jump (IdeSourceView     *self,
-                      const GtkTextIter *from,
-                      const GtkTextIter *to)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  IDE_ENTRY;
-
-  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
-
-  if (priv->buffer != NULL &&
-      !ide_buffer_get_loading (priv->buffer))
-    {
-      GtkTextIter dummy_from;
-      GtkTextIter dummy_to;
-
-      if (from == NULL)
-        {
-          GtkTextMark *mark;
-
-          mark = gtk_text_buffer_get_insert (GTK_TEXT_BUFFER (priv->buffer));
-          gtk_text_buffer_get_iter_at_mark (GTK_TEXT_BUFFER (priv->buffer), &dummy_from, mark);
-          from = &dummy_from;
-        }
-
-      if (to == NULL)
-        {
-          dummy_to = *from;
-          to = &dummy_to;
-        }
-
-      g_signal_emit (self, signals [JUMP], 0, from, to);
-    }
-
-  IDE_EXIT;
-}
-
 /**
  * ide_source_view_get_scroll_offset:
  *
@@ -7954,63 +7656,6 @@ ide_source_view_get_visual_position (IdeSourceView *self,
     *line_column = gtk_source_view_get_visual_column (GTK_SOURCE_VIEW (self), &iter);
 }
 
-gint
-ide_source_view_get_count (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), 0);
-
-  return priv->count;
-}
-
-void
-ide_source_view_set_count (IdeSourceView *self,
-                           gint           count)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
-
-  if (count < 0)
-    count = 0;
-
-  if (count != priv->count)
-    {
-      priv->count = count;
-      g_object_notify_by_pspec (G_OBJECT (self), properties [PROP_COUNT]);
-    }
-}
-
-GtkTextMark *
-_ide_source_view_get_scroll_mark (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
-
-  return priv->scroll_mark;
-}
-
-/**
- * ide_source_view_get_current_snippet:
- *
- * Gets the current snippet if there is one, otherwise %NULL.
- *
- * Returns: (transfer none) (nullable): An #IdeSnippet or %NULL.
- *
- * Since: 3.32
- */
-IdeSnippet *
-ide_source_view_get_current_snippet (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
-
-  return g_queue_peek_head (priv->snippets);
-}
-
 gboolean
 ide_source_view_get_show_line_numbers (IdeSourceView *self)
 {
@@ -8065,56 +7710,6 @@ ide_source_view_set_show_relative_line_numbers (IdeSourceView *self,
     }
 }
 
-gboolean
-ide_source_view_is_processing_key (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), FALSE);
-
-  return priv->in_key_press > 0;
-}
-
-/**
- * ide_source_view_get_completion:
- * @self: a #IdeSourceView
- *
- * Get the completion for the #IdeSourceView
- *
- * Returns: (transfer none): an #IdeCompletion
- *
- * Since: 3.32
- */
-IdeCompletion *
-ide_source_view_get_completion (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), NULL);
-
-  return priv->completion;
-}
-
-/**
- * ide_source_view_has_snippet:
- * @self: a #IdeSourceView
- *
- * Checks if there is an active snippet.
- *
- * Returns: %TRUE if there is an active snippet.
- *
- * Since: 3.32
- */
-gboolean
-ide_source_view_has_snippet (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), FALSE);
-
-  return priv->snippets->length > 0;
-}
-
 /**
  * ide_source_view_set_gutter:
  * @self: a #IdeSourceView
@@ -8169,13 +7764,3 @@ ide_source_view_set_gutter (IdeSourceView *self,
   g_object_notify (G_OBJECT (self), "show-line-numbers");
   g_object_notify (G_OBJECT (self), "show-relative-line-numbers");
 }
-
-gboolean
-_ide_source_view_has_cursors (IdeSourceView *self)
-{
-  IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
-
-  g_return_val_if_fail (IDE_IS_SOURCE_VIEW (self), FALSE);
-
-  return priv->cursor != NULL && ide_cursor_is_enabled (priv->cursor);
-}
diff --git a/src/libide/sourceview/ide-source-view.h b/src/libide/sourceview/ide-source-view.h
index 5df1a0a7d..fda3ac3bf 100644
--- a/src/libide/sourceview/ide-source-view.h
+++ b/src/libide/sourceview/ide-source-view.h
@@ -27,15 +27,13 @@
 #include <gtksourceview/gtksource.h>
 #include <libide-code.h>
 
-#include "ide-completion-types.h"
 #include "ide-gutter.h"
-#include "ide-snippet-types.h"
 
 G_BEGIN_DECLS
 
 #define IDE_TYPE_SOURCE_VIEW (ide_source_view_get_type())
 
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 G_DECLARE_DERIVABLE_TYPE (IdeSourceView, ide_source_view, IDE, SOURCE_VIEW, GtkSourceView)
 
 typedef enum
@@ -45,212 +43,6 @@ typedef enum
   IDE_CURSOR_MATCH
 } IdeCursorType;
 
-/**
- * IdeSourceViewModeType:
- * @IDE_SOURCE_VIEW_MODE_TRANSIENT: Transient
- * @IDE_SOURCE_VIEW_MODE_PERMANENT: Permanent
- * @IDE_SOURCE_VIEW_MODE_MODAL: Modal
- *
- * The type of keyboard mode.
- *
- * Since: 3.32
- */
-typedef enum
-{
-  IDE_SOURCE_VIEW_MODE_TYPE_TRANSIENT,
-  IDE_SOURCE_VIEW_MODE_TYPE_PERMANENT,
-  IDE_SOURCE_VIEW_MODE_TYPE_MODAL
-} IdeSourceViewModeType;
-
-/**
- * IdeSourceViewTheatric:
- * @IDE_SOURCE_VIEW_THEATRIC_EXPAND: expand from selection location.
- * @IDE_SOURCE_VIEW_THEATRIC_SHRINK: shrink from selection location.
- *
- * The style of theatric.
- *
- * Since: 3.32
- */
-
-typedef enum
-{
-  IDE_SOURCE_VIEW_THEATRIC_EXPAND,
-  IDE_SOURCE_VIEW_THEATRIC_SHRINK,
-} IdeSourceViewTheatric;
-
-/**
- * IdeSourceViewMovement:
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_OFFSET: move to next character in the file.
- *   This includes line breaks.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_OFFSET: move to previous character in the file.
- *   This includes line breaks.
- * @IDE_SOURCE_VIEW_MOVEMENT_NTH_CHAR: move to nth character in line. Use a repeat to
- *   specify the target character within the line.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_CHAR: move to previous character in line.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_CHAR: move to next character in line.
- * @IDE_SOURCE_VIEW_MOVEMENT_FIRST_CHAR: move to line offset of zero.
- * @IDE_SOURCE_VIEW_MOVEMENT_FIRST_NONSPACE_CHAR: move to first non-whitespace character in line.
- * @IDE_SOURCE_VIEW_MOVEMENT_MIDDLE_CHAR: move to the middle character in the line.
- * @IDE_SOURCE_VIEW_MOVEMENT_LAST_CHAR: move to the last character in the line. this can be
- *   inclusve or exclusive. inclusive is equivalent to %IDE_SOURCE_VIEW_MOVEMENT_LINE_END.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_SUB_WORD_START: move to the next sub-word start, similar
- *   to the default in GtkTextView. This includes the underline character as a word break,
- *   as is common in Emacs.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_SUB_WORD_START: move to the previous sub-wird start,
- *   similar to the default in GtkTextView. This includes the underline character as a
- *   word break, as is common in Emacs.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_START: move to beginning of previous word.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_START: move to beginning of next word.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_END: move to end of previous word.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_END: move to end of next word.
- * @IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_START: move to beginning of sentance.
- * @IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_END: move to end of sentance.
- * @IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_START: move to start of paragraph.
- * @IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_END: move to end of paragraph.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_LINE: move to previous line, keeping line offset if possible.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_LINE: move to next line, keeping line offset if possible.
- * @IDE_SOURCE_VIEW_MOVEMENT_FIRST_LINE: move to first line in file, line offset of zero.
- * @IDE_SOURCE_VIEW_MOVEMENT_NTH_LINE: move to nth line, line offset of zero. use repeat to
- *   select the given line number.
- * @IDE_SOURCE_VIEW_MOVEMENT_LAST_LINE: move to last line in file, with line offset of zero.
- * @IDE_SOURCE_VIEW_MOVEMENT_LINE_PERCENTAGE: move to line based on percentage. Use repeat to
- *   specify the percentage, 0 to 100.
- * @IDE_SOURCE_VIEW_MOVEMENT_LINE_CHARS: special selection to select all line characters up to the
- *   cursor position. special care will be taken if the line is blank to select only the blank
- *   space if any. otherwise, the line break will be selected.
- * @IDE_SOURCE_VIEW_MOVEMENT_LINE_END: This will move you to the location of the newline at the
- *   end of the current line. It does not support exclusive will not select the newline, while
- *   inclusive will select the newline.
- * @IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_UP: move half a page up.
- * @IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_DOWN: move half a page down.
- * @IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_LEFT: move half a page left.
- * @IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_RIGHT: move half a page right.
- * @IDE_SOURCE_VIEW_MOVEMENT_PAGE_UP: move a full page up.
- * @IDE_SOURCE_VIEW_MOVEMENT_PAGE_UP_LINES: move a full page up, but extend to whole line.
- * @IDE_SOURCE_VIEW_MOVEMENT_PAGE_DOWN: move a full page down.
- * @IDE_SOURCE_VIEW_MOVEMENT_PAGE_DOWN_LINES: move a full page down, but extend to whole line.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_UP: move to viewport up by visible line, adjusting cursor
- *   to stay on screen if necessary.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_DOWN: move to viewport down by visible line, adjusting cursor
- *   to stay on screen if necessary.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_LEFT: move to viewport left by visible char, adjusting cursor
- *   to stay on screen if necessary.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_RIGHT: move to viewport right by visible char, adjusting cursor
- *   to stay on screen if necessary.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_TOP: move to the top of the screen.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_MIDDLE: move to the middle of the screen.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCREEN_BOTTOM: move to the bottom of the screen.
- * @IDE_SOURCE_VIEW_MOVEMENT_MATCH_SPECIAL: move to match of brace, bracket, comment.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_TOP: scroll until insert cursor or [count]th line is at screen 
top.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_CENTER: scroll until insert cursor or [count]th line is at screen 
center.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_BOTTOM: scroll until insert cursor or [count]th line is at screen 
bottom.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_LEFT: scroll until insert cursor or [count]th char is at screen 
left.
- * @IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_RIGHT: scroll until insert cursor or [count]th char is at screen 
right.
- * @IDE_SOURCE_VIEW_MOVEMENT_NEXT_MATCH_SEARCH_CHAR: move to the next matching char according to f and t in 
vim.
- * @IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_MATCH_SEARCH_CHAR: move to the previous matching char according to F 
and T in vim.
- * @IDE_SOURCE_VIEW_MOVEMENT_SMART_HOME: Moves to the first non-whitespace character unless
- *   already positioned there. Otherwise, it moves to the first character.
- *
- * The type of movement.
- *
- * Some of these movements may be modified by using the modify-repeat action.
- * First adjust the repeat and then perform the "movement" action.
- *
- * Since: 3.32
- */
-typedef enum
-{
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_OFFSET,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_OFFSET,
-
-  IDE_SOURCE_VIEW_MOVEMENT_NTH_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_FIRST_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_FIRST_NONSPACE_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_MIDDLE_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_LAST_CHAR,
-
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_START,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_START,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_SUB_WORD_START,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_SUB_WORD_START,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_START,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_START,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_END,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_END,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_END,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_END,
-
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_START_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_START_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_START_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_START_NEWLINE_STOP,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_WORD_END_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_FULL_WORD_END_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_WORD_END_NEWLINE_STOP,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_FULL_WORD_END_NEWLINE_STOP,
-
-  IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_START,
-  IDE_SOURCE_VIEW_MOVEMENT_SENTENCE_END,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_START,
-  IDE_SOURCE_VIEW_MOVEMENT_PARAGRAPH_END,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_LINE,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_LINE,
-
-  IDE_SOURCE_VIEW_MOVEMENT_FIRST_LINE,
-  IDE_SOURCE_VIEW_MOVEMENT_NTH_LINE,
-  IDE_SOURCE_VIEW_MOVEMENT_LAST_LINE,
-  IDE_SOURCE_VIEW_MOVEMENT_LINE_PERCENTAGE,
-
-  IDE_SOURCE_VIEW_MOVEMENT_LINE_CHARS,
-  IDE_SOURCE_VIEW_MOVEMENT_LINE_END,
-
-  IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_UP,
-  IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_DOWN,
-  IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_LEFT,
-  IDE_SOURCE_VIEW_MOVEMENT_HALF_PAGE_RIGHT,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PAGE_UP,
-  IDE_SOURCE_VIEW_MOVEMENT_PAGE_UP_LINES,
-  IDE_SOURCE_VIEW_MOVEMENT_PAGE_DOWN,
-  IDE_SOURCE_VIEW_MOVEMENT_PAGE_DOWN_LINES,
-
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_UP,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_DOWN,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_LEFT,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_RIGHT,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_TOP,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_MIDDLE,
-  IDE_SOURCE_VIEW_MOVEMENT_SCREEN_BOTTOM,
-
-  IDE_SOURCE_VIEW_MOVEMENT_MATCH_SPECIAL,
-
-  IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_TOP,
-  IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_CENTER,
-  IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_BOTTOM,
-  IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_LEFT,
-  IDE_SOURCE_VIEW_MOVEMENT_SCROLL_SCREEN_RIGHT,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_UNMATCHED_BRACE,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_UNMATCHED_BRACE,
-
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_UNMATCHED_PAREN,
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_UNMATCHED_PAREN,
-
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_MATCH_MODIFIER,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_MATCH_MODIFIER,
-
-  IDE_SOURCE_VIEW_MOVEMENT_NEXT_MATCH_SEARCH_CHAR,
-  IDE_SOURCE_VIEW_MOVEMENT_PREVIOUS_MATCH_SEARCH_CHAR,
-
-  IDE_SOURCE_VIEW_MOVEMENT_SMART_HOME,
-} IdeSourceViewMovement;
-
 typedef enum
 {
   IDE_SOURCE_SCROLL_NONE = 0,
@@ -263,226 +55,107 @@ struct _IdeSourceViewClass
 {
   GtkSourceViewClass parent_class;
 
-  void (*append_to_count)             (IdeSourceView           *self,
-                                       gint                     digit);
-  void (*auto_indent)                 (IdeSourceView           *self);
-  void (*begin_macro)                 (IdeSourceView           *self);
-  void (*capture_modifier)            (IdeSourceView           *self);
-  void (*clear_count)                 (IdeSourceView           *self);
-  void (*clear_modifier)              (IdeSourceView           *self);
-  void (*clear_search)                (IdeSourceView           *self);
-  void (*clear_selection)             (IdeSourceView           *self);
-  void (*clear_snippets)              (IdeSourceView           *self);
-  void (*cycle_completion)            (IdeSourceView           *self,
-                                       GtkDirectionType         direction);
-  void (*delete_selection)            (IdeSourceView           *self);
-  void (*end_macro)                   (IdeSourceView           *self);
-  void (*focus_location)              (IdeSourceView           *self,
-                                       IdeLocation       *location);
-  void (*goto_definition)             (IdeSourceView           *self);
-  void (*hide_completion)             (IdeSourceView           *self);
-  void (*indent_selection)            (IdeSourceView           *self,
-                                       gint                     level);
-  void (*insert_at_cursor_and_indent) (IdeSourceView           *self,
-                                       const gchar             *str);
-  void (*insert_modifier)             (IdeSourceView           *self,
-                                       gboolean                 use_count);
-  void (*jump)                        (IdeSourceView           *self,
-                                       const GtkTextIter       *from,
-                                       const GtkTextIter       *to);
-  void (*movement)                    (IdeSourceView           *self,
-                                       IdeSourceViewMovement    movement,
-                                       gboolean                 extend_selection,
-                                       gboolean                 exclusive,
-                                       gboolean                 apply_count);
-  void (*move_error)                  (IdeSourceView           *self,
-                                       GtkDirectionType         dir);
-  void (*move_search)                 (IdeSourceView           *self,
-                                       GtkDirectionType         dir,
-                                       gboolean                 extend_selection,
-                                       gboolean                 select_match,
-                                       gboolean                 exclusive,
-                                       gboolean                 apply_count,
-                                       gboolean                 at_word_boundaries);
-  void (*paste_clipboard_extended)    (IdeSourceView           *self,
-                                       gboolean                 smart_lines,
-                                       gboolean                 after_cursor,
-                                       gboolean                 place_cursor_at_original);
-  void (*push_selection)              (IdeSourceView           *self);
-  void (*pop_selection)               (IdeSourceView           *self);
-  void (*rebuild_highlight)           (IdeSourceView           *self);
-  void (*replay_macro)                (IdeSourceView           *self,
-                                       gboolean                 use_count);
-  void (*request_documentation)       (IdeSourceView           *self);
-  void (*restore_insert_mark)         (IdeSourceView           *self);
-  void (*save_command)                (IdeSourceView           *self);
-  void (*save_search_char)            (IdeSourceView           *self);
-  void (*save_insert_mark)            (IdeSourceView           *self);
-  void (*select_inner)                (IdeSourceView           *self,
-                                       const gchar             *inner_left,
-                                       const gchar             *inner_right,
-                                       gboolean                 exclusive,
-                                       gboolean                 string_mode);
-  void (*select_tag)                  (IdeSourceView           *self,
-                                       gboolean                 exclusive);
-  void (*selection_theatric)          (IdeSourceView           *self,
-                                       IdeSourceViewTheatric    theatric);
-  void (*set_mode)                    (IdeSourceView           *self,
-                                       const gchar             *mode,
-                                       IdeSourceViewModeType    type);
-  void (*set_overwrite)               (IdeSourceView           *self,
-                                       gboolean                 overwrite);
-  void (*set_search_text)             (IdeSourceView           *self,
-                                       const gchar             *search_text,
-                                       gboolean                 from_selection);
-  void (*sort)                        (IdeSourceView           *self,
-                                       gboolean                 ignore_case,
-                                       gboolean                 reverse);
-  void (*swap_selection_bounds)       (IdeSourceView           *self);
-  void (*increase_font_size)          (IdeSourceView           *self);
-  void (*decrease_font_size)          (IdeSourceView           *self);
-  void (*reset_font_size)             (IdeSourceView           *self);
-  void (*begin_rename)                (IdeSourceView           *self);
-  void (*add_cursor)                  (IdeSourceView           *self,
-                                       guint                    type);
-  void (*remove_cursors)              (IdeSourceView           *self);
-  void (*copy_clipboard_extended)     (IdeSourceView           *self);
-
-  /*< private >*/
-  gpointer _reserved[32];
+  void (*focus_location)        (IdeSourceView           *self,
+                                 IdeLocation             *location);
+  void (*goto_definition)       (IdeSourceView           *self);
+  void (*move_error)            (IdeSourceView           *self,
+                                 GtkDirectionType         dir);
+  void (*rebuild_highlight)     (IdeSourceView           *self);
+  void (*request_documentation) (IdeSourceView           *self);
+  void (*sort)                  (IdeSourceView           *self,
+                                 gboolean                 ignore_case,
+                                 gboolean                 reverse);
+  void (*begin_rename)          (IdeSourceView           *self);
+  void (*add_cursor)            (IdeSourceView           *self,
+                                 guint                    type);
+  void (*remove_cursors)        (IdeSourceView           *self);
 };
 
-IDE_AVAILABLE_IN_3_32
-gboolean                    ide_source_view_has_snippet                    (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_clear_snippets                 (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-IdeSnippet                 *ide_source_view_get_current_snippet            (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 guint                       ide_source_view_get_visual_column              (IdeSourceView              *self,
                                                                             const GtkTextIter          
*location);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_get_visual_position            (IdeSourceView              *self,
                                                                             guint                      *line,
                                                                             guint                      
*line_column);
-IDE_AVAILABLE_IN_3_32
-gint                        ide_source_view_get_count                      (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 IdeFileSettings            *ide_source_view_get_file_settings              (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 const PangoFontDescription *ide_source_view_get_font_desc                  (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 PangoFontDescription       *ide_source_view_get_scaled_font_desc           (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_highlight_current_line     (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_insert_matching_brace      (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_get_iter_at_visual_column      (IdeSourceView              *self,
                                                                             guint                       
column,
                                                                             GtkTextIter                
*location);
-IDE_AVAILABLE_IN_3_32
-const gchar                *ide_source_view_get_mode_display_name          (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-const gchar                *ide_source_view_get_mode_name                  (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_overwrite_braces           (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_overwrite                  (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 guint                       ide_source_view_get_scroll_offset              (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_show_grid_lines            (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_show_line_changes          (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_show_line_diagnostics      (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_show_line_numbers          (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_36
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_get_show_relative_line_numbers (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-gboolean                    ide_source_view_get_snippet_completion         (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-gboolean                    ide_source_view_get_spell_checking             (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_get_visible_rect               (IdeSourceView              *self,
                                                                             GdkRectangle               
*visible_rect);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_jump                           (IdeSourceView              *self,
-                                                                            const GtkTextIter          *from,
-                                                                            const GtkTextIter          *to);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_pop_snippet                    (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_push_snippet                   (IdeSourceView              *self,
-                                                                            IdeSnippet                 
*snippet,
-                                                                            const GtkTextIter          
*location);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_rollback_search                (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_save_search                    (IdeSourceView              *self,
-                                                                            const gchar                
*search_text);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_set_count                      (IdeSourceView              *self,
-                                                                            gint                        
count);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_font_desc                  (IdeSourceView              *self,
                                                                             const PangoFontDescription 
*font_desc);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_font_name                  (IdeSourceView              *self,
                                                                             const gchar                
*font_name);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_highlight_current_line     (IdeSourceView              *self,
                                                                             gboolean                    
highlight_current_line);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_insert_matching_brace      (IdeSourceView              *self,
                                                                             gboolean                    
insert_matching_brace);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_set_misspelled_word            (IdeSourceView              *self,
-                                                                            GtkTextIter                
*start,
-                                                                            GtkTextIter                *end);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_overwrite_braces           (IdeSourceView              *self,
                                                                             gboolean                    
overwrite_braces);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_scroll_offset              (IdeSourceView              *self,
                                                                             guint                       
scroll_offset);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_show_grid_lines            (IdeSourceView              *self,
                                                                             gboolean                    
show_grid_lines);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_show_line_changes          (IdeSourceView              *self,
                                                                             gboolean                    
show_line_changes);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_show_line_diagnostics      (IdeSourceView              *self,
                                                                             gboolean                    
show_line_diagnostics);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_show_line_numbers          (IdeSourceView              *self,
                                                                             gboolean                    
show_line_numbers);
-IDE_AVAILABLE_IN_3_36
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_show_relative_line_numbers (IdeSourceView              *self,
                                                                             gboolean                    
show_relative_line_numbers);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_set_snippet_completion         (IdeSourceView              *self,
-                                                                            gboolean                    
snippet_completion);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_set_spell_checking             (IdeSourceView              *self,
-                                                                            gboolean                    
enable);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_move_mark_onscreen             (IdeSourceView              *self,
                                                                             GtkTextMark                
*mark);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 gboolean                    ide_source_view_place_cursor_onscreen          (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-void                        ide_source_view_clear_search                   (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_scroll_mark_onscreen           (IdeSourceView              *self,
                                                                             GtkTextMark                *mark,
                                                                             IdeSourceScrollAlign        
use_align,
                                                                             gdouble                     
alignx,
                                                                             gdouble                     
aligny);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_scroll_to_mark                 (IdeSourceView              *self,
                                                                             GtkTextMark                *mark,
                                                                             gdouble                     
within_margin,
@@ -490,7 +163,7 @@ void                        ide_source_view_scroll_to_mark                 (IdeS
                                                                             gdouble                     
xalign,
                                                                             gdouble                     
yalign,
                                                                             gboolean                    
animate_scroll);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_scroll_to_iter                 (IdeSourceView              *self,
                                                                             const GtkTextIter          *iter,
                                                                             gdouble                     
within_margin,
@@ -498,13 +171,9 @@ void                        ide_source_view_scroll_to_iter                 (IdeS
                                                                             gdouble                     
xalign,
                                                                             gdouble                     
yalign,
                                                                             gboolean                    
animate_scroll);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_scroll_to_insert               (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-IdeCompletion              *ide_source_view_get_completion                 (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
-gboolean                    ide_source_view_is_processing_key              (IdeSourceView              
*self);
-IDE_AVAILABLE_IN_3_32
+IDE_AVAILABLE_ALL
 void                        ide_source_view_set_gutter                     (IdeSourceView              *self,
                                                                             IdeGutter                  
*gutter);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]