Skip to content

status.flat

status.flat(
    elems,
) -> {kind: "flat"} | {
    kind: "zones",
    left: {
              [integer]: {
                             text: string,
                             fg: number | string?,
                             bg: number | string?,
                             bold: boolean?,
                             italic: boolean?,
                             underline: boolean?,
                             dim: boolean?,
                             reverse: boolean?,
                             strikethrough: boolean?,
                         },
          }?,
    center: {
                [integer]: {
                               text: string,
                               fg: number | string?,
                               bg: number | string?,
                               bold: boolean?,
                               italic: boolean?,
                               underline: boolean?,
                               dim: boolean?,
                               reverse: boolean?,
                               strikethrough: boolean?,
                           },
            }?,
    right: {
               [integer]: {
                              text: string,
                              fg: number | string?,
                              bg: number | string?,
                              bold: boolean?,
                              italic: boolean?,
                              underline: boolean?,
                              dim: boolean?,
                              reverse: boolean?,
                              strikethrough: boolean?,
                          },
           }?,
}

Build a flat status line: the elements laid out left to right, with any fills absorbing the leftover width.

local status = require('status')
return { status.flat { status.span { text = 'left' },
  status.fill { glyph = '-' }, status.span { text = 'right' } } }

Parameters

  • elems: {[integer]: {kind: "span", text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?} | {kind: "fill", glyph: string?, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}

Returns

  • {kind: "flat"} | {kind: "zones", left: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, center: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?, right: {[integer]: {text: string, fg: number | string?, bg: number | string?, bold: boolean?, italic: boolean?, underline: boolean?, dim: boolean?, reverse: boolean?, strikethrough: boolean?}}?}
    • kind
    • left — Spans anchored to the left edge.
    • center — Spans anchored at the middle of the full width, cropped to the gap.
    • right — Spans anchored to the right edge.