ide-git-buffer-change-monitor

ide-git-buffer-change-monitor

Functions

Properties

GgitRepository * repository Write / Construct Only

Types and Values

Object Hierarchy

    GObject
    ╰── IdeObject
        ╰── IdeBufferChangeMonitor
            ╰── IdeGitBufferChangeMonitor

Description

This module provides line change monitoring when used in conjunction with an IdeGitVcs. The changes are generated by comparing the buffer contents to the version found inside of the git repository.

To enable us to avoid blocking the main loop, the actual diff is performed in a background thread. To avoid threading issues with the rest of LibIDE, this module creates a copy of the loaded repository. A single thread will be dispatched for the context and all reload tasks will be performed from that thread.

Upon completion of the diff, the results will be passed back to the primary thread and the state updated for use by line change renderer in the source view.

TODO: Move the thread work into ide_thread_pool?

Functions

IDE_TYPE_GIT_BUFFER_CHANGE_MONITOR

#define IDE_TYPE_GIT_BUFFER_CHANGE_MONITOR (ide_git_buffer_change_monitor_get_type())

Types and Values

IdeGitBufferChangeMonitor

typedef struct _IdeGitBufferChangeMonitor IdeGitBufferChangeMonitor;

Property Details

The “repository” property

  “repository”               GgitRepository *

The repository to use for calculating diffs.

Flags: Write / Construct Only