Ejemplo n.º 1
0
static void
ide_source_snippet_chunk_set_property (GObject      *object,
                                       guint         prop_id,
                                       const GValue *value,
                                       GParamSpec   *pspec)
{
  IdeSourceSnippetChunk *chunk = IDE_SOURCE_SNIPPET_CHUNK (object);

  switch (prop_id)
    {
    case PROP_CONTEXT:
      ide_source_snippet_chunk_set_context (chunk, g_value_get_object (value));
      break;

    case PROP_TAB_STOP:
      ide_source_snippet_chunk_set_tab_stop (chunk, g_value_get_int (value));
      break;

    case PROP_SPEC:
      ide_source_snippet_chunk_set_spec (chunk, g_value_get_string (value));
      break;

    case PROP_TEXT:
      ide_source_snippet_chunk_set_text (chunk, g_value_get_string (value));
      break;

    case PROP_TEXT_SET:
      ide_source_snippet_chunk_set_text_set (chunk, g_value_get_boolean (value));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
    }
}
static void
ide_source_snippet_parser_do_part_linked (IdeSourceSnippetParser *parser,
                                          gint                    n)
{
  IdeSourceSnippetChunk *chunk;
  gchar text[12];

  chunk = ide_source_snippet_chunk_new ();
  if (n)
    {
      g_snprintf (text, sizeof text, "$%d", n);
      text[sizeof text - 1] = '\0';
      ide_source_snippet_chunk_set_spec (chunk, text);
    }
  else
    {
      ide_source_snippet_chunk_set_spec (chunk, "");
      ide_source_snippet_chunk_set_tab_stop (chunk, 0);
    }
  parser->chunks = g_list_append (parser->chunks, chunk);
}
static void
ide_source_snippet_parser_flush_chunk (IdeSourceSnippetParser *parser)
{
  IdeSourceSnippetChunk *chunk;

  if (parser->cur_text->len)
    {
      chunk = ide_source_snippet_chunk_new ();
      ide_source_snippet_chunk_set_spec (chunk, parser->cur_text->str);
      parser->chunks = g_list_append (parser->chunks, chunk);
      g_string_truncate (parser->cur_text, 0);
    }
}
static void
ide_source_snippet_parser_do_part_named (IdeSourceSnippetParser *parser,
                                         const gchar            *name)
{
  IdeSourceSnippetChunk *chunk;
  gchar *spec;

  chunk = ide_source_snippet_chunk_new ();
  spec = g_strdup_printf ("$%s", name);
  ide_source_snippet_chunk_set_spec (chunk, spec);
  ide_source_snippet_chunk_set_tab_stop (chunk, -1);
  parser->chunks = g_list_append (parser->chunks, chunk);
  g_free (spec);
}
static void
ide_source_snippet_parser_do_part_n (IdeSourceSnippetParser *parser,
                                     gint                    n,
                                     const gchar            *inner)
{
  IdeSourceSnippetChunk *chunk;

  g_return_if_fail (IDE_IS_SOURCE_SNIPPET_PARSER (parser));
  g_return_if_fail (n >= -1);
  g_return_if_fail (inner);

  chunk = ide_source_snippet_chunk_new ();
  ide_source_snippet_chunk_set_spec (chunk, n ? inner : "");
  ide_source_snippet_chunk_set_tab_stop (chunk, n);
  parser->chunks = g_list_append (parser->chunks, chunk);
}