## ide-project ide-project |

## Functions

IdeProjectItem * | ide_project_get_root ()
const gchar * | ide_project_get_name ()
const gchar * | ide_project_get_id ()
IdeFile * | ide_project_get_file_for_path ()
IdeFile * | ide_project_get_project_file ()
void | ide_project_reader_lock ()
void | ide_project_reader_unlock ()
void | ide_project_writer_lock ()
void | ide_project_writer_unlock ()
void | ide_project_add_file ()
IdeProjectFiles * | ide_project_get_files ()
void | ide_project_rename_file_async ()
gboolean | ide_project_rename_file_finish ()
void | ide_project_trash_file_async ()
gboolean | ide_project_trash_file_finish ()

## Types and Values

#define | IDE_TYPE_PROJECT
| IdeProject

## Description

## Functions

### ide_project_get_root ()

    IdeProjectItem *
    ide_project_get_root (IdeProject *self);

Retrieves the root item of the project tree.

You must be holding the reader lock while calling and using the result of this function. Other thread may be accessing or modifying the tree without your knowledge. See `ide_project_reader_lock()` and `ide_project_reader_unlock()` for more information.

If you need to modify the tree, you must hold a writer lock that has been acquired with `ide_project_writer_lock()` and released with `ide_project_writer_unlock()` when you are no longer modifiying the tree.

#### Returns

An IdeProjectItem.

[transfer none]

### ide_project_get_name ()

    const gchar *
    ide_project_get_name (IdeProject *self);

### ide_project_get_id ()

    const gchar *
    ide_project_get_id (IdeProject *self);

### ide_project_get_file_for_path ()

    IdeFile *
    ide_project_get_file_for_path (IdeProject *self,
                                   const gchar *path);

Retrieves an IdeFile for the path specified. IdeFile provides access to language specific features via `ide_file_get_language()`.

You must hold the reader lock while calling this function. See `ide_project_reader_lock()` and `ide_project_reader_unlock()` for more information.

#### Parameters

path | A relative path from the project root. |

#### Returns

An IdeFile or `NULL` if no matching file could be found.

[transfer full][nullable]

### ide_project_get_project_file ()

    IdeFile *
    ide_project_get_project_file (IdeProject *self,
                                  GFile *gfile);

Gets a new IdeFile representing `gfile` .

#### Parameters

self | A IdeProject. |
gfile | A GFile. |

#### Returns

An IdeFile.

[transfer full]

### ide_project_reader_lock ()

    void
    ide_project_reader_lock (IdeProject *self);

### ide_project_reader_unlock ()

    void
    ide_project_reader_unlock (IdeProject *self);

### ide_project_writer_lock ()

    void
    ide_project_writer_lock (IdeProject *self);

### ide_project_writer_unlock ()

    void
    ide_project_writer_unlock (IdeProject *self);

### ide_project_add_file ()

    void
    ide_project_add_file (IdeProject *self,
                          IdeProjectFile *file);

### ide_project_get_files ()

    IdeProjectFiles *
    ide_project_get_files (IdeProject *self);

Gets the IdeProjectFiles instance within the project tree. If it has not yet been loaded, `NULL` is returned.

#### Parameters

self | A IdeProject. |

#### Returns

An IdeProjectFiles or `NULL`.

[transfer none][nullable]

### ide_project_rename_file_async ()

    void
    ide_project_rename_file_async (IdeProject *self,
                                   GFile *orig_file,
                                   GFile *new_file,
                                   GCancellable *cancellable,
                                   GAsyncReadyCallback callback,
                                   gpointer user_data);

### ide_project_rename_file_finish ()

    gboolean
    ide_project_rename_file_finish (IdeProject *self,
                                    GAsyncResult *result,
                                    GError **error);

### ide_project_trash_file_async ()

    void
    ide_project_trash_file_async (IdeProject *self,
                                  GFile *file,
                                  GCancellable *cancellable,
                                  GAsyncReadyCallback callback,
                                  gpointer user_data);

### ide_project_trash_file_finish ()

    gboolean
    ide_project_trash_file_finish (IdeProject *self,
                                   GAsyncResult *result,
                                   GError **error);

## Types and Values

### IDE_TYPE_PROJECT

    #define IDE_TYPE_PROJECT (ide_project_get_type())

### IdeProject

    typedef struct _IdeProject IdeProject;