## IdeVcs IdeVcs |

## Functions

#define | IDE_TYPE_VCS
IdeBufferChangeMonitor * | ide_vcs_get_buffer_change_monitor ()
GFile * | ide_vcs_get_working_directory ()
void | ide_vcs_new_async ()
IdeVcs * | ide_vcs_new_finish ()
gboolean | ide_vcs_is_ignored ()

## Types and Values

#define | IDE_VCS_EXTENSION_POINT
struct | IdeVcsClass
| IdeVcs

## Object Hierarchy

        GObject
        ╰── IdeObject
            ╰── IdeVcs
                ├── IdeGitVcs
                ╰── IdeDirectoryVcs

## Description

## Functions

### IDE_TYPE_VCS

    #define IDE_TYPE_VCS            (ide_vcs_get_type())

### ide_vcs_get_buffer_change_monitor ()

    IdeBufferChangeMonitor *
    ide_vcs_get_buffer_change_monitor (IdeVcs *self,
                                       IdeBuffer *buffer);

Gets an IdeBufferChangeMonitor for the buffer provided. If the IdeVcs implementation does not support change monitoring, or cannot for the current file, then `NULL` is returned.

#### Returns

An IdeBufferChangeMonitor or `NULL`.

[transfer full][nullable]

### ide_vcs_get_working_directory ()

    GFile *
    ide_vcs_get_working_directory (IdeVcs *self);

Retrieves the working directory for the context. This is the root of where the project files exist.

#### Parameters

self | An IdeVcs. |

#### Returns

A GFile.

[transfer none]

### ide_vcs_new_async ()

    void
    ide_vcs_new_async (IdeContext *context,
                       int io_priority,
                       GCancellable *cancellable,
                       GAsyncReadyCallback callback,
                       gpointer user_data);

### ide_vcs_new_finish ()

    IdeVcs *
    ide_vcs_new_finish (GAsyncResult *result,
                        GError **error);

### ide_vcs_is_ignored ()

    gboolean
    ide_vcs_is_ignored (IdeVcs *self,
                        GFile *file,
                        GError **error);

## Types and Values

### IDE_VCS_EXTENSION_POINT

    #define IDE_VCS_EXTENSION_POINT "org.gnome.libide.extensions.vcs"

### struct IdeVcsClass

    struct IdeVcsClass {
      IdeObjectClass parent;

      GFile                  *(*get_working_directory)     (IdeVcs     *self);
      IdeBufferChangeMonitor *(*get_buffer_change_monitor) (IdeVcs     *self,
                                                            IdeBuffer  *buffer);
      gboolean                (*is_ignored)                (IdeVcs     *self,
                                                            GFile      *file,
                                                            GError    **error);
    };

### IdeVcs

    typedef struct _IdeVcs IdeVcs;