void
ide_source_snippets_add (IdeSourceSnippets *snippets,
                        IdeSourceSnippet  *snippet)
{
  const gchar *trigger;

  g_return_if_fail (IDE_IS_SOURCE_SNIPPETS (snippets));
  g_return_if_fail (IDE_IS_SOURCE_SNIPPET (snippet));

  trigger = ide_source_snippet_get_trigger (snippet);
  trie_insert (snippets->snippets, trigger, g_object_ref (snippet));
}
static gchar *
get_label (GtkSourceCompletionProposal *p)
{
  IdeSourceSnippetCompletionItem *item = IDE_SOURCE_SNIPPET_COMPLETION_ITEM (p);
  const gchar *trigger = NULL;
  const gchar *description = NULL;

  if (item->priv->snippet)
    {
      trigger = ide_source_snippet_get_trigger (item->priv->snippet);
      description = ide_source_snippet_get_description (item->priv->snippet);
    }

  if (description) 
    return g_strdup_printf ("%s: %s", trigger, description);
  else
    return g_strdup(trigger);
}