## GtkSourceLanguage

GtkSourceLanguage — Object representing a syntax highlighted language

## Synopsis

    #include <gtksourceview/gtksourcelanguage.h>

                        GtkSourceLanguage;
    const gchar *       gtk_source_language_get_id          (GtkSourceLanguage *language);
    const gchar *       gtk_source_language_get_name        (GtkSourceLanguage *language);
    const gchar *       gtk_source_language_get_section     (GtkSourceLanguage *language);
    gboolean            gtk_source_language_get_hidden      (GtkSourceLanguage *language);
    const gchar *       gtk_source_language_get_metadata    (GtkSourceLanguage *language,
                                                             const gchar *name);
    gchar **            gtk_source_language_get_mime_types  (GtkSourceLanguage *language);
    gchar **            gtk_source_language_get_globs       (GtkSourceLanguage *language);
    const gchar *       gtk_source_language_get_style_name  (GtkSourceLanguage *language,
                                                             const gchar *style_id);
    gchar **            gtk_source_language_get_style_ids   (GtkSourceLanguage *language);

## Object Hierarchy

      GObject
       +----GtkSourceLanguage

## Properties

      "hidden"                   gboolean              : Read
      "id"                       gchar*                : Read
      "name"                     gchar*                : Read
      "section"                  gchar*                : Read

## Description

GtkSourceLanguage encapsulates syntax and highlighting styles for a particular language. Use GtkSourceLanguageManager to obtain a GtkSourceLanguage instance, and `gtk_source_buffer_set_language()` to apply it to a GtkSourceBuffer.

## Details

### GtkSourceLanguage

    typedef struct _GtkSourceLanguage GtkSourceLanguage;

### gtk_source_language_get_id ()

    const gchar *       gtk_source_language_get_id          (GtkSourceLanguage *language);

Returns the ID of the language. The ID is not locale-dependent.

`language` : | a GtkSourceLanguage.
Returns : | the ID of `language`. The returned string is owned by `language` and should not be freed or modified.

### gtk_source_language_get_name ()

    const gchar *       gtk_source_language_get_name        (GtkSourceLanguage *language);

Returns the localized name of the language.

`language` : | a GtkSourceLanguage.
Returns : | the name of `language`. The returned string is owned by `language` and should not be freed or modified.

### gtk_source_language_get_section ()

    const gchar *       gtk_source_language_get_section     (GtkSourceLanguage *language);

Returns the localized section of the language. Each language belong to a section (ex. HTML belogs to the Markup section).

`language` : | a GtkSourceLanguage.
Returns : | the section of `language`. The returned string is owned by `language` and should not be freed or modified.

### gtk_source_language_get_hidden ()

    gboolean            gtk_source_language_get_hidden      (GtkSourceLanguage *language);

Returns whether the language should be hidden from the user.

`language` : | a GtkSourceLanguage
Returns : | TRUE if the language should be hidden, FALSE otherwise.

### gtk_source_language_get_metadata ()

    const gchar *       gtk_source_language_get_metadata    (GtkSourceLanguage *language,
                                                             const gchar *name);

`language` : | a GtkSourceLanguage.
`name` : | metadata property name.
Returns : | value of property `name` stored in the metadata of `language` or `NULL` if language doesn't contain that metadata property. The returned string is owned by `language` and should not be freed or modified.

### gtk_source_language_get_mime_types ()

    gchar **            gtk_source_language_get_mime_types  (GtkSourceLanguage *language);

Returns the mime types associated to this language. This is just an utility wrapper around `gtk_source_language_get_metadata()` to retrieve the "mimetypes" metadata property and split it into an array.

`language` : | a GtkSourceLanguage.
Returns : | a newly-allocated `NULL` terminated array containing the mime types or `NULL` if no mime types are found. The returned array must be freed with `g_strfreev()`.

### gtk_source_language_get_globs ()

    gchar **            gtk_source_language_get_globs       (GtkSourceLanguage *language);

Returns the globs associated to this language. This is just an utility wrapper around `gtk_source_language_get_metadata()` to retrieve the "globs" metadata property and split it into an array.

`language` : | a GtkSourceLanguage.
Returns : | a newly-allocated `NULL` terminated array containing the globs or `NULL` if no globs are found. The returned array must be freed with `g_strfreev()`.

### gtk_source_language_get_style_name ()

    const gchar *       gtk_source_language_get_style_name  (GtkSourceLanguage *language,
                                                             const gchar *style_id);

Returns the name of the style with ID `style_id` defined by this `language`.

`language` : | a GtkSourceLanguage
`style_id` : | a style ID
Returns : | the name of the style with ID `style_id` defined by this `language` or `NULL` if the style has no name or there is no style with ID `style_id` defined by this `language`. The returned string is owned by the `language` and must not be modified.

### gtk_source_language_get_style_ids ()

    gchar **            gtk_source_language_get_style_ids   (GtkSourceLanguage *language);

Returns the ids of the styles defined by this `language`.

`language` : | a GtkSourceLanguage
Returns : | a `NULL` terminated array containing ids of the styles defined by this `language` or `NULL` if no style is defined. The returned array must be freed with `g_strfreev()`.

## Property Details

### The `"hidden"` property

      "hidden"                   gboolean              : Read

Whether the language should be hidden from the user.

Default value: FALSE

### The `"id"` property

      "id"                       gchar*                : Read

Language id.

Default value: NULL

### The `"name"` property

      "name"                     gchar*                : Read

Language name.

Default value: NULL

### The `"section"` property

      "section"                  gchar*                : Read

Language section.

Default value: NULL

## See Also

GtkSourceLanguageManager