Minga.Git.MergeConflict.Entry (Minga v0.1.0)

Copy Markdown View Source

Lightweight line coordinates and labels for one complete merge conflict.

Unlike Minga.Git.MergeConflict.Region, this value does not copy either side's text. It is safe to retain and update on the buffer edit path even when one conflict contains many lines.

Summary

Types

Inclusive marker-free line range. Empty sides use a range whose end is before its start.

t()

Types

line_range()

@type line_range() :: {start_line :: non_neg_integer(), end_line :: integer()}

Inclusive marker-free line range. Empty sides use a range whose end is before its start.

t()

@type t() :: %Minga.Git.MergeConflict.Entry{
  base_label: String.t() | nil,
  base_marker_line: non_neg_integer() | nil,
  base_range: line_range() | nil,
  current_label: String.t(),
  current_range: line_range(),
  end_line: non_neg_integer(),
  incoming_label: String.t(),
  incoming_range: line_range(),
  separator_line: non_neg_integer(),
  start_line: non_neg_integer()
}

Functions

new(start_line, base_line, separator_line, end_line, current_label, base_label, incoming_label)

@spec new(
  non_neg_integer(),
  non_neg_integer() | nil,
  non_neg_integer(),
  non_neg_integer(),
  String.t(),
  String.t() | nil,
  String.t()
) :: t()

Builds an entry from its marker coordinates and labels.