## IdeLanguage IdeLanguage |

## Functions

#define | IDE_TYPE_LANGUAGE
IdeDiagnostician * | ide_language_get_diagnostician ()
IdeHighlighter * | ide_language_get_highlighter ()
const gchar * | ide_language_get_id ()
IdeIndenter * | ide_language_get_indenter ()
const gchar * | ide_language_get_name ()
IdeRefactory * | ide_language_get_refactory ()
IdeSymbolResolver * | ide_language_get_symbol_resolver ()
GtkSourceLanguage * | ide_language_get_source_language ()
GList * | ide_language_get_completion_providers ()

## Properties

IdeDiagnostician * | diagnostician | Read
IdeHighlighter * | highlighter | Read
gchar * | id | Read / Write / Construct Only
IdeIndenter * | indenter | Read
gchar * | name | Read
IdeRefactory * | refactory | Read
IdeSymbolResolver * | symbol-resolver | Read

## Types and Values

#define | IDE_LANGUAGE_EXTENSION_POINT
struct | IdeLanguageClass
| IdeLanguage

## Object Hierarchy

        GObject
        ╰── IdeObject
            ╰── IdeLanguage
                ├── IdeCLanguage
                ├── IdeHtmlLanguage
                ├── IdePythonLanguage
                ├── IdeXmlLanguage
                ╰── IdeValaLanguage

## Description

## Functions

### IDE_TYPE_LANGUAGE

    #define IDE_TYPE_LANGUAGE            (ide_language_get_type())

### ide_language_get_diagnostician ()

    IdeDiagnostician *
    ide_language_get_diagnostician (IdeLanguage *self);

Returns the IdeDiagnostician for the IdeLanguage.

The diagnostician is responsible for querying the proper language tools to diagnose issues with a particular IdeFile.

See `ide_diagnostician_diagnose_async()` for more information.

If the IdeLanguage does not have an IdeDiagnostician, then `NULL` is returned.

#### Returns

An IdeDiagnostician or `NULL`.

[transfer none][nullable]

### ide_language_get_highlighter ()

    IdeHighlighter *
    ide_language_get_highlighter (IdeLanguage *self);

Fetches the IdeHighlighter for the IdeLanguage.

If `language` does not provide a semantic highlighter, `NULL` is returned.

#### Returns

An IdeHighlighter or `NULL`.

[transfer none][nullable]

### ide_language_get_id ()

    const gchar *
    ide_language_get_id (IdeLanguage *self);

Fetches the unique identifier for the language.

#### Returns

A string such as "c" or "python".

### ide_language_get_indenter ()

    IdeIndenter *
    ide_language_get_indenter (IdeLanguage *self);

Fetches the IdeIndenter for `language` .

If `language` does not provide an IdeIndenter, then `NULL` is returned.

#### Returns

An IdeIndenter or `NULL`.

[transfer none][nullable]

### ide_language_get_name ()

    const gchar *
    ide_language_get_name (IdeLanguage *self);

Fetches the display name for the language.

#### Returns

A string containing the display name.

### ide_language_get_refactory ()

    IdeRefactory *
    ide_language_get_refactory (IdeLanguage *self);

Fetches the refactory for `language` .

If `language` does not provide an IdeRefactory, then `NULL` is returned.

#### Returns

An IdeRefactory or `NULL`.

[transfer none][nullable]

### ide_language_get_symbol_resolver ()

    IdeSymbolResolver *
    ide_language_get_symbol_resolver (IdeLanguage *self);

Fetches the IdeSymbolResolver for `language` .

If `language` does not provide an IdeSymbolResolver, then `NULL` is returned.

#### Returns

An IdeSymbolResolver or `NULL`.

[transfer none][nullable]

### ide_language_get_source_language ()

    GtkSourceLanguage *
    ide_language_get_source_language (IdeLanguage *self);

Retrieves the source language to use for the file.

#### Returns

A GtkSourceLanguage or `NULL`.

[transfer none][nullable]

### ide_language_get_completion_providers ()

    GList *
    ide_language_get_completion_providers (IdeLanguage *self);

Gets the completion providers that can be used to autocomplete for this language.

#### Parameters

self | An IdeLanguage. |

#### Returns

A GList of GtkSourceCompletionProvider.

[transfer full][element-type GtkSourceCompletionProvider*]

## Types and Values

### IDE_LANGUAGE_EXTENSION_POINT

    #define IDE_LANGUAGE_EXTENSION_POINT "org.gnome.libide.extensions.language"

### struct IdeLanguageClass

    struct IdeLanguageClass {
      IdeObjectClass parent;

      IdeDiagnostician  *(*get_diagnostician)        (IdeLanguage *self);
      IdeHighlighter    *(*get_highlighter)          (IdeLanguage *self);
      IdeIndenter       *(*get_indenter)             (IdeLanguage *self);
      const gchar       *(*get_name)                 (IdeLanguage *self);
      IdeRefactory      *(*get_refactory)            (IdeLanguage *self);
      GtkSourceLanguage *(*get_source_language)      (IdeLanguage *self);
      IdeSymbolResolver *(*get_symbol_resolver)      (IdeLanguage *self);
      GList             *(*get_completion_providers) (IdeLanguage *self);
    };

### IdeLanguage

    typedef struct _IdeLanguage IdeLanguage;

## Property Details

### The `“diagnostician”` property

      “diagnostician”            IdeDiagnostician *

The diagnostician for the language.

Flags: Read

### The `“highlighter”` property

      “highlighter”              IdeHighlighter *

The semantic highlighter for the language.

Flags: Read

### The `“id”` property

      “id”                       gchar *

The language identifier such as "c".

Flags: Read / Write / Construct Only

Default value: NULL

### The `“indenter”` property

      “indenter”                 IdeIndenter *

The semantic indenter for the language.

Flags: Read

### The `“name”` property

      “name”                     gchar *

The name of the language.

Flags: Read

Default value: NULL

### The `“refactory”` property

      “refactory”                IdeRefactory *

The refactory engine for the language.

Flags: Read

### The `“symbol-resolver”` property

      “symbol-resolver”          IdeSymbolResolver *

The symbol resolver for the language.

Flags: Read