## AnjutaLanguageProvider AnjutaLanguageProvider |

## Synopsis

    struct              AnjutaLanguageProposalData;
    AnjutaLanguageProposalData * anjuta_language_proposal_data_new
                                                            (gchar *name);
    void                anjuta_language_proposal_data_free  (AnjutaLanguageProposalData *data);
    struct              AnjutaLanguageProviderClass;
    void                anjuta_language_provider_install    (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditor *ieditor,
                                                             GSettings *settings);
    gchar *             anjuta_language_provider_get_pre_word
                                                            (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditor *editor,
                                                             IAnjutaIterable *iter,
                                                             IAnjutaIterable **start_iter,
                                                             const gchar *word_characters);
    gchar *             anjuta_language_provider_get_calltip_context
                                                            (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditorTip *itip,
                                                             IAnjutaIterable *iter,
                                                             const gchar *scope_context_ch);
    void                anjuta_language_provider_activate   (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             IAnjutaIterable *iter,
                                                             gpointer data);
    void                anjuta_language_provider_populate   (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             IAnjutaIterable *cursor);
    void                anjuta_language_provider_proposals  (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             GList *proposals,
                                                             const gchar *pre_word,
                                                             gboolean finished);
    IAnjutaIterable *   anjuta_language_provider_get_start_iter
                                                            (AnjutaLanguageProvider *lang_prov);
                        AnjutaLanguageProviderPriv;

## Object Hierarchy

      GBoxed
       +----AnjutaLanguageProposalData

## Description

## Details

### struct AnjutaLanguageProposalData

    struct AnjutaLanguageProposalData {
    	gchar* name;
    	gchar* info;
    	gboolean is_func;
    	gboolean has_para;
    	IAnjutaSymbolType type;
    };

gchar *`name`; | Name of the object
gchar *`info`; | Info about the object
gboolean `is_func`; | If this is a function
gboolean `has_para`; | If the function has at least one parameters
IAnjutaSymbolType `type`; | Type of the object

### anjuta_language_proposal_data_new ()

    AnjutaLanguageProposalData * anjuta_language_proposal_data_new
                                                            (gchar *name);

`name` : | Name of the object
Returns : | Creates a new AnjutaLanguageProposalData object. [transfer full]

### anjuta_language_proposal_data_free ()

    void                anjuta_language_proposal_data_free  (AnjutaLanguageProposalData *data);

Free the given proposal data

`data` : | a AnjutaLanguageProposalData

### struct AnjutaLanguageProviderClass

    struct AnjutaLanguageProviderClass {
    	GObjectClass parent_class;
    };

### anjuta_language_provider_install ()

    void                anjuta_language_provider_install    (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditor *ieditor,
                                                             GSettings *settings);

Install the settings for AnjutaLanguageProvider

`lang_prov` : | Self
`ieditor` : | IAnjutaEditor object. [type GObject]
`settings` : | the settings

### anjuta_language_provider_get_pre_word ()

    gchar *             anjuta_language_provider_get_pre_word
                                                            (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditor *editor,
                                                             IAnjutaIterable *iter,
                                                             IAnjutaIterable **start_iter,
                                                             const gchar *word_characters);

Search for the current typed word

`lang_prov` : | Self
`editor` : | IAnjutaEditor object. [type GObject]
`iter` : | current cursor position. [type GObject]
`start_iter` : | return location for the start_iter (if a preword was found). [type GObject]
Returns : | The current word (needs to be freed) or `NULL` if no word was found. [transfer full][allow-none]

### anjuta_language_provider_get_calltip_context ()

    gchar *             anjuta_language_provider_get_calltip_context
                                                            (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaEditorTip *itip,
                                                             IAnjutaIterable *iter,
                                                             const gchar *scope_context_ch);

Searches for a calltip context

`itip` : | whether a tooltip is crrently shown. [type GObject]
`iter` : | current cursor position. [type GObject]
`scope_context_ch` : | language-specific context characters the end is marked with a '0' character
Returns : | name of the method to show a calltip for or `NULL`

### anjuta_language_provider_activate ()

    void                anjuta_language_provider_activate   (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             IAnjutaIterable *iter,
                                                             gpointer data);

Complete the function name

`lang_prov` : | Self
`iprov` : | IAnjutaProvider object. [type GObject]
`iter` : | the cursor. [type GObject]
`data` : | the ProposalData

### anjuta_language_provider_populate ()

    void                anjuta_language_provider_populate   (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             IAnjutaIterable *cursor);

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

`lang_prov` : | Self
`iprov` : | IAnjutaProvider object. [type GObject]
`cursor` : | the text iter where the provider should be populated. [type GObject]

### anjuta_language_provider_proposals ()

    void                anjuta_language_provider_proposals  (AnjutaLanguageProvider *lang_prov,
                                                             IAnjutaProvider *iprov,
                                                             GList *proposals,
                                                             const gchar *pre_word,
                                                             gboolean finished);

Add the list of proposals for the current population. You can add proposals async as long as the last call sets finished to TRUE. That is usually called by the IAnjutaLanguageProvider after it was triggered by `ianjuta_language_provider_populate_completions()`

`lang_prov` : | Self
`iprov` : | IAnjutaProvider object. [type GObject]
`proposals` : | a list of IAnjutaProposals. [element-type IAnjutaEditorAssistProposal]
`pre_word` : | the word before the cursor
`finished` : | whether is was the last call in an async operation

### anjuta_language_provider_get_start_iter ()

    IAnjutaIterable *   anjuta_language_provider_get_start_iter
                                                            (AnjutaLanguageProvider *lang_prov);

`lang_prov` : | Self
Returns : | the start iter. [transfer full]

### AnjutaLanguageProviderPriv

    typedef struct _AnjutaLanguageProviderPriv AnjutaLanguageProviderPriv;