MingaEditor.State.Git (Minga v0.1.0)

Copy Markdown View Source

Correlation state for editor-level Git workflows and diff presentation.

Repository services own Git data. This value remembers only operations and generated-buffer views whose results are still relevant to this editor.

Summary

Functions

Returns metadata for a generated diff buffer, when registered.

Returns every generated diff buffer associated with one source buffer.

Registers a generated diff buffer and its source content.

Drops every generated diff-view reference to a retired buffer.

Drops a generated diff buffer after it retires.

Types

diff_view_info()

@type diff_view_info() :: %{
  :source_buf => pid() | nil,
  :git_root => String.t(),
  :rel_path => String.t(),
  :staged => boolean(),
  :line_metadata => [Minga.Core.DiffView.line_meta()],
  :hunk_lines => [non_neg_integer()],
  optional(:view_mode) => :unified | :side_by_side,
  optional(:pane_width) => pos_integer()
}

t()

@type t() :: %MingaEditor.State.Git{
  diff_views: %{required(pid()) => diff_view_info()}
}

Functions

diff_view_info(git, buffer_pid)

@spec diff_view_info(t(), pid() | nil) :: diff_view_info() | nil

Returns metadata for a generated diff buffer, when registered.

diff_views_for_source(git, source_buffer)

@spec diff_views_for_source(t(), pid()) :: [{pid(), diff_view_info()}]

Returns every generated diff buffer associated with one source buffer.

register_diff_view(git, buffer_pid, info)

@spec register_diff_view(t(), pid(), diff_view_info()) :: t()

Registers a generated diff buffer and its source content.

retire_buffer(git, buffer_pid)

@spec retire_buffer(t(), pid()) :: t()

Drops every generated diff-view reference to a retired buffer.

retire_diff_view(git, buffer_pid)

@spec retire_diff_view(t(), pid()) :: t()

Drops a generated diff buffer after it retires.