Repository: neovim/neovim
File: src/nvim/options.lua (Lua)

Code before:
        	" Both relative and absolute line numbers with different
        	" highlighting for odd and even relative numbers:
        	let &stc='%#NonText#%{&nu?v:lnum:""}' .
        	 '%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}' .
        	 '%#LineNr#%{&rnu&&!(v:lnum%2)?"\ ".v:relnum:""}'

        <	WARNING: this expression is evaluated for each screen line so defining
        an expensive expression can negatively affect render performance.
      ]=],
      full_name = 'statuscolumn',
      redraw = { 'current_window' },
      scope = { 'win' },
      secure = true,
      short_desc = N_('custom format for the status column'),
      type = 'string',
    },
    {
      abbreviation = 'stl',
      cb = 'did_set_statusline',
      defaults = table.concat({
        '%<',
        '%f %h%w%m%r ',
        '%=',
        "%{% &showcmdloc == 'statusline' ? '%-10.S ' : '' %}",
        "%{% exists('b:keymap_name') ? '<'..b:keymap_name..'> ' : '' %}",
        "%{% &busy ? '<busy> ' : '' %}",
        "%{% &ruler ? ( &rulerformat == '' ? '%-14.(%l,%c%V%) %P' : &rulerformat ) : '' %}",
      }),
      desc = [=[
        Sets the |status-line|.

        The option consists of printf style '%' items interspersed with
        normal text.  Each status line item is of the form:
          %-0{minwid}.{maxwid}{item}
        All fields except the {item} are optional.  A single percent sign can
        be given as "%%".

        						*stl-%!*
        When the option starts with "%!" then it is used as an expression,
        evaluated and the result is used as the option value.  Example: >vim
        	set statusline=%!MyStatusLine()
        <	The *g:statusline_winid* variable will be set to the |window-ID| of the
        window that the status line belongs to.
        The result can contain %{} items that will be evaluated too.
        Note that the "%!" expression is evaluated in the context of the
        current window and buffer, while %{} items are evaluated in the
        context of the window that the statusline belongs to.

        When there is error while evaluating the option then it will be made
        empty to avoid further errors.  Otherwise screen updating would loop.
        When the result contains unprintable characters the result is

Review comment (suggestion):
A single-char default would be ideal, to avoid using more than 1 column. "◐" seems good unless we find something better, it's (1) visually distinct, (2) looks like a half-full process.
```suggestion
        "%{% &busy ? '◐ ' : '' %}",
```

Code after:
        	let &stc='%=%{v:virtnum>0?"":printf("%x",v:lnum)} '

        	" Human readable line numbers with thousands separator:
        	let &stc='%{substitute(v:lnum,"\\d\\zs\\ze\\'
        		   . '%(\\d\\d\\d\\)\\+$",",","g")}'

        	" Both relative and absolute line numbers with different
        	" highlighting for odd and even relative numbers:
        	let &stc='%#NonText#%{&nu?v:lnum:""}' .
        	 '%=%{&rnu&&(v:lnum%2)?"\ ".v:relnum:""}' .
        	 '%#LineNr#%{&rnu&&!(v:lnum%2)?"\ ".v:relnum:""}'

        <	WARNING: this expression is evaluated for each screen line so defining
        an expensive expression can negatively affect render performance.
      ]=],
      full_name = 'statuscolumn',
      redraw = { 'current_window' },
      scope = { 'win' },
      secure = true,
      short_desc = N_('custom format for the status column'),
      type = 'string',
    },
    {
      abbreviation = 'stl',
      cb = 'did_set_statusline',
      defaults = table.concat({
        '%<',
        '%f %h%w%m%r ',
        '%=',
        "%{% &showcmdloc == 'statusline' ? '%-10.S ' : '' %}",
        "%{% exists('b:keymap_name') ? '<'..b:keymap_name..'> ' : '' %}",
        "%{% &busy > 0 ? '◐ ' : '' %}",
        "%{% &ruler ? ( &rulerformat == '' ? '%-14.(%l,%c%V%) %P' : &rulerformat ) : '' %}",
      }),
      desc = [=[
        Sets the |status-line|.

        The option consists of printf style '%' items interspersed with
        normal text.  Each status line item is of the form:
          %-0{minwid}.{maxwid}{item}
        All fields except the {item} are optional.  A single percent sign can
        be given as "%%".

        						*stl-%!*
        When the option starts with "%!" then it is used as an expression,
        evaluated and the result is used as the option value.  Example: >vim
        	set statusline=%!MyStatusLine()
        <	The *g:statusline_winid* variable will be set to the |window-ID| of the
        window that the status line belongs to.
        The result can contain %{} items that will be evaluated too.
        Note that the "%!" expression is evaluated in the context of the