Skip to content

component

windwp edited this page Jun 30, 2021 · 34 revisions

Component

you can define a component like this.

time_count = 1

local count = {
  hl_colors = {
     countRed     = {'black', 'red'},
     countGreen  = {'black', 'green'}
  },
  hl = function(hl_colors)
      -- a hl function change the highlight color of text
      if time_count > 50 then
        return hl_colors.countRed
      end
      return hl_colors.countGreen
  end,
  text = function(bufnr)
    time_count = time_count + 1
    if time_count > 99 then
      time_count = 1
    end
    return ' ' .. vim.fn.strftime("%H:%M:%S") .. ' '
  end,
}

you can also return a list of child component . I think it is better way.

basic.section_y = {
   hl_colors = airline_colors.b,
   text = function()
       if check_width() then
           return {
               { sep.left_filled, state.mode[2] .. 'Sep' },
               { b_components.file_type({ icon = true }), state.mode[2] },
               { ' ', '' },
           }
       end
       return { { sep.left_filled, state.mode[2] .. 'Sep' } }
   end,
}

Builtin component

Basic

local basic_components = require('windline.components.basic')
Component Usage
divider %= use to algin status
line_col display line and column
progress display progress
full_file_name() full file name of current path
file_name('default','unique,full,short') get unique file name or short name
cache_file_name same of file name but it cache value on buffer
file_type({icon=true,default=' '}) get file_type
cache_file_type same of file type but it cache value on buffer
file_size() get file size
cache_file_size same of file type but it cache value on buffer
file_icon() get file icon
cache_file_icon same of file icon but it cache value on buffer
file_format() get file format
file_modified() get file modified

Lsp

local lsp_components = require('windline.components.lsp')
Usage KEY
check_lsp() check is have lsp server
lsp_name() get lsp server name
lsp_error({show_zero=true,format="%s"}) get lsp error number
lsp_hint({show_zero=true,format="%s"}) get lsp hint number
lsp_warning({show_zero=true,format="%s"}) get lsp warning number
lsp_info({show_zero=true,format="%s"}) get lsp info number

Git

local lsp_components = require('windline.components.git')
Usage KEY
is_git() check is git
git_branch() get git git_branch
diff_added({show_zero=true,format="%s"}) get diff added number
diff_changed({show_zero=true,format="%s"}) get dfff changed number
diff_removed({show_zero=true,format="%s"}) get diff remove number

utility

-- Cache on buffer.
--- it create a function then set a result of function to
--- `vim.b.wl_file_name` it update value on BufEnter event otherwise it return
--- value from buffer`vim.b.wl_file_name`
local cache_utils = require('windline.cache_utils')

local cache_file_name = cache_utils.cache_on_buffer('BufEnter', 'wl_file_name', function()

end)

Clone this wiki locally