## IAnjutaProvider IAnjutaProvider — Provider for autocompletion features |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

    #include <libanjuta/interfaces/ianjuta-provider.h>

    #define             IANJUTA_PROVIDER_ERROR
    struct              IAnjutaProviderIface;
    GQuark              ianjuta_provider_error_quark        (void);
    void                ianjuta_provider_activate           (IAnjutaProvider *obj,
                                                             IAnjutaIterable *iter,
                                                             gpointer data,
                                                             GError **err);
    const gchar *       ianjuta_provider_get_name           (IAnjutaProvider *obj,
                                                             GError **err);
    IAnjutaIterable *   ianjuta_provider_get_start_iter     (IAnjutaProvider *obj,
                                                             GError **err);
    void                ianjuta_provider_populate           (IAnjutaProvider *obj,
                                                             IAnjutaIterable *iter,
                                                             GError **err);

## Description

## Details

### IANJUTA_PROVIDER_ERROR

    #define IANJUTA_PROVIDER_ERROR ianjuta_provider_error_quark()

### struct IAnjutaProviderIface

    struct IAnjutaProviderIface {
    	GTypeInterface g_iface;

    	void (*activate) (IAnjutaProvider *obj, IAnjutaIterable* iter,  gpointer data, GError **err);
    	const gchar* (*get_name) (IAnjutaProvider *obj, GError **err);
    	IAnjutaIterable* (*get_start_iter) (IAnjutaProvider *obj, GError **err);
    	void (*populate) (IAnjutaProvider *obj, IAnjutaIterable* iter, GError **err);
    };

### ianjuta_provider_error_quark ()

    GQuark              ianjuta_provider_error_quark        (void);

### ianjuta_provider_activate ()

    void                ianjuta_provider_activate           (IAnjutaProvider *obj,
                                                             IAnjutaIterable *iter,
                                                             gpointer data,
                                                             GError **err);

Show completion for the context at position `iter`

`obj` : | Self
`iter` : | position where the completion occurs
`data` : | data assigned to the proposal
`err` : | Error propagation and reporting.

### ianjuta_provider_get_name ()

    const gchar *       ianjuta_provider_get_name           (IAnjutaProvider *obj,
                                                             GError **err);

Return a (translatable) name for the provider

`obj` : | Self

### ianjuta_provider_get_start_iter ()

    IAnjutaIterable *   ianjuta_provider_get_start_iter     (IAnjutaProvider *obj,
                                                             GError **err);

Get the iter where the current completion started

`obj` : | Self
`err` : | Error propagation and reporting.
Returns : | current start iter. [transfer none]

### ianjuta_provider_populate ()

    void                ianjuta_provider_populate           (IAnjutaProvider *obj,
                                                             IAnjutaIterable *iter,
                                                             GError **err);

Show completion for the context at position `iter`. The provider should call ianjuta_editor_assist_proposals here to add proposals to the list.

Note that this is called after every character typed and the list of proposals has to be completely renewed.

`obj` : | Self
`iter` : | the text iter where the provider should be populated
`err` : | Error propagation and reporting.