code: def _construct_first_indent(self, pos):
          
          cols = []
          void = urwid.AttrMap(urwid.SolidFill(' '), self._arrow_att)
          available_width = self._indent
  
          if self._tree.depth(pos) > 0:
              connector = self._construct_connector(pos)
              if connector is not None:
                  width = connector.pack()[0]
                  if width > available_width:
                      raise NoSpaceError()
                  available_width -= width
                  if self._tree.next_sibling_position(pos) is not None:
                      barw = urwid.SolidFill(self._arrow_vbar_char)
                      below = urwid.AttrMap(barw, self._arrow_vbar_att or
                                            self._arrow_att)
                  else:
                      below = void
                  # pile up connector and bar
                  spacer = urwid.Pile([('pack', connector), below])
                  cols.append((width, spacer))
  
              #arrow tip
              awidth, at = self._construct_arrow_tip(pos)
              if at is not None:
                  if awidth > available_width:
                      raise NoSpaceError()
                  available_width -= awidth
                  at_spacer = urwid.Pile([('pack', at), void])
                  cols.append((awidth, at_spacer))
  
              # bar between connector and arrow tip
              if available_width > 0:
                  barw = urwid.SolidFill(self._arrow_hbar_char)
                  bar = urwid.AttrMap(
                      barw, self._arrow_hbar_att or self._arrow_att)
                  hb_spacer = urwid.Pile([(1, bar), void])
                  cols.insert(1, (available_width, hb_spacer))
          return cols
docs: build spacer to occupy the first indentation level from pos to the
          left. This is separate as it adds arrowtip and sibling connector.