diff options
Diffstat (limited to 'nvim/lua/feline_style.lua')
| -rw-r--r-- | nvim/lua/feline_style.lua | 299 | 
1 files changed, 299 insertions, 0 deletions
diff --git a/nvim/lua/feline_style.lua b/nvim/lua/feline_style.lua new file mode 100644 index 0000000..a211832 --- /dev/null +++ b/nvim/lua/feline_style.lua @@ -0,0 +1,299 @@ +if not pcall(require, "feline") then +  return +end + +local colors = { +    bg = '#282c34', +    fg = '#abb2bf', +    yellow = '#e0af68', +    cyan = '#56b6c2', +    darkblue = '#081633', +    green = '#98c379', +    orange = '#d19a66', +    violet = '#a9a1e1', +    magenta = '#c678dd', +    blue = '#61afef', +    red = '#e86671' +} + +local vi_mode_colors = { +    NORMAL = colors.green, +    INSERT = colors.red, +    VISUAL = colors.magenta, +    OP = colors.green, +    BLOCK = colors.blue, +    REPLACE = colors.violet, +    ['V-REPLACE'] = colors.violet, +    ENTER = colors.cyan, +    MORE = colors.cyan, +    SELECT = colors.orange, +    COMMAND = colors.green, +    SHELL = colors.green, +    TERM = colors.green, +    NONE = colors.yellow +} + +local function file_osinfo() +    local os = vim.bo.fileformat:upper() +    local icon +    if os == 'UNIX' then +        icon = ' ' +    elseif os == 'MAC' then +        icon = ' ' +    else +        icon = ' ' +    end +    return icon .. os +end + +local lsp = require 'feline.providers.lsp' +local vi_mode_utils = require 'feline.providers.vi_mode' + +local lsp_get_diag = function(str) +  local count = vim.lsp.diagnostic.get_count(0, str) +  return (count > 0) and ' '..count..' ' or '' +end + +-- LuaFormatter off + +local comps = { +    vi_mode = { +        left = { +            provider = function() +              return '  ' .. vi_mode_utils.get_vim_mode() +            end, +            hl = function() +                local val = { +                    name = vi_mode_utils.get_mode_highlight_name(), +                    fg = vi_mode_utils.get_mode_color(), +                    -- fg = colors.bg +                } +                return val +            end, +            right_sep = ' ' +        }, +        right = { +            -- provider = '▊', +            provider = '' , +            hl = function() +                local val = { +                    name = vi_mode_utils.get_mode_highlight_name(), +                    fg = vi_mode_utils.get_mode_color() +                } +                return val +            end, +            left_sep = ' ', +            right_sep = ' ' +        } +    }, +    file = { +        info = { +            provider = 'file_info', +            file_modified_icon = '', +            hl = { +                fg = colors.blue, +                style = 'bold' +            } +        }, +        encoding = { +            provider = 'file_encoding', +            left_sep = ' ', +            hl = { +                fg = colors.violet, +                style = 'bold' +            } +        }, +        type = { +            provider = 'file_type' +        }, +        os = { +            provider = file_osinfo, +            left_sep = ' ', +            hl = { +                fg = colors.violet, +                style = 'bold' +            } +        }, +        position = { +            provider = 'position', +            left_sep = ' ', +            hl = { +                fg = colors.cyan, +                -- style = 'bold' +            } +        }, +    }, +    left_end = { +        provider = function() return '' end, +        hl = { +            fg = colors.bg, +            bg = colors.blue, +        } +    }, +    line_percentage = { +        provider = 'line_percentage', +        left_sep = ' ', +        hl = { +            style = 'bold' +        } +    }, +    scroll_bar = { +        provider = 'scroll_bar', +        left_sep = ' ', +        hl = { +            fg = colors.blue, +            style = 'bold' +        } +    }, +    diagnos = { +        err = { +            -- provider = 'diagnostic_errors', +            provider = function() +                return '' .. lsp_get_diag("Error") +            end, +            -- left_sep = ' ', +            enabled = function() return lsp.diagnostics_exist('Error') end, +            hl = { +                fg = colors.red +            } +        }, +        warn = { +            -- provider = 'diagnostic_warnings', +            provider = function() +                return '' ..  lsp_get_diag("Warning") +            end, +            -- left_sep = ' ', +            enabled = function() return lsp.diagnostics_exist('Warning') end, +            hl = { +                fg = colors.yellow +            } +        }, +        info = { +            -- provider = 'diagnostic_info', +            provider = function() +                return '' .. lsp_get_diag("Information") +            end, +            -- left_sep = ' ', +            enabled = function() return lsp.diagnostics_exist('Information') end, +            hl = { +                fg = colors.blue +            } +        }, +        hint = { +            -- provider = 'diagnostic_hints', +            provider = function() +                return '' .. lsp_get_diag("Hint") +            end, +            -- left_sep = ' ', +            enabled = function() return lsp.diagnostics_exist('Hint') end, +            hl = { +                fg = colors.cyan +            } +        }, +    }, +    lsp = { +        name = { +            provider = 'lsp_client_names', +            -- left_sep = ' ', +            right_sep = ' ', +            icon = '  ', +            hl = { +                fg = colors.yellow +            } +        } +    }, +    git = { +        branch = { +            provider = 'git_branch', +            icon = ' ', +            left_sep = ' ', +            hl = { +                fg = colors.violet, +                style = 'bold' +            }, +        }, +        add = { +            provider = 'git_diff_added', +            hl = { +                fg = colors.green +            } +        }, +        change = { +            provider = 'git_diff_changed', +            hl = { +                fg = colors.orange +            } +        }, +        remove = { +            provider = 'git_diff_removed', +            hl = { +                fg = colors.red +            } +        } +    } +} + +local components = { +  active = {}, +  inactive = {}, +} + +table.insert(components.active, {}) +table.insert(components.active, {}) +table.insert(components.active, {}) +table.insert(components.inactive, {}) +table.insert(components.inactive, {}) + +table.insert(components.active[1], comps.vi_mode.left) +table.insert(components.active[1], comps.file.info) +table.insert(components.active[1], comps.git.branch) +table.insert(components.active[1], comps.git.add) +table.insert(components.active[1], comps.git.change) +table.insert(components.active[1], comps.git.remove) +table.insert(components.inactive[1], comps.vi_mode.left) +table.insert(components.inactive[1], comps.file.info) +table.insert(components.active[3], comps.diagnos.err) +table.insert(components.active[3], comps.diagnos.warn) +table.insert(components.active[3], comps.diagnos.hint) +table.insert(components.active[3], comps.diagnos.info) +table.insert(components.active[3], comps.lsp.name) +table.insert(components.active[3], comps.file.os) +table.insert(components.active[3], comps.file.position) +table.insert(components.active[3], comps.line_percentage) +table.insert(components.active[3], comps.scroll_bar) +table.insert(components.active[3], comps.vi_mode.right) + + +-- TreeSitter +-- local ts_utils = require("nvim-treesitter.ts_utils") +-- local ts_parsers = require("nvim-treesitter.parsers") +-- local ts_queries = require("nvim-treesitter.query") +--[[ table.insert(components.active[2], { +  provider = function() +    local node = require("nvim-treesitter.ts_utils").get_node_at_cursor() +    return ("%d:%s [%d, %d] - [%d, %d]") +      :format(node:symbol(), node:type(), node:range()) +  end, +  enabled = function() +    local ok, ts_parsers = pcall(require, "nvim-treesitter.parsers") +    return ok and ts_parsers.has_parser() +  end +}) ]] + +-- require'feline'.setup {} +require'feline'.setup { +    colors = { bg = colors.bg, fg = colors.fg }, +    components = components, +    vi_mode_colors = vi_mode_colors, +    force_inactive = { +        filetypes = { +            'packer', +            'NvimTree', +            'fugitive', +            'fugitiveblame' +        }, +        buftypes = {'terminal'}, +        bufnames = {} +    } +} +  |