Minga.Config.ModelineSegment (Minga v0.1.0)

Copy Markdown View Source

A custom modeline segment registered by user config or an extension.

The renderer decides where the segment appears from the configured segment lists. The segment's own side is the default placement when the user has not explicitly listed the segment on either side.

Summary

Types

Context passed to modeline segment render functions.

Custom segment render function.

A normalized modeline draw segment.

Modeline side used for default placement.

t()

Functions

Builds a custom modeline segment descriptor.

Types

context()

@type context() :: map()

Context passed to modeline segment render functions.

render_fun()

@type render_fun() :: (context() -> [render_segment()] | render_segment() | nil)

Custom segment render function.

render_segment()

@type render_segment() ::
  {String.t(), non_neg_integer(), non_neg_integer(), keyword(), atom() | nil}

A normalized modeline draw segment.

side()

@type side() :: :left | :right

Modeline side used for default placement.

t()

@type t() :: %Minga.Config.ModelineSegment{
  name: atom(),
  priority: integer(),
  render: render_fun(),
  side: side(),
  source: atom() | {:extension, atom()}
}

validation_error()

@type validation_error() :: {:invalid_side, term()} | {:invalid_priority, term()}

Functions

new(name, opts, render, source)

@spec new(atom(), keyword(), render_fun(), atom() | {:extension, atom()}) ::
  {:ok, t()} | {:error, validation_error()}

Builds a custom modeline segment descriptor.