DhCompletion

DhCompletion — Support for automatic string completion

Types and Values

struct DhCompletion

Object Hierarchy

    GObject
    ╰── DhCompletion

Includes

#include <devhelp/devhelp.h>

Description

DhCompletion is a basic replacement for GCompletion. GCompletion (part of GLib) is deprecated, and doesn't use a great data structure (a simple GList). DhCompletion uses a GSequence instead, so once the data is sorted it should be faster. DhCompletion works only with UTF-8 strings, and copies the strings.

DhCompletion is add-only, strings cannot be removed. But with dh_completion_aggregate_complete(), a DhCompletion object can be removed from the list.

Functions

dh_completion_new ()

DhCompletion *
dh_completion_new (void);

Returns

a new DhCompletion object.

Since: 3.28


dh_completion_add_string ()

void
dh_completion_add_string (DhCompletion *completion,
                          const gchar *str);

Adds a string to the completion object.

After adding all the strings you need to call dh_completion_sort().

Parameters

completion

a DhCompletion.

 

str

a string.

 

Since: 3.28


dh_completion_sort ()

void
dh_completion_sort (DhCompletion *completion);

Sorts all the strings. It is required to call this function after adding strings with dh_completion_add_string().

Parameters

completion

a DhCompletion.

 

Since: 3.28


dh_completion_complete ()

gchar *
dh_completion_complete (DhCompletion *completion,
                        const gchar *prefix);

This function does the equivalent of:

  1. Searches the data structure of completion to find all strings that have prefix as prefix.

  2. From the list found at step 1, find the longest prefix that still matches all the strings in the list.

This function assumes that prefix and the strings contained in completion are in UTF-8. If all the strings are valid UTF-8, then the return value will also be valid UTF-8 (it won't return a partial multi-byte character).

Parameters

completion

a DhCompletion.

 

prefix

the string to complete.

 

Returns

the completed prefix, or NULL if a longer prefix has not been found. Free with g_free() when no longer needed.

[transfer full][nullable]

Since: 3.28


dh_completion_aggregate_complete ()

gchar *
dh_completion_aggregate_complete (GList *completion_objects,
                                  const gchar *prefix);

The same as dh_completion_complete(), but aggregated for several DhCompletion objects.

Parameters

completion_objects

a GList of DhCompletion objects.

[element-type DhCompletion][nullable]

prefix

the string to complete.

 

Returns

the completed prefix, or NULL if a longer prefix has not been found. Free with g_free() when no longer needed.

[transfer full][nullable]

Since: 3.28

Types and Values

struct DhCompletion

struct DhCompletion;