## IAnjutaLanguage IAnjutaLanguage — Interface to manage multiple programming languages |

## Stability Level

Unstable, unless otherwise indicated

## Synopsis

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

    #define             IANJUTA_LANGUAGE_ERROR
    typedef             IAnjutaLanguageId;
    struct              IAnjutaLanguageIface;
    GQuark              ianjuta_language_error_quark        (void);
    IAnjutaLanguageId   ianjuta_language_get_from_editor    (IAnjutaLanguage *obj,
                                                             IAnjutaEditorLanguage *editor,
                                                             GError **err);
    IAnjutaLanguageId   ianjuta_language_get_from_mime_type (IAnjutaLanguage *obj,
                                                             const gchar *mime_type,
                                                             GError **err);
    IAnjutaLanguageId   ianjuta_language_get_from_string    (IAnjutaLanguage *obj,
                                                             const gchar *string,
                                                             GError **err);
    GList *             ianjuta_language_get_languages      (IAnjutaLanguage *obj,
                                                             GError **err);
    const gchar *       ianjuta_language_get_make_target    (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);
    GList *             ianjuta_language_get_mime_types     (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);
    const gchar *       ianjuta_language_get_name           (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);
    const gchar *       ianjuta_language_get_name_from_editor
                                                            (IAnjutaLanguage *obj,
                                                             IAnjutaEditorLanguage *editor,
                                                             GError **err);
    GList *             ianjuta_language_get_strings        (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);

## Description

## Details

### IANJUTA_LANGUAGE_ERROR

    #define IANJUTA_LANGUAGE_ERROR ianjuta_language_error_quark()

### IAnjutaLanguageId

    typedef gint IAnjutaLanguageId;

### struct IAnjutaLanguageIface

    struct IAnjutaLanguageIface {
    	GTypeInterface g_iface;

    	IAnjutaLanguageId (*get_from_editor) (IAnjutaLanguage *obj, IAnjutaEditorLanguage* editor, GError **err);
    	IAnjutaLanguageId (*get_from_mime_type) (IAnjutaLanguage *obj, const gchar* mime_type, GError **err);
    	IAnjutaLanguageId (*get_from_string) (IAnjutaLanguage *obj, const gchar* string, GError **err);
    	GList* (*get_languages) (IAnjutaLanguage *obj, GError **err);
    	const gchar* (*get_make_target) (IAnjutaLanguage *obj, IAnjutaLanguageId id, GError **err);
    	GList* (*get_mime_types) (IAnjutaLanguage *obj, IAnjutaLanguageId id, GError **err);
    	const gchar* (*get_name) (IAnjutaLanguage *obj, IAnjutaLanguageId id, GError **err);
    	const gchar* (*get_name_from_editor) (IAnjutaLanguage *obj, IAnjutaEditorLanguage* editor, GError **err);
    	GList* (*get_strings) (IAnjutaLanguage *obj, IAnjutaLanguageId id, GError **err);
    };

### ianjuta_language_error_quark ()

    GQuark              ianjuta_language_error_quark        (void);

### ianjuta_language_get_from_editor ()

    IAnjutaLanguageId   ianjuta_language_get_from_editor    (IAnjutaLanguage *obj,
                                                             IAnjutaEditorLanguage *editor,
                                                             GError **err);

Conviniece method to get the id directly from the editor

`obj` : | Self
`editor` : | An object implementing IAnjutaEditorLanguage
`err` : | Error propagation
Returns : | A valid language id or 0

### ianjuta_language_get_from_mime_type ()

    IAnjutaLanguageId   ianjuta_language_get_from_mime_type (IAnjutaLanguage *obj,
                                                             const gchar *mime_type,
                                                             GError **err);

### ianjuta_language_get_from_string ()

    IAnjutaLanguageId   ianjuta_language_get_from_string    (IAnjutaLanguage *obj,
                                                             const gchar *string,
                                                             GError **err);

### ianjuta_language_get_languages ()

    GList *             ianjuta_language_get_languages      (IAnjutaLanguage *obj,
                                                             GError **err);

`obj` : | Self
`err` : | Error propagation
Returns : | a list of ids of the available languages. Use `GPOINTER_TO_INT()` to receive them. The list but not the values should be free'd with `g_list_free()`. [element-type int][transfer container]

### ianjuta_language_get_make_target ()

    const gchar *       ianjuta_language_get_make_target    (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);

`obj` : | Self
`id` : | A valid language id
Returns : | The suffix for the file thats needs to be passed to make to compile the file, e.g. ".o" for C

### ianjuta_language_get_mime_types ()

    GList *             ianjuta_language_get_mime_types     (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);

`obj` : | Self
`id` : | A valid language id
Returns : | A list of mime-types that represent this language. [element-type utf8]

### ianjuta_language_get_name ()

    const gchar *       ianjuta_language_get_name           (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);

`obj` : | Self
`id` : | A valid language id
Returns : | The main name of the language. When you call `ianjuta_language_from_string()` before that method the string you get here might be different to the one you passed because the language might have multiple string representations

### ianjuta_language_get_name_from_editor ()

    const gchar *       ianjuta_language_get_name_from_editor
                                                            (IAnjutaLanguage *obj,
                                                             IAnjutaEditorLanguage *editor,
                                                             GError **err);

Conviniece method to get the name directly from the editor

`obj` : | Self
`editor` : | An object implementing IAnjutaEditorLanguage
`err` : | Error propagation
Returns : | A language name or NULL

### ianjuta_language_get_strings ()

    GList *             ianjuta_language_get_strings        (IAnjutaLanguage *obj,
                                                             IAnjutaLanguageId id,
                                                             GError **err);

`obj` : | Self
`id` : | A valid language id
Returns : | A list of strings that represent this language. [element-type utf8]