## GeditDocument

GeditDocument — A document

## Functions

GeditDocument * | gedit_document_new ()
GtkSourceFile * | gedit_document_get_file ()
gchar * | gedit_document_get_content_type ()
gchar * | gedit_document_get_mime_type ()
void | gedit_document_set_language ()
gchar * | gedit_document_get_metadata ()
void | gedit_document_set_metadata ()
GtkSourceSearchContext * | gedit_document_get_search_context ()
void | gedit_document_set_search_context ()

## Properties

char * | content-type | Read / Write
gboolean | empty-search | Read
char * | mime-type | Read

## Signals

void | load | Run Last
void | loaded | Run First
void | save | Run Last
void | saved | Run First

## Types and Values

| GeditDocument

## Object Hierarchy

        GObject
        ╰── GtkTextBuffer
            ╰── GtkSourceBuffer
                ╰── TeplBuffer
                    ╰── GeditDocument

## Description

GeditDocument is a subclass of TeplBuffer. It contains the content of a document.

## Functions

### gedit_document_new ()

    GeditDocument *
    gedit_document_new (void);

#### Returns

a new GeditDocument object.

[transfer full]

### gedit_document_get_file ()

    GtkSourceFile *
    gedit_document_get_file (GeditDocument *doc);

Gets the associated GtkSourceFile. You should use it only for reading purposes, not for creating a GtkSourceFileLoader or GtkSourceFileSaver, because gedit does some extra work when loading or saving a file and maintains an internal state. If you use in a plugin a file loader or saver on the returned GtkSourceFile, the internal state of gedit won't be updated.

If you want to save the GeditDocument to a secondary file, you can create a new GtkSourceFile and use a GtkSourceFileSaver.

#### Parameters

doc | a GeditDocument. |

#### Returns

the associated GtkSourceFile.

[transfer none]

Since: 3.14

### gedit_document_get_content_type ()

    gchar *
    gedit_document_get_content_type (GeditDocument *doc);

#### Parameters

doc | a GeditDocument. |

#### Returns

the value of the “content-type” property.

[transfer full]

### gedit_document_get_mime_type ()

    gchar *
    gedit_document_get_mime_type (GeditDocument *doc);

#### Parameters

doc | a GeditDocument. |

#### Returns

the value of the “mime-type” property.

[transfer full][not nullable]

### gedit_document_set_language ()

    void
    gedit_document_set_language (GeditDocument *doc,
                                 GtkSourceLanguage *lang);

Like `gtk_source_buffer_set_language()`, but this function is preferred.

#### Parameters

doc | a GeditDocument. |
lang | a GtkSourceLanguage. | [nullable]

### gedit_document_get_metadata ()

    gchar *
    gedit_document_get_metadata (GeditDocument *doc,
                                 const gchar *key);

#### Parameters

doc | a GeditDocument. |
key | the name of the key. |

#### Returns

the metadata assigned to `key` .

[transfer full][nullable]

### gedit_document_set_metadata ()

    void
    gedit_document_set_metadata (GeditDocument *doc,
                                 const gchar *first_key,
                                 ...);

Sets metadata on a document.

[skip]

#### Parameters

doc | a GeditDocument. |
first_key | the name of the first key to set. |
... | value for the first key, followed optionally by more key/value pairs, followed by `NULL`. |

### gedit_document_get_search_context ()

    GtkSourceSearchContext *
    gedit_document_get_search_context (GeditDocument *doc);

Gets the search context. Use this function only if you have used `gedit_document_set_search_context()` before. You should not alter other search contexts, so you have to verify that the returned search context is yours. One way to verify that is to compare the search settings object, or to mark the search context with `g_object_set_data()`.

#### Parameters

doc | a GeditDocument. |

#### Returns

the current search context of the document, or NULL if there is no current search context.

[transfer none][nullable]

### gedit_document_set_search_context ()

    void
    gedit_document_set_search_context (GeditDocument *doc,
                                       GtkSourceSearchContext *search_context);

Sets the new search context for the document. Use this function only when the search occurrences are highlighted. So this function should not be used for background searches. The purpose is to have only one highlighted search context at a time in the document.

After using this function, you should unref the `search_context` . The `doc` should be the only owner of the `search_context` , so that the Clear Highlight action works. If you need the `search_context` after calling this function, use `gedit_document_get_search_context()`.

#### Parameters

doc | a GeditDocument. |
search_context | the new GtkSourceSearchContext. | [nullable]

## Types and Values

### GeditDocument

    typedef struct _GeditDocument GeditDocument;

## Property Details

### The `“content-type”` property

      “content-type”             char *

The document's content type.

Owner: GeditDocument

Flags: Read / Write

Default value: NULL

### The `“empty-search”` property

      “empty-search”             gboolean

The property is used internally by gedit. It must not be used in a gedit plugin. The property can be modified or removed at any time.

Whether the search is empty.

Owner: GeditDocument

Flags: Read

Default value: TRUE

### The `“mime-type”` property

      “mime-type”                char *

The document's MIME type.

Owner: GeditDocument

Flags: Read

Default value: "text/plain"

## Signal Details

### The `“load”` signal

    void
    user_function (GeditDocument *document,
                   gpointer       user_data)

The ::load signal is emitted at the beginning of a file loading.

Before gedit 3.14 this signal contained parameters to configure the file loading (the location, encoding, etc). Plugins should not need those parameters.

#### Parameters

document | the GeditDocument emitting the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“loaded”` signal

    void
    user_function (GeditDocument *document,
                   gpointer       user_data)

The ::loaded signal is emitted at the end of a successful file loading.

Before gedit 3.14 this signal contained a GError parameter, and the signal was also emitted if an error occurred. Plugins should not need the error parameter.

#### Parameters

document | the GeditDocument emitting the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run First

### The `“save”` signal

    void
    user_function (GeditDocument *document,
                   gpointer       user_data)

The ::save signal is emitted at the beginning of a file saving.

Before gedit 3.14 this signal contained parameters to configure the file saving (the location, encoding, etc). Plugins should not need those parameters.

#### Parameters

document | the GeditDocument emitting the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“saved”` signal

    void
    user_function (GeditDocument *document,
                   gpointer       user_data)

The ::saved signal is emitted at the end of a successful file saving.

Before gedit 3.14 this signal contained a GError parameter, and the signal was also emitted if an error occurred. To save a document, a plugin can use the `gedit_commands_save_document_async()` function and get the result of the operation with `gedit_commands_save_document_finish()`.

#### Parameters

document | the GeditDocument emitting the signal. |
user_data | user data set when the signal handler was connected. |

Flags: Run First