aboutsummaryrefslogtreecommitdiff
path: root/lua/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'lua/plugins')
-rw-r--r--lua/plugins/airline.lua9
-rw-r--r--lua/plugins/autopairs.lua33
-rw-r--r--lua/plugins/bufferline.lua323
-rw-r--r--lua/plugins/bufferline.lua-202209041657.backup322
-rw-r--r--lua/plugins/cmp-22.10.14-23:39-bak.lua161
-rw-r--r--lua/plugins/cmp.lua220
-rw-r--r--lua/plugins/colorizer.lua6
-rw-r--r--lua/plugins/colorscheme.lua32
-rw-r--r--lua/plugins/feline.lua726
-rw-r--r--lua/plugins/floaterm.lua6
-rw-r--r--lua/plugins/fzf.lua66
-rw-r--r--lua/plugins/git.lua11
-rw-r--r--lua/plugins/gitsigns.lua1
-rw-r--r--lua/plugins/heirline.backup.lua733
-rw-r--r--lua/plugins/heirline.backup2.lua1921
-rw-r--r--lua/plugins/heirline.lua1191
-rw-r--r--lua/plugins/heirline.lua-202210111610.backup1452
-rw-r--r--lua/plugins/heirlinenew.lua1342
-rw-r--r--lua/plugins/linecolor.lua112
-rw-r--r--lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua301
-rw-r--r--lua/plugins/lsp-22.10.12-21:29-bak.lua301
-rw-r--r--lua/plugins/lsp-22.10.14-23:39-bak.lua422
-rw-r--r--lua/plugins/lsp-colors.lua9
-rw-r--r--lua/plugins/lsp.lua527
-rw-r--r--lua/plugins/lspOld.lsp531
-rw-r--r--lua/plugins/lspconfig.lua148
-rw-r--r--lua/plugins/lspkind.lua47
-rw-r--r--lua/plugins/lspsaga-22.10.13-22:51-bak.lua61
-rw-r--r--lua/plugins/lspsaga.lua145
-rw-r--r--lua/plugins/lualine.lua423
-rw-r--r--lua/plugins/mason.lua27
-rw-r--r--lua/plugins/neoscroll.lua21
-rw-r--r--lua/plugins/null-ls.lua26
-rw-r--r--lua/plugins/nvim-tree.lua68
-rw-r--r--lua/plugins/prettier.lua19
-rw-r--r--lua/plugins/tabline.lua22
-rw-r--r--lua/plugins/telescope.lua177
-rw-r--r--lua/plugins/toggleterm.lua90
-rw-r--r--lua/plugins/treesitter.lua34
-rw-r--r--lua/plugins/web-devicons.lua12
-rw-r--r--lua/plugins/winbar.lua35
-rw-r--r--lua/plugins/zen-mode.lua7
42 files changed, 0 insertions, 12120 deletions
diff --git a/lua/plugins/airline.lua b/lua/plugins/airline.lua
deleted file mode 100644
index 76f3655..0000000
--- a/lua/plugins/airline.lua
+++ /dev/null
@@ -1,9 +0,0 @@
--- airline
-vim.cmd([[
- let g:airline#extensions#tabline#enabled = 1
- let g:airline#extensions#tabline#show_buffers = 1
- let g:airline_powerline_fonts = 1
- let g:airline#extensions#tabline#buffer_nr_show = 1
- let g:airline#extensions#tagbar#enabled = 0
- let g:airline_theme='onedark'
-]])
diff --git a/lua/plugins/autopairs.lua b/lua/plugins/autopairs.lua
deleted file mode 100644
index 577e571..0000000
--- a/lua/plugins/autopairs.lua
+++ /dev/null
@@ -1,33 +0,0 @@
--- Setup nvim-cmp.
-local status_ok, npairs = pcall(require, "nvim-autopairs")
-if not status_ok then
- return
-end
-
-npairs.setup {
- check_ts = true,
- ts_config = {
- lua = { "string", "source" },
- javascript = { "string", "template_string" },
- java = false,
- },
- disable_filetype = { "TelescopePrompt", "spectre_panel" },
- fast_wrap = {
- map = "<M-e>",
- chars = { "{", "[", "(", '"', "'" },
- pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""),
- offset = 0, -- Offset from pattern match
- end_key = "$",
- keys = "qwertyuiopzxcvbnmasdfghjkl",
- check_comma = true,
- highlight = "PmenuSel",
- highlight_grey = "LineNr",
- },
-}
-
-local cmp_autopairs = require "nvim-autopairs.completion.cmp"
-local cmp_status_ok, cmp = pcall(require, "cmp")
-if not cmp_status_ok then
- return
-end
-cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = { tex = "" } })
diff --git a/lua/plugins/bufferline.lua b/lua/plugins/bufferline.lua
deleted file mode 100644
index 6488f29..0000000
--- a/lua/plugins/bufferline.lua
+++ /dev/null
@@ -1,323 +0,0 @@
-require("bufferline").setup({
- options = {
- numbers = "buffer_id", -- | "ordinal" | "buffer_id" | "both" | "none" | function({ ordinal, id, lower, raise }): string,
- close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- left_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
- --indicator = {
- -- icon = '', -- this should be omitted if indicator style is not 'icon'
- -- style = 'icon', -- | 'underline' | 'none',
- --},
- --indicator_icon = " ",
- --left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
- modified_icon = '●',
- left_trunc_marker = "",
- right_trunc_marker = "",
- show_buffer_close_icons = true,
- --diagnostics = "nvim_lsp",
- diagnostics = false, --"nvim_lsp", --false, -- | "nvim_lsp" | "coc",
- diagnostics_update_in_insert = false,
- buffer_close_icon = "",
- separator_style = "thin",
- enforce_regular_tabs = true,
- always_show_bufferline = true,
- max_name_length = 25,
- offsets = {
- {
- filetype = "NvimTree",
- text = "File Explorer",
- highlight = "StatusLine",
- text_align = "center",
- },
- },
- custom_areas = {
- right = function()
- local result = {}
- local error = vim.diagnostic.get_count(0, [[Error]])
- local warning = vim.diagnostic.get_count(0, [[Warning]])
- local info = vim.diagnostic.get_count(0, [[Information]])
- local hint = vim.diagnostic.get_count(0, [[Hint]])
-
- if error ~= 0 then
- result[1] = { text = "  " .. error, fg = "#EC5241" }
- end
-
- if warning ~= 0 then
- result[2] = { text = "  " .. warning, fg = "#EFB839" }
- end
-
- if hint ~= 0 then
- result[3] = { text = "  " .. hint, fg = "#A3BA5E" }
- end
-
- if info ~= 0 then
- result[4] = { text = "  " .. info, fg = "#7EA9A7" }
- end
-
- return result
- end,
- },
- },
- highlights = {
- background = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- tab = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- tab_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- --fg = tabline_sel_bg,
- },
- tab_close = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- buffer_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- buffer_selected = {
- fg = "002b36",
- bg = "#fdf6e3",
- bold = true,
- italic = true,
- },
- numbers = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- numbers_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- numbers_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- diagnostic = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- hint = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- hint_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- hint_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- hint_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- hint_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- hint_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- info = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- info_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- info_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- info_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- info_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- info_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- warning = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- warning_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- warning_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- warning_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- warning_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- warning_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- error = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- },
- error_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- error_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- error_diagnostic = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- },
- error_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- error_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- modified = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- modified_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- modified_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- duplicate_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true,
- },
- duplicate_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true
- },
- duplicate = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true
- },
- separator_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- separator_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- separator = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- indicator_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- pick_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- pick_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- pick = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- --offset_separator = {
- -- fg = win_separator_fg,
- -- bg = separator_background_color,
- --},
- }
-})
diff --git a/lua/plugins/bufferline.lua-202209041657.backup b/lua/plugins/bufferline.lua-202209041657.backup
deleted file mode 100644
index 1d45e5f..0000000
--- a/lua/plugins/bufferline.lua-202209041657.backup
+++ /dev/null
@@ -1,322 +0,0 @@
-require("bufferline").setup({
- options = {
- numbers = "buffer_id", -- | "ordinal" | "buffer_id" | "both" | "none" | function({ ordinal, id, lower, raise }): string,
- close_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- right_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- left_mouse_command = "Bdelete! %d", -- can be a string | function, see "Mouse actions"
- middle_mouse_command = nil, -- can be a string | function, see "Mouse actions"
- --indicator = {
- -- icon = '', -- this should be omitted if indicator style is not 'icon'
- -- style = 'icon', -- | 'underline' | 'none',
- --},
- --indicator_icon = " ",
- --left_mouse_command = "buffer %d", -- can be a string | function, see "Mouse actions"
- modified_icon = '●',
- left_trunc_marker = "",
- right_trunc_marker = "",
- show_buffer_close_icons = true,
- --diagnostics = "nvim_lsp",
- diagnostics = false, --"nvim_lsp", --false, -- | "nvim_lsp" | "coc",
- diagnostics_update_in_insert = false,
- buffer_close_icon = "",
- separator_style = "slant",
- enforce_regular_tabs = true,
- always_show_bufferline = true,
- max_name_length = 25,
- offsets = {
- {
- filetype = "NvimTree",
- text = "File Explorer",
- highlight = "StatusLine",
- text_align = "center",
- },
- },
- custom_areas = {
- right = function()
- local result = {}
- local error = vim.diagnostic.get_count(0, [[Error]])
- local warning = vim.diagnostic.get_count(0, [[Warning]])
- local info = vim.diagnostic.get_count(0, [[Information]])
- local hint = vim.diagnostic.get_count(0, [[Hint]])
-
- if error ~= 0 then
- result[1] = { text = "  " .. error, fg = "#EC5241" }
- end
-
- if warning ~= 0 then
- result[2] = { text = "  " .. warning, fg = "#EFB839" }
- end
-
- if hint ~= 0 then
- result[3] = { text = "  " .. hint, fg = "#A3BA5E" }
- end
-
- if info ~= 0 then
- result[4] = { text = "  " .. info, fg = "#7EA9A7" }
- end
-
- return result
- end,
- },
- },
- highlights = {
- background = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- tab = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- tab_selected = {
- fg = tabline_sel_bg,
- bg = "#002b36",
- },
- tab_close = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- close_button_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- buffer_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- buffer_selected = {
- fg = normal_fg,
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- numbers = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- numbers_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- numbers_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- diagnostic = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- hint = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- hint_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- hint_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- hint_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- hint_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- hint_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- info = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- info_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- info_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- info_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- info_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- info_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- warning = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- warning_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- warning_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- warning_diagnostic = {
- fg = "#fdf6e3",
- sp = "#002b36",
- bg = "#002b36",
- },
- warning_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- warning_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- error = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- },
- error_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- error_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- error_diagnostic = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- },
- error_diagnostic_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- error_diagnostic_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- sp = "#002b36",
- bold = true,
- italic = true,
- },
- modified = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- modified_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- modified_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- duplicate_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true,
- },
- duplicate_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true
- },
- duplicate = {
- fg = "#fdf6e3",
- bg = "#002b36",
- italic = true
- },
- separator_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- separator_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- separator = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- indicator_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- },
- pick_selected = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- pick_visible = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- pick = {
- fg = "#fdf6e3",
- bg = "#002b36",
- bold = true,
- italic = true,
- },
- --offset_separator = {
- -- fg = win_separator_fg,
- -- bg = separator_background_color,
- --},
- }
-})
diff --git a/lua/plugins/cmp-22.10.14-23:39-bak.lua b/lua/plugins/cmp-22.10.14-23:39-bak.lua
deleted file mode 100644
index 3b0a8f5..0000000
--- a/lua/plugins/cmp-22.10.14-23:39-bak.lua
+++ /dev/null
@@ -1,161 +0,0 @@
-local cmp_status_ok, cmp = pcall(require, "cmp")
-if not cmp_status_ok then
- return
-end
-
-vim.o.completeopt = "menu,menuone,noselect"
-
---require("luasnip/loaders/from_vscode").lazy_load()
---local luasnip = require "luasnip"
-
-cmp.setup {
- snippet = {
- expand = function(args)
- require("luasnip").lsp_expand(args.body)
- end,
- },
- mapping = {
- ['<C-Space>'] = cmp.mapping.complete(),
- ['<C-e>'] = cmp.mapping.close(),
- ['<CR>'] = cmp.mapping.confirm {
- behavior = cmp.ConfirmBehavior.Replace,
- select = true,
- },
- ['<Down>'] = cmp.mapping(cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Select }), {'i'}),
- ['<Up>'] = cmp.mapping(cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Select }), {'i'}),
- },
- sources = {
- { name = 'nvim_lsp' },
- { name = 'treesitter' },
- { name = 'luasnip' },
- }
-}
---local lspkind = require("lspkind")
---cmp.setup({
--- formatting = {
--- format = lspkind.cmp_format({
--- mode = "symbol", -- show only symbol annotations
--- maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
--- ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first)
---
--- -- The function below will be called before any actual modifications from lspkind
--- -- so that you can provide more controls on popup customization. (See [#30](https://github.com/onsails/lspkind-nvim/pull/30))
--- before = function(entry, vim_item)
--- --...
--- return vim_item
--- end,
--- }),
--- },
---})
---
---require("luasnip/loaders/from_vscode").lazy_load()
---
-----   פּ ﯟ  some other good icons
---local kind_icons = {
--- Text = "",
--- Method = "",
--- Function = "",
--- Constructor = "⚙️",
--- Field = "",
--- Variable = "",
--- Class = "ﴯ",
--- Interface = "",
--- Module = "",
--- Property = "ﰠ",
--- Unit = "",
--- Value = "",
--- Enum = "",
--- Keyword = "",
--- Snippet = "",
--- Color = "",
--- File = "",
--- Reference = "",
--- Folder = "",
--- EnumMember = "",
--- Constant = "",
--- Struct = "",
--- Event = "",
--- Operator = "",
--- TypeParameter = "",
---}
---
----- find more here: https://www.nerdfonts.com/cheat-sheet
---
---cmp.setup({
--- snippet = {
--- expand = function(args)
--- require("luasnip").lsp_expand(args.body)
--- end,
--- },
--- mapping = cmp.mapping.preset.insert({
--- ["<C-d>"] = cmp.mapping.scroll_docs(-4),
--- ["<C-f>"] = cmp.mapping.scroll_docs(4),
--- ["<C-Space>"] = cmp.mapping.complete(),
--- ["<C-e>"] = cmp.mapping.close(),
--- ["<CR>"] = cmp.mapping.confirm({
--- behavior = cmp.ConfirmBehavior.Replace,
--- select = true,
--- }),
--- }),
--- sources = cmp.config.sources({
--- { name = "path" },
--- { name = "nvim_lsp", keyword_length = 3 },
--- { name = "buffer", keyword_length = 3 },
--- { name = "luasnip", keyword_length = 4 },
--- { name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=], keyword_length = 3 },
--- --{ name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=] }, --exclamation mark hangs a bit without this
--- --{name = 'luasnip', keyword_length = 2},
--- }),
--- formatting = {
--- fields = { "kind", "abbr", "menu" },
--- format = function(entry, vim_item)
--- -- Kind icons
--- vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
--- -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
--- vim_item.menu = ({
--- nvim_lsp = "[LSP]",
--- luasnip = "[Snippet]",
--- buffer = "[Buffer]",
--- path = "[Path]",
--- })[entry.source.name]
--- return vim_item
--- end,
--- },
--- confirm_opts = {
--- behavior = cmp.ConfirmBehavior.Replace,
--- select = false,
--- },
--- window = {
--- documentation = {
--- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
--- },
--- },
--- experimental = {
--- ghost_text = true,
--- native_menu = false,
--- --view = {
--- -- entries = "native"
--- --},
--- },
---})
---
-----vim.cmd([[
----- set completeopt=menuone,noinsert,noselect
----- highlight! default link CmpItemKind CmpItemMenuDefault
-----]])
---
---cmp.setup.cmdline("/", {
--- mapping = cmp.mapping.preset.cmdline(),
--- sources = {
--- { name = "buffer" },
--- },
---})
---
---cmp.setup.cmdline(":", {
--- mapping = cmp.mapping.preset.cmdline(),
--- sources = cmp.config.sources({
--- { name = "path" },
--- }, {
--- { name = "cmdline" },
--- }),
---})
diff --git a/lua/plugins/cmp.lua b/lua/plugins/cmp.lua
deleted file mode 100644
index 122524c..0000000
--- a/lua/plugins/cmp.lua
+++ /dev/null
@@ -1,220 +0,0 @@
-
--- Setup nvim-cmp.
---vim.opt.completeopt = "menu,menuone,noselect"
-vim.g.completeopt = "menu,menuone,noselect,noinsert"
-local cmp_status_ok, cmp = pcall(require, "cmp")
-if not cmp_status_ok then
- return
-end
-local WIDE_HEIGHT = 40
-
-local opts = {
- -- whether to highlight the currently hovered symbol
- -- disable if your cpu usage is higher than you want it
- -- or you just hate the highlight
- -- default: true
- highlight_hovered_item = true,
- show_guides = true,
-}
-require("symbols-outline").setup(opts)
-
-
---local snippets_paths = function()
--- local plugins = { "friendly-snippets" }
--- local paths = {}
--- local path
--- local root_path = vim.env.HOME .. "/.vim/plugged/"
--- for _, plug in ipairs(plugins) do
--- path = root_path .. plug
--- if vim.fn.isdirectory(path) ~= 0 then
--- table.insert(paths, path)
--- end
--- end
--- return paths
---end
---
---require("luasnip.loaders.from_vscode").lazy_load({
--- paths = snippets_paths(),
--- include = nil, -- Load all languages
--- exclude = {},
---})
-
-require("luasnip.loaders.from_vscode").lazy_load()
-local lspkind = require("lspkind")
-local kind_icons = {
- Text = "",
- Method = "m", --"",
- Function = "",
- Constructor = "", --"⚙️",
- Field = "",
- Variable = "",
- Class = "",
- Interface = "",
- Module = "",
- Property = "",
- Unit = "",
- Value = "",
- Enum = "",
- Keyword = "",
- Snippet = "",
- Color = "",
- File = "",
- Reference = "",
- Folder = "",
- EnumMember = "",
- Constant = "",
- Struct = "",
- Event = "",
- Operator = "",
- TypeParameter = "",
-}
-cmp.setup({
- snippet = {
- expand = function(args)
- require("luasnip").lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
--- ["<CR>"] = cmp.mapping.confirm({
--- behavior = cmp.ConfirmBehavior.Replace,
--- select = true,
--- }),
- ['<C-y>'] = cmp.mapping.confirm({ select = true }),
- ["<C-e>"] = cmp.mapping.close(),
- --['<CR>'] = cmp.config.disable,
- ["<C-u>"] = cmp.mapping.scroll_docs(-4),
- ["<C-d>"] = cmp.mapping.scroll_docs(4),
- ["<C-Space>"] = cmp.mapping.complete(),
- ['<C-o>'] = function(fallback)
- if cmp.visible() then
- cmp.mapping.confirm({ select = true })(fallback)
- else
- cmp.mapping.complete()(fallback)
- end
- end
- }),
-
- sources = cmp.config.sources({
- { name = "path" },
- { name = "nvim_lsp", keyword_length = 3 },
- { name = "luasnip", keyword_length = 4 },
- --{ name = "buffer", keyword_length = 3 },
- { name = "buffer", option = { get_bufnrs = function()
- return vim.api.nvim_list_bufs()
- end
- }},
- --{ name = 'treesitter' },
- { name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=], keyword_length = 3 },
- --{ name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=] }, --exclamation mark hangs a bit without this
- { name = "cmp_git"},
- --{name = 'luasnip', keyword_length = 2},
- }),
- formatting = {
- --formatting = {
- format = function(entry, vim_item)
- --format = function(entry, vim_item,)
- --local icons = kind_icons
- --vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
- -- vim_item.kind = lspkind.presets.default[vim_item.kind]
- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
- --vim_item.kind = string.format("%s %s", icons[vim_item.kind], vim_item.kind)
- vim_item.menu = ({
- nvim_lsp = "Lsp",
- luasnip = "Snip",
- buffer = "Buf",
- path = "Path",
- cmdline = "Cmd",
- })[entry.source.name]
- return vim_item
- end,
- --},
-
- --
- --
- --fields = { "abbr", "kind", "menu" },
- -- format = lspkind.cmp_format({
- -- mode = 'symbol_text', -- show only symbol annotations
- -- maxwidth = 50, -- prevent the popup from showing more than provided characters (e.g 50 will not show more than 50 characters)
- -- })
- --format = require('lspkind').cmp_format {
- -- with_text = true,
- -- menu = {
- -- luasnip = "Snip",
- -- buffer = "Buf",
- -- nvim_lsp = "LSP",
- -- path = "Path",
- -- cmdline = "Cmd",
- -- cmp_git = "Git",
- -- },
- --},
- },
- --format = function(entry, vim_item)
- -- -- Kind icons
- -- --vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
- -- vim_item.kind = lspkind.presets.default[vim_item.kind]
- -- -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
- -- vim_item.menu = ({
- -- nvim_lsp = "LSP",
- -- luasnip = "Snip",
- -- buffer = "Buf",
- -- path = "Path",
- -- cmdline = "Cmd",
- -- })[entry.source.name]
- -- return vim_item
- --end,
- confirm_opts = {
- behavior = cmp.ConfirmBehavior.Replace,
- select = false,
- },
-
-
- event = {},
-
- experimental = {
- ghost_text = true,
- hl_group = 'Nontext',
- },
-
- view = {
- entries = { name = 'custom', selection_order = 'top_down' },
- },
-
- window = {
- --completion = cmp.config.window.bordered(),
- completion = {
- border = { '', '', '', ' ', '', '', '', ' ' },
- --border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
- --border = { '', '', '', '', '', '', '', '' },
- --border = "CmpBorder",
- --winhighlight = 'Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None',
- winhighlight = "Normal:CmpPmenu,CursorLine:PmenuSel,Search:None",
- },
- --documentation = cmp.config.window.bordered(),
- documentation = {
- max_height = math.floor(WIDE_HEIGHT * (WIDE_HEIGHT / vim.o.lines)),
- max_width = math.floor((WIDE_HEIGHT * 2) * (vim.o.columns / (WIDE_HEIGHT * 2 * 16 / 9))),
- border = { '', '', '', ' ', '', '', '', ' ' },
- --border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
- winhighlight = 'FloatBorder:NormalFloat',
- },
- },
-})
-
-
-cmp.setup.cmdline("/", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = {
- { name = "buffer" },
- },
-})
-
-cmp.setup.cmdline(":", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = cmp.config.sources({
- { name = "path" },
- }, {
- { name = "cmdline" },
- }),
-})
-
-
diff --git a/lua/plugins/colorizer.lua b/lua/plugins/colorizer.lua
deleted file mode 100644
index 14d25e2..0000000
--- a/lua/plugins/colorizer.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-local status, colorizer = pcall(require, "colorizer")
-if (not status) then return end
-
-colorizer.setup({
- '*';
-})
diff --git a/lua/plugins/colorscheme.lua b/lua/plugins/colorscheme.lua
deleted file mode 100644
index 35e4f47..0000000
--- a/lua/plugins/colorscheme.lua
+++ /dev/null
@@ -1,32 +0,0 @@
--- Colorscheme
--- ayu gruvbox molokai onedark srcery everblush vscode edge nightfly
-local colorscheme = "onedark"
-local status_ok, _ = pcall(vim.cmd, "colorscheme " .. colorscheme)
-if not status_ok then
- vim.notify("colorscheme " .. colorscheme .. " not found!")
- return
-end
-
-vim.api.nvim_command("syntax on")
-vim.api.nvim_command("highlight Normal guibg=none")
-vim.api.nvim_command("highlight SignColumn guibg=none")
-vim.api.nvim_command("highlight TabLine guibg=#333842 gui=bold")
---vim.api.nvim_command("highlight TabLine guibg=none gui=bold")
-vim.api.nvim_command("highlight StatusLine guibg=#333842 gui=bold")
---vim.api.nvim_command("highlight StatusLine guibg=#333842 guifg=#d6d3ea gui=bold")
---vim.api.nvim_command("highlight StatusLine guibg=none gui=bold")
---vim.api.nvim_command("highlight TabLineNC guibg=none gui=bold")
---vim.api.nvim_command("highlight TabLineSel guibg=#bd93f9 gui=bold")
-vim.api.nvim_command("highlight TabLineSel guibg=#333842 gui=bold")
-vim.api.nvim_command("highlight TabLineFill guibg=none gui=bold")
-vim.api.nvim_command("highlight WinBar guibg=none gui=bold")
-vim.api.nvim_command("highlight NormalFloat guibg=none")
---vim.api.nvim_command("highlight PmenuSel guibg=none")
---vim.api.nvim_command("highlight winblend guibg=none")
---vim.api.nvim_command("highlight StatusLine guibg=none gui=bold")
---vim.api.nvim_command("highlight StatusLineNC guibg=none gui=bold")
---vim.api.nvim_command("highlight StatusLineNC guibg=none ctermfg=Cyan guifg=#80a0ff gui=bold")
-
-require("notify").setup({
- background_colour = "#000000",
-})
diff --git a/lua/plugins/feline.lua b/lua/plugins/feline.lua
deleted file mode 100644
index f259108..0000000
--- a/lua/plugins/feline.lua
+++ /dev/null
@@ -1,726 +0,0 @@
-require('feline').setup()
---local lsp = require("feline.providers.lsp")
---local vi_mode_utils = require("feline.providers.vi_mode")
---local navic = require("nvim-navic")
---
---local force_inactive = {
--- filetypes = {},
--- buftypes = {},
--- bufnames = {},
---}
---
---local winbar_components = {
--- active = { {}, {}, {} },
--- inactive = { {}, {}, {} },
---}
---
---local components = {
--- active = { {}, {}, {} },
--- inactive = { {}, {}, {} },
---}
---
---local colors = {
--- bg = "#282828",
--- black = "#282828",
--- yellow = "#d8a657",
--- cyan = "#89b482",
--- oceanblue = "#45707a",
--- green = "#a9b665",
--- orange = "#e78a4e",
--- violet = "#d3869b",
--- magenta = "#c14a4a",
--- white = "#a89984",
--- fg = "#a89984",
--- skyblue = "#7daea3",
--- red = "#ea6962",
---}
---
---local vi_mode_colors = {
--- NORMAL = "green",
--- OP = "green",
--- INSERT = "red",
--- CONFIRM = "red",
--- VISUAL = "skyblue",
--- LINES = "skyblue",
--- BLOCK = "skyblue",
--- REPLACE = "violet",
--- ["V-REPLACE"] = "violet",
--- ENTER = "cyan",
--- MORE = "cyan",
--- SELECT = "orange",
--- COMMAND = "green",
--- SHELL = "green",
--- TERM = "green",
--- NONE = "yellow",
---}
---
---local vi_mode_text = {
--- NORMAL = "<|",
--- OP = "<|",
--- INSERT = "|>",
--- VISUAL = "<>",
--- LINES = "<>",
--- BLOCK = "<>",
--- REPLACE = "<>",
--- ["V-REPLACE"] = "<>",
--- ENTER = "<>",
--- MORE = "<>",
--- SELECT = "<>",
--- COMMAND = "<|",
--- SHELL = "<|",
--- TERM = "<|",
--- NONE = "<>",
--- CONFIRM = "|>",
---}
---
---local buffer_not_empty = function()
--- if vim.fn.empty(vim.fn.expand("%:t")) ~= 1 then
--- return true
--- end
--- return false
---end
---
---local checkwidth = function()
--- local squeeze_width = vim.fn.winwidth(0) / 2
--- if squeeze_width > 40 then
--- return true
--- end
--- return false
---end
---
---force_inactive.filetypes = {
--- "NvimTree",
--- "dbui",
--- "packer",
--- "startify",
--- "fugitive",
--- "fugitiveblame",
---}
---
---force_inactive.buftypes = {
--- "terminal",
---}
---
----- STATUSLINE
----- LEFT
---
----- vi-mode
---components.active[1][1] = {
--- provider = " NV-IDE ",
--- hl = function()
--- local val = {}
---
--- val.bg = vi_mode_utils.get_mode_color()
--- val.fg = "black"
--- val.style = "bold"
---
--- return val
--- end,
--- right_sep = " ",
---}
----- vi-symbol
---components.active[1][2] = {
--- provider = function()
--- return vi_mode_text[vi_mode_utils.get_vim_mode()]
--- end,
--- hl = function()
--- local val = {}
--- val.fg = vi_mode_utils.get_mode_color()
--- val.bg = "bg"
--- val.style = "bold"
--- return val
--- end,
--- right_sep = " ",
---}
----- filename
---components.active[1][3] = {
--- provider = function()
--- return vim.fn.expand("%:F")
--- end,
--- hl = {
--- fg = "white",
--- bg = "bg",
--- style = "bold",
--- },
---}
----- MID
---
----- gitBranch
---components.active[2][1] = {
--- provider = "git_branch",
--- hl = {
--- fg = "yellow",
--- bg = "bg",
--- style = "bold",
--- },
---}
----- diffAdd
---components.active[2][2] = {
--- provider = "git_diff_added",
--- hl = {
--- fg = "green",
--- bg = "bg",
--- style = "bold",
--- },
---}
----- diffModfified
---components.active[2][3] = {
--- provider = "git_diff_changed",
--- hl = {
--- fg = "orange",
--- bg = "bg",
--- style = "bold",
--- },
---}
----- diffRemove
---components.active[2][4] = {
--- provider = "git_diff_removed",
--- hl = {
--- fg = "red",
--- bg = "bg",
--- style = "bold",
--- },
---}
---
----- RIGHT
---
----- fileIcon
---components.active[3][1] = {
--- provider = function()
--- local filename = vim.fn.expand("%:t")
--- local extension = vim.fn.expand("%:e")
--- local icon = require("nvim-web-devicons").get_icon(filename, extension)
--- if icon == nil then
--- icon = ""
--- end
--- return icon
--- end,
--- hl = function()
--- local val = {}
--- local filename = vim.fn.expand("%:t")
--- local extension = vim.fn.expand("%:e")
--- local icon, name = require("nvim-web-devicons").get_icon(filename, extension)
--- if icon ~= nil then
--- val.fg = vim.fn.synIDattr(vim.fn.hlID(name), "fg")
--- else
--- val.fg = "white"
--- end
--- val.bg = "bg"
--- val.style = "bold"
--- return val
--- end,
--- right_sep = " ",
---}
----- fileType
---components.active[3][2] = {
--- provider = "file_type",
--- hl = function()
--- local val = {}
--- local filename = vim.fn.expand("%:t")
--- local extension = vim.fn.expand("%:e")
--- local icon, name = require("nvim-web-devicons").get_icon(filename, extension)
--- if icon ~= nil then
--- val.fg = vim.fn.synIDattr(vim.fn.hlID(name), "fg")
--- else
--- val.fg = "white"
--- end
--- val.bg = "bg"
--- val.style = "bold"
--- return val
--- end,
--- right_sep = " ",
---}
----- fileSize
---components.active[3][3] = {
--- provider = "file_size",
--- enabled = function()
--- return vim.fn.getfsize(vim.fn.expand("%:t")) > 0
--- end,
--- hl = {
--- fg = "skyblue",
--- bg = "bg",
--- style = "bold",
--- },
--- right_sep = " ",
---}
----- fileFormat
---components.active[3][4] = {
--- provider = function()
--- return "" .. vim.bo.fileformat:upper() .. ""
--- end,
--- hl = {
--- fg = "white",
--- bg = "bg",
--- style = "bold",
--- },
--- right_sep = " ",
---}
----- fileEncode
---components.active[3][5] = {
--- provider = "file_encoding",
--- hl = {
--- fg = "white",
--- bg = "bg",
--- style = "bold",
--- },
--- right_sep = " ",
---}
---components.active[3][6] = {
--- provider = "position",
--- hl = {
--- fg = "white",
--- bg = "bg",
--- style = "bold",
--- },
--- right_sep = " ",
---}
----- linePercent
---components.active[3][7] = {
--- provider = "line_percentage",
--- hl = {
--- fg = "white",
--- bg = "bg",
--- style = "bold",
--- },
--- right_sep = " ",
---}
----- scrollBar
---components.active[3][8] = {
--- provider = "scroll_bar",
--- hl = {
--- fg = "yellow",
--- bg = "bg",
--- },
---}
---
----- INACTIVE
---
----- fileType
---components.inactive[1][1] = {
--- provider = "file_type",
--- hl = {
--- fg = "black",
--- bg = "cyan",
--- style = "bold",
--- },
--- left_sep = {
--- str = " ",
--- hl = {
--- fg = "NONE",
--- bg = "cyan",
--- },
--- },
--- right_sep = {
--- {
--- str = " ",
--- hl = {
--- fg = "NONE",
--- bg = "cyan",
--- },
--- },
--- " ",
--- },
---}
---
----- WINBAR
----- LEFT
---
----- nvimGps
---winbar_components.active[1][1] = {
--- provider = function()
--- return navic.get_location()
--- end,
--- enabled = function()
--- return navic.is_available()
--- end,
--- hl = {
--- fg = "orange",
--- style = "bold",
--- },
---}
---
----- MID
---
----- RIGHT
---
----- LspName
---winbar_components.active[3][1] = {
--- provider = "lsp_client_names",
--- hl = {
--- fg = "yellow",
--- style = "bold",
--- },
--- right_sep = " ",
---}
----- diagnosticErrors
---winbar_components.active[3][2] = {
--- provider = "diagnostic_errors",
--- enabled = function()
--- return lsp.diagnostics_exist(vim.diagnostic.severity.ERROR)
--- end,
--- hl = {
--- fg = "red",
--- style = "bold",
--- },
---}
----- diagnosticWarn
---winbar_components.active[3][3] = {
--- provider = "diagnostic_warnings",
--- enabled = function()
--- return lsp.diagnostics_exist(vim.diagnostic.severity.WARN)
--- end,
--- hl = {
--- fg = "yellow",
--- style = "bold",
--- },
---}
----- diagnosticHint
---winbar_components.active[3][4] = {
--- provider = "diagnostic_hints",
--- enabled = function()
--- return lsp.diagnostics_exist(vim.diagnostic.severity.HINT)
--- end,
--- hl = {
--- fg = "cyan",
--- style = "bold",
--- },
---}
----- diagnosticInfo
---winbar_components.active[3][5] = {
--- provider = "diagnostic_info",
--- enabled = function()
--- return lsp.diagnostics_exist(vim.diagnostic.severity.INFO)
--- end,
--- hl = {
--- fg = "skyblue",
--- style = "bold",
--- },
---}
---
----- INACTIVE
---
----- fileType
---winbar_components.inactive[1][1] = {
--- provider = "file_type",
--- hl = {
--- fg = "black",
--- bg = "cyan",
--- style = "bold",
--- },
--- left_sep = {
--- str = " ",
--- hl = {
--- fg = "NONE",
--- bg = "cyan",
--- },
--- },
--- right_sep = {
--- {
--- str = " ",
--- hl = {
--- fg = "NONE",
--- bg = "cyan",
--- },
--- },
--- " ",
--- },
---}
---
---require("feline").setup({
--- theme = colors,
--- default_bg = bg,
--- default_fg = fg,
--- vi_mode_colors = vi_mode_colors,
--- components = components,
--- force_inactive = force_inactive,
---})
---
---require("feline").winbar.setup({
--- components = winbar_components,
--- force_inactive = force_inactive,
---})
-----local M = { vi = {} }
-----
-----
-----M.vi.text = {
----- n = "NORMAL",
----- no = "NORMAL",
----- i = "INSERT",
----- v = "VISUAL",
----- V = "V-LINE",
----- [""] = "V-BLOCK",
----- c = "COMMAND",
----- cv = "COMMAND",
----- ce = "COMMAND",
----- R = "REPLACE",
----- Rv = "REPLACE",
----- s = "SELECT",
----- S = "SELECT",
----- [""] = "SELECT",
----- t = "TERMINAL",
-----}
-----
-----M.vi.colors = {
----- n = "FlnViCyan",
----- no = "FlnViCyan",
----- i = "FlnStatus",
----- v = "FlnViMagenta",
----- V = "FlnViMagenta",
----- [""] = "FlnViMagenta",
----- R = "FlnViRed",
----- Rv = "FlnViRed",
----- r = "FlnViBlue",
----- rm = "FlnViBlue",
----- s = "FlnViMagenta",
----- S = "FlnViMagenta",
----- [""] = "FelnMagenta",
----- c = "FlnViYellow",
----- ["!"] = "FlnViBlue",
----- t = "FlnViBlue",
-----}
-----
-----M.vi.sep = {
----- n = "FlnCyan",
----- no = "FlnCyan",
----- i = "FlnStatusBg",
----- v = "FlnMagenta",
----- V = "FlnMagenta",
----- [""] = "FlnMagenta",
----- R = "FlnRed",
----- Rv = "FlnRed",
----- r = "FlnBlue",
----- rm = "FlnBlue",
----- s = "FlnMagenta",
----- S = "FlnMagenta",
----- [""] = "FelnMagenta",
----- c = "FlnYellow",
----- ["!"] = "FlnBlue",
----- t = "FlnBlue",
-----}
-----
-----M.icons = {
----- locker = "", -- #f023
----- page = "☰", -- 2630
----- line_number = "", -- e0a1
----- connected = "", -- f817
----- dos = "", -- e70f
----- unix = "", -- f17c
----- mac = "", -- f179
----- mathematical_L = "𝑳",
----- vertical_bar = "┃",
----- vertical_bar_thin = "│",
----- left = "",
----- right = "",
----- block = "█",
----- left_filled = "",
----- right_filled = "",
----- slant_left = "",
----- slant_left_thin = "",
----- slant_right = "",
----- slant_right_thin = "",
----- slant_left_2 = "",
----- slant_left_2_thin = "",
----- slant_right_2 = "",
----- slant_right_2_thin = "",
----- left_rounded = "",
----- left_rounded_thin = "",
----- right_rounded = "",
----- right_rounded_thin = "",
----- circle = "●",
-----}
-----
-----return M
------- Feline statusline definition.
-------
------- Note: This statusline does not define any colors. Instead the statusline is
------- built on custom highlight groups that I define. The colors for these
------- highlight groups are pulled from the current colorscheme applied. Check the
------- file: `lua/eden/modules/ui/colors.lua` to see how they are defined.
-----
-----local u = require("eden.modules.ui.feline.util")
-----local fmt = string.format
-----
------- "┃", "█", "", "", "", "", "", "", "●"
-----
-----local get_diag = function(str)
----- local count = vim.lsp.diagnostic.get_count(0, str)
----- return (count > 0) and " " .. count .. " " or ""
-----end
-----
-----local function vi_mode_hl()
----- return u.vi.colors[vim.fn.mode()] or "FlnViBlack"
-----end
-----
-----local function vi_sep_hl()
----- return u.vi.sep[vim.fn.mode()] or "FlnBlack"
-----end
-----
-----local c = {
----- vimode = {
----- provider = function()
----- return string.format(" %s ", u.vi.text[vim.fn.mode()])
----- end,
----- hl = vi_mode_hl,
----- right_sep = { str = " ", hl = vi_sep_hl },
----- },
----- gitbranch = {
----- provider = "git_branch",
----- icon = " ",
----- hl = "FlnGitBranch",
----- right_sep = { str = " ", hl = "FlnGitBranch" },
----- enabled = function()
----- return vim.b.gitsigns_status_dict ~= nil
----- end,
----- },
----- file_type = {
----- provider = function()
----- return fmt(" %s ", vim.bo.filetype:upper())
----- end,
----- hl = "FlnAlt",
----- },
----- fileinfo = {
----- provider = { name = "file_info", opts = { type = "relative" } },
----- hl = "FlnAlt",
----- left_sep = { str = " ", hl = "FlnAltSep" },
----- right_sep = { str = "", hl = "FlnAltSep" },
----- },
----- file_enc = {
----- provider = function()
----- local os = u.icons[vim.bo.fileformat] or ""
----- return fmt(" %s %s ", os, vim.bo.fileencoding)
----- end,
----- hl = "StatusLine",
----- left_sep = { str = u.icons.left_filled, hl = "FlnAltSep" },
----- },
----- cur_position = {
----- provider = function()
----- -- TODO: What about 4+ diget line numbers?
----- return fmt(" %3d:%-2d ", unpack(vim.api.nvim_win_get_cursor(0)))
----- end,
----- hl = vi_mode_hl,
----- left_sep = { str = u.icons.left_filled, hl = vi_sep_hl },
----- },
----- cur_percent = {
----- provider = function()
----- return " " .. require("feline.providers.cursor").line_percentage() .. " "
----- end,
----- hl = vi_mode_hl,
----- left_sep = { str = u.icons.left, hl = vi_mode_hl },
----- },
----- default = { -- needed to pass the parent StatusLine hl group to right hand side
----- provider = "",
----- hl = "StatusLine",
----- },
----- lsp_status = {
----- provider = function()
----- return require("lsp-status").status()
----- end,
----- hl = "FlnStatus",
----- left_sep = { str = "", hl = "FlnStatusBg", always_visible = true },
----- right_sep = { str = "", hl = "FlnErrorStatus", always_visible = true },
----- },
----- lsp_error = {
----- provider = function()
----- return get_diag("Error")
----- end,
----- hl = "FlnError",
----- right_sep = { str = "", hl = "FlnWarnError", always_visible = true },
----- },
----- lsp_warn = {
----- provider = function()
----- return get_diag("Warning")
----- end,
----- hl = "FlnWarn",
----- right_sep = { str = "", hl = "FlnInfoWarn", always_visible = true },
----- },
----- lsp_info = {
----- provider = function()
----- return get_diag("Information")
----- end,
----- hl = "FlnInfo",
----- right_sep = { str = "", hl = "FlnHintInfo", always_visible = true },
----- },
----- lsp_hint = {
----- provider = function()
----- return get_diag("Hint")
----- end,
----- hl = "FlnHint",
----- right_sep = { str = "", hl = "FlnBgHint", always_visible = true },
----- },
-----
----- in_fileinfo = {
----- provider = "file_info",
----- hl = "StatusLine",
----- },
----- in_position = {
----- provider = "position",
----- hl = "StatusLine",
----- },
-----}
-----
-----local active = {
----- { -- left
----- c.vimode,
----- c.gitbranch,
----- c.fileinfo,
----- c.default, -- must be last
----- },
----- { -- right
----- c.lsp_status,
----- c.lsp_error,
----- c.lsp_warn,
----- c.lsp_info,
----- c.lsp_hint,
----- c.file_type,
----- c.file_enc,
----- c.cur_position,
----- c.cur_percent,
----- },
-----}
-----
-----local inactive = {
----- { c.in_fileinfo }, -- left
----- { c.in_position }, -- right
-----}
-----
------- -- Define autocmd that generates the highlight groups from the new colorscheme
------- -- Then reset the highlights for feline
------- edn.aug.FelineColorschemeReload = {
------- {
------- { "SessionLoadPost", "ColorScheme" },
------- function()
------- require("eden.modules.ui.feline.colors").gen_highlights()
------- -- This does not look like it is required. If this is called I see the ^^^^^^ that
------- -- seperates the two sides of the bar. Since the entire config uses highlight groups
------- -- all that is required is to redefine them.
------- -- require("feline").reset_highlights()
------- end,
------- },
------- }
-----
-----require("feline").setup({
----- components = { active = active, inactive = inactive },
----- highlight_reset_triggers = {},
----- force_inactive = {
----- filetypes = {
----- "NvimTree",
----- "packer",
----- "dap-repl",
----- "dapui_scopes",
----- "dapui_stacks",
----- "dapui_watches",
----- "dapui_repl",
----- "LspTrouble",
----- "qf",
----- "help",
----- },
----- buftypes = { "terminal" },
----- bufnames = {},
----- },
----- disable = {
----- filetypes = {
----- "dashboard",
----- "startify",
----- },
----- },
-----})
diff --git a/lua/plugins/floaterm.lua b/lua/plugins/floaterm.lua
deleted file mode 100644
index ea554af..0000000
--- a/lua/plugins/floaterm.lua
+++ /dev/null
@@ -1,6 +0,0 @@
-vim.cmd([[
- let g:floaterm_keymap_new = '<leader>t'
- let g:floaterm_keymap_prev = '<leader>tn'
- let g:floaterm_keymap_next = '<leader>tp'
- let g:floaterm_keymap_toggle = '<leader>tt'
-]])
diff --git a/lua/plugins/fzf.lua b/lua/plugins/fzf.lua
deleted file mode 100644
index 4195cd6..0000000
--- a/lua/plugins/fzf.lua
+++ /dev/null
@@ -1,66 +0,0 @@
-vim.cmd([[
- " FZF fuzzy finder
- "---------------------------------------
- " Enable per-command history.
- " CTRL-N and CTRL-P will be automatically bound to next-history and
- " previous-history instead of down and up. If you don't like the change,
- " explicitly bind the keys to down and up in your $FZF_DEFAULT_OPTS.
- let g:fzf_history_dir = '~/.local/share/fzf-history'
- map <leader>fz :FZF<CR>
- map <leader>a :Files<CR>
- map <leader>l :Lines<CR>
- map <leader>L :BLines<CR>
- map <leader>B :Buffers<CR>
- map <leader>h :History:<CR>
- nnoremap <leader>g :Rg<CR>
- "nnoremap <leader>t :Tags<CR>
- nnoremap <leader>m :Marks<CR>
- " This is the default extra key bindings
- let g:fzf_action = {
- \ 'ctrl-t': 'tab split',
- \ 'ctrl-x': 'split',
- \ 'ctrl-y': 'vsplit' }
- let g:fzf_tags_command = 'ctags -R'
- " Border color
- let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height': 0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border': 'sharp' } }
- let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline'
- let $FZF_DEFAULT_COMMAND="rg --files --hidden"
- " Customize fzf colors to match your color scheme
- let g:fzf_colors =
- \ { 'fg': ['fg', 'Normal'],
- \ 'bg': ['bg', 'Normal'],
- \ 'hl': ['fg', 'Comment'],
- \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
- \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
- \ 'hl+': ['fg', 'Statement'],
- \ 'info': ['fg', 'PreProc'],
- \ 'border': ['fg', 'Ignore'],
- \ 'prompt': ['fg', 'Conditional'],
- \ 'pointer': ['fg', 'Exception'],
- \ 'marker': ['fg', 'Keyword'],
- \ 'spinner': ['fg', 'Label'],
- \ 'header': ['fg', 'Comment'] }
- " Get Files
- command! -bang -nargs=? -complete=dir Files
- \ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), <bang>0)
- " Get text in files with Rg
- command! -bang -nargs=* Rg
- \ call fzf#vim#grep(
- \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
- \ fzf#vim#with_preview(), <bang>0)
- " Ripgrep advanced
- function! RipgrepFzf(query, fullscreen)
- let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
- let initial_command = printf(command_fmt, shellescape(a:query))
- let reload_command = printf(command_fmt, '{q}')
- let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]}
- call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
- endfunction
- command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
- " Git grep
- command! -bang -nargs=* GGrep
- \ call fzf#vim#grep(
- \ 'git grep --line-number '.shellescape(<q-args>), 0,
- \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0)
- command! -bang FM call fzf#run(fzf#wrap({'source': 'cat ~/.fzf-marks | sed "s/.*: \(.*\)$/\1/" | sed "s#~#${HOME}#"', 'sink': 'lcd'}, <bang>0))
-]])
diff --git a/lua/plugins/git.lua b/lua/plugins/git.lua
deleted file mode 100644
index 963f7f9..0000000
--- a/lua/plugins/git.lua
+++ /dev/null
@@ -1,11 +0,0 @@
-local status, git = pcall(require, "git")
-if (not status) then return end
-
-git.setup({
- keymaps = {
- -- Open blame window
- blame = "<Leader>gb",
- -- Open file/folder in git repository
- browse = "<Leader>go",
- }
-})
diff --git a/lua/plugins/gitsigns.lua b/lua/plugins/gitsigns.lua
deleted file mode 100644
index 53d1a1e..0000000
--- a/lua/plugins/gitsigns.lua
+++ /dev/null
@@ -1 +0,0 @@
-require('gitsigns').setup {}
diff --git a/lua/plugins/heirline.backup.lua b/lua/plugins/heirline.backup.lua
deleted file mode 100644
index d65de92..0000000
--- a/lua/plugins/heirline.backup.lua
+++ /dev/null
@@ -1,733 +0,0 @@
-local conditions = require("heirline.conditions")
-local utils = require("heirline.utils")
-
-require("nvim-gps").setup({
- icons = {
- ["class-name"] = " ",
- ["function-name"] = " ",
- ["method-name"] = " ",
- ["container-name"] = "炙",
- ["tag-name"] = "炙",
- },
-})
-
-vim.o.laststatus = 3
-
-local colors = {
- bg = "#333842",
- brown = "#504945",
- white = "#f8f8f0",
- grey = "#8F908A",
- black = "#000000",
- pink = "#f92672",
- green = "#a6e22e",
- blue = "#66d9ef",
- yellow = "#e6db74",
- orange = "#fd971f",
- purple = "#ae81ff",
- red = "#e95678",
- diag = {
- warn = utils.get_highlight("DiagnosticSignWarn").fg,
- error = utils.get_highlight("DiagnosticSignError").fg,
- hint = utils.get_highlight("DiagnosticSignHint").fg,
- info = utils.get_highlight("DiagnosticSignInfo").fg,
- },
- git = {
- del = "#e95678",
- add = "#a6e22e",
- change = "#ae81ff",
- },
-}
-
-local ViMode = {
- -- get vim current mode, this information will be required by the provider
- -- and the highlight functions, so we compute it only once per component
- -- evaluation and store it as a component attribute
- init = function(self)
- self.mode = vim.fn.mode(1) -- :h mode()
- end,
- -- Now we define some dictionaries to map the output of mode() to the
- -- corresponding string and color. We can put these into `static` to compute
- -- them at initialisation time.
- static = {
- mode_names = {
- -- change the strings if you like it vvvvverbose!
- ["n"] = "NORMAL ",
- ["no"] = "N·OPERATOR PENDING ",
- ["v"] = "VISUAL ",
- ["V"] = "V·LINE ",
- [""] = "V·BLOCK ",
- ["s"] = "SELECT ",
- ["S"] = "S·LINE ",
- [""] = "S·BLOCK ",
- ["i"] = "INSERT ",
- ["R"] = "REPLACE ",
- ["Rv"] = "V·REPLACE ",
- ["c"] = "COMMAND ",
- ["cv"] = "VIM EX ",
- ["ce"] = "EX ",
- ["r"] = "PROMPT ",
- ["rm"] = "MORE ",
- ["r?"] = "CONFIRM ",
- ["!"] = "SHELL ",
- ["t"] = "TERMINAL ",
- },
- mode_colors = {
- n = colors.green,
- i = colors.pink,
- v = colors.blue,
- V = colors.blue,
- [""] = colors.blue,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- },
- -- We can now access the value of mode() that, by now, would have been
- -- computed by `init()` and use it to index our strings dictionary.
- -- note how `static` fields become just regular attributes once the
- -- component is instantiated.
- -- To be extra meticulous, we can also add some vim statusline syntax to
- -- control the padding and make sure our string is always at least 2
- -- characters long. Plus a nice Icon.
- provider = function(self)
- return " %2(" .. self.mode_names[self.mode] .. "%)"
- end,
- -- Same goes for the highlight. Now the foreground will change according to the current mode.
- hl = function(self)
- local mode = self.mode:sub(1, 1) -- get only the first mode character
- return { bg = self.mode_colors[mode], fg = colors.bg, bold = true }
- end,
-}
-
-local FileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
--- We can now define some children separately and add them later
-
-local FileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color, bg = colors.bg }
- end,
-}
-
-local FileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "[No Name]"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- hl = { fg = utils.get_highlight("Directory").fg, bg = colors.bg },
-}
-
-local FileFlags = {
- {
- provider = function()
- if vim.bo.modified then
- return " [+]"
- end
- end,
- hl = { fg = colors.green, bg = colors.bg },
- },
- {
- provider = function()
- if not vim.bo.modifiable or vim.bo.readonly then
- return ""
- end
- end,
- hl = { fg = colors.orange },
- },
-}
-
--- Now, let's say that we want the filename color to change if the buffer is
--- modified. Of course, we could do that directly using the FileName.hl field,
--- but we'll see how easy it is to alter existing components using a "modifier"
--- component
-
-local FileNameModifer = {
- hl = function()
- if vim.bo.modified then
- -- use `force` because we need to override the child's hl foreground
- return { fg = colors.cyan, bold = true, force = true, bg = colors.bg }
- end
- end,
-}
-
--- let's add the children to our FileNameBlock component
-FileNameBlock = utils.insert(
- FileNameBlock,
- FileIcon,
- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local Diagnostics = {
- condition = conditions.has_diagnostics,
- static = {
- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint, bg = colors.bg },
- },
-}
-
-local Git = {
- condition = conditions.is_git_repo,
- init = function(self)
- self.status_dict = vim.b.gitsigns_status_dict
- self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
- end,
- hl = { fg = colors.orange, bg = colors.bg },
- {
- -- git branch name
- provider = function(self)
- return " " .. self.status_dict.head
- end,
- hl = { bold = true, bg = colors.bg },
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- provider = " ",
- },
- {
- provider = function(self)
- local count = self.status_dict.added or 0
- return count > 0 and ("  " .. count)
- end,
- hl = { fg = colors.git.add, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.removed or 0
- return count > 0 and ("  " .. count)
- end,
- hl = { fg = colors.git.del, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.changed or 0
- return count > 0 and ("  " .. count)
- end,
- hl = { fg = colors.git.change, bg = colors.bg },
- },
-}
-
-local WorkDir = {
- provider = function()
- local icon = " "
- local cwd = vim.fn.getcwd(0)
- cwd = vim.fn.fnamemodify(cwd, ":~")
- if not conditions.width_percent_below(#cwd, 0.25) then
- cwd = vim.fn.pathshorten(cwd)
- end
- local trail = cwd:sub(-1) == "/" and "" or "/"
- return icon .. cwd .. trail
- end,
- hl = { fg = colors.blue, bold = true, bg = colors.bg },
-}
-
-local TerminalName = {
- -- we could add a condition to check that buftype == 'terminal'
- -- or we could do that later (see #conditional-statuslines below)
- provider = function()
- local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
- return " " .. tname
- end,
- hl = { bold = true, bg = colors.bg },
-}
-
-local Ruler = {
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- provider = "%7 %p%% Ln %l, Col %c",
-}
-
-local Align = { provider = "%=", hl = { bg = colors.bg } }
-local Space = { provider = " " }
-
-local FileInfoBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-local FileType = {
- provider = function()
- return vim.bo.filetype
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileEncoding = {
- provider = function()
- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
- return enc:upper()
- end,
-}
-
-FileInfoBlock = utils.insert(
- FileInfoBlock,
- FileEncoding,
- Space,
- FileIcon,
- FileType,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local FileNameShort = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":t")
- if filename == "" then
- return "[No Name]"
- end
- return filename
- end,
- hl = { fg = colors.gray, bg = colors.bg },
-}
-
-local FileNameShortBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-FileNameShortBlock = utils.insert(
- FileNameShortBlock,
- FileIcon,
- FileNameShort,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local Gps = {
- condition = require("nvim-gps").is_available,
- provider = function()
- local loc = require("nvim-gps").get_location()
- if loc == "" then
- return ""
- end
- return "> " .. loc
- end,
- hl = { fg = colors.gray, bg = colors.bg },
-}
-
-local DefaultStatusline = {
- ViMode,
- Space,
- FileNameBlock,
- Space,
- Diagnostics,
- Align,
- Ruler,
- Space,
- FileInfoBlock,
- Space,
- Git,
-}
-
-local SpecialStatusline = {
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- FileType,
- Space,
- Align,
-}
-
-local TerminalStatusline = {
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- TerminalName,
- Align,
-}
-
-local StatusLines = {
- fallthrough = false,
- SpecialStatusline,
- TerminalStatusline,
- DefaultStatusline,
-}
-
-local GSpace = { provider = " ", hl = { bg = colors.bg } }
-
-local WinBars = {
- fallthrough = false,
- {
- -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix", "nofile", "promt" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- provider = "",
- },
- {
- -- An inactive winbar for regular files
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } }) and not conditions.is_active()
- end,
- utils.surround(
- { "", "" },
- colors.bright_bg,
- { hl = { fg = "gray", force = true }, GSpace, TerminalName, Align }
- ),
- },
- {
- -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- utils.surround({ "", "" }, colors.dark_red, {
- GSpace,
- TerminalName,
- Align,
- }),
- },
- {
- -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- utils.surround(
- { "", "" },
- colors.bright_bg,
- { hl = { fg = "gray", force = true }, GSpace, FileNameShortBlock, Align }
- ),
- },
- -- A winbar for regular files
- { GSpace, FileNameShortBlock, GSpace, Gps, Align },
-}
-
-vim.api.nvim_create_autocmd("User", {
- pattern = "HeirlineInitWinbar",
- callback = function(args)
- local buf = args.buf
- local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
- local filetype = vim.tbl_contains({ "gitcommit", "fugitive" }, vim.bo[buf].filetype)
- if buftype or filetype then
- vim.opt_local.winbar = nil
- end
- end,
-})
-
--- we redefine the filename component, as we probably only want the tail and not the relative path
-local TablineFileName = {
- provider = function(self)
- -- self.filename will be defined later, just keep looking at the example!
- local filename = self.filename
- filename = filename == "" and "[No Name]" or vim.fn.fnamemodify(filename, ":t")
- return filename
- end,
- hl = function(self)
- return { bold = self.is_active or self.is_visible, italic = true }
- end,
-}
-
-local TablineFileFlags = {
- {
- provider = function(self)
- if vim.bo[self.bufnr].modified then
- return " [+]"
- end
- end,
- hl = { fg = colors.green },
- },
- {
- provider = function(self)
- if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then
- return ""
- end
- end,
- hl = { fg = "orange" },
- },
-}
-
-local TablineDiagnostics = {
- static = {
- error_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = " " .. vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
- init = function(self)
- self.errors = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(self.bufnr, { severity = vim.diagnostic.severity.INFO })
- end,
- {
- provider = function(self)
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint },
- },
-}
-
-local TablineFileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (" " .. self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color }
- end,
-}
-
--- Here the filename block finally comes together
-local TablineFileNameBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(self.bufnr)
- end,
- hl = function(self)
- if self.is_active then
- return "TabLineSel"
- else
- return "TabLine"
- end
- end,
- on_click = {
- callback = function(_, minwid, _, button)
- if button == "m" then -- close on mouse middle click
- vim.api.nvim_buf_delete(minwid, { force = true })
- else
- vim.api.nvim_win_set_buf(0, minwid)
- end
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_buffer_callback",
- },
- TablineFileIcon,
- TablineFileName,
- TablineFileFlags,
- TablineDiagnostics,
-}
-
--- a nice "x" button to close the buffer
-local TablineCloseButton = {
- condition = function(self)
- return not vim.bo[self.bufnr].modified
- end,
- { provider = " " },
- {
- provider = "",
- hl = { fg = "gray" },
- on_click = {
- callback = function(_, minwid)
- vim.api.nvim_buf_delete(minwid, { force = false })
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_close_buffer_callback",
- },
- },
-}
-
--- The final touch!
-local TablineBufferBlock = utils.surround({ "", "" }, function(self)
- if self.is_active then
- return utils.get_highlight("TabLineSel").bg
- else
- return utils.get_highlight("TabLine").bg
- end
-end, { TablineFileNameBlock, TablineCloseButton })
-
--- and here we go
-local BufferLine = utils.make_buflist(
- TablineBufferBlock,
- { provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- { provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- -- by the way, open a lot of buffers and try clicking them ;)
-)
-
-local TabLineOffset = {
- condition = function(self)
- local win = vim.api.nvim_tabpage_list_wins(0)[1]
- local bufnr = vim.api.nvim_win_get_buf(win)
- self.winid = win
-
- if vim.bo[bufnr].filetype == "NvimTree" then
- self.title = "NvimTree"
- return true
- -- elseif vim.bo[bufnr].filetype == "TagBar" then
- -- ...
- end
- end,
- provider = function(self)
- local title = self.title
- local width = vim.api.nvim_win_get_width(self.winid)
- local pad = math.ceil((width - #title) / 2)
- return string.rep(" ", pad) .. title .. string.rep(" ", pad)
- end,
- hl = function(self)
- if vim.api.nvim_get_current_win() == self.winid then
- return "TablineSel"
- else
- return "Tabline"
- end
- end,
-}
-
-local Tabpage = {
- provider = function(self)
- return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T"
- end,
- hl = function(self)
- if not self.is_active then
- return "TabLine"
- else
- return "TabLineSel"
- end
- end,
-}
-
-local TabpageClose = {
- provider = "%999X  %X",
- hl = "TabLine",
-}
-
-local TabPages = {
- -- only show this component if there's 2 or more tabpages
- condition = function()
- return #vim.api.nvim_list_tabpages() >= 2
- end,
- { provider = "%=" },
- utils.make_tablist(Tabpage),
- TabpageClose,
-}
-
-local TabLine = { TabLineOffset, BufferLine, TabPages }
-
-require("heirline").setup(StatusLines, WinBars, TabLine)
-
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
-
-vim.api.nvim_create_augroup("Heirline", { clear = true })
-vim.api.nvim_create_autocmd("ColorScheme", {
- callback = function()
- local colors = setup_colors()
- utils.on_colorscheme(colors)
- end,
- group = "Heirline",
-})
-
-local function get_bufs()
- return vim.tbl_filter(function(bufnr)
- return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted
- end, vim.api.nvim_list_bufs())
-end
-
-local function goto_buf(index)
- local bufs = get_bufs()
- if index > #bufs then
- index = #bufs
- end
- vim.api.nvim_win_set_buf(0, bufs[index])
-end
-
-local function addKey(key, index)
- vim.keymap.set("", "<A-" .. key .. ">", function()
- goto_buf(index)
- end, { noremap = true, silent = true })
-end
-
-for i = 1, 9 do
- addKey(i, i)
-end
-addKey("0", 10)
diff --git a/lua/plugins/heirline.backup2.lua b/lua/plugins/heirline.backup2.lua
deleted file mode 100644
index 9f5c4ca..0000000
--- a/lua/plugins/heirline.backup2.lua
+++ /dev/null
@@ -1,1921 +0,0 @@
-local conditions = require("heirline.conditions")
-local utils = require("heirline.utils")
-
--- Colors
---local colors = {
--- bright_bg = utils.get_highlight("Folded").bg,
--- bright_fg = utils.get_highlight("Folded").fg,
--- red = utils.get_highlight("DiagnosticError").fg,
--- dark_red = utils.get_highlight("DiffDelete").bg,
--- green = utils.get_highlight("String").fg,
--- blue = utils.get_highlight("Function").fg,
--- gray = utils.get_highlight("NonText").fg,
--- orange = utils.get_highlight("Constant").fg,
--- purple = utils.get_highlight("Statement").fg,
--- cyan = utils.get_highlight("Special").fg,
--- diag_warn = utils.get_highlight("DiagnosticWarn").fg,
--- diag_error = utils.get_highlight("DiagnosticError").fg,
--- diag_hint = utils.get_highlight("DiagnosticHint").fg,
--- diag_info = utils.get_highlight("DiagnosticInfo").fg,
--- git_del = utils.get_highlight("diffDeleted").fg,
--- git_add = utils.get_highlight("diffAdded").fg,
--- git_change = utils.get_highlight("diffChanged").fg,
---}
-
---local colors = {
--- gray = '#23232e',
--- lightgray = '#5f6a8e',
--- orange = '#ffb86c',
--- purple = '#bd93f9',
--- red = '#ff5555',
--- yellow = '#f1fa8c',
--- green = '#50fa7b',
--- white = '#f8f8f2',
--- black = '#282a36',
---}
-local colors = {
- bg = "#333842",
- nobg = nil,
- bright_fg = "#ffffff",
- bright_bg = "#000000",
- brown = "#504945",
- white = "#f8f8f0",
- grey = "#8F908A",
- pink = "#f92672",
- --green = "#a6e22e",
- green = "#AAD94C",
- --blue = "#66d9ef",
- blue = "#39BAE6",
- yellow = "#e6db74",
- --orange = "#fd971f",
- orange = "#FA8D3F",
- purple = "#ae81ff",
- --red = "#e95678",
- red = "#F07171",
- cyan = "#66d9eC",
- mode_fg = "#242424",
- diag = {
- warn = utils.get_highlight("DiagnosticSignWarn").fg,
- error = utils.get_highlight("DiagnosticSignError").fg,
- hint = utils.get_highlight("DiagnosticSignHint").fg,
- info = utils.get_highlight("DiagnosticSignInfo").fg,
- },
- git = {
- del = "#e95678",
- add = "#a6e22e",
- change = "#ae81ff",
- },
-}
-
-require("heirline").load_colors(colors)
-
---local mode_lable = {
--- n = 'NORMAL',
--- no = 'OPPEND',
--- nov = 'N?',
--- noV = 'N?',
--- ['no\22'] = 'N?',
--- niI = 'Ni',
--- niR = 'Nr',
--- niV = 'Nv',
--- nt = 'N-TERM',
--- v = 'VISUAL',
--- vs = 'Vs',
--- V = 'V-LINE',
--- Vs = 'Vs',
--- ['\22'] = 'V-BLCK',
--- ['\22s'] = '^V',
--- s = 'SELECT',
--- S = 'S-LINE',
--- ['\19'] = 'S-BLCK',
--- i = 'INSERT',
--- ic = 'ICOMPL',
--- ix = 'Ix',
--- R = 'REPLACE',
--- Rc = 'Rc',
--- Rx = 'Rx',
--- Rv = 'VRPLCE',
--- Rvc = 'Rv',
--- Rvx = 'Rv',
--- c = 'CMMAND',
--- cv = 'PROMPT',
--- r = '...',
--- rm = 'MORE',
--- ['r?'] = 'CNFIRM',
--- ['!'] = 'SHELL',
--- t = 'TERM',
---}
---
---local mode_colors_table = {
--- n = 'red',
--- no = 'blue',
--- nov = 'blue',
--- noV = 'blue',
--- niI = 'red',
--- niR = 'red',
--- niV = 'red',
--- nt = 'red',
--- v = 'cyan',
--- vs = 'cyan',
--- V = 'cyan',
--- Vs = 'cyan',
--- ['\22'] = 'cyan',
--- ['\22s'] = 'cyan',
--- s = 'purple',
--- S = 'purple',
--- ['\19'] = 'purple',
--- i = 'blue',
--- ic = 'blue',
--- ix = 'blue',
--- R = 'orange',
--- Rc = 'orange',
--- Rx = 'orange',
--- Rv = 'orange',
--- Rvc = 'orange',
--- Rvx = 'orange',
--- c = 'green',
--- cv = 'green',
--- r = 'green',
--- rm = 'green',
--- ['r?'] = 'green',
--- ['!'] = 'red',
--- t = 'red',
---}
---
---local mode_colors = setmetatable({
--- n = { fg = 'red' }
---}, {
--- __index = function(_, mode)
--- return {
--- fg = 'mode_fg',
--- bg = mode_colors_table[mode],
--- }
--- end
---})
---
---
---local VimModeNormal = {
--- condition = function(self)
--- return self.mode == 'n'
--- end,
--- provider = ' ●',
---}
---
---local VimModeOthers = {
--- condition = function(self)
--- return self.mode ~= 'n'
--- end,
---
--- utils.surround({ '', '' },
--- function(self)
--- return mode_colors[self.mode].bg
--- end,
--- {
--- {
--- provider = function(self)
--- return '● ' .. mode_lable[self.mode]
--- end,
--- },
--- hl = function(self)
--- return mode_colors[self.mode]
--- end
--- }
--- ),
---}
---
---local ViMode = {
--- init = function(self)
--- self.mode = vim.fn.mode(1)
--- end,
---
--- VimModeNormal, VimModeOthers,
---
--- update = { 'ModeChanged' }
---}
---local colors = require'kanagawa.colors'.setup() -- wink
-
---utils.surround({ "", "" }, function(self) return self:mode_color() end, {Ruler, hl = {fg = 'black'}} ),
--- we are surrounding the component and adjusting the foreground in one go!
-
--- ViMode truemode
---local ViMode = {
--- -- get vim current mode, this information will be required by the provider
--- -- and the highlight functions, so we compute it only once per component
--- -- evaluation and store it as a component attribute
--- init = function(self)
--- self.mode = vim.fn.mode(1) -- :h mode()
---
--- -- execute this only once, this is required if you want the ViMode
--- -- component to be updated on operator pending mode
--- if not self.once then
--- vim.api.nvim_create_autocmd("ModeChanged", {
--- pattern = "*:*o",
--- command = "redrawstatus",
--- })
--- self.once = true
--- end
--- end,
--- -- Now we define some dictionaries to map the output of mode() to the
--- -- corresponding string and color. We can put these into `static` to compute
--- -- them at initialisation time.
--- static = {
--- mode_names = { -- change the strings if you like it vvvvverbose!
--- ["n"] = "NORMAL ",
--- ["no"] = "N·OPERATOR PENDING ",
--- ["v"] = "VISUAL ",
--- ["V"] = "V·LINE ",
--- [""] = "V·BLOCK ",
--- ["s"] = "SELECT ",
--- ["S"] = "S·LINE ",
--- [""] = "S·BLOCK ",
--- ["i"] = "INSERT ",
--- ["R"] = "REPLACE ",
--- ["Rv"] = "V·REPLACE ",
--- ["c"] = "COMMAND ",
--- ["cv"] = "VIM EX ",
--- ["ce"] = "EX ",
--- ["r"] = "PROMPT ",
--- ["rm"] = "MORE ",
--- ["r?"] = "CONFIRM ",
--- ["!"] = "SHELL ",
--- ["t"] = "TERMINAL ",
--- },
--- mode_colors = {
--- n = colors.blue,
--- i = colors.green,
--- v = colors.purple,
--- V = colors.purple,
--- [""] = colors.purple,
--- c = colors.red,
--- s = colors.purple,
--- S = colors.purple,
--- [""] = colors.purple,
--- R = colors.orange,
--- r = colors.orange,
--- ["!"] = colors.red,
--- t = colors.red,
--- --n = "blue" ,
--- --i = "green",
--- --v = "cyan",
--- --V = "cyan",
--- --["\22"] = "cyan",
--- --c = "orange",
--- --s = "purple",
--- --S = "purple",
--- --["\19"] = "purple",
--- --R = "orange",
--- --r = "orange",
--- --["!"] = "red",
--- --t = "red",
--- },
--- },
--- -- We can now access the value of mode() that, by now, would have been
--- -- computed by `init()` and use it to index our strings dictionary.
--- -- note how `static` fields become just regular attributes once the
--- -- component is instantiated.
--- -- To be extra meticulous, we can also add some vim statusline syntax to
--- -- control the padding and make sure our string is always at least 2
--- -- characters long. Plus a nice Icon.
--- provider = function(self)
--- return " %2(" .. self.mode_names[self.mode] .. "%)"
--- --return " %2("..self.mode_names[self.mode].."%)"
--- --
--- --
--- --
--- end,
--- -- Same goes for the highlight. Now the foreground will change according to the current mode.
--- hl = function(self)
--- local mode = self.mode:sub(1, 1) -- get only the first mode character
--- --return { fg = self.mode_colors[mode], bold = true, }
--- return { bg = self.mode_colors[mode], fg = colors.bg, bold = true }
--- end,
--- -- Re-evaluate the component only on ModeChanged event!
--- -- This is not required in any way, but it's there, and it's a small
--- -- performance improvement.
--- update = {
--- "ModeChanged",
--- }, --optional
---}
-local ViMode = {
- static = {
- mode_names = { -- change the strings if you like it vvvvverbose!
- ["n"] = "NORMAL ",
- ["no"] = "N·OPERATOR PENDING ",
- ["v"] = "VISUAL ",
- ["V"] = "V·LINE ",
- [""] = "V·BLOCK ",
- ["s"] = "SELECT ",
- ["S"] = "S·LINE ",
- [""] = "S·BLOCK ",
- ["i"] = "INSERT ",
- ["R"] = "REPLACE ",
- ["Rv"] = "V·REPLACE ",
- ["c"] = "COMMAND ",
- ["cv"] = "VIM EX ",
- ["ce"] = "EX ",
- ["r"] = "PROMPT ",
- ["rm"] = "MORE ",
- ["r?"] = "CONFIRM ",
- ["!"] = "SHELL ",
- ["t"] = "TERMINAL ",
- },
- },
- provider = function(self)
- return " %2(" .. self.mode_names[vim.fn.mode(1)] .. "%)"
- end,
- hl = function(self)
- local color = self:mode_color() -- here!
- return { bg = color, fg = colors.bg, bold = true }
- end,
-}
-
-local ViModeColor = {
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- },
-}
-
--- LSP
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
--- update = {'LspAttach', 'LspDetach'},
---
--- -- You can keep it simple,
--- -- provider = " [LSP]",
---
--- -- Or complicate things a bit and get the servers names
--- provider = function()
--- local names = {}
--- for i, server in pairs(vim.lsp.buf_get_clients(0)) do
--- table.insert(names, server.name)
--- end
--- return " [" .. table.concat(names, " ") .. "]"
--- end,
--- hl = { fg = "green", bold = true },
--- on_click = {
--- callback = function()
--- vim.defer_fn(function()
--- vim.cmd("LspInfo")
--- end, 100)
--- end,
--- name = "heirline_LSP",
--- },
---}
---
----- lsp status
----- I personally use it only to display progress messages!
----- See lsp-status/README.md for configuration options.
---
----- Note: check "j-hui/fidget.nvim" for a nice statusline-free alternative.
---local LSPMessages = {
--- provider = require("lsp-status").status,
--- hl = { fg = "gray" },
---}
-
--- Nvim Navic
---local Navic = {
--- condition = require("nvim-navic").is_available,
--- provider = require("nvim-navic").get_location,
---}
---local Navic = utils.make_flexible_component(3, Navic, { provider = "" })
-
--- Full nerd (with icon colors)!
-local Navic = {
- condition = require("nvim-navic").is_available,
- static = {
- -- create a type highlight map
- type_hl = {
- File = "Directory",
- Module = "Include",
- Namespace = "TSNamespace",
- Package = "Include",
- Class = "Struct",
- Method = "Method",
- Property = "TSProperty",
- Field = "TSField",
- Constructor = "TSConstructor ",
- Enum = "TSField",
- Interface = "Type",
- Function = "Function",
- Variable = "TSVariable",
- Constant = "Constant",
- String = "String",
- Number = "Number",
- Boolean = "Boolean",
- Array = "TSField",
- Object = "Type",
- Key = "TSKeyword",
- Null = "Comment",
- EnumMember = "TSField",
- Struct = "Struct",
- Event = "Keyword",
- Operator = "Operator",
- TypeParameter = "Type",
- },
- },
- init = function(self)
- local data = require("nvim-navic").get_data() or {}
- local children = {}
- -- create a child for each level
- for i, d in ipairs(data) do
- local child = {
- {
- provider = d.icon,
- hl = self.type_hl[d.type],
- },
- {
- provider = d.name,
- -- highlight icon only or location name as well
- -- hl = self.type_hl[d.type],
- },
- }
- -- add a separator only if needed
- if #data > 1 and i < #data then
- table.insert(child, {
- provider = " > ",
- hl = { fg = "bright_fg" },
- })
- end
- table.insert(children, child)
- end
- -- instantiate the new child, overwriting the previous one
- self[1] = self:new(children, 1)
- end,
- hl = { fg = "gray" },
-}
-
--- Diagnostics
-local Diagnostics = {
-
- condition = conditions.has_diagnostics,
-
- static = {
- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
-
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
-
- update = { "DiagnosticChanged", "BufEnter" },
-
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint, bg = colors.bg },
- },
- --{
- -- provider = "]",
- --},
- on_click = {
- callback = function()
- require("trouble").toggle({ mode = "document_diagnostics" })
- -- or
- -- vim.diagnostic.setqflist()
- end,
- name = "heirline_diagnostics",
- },
-}
-
--- Git
--- For the ones who're not (too) afraid of changes! Uses gitsigns.
-local Git = {
- condition = conditions.is_git_repo,
-
- init = function(self)
- self.status_dict = vim.b.gitsigns_status_dict
- self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
- end,
- --hl = { fg = "orange" },
- hl = { fg = colors.orange, bg = colors.bg },
- { -- git branch name
- provider = function(self)
- return " " .. self.status_dict.head
- end,
- --hl = { bold = true },
- hl = { bold = true, bg = colors.bg },
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- --provider = "("
- provider = " ",
- },
- {
- provider = function(self)
- local count = self.status_dict.added or 0
- --return count > 0 and ("+" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_add" },
- hl = { fg = colors.git.add, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.removed or 0
- --return count > 0 and ("-" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_del" },
- hl = { fg = colors.git.del, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.changed or 0
- --return count > 0 and ("~" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_change" },
- hl = { fg = colors.git.change, bg = colors.bg },
- },
- --{
- -- condition = function(self)
- -- return self.has_changes
- -- end,
- -- provider = ")",
- --},
- on_click = {
- callback = function()
- -- If you want to use Fugitive:
- -- vim.cmd("G")
-
- -- If you prefer Lazygit
- -- use vim.defer_fn() if the callback requires
- -- opening of a floating window
- -- (this also applies to telescope)
- vim.defer_fn(function()
- vim.cmd("Lazygit")
- end, 100)
- end,
- name = "heirline_git",
- },
-}
-
--- Debugger
--- Display informations from nvim-dap!
-local DAPMessages = {
- -- display the dap messages only on the debugged file
- condition = function()
- local session = require("dap").session()
- if session then
- local filename = vim.api.nvim_buf_get_name(0)
- if session.config then
- local progname = session.config.program
- return filename == progname
- end
- end
- return false
- end,
- provider = function()
- return " " .. require("dap").status()
- end,
- hl = { fg = utils.get_highlight("Debug").fg },
- -- Debugger on_click: step-over, step-into, next, previous, stop buttons
- -- coming soon!
-}
-
--- Tests
--- This requires the great ultest.
---local UltTest = {
--- condition = function()
--- return vim .api.nvim_call_function("ultest#is_test_file", {}) ~= 0
--- end,
--- static = {
--- passed_icon = vim.fn.sign_getdefined("test_pass")[1].text,
--- failed_icon = vim.fn.sign_getdefined("test_fail")[1].text,
--- passed_hl = { fg = utils.get_highlight("UltestPass").fg },
--- failed_hl = { fg = utils.get_highlight("UltestFail").fg },
--- },
--- init = function(self)
--- self.status = vim.api.nvim_call_function("ultest#status", {})
--- end,
---
--- -- again, if you'd like icons and numbers to be colored differently,
--- -- just split the component in two
--- {
--- provider = function(self)
--- return self.passed_icon .. self.status.passed .. " "
--- end,
--- hl = function(self)
--- return self.passed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return self.failed_icon .. self.status.failed .. " "
--- end,
--- hl = function(self)
--- return self.failed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return "of " .. self.status.tests - 1
--- end,
--- },
---}
-
--- FileName and Friends
-
---local Align = { provider = "%=" }
-local Align = { provider = "%=", hl = { bg = colors.bg } }
-local Space = { provider = " ", hl = { bg = colors.bg } }
-local fill = { provider = "%=", hl = { bg = colors.nobg } }
---local LeftSep = { provider = "" hl = { fg = colors.bg } }
---local RightSep = { provider = "" hl = { fg = colors.bg }}
-
-local FileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg },
-}
--- We can now define some children separately and add them later
---
-
-local FileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (self.icon .. " ")
- end,
- hl = function(self)
- --return { fg = self.icon_color }
- return { fg = self.icon_color, bg = colors.bg }
- end,
-}
-
-local FileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "[No Name]"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- --hl = { fg = utils.get_highlight("Directory").fg, bg = colors.bg },
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileFlags = {
- {
- provider = function()
- if vim.bo.modified then
- return " [+]"
- end
- end,
- hl = { fg = colors.green, bg = colors.bg },
- },
- {
- provider = function()
- if not vim.bo.modifiable or vim.bo.readonly then
- return ""
- end
- end,
- --hl = { fg = colors.orange },
- hl = { fg = colors.orange, bold = true, bg = colors.bg },
- },
-}
--- Now, let's say that we want the filename color to change if the buffer is
--- modified. Of course, we could do that directly using the FileName.hl field,
--- but we'll see how easy it is to alter existing components using a "modifier"
--- component
-
-local FileNameModifer = {
- hl = function()
- if vim.bo.modified then
- -- use `force` because we need to override the child's hl foreground
- --return { fg = "cyan", bold = true, force = true }
- return { fg = "blue", bold = true, force = true, bg = colors.bg }
- end
- end,
-}
-
--- FileType, FileEncoding and FileFormat
-local FileType = {
- provider = function()
- -- return string.upper(vim.bo.filetype)
- --end,
- ----hl = { fg = utils.get_highlight("Type").fg, bold = true },
- --hl = { fg = utils.get_highlight("Type").fg, bold = true, bg = colors.bg },
- return vim.bo.filetype
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
---local FileEncoding = {
--- provider = function()
--- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
--- return enc ~= "utf-8" and enc:upper()
--- end,
---}
-local FileEncoding = {
- Space,
- provider = function()
- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
- return enc:upper()
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg },
-}
-
-local FileFormat = {
- provider = function()
- local fmt = vim.bo.fileformat
- return fmt ~= "unix" and fmt:upper()
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- FileSize and FileLastModified
-local FileSize = {
- provider = function()
- -- stackoverflow, compute human readable file size
- local suffix = { "b", "k", "M", "G", "T", "P", "E" }
- local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
- fsize = (fsize < 0 and 0) or fsize
- if fsize < 1024 then
- return fsize .. suffix[1]
- end
- local i = math.floor((math.log(fsize) / math.log(1024)))
- return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileLastModified = {
- -- did you know? Vim is full of functions!
- provider = function()
- local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
- return (ftime > 0) and os.date("%c", ftime)
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- Spell
--- Add indicator when spell is set!
-local Spell = {
- condition = function()
- return vim.wo.spell
- end,
- provider = "SPELL ",
- hl = { bold = true, fg = "orange" },
-}
-
--- Cursor position: Ruler and ScrollBar
--- We're getting minimalists here!
-local Ruler = {
- -- We're getting minimalists here!
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- provider = "%3(%2l%):%c %P",
- --provider = "%7(%l/%3L%):%2c %P",
- --provider = "%3(%P%)",
- --provider = "%7(%l/%3L%):%2c %P",
- --provider = "%7 %p%% Ln %l, Col %c",
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
---local ScrollBar = {
--- static = {
--- --sbar = { "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" },
--- sbar = { "🭶", "🭷", "🭸", "🭹", "🭺", "🭻" },
--- },
--- provider = function(self)
--- local curr_line = vim.api.nvim_win_get_cursor(0)[1]
--- local lines = vim.api.nvim_buf_line_count(0)
--- local i = math.floor((curr_line - 1) / lines * #self.sbar) + 1
--- return string.rep(self.sbar[i], 2)
--- end,
--- --hl = { fg = "blue", bg = "bright_bg" },
--- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
---}
-local WordCount = {
- condition = function()
- return conditions.buffer_matches({
- filetype = {
- "markdown",
- "txt",
- "vimwiki",
- },
- })
- end,
- Space,
- {
- provider = function()
- return "W:" .. vim.fn.wordcount().words
- end,
- },
-}
-
-local Position = {
- Space,
- { provider = "%l:%c" },
- hl = { bg = colors.bg },
-}
-
-local Percentage = {
- Space,
- { provider = "%p%%" },
- hl = { bg = colors.bg },
-}
--- Working Directory
-local WorkDir = {
- provider = function(self)
- self.icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. " "
- local cwd = vim.fn.getcwd(0)
- self.cwd = vim.fn.fnamemodify(cwd, ":~")
- end,
- --hl = { fg = "blue", bold = true },
- hl = { fg = colors.blue, bold = true, bg = colors.bg },
-
- utils.make_flexible_component(1, {
- -- evaluates to the full-lenth path
- provider = function(self)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. self.cwd .. trail .. " "
- end,
- }, {
- -- evaluates to the shortened path
- provider = function(self)
- local cwd = vim.fn.pathshorten(self.cwd)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. cwd .. trail .. " "
- end,
- }, {
- -- evaluates to "", hiding the component
- provider = "",
- }),
-}
-
--- Terminal Name
--- Special handling of the built-in terminal bufname. See conditional statuslines below to see an example of dedicated statusline for terminals!
-
-local TerminalName = {
- -- we could add a condition to check that buftype == 'terminal'
- -- or we could do that later (see #conditional-statuslines below)
- provider = function()
- local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
- return " " .. tname
- end,
- --hl = { fg = "blue", bold = true },
- hl = { bold = true, bg = colors.bg },
-}
-
--- Snippets Indicator
--- This requires ultisnips
---local Snippets = {
--- -- check that we are in insert or select mode
--- condition = function()
--- return vim.tbl_contains({'s', 'i'}, vim.fn.mode())
--- end,
--- provider = function()
--- local forward = (vim.fn["UltiSnips#CanJumpForwards"]() == 1) and "" or ""
--- local backward = (vim.fn["UltiSnips#CanJumpBackwards"]() == 1) and " " or ""
--- return backward .. forward
--- end,
--- hl = { fg = "red", bold = true },
---}
-
--- let's add the children to our FileNameBlock component
---FileNameBlock = utils.insert(
--- FileNameBlock,
---FileEncoding,
---Space,
---FileIcon,
---FileType,
---FileLastModified,
---FileSize,
---FileFormat,
---FileNameModifer,
--- unpack(FileFlags),
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
--- let's add the children to our FileNameBlock component
-FileNameBlock = utils.insert(
- FileNameBlock,
- FileIcon,
- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local FileInfoBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-FileInfoBlock = utils.insert(
- FileInfoBlock,
- FileEncoding,
- Space,
- FileIcon,
- FileType,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
---FileNameBlock = utils.insert(
--- FileNameBlock,
--- FileIcon,
--- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
--- unpack(FileFlags), -- A small optimisation, since their parent does nothing
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
-
--- Statusline
-
-local Surrr = {
- utils.surround({ "", "" }, "red", {
- utils.surround({ "", "" }, "green", utils.surround({ "", "" }, "blue", { provider = "heyya" })),
- { provider = "Normal" },
- }),
-}
---ViMode = utils.surround({ "", "" }, "bright_bg", { ViMode, Snippets })
-ViMode = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
---ViMode = utils.surround({ "◥", "" }, function(self) return self:mode_color() end, {
--- utils.surround({ "█", "" }, function(self) return self:mode_color() end, utils.surround({ "", "" }, function(self) return self:mode_color() end, { {provider = "normal" }, ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } } )),
--- { provider = "heyya" },
--- })
-
---utils.surround({ "█", "█" }, function(self) return self:mode_color() end, { FileNameBlock, hl = { fg = colors.bg, force = true } } ),
-local DefaultStatusline = {
- ViMode,
- Space,
- FileNameBlock,
- Space,
- Git,
- Space,
- Diagnostics,
- Align,
- Navic,
- DAPMessages,
- Align,
- Space,
- FileInfoBlock,
- Space,
- WordCount,
- Ruler,
- Space,
- --Position,
- --Percentage,
- --ScrollBar,
- --Space,
- --LSPActive, Space, LSPMessages, Space, UltTest, Space, FileType, Space, Ruler, Space, ScrollBar
-}
-
---local InactiveStatusline = {
--- condition = conditions.is_not_active,
--- FileType,
--- Space,
--- FileName,
--- Align,
---}
-
-local SpecialStatusline = {
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
-
- FileType,
- Space,
- Align,
- --FileType, Space, HelpFileName, Align
-}
-
-local TerminalStatusline = {
-
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
-
- hl = { bg = "dark_red" },
-
- -- Quickly add a condition to the ViMode to only show it when buffer is active!
- { condition = conditions.is_active, ViMode, Space },
- FileType,
- Space,
- TerminalName,
- Align,
-}
-
---local StatusLines = {
---
--- hl = function()
--- if conditions.is_active() then
--- return "StatusLine"
--- else
--- return "StatusLineNC"
--- end
--- end,
---
--- -- the first statusline with no condition, or which condition returns true is used.
--- -- think of it as a switch case with breaks to stop fallthrough.
--- fallthrough = false,
---
--- SpecialStatusline,
--- TerminalStatusline,
--- --InactiveStatusline,
--- DefaultStatusline,
---}
-local StatusLines = {
-
- hl = function()
- if conditions.is_active() then
- return "StatusLine"
- else
- return "StatusLineNC"
- end
- end,
-
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- },
- fallthrough = false,
-
- SpecialStatusline,
- TerminalStatusline,
- --InactiveStatusline,
- DefaultStatusline,
-}
---hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
--- hl = { bg = colors.bg },
---require("heirline").setup(StatusLines)
--- we're done.
-
---local FelineStyle = {
---
--- -- stop at child where buftype/filetype/bufname matches
--- fallthrough = false,
---
--- { -- Identify the buftype/filetype/bufname first
--- condtion = function()
--- return conditions.buffer_matches({...})
--- end,
---
--- -- Evaluate only the "active" or "inactive" child
--- fallthrough = false,
---
--- { -- If it's the current window, display some components
--- condition = conditions.is_active
--- {...} --
--- },
--- { -- Otherwise, display some other components
--- {...} --
--- }
--- },
--- { -- this block can be exactly as the one above for a different kind of
--- -- buffer
--- ...
--- }
---}
-
--- WinBar
-
-vim.api.nvim_create_autocmd("User", {
- pattern = "HeirlineInitWinbar",
- callback = function(args)
- local buf = args.buf
- local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
- local filetype = vim.tbl_contains({ "gitcommit", "fugitive" }, vim.bo[buf].filetype)
- if buftype or filetype then
- vim.opt_local.winbar = nil
- end
- end,
-})
-local active_middle_segment = { --{{{
- -- provider = "%999X  %X",
-
- --provider = function(self)
- -- --return " %999X %999X "
- -- return " %2("..self.mode_names[self.mode].."%)"
- -- --
- -- --
- -- --
- --end,
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- provider = "%f",
- hl = function(self)
- local color = self:mode_color() -- here!
- return { fg = color }
- end,
- -- self.filename will be defined later, just keep looking at the example!
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- utils.surround({ "", "" }, "dark_red", {
- FileType,
- Space,
- TerminalName,
- }),
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- --utils.surround({ "", "" }, "bright_bg", { hl = { fg = "gray", force = true }, FileNameBlock }),
- --utils.surround({ "", "" }, function(self) return self:mode_color() end, { FileNameBlock, hl = { fg = colors.bg, force = true } } ),
- },
- -- A winbar for regular files
- --utils.surround({ "", "" }, "bright_bg", FileNameBlock),
- --█🙼🙽🙼█⮘██⮚
- --utils.surround({ "", "" }, function(self) return self:mode_color() end, { FileNameBlock, hl = function(self)
- -- local color = self:mode_color() -- here!
- -- return { bg = color, bold = true, force = true }
- --end,
- --}),
- --utils.surround({ "", "" }, function(self) return self:mode_color() end, FileNameBlock),
-}
-
---utils.surround({ "", "" }, function(self) return self:mode_color() end, { active_middle_segment, hl = { fg = colors.bg, force = true } })
-
-local WinBars = {
- fill,
- active_middle_segment,
- fill,
-}
--- --utils.surround({ " ", " " }, colors.nobg, { fill, active_middle_segment, fill })
--- --static = {
--- -- mode_colors_map = {
--- -- n = colors.blue,
--- -- i = colors.green,
--- -- v = colors.purple,
--- -- V = colors.purple,
--- -- [""] = colors.purple,
--- -- c = colors.red,
--- -- s = colors.purple,
--- -- S = colors.purple,
--- -- [""] = colors.purple,
--- -- R = colors.orange,
--- -- r = colors.orange,
--- -- ["!"] = colors.red,
--- -- t = colors.red,
--- -- },
--- -- mode_color = function(self)
--- -- local mode = conditions.is_active() and vim.fn.mode() or "n"
--- -- return self.mode_colors_map[mode]
--- -- end,
--- --},
--- --utils.surround({ " ", " " }, colors.nobg, { active_middle_segment, hl = function(self)
--- -- local color = self:mode_color() -- here!
--- -- return { bg = color, bold = true, force = true }
--- --end,
--- --})
---}
-on_click = {
- -- get the window id of the window in which the component was evaluated
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- -- winid is the window id of the window the component was clicked from
- local winid = minwid
- -- do something with the window id, e.g.:
- local buf = vim.api.nvim_win_get_buf(winid)
- -- ...
- end,
-}
-
-local CloseButton = {
- condition = function(self)
- return not vim.bo.modified
- end,
- -- a small performance improvement:
- -- re register the component callback only on layout/buffer changes.
- update = { "WinNew", "WinClosed", "BufEnter" },
- { provider = " " },
- {
- provider = "",
- hl = { fg = "gray" },
- on_click = {
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- vim.api.nvim_win_close(minwid, true)
- end,
- name = "heirline_winbar_close_button",
- },
- },
-}
-
--- Use it anywhere!
---local WinBarFileName = utils.surround({ "", "" }, "bright_bg", {
--- hl = function()
--- if not conditions.is_active() then
--- return { fg = "gray", force = true }
--- end
--- end,
--- FileNameBlock,
--- Space,
--- CloseButton,
---})
-
---local WinBars = {
--- -- init = utils.pick_child_on_condition,
--- fallthrough = false,
--- {
--- condition = function()
--- return conditions.buffer_matches({
--- buftype = { "nofile", "prompt", "help", "quickfix" },
--- filetype = { "^git.*", "fugitive" },
--- })
--- end,
--- init = function()
--- vim.opt_local.winbar = nil
--- end,
--- },
--- {
--- condition = function()
--- return conditions.buffer_matches({ buftype = { "terminal" } })
--- end,
--- utils.surround({ "", "" }, "dark_red", {
--- FileType,
--- Space,
--- TerminalName,
--- CloseButton,
--- }),
--- },
--- utils.surround({ "", "" }, "bright_bg", {
--- hl = function()
--- if conditions.is_not_active() then
--- return { fg = "gray", force = true }
--- end
--- end,
---
--- FileNameBlock,
--- CloseButton,
--- }),
---}
-
--- TabLine
---local TabLine ={
--- hl = { bg = colors.bg },
---}
-local TablineBufnr = {
- provider = function(self)
- return tostring(self.bufnr) .. ". "
- end,
- --hl = "Comment",
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true },
-}
-
--- we redefine the filename component, as we probably only want the tail and not the relative path
-local TablineFileName = {
- provider = function(self)
- -- self.filename will be defined later, just keep looking at the example!
- local filename = self.filename
- filename = filename == "" and "[No Name]" or vim.fn.fnamemodify(filename, ":t")
- return filename
- end,
- hl = function(self)
- return { bold = self.is_active or self.is_visible, italic = true }
- end,
-}
-
--- this looks exactly like the FileFlags component that we saw in
--- #crash-course-part-ii-filename-and-friends, but we are indexing the bufnr explicitly
--- also, we are adding a nice icon for terminal buffers.
---local TablineFileFlags = {
--- {
--- condition = function(self)
--- return vim.api.nvim_buf_get_option(self.bufnr, "modified")
--- end,
--- provider = "[+]",
--- --hl = { fg = colors.green },
--- hl = { fg = colors.green, bold = true, bg = colors.bg },
--- },
--- {
--- condition = function(self)
--- return not vim.api.nvim_buf_get_option(self.bufnr, "modifiable")
--- or vim.api.nvim_buf_get_option(self.bufnr, "readonly")
--- end,
--- provider = function(self)
--- if vim.api.nvim_buf_get_option(self.bufnr, "buftype") == "terminal" then
--- return "  "
--- else
--- return ""
--- end
--- end,
--- hl = { fg = "orange", bg = colors.bg },
--- },
---}
-
-local TablineFileFlags = {
- {
- provider = function(self)
- if vim.bo[self.bufnr].modified then
- return " [+]"
- end
- end,
- hl = { fg = colors.green },
- },
- {
- provider = function(self)
- if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then
- return ""
- end
- end,
- hl = { fg = "orange" },
- },
-}
-
-local TablineFileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (" " .. self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color }
- end,
-}
-
--- Here the filename block finally comes together
-local TablineFileNameBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(self.bufnr)
- end,
- hl = function(self)
- if self.is_active then
- return "TabLineSel"
- -- why not?
- --elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
- --return { fg = "gray", bg = colors.bg }
- else
- return "TabLine"
- end
- end,
- on_click = {
- callback = function(_, minwid, _, button)
- if button == "m" then -- close on mouse middle click
- vim.api.nvim_buf_delete(minwid, { force = false })
- else
- vim.api.nvim_win_set_buf(0, minwid)
- end
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_buffer_callback",
- },
- TablineBufnr,
- --FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
- TablineFileIcon,
- TablineFileName,
- TablineFileFlags,
-}
-
--- a nice "x" button to close the buffer
-local TablineCloseButton = {
- condition = function(self)
- return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
- end,
- { provider = " " },
- {
- provider = " ",
- --hl = { fg = "red", bg = colors.bg },
- hl = { fg = "red" },
- on_click = {
- callback = function(_, minwid)
- vim.api.nvim_buf_delete(minwid, { force = false })
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_close_buffer_callback",
- },
- },
-}
-
--- The final touch!
---local TablineBufferBlock = utils.surround({ "", "", hl = { bg =colors.bg } }, function(self)
--- if self.is_active then
--- return utils.get_highlight("TabLineSel").fg, utils.get_highlight("TabLineSel").bg
--- else
--- return utils.get_highlight("TabLine").fg, utils.get_highlight("TabLine").bg
--- end
-----end, { TabLine, TablineFileNameBlock, TablineCloseButton })
---end, { TablineFileNameBlock, TablineCloseButton })
-
---local TablineBufferBlock = utils.surround({ "█", "█" }, "bg", {
--- hl = function()
--- if not conditions.is_active() then
--- return { fg = "gray", force = true, bg = colors.bg }
--- end
--- end,
--- TablineFileNameBlock,
--- TablineCloseButton,
---})
---local TablineBufferBlock = utils.surround({ "█", "█" },
--- { hl = function(self)
--- local mode = self.mode:sub(1, 1) -- get only the first mode character
--- --return { fg = self.mode_colors[mode], bold = true, }
--- return { bg = self.mode_colors[mode], fg = colors.bg, bold = true }
--- end, },
---{ TablineFileNameBlock, TablineCloseButton, { hl = ViMode }, })
-
---local TablineBufferBlock = {
--- init = function(self)
---
--- self.mode = vim.fn.mode(1) -- :h mode()
---
--- vim.api.nvim_create_autocmd("ModeChanged", {
--- pattern = "*:*o",
--- command = "redrawstatus",
--- })
--- self.once = true
--- end,
--- static = {
--- mode_colors = {
--- n = colors.blue,
--- i = colors.green,
--- v = colors.purple,
--- V = colors.purple,
--- [""] = colors.purple,
--- c = colors.red,
--- s = colors.purple,
--- S = colors.purple,
--- [""] = colors.purple,
--- R = colors.orange,
--- r = colors.orange,
--- ["!"] = colors.red,
--- t = colors.red,
--- },
--- },
--- hl = function(self)
--- if self.is_active then
--- local mode = self.mode:sub(1, 1) -- get only the first mode character
--- --return { fg = self.mode_colors[mode], bold = true, }
--- return { bg = self.mode_colors[mode], fg = colors.bg, bold = true }
--- else
--- return utils.get_highlight("TabLine").bg
--- end
--- end,
--- update = {
--- "ModeChanged",
--- }, --optional
--- { TablineFileNameBlock, TablineCloseButton }
---}
-
---local TabLineSel = {
--- hl = { bg = self.mode_colors[mode], fg = colors.bg, bold = true }
---}
---local ViMode2 = {
--- init = function(self)
--- self.mode = vim.fn.mode()
--- end,
--- static = {
--- mode_colors = {
--- n = "red",
--- i = "green",
--- v = "blue",
--- c = "orange"
---
--- }
--- },
--- provider = function(self)
--- return string.upper(self.mode)
--- end,
--- hl = function(self)
--- return { fg = self.mode_colors[self.mode], bold = true, }
--- end
---}
---local surrr = {
--- utils.surround({ "", "" }, "red", {
--- utils.surround({ "", "" }, "green", utils.surround({ "", "" }, "blue", { provider = "heyya" })),
--- { provider = "Normal" },
--- }),
---}
---local statusline = ViMode
-
---local TablineBufferBlock = utils.surround({ "", "" }, function(self)
--- if self.is_active then
--- --self.mode = vim.fn.mode(1) -- :h mode()
---
--- --return utils.get_highlight(vim.api.nvim_get_mode().mode).bg
--- return utils.get_highlight("TabLineSel").bg
--- --return utils.get_highlight("Normal").bg
--- --local mode = self.mode:sub(1, 1) -- get only the first mode character
--- --return { bg = TabLineSel, fg = colors.bg, bold = true }
--- else
--- return utils.get_highlight("TabLine").bg
--- end
---end, { TablineFileNameBlock, TablineCloseButton })
-
-local TablineBufferBlock = utils.surround({ "█", "▎" }, function(self)
- --local TablineBufferBlock = utils.surround({ "█", "█" }, function(self)
- if self.is_active then
- return utils.get_highlight("TabLineSel").bg
- else
- return utils.get_highlight("TabLine").bg
- end
-end, { TablineFileNameBlock, TablineCloseButton })
---█
---local TablineBufferBlock = {
--- init = function(self)
--- self.mode = vim.fn.mode()
--- end,
--- static = {
--- mode_colors = {
--- n = colors.blue,
--- i = colors.green,
--- v = colors.purple,
--- V = colors.purple,
--- [""] = colors.purple,
--- c = colors.red,
--- s = colors.purple,
--- S = colors.purple,
--- [""] = colors.purple,
--- R = colors.orange,
--- r = colors.orange,
--- ["!"] = colors.red,
--- t = colors.red,
--- },
--- },
--- hl = function(self)
--- if conditions.is_active() then
--- return { bg = self.mode_colors[self.mode], fg = colors.bg, bold = true }
--- else
--- return utils.get_highlight("Tabline").bg
--- end
--- end,
--- update = {
--- "ModeChanged",
--- }, --optional
--- { TablineFileNameBlock, TablineCloseButton },
---}
-
---local TablineBufferBlock = {
--- static = {
--- mode_colors_map = {
--- n = colors.blue,
--- i = colors.green,
--- v = colors.purple,
--- V = colors.purple,
--- [""] = colors.purple,
--- c = colors.red,
--- s = colors.purple,
--- S = colors.purple,
--- [""] = colors.purple,
--- R = colors.orange,
--- r = colors.orange,
--- ["!"] = colors.red,
--- t = colors.red,
--- },
--- mode_color = function(self)
--- local mode = conditions.is_active() and vim.fn.mode() or "n"
--- return self.mode_colors_map[mode]
--- end,
--- },
--- { -- A special winbar for terminals
--- condition = function()
--- return conditions.buffer_matches({ buftype = { "terminal" } })
--- end,
--- utils.surround({ "", "" }, "dark_red", {
--- FileType,
--- Space,
--- TerminalName,
--- }),
--- },
--- { -- An inactive winbar for regular files
--- condition = function()
--- return conditions.is_not_active()
--- end,
--- utils.surround({ "█", "█" }, function() return utils.get_highlight("TabLine").bg end, { TablineFileNameBlock, TablineCloseButton } )
--- },
--- {
--- condition = function()
--- return conditions.is_active()
--- end,
--- utils.surround({ "█", "█" }, function(self) return self:mode_color() end, { TablineFileNameBlock, TablineCloseButton, hl = { fg = colors.bg, force = true } } )
--- },
---function()
---if self.is_active then
---utils.surround({ "", "" }, "bright_bg", { hl = { fg = "gray", force = true }, FileNameBlock }),
---utils.surround({ "", "" }, function(self) return self:mode_color() end, { FileNameBlock, hl = { fg = colors.bg, force = true } } ),
---utils.surround({ "█", "█" }, function() return utils.get_highlight("TabLine").bg end, { TablineFileNameBlock, TablineCloseButton, hl = { fg = colors.bg, force = true } } ),
---}
---ViMode = utils.surround({ "", "" }, function(self)
--- if self.is_active then
--- return self:mode_color()
--- else
--- return utils.get_highlight("TabLine").bg
--- end
--- end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } } )
---
-----}
---local TablineBufferBlock = {
--- ViMode,
--- TablineFileName,
--- TablineCloseButton,
---}
--- A winbar for regular files
---utils.surround({ "", "" }, "bright_bg", FileNameBlock),
---utils.surround({ "", "" }, function(self) return self:mode_color() end, FileNameBlock),
-local BufferLine = utils.make_buflist(
- TablineBufferBlock,
- { provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- { provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- --{ provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- --{ provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- -- by the way, open a lot of buffers and try clicking them ;)
-)
-
--- if self.is_active then
--- return utils.get_highlight("TabLineSel").bg
--- else
--- return utils.get_highlight("TabLine").bg
--- end
---end, { TablineFileNameBlock, TablineCloseButton, } )
--- TabList
-local Tabpage = {
- provider = function(self)
- return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T"
- end,
- hl = function(self)
- if not self.is_active then
- return "TabLine"
- else
- return "TabLineSel"
- end
- end,
-}
-
-local TabpageClose = {
- provider = "%999X  %X",
- --hl = "TabLine",
- hl = { fg = colors.red, bg = colors.bg },
-}
-
-local TabPages = {
- -- only show this component if there's 2 or more tabpages
- condition = function()
- return #vim.api.nvim_list_tabpages() >= 2
- end,
- { provider = "%=" },
- utils.make_tablist(Tabpage),
- TabpageClose,
-}
-
--- TabLineOffset
-local TabLineOffset = {
- condition = function(self)
- local win = vim.api.nvim_tabpage_list_wins(0)[1]
- local bufnr = vim.api.nvim_win_get_buf(win)
- self.winid = win
-
- if vim.bo[bufnr].filetype == "NvimTree" then
- self.title = "NvimTree"
- return true
- -- elseif vim.bo[bufnr].filetype == "TagBar" then
- -- ...
- end
- end,
-
- provider = function(self)
- local title = self.title
- local width = vim.api.nvim_win_get_width(self.winid)
- local pad = math.ceil((width - #title) / 2)
- return string.rep(" ", pad) .. title .. string.rep(" ", pad)
- end,
-
- hl = function(self)
- if vim.api.nvim_get_current_win() == self.winid then
- return "TablineSel"
- else
- return "Tabline"
- end
- end,
-}
-
-local TabLine = {
- --hl = { bg = colors.bg },
- fallthrough = false,
- TabLineOffset,
- BufferLine,
- TabPages,
-}
-
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
---local StatusLines = {
---
--- hl = function()
--- if conditions.is_active() then
--- return "StatusLine"
--- else
--- return "StatusLineNC"
--- end
--- end,
---
--- -- the first statusline with no condition, or which condition returns true is used.
--- -- think of it as a switch case with breaks to stop fallthrough.
--- fallthrough = false,
---
--- SpecialStatusline,
--- TerminalStatusline,
--- --InactiveStatusline,
--- DefaultStatusline,
---}
---
--- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
--- hl = { bg = colors.bg },
---local TabLine ={
--- hl = { bg = colors.bg },
---}
--- Window Close button: Let the callback know from which window it was clicked from!
--- The following is the recommended way of achieving that:
-require("heirline").setup(StatusLines, WinBars, TabLine)
-
--- Yep, with heirline we're driving manual!
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
-
-vim.api.nvim_create_augroup("Heirline", { clear = true })
-vim.api.nvim_create_autocmd("ColorScheme", {
- callback = function()
- local colors = setup_colors()
- utils.on_colorscheme(colors)
- end,
- group = "Heirline",
-})
-
-local function get_bufs()
- return vim.tbl_filter(function(bufnr)
- return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted
- end, vim.api.nvim_list_bufs())
-end
-
-local function goto_buf(index)
- local bufs = get_bufs()
- if index > #bufs then
- index = #bufs
- end
- vim.api.nvim_win_set_buf(0, bufs[index])
-end
-
-local function addKey(key, index)
- vim.keymap.set("", "<A-" .. key .. ">", function()
- goto_buf(index)
- end, { noremap = true, silent = true })
-end
-
-for i = 1, 9 do
- addKey(i, i)
-end
-addKey("0", 10)
--- Theming
---local function setup_colors()
--- return {
--- bright_bg = utils.get_highlight("Folded").bg,
--- bright_fg = utils.get_highlight("Folded").fg,
--- red = utils.get_highlight("DiagnosticError").fg,
--- dark_red = utils.get_highlight("DiffDelete").bg,
--- green = utils.get_highlight("String").fg,
--- blue = utils.get_highlight("Function").fg,
--- gray = utils.get_highlight("NonText").fg,
--- orange = utils.get_highlight("Constant").fg,
--- purple = utils.get_highlight("Statement").fg,
--- cyan = utils.get_highlight("Special").fg,
--- diag_warn = utils.get_highlight("DiagnosticWarn").fg,
--- diag_error = utils.get_highlight("DiagnosticError").fg,
--- diag_hint = utils.get_highlight("DiagnosticHint").fg,
--- diag_info = utils.get_highlight("DiagnosticInfo").fg,
--- git_del = utils.get_highlight("diffDeleted").fg,
--- git_add = utils.get_highlight("diffAdded").fg,
--- git_change = utils.get_highlight("diffChanged").fg,
--- }
---end
---require('heirline').load_colors(setup_colors())
---
---vim.api.nvim_create_augroup("Heirline", { clear = true })
---vim.api.nvim_create_autocmd("ColorScheme", {
--- callback = function()
--- local colors = setup_colors()
--- utils.on_colorscheme(colors)
--- end,
--- group = "Heirline",
---})
diff --git a/lua/plugins/heirline.lua b/lua/plugins/heirline.lua
deleted file mode 100644
index 78408dc..0000000
--- a/lua/plugins/heirline.lua
+++ /dev/null
@@ -1,1191 +0,0 @@
-local conditions = require("heirline.conditions")
-local utils = require("heirline.utils")
-
-local colors = {
- --bg = "#23232e",
- bg = nil,
- nobg = nil,
- white = "#f8f8f2",
- black = "#000000",
- darkgray = "#23232e",
- gray = "#2d2b3a",
- lightgray = "#d6d3ea",
- pink = "#f92672",
- green = "#50fa7b",
- blue = "#39BAE6",
- yellow = "#f1fa8c",
- orange = "#ffb86c",
- purple = "#BF40BF",
- violet = "#7F00FF",
- red = "#ff5555",
- cyan = "#66d9eC",
- diag = {
- warn = utils.get_highlight("DiagnosticSignWarn").fg,
- error = utils.get_highlight("DiagnosticSignError").fg,
- hint = utils.get_highlight("DiagnosticSignHint").fg,
- info = utils.get_highlight("DiagnosticSignInfo").fg,
- },
- git = {
- del = "#e95678",
- add = "#a6e22e",
- change = "#ae81ff",
- },
-}
-
-require("heirline").load_colors(colors)
-
-local Align = { provider = "%=", hl = { bg = colors.bg } }
-local Space = { provider = " ", hl = { bg = colors.bg } }
-local Tab = { provider = " " }
-local Fill = { provider = "%=", hl = { bg = colors.nobg } }
-local LeftSep = { provider = "", hl = { fg = colors.bg } }
-local RightSep = { provider = "", hl = { fg = colors.bg } }
-
-local ViMode = {
- init = function(self)
- self.mode = vim.fn.mode(1)
- if not self.once then
- vim.cmd("au ModeChanged *:*o redrawstatus")
- end
- self.once = true
- end,
- static = {
- mode_names = {
- n = "NORMAL ",
- no = "N·OPERATOR PENDING ",
- nov = "N?",
- noV = "N?",
- ["no\22"] = "N? ",
- niI = "Ni",
- niR = "Nr",
- niV = "Nv",
- nt = "Nt",
- v = "VISUAL ",
- vs = "Vs",
- V = "V·LINE ",
- ["\22"] = "V·BLOCK ",
- ["\22s"] = "V·BLOCK ",
- s = "SELECT ",
- S = "S·LINE ",
- ["\19"] = "S·BLOCK ",
- i = "INSERT ",
- ix = "insert x ",
- ic = "insert c ",
- R = "REPLACE ",
- Rc = "Rc",
- Rx = "Rx",
- Rv = "V·REPLACE ",
- Rvc = "Rv",
- Rvx = "Rv",
- c = "COMMAND ",
- cv = "VIM EX ",
- ce = "EX ",
- r = "PROMPT ",
- rm = "MORE ",
- ["r?"] = "CONFIRM ",
- ["!"] = "SHELL ",
- t = "TERMINAL ",
- },
- },
- provider = function(self)
- return " %2(" .. self.mode_names[self.mode] .. "%) "
- end,
- hl = function(self)
- local color = self:mode_color()
- return { fg = color, bold = true }
- end,
- update = {
- "ModeChanged",
- },
-}
-
--- LSP
-local LSPActive = {
- condition = conditions.lsp_attached,
- update = { "LspAttach", "LspDetach" },
-
- provider = function()
- local buf_clients = vim.lsp.buf_get_clients()
- local buf_client_names = {}
-
- -- add client
- for _, client in pairs(buf_clients) do
- if client.name ~= "null-ls" then
- table.insert(buf_client_names, client.name)
- end
- end
- return "⚙️ " .. table.concat(buf_client_names, "")
- end,
- hl = { fg = colors.lightgray, bold = false },
-}
-
--- Navic
-local Navic = {
- condition = require("nvim-navic").is_available,
- static = {
- -- create a type highlight map
- type_hl = {
- File = "Directory",
- Module = "Include",
- Namespace = "TSNamespace",
- Package = "Include",
- Class = "Struct",
- Method = "Method",
- Property = "TSProperty",
- Field = "TSField",
- Constructor = "TSConstructor ",
- Enum = "TSField",
- Interface = "Type",
- Function = "Function",
- Variable = "TSVariable",
- Constant = "Constant",
- String = "String",
- Number = "Number",
- Boolean = "Boolean",
- Array = "TSField",
- Object = "Type",
- Key = "TSKeyword",
- Null = "Comment",
- EnumMember = "TSField",
- Struct = "Struct",
- Event = "Keyword",
- Operator = "Operator",
- TypeParameter = "Type",
- },
- },
- init = function(self)
- local data = require("nvim-navic").get_data() or {}
- local children = {}
- -- create a child for each level
- for i, d in ipairs(data) do
- local child = {
- {
- provider = d.icon,
- hl = self.type_hl[d.type],
- },
- {
- provider = d.name,
- -- highlight icon only or location name as well
- -- hl = self.type_hl[d.type],
- },
- }
- -- add a separator only if needed
- if #data > 1 and i < #data then
- table.insert(child, {
- provider = " > ",
- hl = { fg = colors.white },
- })
- end
- table.insert(children, child)
- end
- -- instantiate the new child, overwriting the previous one
- self[1] = self:new(children, 1)
- end,
- hl = { fg = colors.white },
-}
-
--- Diagnostics
-local Diagnostics = {
-
- condition = conditions.has_diagnostics,
-
- static = {
- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
-
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
-
- update = { "DiagnosticChanged", "BufEnter" },
-
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint, bg = colors.bg },
- },
- on_click = {
- callback = function()
- require("trouble").toggle({ mode = "document_diagnostics" })
- -- or
- -- vim.diagnostic.setqflist()
- end,
- name = "heirline_diagnostics",
- },
-}
-
--- Git
--- For the ones who're not (too) afraid of changes! Uses gitsigns.
-local Git = {
- condition = conditions.is_git_repo,
-
- init = function(self)
- self.status_dict = vim.b.gitsigns_status_dict
- self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
- end,
- --hl = { fg = "orange" },
- hl = { fg = colors.orange, bg = colors.bg },
- { -- git branch name
- provider = function(self)
- return " " .. self.status_dict.head
- end,
- --hl = { bold = true },
- hl = { bold = true, bg = colors.bg },
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- --provider = "("
- provider = " ",
- },
- {
- provider = function(self)
- local count = self.status_dict.added or 0
- --return count > 0 and ("+" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_add" },
- hl = { fg = colors.git.add, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.removed or 0
- --return count > 0 and ("-" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_del" },
- hl = { fg = colors.git.del, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.changed or 0
- --return count > 0 and ("~" .. count)
- return count > 0 and (" 柳" .. count)
- end,
- --hl = { fg = "git_change" },
- hl = { fg = colors.git.change, bg = colors.bg },
- },
- --{
- -- condition = function(self)
- -- return self.has_changes
- -- end,
- -- provider = ")",
- --},
- on_click = {
- callback = function()
- -- If you want to use Fugitive:
- -- vim.cmd("G")
-
- -- If you prefer Lazygit
- -- use vim.defer_fn() if the callback requires
- -- opening of a floating window
- -- (this also applies to telescope)
- vim.defer_fn(function()
- vim.cmd("Lazygit")
- end, 100)
- end,
- name = "heirline_git",
- },
-}
-
--- Debugger
--- Display informations from nvim-dap!
-local DAPMessages = {
- -- display the dap messages only on the debugged file
- condition = function()
- local session = require("dap").session()
- if session then
- local filename = vim.api.nvim_buf_get_name(0)
- if session.config then
- local progname = session.config.program
- return filename == progname
- end
- end
- return false
- end,
- provider = function()
- return " " .. require("dap").status()
- end,
- hl = { fg = utils.get_highlight("Debug").fg },
- -- Debugger on_click: step-over, step-into, next, previous, stop buttons
- -- coming soon!
-}
-
--- Tests
--- This requires the great ultest.
---local UltTest = {
--- condition = function()
--- return vim .api.nvim_call_function("ultest#is_test_file", {}) ~= 0
--- end,
--- static = {
--- passed_icon = vim.fn.sign_getdefined("test_pass")[1].text,
--- failed_icon = vim.fn.sign_getdefined("test_fail")[1].text,
--- passed_hl = { fg = utils.get_highlight("UltestPass").fg },
--- failed_hl = { fg = utils.get_highlight("UltestFail").fg },
--- },
--- init = function(self)
--- self.status = vim.api.nvim_call_function("ultest#status", {})
--- end,
---
--- -- again, if you'd like icons and numbers to be colored differently,
--- -- just split the component in two
--- {
--- provider = function(self)
--- return self.passed_icon .. self.status.passed .. " "
--- end,
--- hl = function(self)
--- return self.passed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return self.failed_icon .. self.status.failed .. " "
--- end,
--- hl = function(self)
--- return self.failed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return "of " .. self.status.tests - 1
--- end,
--- },
---}
-
--- FileNameBlock: FileIcon, FileName and friends
-local FileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg },
-}
-
--- FileIcon, FileName, FileFlags and FileNameModifier
-local FileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color, bg = colors.bg }
- end,
-}
-
-local FileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "No Name"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
- hl = { fg = colors.white, bold = false, bg = colors.bg },
-}
-
-local FileFlags = {
- {
- provider = function()
- if vim.bo.modified then
- return " [+]" -- ±[+]
- end
- end,
- hl = { fg = colors.green, bg = colors.bg },
- },
- {
- provider = function()
- if not vim.bo.modifiable or vim.bo.readonly then
- return " "
- end
- end,
- --hl = { fg = colors.orange },
- hl = { fg = colors.orange, bold = true, bg = colors.bg },
- },
-}
-
-local FileNameModifier = {
- hl = function()
- if vim.bo.modified then
- return { fg = colors.green, bold = false, force = true }
- end
- end,
-}
-
--- FileType, FileEncoding and FileFormat
-local FileType = {
- provider = function()
- return vim.bo.filetype
- end,
- hl = { fg = colors.white, bold = false, bg = colors.bg },
-}
-
-local FileEncoding = {
- Space,
- provider = function()
- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
- return enc:lower()
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg, bold = false },
-}
-
-local FileFormat = {
- provider = function()
- local fmt = vim.bo.fileformat
- --return fmt ~= "unix" and fmt:upper()
- return fmt ~= "unix" and fmt:lower()
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- FileSize and FileLastModified
-local FileSize = {
- provider = function()
- -- stackoverflow, compute human readable file size
- local suffix = { "b", "k", "M", "G", "T", "P", "E" }
- local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
- fsize = (fsize < 0 and 0) or fsize
- if fsize < 1024 then
- return fsize .. suffix[1]
- end
- local i = math.floor((math.log(fsize) / math.log(1024)))
- return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileLastModified = {
- -- did you know? Vim is full of functions!
- provider = function()
- local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
- return (ftime > 0) and os.date("%c", ftime)
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- Spell
--- Add indicator when spell is set!
-local Spell = {
- condition = function()
- return vim.wo.spell
- end,
- provider = " 暈",
- hl = { bold = true, fg = colors.yellow },
-}
-
-local help_file_name = {
- condition = function()
- return vim.bo.filetype == "help"
- end,
- provider = function()
- local filename = vim.api.nvim_buf_get_name(0)
- return vim.fn.fnamemodify(filename, ":t")
- end,
- hl = { fg = colors.blue },
-}
-
--- Cursor position: Ruler
---local Ruler = {
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- --provider = "%P %(%l/%L%):%c ",
- --provider = "%3(%2l%):%c %P ",
- --provider = "%7(%l/%3L%):%2c%P ",
- --provider = "%3(%P%)",
- --provider = "%7(%l/%3L%):%2c %P",
- --provider = "%7 %p%% Ln %l, Col %c",
- --provider = "%9( %P %2l/%L :%2c %)",
- --provider = "%9(%2l%2( : %c%)/%L %P %)",
- --provider = "%7(%l:%c/%L%) ",
- --provider = "%6(%l:%1.5c/%L%) %P ",
- --provider = "%6(%l:%1.5c/%L%) ",
- --provider = "%3(%l:%1.5c/%L%) ",
- --provider = "%7(%l/%3L%):%2c ",
--- provider = "%7(%l:%c%) ",
- --provider = "%l:%c ",
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true },
--- hl = { fg = colors.darkgray, bold = true },
---}
-local leftruler = { Space, Align }
-local rightruler = { Align, Space }
-local cursor_location = {
- --{ provider = "", hl = { fg = utils.get_highlight("StatusLine").bg, bold = true } },
--- { provider = "%<%-05.10(%l:%c%)", hl = { fg = colors.darkgray, bold = true } },
--- { provider = " ", hl = { fg = colors.darkgray, bold = true } },
- --{ provider = "%P %=%<%(%l,%c)" },
- --{ provider = " %w%-8.(%l,%c%)%>" },
- { provider = " %1(%4l:%-3(%c%) %)%*", hl = { fg = colors.black, bold = true } },
-}
-local Ruler = { cursor_location }
-
- --utils.make_flexible_component(
- -- 3,
- -- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- -- { provider = "%<" }
- --),
---local cursor_location = {
--- { provider = "%7(%l:%c%) ", hl = { bold = true } },
--- {
--- provider = " ",
--- hl = function(self)
--- local color = self:mode_color()
--- return { fg = color, bold = true }
--- end,
--- },
---}
-
-local WordCount = {
- condition = function()
- return conditions.buffer_matches({
- filetype = {
- "markdown",
- "txt",
- "vimwiki",
- },
- })
- end,
- Space,
- {
- provider = function()
- return "W:" .. vim.fn.wordcount().words
- end,
- },
-}
-
--- Working Directory
-local WorkDir = {
- provider = function(self)
- self.icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. " "
- local cwd = vim.fn.getcwd(0)
- self.cwd = vim.fn.fnamemodify(cwd, ":~")
- end,
- hl = { fg = colors.blue, bold = true, bg = colors.bg },
-
- utils.make_flexible_component(1, {
- -- evaluates to the full-lenth path
- provider = function(self)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. self.cwd .. trail .. " "
- end,
- }, {
- -- evaluates to the shortened path
- provider = function(self)
- local cwd = vim.fn.pathshorten(self.cwd)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. cwd .. trail .. " "
- end,
- }, {
- -- evaluates to "", hiding the component
- provider = "",
- }),
-}
-
--- Snippets Indicator
--- This requires ultisnips
---local Snippets = {
--- -- check that we are in insert or select mode
--- condition = function()
--- return vim.tbl_contains({'s', 'i'}, vim.fn.mode())
--- end,
--- provider = function()
--- local forward = (vim.fn["UltiSnips#CanJumpForwards"]() == 1) and "" or ""
--- local backward = (vim.fn["UltiSnips#CanJumpBackwards"]() == 1) and " " or ""
--- return backward .. forward
--- end,
--- hl = { fg = "red", bold = true },
---}
-
--- let's add the children to our FileNameBlock component
-FileNameBlock = utils.insert(
- FileNameBlock,
- FileIcon,
- utils.insert(FileNameModifier, FileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local FileInfoBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-FileInfoBlock = utils.insert(
- FileInfoBlock,
- Space,
- FileIcon,
- FileType,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-ViMode = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
-LeftSpace = utils.surround({ "", " " }, function(self)
- return self:mode_color()
-end, { LeftSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
-RightSpace = utils.surround(
- { "", "" },
- colors.gray,
- { RightSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } }
-)
-
-RightSpace2 = utils.surround(
- { "█", "" },
- colors.darkgray,
- { RightSpace2, hl = { fg = colors.darkgray, force = true } }
-)
-
-RightSpace3 = utils.surround(
- { "█", "" },
- utils.get_highlight("statusline").bg,
- { RightSpace3, hl = { fg = colors.darkgray, force = true } }
-)
-
-LSPActive = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { Space, LSPActive, hl = { bg = colors.darkgray, force = true } })
-
-FileInfoBlock = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { FileInfoBlock, Space, hl = { bg = colors.gray, force = true } })
-
-Ruler = utils.surround({ "", "" }, colors.gray, { Ruler, hl = { fg = colors.gray, force = true } })
-
-local left = {
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileNameBlock, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Git, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local middle = {
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Navic, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { DAPMessages, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local right = {
- { Diagnostics, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- {
- RightSpace3,
- hl = { bg = colors.darkgray, force = true },
- },
- { LSPActive, hl = { bg = colors.darkgray, force = true } },
- { RightSpace2, hl = { bg = colors.gray, force = true } },
- { FileInfoBlock, hl = { bg = colors.gray, force = true } },
- { RightSpace, hl = { fg = colors.gray, force = true } },
- --{ cursor_location, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- --utils.make_flexible_component(
- -- 3,
- -- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- -- { provider = "%<" }
- --),
-}
---local Align = { provider = "%=", hl = { bg = colors.bg } }
-
-local sections = { left, middle, right }
-local DefaultStatusline = { sections }
---LSPActive, Space, LSPMessages, Space, UltTest, Space, FileType, Space, Ruler, Space, ScrollBar
-
-local InactiveStatusline = {
- condition = conditions.is_not_active,
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileName, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-
-local SpecialStatusline = {
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
-
- --FileType,
- --Space,
- --Align,
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
-}
-
-local TerminalStatusline = {
-
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
-
- --hl = { bg = colors.red },
-
- -- Quickly add a condition to the ViMode to only show it when buffer is active!
- --{ condition = conditions.is_active, ViMode, Space },
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- --FileType,
- --Space,
- --TerminalName,
- --Align,
-}
-
-local StatusLine = {
-
- --hl = function()
- -- if conditions.is_active() then
- -- return "StatusLine"
- -- else
- -- return "StatusLineNC"
- -- end
- --end,
- static = {
- mode_colors = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- ["\22"] = colors.purple,
- c = colors.orange,
- s = colors.purple,
- S = colors.purple,
- ["\19"] = colors.purple,
- R = colors.red,
- r = colors.red,
- ["!"] = colors.orange,
- t = colors.orange,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors[mode]
- end,
- hl = function(self)
- local color = self:mode_color() -- here!
- return { bg = color }
- end,
- },
- fallthrough = false,
-
- SpecialStatusline,
- TerminalStatusline,
- InactiveStatusline,
- DefaultStatusline,
-}
-
-
---
---- WinBar
---
-local WinbarFileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
- hl = { bg = colors.bg },
-}
-
---local WinbarFileName = {
--- provider = function(self)
--- -- self.filename will be defined later, just keep looking at the example!
--- local filename = self.filename
--- filename = filename == "" and "No Name" or vim.fn.fnamemodify(filename, ":t")
--- return filename
--- end,
--- hl = function()
--- return { fg = colors.gray, italic = true }
--- end,
---}
-local WinbarFileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "No Name"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
- hl = { fg = colors.gray, bold = false, bg = colors.bg },
-}
-
-WinbarFileNameBlock = utils.insert(
- WinbarFileNameBlock,
- FileIcon,
- utils.insert(WinbarFileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-vim.api.nvim_create_autocmd("User", {
- pattern = "HeirlineInitWinbar",
- callback = function(args)
- local buf = args.buf
- local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
- local filetype = vim.tbl_contains({ "gitcommit", "fugitive" }, vim.bo[buf].filetype)
- if buftype or filetype then
- vim.opt_local.winbar = nil
- end
- end,
-})
-
-On_click = {
- -- get the window id of the window in which the component was evaluated
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- -- winid is the window id of the window the component was clicked from
- local winid = minwid
- -- do something with the window id, e.g.:
- local buf = vim.api.nvim_win_get_buf(winid)
- -- ...
- end,
-}
-
-local CloseButton = {
- condition = function(self)
- return not vim.bo.modified
- end,
- -- a small performance improvement:
- -- re register the component callback only on layout/buffer changes.
- update = { "WinNew", "WinClosed", "BufEnter" },
- { provider = " " },
- {
- provider = "",
- hl = { fg = "gray" },
- On_click = {
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- vim.api.nvim_win_close(minwid, true)
- end,
- name = "heirline_winbar_close_button",
- },
- },
-}
-
-local Center = {
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- FileType,
- Space,
- --TerminalName,
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- --utils.surround({ "", "" }, colors.nobg, { FileIcon, { WinbarFileName, hl = { fg = colors.gray } }, FileFlags } ),
- utils.surround({ "", "" }, colors.nobg, { WinbarFileNameBlock } ),
- },
- -- A winbar for regular files
- utils.surround({ "", "" }, colors.nobg, { FileNameBlock }),
-}
-
---local WinBar = { Align, Center, Align }
-local WinBar = { Space, Center }
-
-
--- TabLine
-local TablineBufnr = {
- provider = function(self)
- return tostring(self.bufnr) .. "."
- end,
- hl = { fg = colors.white, bold = false },
-}
-
--- we redefine the filename component, as we probably only want the tail and not the relative path
-local TablineFileName = {
- provider = function(self)
- -- self.filename will be defined later, just keep looking at the example!
- local filename = self.filename
- filename = filename == "" and "No Name" or vim.fn.fnamemodify(filename, ":t")
- return filename
- end,
- hl = function(self)
- return { fg = colors.white, bold = self.is_active or self.is_visible, italic = true }
- end,
-}
-
-local TablineFileFlags = {
- {
- provider = function(self)
- if vim.bo[self.bufnr].modified then
- return " [+] "
- end
- end,
- hl = { fg = colors.green },
- },
- {
- provider = function(self)
- if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then
- return "  "
- end
- end,
- hl = { fg = "orange" },
- },
-}
-
-local TablineFileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (" " .. self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color }
- end,
-}
-
--- Here the filename block finally comes together
-local TablineFileNameBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(self.bufnr)
- end,
- hl = function(self)
- if self.is_active then
- return "TabLineSel"
- -- why not?
- --elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
- --return { fg = "gray", bg = colors.bg }
- else
- return "TabLineFill"
- end
- end,
- on_click = {
- callback = function(_, minwid, _, button)
- if button == "m" then -- close on mouse middle click
- vim.api.nvim_buf_delete(minwid, { force = false })
- else
- vim.api.nvim_win_set_buf(0, minwid)
- end
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_buffer_callback",
- },
- TablineBufnr,
- TablineFileIcon,
- TablineFileName,
- TablineFileFlags,
-}
-
--- a nice "x" button to close the buffer
-local TablineCloseButton = {
- condition = function(self)
- return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
- end,
- { provider = " " },
- {
- provider = " ",
- --hl = { fg = "red", bg = colors.bg },
- hl = { fg = colors.red },
- on_click = {
- callback = function(_, minwid)
- vim.api.nvim_buf_delete(minwid, { force = false })
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_close_buffer_callback",
- },
- },
-}
-
--- The final touch!
-local TablineBufferBlock = utils.surround({ "", "" }, function(self)
- --local TablineBufferBlock = utils.surround({ "█", "█" }, function(self)
- if self.is_active then
- return utils.get_highlight("TabLineSel").bg
- else
- return utils.get_highlight("TabLineFill").bg
- end
-end, { Tab, TablineFileNameBlock, TablineCloseButton })
-
-local BufferLine = utils.make_buflist(
- TablineBufferBlock,
- { provider = "􀰎 ", hl = { fg = colors.white } }, -- left truncation, optional (defaults to "<")
- { provider = " 􀰓", hl = { fg = colors.white } } -- right trunctation, also optional (defaults to ...... yep, ">")
- -- by the way, open a lot of buffers and try clicking them ;)
-)
--- TabList
-local Tabpage = {
- provider = function(self)
- return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T"
- end,
- hl = function(self)
- if not self.is_active then
- return "TabLineFill"
- else
- return "TabLineSel"
- end
- end,
-}
-
-local TabpageClose = {
- provider = "%999X  %X",
- --hl = "TabLine",
- hl = { fg = colors.red, bg = colors.bg },
-}
-
-local TabPages = {
- -- only show this component if there's 2 or more tabpages
- condition = function()
- return #vim.api.nvim_list_tabpages() >= 2
- end,
- {
- provider = "%=",
- },
- utils.make_tablist(Tabpage),
- TabpageClose,
-}
-
--- TabLineOffset
-local TabLineOffset = {
- condition = function(self)
- local win = vim.api.nvim_tabpage_list_wins(0)[1]
- local bufnr = vim.api.nvim_win_get_buf(win)
- self.winid = win
-
- if vim.api.nvim_buf_get_option(bufnr, "filetype") == "NvimTree" then
- self.title = "NvimTree"
- return true
- end
- end,
-
- provider = function(self)
- local title = self.title
- local width = vim.api.nvim_win_get_width(self.winid)
- local pad = math.ceil((width - #title) / 2)
- return string.rep(" ", pad) .. title .. string.rep(" ", pad)
- end,
-
- hl = function(self)
- if vim.api.nvim_get_current_win() == self.winid then
- return "TablineSel"
- else
- return "TablineFill"
- end
- end,
-}
-
-local TabLine = {
- TabLineOffset,
- BufferLine,
- TabPages,
-}
-
-require("heirline").setup(StatusLine, WinBar, TabLine)
-
--- Yep, with heirline we're driving manual!
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
-
-local function get_bufs()
- return vim.tbl_filter(function(bufnr)
- return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted
- end, vim.api.nvim_list_bufs())
-end
-
-local function goto_buf(index)
- local bufs = get_bufs()
- if index > #bufs then
- index = #bufs
- end
- vim.api.nvim_win_set_buf(0, bufs[index])
-end
-
-local function addKey(key, index)
- vim.keymap.set("", "<A-" .. key .. ">", function()
- goto_buf(index)
- end, { noremap = true, silent = true })
-end
-
-for i = 1, 9 do
- addKey(i, i)
-end
-addKey("0", 10)
diff --git a/lua/plugins/heirline.lua-202210111610.backup b/lua/plugins/heirline.lua-202210111610.backup
deleted file mode 100644
index e1a54e3..0000000
--- a/lua/plugins/heirline.lua-202210111610.backup
+++ /dev/null
@@ -1,1452 +0,0 @@
-local conditions = require("heirline.conditions")
-local utils = require("heirline.utils")
-
-local colors = {
- --bg = "#23232e",
- bg = nil,
- nobg = nil,
- bright_fg = "#ffffff",
- bright_bg = "#000000",
- white = "#f8f8f2",
- --darkgray = "#1c1c29",
- --darkgray = "#2d2b3a",
- --darkgray = "#181818",
- darkgray = "#23232e",
- --darkgray = "#404040",
- --gray = "#333842",
- --gray = "#393547",
- --gray = "#333842",
- --lightgray = "#888888",
- gray = "#2d2b3a",
- lightgray = "#d6d3ea",
- pink = "#f92672",
- green = "#50fa7b",
- blue = "#39BAE6",
- yellow = "#f1fa8c",
- orange = "#ffb86c",
- ---purple = "#bd93f9",
- ---purple = "#be2ed6",
- purple = "#BF40BF",
- --purple = "#5D3FD3",
- --purple = "#DA70D6",
- violet = "#7F00FF",
- red = "#ff5555",
- cyan = "#66d9eC",
- diag = {
- warn = utils.get_highlight("DiagnosticSignWarn").fg,
- error = utils.get_highlight("DiagnosticSignError").fg,
- hint = utils.get_highlight("DiagnosticSignHint").fg,
- info = utils.get_highlight("DiagnosticSignInfo").fg,
- },
- git = {
- del = "#e95678",
- add = "#a6e22e",
- change = "#ae81ff",
- },
-}
-
-require("heirline").load_colors(colors)
-
-local ViMode = {
- init = function(self)
- self.mode = vim.fn.mode(1)
- if not self.once then
- vim.cmd("au ModeChanged *:*o redrawstatus")
- end
- self.once = true
- end,
- static = {
- mode_names = {
- n = "NORMAL ",
- no = "N·OPERATOR PENDING ",
- nov = "N?",
- noV = "N?",
- ["no\22"] = "N? ",
- niI = "Ni",
- niR = "Nr",
- niV = "Nv",
- nt = "Nt",
- v = "VISUAL ",
- vs = "Vs",
- V = "V·LINE ",
- ["\22"] = "V·BLOCK ",
- ["\22s"] = "V·BLOCK ",
- s = "SELECT ",
- S = "S·LINE ",
- ["\19"] = "S·BLOCK ",
- i = "INSERT ",
- ix = "insert x ",
- ic = "insert c ",
- R = "REPLACE ",
- Rc = "Rc",
- Rx = "Rx",
- Rv = "V·REPLACE ",
- Rvc = "Rv",
- Rvx = "Rv",
- c = "COMMAND ",
- cv = "VIM EX ",
- --ce = "EX ",
- r = "PROMPT ",
- rm = "MORE ",
- ["r?"] = "CONFIRM ",
- ["!"] = "SHELL ",
- t = "TERMINAL ",
- },
- },
- provider = function(self)
- return " %2(" .. self.mode_names[self.mode] .. "%)"
- end,
- hl = function(self)
- local color = self:mode_color()
- return { fg = color, bold = true }
- end,
- update = {
- "ModeChanged",
- },
-}
-
---
---
---
--- 
---凜兩
--- LSP
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
--- update = {'LspAttach', 'LspDetach'},
---
--- -- You can keep it simple,
--- -- provider = " [LSP]",
---
--- -- Or complicate things a bit and get the servers names
--- provider = function()
--- local names = {}
--- for i, server in pairs(vim.lsp.buf_get_clients(0)) do
--- table.insert(names, server.name)
--- end
--- return " [" .. table.concat(names, " ") .. "]"
--- end,
--- hl = { fg = "green", bold = true },
--- on_click = {
--- callback = function()
--- vim.defer_fn(function()
--- vim.cmd("LspInfo")
--- end, 100)
--- end,
--- name = "heirline_LSP",
--- },
---}
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
--- update = { "LspAttach", "LspDetach" },
---
--- -- You can keep it simple,
--- -- provider = " [LSP]",
---
--- -- Or complicate things a bit and get the servers names
--- provider = function()
--- local names = {}
--- for i, server in pairs(vim.lsp.buf_get_clients(0)) do
--- table.insert(names, server.name)
--- end
--- return " [" .. table.concat(names, " ") .. "]"
--- end,
--- hl = { fg = "green", bold = true },
---}
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
---
--- provider = function()
--- local names = vim.tbl_values(vim.tbl_map(function(cl)
--- return cl.name
--- end, vim.lsp.buf_get_clients(0)))
---
--- return "LSP " .. table.concat(names, " ") .. ""
--- end,
--- hl = { fg = colors.bg },
---}
-local LSPActive = {
- condition = conditions.lsp_attached,
- update = { "LspAttach", "LspDetach" },
-
- -- You can keep it simple,
- -- provider = " [LSP]",
-
- -- Or complicate things a bit and get the servers names
- provider = function()
- local buf_clients = vim.lsp.buf_get_clients()
- local buf_ft = vim.bo.filetype
- local buf_client_names = {}
-
- -- add client
- for _, client in pairs(buf_clients) do
- if client.name ~= "null-ls" then
- table.insert(buf_client_names, client.name)
- end
- end
- return "⚙️ " .. table.concat(buf_client_names, "")
- --return table.concat(buf_client_names, " ")
- --return "⚙️﬉ " .. table.concat(buf_client_names, ", ") .. " "
- --return " " .. table.concat(names, " ") .. " "
- end,
- hl = { fg = colors.lightgray, bold = false },
-}
---local LSPActive = {
--- function(msg)
--- msg = msg or "LS Inactive"
--- local buf_clients = vim.lsp.buf_get_clients()
--- if next(buf_clients) == nil then
--- if type(msg) == "boolean" or #msg == 0 then
--- return "LS Inactive"
--- end
--- return msg
--- end
---
--- local buf_ft = vim.bo.filetype
--- local buf_client_names = {}
---
--- -- add client
--- for _, client in pairs(buf_clients) do
--- if client.name ~= "null-ls" then
--- table.insert(buf_client_names, client.name)
--- end
--- end
---
--- -- add formatter
--- local formatters = require("user.lsp.null-ls.formatters")
--- local supported_formatters = formatters.list_registered(buf_ft)
--- vim.list_extend(buf_client_names, supported_formatters)
---
--- -- add linter
--- local linters = require("user.lsp.null-ls.linters")
--- local supported_linters = linters.list_registered(buf_ft)
--- vim.list_extend(buf_client_names, supported_linters)
---
--- return table.concat(buf_client_names, " ")
--- -- return "[" .. table.concat(buf_client_names, ", ") .. "]"
--- end,
--- hl = { fg = colors.bg },
---}
--- lsp status
--- I personally use it only to display progress messages!
--- See lsp-status/README.md for configuration options.
-
--- Note: check "j-hui/fidget.nvim" for a nice statusline-free alternative.
-local LSPMessages = {
- provider = require("lsp-status").status,
- hl = { fg = "gray" },
-}
-
--- Nvim Navic
---local Navic = {
--- condition = require("nvim-navic").is_available,
--- provider = require("nvim-navic").get_location,
---}
---local Navic = utils.make_flexible_component(3, Navic, { provider = "" })
-
--- Full nerd (with icon colors)!
-local Navic = {
- condition = require("nvim-navic").is_available,
- static = {
- -- create a type highlight map
- type_hl = {
- File = "Directory",
- Module = "Include",
- Namespace = "TSNamespace",
- Package = "Include",
- Class = "Struct",
- Method = "Method",
- Property = "TSProperty",
- Field = "TSField",
- Constructor = "TSConstructor ",
- Enum = "TSField",
- Interface = "Type",
- Function = "Function",
- Variable = "TSVariable",
- Constant = "Constant",
- String = "String",
- Number = "Number",
- Boolean = "Boolean",
- Array = "TSField",
- Object = "Type",
- Key = "TSKeyword",
- Null = "Comment",
- EnumMember = "TSField",
- Struct = "Struct",
- Event = "Keyword",
- Operator = "Operator",
- TypeParameter = "Type",
- },
- },
- init = function(self)
- local data = require("nvim-navic").get_data() or {}
- local children = {}
- -- create a child for each level
- for i, d in ipairs(data) do
- local child = {
- {
- provider = d.icon,
- hl = self.type_hl[d.type],
- },
- {
- provider = d.name,
- -- highlight icon only or location name as well
- -- hl = self.type_hl[d.type],
- },
- }
- -- add a separator only if needed
- if #data > 1 and i < #data then
- table.insert(child, {
- provider = " > ",
- hl = { fg = "bright_fg" },
- })
- end
- table.insert(children, child)
- end
- -- instantiate the new child, overwriting the previous one
- self[1] = self:new(children, 1)
- end,
- hl = { fg = "gray" },
-}
-
--- Diagnostics
-local Diagnostics = {
-
- condition = conditions.has_diagnostics,
-
- static = {
- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
-
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
-
- update = { "DiagnosticChanged", "BufEnter" },
-
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint, bg = colors.bg },
- },
- --{
- -- provider = "]",
- --},
- on_click = {
- callback = function()
- require("trouble").toggle({ mode = "document_diagnostics" })
- -- or
- -- vim.diagnostic.setqflist()
- end,
- name = "heirline_diagnostics",
- },
-}
-
--- Git
--- For the ones who're not (too) afraid of changes! Uses gitsigns.
-local Git = {
- condition = conditions.is_git_repo,
-
- init = function(self)
- self.status_dict = vim.b.gitsigns_status_dict
- self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
- end,
- --hl = { fg = "orange" },
- hl = { fg = colors.orange, bg = colors.bg },
- { -- git branch name
- provider = function(self)
- return " " .. self.status_dict.head
- end,
- --hl = { bold = true },
- hl = { bold = true, bg = colors.bg },
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- --provider = "("
- provider = " ",
- },
- {
- provider = function(self)
- local count = self.status_dict.added or 0
- --return count > 0 and ("+" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_add" },
- hl = { fg = colors.git.add, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.removed or 0
- --return count > 0 and ("-" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_del" },
- hl = { fg = colors.git.del, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.changed or 0
- --return count > 0 and ("~" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_change" },
- hl = { fg = colors.git.change, bg = colors.bg },
- },
- --{
- -- condition = function(self)
- -- return self.has_changes
- -- end,
- -- provider = ")",
- --},
- on_click = {
- callback = function()
- -- If you want to use Fugitive:
- -- vim.cmd("G")
-
- -- If you prefer Lazygit
- -- use vim.defer_fn() if the callback requires
- -- opening of a floating window
- -- (this also applies to telescope)
- vim.defer_fn(function()
- vim.cmd("Lazygit")
- end, 100)
- end,
- name = "heirline_git",
- },
-}
-
--- Debugger
--- Display informations from nvim-dap!
-local DAPMessages = {
- -- display the dap messages only on the debugged file
- condition = function()
- local session = require("dap").session()
- if session then
- local filename = vim.api.nvim_buf_get_name(0)
- if session.config then
- local progname = session.config.program
- return filename == progname
- end
- end
- return false
- end,
- provider = function()
- return " " .. require("dap").status()
- end,
- hl = { fg = utils.get_highlight("Debug").fg },
- -- Debugger on_click: step-over, step-into, next, previous, stop buttons
- -- coming soon!
-}
-
--- Tests
--- This requires the great ultest.
---local UltTest = {
--- condition = function()
--- return vim .api.nvim_call_function("ultest#is_test_file", {}) ~= 0
--- end,
--- static = {
--- passed_icon = vim.fn.sign_getdefined("test_pass")[1].text,
--- failed_icon = vim.fn.sign_getdefined("test_fail")[1].text,
--- passed_hl = { fg = utils.get_highlight("UltestPass").fg },
--- failed_hl = { fg = utils.get_highlight("UltestFail").fg },
--- },
--- init = function(self)
--- self.status = vim.api.nvim_call_function("ultest#status", {})
--- end,
---
--- -- again, if you'd like icons and numbers to be colored differently,
--- -- just split the component in two
--- {
--- provider = function(self)
--- return self.passed_icon .. self.status.passed .. " "
--- end,
--- hl = function(self)
--- return self.passed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return self.failed_icon .. self.status.failed .. " "
--- end,
--- hl = function(self)
--- return self.failed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return "of " .. self.status.tests - 1
--- end,
--- },
---}
-
--- FileName and Friends
-
---local Align = { provider = "%=" }
-local Align = { provider = "%=", hl = { bg = colors.bg } }
-local Space = { provider = " ", hl = { bg = colors.bg } }
-local Tab = { provider = " " }
-local Fill = { provider = "%=", hl = { bg = colors.nobg } }
-local LeftSep = { provider = "", hl = { fg = colors.bg } }
-local RightSep = { provider = "", hl = { fg = colors.bg } }
-
-local FileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg },
-}
--- We can now define some children separately and add them later
---
-
-local FileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color, bg = colors.bg }
- end,
-}
-
-local FileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "No Name"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
-}
-
-local FileFlags = {
- {
- provider = function()
- if vim.bo.modified then
- return " [+]"
- --±[+]
- end
- end,
- hl = { fg = colors.green, bg = colors.bg },
- },
- {
- provider = function()
- if not vim.bo.modifiable or vim.bo.readonly then
- return " "
- end
- end,
- --hl = { fg = colors.orange },
- hl = { fg = colors.orange, bold = true, bg = colors.bg },
- },
-}
--- Now, let's say that we want the filename color to change if the buffer is
--- modified. Of course, we could do that directly using the FileName.hl field,
--- but we'll see how easy it is to alter existing components using a "modifier"
--- component
-
-local FileNameModifer = {
- hl = function()
- if vim.bo.modified then
- return { fg = colors.green, bold = false, force = true }
- end
- end,
-}
-
--- FileType, FileEncoding and FileFormat
-local FileType = {
- provider = function()
- return vim.bo.filetype
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
-}
-
---local FileEncoding = {
--- provider = function()
--- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
--- return enc ~= "utf-8" and enc:upper()
--- end,
--- hl = { bg = colors.bg },
---}
-local FileEncoding = {
- Space,
- provider = function()
- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
- return enc:lower()
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg, bold = false },
-}
-
-local FileFormat = {
- provider = function()
- local fmt = vim.bo.fileformat
- return fmt ~= "unix" and fmt:upper()
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- FileSize and FileLastModified
-local FileSize = {
- provider = function()
- -- stackoverflow, compute human readable file size
- local suffix = { "b", "k", "M", "G", "T", "P", "E" }
- local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
- fsize = (fsize < 0 and 0) or fsize
- if fsize < 1024 then
- return fsize .. suffix[1]
- end
- local i = math.floor((math.log(fsize) / math.log(1024)))
- return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileLastModified = {
- -- did you know? Vim is full of functions!
- provider = function()
- local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
- return (ftime > 0) and os.date("%c", ftime)
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- Spell
--- Add indicator when spell is set!
-local Spell = {
- condition = function()
- return vim.wo.spell
- end,
- provider = "SPELL ",
- hl = { bold = true, fg = "orange" },
-}
-
--- Cursor position: Ruler and ScrollBar
--- We're getting minimalists here!
-local Ruler = {
- -- We're getting minimalists here!
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- --provider = "%P %(%l/%L%):%c ",
- --provider = "%3(%2l%):%c %P ",
- --provider = "%7(%l/%3L%):%2c%P ",
- --provider = "%3(%P%)",
- --provider = "%7(%l/%3L%):%2c %P",
- --provider = "%7 %p%% Ln %l, Col %c",
- --provider = "%9( %P %2l/%L :%2c %)",
- --provider = "%9(%2l%2( : %c%)/%L %P %)",
- --provider = "%7(%l:%c/%L%) ",
- --provider = "%6(%l:%1.5c/%L%) %P ",
- provider = "%3(%l:%1.5c/%L%) ",
- --provider = "%6(%l:%1.5c/%L%) ",
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true },
-}
-
-local Total = {
- provider = "%L",
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false },
-}
-
-local WordCount = {
- condition = function()
- return conditions.buffer_matches({
- filetype = {
- "markdown",
- "txt",
- "vimwiki",
- },
- })
- end,
- Space,
- {
- provider = function()
- return "W:" .. vim.fn.wordcount().words
- end,
- },
-}
-
-local Position = {
- Space,
- { provider = "%l:%c" },
- hl = { bg = colors.bg },
-}
-
-local Percentage = {
- Space,
- { provider = "%P" },
- hl = { bg = colors.bg },
-}
--- Working Directory
-local WorkDir = {
- provider = function(self)
- self.icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. " "
- local cwd = vim.fn.getcwd(0)
- self.cwd = vim.fn.fnamemodify(cwd, ":~")
- end,
- hl = { fg = colors.blue, bold = true, bg = colors.bg },
-
- utils.make_flexible_component(1, {
- -- evaluates to the full-lenth path
- provider = function(self)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. self.cwd .. trail .. " "
- end,
- }, {
- -- evaluates to the shortened path
- provider = function(self)
- local cwd = vim.fn.pathshorten(self.cwd)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. cwd .. trail .. " "
- end,
- }, {
- -- evaluates to "", hiding the component
- provider = "",
- }),
-}
-
--- Terminal Name
--- Special handling of the built-in terminal bufname. See conditional statuslines below to see an example of dedicated statusline for terminals!
-
---local TerminalName = {
--- -- we could add a condition to check that buftype == 'terminal'
--- -- or we could do that later (see #conditional-statuslines below)
--- provider = function()
--- local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
--- return " " .. tname
--- end,
--- hl = { bold = true, bg = colors.bg },
---}
-
--- Snippets Indicator
--- This requires ultisnips
---local Snippets = {
--- -- check that we are in insert or select mode
--- condition = function()
--- return vim.tbl_contains({'s', 'i'}, vim.fn.mode())
--- end,
--- provider = function()
--- local forward = (vim.fn["UltiSnips#CanJumpForwards"]() == 1) and "" or ""
--- local backward = (vim.fn["UltiSnips#CanJumpBackwards"]() == 1) and " " or ""
--- return backward .. forward
--- end,
--- hl = { fg = "red", bold = true },
---}
-
--- let's add the children to our FileNameBlock component
---FileNameBlock = utils.insert(
--- FileNameBlock,
---FileEncoding,
---Space,
---FileIcon,
---FileType,
---FileLastModified,
---FileSize,
---FileFormat,
---FileNameModifer,
--- unpack(FileFlags),
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
--- let's add the children to our FileNameBlock component
-FileNameBlock = utils.insert(
- FileNameBlock,
- FileIcon,
- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local FileInfoBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-FileInfoBlock = utils.insert(
- FileInfoBlock,
- Space,
- FileIcon,
- FileType,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
---FileNameBlock = utils.insert(
--- FileNameBlock,
--- FileIcon,
--- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
--- unpack(FileFlags), -- A small optimisation, since their parent does nothing
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
-
-local Surrr = {
- utils.surround({ "", "" }, "red", {
- utils.surround({ "", "" }, "green", utils.surround({ "", "" }, "blue", { provider = "heyya" })),
- { provider = "Normal" },
- }),
-}
---ViMode = utils.surround({ "", "" }, "bright_bg", { ViMode, Snippets })
---ViMode = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
---ViMode = utils.surround({ "◥", "" }, function(self) return self:mode_color() end, {
--- utils.surround({ "█", "" }, function(self) return self:mode_color() end, utils.surround({ "", "" }, function(self) return self:mode_color() end, { {provider = "normal" }, ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } } )),
--- { provider = "heyya" },
--- })
--- Statusline
---BackgroundStatusline = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { BackgroundStatusline, hl = { bg = utils.get_highlight("statusline").bg, force = true } })
---
-local Surrr = {
- utils.surround({ "", "" }, "gray", {
- FileInfoBlock,
- hl = { bg = colors.gray },
- utils.surround({ "", "" }, "gray", {
- Percentage,
- utils.surround({ "", "" }, function(self)
- return self:mode_color()
- end, { Space, Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } }),
- }),
- }),
-}
-
-ViMode = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
-LeftSpace = utils.surround({ "", " " }, function(self)
- return self:mode_color()
-end, { LeftSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
---
-RightSpace = utils.surround(
- { "", "" },
- colors.gray,
- { RightSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } }
-)
-
-RightSpace2 = utils.surround(
- { "█", "" },
- colors.darkgray,
- { RightSpace2, hl = { fg = colors.darkgray, force = true } }
-)
-
-RightSpace3 = utils.surround(
- { "█", "" },
- utils.get_highlight("statusline").bg,
- { RightSpace3, hl = { fg = colors.darkgray, force = true } }
-)
---RightSpace = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-----
---
---Percentage = utils.surround({ "", " " }, "red", { Percentage, hl = { bg = colors.red, force = true } })
---
-
-LSPActive = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { Space, LSPActive, hl = { bg = colors.darkgray, force = true } })
-
-FileInfoBlock = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { FileInfoBlock, Space, hl = { bg = colors.gray, force = true } })
-
-Ruler = utils.surround({ "", "" }, colors.gray, { Space, Ruler, hl = { fg = colors.gray, force = true } })
-
-local align = { provider = "%=" }
-local left = {
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileNameBlock, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Git, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local middle = {
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Navic, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { DAPMessages, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local right = {
- { Diagnostics, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- {
- RightSpace3,
- hl = { bg = colors.darkgray, force = true },
- },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { LSPActive, hl = { bg = colors.darkgray, force = true } },
- --{ FileEncoding, hl = { bg = colors.orange, force = true } },
- { RightSpace2, hl = { bg = colors.gray, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileInfoBlock, hl = { bg = colors.gray, force = true } },
- --{ Space, hl = { bg = colors.red, force = true } },
- --{ FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ WordCount, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = colors.gray, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
-}
-
-local sections = { left, middle, right }
-local DefaultStatusline = { sections }
-
---local NewSpace = { provider = "", hl = { bg = utils.get_highlight("statusline").bg } }
---local statusline = {
---Space,
---Space,
---Git,
---Space,
---Diagnostics,
---Align,
---Navic,
---DAPMessages,
---Align,
---Space,
---FileInfoBlock,
---Space,
---WordCount,
---Ruler,
---LSPActive, Space, LSPMessages, Space, UltTest, Space, FileType, Space, Ruler, Space, ScrollBar
---}
-
-local InactiveStatusline = {
- condition = conditions.is_not_active,
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileName, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-
-local SpecialStatusline = {
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
-
- --FileType,
- --Space,
- --Align,
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
-
- --FileType, Space, HelpFileName, Align
-}
-
-local TerminalStatusline = {
-
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
-
- --hl = { bg = colors.red },
-
- -- Quickly add a condition to the ViMode to only show it when buffer is active!
- --{ condition = conditions.is_active, ViMode, Space },
-
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- --FileType,
- --Space,
- --TerminalName,
- --Align,
-}
-
-local StatusLine = {
-
- --hl = function()
- -- if conditions.is_active() then
- -- return "StatusLine"
- -- else
- -- return "StatusLineNC"
- -- end
- --end,
- static = {
- mode_colors = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- ["\22"] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- ["\19"] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- --mode_colors_map = {
- -- n = colors.blue,
- -- i = colors.green,
- -- v = colors.purple,
- -- V = colors.violet,
- -- [""] = colors.red,
- -- c = colors.yellow,
- -- s = colors.orange,
- -- S = colors.orange,
- -- [""] = colors.purple,
- -- R = colors.orange,
- -- r = colors.orange,
- -- ["!"] = colors.red,
- -- t = colors.red,
- },
- --mode_color = function(self)
- -- local mode = conditions.is_active() and vim.fn.mode() or "n"
- -- return self.mode_colors_map[mode]
- --end,
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors[mode]
- end,
- hl = function(self)
- local color = self:mode_color() -- here!
- return { bg = color }
- end,
- },
- fallthrough = false,
-
- SpecialStatusline,
- TerminalStatusline,
- InactiveStatusline,
- DefaultStatusline,
-}
-
--- WinBar
-
-vim.api.nvim_create_autocmd("User", {
- pattern = "HeirlineInitWinbar",
- callback = function(args)
- local buf = args.buf
- local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
- local filetype = vim.tbl_contains({ "gitcommit", "fugitive" }, vim.bo[buf].filetype)
- if buftype or filetype then
- vim.opt_local.winbar = nil
- end
- end,
-})
-
-on_click = {
- -- get the window id of the window in which the component was evaluated
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- -- winid is the window id of the window the component was clicked from
- local winid = minwid
- -- do something with the window id, e.g.:
- local buf = vim.api.nvim_win_get_buf(winid)
- -- ...
- end,
-}
-
-local CloseButton = {
- condition = function(self)
- return not vim.bo.modified
- end,
- -- a small performance improvement:
- -- re register the component callback only on layout/buffer changes.
- update = { "WinNew", "WinClosed", "BufEnter" },
- { provider = " " },
- {
- provider = "",
- hl = { fg = "gray" },
- on_click = {
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- vim.api.nvim_win_close(minwid, true)
- end,
- name = "heirline_winbar_close_button",
- },
- },
-}
-
-local active_middle_segment = { --{{{
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- provider = "%f",
- hl = function(self)
- local color = self:mode_color() -- here!
- return { fg = color }
- end,
- -- self.filename will be defined later, just keep looking at the example!
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- FileType,
- Space,
- --TerminalName,
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- utils.surround({ "", "" }, colors.nobg, { hl = { fg = "gray", force = true }, FileNameBlock }),
- },
-}
-
---local WinBar = {
--- Fill,
--- active_middle_segment,
--- Fill,
---}
-local WinBar = {
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- FileType,
- Space,
- --TerminalName,
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- utils.surround({ "", "" }, colors.nobg, { hl = { fg = "gray", force = true }, FileNameBlock }),
- },
- -- A winbar for regular files
- utils.surround({ "", "" }, colors.nobg, FileNameBlock),
-}
-
--- TabLine
---
-
-local TablineBufnr = {
- provider = function(self)
- return tostring(self.bufnr) .. "."
- end,
- --hl = "Comment",
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true },
-}
-
--- we redefine the filename component, as we probably only want the tail and not the relative path
-local TablineFileName = {
- provider = function(self)
- -- self.filename will be defined later, just keep looking at the example!
- local filename = self.filename
- filename = filename == "" and "No Name" or vim.fn.fnamemodify(filename, ":t")
- return filename
- end,
- hl = function(self)
- return { bold = self.is_active or self.is_visible, italic = true }
- end,
-}
-
-local TablineFileFlags = {
- {
- provider = function(self)
- if vim.bo[self.bufnr].modified then
- return " [+] "
- end
- end,
- hl = { fg = colors.green },
- },
- --+
- {
- provider = function(self)
- if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then
- return "  "
- end
- end,
- hl = { fg = "orange" },
- },
-}
-
-local TablineFileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (" " .. self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color }
- end,
-}
-
--- Here the filename block finally comes together
-local TablineFileNameBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(self.bufnr)
- end,
- hl = function(self)
- if self.is_active then
- return "TabLineSel"
- -- why not?
- --elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
- --return { fg = "gray", bg = colors.bg }
- else
- return "TabLineFill"
- end
- end,
- on_click = {
- callback = function(_, minwid, _, button)
- if button == "m" then -- close on mouse middle click
- vim.api.nvim_buf_delete(minwid, { force = false })
- else
- vim.api.nvim_win_set_buf(0, minwid)
- end
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_buffer_callback",
- },
- TablineBufnr,
- --FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
- TablineFileIcon,
- TablineFileName,
- TablineFileFlags,
-}
-
--- a nice "x" button to close the buffer
-local TablineCloseButton = {
- condition = function(self)
- return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
- end,
- { provider = " " },
- {
- provider = " ",
- --hl = { fg = "red", bg = colors.bg },
- hl = { fg = "red" },
- on_click = {
- callback = function(_, minwid)
- vim.api.nvim_buf_delete(minwid, { force = false })
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_close_buffer_callback",
- },
- },
-}
-
--- The final touch!
-local TablineBufferBlock = utils.surround({ "", "" }, function(self)
- --local TablineBufferBlock = utils.surround({ "█", "█" }, function(self)
- if self.is_active then
- return utils.get_highlight("TabLineSel").bg
- else
- return utils.get_highlight("TabLineFill").bg
- end
-end, { Tab, TablineFileNameBlock, TablineCloseButton })
-
-local BufferLine = utils.make_buflist(
- TablineBufferBlock,
- --{ provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- --{ provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- { provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- { provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- -- by the way, open a lot of buffers and try clicking them ;)
-)
-
--- TabList
-local Tabpage = {
- provider = function(self)
- return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T"
- end,
- hl = function(self)
- if not self.is_active then
- return "TabLine"
- else
- return "TabLineSel"
- end
- end,
-}
-
-local TabpageClose = {
- provider = "%999X  %X",
- --hl = "TabLine",
- hl = { fg = colors.red, bg = colors.bg },
-}
-
-local TabPages = {
- -- only show this component if there's 2 or more tabpages
- condition = function()
- return #vim.api.nvim_list_tabpages() >= 2
- end,
- { provider = "%=" },
- utils.make_tablist(Tabpage),
- TabpageClose,
-}
-
--- TabLineOffset
-local TabLineOffset = {
- condition = function(self)
- local win = vim.api.nvim_tabpage_list_wins(0)[1]
- local bufnr = vim.api.nvim_win_get_buf(win)
- self.winid = win
-
- if vim.bo[bufnr].filetype == "NvimTree" then
- self.title = "NvimTree"
- return true
- -- elseif vim.bo[bufnr].filetype == "TagBar" then
- -- ...
- end
- end,
-
- provider = function(self)
- local title = self.title
- local width = vim.api.nvim_win_get_width(self.winid)
- local pad = math.ceil((width - #title) / 2)
- return string.rep(" ", pad) .. title .. string.rep(" ", pad)
- end,
-
- hl = function(self)
- if vim.api.nvim_get_current_win() == self.winid then
- return "TablineSel"
- else
- return "Tabline"
- end
- end,
-}
-
-local TabLine = {
- --hl = { bg = colors.bg },
- fallthrough = false,
- TabLineOffset,
- BufferLine,
- TabPages,
-}
-
-require("heirline").setup(StatusLine, WinBar, TabLine)
---require("heirline").setup(StatusLine, TabLine)
-
--- Yep, with heirline we're driving manual!
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
-
---local function get_bufs()
--- return vim.tbl_filter(function(bufnr)
--- return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted
--- end, vim.api.nvim_list_bufs())
---end
---
---local function goto_buf(index)
--- local bufs = get_bufs()
--- if index > #bufs then
--- index = #bufs
--- end
--- vim.api.nvim_win_set_buf(0, bufs[index])
---end
---
---local function addKey(key, index)
--- vim.keymap.set("", "<A-" .. key .. ">", function()
--- goto_buf(index)
--- end, { noremap = true, silent = true })
---end
---
---for i = 1, 9 do
--- addKey(i, i)
---end
---addKey("0", 10)
diff --git a/lua/plugins/heirlinenew.lua b/lua/plugins/heirlinenew.lua
deleted file mode 100644
index 64a33b2..0000000
--- a/lua/plugins/heirlinenew.lua
+++ /dev/null
@@ -1,1342 +0,0 @@
-local conditions = require("heirline.conditions")
-local utils = require("heirline.utils")
-
-local colors = {
- --bg = "#23232e",
- bg = nil,
- nobg = nil,
- bright_fg = "#ffffff",
- bright_bg = "#000000",
- white = "#f8f8f2",
- gray = "#23232e",
- pink = "#f92672",
- green = "#50fa7b",
- blue = "#39BAE6",
- yellow = "#f1fa8c",
- orange = "#ffb86c",
- purple = "#bd93f9",
- red = "#ff5555",
- cyan = "#66d9eC",
- diag = {
- warn = utils.get_highlight("DiagnosticSignWarn").fg,
- error = utils.get_highlight("DiagnosticSignError").fg,
- hint = utils.get_highlight("DiagnosticSignHint").fg,
- info = utils.get_highlight("DiagnosticSignInfo").fg,
- },
- git = {
- del = "#e95678",
- add = "#a6e22e",
- change = "#ae81ff",
- },
-}
-
-require("heirline").load_colors(colors)
-
---local function setup_colors()
--- return {
--- bright_bg = utils.get_highlight("Folded").bg,
--- bright_fg = utils.get_highlight("Folded").fg,
--- red = utils.get_highlight("DiagnosticError").fg,
--- dark_red = utils.get_highlight("DiffDelete").bg,
--- green = utils.get_highlight("String").fg,
--- blue = utils.get_highlight("Function").fg,
--- gray = utils.get_highlight("NonText").fg,
--- orange = utils.get_highlight("Constant").fg,
--- purple = utils.get_highlight("Statement").fg,
--- cyan = utils.get_highlight("Special").fg,
--- diag_warn = utils.get_highlight("DiagnosticWarn").fg,
--- diag_error = utils.get_highlight("DiagnosticError").fg,
--- diag_hint = utils.get_highlight("DiagnosticHint").fg,
--- diag_info = utils.get_highlight("DiagnosticInfo").fg,
--- git_del = utils.get_highlight("diffDeleted").fg,
--- git_add = utils.get_highlight("diffAdded").fg,
--- git_change = utils.get_highlight("diffChanged").fg,
--- }
---end
---require('heirline').load_colors(setup_colors())
---
---vim.api.nvim_create_augroup("Heirline", { clear = true })
---vim.api.nvim_create_autocmd("ColorScheme", {
--- callback = function()
--- local colors = setup_colors()
--- utils.on_colorscheme(colors)
--- end,
--- group = "Heirline",
---})
-
-local ViMode = {
- static = {
- mode_names = { -- change the strings if you like it vvvvverbose!
- ["n"] = "NORMAL ",
- ["no"] = "N·OPERATOR PENDING ",
- ["v"] = "VISUAL ",
- ["V"] = "V·LINE ",
- [""] = "V·BLOCK ",
- ["s"] = "SELECT ",
- ["S"] = "S·LINE ",
- [""] = "S·BLOCK ",
- ["i"] = "INSERT ",
- ["R"] = "REPLACE ",
- ["Rv"] = "V·REPLACE ",
- ["c"] = "COMMAND ",
- ["cv"] = "VIM EX ",
- ["ce"] = "EX ",
- ["r"] = "PROMPT ",
- ["rm"] = "MORE ",
- ["r?"] = "CONFIRM ",
- ["!"] = "SHELL ",
- ["t"] = "TERMINAL ",
- },
- },
- provider = function(self)
- return " %2(" .. self.mode_names[vim.fn.mode(1)] .. "%)"
- end,
- hl = function(self)
- local color = self:mode_color() -- here!
- return { bg = color, fg = colors.bg, bold = true }
- end,
-}
-
--- LSP
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
--- update = {'LspAttach', 'LspDetach'},
---
--- -- You can keep it simple,
--- -- provider = " [LSP]",
---
--- -- Or complicate things a bit and get the servers names
--- provider = function()
--- local names = {}
--- for i, server in pairs(vim.lsp.buf_get_clients(0)) do
--- table.insert(names, server.name)
--- end
--- return " [" .. table.concat(names, " ") .. "]"
--- end,
--- hl = { fg = "green", bold = true },
--- on_click = {
--- callback = function()
--- vim.defer_fn(function()
--- vim.cmd("LspInfo")
--- end, 100)
--- end,
--- name = "heirline_LSP",
--- },
---}
-
---local LSPActive = {
--- condition = conditions.lsp_attached,
--- update = { "LspAttach", "LspDetach" },
---
--- -- You can keep it simple,
--- -- provider = " [LSP]",
---
--- -- Or complicate things a bit and get the servers names
--- provider = function()
--- local names = {}
--- for i, server in pairs(vim.lsp.buf_get_clients(0)) do
--- table.insert(names, server.name)
--- end
--- return " [" .. table.concat(names, " ") .. "]"
--- end,
--- hl = { fg = "green", bold = true },
---}
-
-local LSPActive = {
- condition = conditions.lsp_attached,
-
- provider = function()
- local names = vim.tbl_values(vim.tbl_map(function(cl)
- return cl.name
- end, vim.lsp.buf_get_clients(0)))
-
- return "LSP [" .. table.concat(names, " ") .. "]"
- end,
- hl = { fg = colors.green },
-}
--- lsp status
--- I personally use it only to display progress messages!
--- See lsp-status/README.md for configuration options.
-
--- Note: check "j-hui/fidget.nvim" for a nice statusline-free alternative.
-local LSPMessages = {
- provider = require("lsp-status").status,
- hl = { fg = "gray" },
-}
-
--- Nvim Navic
---local Navic = {
--- condition = require("nvim-navic").is_available,
--- provider = require("nvim-navic").get_location,
---}
---local Navic = utils.make_flexible_component(3, Navic, { provider = "" })
-
--- Full nerd (with icon colors)!
-local Navic = {
- condition = require("nvim-navic").is_available,
- static = {
- -- create a type highlight map
- type_hl = {
- File = "Directory",
- Module = "Include",
- Namespace = "TSNamespace",
- Package = "Include",
- Class = "Struct",
- Method = "Method",
- Property = "TSProperty",
- Field = "TSField",
- Constructor = "TSConstructor ",
- Enum = "TSField",
- Interface = "Type",
- Function = "Function",
- Variable = "TSVariable",
- Constant = "Constant",
- String = "String",
- Number = "Number",
- Boolean = "Boolean",
- Array = "TSField",
- Object = "Type",
- Key = "TSKeyword",
- Null = "Comment",
- EnumMember = "TSField",
- Struct = "Struct",
- Event = "Keyword",
- Operator = "Operator",
- TypeParameter = "Type",
- },
- },
- init = function(self)
- local data = require("nvim-navic").get_data() or {}
- local children = {}
- -- create a child for each level
- for i, d in ipairs(data) do
- local child = {
- {
- provider = d.icon,
- hl = self.type_hl[d.type],
- },
- {
- provider = d.name,
- -- highlight icon only or location name as well
- -- hl = self.type_hl[d.type],
- },
- }
- -- add a separator only if needed
- if #data > 1 and i < #data then
- table.insert(child, {
- provider = " > ",
- hl = { fg = "bright_fg" },
- })
- end
- table.insert(children, child)
- end
- -- instantiate the new child, overwriting the previous one
- self[1] = self:new(children, 1)
- end,
- hl = { fg = "gray" },
-}
-
--- Diagnostics
-local Diagnostics = {
-
- condition = conditions.has_diagnostics,
-
- static = {
- error_icon = vim.fn.sign_getdefined("DiagnosticSignError")[1].text,
- warn_icon = vim.fn.sign_getdefined("DiagnosticSignWarn")[1].text,
- info_icon = vim.fn.sign_getdefined("DiagnosticSignInfo")[1].text,
- hint_icon = vim.fn.sign_getdefined("DiagnosticSignHint")[1].text,
- },
-
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
-
- update = { "DiagnosticChanged", "BufEnter" },
-
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- return self.errors > 0 and (self.error_icon .. self.errors .. " ")
- end,
- hl = { fg = colors.diag.error, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.warnings > 0 and (self.warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = colors.diag.warn, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.info > 0 and (self.info_icon .. self.info .. " ")
- end,
- hl = { fg = colors.diag.info, bg = colors.bg },
- },
- {
- provider = function(self)
- return self.hints > 0 and (self.hint_icon .. self.hints)
- end,
- hl = { fg = colors.diag.hint, bg = colors.bg },
- },
- --{
- -- provider = "]",
- --},
- on_click = {
- callback = function()
- require("trouble").toggle({ mode = "document_diagnostics" })
- -- or
- -- vim.diagnostic.setqflist()
- end,
- name = "heirline_diagnostics",
- },
-}
-
--- Git
--- For the ones who're not (too) afraid of changes! Uses gitsigns.
-local Git = {
- condition = conditions.is_git_repo,
-
- init = function(self)
- self.status_dict = vim.b.gitsigns_status_dict
- self.has_changes = self.status_dict.added ~= 0 or self.status_dict.removed ~= 0 or self.status_dict.changed ~= 0
- end,
- --hl = { fg = "orange" },
- hl = { fg = colors.orange, bg = colors.bg },
- { -- git branch name
- provider = function(self)
- return " " .. self.status_dict.head
- end,
- --hl = { bold = true },
- hl = { bold = true, bg = colors.bg },
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- --provider = "("
- provider = " ",
- },
- {
- provider = function(self)
- local count = self.status_dict.added or 0
- --return count > 0 and ("+" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_add" },
- hl = { fg = colors.git.add, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.removed or 0
- --return count > 0 and ("-" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_del" },
- hl = { fg = colors.git.del, bg = colors.bg },
- },
- {
- provider = function(self)
- local count = self.status_dict.changed or 0
- --return count > 0 and ("~" .. count)
- return count > 0 and ("  " .. count)
- end,
- --hl = { fg = "git_change" },
- hl = { fg = colors.git.change, bg = colors.bg },
- },
- --{
- -- condition = function(self)
- -- return self.has_changes
- -- end,
- -- provider = ")",
- --},
- on_click = {
- callback = function()
- -- If you want to use Fugitive:
- -- vim.cmd("G")
-
- -- If you prefer Lazygit
- -- use vim.defer_fn() if the callback requires
- -- opening of a floating window
- -- (this also applies to telescope)
- vim.defer_fn(function()
- vim.cmd("Lazygit")
- end, 100)
- end,
- name = "heirline_git",
- },
-}
-
--- Debugger
--- Display informations from nvim-dap!
-local DAPMessages = {
- -- display the dap messages only on the debugged file
- condition = function()
- local session = require("dap").session()
- if session then
- local filename = vim.api.nvim_buf_get_name(0)
- if session.config then
- local progname = session.config.program
- return filename == progname
- end
- end
- return false
- end,
- provider = function()
- return " " .. require("dap").status()
- end,
- hl = { fg = utils.get_highlight("Debug").fg },
- -- Debugger on_click: step-over, step-into, next, previous, stop buttons
- -- coming soon!
-}
-
--- Tests
--- This requires the great ultest.
---local UltTest = {
--- condition = function()
--- return vim .api.nvim_call_function("ultest#is_test_file", {}) ~= 0
--- end,
--- static = {
--- passed_icon = vim.fn.sign_getdefined("test_pass")[1].text,
--- failed_icon = vim.fn.sign_getdefined("test_fail")[1].text,
--- passed_hl = { fg = utils.get_highlight("UltestPass").fg },
--- failed_hl = { fg = utils.get_highlight("UltestFail").fg },
--- },
--- init = function(self)
--- self.status = vim.api.nvim_call_function("ultest#status", {})
--- end,
---
--- -- again, if you'd like icons and numbers to be colored differently,
--- -- just split the component in two
--- {
--- provider = function(self)
--- return self.passed_icon .. self.status.passed .. " "
--- end,
--- hl = function(self)
--- return self.passed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return self.failed_icon .. self.status.failed .. " "
--- end,
--- hl = function(self)
--- return self.failed_hl
--- end,
--- },
--- {
--- provider = function(self)
--- return "of " .. self.status.tests - 1
--- end,
--- },
---}
-
--- FileName and Friends
-
---local Align = { provider = "%=" }
-local Align = { provider = "%=", hl = { bg = colors.bg } }
-local Space = { provider = " ", hl = { bg = colors.bg } }
-local Tab = { provider = " " }
-local Fill = { provider = "%=", hl = { bg = colors.nobg } }
-local LeftSep = { provider = "", hl = { fg = colors.bg } }
-local RightSep = { provider = "", hl = { fg = colors.bg } }
-
-local FileNameBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg },
-}
--- We can now define some children separately and add them later
---
-
-local FileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color, bg = colors.bg }
- end,
-}
-
-local FileName = {
- provider = function(self)
- -- first, trim the pattern relative to the current directory. For other
- -- options, see :h filename-modifers
- local filename = vim.fn.fnamemodify(self.filename, ":.")
- if filename == "" then
- return "No Name"
- end
- -- now, if the filename would occupy more than 1/4th of the available
- -- space, we trim the file path to its initials
- -- See Flexible Components section below for dynamic truncation
- if not conditions.width_percent_below(#filename, 0.25) then
- filename = vim.fn.pathshorten(filename)
- end
- return filename
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
-}
-
-local FileFlags = {
- {
- provider = function()
- if vim.bo.modified then
- return " [+]"
- --±[+]
- end
- end,
- hl = { fg = colors.green, bg = colors.bg },
- },
- {
- provider = function()
- if not vim.bo.modifiable or vim.bo.readonly then
- return " "
- end
- end,
- --hl = { fg = colors.orange },
- hl = { fg = colors.orange, bold = true, bg = colors.bg },
- },
-}
--- Now, let's say that we want the filename color to change if the buffer is
--- modified. Of course, we could do that directly using the FileName.hl field,
--- but we'll see how easy it is to alter existing components using a "modifier"
--- component
-
-local FileNameModifer = {
- hl = function()
- if vim.bo.modified then
- return { fg = colors.green, bold = false, force = true }
- end
- end,
-}
-
--- FileType, FileEncoding and FileFormat
-local FileType = {
- provider = function()
- return vim.bo.filetype
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false, bg = colors.bg },
-}
-
---local FileEncoding = {
--- provider = function()
--- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
--- return enc ~= "utf-8" and enc:upper()
--- end,
--- hl = { bg = colors.bg },
---}
-local FileEncoding = {
- Space,
- provider = function()
- local enc = (vim.bo.fenc ~= "" and vim.bo.fenc) or vim.o.enc -- :h 'enc'
- return enc:lower()
- end,
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { bg = colors.bg, bold = false },
-}
-
-local FileFormat = {
- provider = function()
- local fmt = vim.bo.fileformat
- return fmt ~= "unix" and fmt:upper()
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- FileSize and FileLastModified
-local FileSize = {
- provider = function()
- -- stackoverflow, compute human readable file size
- local suffix = { "b", "k", "M", "G", "T", "P", "E" }
- local fsize = vim.fn.getfsize(vim.api.nvim_buf_get_name(0))
- fsize = (fsize < 0 and 0) or fsize
- if fsize < 1024 then
- return fsize .. suffix[1]
- end
- local i = math.floor((math.log(fsize) / math.log(1024)))
- return string.format("%.2g%s", fsize / math.pow(1024, i), suffix[i + 1])
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
-local FileLastModified = {
- -- did you know? Vim is full of functions!
- provider = function()
- local ftime = vim.fn.getftime(vim.api.nvim_buf_get_name(0))
- return (ftime > 0) and os.date("%c", ftime)
- end,
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
-}
-
--- Spell
--- Add indicator when spell is set!
-local Spell = {
- condition = function()
- return vim.wo.spell
- end,
- provider = "SPELL ",
- hl = { bold = true, fg = "orange" },
-}
-
--- Cursor position: Ruler and ScrollBar
--- We're getting minimalists here!
-local Ruler = {
- -- We're getting minimalists here!
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- --provider = "%P %(%l/%L%):%c ",
- --provider = "%3(%2l%):%c %P ",
- --provider = "%7(%l/%3L%):%2c%P ",
- --provider = "%3(%P%)",
- --provider = "%7(%l/%3L%):%2c %P",
- --provider = "%7 %p%% Ln %l, Col %c",
- --provider = "%9( %P %2l/%L :%2c %)",
- --provider = "%9(%2l%2( : %c%)/%L %P %)",
- --provider = "%7(%l:%c/%L%) ",
- --provider = "%6(%l:%1.5c/%L%) %P ",
- provider = "%6(%l:%1.5c/%L%) ",
- hl = { fg = utils.get_highlight("Statusline").fg, bold = false },
-}
-
-local WordCount = {
- condition = function()
- return conditions.buffer_matches({
- filetype = {
- "markdown",
- "txt",
- "vimwiki",
- },
- })
- end,
- Space,
- {
- provider = function()
- return "W:" .. vim.fn.wordcount().words
- end,
- },
-}
-
-local Position = {
- Space,
- { provider = "%l:%c" },
- hl = { bg = colors.bg },
-}
-
-local Percentage = {
- Space,
- { provider = "%P" },
- hl = { bg = colors.bg },
-}
--- Working Directory
-local WorkDir = {
- provider = function(self)
- self.icon = (vim.fn.haslocaldir(0) == 1 and "l" or "g") .. " " .. " "
- local cwd = vim.fn.getcwd(0)
- self.cwd = vim.fn.fnamemodify(cwd, ":~")
- end,
- hl = { fg = colors.blue, bold = true, bg = colors.bg },
-
- utils.make_flexible_component(1, {
- -- evaluates to the full-lenth path
- provider = function(self)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. self.cwd .. trail .. " "
- end,
- }, {
- -- evaluates to the shortened path
- provider = function(self)
- local cwd = vim.fn.pathshorten(self.cwd)
- local trail = self.cwd:sub(-1) == "/" and "" or "/"
- return self.icon .. cwd .. trail .. " "
- end,
- }, {
- -- evaluates to "", hiding the component
- provider = "",
- }),
-}
-
--- Terminal Name
--- Special handling of the built-in terminal bufname. See conditional statuslines below to see an example of dedicated statusline for terminals!
-
-local TerminalName = {
- -- we could add a condition to check that buftype == 'terminal'
- -- or we could do that later (see #conditional-statuslines below)
- provider = function()
- local tname, _ = vim.api.nvim_buf_get_name(0):gsub(".*:", "")
- return " " .. tname
- end,
- hl = { bold = true, bg = colors.bg },
-}
-
--- Snippets Indicator
--- This requires ultisnips
---local Snippets = {
--- -- check that we are in insert or select mode
--- condition = function()
--- return vim.tbl_contains({'s', 'i'}, vim.fn.mode())
--- end,
--- provider = function()
--- local forward = (vim.fn["UltiSnips#CanJumpForwards"]() == 1) and "" or ""
--- local backward = (vim.fn["UltiSnips#CanJumpBackwards"]() == 1) and " " or ""
--- return backward .. forward
--- end,
--- hl = { fg = "red", bold = true },
---}
-
--- let's add the children to our FileNameBlock component
---FileNameBlock = utils.insert(
--- FileNameBlock,
---FileEncoding,
---Space,
---FileIcon,
---FileType,
---FileLastModified,
---FileSize,
---FileFormat,
---FileNameModifer,
--- unpack(FileFlags),
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
--- let's add the children to our FileNameBlock component
-FileNameBlock = utils.insert(
- FileNameBlock,
- FileIcon,
- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
- unpack(FileFlags), -- A small optimisation, since their parent does nothing
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
-
-local FileInfoBlock = {
- -- let's first set up some attributes needed by this component and it's children
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(0)
- end,
-}
-
-FileInfoBlock = utils.insert(
- FileInfoBlock,
- Space,
- FileIcon,
- FileType,
- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
-)
---FileNameBlock = utils.insert(
--- FileNameBlock,
--- FileIcon,
--- utils.insert(FileNameModifer, FileName), -- a new table where FileName is a child of FileNameModifier
--- unpack(FileFlags), -- A small optimisation, since their parent does nothing
--- { provider = "%<" } -- this means that the statusline is cut here when there's not enough space
---)
-
-local Surrr = {
- utils.surround({ "", "" }, "red", {
- utils.surround({ "", "" }, "green", utils.surround({ "", "" }, "blue", { provider = "heyya" })),
- { provider = "Normal" },
- }),
-}
---ViMode = utils.surround({ "", "" }, "bright_bg", { ViMode, Snippets })
---ViMode = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
---ViMode = utils.surround({ "◥", "" }, function(self) return self:mode_color() end, {
--- utils.surround({ "█", "" }, function(self) return self:mode_color() end, utils.surround({ "", "" }, function(self) return self:mode_color() end, { {provider = "normal" }, ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } } )),
--- { provider = "heyya" },
--- })
--- Statusline
---BackgroundStatusline = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { BackgroundStatusline, hl = { bg = utils.get_highlight("statusline").bg, force = true } })
---
-local Surrr = {
- utils.surround({ "", "" }, "gray", {
- FileInfoBlock,
- hl = { bg = colors.gray },
- utils.surround({ "", "" }, "gray", {
- Percentage,
- utils.surround({ "", "" }, function(self)
- return self:mode_color()
- end, { Space, Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } }),
- }),
- }),
-}
-
-ViMode = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-
-LeftSpace = utils.surround({ "", " " }, function(self)
- return self:mode_color()
-end, { LeftSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
---
-RightSpace = utils.surround(
- { "", "" },
- colors.red,
- { RightSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } }
-)
-
-RightSpace2 = utils.surround({ "", "" }, colors.orange, { RightSpace2, hl = { bg = colors.red, force = true } })
---RightSpace = utils.surround({ "", "" }, function(self)
--- return self:mode_color()
---end, { RightSpace, hl = { fg = utils.get_highlight("statusline").bg, force = true } })
-----
---
---Percentage = utils.surround({ "", " " }, "red", { Percentage, hl = { bg = colors.red, force = true } })
---
-
-LSPActive = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { Space, LSPActive, hl = { bg = colors.orange, force = true } })
-
-FileInfoBlock = utils.surround({ "", "" }, function(self)
- return self:mode_color()
-end, { FileInfoBlock, Space, hl = { bg = colors.red, force = true } })
-
-Ruler = utils.surround({ "", "" }, colors.red, { Space, Ruler, hl = { fg = colors.red, force = true } })
-
-local align = { provider = "%=" }
-local left = {
- { ViMode, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
- { LeftSpace, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileNameBlock, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Git, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local middle = {
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Navic, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { DAPMessages, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
-}
-local right = {
- { Align, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { Diagnostics, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { LSPActive, hl = { bg = colors.orange, force = true } },
- --{ FileEncoding, hl = { bg = colors.orange, force = true } },
- { RightSpace2, hl = { fg = colors.orange, bg = colors.red, force = true } },
- --{ Space, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { FileInfoBlock, hl = { bg = colors.red, force = true } },
- --{ Space, hl = { bg = colors.red, force = true } },
- --{ FileType, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- --{ WordCount, hl = { bg = utils.get_highlight("statusline").bg, force = true } },
- { RightSpace, hl = { fg = colors.red, force = true } },
- { Ruler, hl = { fg = utils.get_highlight("statusline").bg, force = true } },
-}
-
-local sections = { left, align, middle, align, right }
-local DefaultStatusline = { sections }
-
---local NewSpace = { provider = "", hl = { bg = utils.get_highlight("statusline").bg } }
---local statusline = {
---Space,
---Space,
---Git,
---Space,
---Diagnostics,
---Align,
---Navic,
---DAPMessages,
---Align,
---Space,
---FileInfoBlock,
---Space,
---WordCount,
---Ruler,
---LSPActive, Space, LSPMessages, Space, UltTest, Space, FileType, Space, Ruler, Space, ScrollBar
---}
-
---local InactiveStatusline = {
--- condition = conditions.is_not_active,
--- FileType,
--- Space,
--- FileName,
--- Align,
---}
-
-local SpecialStatusline = {
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
-
- FileType,
- Space,
- Align,
- --FileType, Space, HelpFileName, Align
-}
-
-local TerminalStatusline = {
-
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
-
- hl = { bg = "dark_red" },
-
- -- Quickly add a condition to the ViMode to only show it when buffer is active!
- { condition = conditions.is_active, ViMode, Space },
- FileType,
- Space,
- TerminalName,
- Align,
-}
-
-local StatusLine = {
-
- --hl = function()
- -- if conditions.is_active() then
- -- return "StatusLine"
- -- else
- -- return "StatusLineNC"
- -- end
- --end,
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- --mode_colors_map = {
- -- n = colors.blue,
- -- i = colors.green,
- -- v = colors.purple,
- -- V = colors.violet,
- -- [""] = colors.red,
- -- c = colors.yellow,
- -- s = colors.orange,
- -- S = colors.orange,
- -- [""] = colors.purple,
- -- R = colors.orange,
- -- r = colors.orange,
- -- ["!"] = colors.red,
- -- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- hl = function(self)
- local color = self:mode_color() -- here!
- return { bg = color }
- end,
- },
- fallthrough = false,
-
- SpecialStatusline,
- TerminalStatusline,
- --InactiveStatusline,
- DefaultStatusline,
-}
-
--- WinBar
-
-vim.api.nvim_create_autocmd("User", {
- pattern = "HeirlineInitWinbar",
- callback = function(args)
- local buf = args.buf
- local buftype = vim.tbl_contains({ "prompt", "nofile", "help", "quickfix" }, vim.bo[buf].buftype)
- local filetype = vim.tbl_contains({ "gitcommit", "fugitive" }, vim.bo[buf].filetype)
- if buftype or filetype then
- vim.opt_local.winbar = nil
- end
- end,
-})
-
-on_click = {
- -- get the window id of the window in which the component was evaluated
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- -- winid is the window id of the window the component was clicked from
- local winid = minwid
- -- do something with the window id, e.g.:
- local buf = vim.api.nvim_win_get_buf(winid)
- -- ...
- end,
-}
-
-local CloseButton = {
- condition = function(self)
- return not vim.bo.modified
- end,
- -- a small performance improvement:
- -- re register the component callback only on layout/buffer changes.
- update = { "WinNew", "WinClosed", "BufEnter" },
- { provider = " " },
- {
- provider = "",
- hl = { fg = "gray" },
- on_click = {
- minwid = function()
- return vim.api.nvim_get_current_win()
- end,
- callback = function(_, minwid)
- vim.api.nvim_win_close(minwid, true)
- end,
- name = "heirline_winbar_close_button",
- },
- },
-}
-
-local active_middle_segment = { --{{{
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- static = {
- mode_colors_map = {
- n = colors.blue,
- i = colors.green,
- v = colors.purple,
- V = colors.purple,
- [""] = colors.purple,
- c = colors.red,
- s = colors.purple,
- S = colors.purple,
- [""] = colors.purple,
- R = colors.orange,
- r = colors.orange,
- ["!"] = colors.red,
- t = colors.red,
- },
- mode_color = function(self)
- local mode = conditions.is_active() and vim.fn.mode() or "n"
- return self.mode_colors_map[mode]
- end,
- provider = "%f",
- hl = function(self)
- local color = self:mode_color() -- here!
- return { fg = color }
- end,
- -- self.filename will be defined later, just keep looking at the example!
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- utils.surround({ "", "" }, "dark_red", {
- FileType,
- Space,
- TerminalName,
- }),
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- utils.surround({ "", "" }, "bright_bg", { hl = { fg = "gray", force = true }, FileNameBlock }),
- },
-}
-
---local WinBar = {
--- Fill,
--- active_middle_segment,
--- Fill,
---}
-local WinBar = {
- fallthrough = false,
- { -- Hide the winbar for special buffers
- condition = function()
- return conditions.buffer_matches({
- buftype = { "nofile", "prompt", "help", "quickfix" },
- filetype = { "^git.*", "fugitive" },
- })
- end,
- init = function()
- vim.opt_local.winbar = nil
- end,
- },
- { -- A special winbar for terminals
- condition = function()
- return conditions.buffer_matches({ buftype = { "terminal" } })
- end,
- utils.surround({ "", "" }, "dark_red", {
- FileType,
- Space,
- TerminalName,
- }),
- },
- { -- An inactive winbar for regular files
- condition = function()
- return not conditions.is_active()
- end,
- utils.surround({ "", "" }, "bright_bg", { hl = { fg = "gray", force = true }, FileNameBlock }),
- },
- -- A winbar for regular files
- utils.surround({ "", "" }, "bright_bg", FileNameBlock),
-}
-
--- TabLine
---
-
-local TablineBufnr = {
- provider = function(self)
- return tostring(self.bufnr) .. "."
- end,
- --hl = "Comment",
- --hl = { fg = utils.get_highlight("Statusline").fg, bold = true, bg = colors.bg },
- hl = { fg = utils.get_highlight("Statusline").fg, bold = true },
-}
-
--- we redefine the filename component, as we probably only want the tail and not the relative path
-local TablineFileName = {
- provider = function(self)
- -- self.filename will be defined later, just keep looking at the example!
- local filename = self.filename
- filename = filename == "" and "No Name" or vim.fn.fnamemodify(filename, ":t")
- return filename
- end,
- hl = function(self)
- return { bold = self.is_active or self.is_visible, italic = true }
- end,
-}
-
-local TablineFileFlags = {
- {
- provider = function(self)
- if vim.bo[self.bufnr].modified then
- return " [+] "
- end
- end,
- hl = { fg = colors.green },
- },
- --+
- {
- provider = function(self)
- if not vim.bo[self.bufnr].modifiable or vim.bo[self.bufnr].readonly then
- return "  "
- end
- end,
- hl = { fg = "orange" },
- },
-}
-
-local TablineFileIcon = {
- init = function(self)
- local filename = self.filename
- local extension = vim.fn.fnamemodify(filename, ":e")
- self.icon, self.icon_color =
- require("nvim-web-devicons").get_icon_color(filename, extension, { default = true })
- end,
- provider = function(self)
- return self.icon and (" " .. self.icon .. " ")
- end,
- hl = function(self)
- return { fg = self.icon_color }
- end,
-}
-
--- Here the filename block finally comes together
-local TablineFileNameBlock = {
- init = function(self)
- self.filename = vim.api.nvim_buf_get_name(self.bufnr)
- end,
- hl = function(self)
- if self.is_active then
- return "TabLineSel"
- -- why not?
- --elseif not vim.api.nvim_buf_is_loaded(self.bufnr) then
- --return { fg = "gray", bg = colors.bg }
- else
- return "TabLineFill"
- end
- end,
- on_click = {
- callback = function(_, minwid, _, button)
- if button == "m" then -- close on mouse middle click
- vim.api.nvim_buf_delete(minwid, { force = false })
- else
- vim.api.nvim_win_set_buf(0, minwid)
- end
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_buffer_callback",
- },
- TablineBufnr,
- --FileIcon, -- turns out the version defined in #crash-course-part-ii-filename-and-friends can be reutilized as is here!
- TablineFileIcon,
- TablineFileName,
- TablineFileFlags,
-}
-
--- a nice "x" button to close the buffer
-local TablineCloseButton = {
- condition = function(self)
- return not vim.api.nvim_buf_get_option(self.bufnr, "modified")
- end,
- { provider = " " },
- {
- provider = " ",
- --hl = { fg = "red", bg = colors.bg },
- hl = { fg = "red" },
- on_click = {
- callback = function(_, minwid)
- vim.api.nvim_buf_delete(minwid, { force = false })
- end,
- minwid = function(self)
- return self.bufnr
- end,
- name = "heirline_tabline_close_buffer_callback",
- },
- },
-}
-
--- The final touch!
-local TablineBufferBlock = utils.surround({ "", "" }, function(self)
- --local TablineBufferBlock = utils.surround({ "█", "█" }, function(self)
- if self.is_active then
- return utils.get_highlight("TabLineSel").bg
- else
- return utils.get_highlight("TabLineFill").bg
- end
-end, { Tab, TablineFileNameBlock, TablineCloseButton })
-
-local BufferLine = utils.make_buflist(
- TablineBufferBlock,
- --{ provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- --{ provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- { provider = "", hl = { fg = "gray" } }, -- left truncation, optional (defaults to "<")
- { provider = "", hl = { fg = "gray" } } -- right trunctation, also optional (defaults to ...... yep, ">")
- -- by the way, open a lot of buffers and try clicking them ;)
-)
-
--- TabList
-local Tabpage = {
- provider = function(self)
- return "%" .. self.tabnr .. "T " .. self.tabnr .. " %T"
- end,
- hl = function(self)
- if not self.is_active then
- return "TabLine"
- else
- return "TabLineSel"
- end
- end,
-}
-
-local TabpageClose = {
- provider = "%999X  %X",
- --hl = "TabLine",
- hl = { fg = colors.red, bg = colors.bg },
-}
-
-local TabPages = {
- -- only show this component if there's 2 or more tabpages
- condition = function()
- return #vim.api.nvim_list_tabpages() >= 2
- end,
- { provider = "%=" },
- utils.make_tablist(Tabpage),
- TabpageClose,
-}
-
--- TabLineOffset
-local TabLineOffset = {
- condition = function(self)
- local win = vim.api.nvim_tabpage_list_wins(0)[1]
- local bufnr = vim.api.nvim_win_get_buf(win)
- self.winid = win
-
- if vim.bo[bufnr].filetype == "NvimTree" then
- self.title = "NvimTree"
- return true
- -- elseif vim.bo[bufnr].filetype == "TagBar" then
- -- ...
- end
- end,
-
- provider = function(self)
- local title = self.title
- local width = vim.api.nvim_win_get_width(self.winid)
- local pad = math.ceil((width - #title) / 2)
- return string.rep(" ", pad) .. title .. string.rep(" ", pad)
- end,
-
- hl = function(self)
- if vim.api.nvim_get_current_win() == self.winid then
- return "TablineSel"
- else
- return "Tabline"
- end
- end,
-}
-
-local TabLine = {
- --hl = { bg = colors.bg },
- fallthrough = false,
- TabLineOffset,
- BufferLine,
- TabPages,
-}
-
-require("heirline").setup(StatusLine, WinBar, TabLine)
---require("heirline").setup(StatusLine, TabLine)
-
--- Yep, with heirline we're driving manual!
-vim.cmd([[au FileType * if index(['wipe', 'delete', 'unload'], &bufhidden) >= 0 | set nobuflisted | endif]])
-
---local function get_bufs()
--- return vim.tbl_filter(function(bufnr)
--- return vim.api.nvim_buf_is_loaded(bufnr) and vim.bo[bufnr].buflisted
--- end, vim.api.nvim_list_bufs())
---end
---
---local function goto_buf(index)
--- local bufs = get_bufs()
--- if index > #bufs then
--- index = #bufs
--- end
--- vim.api.nvim_win_set_buf(0, bufs[index])
---end
---
---local function addKey(key, index)
--- vim.keymap.set("", "<A-" .. key .. ">", function()
--- goto_buf(index)
--- end, { noremap = true, silent = true })
---end
---
---for i = 1, 9 do
--- addKey(i, i)
---end
---addKey("0", 10)
diff --git a/lua/plugins/linecolor.lua b/lua/plugins/linecolor.lua
deleted file mode 100644
index 37550dd..0000000
--- a/lua/plugins/linecolor.lua
+++ /dev/null
@@ -1,112 +0,0 @@
---local M = {}
---M.theme = function()
--- -- I know I could just set bg = nil but I'm leaving this here in case I want custom colors in the future
--- local colors = {
--- nobg = nil,
--- blue = "#87b0f9",
--- mauve = "#cba6f7",
--- red = "#f38ba8",
--- green = "#a6e3a1",
--- peach = "#fab387",
--- white = "#c6d0f5",
--- gray = "#a1a8c9",
--- black = "#1e1e2e",
--- }
--- return {
--- inactive = {
--- a = { fg = colors.blue, bg = colors.nobg, gui = "bold" },
--- b = { fg = colors.white, bg = colors.black },
--- c = { fg = colors.gray, bg = colors.nobg },
--- },
--- visual = {
--- a = { fg = colors.black, bg = colors.mauve, gui = "bold" },
--- b = { fg = colors.mauve, bg = colors.nobg },
--- c = { fg = colors.white, bg = colors.nobg },
--- },
--- replace = {
--- a = { fg = colors.black, bg = colors.red, gui = "bold" },
--- b = { fg = colors.red, bg = colors.nobg },
--- c = { fg = colors.white, bg = colors.nobg },
--- },
--- normal = {
--- a = { fg = colors.black, bg = colors.blue, gui = "bold" },
--- b = { fg = colors.black, bg = colors.green },
--- c = { fg = colors.white, bg = colors.black },
--- },
--- insert = {
--- a = { fg = colors.black, bg = colors.green, gui = "bold" },
--- b = { fg = colors.teal, bg = colors.nobg },
--- c = { fg = colors.white, bg = colors.nobg },
--- },
--- command = {
--- a = { fg = colors.black, bg = colors.peach, gui = "bold" },
--- b = { fg = colors.peach, bg = colors.nobg },
--- c = { fg = colors.white, bg = colors.nobg },
--- },
--- modified = {
--- a = { fg = colors.black, bg = colors.peach, gui = "bold" },
--- b = { fg = colors.peach, bg = colors.peach },
--- c = { fg = colors.white, bg = colors.peach },
--- },
--- }
---end
---return M
-local M = {}
-M.theme = function()
- --local colors = {
- -- darkgray = "#16161d",
- -- gray = "#727169",
- -- innerbg = nil,
- -- outerbg = "#16161D",
- -- normal = "#7e9cd8",
- -- insert = "#98bb6c",
- -- visual = "#ffa066",
- -- replace = "#e46876",
- -- command = "#e6c384",
- --}
- local colors = {
- darkgray = "#16161d",
- gray = "#727169",
- innerbg = nil,
- outerbg = "#16161D",
- normal = "#39BAE6",
- insert = "#AAD94C",
- visual = "#FA8D3F",
- replace = "#F07171",
- command = "#F2AE49",
- }
- return {
- inactive = {
- a = { fg = colors.gray, bg = colors.outerbg, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- },
- visual = {
- a = { fg = colors.darkgray, bg = colors.visual, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- },
- replace = {
- a = { fg = colors.darkgray, bg = colors.replace, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- },
- normal = {
- a = { fg = colors.darkgray, bg = colors.normal, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- y = { fg = colors.gray, bg = colors.outerbg },
- },
- insert = {
- a = { fg = colors.darkgray, bg = colors.insert, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- },
- command = {
- a = { fg = colors.darkgray, bg = colors.command, gui = "bold" },
- b = { fg = colors.gray, bg = colors.outerbg },
- c = { fg = colors.gray, bg = colors.innerbg },
- },
- }
-end
-return M
diff --git a/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua b/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua
deleted file mode 100644
index dd25d9a..0000000
--- a/lua/plugins/lsp-22.10.12-21:29-bak-22.10.12-23:45-bak.lua
+++ /dev/null
@@ -1,301 +0,0 @@
-local lsp_defaults = {
- flags = {
- debounce_text_changes = 150,
- },
- capabilities = require('cmp_nvim_lsp').update_capabilities(
- vim.lsp.protocol.make_client_capabilities()
- ),
- on_attach = function(client, bufnr)
- vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'})
- end
-}
-
-local lspconfig = require('lspconfig')
-
-lspconfig.util.default_config = vim.tbl_deep_extend(
- 'force',
- lspconfig.util.default_config,
- lsp_defaults
-)
-
-lspconfig.sumneko_lua.setup({
- single_file_support = true,
- on_attach = function(client, bufnr)
- print('hello')
- lspconfig.util.default_config.on_attach(client, bufnr)
- end
-})
-
-vim.api.nvim_create_autocmd('User', {
- pattern = 'LspAttached',
- desc = 'LSP actions',
- callback = function()
- local bufmap = function(mode, lhs, rhs)
- local opts = {buffer = true}
- vim.keymap.set(mode, lhs, rhs, opts)
- end
-
- -- Displays hover information about the symbol under the cursor
- bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
-
- -- Jump to the definition
- bufmap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>')
-
- -- Jump to declaration
- bufmap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
-
- -- Lists all the implementations for the symbol under the cursor
- bufmap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>')
-
- -- Jumps to the definition of the type symbol
- bufmap('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>')
-
- -- Lists all the references
- bufmap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>')
-
- -- Displays a function's signature information
- bufmap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
-
- -- Renames all references to the symbol under the cursor
- bufmap('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>')
-
- -- Selects a code action available at the current cursor position
- bufmap('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>')
- bufmap('x', '<F4>', '<cmd>lua vim.lsp.buf.range_code_action()<cr>')
-
- -- Show diagnostics in a floating window
- bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>')
-
- -- Move to the previous diagnostic
- bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
-
- -- Move to the next diagnostic
- bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
- end
-})
-
---
----Snippets
---
-require('luasnip.loaders.from_vscode').lazy_load()
-
---
---- Autocompletion/nvim-cmp
---
-vim.opt.completeopt = {'menu', 'menuone', 'noselect'} -- Suggested values for completeopt
-local cmp = require('cmp')
-local luasnip = require('luasnip')
-
-local select_opts = {behavior = cmp.SelectBehavior.Select}
-
-cmp.setup({
-
-})
-
-snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end
-},
-
-sources = {
- {name = 'path'},
- {name = 'nvim_lsp', keyword_length = 3},
- {name = 'buffer', keyword_length = 3},
- {name = 'luasnip', keyword_length = 2},
-},
-
-window = {
- documentation = cmp.config.window.bordered()
-},
-
-formatting = {
- fields = {'menu', 'abbr', 'kind'}
-},
-
-formatting = {
- fields = {'menu', 'abbr', 'kind'},
- format = function(entry, item)
- local menu_icon = {
- nvim_lsp = 'λ',
- luasnip = '⋗',
- buffer = 'Ω',
- path = '🖫',
- }
-
- item.menu = menu_icon[entry.source.name]
- return item
- end,
-},
-
-mapping = {
- ['<CR>'] = cmp.mapping.confirm({select = true}),
-}
-['<Up>'] = cmp.mapping.select_prev_item(select_opts),
-['<Down>'] = cmp.mapping.select_next_item(select_opts),
-
-['<C-p>'] = cmp.mapping.select_prev_item(select_opts),
-['<C-n>'] = cmp.mapping.select_next_item(select_opts),
-['<C-u>'] = cmp.mapping.scroll_docs(-4),
-['<C-f>'] = cmp.mapping.scroll_docs(4),
-['<C-e>'] = cmp.mapping.abort(),
-['<CR>'] = cmp.mapping.confirm({select = true}),
-['<C-d>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(1) then
- luasnip.jump(1)
- else
- fallback()
- end
-end, {'i', 's'}),
-['<C-b>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
-end, {'i', 's'}),
-
-vim.opt.completeopt = {'menu', 'menuone', 'noselect'}
-
-require('luasnip.loaders.from_vscode').lazy_load()
-
-local cmp = require('cmp')
-local luasnip = require('luasnip')
-
-local select_opts = {behavior = cmp.SelectBehavior.Select}
-
-cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end
- },
- sources = {
- {name = 'path'},
- {name = 'nvim_lsp', keyword_length = 3},
- {name = 'buffer', keyword_length = 3},
- {name = 'luasnip', keyword_length = 2},
- },
- window = {
- documentation = cmp.config.window.bordered()
- },
- formatting = {
- fields = {'menu', 'abbr', 'kind'},
- format = function(entry, item)
- local menu_icon = {
- nvim_lsp = 'λ',
- luasnip = '⋗',
- buffer = 'Ω',
- path = '🖫',
- }
-
- item.menu = menu_icon[entry.source.name]
- return item
- end,
- },
- mapping = {
- ['<Up>'] = cmp.mapping.select_prev_item(select_opts),
- ['<Down>'] = cmp.mapping.select_next_item(select_opts),
-
- ['<C-p>'] = cmp.mapping.select_prev_item(select_opts),
- ['<C-n>'] = cmp.mapping.select_next_item(select_opts),
-
- ['<C-u>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
-
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({select = true}),
-
- ['<C-d>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(1) then
- luasnip.jump(1)
- else
- fallback()
- end
- end, {'i', 's'}),
-
- ['<C-b>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
- end, {'i', 's'}),
-
- ['<Tab>'] = cmp.mapping(function(fallback)
- local col = vim.fn.col('.') - 1
-
- if cmp.visible() then
- cmp.select_next_item(select_opts)
- elseif col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
- fallback()
- else
- cmp.complete()
- end
- end, {'i', 's'}),
-
- ['<S-Tab>'] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_prev_item(select_opts)
- else
- fallback()
- end
- end, {'i', 's'}),
- },
-})
-
-
-vim.diagnostic.config({
- virtual_text = false,
- severity_sort = true,
- float = {
- border = 'rounded',
- source = 'always',
- header = '',
- prefix = '',
- },
-})
-
-vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
- vim.lsp.handlers.hover,
- {border = 'rounded'}
-)
-
-vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
- vim.lsp.handlers.signature_help,
- {border = 'rounded'}
-)
-
-require('mason').setup()
-require('mason-lspconfig').setup()
-
-
-local lsp_defaults = {
- flags = {
- debounce_text_changes = 150,
- },
- capabilities = require('cmp_nvim_lsp').update_capabilities(
- vim.lsp.protocol.make_client_capabilities()
- ),
- on_attach = function(client, bufnr)
- vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'})
- end
-}
-
-local lspconfig = require('lspconfig')
-
-lspconfig.util.default_config = vim.tbl_deep_extend(
- 'force',
- lspconfig.util.default_config,
- lsp_defaults
-)
-
-lspconfig.sumneko_lua.setup({})
-
-
-
-
-
-
-
-
diff --git a/lua/plugins/lsp-22.10.12-21:29-bak.lua b/lua/plugins/lsp-22.10.12-21:29-bak.lua
deleted file mode 100644
index dd25d9a..0000000
--- a/lua/plugins/lsp-22.10.12-21:29-bak.lua
+++ /dev/null
@@ -1,301 +0,0 @@
-local lsp_defaults = {
- flags = {
- debounce_text_changes = 150,
- },
- capabilities = require('cmp_nvim_lsp').update_capabilities(
- vim.lsp.protocol.make_client_capabilities()
- ),
- on_attach = function(client, bufnr)
- vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'})
- end
-}
-
-local lspconfig = require('lspconfig')
-
-lspconfig.util.default_config = vim.tbl_deep_extend(
- 'force',
- lspconfig.util.default_config,
- lsp_defaults
-)
-
-lspconfig.sumneko_lua.setup({
- single_file_support = true,
- on_attach = function(client, bufnr)
- print('hello')
- lspconfig.util.default_config.on_attach(client, bufnr)
- end
-})
-
-vim.api.nvim_create_autocmd('User', {
- pattern = 'LspAttached',
- desc = 'LSP actions',
- callback = function()
- local bufmap = function(mode, lhs, rhs)
- local opts = {buffer = true}
- vim.keymap.set(mode, lhs, rhs, opts)
- end
-
- -- Displays hover information about the symbol under the cursor
- bufmap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<cr>')
-
- -- Jump to the definition
- bufmap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<cr>')
-
- -- Jump to declaration
- bufmap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>')
-
- -- Lists all the implementations for the symbol under the cursor
- bufmap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>')
-
- -- Jumps to the definition of the type symbol
- bufmap('n', 'go', '<cmd>lua vim.lsp.buf.type_definition()<cr>')
-
- -- Lists all the references
- bufmap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>')
-
- -- Displays a function's signature information
- bufmap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<cr>')
-
- -- Renames all references to the symbol under the cursor
- bufmap('n', '<F2>', '<cmd>lua vim.lsp.buf.rename()<cr>')
-
- -- Selects a code action available at the current cursor position
- bufmap('n', '<F4>', '<cmd>lua vim.lsp.buf.code_action()<cr>')
- bufmap('x', '<F4>', '<cmd>lua vim.lsp.buf.range_code_action()<cr>')
-
- -- Show diagnostics in a floating window
- bufmap('n', 'gl', '<cmd>lua vim.diagnostic.open_float()<cr>')
-
- -- Move to the previous diagnostic
- bufmap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<cr>')
-
- -- Move to the next diagnostic
- bufmap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<cr>')
- end
-})
-
---
----Snippets
---
-require('luasnip.loaders.from_vscode').lazy_load()
-
---
---- Autocompletion/nvim-cmp
---
-vim.opt.completeopt = {'menu', 'menuone', 'noselect'} -- Suggested values for completeopt
-local cmp = require('cmp')
-local luasnip = require('luasnip')
-
-local select_opts = {behavior = cmp.SelectBehavior.Select}
-
-cmp.setup({
-
-})
-
-snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end
-},
-
-sources = {
- {name = 'path'},
- {name = 'nvim_lsp', keyword_length = 3},
- {name = 'buffer', keyword_length = 3},
- {name = 'luasnip', keyword_length = 2},
-},
-
-window = {
- documentation = cmp.config.window.bordered()
-},
-
-formatting = {
- fields = {'menu', 'abbr', 'kind'}
-},
-
-formatting = {
- fields = {'menu', 'abbr', 'kind'},
- format = function(entry, item)
- local menu_icon = {
- nvim_lsp = 'λ',
- luasnip = '⋗',
- buffer = 'Ω',
- path = '🖫',
- }
-
- item.menu = menu_icon[entry.source.name]
- return item
- end,
-},
-
-mapping = {
- ['<CR>'] = cmp.mapping.confirm({select = true}),
-}
-['<Up>'] = cmp.mapping.select_prev_item(select_opts),
-['<Down>'] = cmp.mapping.select_next_item(select_opts),
-
-['<C-p>'] = cmp.mapping.select_prev_item(select_opts),
-['<C-n>'] = cmp.mapping.select_next_item(select_opts),
-['<C-u>'] = cmp.mapping.scroll_docs(-4),
-['<C-f>'] = cmp.mapping.scroll_docs(4),
-['<C-e>'] = cmp.mapping.abort(),
-['<CR>'] = cmp.mapping.confirm({select = true}),
-['<C-d>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(1) then
- luasnip.jump(1)
- else
- fallback()
- end
-end, {'i', 's'}),
-['<C-b>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
-end, {'i', 's'}),
-
-vim.opt.completeopt = {'menu', 'menuone', 'noselect'}
-
-require('luasnip.loaders.from_vscode').lazy_load()
-
-local cmp = require('cmp')
-local luasnip = require('luasnip')
-
-local select_opts = {behavior = cmp.SelectBehavior.Select}
-
-cmp.setup({
- snippet = {
- expand = function(args)
- luasnip.lsp_expand(args.body)
- end
- },
- sources = {
- {name = 'path'},
- {name = 'nvim_lsp', keyword_length = 3},
- {name = 'buffer', keyword_length = 3},
- {name = 'luasnip', keyword_length = 2},
- },
- window = {
- documentation = cmp.config.window.bordered()
- },
- formatting = {
- fields = {'menu', 'abbr', 'kind'},
- format = function(entry, item)
- local menu_icon = {
- nvim_lsp = 'λ',
- luasnip = '⋗',
- buffer = 'Ω',
- path = '🖫',
- }
-
- item.menu = menu_icon[entry.source.name]
- return item
- end,
- },
- mapping = {
- ['<Up>'] = cmp.mapping.select_prev_item(select_opts),
- ['<Down>'] = cmp.mapping.select_next_item(select_opts),
-
- ['<C-p>'] = cmp.mapping.select_prev_item(select_opts),
- ['<C-n>'] = cmp.mapping.select_next_item(select_opts),
-
- ['<C-u>'] = cmp.mapping.scroll_docs(-4),
- ['<C-f>'] = cmp.mapping.scroll_docs(4),
-
- ['<C-e>'] = cmp.mapping.abort(),
- ['<CR>'] = cmp.mapping.confirm({select = true}),
-
- ['<C-d>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(1) then
- luasnip.jump(1)
- else
- fallback()
- end
- end, {'i', 's'}),
-
- ['<C-b>'] = cmp.mapping(function(fallback)
- if luasnip.jumpable(-1) then
- luasnip.jump(-1)
- else
- fallback()
- end
- end, {'i', 's'}),
-
- ['<Tab>'] = cmp.mapping(function(fallback)
- local col = vim.fn.col('.') - 1
-
- if cmp.visible() then
- cmp.select_next_item(select_opts)
- elseif col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then
- fallback()
- else
- cmp.complete()
- end
- end, {'i', 's'}),
-
- ['<S-Tab>'] = cmp.mapping(function(fallback)
- if cmp.visible() then
- cmp.select_prev_item(select_opts)
- else
- fallback()
- end
- end, {'i', 's'}),
- },
-})
-
-
-vim.diagnostic.config({
- virtual_text = false,
- severity_sort = true,
- float = {
- border = 'rounded',
- source = 'always',
- header = '',
- prefix = '',
- },
-})
-
-vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(
- vim.lsp.handlers.hover,
- {border = 'rounded'}
-)
-
-vim.lsp.handlers['textDocument/signatureHelp'] = vim.lsp.with(
- vim.lsp.handlers.signature_help,
- {border = 'rounded'}
-)
-
-require('mason').setup()
-require('mason-lspconfig').setup()
-
-
-local lsp_defaults = {
- flags = {
- debounce_text_changes = 150,
- },
- capabilities = require('cmp_nvim_lsp').update_capabilities(
- vim.lsp.protocol.make_client_capabilities()
- ),
- on_attach = function(client, bufnr)
- vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'})
- end
-}
-
-local lspconfig = require('lspconfig')
-
-lspconfig.util.default_config = vim.tbl_deep_extend(
- 'force',
- lspconfig.util.default_config,
- lsp_defaults
-)
-
-lspconfig.sumneko_lua.setup({})
-
-
-
-
-
-
-
-
diff --git a/lua/plugins/lsp-22.10.14-23:39-bak.lua b/lua/plugins/lsp-22.10.14-23:39-bak.lua
deleted file mode 100644
index 9c8e943..0000000
--- a/lua/plugins/lsp-22.10.14-23:39-bak.lua
+++ /dev/null
@@ -1,422 +0,0 @@
-
-local fn = vim.fn
-local keymap = vim.keymap
-
-local utils = require("utils")
-
-local custom_attach = function(client, bufnr)
- -- Enable completion triggered by <c-x><c-o>
- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-
- -- Mappings.
- local map = function(mode, l, r, opts)
- opts = opts or {}
- opts.silent = true
- opts.noremap = true
- opts.buffer = bufnr
- keymap.set(mode, l, r, opts)
- end
---map("n", "gd", "<Cmd>Lspsaga lsp_finder<CR>") -- Press "o" to open the reference location
---map("n", "gp", "<Cmd>Lspsaga peek_definition<CR>")
--- --map("n", "gd", vim.lsp.buf.definition, { desc = "go to definition" })
--- map("n", "<C-]>", vim.lsp.buf.definition)
--- map("n", "K", vim.lsp.buf.hover)
--- map("n", "<C-k>", vim.lsp.buf.signature_help)
--- map("n", "<leader>rn", vim.lsp.buf.rename, { desc = "varialble rename" })
--- map("n", "gr", vim.lsp.buf.references, { desc = "show references" })
--- map("n", "[d", vim.diagnostic.goto_prev, { desc = "previous diagnostic" })
--- map("n", "]d", vim.diagnostic.goto_next, { desc = "next diagnostic" })
--- map("n", "<leader>q", function()
--- vim.diagnostic.setqflist({ open = true })
--- end, { desc = "put diagnostic to qf" })
--- --map.('n', '<space>q', vim.diagnostic.setloclist)
--- map("n", "ga", vim.lsp.buf.code_action, { desc = "LSP code action" })
--- map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, { desc = "add workspace folder" })
--- map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, { desc = "remove workspace folder" })
--- map("n", "<leader>wl", function()
--- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
--- end, { desc = "list workspace folder" })
--- map("n", "gs", "vim.lsp.buf.document_symbol()<cr>")
--- map("n", "gw", "vim.lsp.buf.workspace_symbol()<cr>", { desc = "list workspace folder" })
--- --map("n", "gs", ":lua vim.lsp.buf.document_symbol()<cr>")
--- map("n", "gt", ":lua vim.lsp.buf.type_definition()<cr>")
--- map("n", "gD", ":lua vim.lsp.buf.declaration()<cr>") -- most lsp servers don't implement textDocument/Declaration, so gD is useless for now.
--- map("n", "gi", ":lua vim.lsp.buf.implementation()<cr>")
--- map("n", "go", ":lua vim.diagnostic.open_float()<cr>")
--- map("n", "gk", "<Cmd>Lspsaga diagnostic_jump_prev<CR>")
--- map("n", "gj", "<Cmd>Lspsaga diagnostic_jump_next<CR>")
-
- -- Set some key bindings conditional on server capabilities
- if client.server_capabilities.documentFormattingProvider then
- map("n", "<space>f", vim.lsp.buf.format, { desc = "format code" })
- end
-
- -- add rust specific keymappings
- if client.name == "rust_analyzer" then
- map("n", "<leader>rr", "<cmd>RustRunnables<CR>")
- map("n", "<leader>ra", "<cmd>RustHoverAction<CR>")
- end
-
- -- Diagnostic position
- vim.api.nvim_create_autocmd("CursorHold", {
- buffer = bufnr,
- callback = function()
- local float_opts = {
- focusable = false,
- close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
- border = "rounded",
- source = "always", -- show source in diagnostic popup window
- prefix = " ",
- }
-
- if not vim.b.diagnostics_pos then
- vim.b.diagnostics_pos = { nil, nil }
- end
-
- local cursor_pos = vim.api.nvim_win_get_cursor(0)
- if
- (cursor_pos[1] ~= vim.b.diagnostics_pos[1] or cursor_pos[2] ~= vim.b.diagnostics_pos[2])
- and #vim.diagnostic.get() > 0
- then
- vim.diagnostic.open_float(nil, float_opts)
- end
-
- vim.b.diagnostics_pos = cursor_pos
- end,
- })
-
- -- The below command will highlight the current variable and its usages in the buffer.
- if client.server_capabilities.documentHighlightProvider then
- vim.cmd([[
- hi! link LspReferenceRead Visual
- hi! link LspReferenceText Visual
- hi! link LspReferenceWrite Visual
- augroup lsp_document_highlight
- autocmd! * <buffer>
- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
- augroup END
- ]])
- end
-
- if vim.g.logging_level == "debug" then
- local msg = string.format("Language server %s started!", client.name)
- vim.notify(msg, vim.log.levels.DEBUG, { title = "Server?" })
- end
-end
-
-local capabilities = vim.lsp.protocol.make_client_capabilities()
-capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities)
-capabilities.textDocument.completion.completionItem.snippetSupport = true
-capabilities.offsetEncoding = { "utf-16" }
-
-local lspconfig = require("lspconfig")
-
-if utils.executable("pylsp") then
- lspconfig.pylsp.setup({
- settings = {
- pylsp = {
- plugins = {
- pylint = { enabled = true, executable = "pylint" },
- pyflakes = { enabled = false },
- pycodestyle = { enabled = false },
- jedi_completion = { fuzzy = true },
- pyls_isort = { enabled = true },
- pylsp_mypy = { enabled = true },
- },
- },
- },
- flags = {
- debounce_text_changes = 200,
- },
- capabilities = capabilities,
- })
-else
- vim.notify("pylsp not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- if utils.executable('pyright') then
--- lspconfig.pyright.setup{
--- on_attach = custom_attach,
--- capabilities = capabilities
--- }
--- else
--- vim.notify("pyright not found!", vim.log.levels.WARN, {title = 'Server?'})
--- end
-
-if utils.executable("clangd") then
- lspconfig.clangd.setup({
- on_attach = custom_attach,
- capabilities = capabilities,
- filetypes = { "c", "cpp", "cc" },
- flags = {
- debounce_text_changes = 500,
- },
- })
-else
- vim.notify("clangd not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- set up vim-language-server
-if utils.executable("vim-language-server") then
- lspconfig.vimls.setup({
- on_attach = custom_attach,
- flags = {
- debounce_text_changes = 500,
- },
- capabilities = capabilities,
- })
-else
- vim.notify("vim-language-server not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- set up bash-language-server
-if utils.executable("bash-language-server") then
- lspconfig.bashls.setup({
- on_attach = custom_attach,
- capabilities = capabilities,
- })
-end
-
-if utils.executable("lua-language-server") then
- lspconfig.sumneko_lua.setup({
- on_attach = custom_attach,
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files,
- library = {
- fn.stdpath("data") .. "/site/pack/packer/opt/emmylua-nvim",
- fn.stdpath("config"),
- },
- maxPreload = 2000,
- preloadFileSize = 50000,
- },
- },
- },
- capabilities = capabilities,
- })
-end
-
-
-if utils.executable("rust-language-server") then
-require("lspconfig").rust_analyzer.setup{
- cmd = { "rustup", "run", "nightly", "rust-analyzer" },
- on_attach = custom_attach,
- flags = {
- debounce_text_changes = 500,
- },
- --[[
- settings = {
- rust = {
- unstable_features = true,
- build_on_save = false,
- all_features = true,
- },
- }
- --]]
-}
-end
-
-
--- Setup nvim-cmp.
-vim.opt.completeopt = "menu,menuone,noselect"
-
-local cmp_status_ok, cmp = pcall(require, "cmp")
-if not cmp_status_ok then
- return
-end
-
-
-local opts = {
- -- whether to highlight the currently hovered symbol
- -- disable if your cpu usage is higher than you want it
- -- or you just hate the highlight
- -- default: true
- highlight_hovered_item = true,
-
- -- whether to show outline guides
- -- default: true
- show_guides = true,
-}
-require("symbols-outline").setup(opts)
-
-local snippets_paths = function()
- local plugins = { "friendly-snippets" }
- local paths = {}
- local path
- local root_path = vim.env.HOME .. "/.vim/plugged/"
- for _, plug in ipairs(plugins) do
- path = root_path .. plug
- if vim.fn.isdirectory(path) ~= 0 then
- table.insert(paths, path)
- end
- end
- return paths
-end
-
-require("luasnip.loaders.from_vscode").lazy_load({
- paths = snippets_paths(),
- include = nil, -- Load all languages
- exclude = {},
-})
-
-local lspkind = require("lspkind")
-
---local kind_icons = {
--- Text = "",
--- Method = "",
--- Function = "",
--- Constructor = "⚙️",
--- Field = "",
--- Variable = "",
--- Class = "ﴯ",
--- Interface = "",
--- Module = "",
--- Property = "ﰠ",
--- Unit = "",
--- Value = "",
--- Enum = "",
--- Keyword = "",
--- Snippet = "",
--- Color = "",
--- File = "",
--- Reference = "",
--- Folder = "",
--- EnumMember = "",
--- Constant = "",
--- Struct = "",
--- Event = "",
--- Operator = "",
--- TypeParameter = "",
---}
-
-cmp.setup({
- snippet = {
- expand = function(args)
- require("luasnip").lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
--- ["<CR>"] = cmp.mapping.confirm({
--- behavior = cmp.ConfirmBehavior.Replace,
--- select = true,
--- }),
- ['<C-y>'] = cmp.mapping.confirm({ select = true }),
- ["<C-e>"] = cmp.mapping.close(),
- ["<C-u>"] = cmp.mapping.scroll_docs(-4),
- ["<C-d>"] = cmp.mapping.scroll_docs(4),
- ["<C-Space>"] = cmp.mapping.complete(),
- }),
-
- formatting = {
- fields = { "abbr", "kind", "menu" },
- format = function(entry, vim_item)
- -- Kind icons
- --vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
- vim_item.kind = lspkind.presets.default[vim_item.kind]
- -- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
- vim_item.menu = ({
- nvim_lsp = "LSP",
- luasnip = "Snip",
- buffer = "Buf",
- path = "Path",
- cmdline = "Cmd",
- })[entry.source.name]
- return vim_item
- end,
- },
- sources = cmp.config.sources({
- { name = "path" },
- { name = "nvim_lsp", keyword_length = 3 },
- { name = "luasnip", keyword_length = 4 },
- { name = "buffer", keyword_length = 3 },
- --{ name = 'treesitter' },
- { name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=], keyword_length = 3 },
- --{ name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=] }, --exclamation mark hangs a bit without this
- --{name = 'luasnip', keyword_length = 2},
- }),
- confirm_opts = {
- behavior = cmp.ConfirmBehavior.Replace,
- select = false,
- },
- window = {
- completion = cmp.config.window.bordered(),
- documentation = cmp.config.window.bordered(),
- --documentation = {
- -- border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
- --},
- },
- experimental = {
- ghost_text = true,
- native_menu = true,
- --native_menu = false,
- --view = {
- -- entries = "native"
- --},
- },
-})
-
-cmp.setup.cmdline("/", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = {
- { name = "buffer" },
- },
-})
-
-cmp.setup.cmdline(":", {
- mapping = cmp.mapping.preset.cmdline(),
- sources = cmp.config.sources({
- { name = "path" },
- }, {
- { name = "cmdline" },
- }),
-})
-
-
-
--- Global config for diagnostic
-vim.diagnostic.config({
- underline = false,
- virtual_text = true,
- signs = true,
- severity_sort = true,
- float = {
- focusable = true, --
- style = "minimal", --
- --border = "rounded",
- border = "shadow",
- source = "always",
- header = "",
- prefix = "",
- },
-})
-
-vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- underline = false,
- virtual_text = false,
- signs = true,
- update_in_insert = false,
-})
---vim.lsp.buf.definition
---vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
-
-vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
-
-vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" })
-
---local signs = { Error = " ", Warn = " ", Info = "􀅴 ", Hint = " " }
---local signs = { Error = "✘", Warn = "▲", Info = "🛈 ", Hint = "⚑" }
-local signs = { Error = "✘", Warn = "▲", Info = "􀅳", Hint = "⚑" }
-for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
-end
diff --git a/lua/plugins/lsp-colors.lua b/lua/plugins/lsp-colors.lua
deleted file mode 100644
index 1398123..0000000
--- a/lua/plugins/lsp-colors.lua
+++ /dev/null
@@ -1,9 +0,0 @@
-local status, colors = pcall(require, "lsp-colors")
-if (not status) then return end
-
-colors.setup {
- Error = "#db4b4b",
- Warning = "#e0af68",
- Information = "#0db9d7",
- Hint = "#10B981"
-}
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua
deleted file mode 100644
index 323b864..0000000
--- a/lua/plugins/lsp.lua
+++ /dev/null
@@ -1,527 +0,0 @@
-
-local fn = vim.fn
-local keymap = vim.keymap
-
-local utils = require("utils")
-
-local custom_attach = function(client, bufnr)
- -- Enable completion triggered by <c-x><c-o>
- vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-
- -- Mappings.
- local map = function(mode, l, r, opts)
- opts = opts or {}
- opts.silent = true
- opts.noremap = true
- opts.buffer = bufnr
- keymap.set(mode, l, r, opts)
- end
---map("n", "gd", "<Cmd>Lspsaga lsp_finder<CR>") -- Press "o" to open the reference location
---map("n", "gp", "<Cmd>Lspsaga peek_definition<CR>")
--- --map("n", "gd", vim.lsp.buf.definition, { desc = "go to definition" })
- map("n", "<C-]>", vim.lsp.buf.definition)
--- map("n", "K", vim.lsp.buf.hover)
--- map("n", "<C-k>", vim.lsp.buf.signature_help)
--- map("n", "<leader>rn", vim.lsp.buf.rename, { desc = "varialble rename" })
--- map("n", "gr", vim.lsp.buf.references, { desc = "show references" })
--- map("n", "[d", vim.diagnostic.goto_prev, { desc = "previous diagnostic" })
--- map("n", "]d", vim.diagnostic.goto_next, { desc = "next diagnostic" })
- map("n", "<leader>q", function()
- vim.diagnostic.setqflist({ open = true })
- end, { desc = "put diagnostic to qf" })
--- --map.('n', '<space>q', vim.diagnostic.setloclist)
--- map("n", "ga", vim.lsp.buf.code_action, { desc = "LSP code action" })
--- map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, { desc = "add workspace folder" })
--- map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, { desc = "remove workspace folder" })
--- map("n", "<leader>wl", function()
--- print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
--- end, { desc = "list workspace folder" })
--- map("n", "gs", "vim.lsp.buf.document_symbol()<cr>")
--- map("n", "gw", "vim.lsp.buf.workspace_symbol()<cr>", { desc = "list workspace folder" })
--- --map("n", "gs", ":lua vim.lsp.buf.document_symbol()<cr>")
--- map("n", "gt", ":lua vim.lsp.buf.type_definition()<cr>")
--- map("n", "gD", ":lua vim.lsp.buf.declaration()<cr>") -- most lsp servers don't implement textDocument/Declaration, so gD is useless for now.
--- map("n", "gi", ":lua vim.lsp.buf.implementation()<cr>")
- map("n", "go", ":lua vim.diagnostic.open_float()<cr>")
--- map("n", "gk", "<Cmd>Lspsaga diagnostic_jump_prev<CR>")
--- map("n", "gj", "<Cmd>Lspsaga diagnostic_jump_next<CR>")
-
-vim.g.diagnostics_visible = true
-function _G.toggle_diagnostics()
- if vim.g.diagnostics_visible then
- vim.g.diagnostics_visible = false
- vim.diagnostic.disable()
- else
- vim.g.diagnostics_visible = true
- vim.diagnostic.enable()
- end
-end
-map('n', '<Leader>m', ':call v:lua.toggle_diagnostics()<CR>')
---vim.g.diagnostics_active = true
---function _G.toggle_diagnostics()
--- if vim.g.diagnostics_active then
--- vim.g.diagnostics_active = false
--- vim.lsp.diagnostic.clear(0)
--- vim.cmd([[exe "normal ii\<Esc>x"]])
--- vim.lsp.handlers["textDocument/publishDiagnostics"] = function() end
--- else
--- vim.g.diagnostics_active = true
--- vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(
--- vim.lsp.diagnostic.on_publish_diagnostics, {
--- virtual_text = true,
--- signs = true,
--- underline = true,
--- update_in_insert = false,
--- }
--- )
--- end
---end
---
---map("n", "<leader>i", ":call v:lua.toggle_diagnostics()<CR>")
-
-
- -- Set some key bindings conditional on server capabilities
- if client.server_capabilities.documentFormattingProvider then
- map("n", "<space>f", vim.lsp.buf.format, { desc = "format code" })
- end
-
- -- add rust specific keymappings
- if client.name == "rust_analyzer" then
- map("n", "<leader>rr", "<cmd>RustRunnables<CR>")
- map("n", "<leader>ra", "<cmd>RustHoverAction<CR>")
- end
-
---For diagnostics for specific cursor position
---vim.api.nvim_create_autocmd("CursorHold", {
--- buffer = bufnr,
--- callback = function()
--- local opts = {
--- focusable = false,
--- close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
--- border = 'rounded',
--- source = 'always',
--- prefix = ' ',
--- scope = 'cursor',
--- }
--- vim.diagnostic.open_float(nil, opts)
--- end
---})
- -- Diagnostic position
--- vim.api.nvim_create_autocmd("CursorHold", {
--- buffer = bufnr,
--- callback = function()
--- local float_opts = {
--- focusable = false,
--- close_events = { "BufLeave", "CursorMoved", "InsertEnter", "FocusLost" },
--- border = "rounded",
--- source = "always", -- show source in diagnostic popup window
--- prefix = " ",
--- }
---
--- if not vim.b.diagnostics_pos then
--- vim.b.diagnostics_pos = { nil, nil }
--- end
---
--- local cursor_pos = vim.api.nvim_win_get_cursor(0)
--- if
--- (cursor_pos[1] ~= vim.b.diagnostics_pos[1] or cursor_pos[2] ~= vim.b.diagnostics_pos[2])
--- and #vim.diagnostic.get() > 0
--- then
--- vim.diagnostic.open_float(nil, float_opts)
--- end
---
--- vim.b.diagnostics_pos = cursor_pos
--- end,
--- })
-
- -- The below command will highlight the current variable and its usages in the buffer.
- if client.server_capabilities.documentHighlightProvider then
- vim.cmd([[
- hi! link LspReferenceRead Visual
- hi! link LspReferenceText Visual
- hi! link LspReferenceWrite Visual
- augroup lsp_document_highlight
- autocmd! * <buffer>
- autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()
- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
- augroup END
- ]])
- end
-
- if vim.g.logging_level == "debug" then
- local msg = string.format("Language server %s started!", client.name)
- vim.notify(msg, vim.log.levels.DEBUG, { title = "Server?" })
- end
-end
-
-local capabilities = vim.lsp.protocol.make_client_capabilities()
-capabilities = require("cmp_nvim_lsp").default_capabilities(capabilities)
-capabilities.textDocument.completion.completionItem.snippetSupport = true
-capabilities.offsetEncoding = { "utf-16" }
-
-local lspconfig = require("lspconfig")
-
-if utils.executable("pylsp") then
- lspconfig.pylsp.setup({
- settings = {
- pylsp = {
- plugins = {
- pylint = { enabled = true, executable = "pylint" },
- pyflakes = { enabled = false },
- pycodestyle = { enabled = false },
- jedi_completion = { fuzzy = true },
- pyls_isort = { enabled = true },
- pylsp_mypy = { enabled = true },
- },
- },
- },
- flags = {
- debounce_text_changes = 200,
- },
- capabilities = capabilities,
- })
-else
- vim.notify("pylsp not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- if utils.executable('pyright') then
--- lspconfig.pyright.setup{
--- on_attach = custom_attach,
--- capabilities = capabilities
--- }
--- else
--- vim.notify("pyright not found!", vim.log.levels.WARN, {title = 'Server?'})
--- end
-
-if utils.executable("clangd") then
- lspconfig.clangd.setup({
- on_attach = custom_attach,
- capabilities = capabilities,
- filetypes = { "c", "cpp", "cc" },
- flags = {
- debounce_text_changes = 500,
- },
- })
-else
- vim.notify("clangd not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- set up vim-language-server
-if utils.executable("vim-language-server") then
- lspconfig.vimls.setup({
- on_attach = custom_attach,
- flags = {
- debounce_text_changes = 500,
- },
- capabilities = capabilities,
- })
-else
- vim.notify("vim-language-server not found!", vim.log.levels.WARN, { title = "Server?" })
-end
-
--- set up bash-language-server
-if utils.executable("bash-language-server") then
- lspconfig.bashls.setup({
- on_attach = custom_attach,
- capabilities = capabilities,
- })
-end
-
-if utils.executable("lua-language-server") then
- lspconfig.sumneko_lua.setup({
- on_attach = custom_attach,
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files,
- library = {
- fn.stdpath("data") .. "/site/pack/packer/opt/emmylua-nvim",
- fn.stdpath("config"),
- },
- maxPreload = 2000,
- preloadFileSize = 50000,
- },
- },
- },
- capabilities = capabilities,
- })
-end
-
-
-if utils.executable("rust-language-server") then
-require("lspconfig").rust_analyzer.setup{
- cmd = { "rustup", "run", "nightly", "rust-analyzer" },
- on_attach = custom_attach,
- flags = {
- debounce_text_changes = 500,
- },
- --[[
- settings = {
- rust = {
- unstable_features = true,
- build_on_save = false,
- all_features = true,
- },
- }
- --]]
-}
-end
-
---vim.diagnostic.config({
--- virtual_text = false,
--- underline = true,
---})
-vim.diagnostic.config({
- underline = false,
- signs = true,
- virtual_text = false,
- float = {
- show_header = true,
- source = 'if_many',
- border = 'rounded',
- focusable = false,
- },
- update_in_insert = false, -- default to false
- severity_sort = false, -- default to false
-})
--- Show line diagnostics automatically in hover window
-vim.o.updatetime = 250
-vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
-
---local diagnostics_active = true
---local toggle_diagnostics = function()
--- diagnostics_active = not diagnostics_active
--- if diagnostics_active then
--- vim.o.updatetime = 250
--- vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
--- --vim.diagnostic.open_float(nil, {focus=false})
--- else
--- --vim.diagnostic.hide()
--- vim.diagnostic.disable()
--- end
---end
---vim.keymap.set("n", "<leader>a", toggle_diagnostics)
-
--- Toogle diagnostics
-local diagnostics_active = true
-local toggle_diagnostics = function()
- diagnostics_active = not diagnostics_active
- if diagnostics_active then
- vim.api.nvim_echo({ { "Show diagnostics" } }, false, {})
- vim.diagnostic.enable()
- else
- vim.api.nvim_echo({ { "Disable diagnostics" } }, false, {})
- vim.diagnostic.disable()
- end
-end
-vim.keymap.set("n", "<leader>a", toggle_diagnostics)
-
---vim.cmd [[autocmd CursorHold * lua vim.diagnostic.open_float(0, {scope="cursor", close_events = {"CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre", "WinLeave"}})]]
-
---function LspDiagnosticsFocus()
--- vim.api.nvim_command('set eventignore=WinLeave')
--- vim.api.nvim_command('autocmd CursorMoved <buffer> ++once set eventignore=""')
--- vim.diagnostic.open_float(nil, {focusable = false, scope = 'line', close_events = {"CursorMoved", "CursorMovedI", "BufHidden", "InsertCharPre", "WinLeave"}})
---end
---vim.api.nvim_set_keymap('', '<Leader>a', '<Cmd>lua LspDiagnosticsFocus()<CR>', {silent = true})
-
---local diagnostics_active = true
---map('n', '<leader>a', function()
--- diagnostics_active = not diagnostics_active
--- if diagnostics_active then
--- vim.diagnostic.show()
--- else
--- vim.diagnostic.hide()
--- end
---end)
-
--- Global config for diagnostic
---vim.diagnostic.config({
--- underline = false,
--- virtual_text = false,
--- signs = true,
--- severity_sort = true,
--- float = {
--- focusable = true, --
--- style = "minimal", --
--- --border = "rounded",
--- border = "shadow",
--- source = "always",
--- header = "",
--- prefix = "",
--- },
---})
-
-vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- underline = true,
- virtual_text = false,
- signs = true,
- update_in_insert = false,
-})
-
---vim.lsp.buf.definition
---vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
-
-vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" })
-
-vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" })
-
---local signs = { Error = " ", Warn = " ", Info = "􀅴 ", Hint = " " }
---local signs = { Error = "✘", Warn = "▲", Info = "🛈 ", Hint = "⚑" }
-local signs = { Error = "✘", Warn = "▲", Info = "􀅳", Hint = "⚑" }
-for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
-end
-
-
----- Location information about the last message printed. The format is
----- `(did print, buffer number, line number)`.
---local last_echo = { false, -1, -1 }
---
----- The timer used for displaying a diagnostic in the commandline.
---local echo_timer = nil
---
----- The timer after which to display a diagnostic in the commandline.
---local echo_timeout = 250
---
----- The highlight group to use for warning messages.
---local warning_hlgroup = 'WarningMsg'
---
----- The highlight group to use for error messages.
---local error_hlgroup = 'ErrorMsg'
---
----- If the first diagnostic line has fewer than this many characters, also add
----- the second line to it.
---local short_line_limit = 20
---
----- Shows the current line's diagnostics in a floating window.
---function show_line_diagnostics()
--- vim
--- .lsp
--- .diagnostic
--- .show_line_diagnostics({ severity_limit = 'Warning' }, vim.fn.bufnr(''))
---end
---
----- Prints the first diagnostic for the current line.
---function echo_diagnostic()
--- if echo_timer then
--- echo_timer:stop()
--- end
---
--- echo_timer = vim.defer_fn(
--- function()
--- local line = vim.fn.line('.') - 1
--- local bufnr = vim.api.nvim_win_get_buf(0)
---
--- if last_echo[1] and last_echo[2] == bufnr and last_echo[3] == line then
--- return
--- end
---
--- local diags = vim
--- .lsp
--- .diagnostic
--- .get_line_diagnostics(bufnr, line, { severity_limit = 'Warning' })
---
--- if #diags == 0 then
--- -- If we previously echo'd a message, clear it out by echoing an empty
--- -- message.
--- if last_echo[1] then
--- last_echo = { false, -1, -1 }
---
--- vim.api.nvim_command('echo ""')
--- end
---
--- return
--- end
---
--- last_echo = { true, bufnr, line }
---
--- local diag = diags[1]
--- local width = vim.api.nvim_get_option('columns') - 15
--- local lines = vim.split(diag.message, "\n")
--- local message = lines[1]
--- local trimmed = false
---
--- if #lines > 1 and #message <= short_line_limit then
--- message = message .. ' ' .. lines[2]
--- end
---
--- if width > 0 and #message >= width then
--- message = message:sub(1, width) .. '...'
--- end
---
--- local kind = 'warning'
--- local hlgroup = warning_hlgroup
---
--- if diag.severity == vim.lsp.protocol.DiagnosticSeverity.Error then
--- kind = 'error'
--- hlgroup = error_hlgroup
--- end
---
--- local chunks = {
--- { kind .. ': ', hlgroup },
--- { message }
--- }
---
--- vim.api.nvim_echo(chunks, false, {})
--- end,
--- echo_timeout
--- )
---end
---vim.cmd([[
--- autocmd CursorMoved * :lua echo_diagnostic()
---]])
--- Highlight line number instead of having icons in sign column
-
--- See the properties of the signs with sign list.
-
---vim.cmd [[
--- highlight! DiagnosticLineNrError guibg=#51202A guifg=#FF0000 gui=bold
--- highlight! DiagnosticLineNrWarn guibg=#51412A guifg=#FFA500 gui=bold
--- highlight! DiagnosticLineNrInfo guibg=#1E535D guifg=#00FFFF gui=bold
--- highlight! DiagnosticLineNrHint guibg=#1E205D guifg=#0000FF gui=bold
---
--- sign define DiagnosticSignError text= texthl=DiagnosticSignError linehl= numhl=DiagnosticLineNrError
--- sign define DiagnosticSignWarn text= texthl=DiagnosticSignWarn linehl= numhl=DiagnosticLineNrWarn
--- sign define DiagnosticSignInfo text= texthl=DiagnosticSignInfo linehl= numhl=DiagnosticLineNrInfo
--- sign define DiagnosticSignHint text= texthl=DiagnosticSignHint linehl= numhl=DiagnosticLineNrHint
---]]
-
--- Highlight symbol under cursor
-
--- Add the following to your on_attach (this allows checking server capabilities to avoid calling invalid commands.
-
---if client.resolved_capabilities.document_highlight then
--- vim.cmd [[
--- hi! LspReferenceRead cterm=bold ctermbg=red guibg=LightYellow
--- hi! LspReferenceText cterm=bold ctermbg=red guibg=LightYellow
--- hi! LspReferenceWrite cterm=bold ctermbg=red guibg=LightYellow
--- ]]
--- vim.api.nvim_create_augroup('lsp_document_highlight', {
--- clear = false
--- })
--- vim.api.nvim_clear_autocmds({
--- buffer = bufnr,
--- group = 'lsp_document_highlight',
--- })
--- vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
--- group = 'lsp_document_highlight',
--- buffer = bufnr,
--- callback = vim.lsp.buf.document_highlight,
--- })
--- vim.api.nvim_create_autocmd('CursorMoved', {
--- group = 'lsp_document_highlight',
--- buffer = bufnr,
--- callback = vim.lsp.buf.clear_references,
--- })
---end
-
diff --git a/lua/plugins/lspOld.lsp b/lua/plugins/lspOld.lsp
deleted file mode 100644
index 206ea57..0000000
--- a/lua/plugins/lspOld.lsp
+++ /dev/null
@@ -1,531 +0,0 @@
--- lspconfig + nvim-cmp + lspsaga
--- Dependencies
--- nvim-lspconfig
--- nvim-cmp
--- cmp-buffer
--- cmp-path
--- cmp_luasnip
--- cmp-nvim-lsp
--- LuaSnip
--- friendly-snippets
-local fn = vim.fn
-local api = vim.api
-local keymap = vim.keymap
-local lsp = vim.lsp
-
-local utils = require("utils")
-
-local custom_attach = function(client, bufnr)
- -- Mappings.
- local map = function(mode, l, r, opts)
- opts = opts or {}
- opts.silent = true
- opts.buffer = bufnr
- keymap.set(mode, l, r, opts)
- end
-
-
-local lsp_defaults = {
- flags = {
- debounce_text_changes = 150, -- Amount of miliseconds neovim will wait to send the next document update notification.
- },
-
- -- The data on this option is send to the server, to announce what features the editor can support.
- capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities()),
- on_attach = function(client, bufnr)
- vim.api.nvim_exec_autocmds("User", { pattern = "LspAttached" })
- end,
-}
-
-local lspconfig = require('lspconfig')
-
-lspconfig.util.default_config = vim.tbl_deep_extend(
- 'force',
- lspconfig.util.default_config,
- lsp_defaults
-)
-
----
--- LSP Servers
----
-
-if utils.executable("pylsp") then
- lspconfig.pylsp.setup {
- on_attach = custom_attach,
- settings = {
- pylsp = {
- plugins = {
- pylint = { enabled = true, executable = "pylint" },
- pyflakes = { enabled = false },
- pycodestyle = { enabled = false },
- jedi_completion = { fuzzy = true },
- pyls_isort = { enabled = true },
- pylsp_mypy = { enabled = true },
- },
- },
- },
- flags = {
- debounce_text_changes = 200,
- },
- capabilities = capabilities,
- }
-else
- vim.notify("pylsp not found!", vim.log.levels.WARN, { title = "Nvim-config" })
-end
-
--- if utils.executable('pyright') then
--- lspconfig.pyright.setup{
--- on_attach = custom_attach,
--- capabilities = capabilities
--- }
--- else
--- vim.notify("pyright not found!", vim.log.levels.WARN, {title = 'Nvim-config'})
--- end
-
-if utils.executable("clangd") then
- lspconfig.clangd.setup {
- on_attach = custom_attach,
- capabilities = capabilities,
- filetypes = { "c", "cpp", "cc" },
- flags = {
- debounce_text_changes = 500,
- },
- }
-else
- vim.notify("clangd not found!", vim.log.levels.WARN, { title = "Nvim-config" })
-end
-
--- set up vim-language-server
-if utils.executable("vim-language-server") then
- lspconfig.vimls.setup {
- on_attach = custom_attach,
- flags = {
- debounce_text_changes = 500,
- },
- capabilities = capabilities,
- }
-else
- vim.notify("vim-language-server not found!", vim.log.levels.WARN, { title = "Nvim-config" })
-end
-
--- set up bash-language-server
-if utils.executable("bash-language-server") then
- lspconfig.bashls.setup {
- on_attach = custom_attach,
- capabilities = capabilities,
- }
-end
-
-if utils.executable("lua-language-server") then
- -- settings for lua-language-server can be found on https://github.com/sumneko/lua-language-server/wiki/Settings .
- lspconfig.sumneko_lua.setup {
- on_attach = custom_attach,
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files,
- -- see also https://github.com/sumneko/lua-language-server/wiki/Libraries#link-to-workspace .
- -- Lua-dev.nvim also has similar settings for sumneko lua, https://github.com/folke/lua-dev.nvim/blob/main/lua/lua-dev/sumneko.lua .
- library = {
- fn.stdpath("data") .. "/site/pack/packer/opt/emmylua-nvim",
- fn.stdpath("config"),
- },
- maxPreload = 2000,
- preloadFileSize = 50000,
- },
- },
- },
- capabilities = capabilities,
- }
-end
--- Lua
-lspconfig.sumneko_lua.setup({
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = 'LuaJIT',
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = {'vim'},
- },
- workspace = {
- -- Make the server aware of Neovim runtime files
- library = vim.api.nvim_get_runtime_file("", true),
- },
- -- Do not send telemetry data containing a randomized but unique identifier
- telemetry = {
- enable = false,
- },
- },
- },
- single_file_support = true,
- on_attach = function(client, bufnr)
- print('hello')
- lspconfig.util.default_config.on_attach(client, bufnr)
- end
-})
-
-lspconfig.sumneko_lua.setup({
-on_attach = custom_attach,
-settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- -- Setup your lua path
- path = runtime_path,
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files
- library = api.nvim_get_runtime_file("", true),
- },
- -- Do not send telemetry data containing a randomized but unique identifier
- telemetry = {
- enable = false,
- },
- },
-},
-})
-
- lspconfig.sumneko_lua.setup {
- on_attach = custom_attach,
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = "LuaJIT",
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
- workspace = {
- -- Make the server aware of Neovim runtime files,
- -- see also https://github.com/sumneko/lua-language-server/wiki/Libraries#link-to-workspace .
- -- Lua-dev.nvim also has similar settings for sumneko lua, https://github.com/folke/lua-dev.nvim/blob/main/lua/lua-dev/sumneko.lua .
- library = {
- fn.stdpath("data") .. "/site/pack/packer/opt/emmylua-nvim",
- fn.stdpath("config"),
- },
- maxPreload = 2000,
- preloadFileSize = 50000,
- },
- },
- },
- capabilities = capabilities,
- }
-
-require'lspconfig'.sumneko_lua.setup {
- settings = {
- Lua = {
- runtime = {
- -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
- version = 'LuaJIT',
- },
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = {'vim'},
- },
- workspace = {
- -- Make the server aware of Neovim runtime files
- library = vim.api.nvim_get_runtime_file("", true),
- },
- -- Do not send telemetry data containing a randomized but unique identifier
- telemetry = {
- enable = false,
- },
- },
- },
-}
-
-
-
-require'lspconfig'.sumneko_lua.setup{}
-
-
-**Default values:**
- - `cmd` :
- { "lua-language-server" }
- - `filetypes` :
- - `log_level` :
- ```lua
- 2
- ```
- - `root_dir` :
- ```lua
- root_pattern(".luarc.json", ".luacheckrc", ".stylua.toml", "stylua.toml", "selene.toml", ".git")
- ```
- - `settings` :
- ```lua
- {
- Lua = {
- telemetry = {
- enable = false
- }
- }
- }
- - `single_file_support` :
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.ccls.setup{}
-```
-
-
-**Default values:**
- - `cmd` :
- ```lua
- { "ccls" }
- ```
- - `filetypes` :
- ```lua
- { "c", "cpp", "objc", "objcpp" }
- ```
- - `offset_encoding` :
- ```lua
- "utf-32"
- ```
- - `root_dir` :
- ```lua
- root_pattern('compile_commands.json', '.ccls', '.git')
- ```
- - `single_file_support` :
- ```lua
- false
- ```
-
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.clangd.setup{}
-```
-**Commands:**
-- ClangdSwitchSourceHeader: Switch between source/header
-
-**Default values:**
- - `capabilities` :
- ```lua
- default capabilities, with offsetEncoding utf-8
- ```
- - `cmd` :
- ```lua
- { "clangd" }
- ```
- - `filetypes` :
- ```lua
- { "c", "cpp", "objc", "objcpp", "cuda", "proto" }
- ```
- - `root_dir` :
- ```lua
- root_pattern(
- '.clangd',
- '.clang-tidy',
- '.clang-format',
- 'compile_commands.json',
- 'compile_flags.txt',
- 'configure.ac',
- '.git'
- )
-
- ```
- - `single_file_support` :
- ```lua
- true
- ```
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.pyright.setup{}
-```
-**Commands:**
-- PyrightOrganizeImports: Organize Imports
-
-**Default values:**
- - `cmd` :
- ```lua
- { "pyright-langserver", "--stdio" }
- ```
- - `filetypes` :
- ```lua
- { "python" }
- ```
- - `root_dir` :
- ```lua
- see source file
- ```
- - `settings` :
- ```lua
- {
- python = {
- analysis = {
- autoSearchPaths = true,
- diagnosticMode = "workspace",
- useLibraryCodeForTypes = true
- }
- }
- }
- ```
- - `single_file_support` :
- ```lua
- true
- ```
-
-## rls
-
-https://github.com/rust-lang/rls
-
-rls, a language server for Rust
-
-See https://github.com/rust-lang/rls#setup to setup rls itself.
-See https://github.com/rust-lang/rls#configuration for rls-specific settings.
-All settings listed on the rls configuration section of the readme
-must be set under settings.rust as follows:
-
-```lua
-nvim_lsp.rls.setup {
- settings = {
- rust = {
- unstable_features = true,
- build_on_save = false,
- all_features = true,
- },
- },
-}
-```
-
-If you want to use rls for a particular build, eg nightly, set cmd as follows:
-
-```lua
-cmd = {"rustup", "run", "nightly", "rls"}
-```
-
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.rls.setup{}
-```
-
-
-**Default values:**
- - `cmd` :
- ```lua
- { "rls" }
- ```
- - `filetypes` :
- ```lua
- { "rust" }
- ```
- - `root_dir` :
- ```lua
- root_pattern("Cargo.toml")
- ```
-
-
-## rust_analyzer
-
-https://github.com/rust-analyzer/rust-analyzer
-
-rust-analyzer (aka rls 2.0), a language server for Rust
-
-See [docs](https://github.com/rust-analyzer/rust-analyzer/tree/master/docs/user#settings) for extra settings.
-
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.rust_analyzer.setup{}
-```
-**Commands:**
-- CargoReload: Reload current cargo workspace
-
-**Default values:**
- - `cmd` :
- ```lua
- { "rust-analyzer" }
- ```
- - `filetypes` :
- ```lua
- { "rust" }
- ```
- - `root_dir` :
- ```lua
- root_pattern("Cargo.toml", "rust-project.json")
- ```
- - `settings` :
- ```lua
- {
- ["rust-analyzer"] = {}
- }
- ```
-
-## rust_analyzer
-
-https://github.com/rust-analyzer/rust-analyzer
-
-rust-analyzer (aka rls 2.0), a language server for Rust
-
-See [docs](https://github.com/rust-analyzer/rust-analyzer/tree/master/docs/user#settings) for extra settings.
-
-
-
-**Snippet to enable the language server:**
-```lua
-require'lspconfig'.rust_analyzer.setup{}
-```
-**Commands:**
-- CargoReload: Reload current cargo workspace
-
-**Default values:**
- - `cmd` :
- ```lua
- { "rust-analyzer" }
- ```
- - `filetypes` :
- ```lua
- { "rust" }
- ```
- - `root_dir` :
- ```lua
- root_pattern("Cargo.toml", "rust-project.json")
- ```
- - `settings` :
- ```lua
- {
- ["rust-analyzer"] = {}
- }
- ```
-
-
diff --git a/lua/plugins/lspconfig.lua b/lua/plugins/lspconfig.lua
deleted file mode 100644
index a130dcd..0000000
--- a/lua/plugins/lspconfig.lua
+++ /dev/null
@@ -1,148 +0,0 @@
---vim.lsp.set_log_level("debug")
-
-local status, nvim_lsp = pcall(require, "lspconfig")
-if not status then
- return
-end
-
-local protocol = require("vim.lsp.protocol")
-
--- Use an on_attach function to only map the following keys
--- after the language server attaches to the current buffer
-local on_attach = function(client, bufnr)
- local function buf_set_keymap(...)
- vim.api.nvim_buf_set_keymap(bufnr, ...)
- end
-
- local function buf_set_option(...)
- vim.api.nvim_buf_set_option(bufnr, ...)
- end
-
- --Enable completion triggered by <c-x><c-o>
- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc")
-
- -- Mappings.
- local opts = { noremap = true, silent = true }
-
- -- See `:help vim.lsp.*` for documentation on any of the below functions
- buf_set_keymap("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts) -- most of the lsp server don't implement textDocument/Declaration, so gD is useless for now.
- --buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
- buf_set_keymap("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<CR>", opts)
- --buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
-
- -- add rust specific keymappings
- if client.name == "rust_analyzer" then
- buf_set_keymap("n", "<leader>rr", "<cmd>RustRunnables<CR>", opts)
- buf_set_keymap("n", "<leader>ra", "<cmd>RustHoverAction<CR>", opts)
- end
-
- -- formatting
- if client.server_capabilities.documentFormattingProvider then
- vim.api.nvim_create_autocmd("BufWritePre", {
- group = vim.api.nvim_create_augroup("Format", { clear = true }),
- buffer = bufnr,
- callback = function()
- vim.lsp.buf.format()
- end,
- })
- end
-end
-
-protocol.CompletionItemKind = {
- -- "", -- Text
- -- "", -- Method
- -- "", -- Function
- -- "", -- Constructor
- -- "", -- Field
- -- "", -- Variable
- -- "", -- Class
- -- "ﰮ", -- Interface
- -- "", -- Module
- -- "", -- Property
- -- "", -- Unit
- -- "", -- Value
- -- "", -- Enum
- -- "", -- Keyword
- -- "", -- Snippet
- -- "", -- Color
- -- "", -- File
- -- "", -- Reference
- -- "", -- Folder
- -- "", -- EnumMember
- -- "", -- Constant
- -- "", -- Struct
- -- "", -- Event
- -- "ﬦ", -- Operator
- -- "", -- TypeParameter
- File = { icon = "", hl = "TSURI" },
- Module = { icon = "", hl = "TSNamespace" },
- Namespace = { icon = "", hl = "TSNamespace" },
- Package = { icon = "", hl = "TSNamespace" },
- Class = { icon = "ﴯ", hl = "TSType" },
- Method = { icon = "", hl = "TSMethod" },
- Property = { icon = "", hl = "TSMethod" },
- Field = { icon = "", hl = "TSField" },
- Constructor = { icon = "", hl = "TSConstructor" },
- Enum = { icon = "", hl = "TSType" },
- Interface = { icon = "", hl = "TSType" },
- Function = { icon = "", hl = "TSFunction" },
- Variable = { icon = "", hl = "TSConstant" },
- Constant = { icon = "", hl = "TSConstant" },
- String = { icon = "ﮜ", hl = "TSString" },
- Number = { icon = "", hl = "TSNumber" },
- Boolean = { icon = "ﮒ", hl = "TSBoolean" },
- Array = { icon = "", hl = "TSConstant" },
- Object = { icon = "⦿", hl = "TSType" },
- Key = { icon = "", hl = "TSType" },
- Null = { icon = "ﳠ", hl = "TSType" },
- EnumMember = { icon = "", hl = "TSField" },
- Struct = { icon = "ﴯ", hl = "TSType" },
- Event = { icon = "🗲", hl = "TSType" },
- Operator = { icon = "+", hl = "TSOperator" },
- TypeParameter = { icon = "𝙏", hl = "TSParameter" },
-}
-
--- Set up completion using nvim_cmp with LSP source
-local capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
-
-nvim_lsp.flow.setup({
- on_attach = on_attach,
- capabilities = capabilities,
-})
-
-nvim_lsp.sumneko_lua.setup({
- on_attach = on_attach,
- settings = {
- Lua = {
- diagnostics = {
- -- Get the language server to recognize the `vim` global
- globals = { "vim" },
- },
-
- workspace = {
- -- Make the server aware of Neovim runtime files
- library = vim.api.nvim_get_runtime_file("", true),
- checkThirdParty = false,
- },
- },
- },
-})
-
--- Diagnostic symbols in the sign column (gutter)
---local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
---local signs = { Error = " ", Warn = " ", Hint = " ", Info = "􀅴 " }
-local signs = { Error = " ", Warn = " ", Hint = " ", Info = "􀅴 " }
-for type, icon in pairs(signs) do
- local hl = "DiagnosticSign" .. type
- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
-end
---
-vim.diagnostic.config({
- virtual_text = {
- prefix = "●",
- },
- update_in_insert = true,
- float = {
- source = "always", -- Or "if_many"
- },
-})
diff --git a/lua/plugins/lspkind.lua b/lua/plugins/lspkind.lua
deleted file mode 100644
index 72ca5c2..0000000
--- a/lua/plugins/lspkind.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local status, lspkind = pcall(require, "lspkind")
-if (not status) then return end
-
-lspkind.init({
- -- enables text annotations
- --
- -- default: true
- mode = 'symbol',
-
- -- default symbol map
- -- can be either 'default' (requires nerd-fonts font) or
- -- 'codicons' for codicon preset (requires vscode-codicons font)
- --
- -- default: 'default'
- preset = 'codicons',
-
- -- override preset symbols
- --
- -- default: {}
- symbol_map = {
- Text = "",
- Method = "",
- Function = "",
- Constructor = "",
- Field = "ﰠ",
- Variable = "",
- Class = "ﴯ",
- Interface = "",
- Module = "",
- Property = "ﰠ",
- Unit = "塞",
- Value = "",
- Enum = "",
- Keyword = "",
- Snippet = "",
- Color = "",
- File = "",
- Reference = "",
- Folder = "",
- EnumMember = "",
- Constant = "",
- Struct = "פּ",
- Event = "",
- Operator = "",
- TypeParameter = ""
- },
-})
diff --git a/lua/plugins/lspsaga-22.10.13-22:51-bak.lua b/lua/plugins/lspsaga-22.10.13-22:51-bak.lua
deleted file mode 100644
index ceb1099..0000000
--- a/lua/plugins/lspsaga-22.10.13-22:51-bak.lua
+++ /dev/null
@@ -1,61 +0,0 @@
-local status, saga = pcall(require, "lspsaga")
-if not status then
- return
-end
-
-saga.init_lsp_saga({
- -- when cursor in saga window you config these to move
- move_in_saga = { prev = "k", next = "j" },
- diagnostic_header = { " ", " ", " ", " " },
- scroll_in_preview = {
- scroll_down = "<C-d>",
- scroll_up = "<C-u>",
- },
- code_action_icon = "ﯦ ",
- -- Same as nvim-lightbulb but async
- code_action_lightbulb = {
- sign = false,
- virtual_text = true,
- },
- finder_icons = {
- def = " ",
- ref = " ",
- link = " ",
- },
- finder_action_keys = {
- open = "<CR>",
- "o",
- vsplit = "gv",
- split = "gs",
- tabe = "t",
- quit = "gq",
- scroll_down = "<C-f>",
- scroll_up = "<C-b>",
- },
-
- -- Show symbols in winbar must be neovim 0.8.0,
- -- Close it until neovim 0.8.0 become stable
- symbol_in_winbar = {
- in_custom = false,
- --enable = enable_winbar,
- separator = "  ",
- show_file = true,
- click_support = false,
- },
-})
-
- -- Mappings.
-local map = vim.api.nvim_set_keymap
-local opts = { noremap = true, silent = true }
-
-map("n", "gd", "<Cmd>Lspsaga lsp_finder<CR>", opts) -- Press "o" to open the reference location
-map("n", "gp", "<Cmd>Lspsaga peek_definition<CR>", opts)
-map("n", "K", "<Cmd>Lspsaga hover_doc<CR>", opts)
-map("n", "gk", "<Cmd>Lspsaga diagnostic_jump_prev<CR>", opts)
-map("n", "gj", "<Cmd>Lspsaga diagnostic_jump_next<CR>", opts)
-map("n", "gs", "<Cmd>Lspsaga signature_help<CR>", opts) -- Default is <C-k>
-map("n", "go", "<Cmd>Lspsaga show_line_diagnostics<CR>", opts)
-map("n", "gr", "<Cmd>Lspsaga rename<CR>", opts)
-map("n", "ga", "<Cmd>Lspsaga code_action<CR>", opts)
-map("n", "[d", "<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
-map("n", "]d", "<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
diff --git a/lua/plugins/lspsaga.lua b/lua/plugins/lspsaga.lua
deleted file mode 100644
index 0bf1ec7..0000000
--- a/lua/plugins/lspsaga.lua
+++ /dev/null
@@ -1,145 +0,0 @@
-require "lspsaga".init_lsp_saga {
- -- "single" | "double" | "rounded" | "bold" | "plus"
- border_style = "rounded",
- --border_style = "single",
- saga_winblend = 30,
- move_in_saga = { next = '<C-n>', prev = '<C-p>' },
- --move_in_saga = { prev = "k", next = "j" },
- scroll_in_preview = {
- scroll_down = "<C-d>",
- scroll_up = "<C-u>",
- },
- diagnostic_header = { " ", " ", " ", " " },
- -- add bracket or something with diagnostic source, just have 2 elements
- -- use emoji lightbulb in default
- code_action_icon = "",
- --code_action_icon = "ﯦ ",
- -- if true can press number to execute the codeaction in codeaction window
- code_action_num_shortcut = true,
- -- same as nvim-lightbulb but async
- code_action_lightbulb = {
- enable = false,
- sign = false,
- sign_priority = 20, --
- virtual_text = false,
- },
- finder_icons = {
- def = " ",
- ref = " ",
- link = " ",
- },
- -- preview lines of lsp_finder and definition preview
- max_preview_lines = 5,
- definition_action_keys = {
- edit = '<CR>',
- vsplit = '<C-y>',
- split = '<C-x>',
- tabe = '<C-t>',
- quit = '<ESC>',
- },
- -- definition_preview_quit = '<ESC>',
- -- finder_preview_hl_ns = 8,
- finder_action_keys = {
- open = { 'o', '<CR>' },
- vsplit = "v",
- split = "s",
- tabe = "t",
- quit = "<ESC>",
- scroll_down = "<C-j>",
- scroll_up = "<C-k>", -- quit can be a table
- },
- code_action_keys = {
- quit = "<ESC>",
- exec = "<CR>",
- },
- rename_action_quit = "<ESC>",
- rename_in_select = true,
- symbol_in_winbar = {
- enable = true,
- --in_custom = false,
- in_custom = true,
- separator = '  ',
- --show_file = false,
- show_file = true,
- click_support = false,
- --click_support = false,
- },
- --show_outline = {
- -- win_position = 'right',
- -- --set special filetype win that outline window split.like NvimTree neotree
- -- -- defx, db_ui
- -- min_with = '',
- -- win_width = 40,
- -- auto_enter = false,
- -- auto_preview = true,
- -- virt_text = 'x',
- -- jump_key = 'l',
- -- -- auto refresh when change buffer
- -- auto_refresh = true,
- --},
- custom_kind = {
- File = { " " },
- Module = { " " },
- Namespace = { "ﱕ " },
- Package = { " " },
- Class = { "ﴯ " },
- Method = { "" },
- Property = { "ﰠ " },
- Field = { "ﰠ " },
- Constructor = { " " },
- Enum = { " " },
- Interface = { " " },
- Function = { " " },
- Variable = { " " },
- Constant = { " " },
- String = { " " },
- Number = { " " },
- Boolean = { " " },
- Array = { " " },
- Object = { " " },
- Key = { "- " },
- Null = { " " },
- EnumMember = { " " },
- Struct = { " " },
- Event = { " " },
- Operator = { " " },
- TypeParameter = { " " },
- TypeAlias = { " " },
- Parameter = { " " },
- StaticMethod = { " " },
- Macro = { "廓" },
- },
-}
-
- -- Mappings.
-local map = vim.api.nvim_set_keymap
-local opts = { noremap = true, silent = true }
-
-map("n", "gd", "<CMD>Lspsaga peek_definition<CR>", opts)
---map("n", "gp", "<Cmd>Lspsaga peek_definition<CR>", opts)
-map("n", "gi", "<CMD>Lspsaga lsp_finder<CR>", opts)
-map("n", "gh", "<CMD>Lspsaga hover_doc<CR>", opts)
-map("n", "gs", "<CMD>Lspsaga signature_help<CR>", opts)
-map("n", "ga", "<CMD>Lspsaga code_action<CR>", opts)
-map("v", "ga", "<CMD><C-u>Lspsaga range_code_action<CR>", opts)
-map("n", "gl", "<CMD>Lspsaga show_line_diagnostics<CR>", opts)
---map("n", "go", "<CMD>Lspsaga open_floaterm zsh<CR>", opts)
-map("n", ";D", "<CMD>Lspsaga show_cursor_diagnostics<CR>", opts)
-map("n", "<gr>", "<CMD>Lspsaga rename<CR>", opts)
-map("n", "gk", "<CMD>Lspsaga diagnostic_jump_prev<CR>", opts)
-map("n", "gj", "<CMD>Lspsaga diagnostic_jump_next<CR>", opts)
-map("n", "[d", "<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts)
-map("n", "]d", "<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts)
-map("t", "<ESC>", "<CMD>Lspsaga close_floaterm<CR>", opts)
-
---vim.api.nvim_command("highlight LspFloatWinNormal guibg=none ")
---hi LspFloatWinNormal guibg=none
-
-
--- vim.api.nvim_create_autocmd("BufEnter", {
--- callback = function ()
--- if #vim.api.nvim_list_wins() == 1 and vim.bo.filetype == "lspsagaoutline" then
--- vim.cmd "quit"
--- end
--- end
--- })
diff --git a/lua/plugins/lualine.lua b/lua/plugins/lualine.lua
deleted file mode 100644
index 9d86e21..0000000
--- a/lua/plugins/lualine.lua
+++ /dev/null
@@ -1,423 +0,0 @@
-local lualine_status_ok, lualine = pcall(require, "lualine")
-if not lualine_status_ok then
- print("lualine.nvim is etiher broken or is not installed.")
- return
-end
-
---local colors = require('tokyonight.colors').setup()
---local colors = {
---bg_dark = "#1f2335",
---bg = "#24283b",
---fg = "#c0caf5",
---fg_gutter = "#3b4261",
---green = "#a6e3a1",
---red = "#f38ba8",
---}
-
---local colors = {
--- gray = '#23232e',
--- lightgray = '#5f6a8e',
--- orange = '#ffb86c',
--- purple = '#bd93f9',
--- red = '#ff5555',
--- yellow = '#f1fa8c',
--- green = '#50fa7b',
--- white = '#f8f8f2',
--- black = '#282a36',
---}
-local colors = {
- nobg = nil,
- blue = "#87b0f9",
- mauve = "#cba6f7",
- red = "#f38ba8",
- green = "#a6e3a1",
- peach = "#fab387",
- white = "#c6d0f5",
- gray = "#a1a8c9",
- black = "#1e1e2e",
- innerbg = nil,
- outerbg = "#16161D",
-}
---require("lualine").setup({
--- Your lua part of config goes here
-require("lualine").setup({
- options = {
- icons_enabled = true,
- --theme = "auto",
- theme = require("plugins.linecolor").theme(),
- --theme = {
- -- We are going to use lualine_c an lualine_x as left and
- -- right section. Both are highlighte by c theme . So we
- -- are just setting default looks o statusline
- --normal = { c = { fg = colors.fg, bg = colors.bg } },
- --inactive = { c = { fg = colors.fg, bg = colors.bg } },
- --},
- component_separators = { left = "", right = "" },
- section_separators = { left = "", right = "" },
- --component_separators = { left = '|', right = '|'},
- --section_separators = { left = '', right = ''},
- disabled_filetypes = {
- statusline = {},
- winbar = {},
- },
- ignore_focus = {},
- always_divide_middle = true,
- globalstatus = true,
- refresh = {
- statusline = 1000,
- tabline = 1000,
- winbar = 1000,
- },
- },
- sections = {
- lualine_a = { "mode" },
- lualine_b = {
- "branch",
- {
- "diff",
- colored = true,
- diff_color = {
- added = "DiffAdd",
- modified = "DiffChange",
- removed = "DiffDelete",
- },
- },
- {
- "diagnostics",
-
- sources = { "nvim_lsp" },
- sections = { "error", "warn", "info" },
-
- diagnostics_color = {
- error = "DiagnosticError",
- warn = "DiagnosticWarn",
- info = "DiagnosticInfo",
- },
- colored = true,
- update_in_insert = false,
- always_visible = false,
- },
- },
- --lualine_b = { "branch", "diff", "diagnostics" },
- lualine_c = {
- --{"filetype", padding={right=0}, icon_only = true, component_separators = {left = "", right = ""}},
- --{"filename", padding={left=0}, color = {gui = "bold,italic"}},
- --{ "filetype",
- -- icon_only = true,
- --},
- {
- "filename",
- --color = {gui = "bold,italic", fg = '#ffaa88', bg = 'nil' },
- --component_separators = {left = "", right = ""},
- },
- },
- lualine_x = { "encoding", "fileformat", "filetype" },
- --lualine_x = {
- -- {"encoding", color = { bg = colors.black }, component_separators = {left = "", right = ""}},
- -- {"fileformat", color = { bg = colors.black }, component_separators = {left = "", right = ""}},
- -- {"filetype", color = { bg = colors.black }, component_separators = {left = "", right = ""}},
- --},
- lualine_y = { "progress" },
- lualine_z = { "location" },
- },
- inactive_sections = {
- lualine_a = {},
- lualine_b = {},
- lualine_c = { "filename" },
- lualine_x = { "location" },
- lualine_y = {},
- lualine_z = {},
- },
- -- tabline = {},
- tabline = {
- --lualine_a = { "mode" },
- --lualine_a = {custom_fname},
- lualine_a = {
- {
- "buffers",
- show_filename_only = false,
- show_modified_status = true,
- mode = 4,
- buffers_color = {
- active = { bg = colors.nobg, fg = colors.black }, -- color for active buffer
- --inactive = { bg = colors.white, fg = colors.fg_gutter }, -- color for inactive buffer
- --active = { bg = colors.bg, fg = colors.white }, -- color for active buffer
- --inactive = { bg = colors.bg_dark, fg = colors.fg_gutter }, -- color for inactive buffer
- ----color = function()
- ---- return { bg = vim.bo.modified and '#aa3355' or '#33aa88' }
- ----end,
- },
- symbols = {
- modified = " ●", -- Text to show when the buffer is modified
- alternate_file = "", -- Text to show to identify the alternate file
- --directory = "", -- Text to show when the buffer is a directory
- },
- max_length = vim.o.columns * 5 / 6,
- --{{function()
- -- local bg = 'hi! lualine_buffers_color' -- not modified
- -- if vim.bo.modified then bg = '#c70039' -- unsaved
- -- elseif not vim.bo.readonly then bg = 'hi! lualine_buffers_color' end -- readonly
- -- vim.cmd('hi! lualine_buffers_color guibg='..bg)
- --end,
- --color = 'hi! lualine_buffers_color',
- --}},
- },
- },
- lualine_b = {},
- lualine_c = {},
- lualine_x = {},
- lualine_y = {},
- lualine_z = {},
- --lualine_z = { "tabs" },
- },
- --tabline = {
- -- lualine_a = { "mode" },
- -- lualine_b = { "buffers" },
- -- lualine_c = { "branch" },
- -- --lualine_c = { "branch", "diff", "diagnostics" },
- -- lualine_x = {},
- -- lualine_y = {},
- -- lualine_z = { "tabs" },
- --},
- --winbar = {
- -- lualine_a = {},
- -- lualine_b = {},
- -- lualine_c = {'filename'},
- -- lualine_x = {},
- -- lualine_y = {},
- -- lualine_z = {}
- --},
- --inactive_winbar = {
- -- lualine_a = {},
- -- lualine_b = {},
- -- lualine_c = {},
- -- lualine_x = {},
- -- lualine_y = {},
- -- lualine_z = {}
- --},
- winbar = {},
- inactive_winbar = {},
- --extensions = {},
- extensions = { "quickfix" },
-})
---require("lualine").statusline()
---require("lualine").tabline()
---if not lualine_status_ok then
--- print("lualine.nvim is etiher broken or is not installed.")
--- return
---end
---local lualine_status_ok, lualine = pcall(require, "lualine")
---if not lualine_status_ok then
--- print("lualine.nvim is etiher broken or is not installed.")
--- return
---end
---local utils = require("heirline.utils")
-
---local M = {}
-
--- stylua: ignore start
---M.colours = {--{{{
----- Color table for highlights
----- stylua: ignore
---local colors = {
--- bg = '#2E3440',
--- fg = '#E5E9F0',
--- yellow = '#EBCB8B',
--- cyan = '#88C0D0',
--- darkblue = '#5E81AC',
--- green = '#A3BE8C',
--- orange = '#D08770',
--- violet = '#B48EAD',
--- magenta = '#B48EAD',
--- blue = '#81A1C1',
--- red = '#BF616A',
---}
---
---local conditions = {
--- buffer_not_empty = function()
--- return vim.fn.empty(vim.fn.expand("%:t")) ~= 1
--- end,
--- hide_in_width = function()
--- return vim.fn.winwidth(0) > 80
--- end,
--- check_git_workspace = function()
--- local filepath = vim.fn.expand("%:p:h")
--- local gitdir = vim.fn.finddir(".git", filepath .. ";")
--- return gitdir and #gitdir > 0 and #gitdir < #filepath
--- end,
---}
-
--- Config
---local config = {
---require('lualine').setup {
--- options = {
--- -- Disable sections and component separators
--- component_separators = "",
--- section_separators = "",
--- theme = {
--- -- We are going to use lualine_c an lualine_x as left and
--- -- right section. Both are highlighte by c theme . So we
--- -- are just setting default looks o statusline
--- normal = { c = { fg = colors.fg, bg = colors.bg } },
--- inactive = { c = { fg = colors.fg, bg = colors.bg } },
--- },
--- disabled_filetypes = { "NvimTree" },
--- },
--- sections = {
--- -- these are to remove the defaults
--- lualine_a = {},
--- lualine_b = {},
--- lualine_y = {},
--- lualine_z = {},
--- -- These will be filled later
--- lualine_c = {},
--- lualine_x = {},
--- },
--- inactive_sections = {
--- -- these are to remove the defaults
--- lualine_a = {},
--- lualine_b = {},
--- lualine_y = {},
--- lualine_z = {},
--- lualine_c = {},
--- lualine_x = {},
--- },
---}
---
----- Inserts a component in lualine_c at left section
---local function ins_left(component)
--- table.insert(lualine.sections.lualine_c, component)
---end
---
----- Inserts a component in lualine_x ot right section
---local function ins_right(component)
--- table.insert(lualine.sections.lualine_x, component)
---end
---
---ins_left({
--- function()
--- return "▊"
--- end,
--- color = { fg = colors.green }, -- Sets highlighting of component
--- padding = { left = 0, right = 1 }, -- We don't need space before this
---})
---
---ins_left({
--- -- mode component
--- function()
--- return ""
--- end,
--- color = function()
--- -- auto change color according to neovims mode
--- local mode_color = {
--- n = colors.blue,
--- i = colors.green,
--- v = colors.violet,
--- ["�"] = colors.blue,
--- V = colors.blue,
--- c = colors.magenta,
--- no = colors.red,
--- s = colors.orange,
--- S = colors.orange,
--- ic = colors.yellow,
--- R = colors.violet,
--- Rv = colors.violet,
--- cv = colors.red,
--- ce = colors.red,
--- r = colors.cyan,
--- rm = colors.cyan,
--- ["r?"] = colors.cyan,
--- ["!"] = colors.red,
--- t = colors.red,
--- }
--- return { fg = mode_color[vim.fn.mode()] }
--- end,
--- padding = { right = 1 },
---})
---
---ins_left({
--- -- mode component
--- "mode",
--- color = function()
--- -- auto change color according to neovims mode
--- local mode_color = {
--- n = colors.red,
--- i = colors.green,
--- v = colors.violet,
--- ["�"] = colors.blue,
--- V = colors.blue,
--- c = colors.magenta,
--- no = colors.red,
--- s = colors.orange,
--- S = colors.orange,
--- ic = colors.yellow,
--- R = colors.violet,
--- Rv = colors.violet,
--- cv = colors.red,
--- ce = colors.red,
--- r = colors.cyan,
--- rm = colors.cyan,
--- ["r?"] = colors.cyan,
--- ["!"] = colors.red,
--- t = colors.red,
--- }
--- return { fg = mode_color[vim.fn.mode()] }
--- end,
--- padding = { right = 1 },
---})
---
---ins_left({
--- "branch",
--- icon = "",
--- color = { fg = colors.violet, gui = "bold" },
---})
---
---ins_left({
--- "filename",
--- cond = conditions.buffer_not_empty,
--- color = { fg = colors.aqua, gui = "bold" },
---})
---
---ins_left({
--- -- filesize component
--- "filesize",
--- cond = conditions.buffer_not_empty,
---})
---
----- Add components to right sections
---ins_right({
--- "o:encoding", -- option component same as &encoding in viml
--- fmt = string.lower, -- I'm not sure why it's upper case either ;)
--- cond = conditions.hide_in_width,
--- color = { fg = colors.yellow },
---})
---
---ins_right({
--- "fileformat",
--- fmt = string.upper,
--- icons_enabled = true, -- I think icons are cool but Eviline doesn't have them. sigh
--- color = { fg = colors.fg, gui = "bold" },
---})
---
---ins_right({
--- "filetype",
---})
---
---ins_right({ "progress", color = { fg = colors.fg, gui = "bold" } })
---
---ins_right({
--- "location",
---})
---
---ins_right({
--- function()
--- return "▊"
--- end,
--- color = { fg = colors.green },
--- padding = { left = 1 },
---})
---return M
--- Now don't forget to initialize lualine
---require("lualine").setup(config)
---require"lualine".setup(config)
---lualine.setup(config)
diff --git a/lua/plugins/mason.lua b/lua/plugins/mason.lua
deleted file mode 100644
index 69c61ba..0000000
--- a/lua/plugins/mason.lua
+++ /dev/null
@@ -1,27 +0,0 @@
-local status, mason = pcall(require, "mason")
-if (not status) then return end
-local status2, lspconfig = pcall(require, "mason-lspconfig")
-if (not status2) then return end
-
-mason.setup({
-
-})
-
-lspconfig.setup {
- ensure_installed = { "sumneko_lua" },
-}
-local keymap = vim.api.nvim_set_keymap
-local opts = { noremap = true }
-
-
-keymap('n', 'gd', ':lua vim.lsp.buf.definition()<cr>', opts)
-keymap('n', 'gD', ':lua vim.lsp.buf.declaration()<cr>', opts)
-keymap('n', 'gi', ':lua vim.lsp.buf.implementation()<cr>', opts)
-keymap('n', 'gw', ':lua vim.lsp.buf.document_symbol()<cr>', opts)
-keymap('n', 'gw', ':lua vim.lsp.buf.workspace_symbol()<cr>', opts)
-keymap('n', 'gr', ':lua vim.lsp.buf.references()<cr>', opts)
-keymap('n', 'gt', ':lua vim.lsp.buf.type_definition()<cr>', opts)
-keymap('n', 'K', ':lua vim.lsp.buf.hover()<cr>', opts)
-keymap('n', '<c-k>', ':lua vim.lsp.buf.signature_help()<cr>', opts)
-keymap('n', '<leader>af', ':lua vim.lsp.buf.code_action()<cr>', opts)
-keymap('n', '<leader>rn', ':lua vim.lsp.buf.rename()<cr>', opts)
diff --git a/lua/plugins/neoscroll.lua b/lua/plugins/neoscroll.lua
deleted file mode 100644
index d122584..0000000
--- a/lua/plugins/neoscroll.lua
+++ /dev/null
@@ -1,21 +0,0 @@
-require("neoscroll").setup({
- easing_function = "quadratic",
-})
-
-local t = {}
--- Syntax: t[keys] = {function, {function arguments}}
--- Use the "sine" easing function
-t["<C-u>"] = { "scroll", { "-vim.wo.scroll", "true", "20", [['cubic']] } }
-t["<C-d>"] = { "scroll", { "vim.wo.scroll", "true", "20", [['cubic']] } }
--- Use the "circular" easing function
-t["<C-b>"] = { "scroll", { "-vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } }
-t["<C-f>"] = { "scroll", { "vim.api.nvim_win_get_height(0)", "true", "50", [['cubic']] } }
--- Pass "nil" to disable the easing animation (constant scrolling speed)
-t["<C-y>"] = { "scroll", { "-0.10", "false", "100", nil } }
-t["<C-e>"] = { "scroll", { "0.10", "false", "100", nil } }
--- When no easing function is provided the default easing function (in this case "quadratic") will be used
-t["zt"] = { "zt", { "10" } }
-t["zz"] = { "zz", { "10" } }
-t["zb"] = { "zb", { "10" } }
-
-require("neoscroll.config").set_mappings(t)
diff --git a/lua/plugins/null-ls.lua b/lua/plugins/null-ls.lua
deleted file mode 100644
index 7fc4377..0000000
--- a/lua/plugins/null-ls.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-local null_ls_status_ok, null_ls = pcall(require, "null-ls")
-if not null_ls_status_ok then
- return
-end
-
--- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting
-local formatting = null_ls.builtins.formatting
--- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
-local diagnostics = null_ls.builtins.diagnostics
-
---null_ls.setup({
--- debug = false,
--- sources = {
--- formatting.prettier.with({ extra_args = { "--no-semi", "--single-quote", "--jsx-single-quote" } }),
--- formatting.black.with({ extra_args = { "--fast" } }),
--- formatting.stylua,
--- -- diagnostics.flake8
--- },
---})
-require("null-ls").setup({
- sources = {
- require("null-ls").builtins.formatting.stylua,
- require("null-ls").builtins.diagnostics.eslint,
- require("null-ls").builtins.completion.spell,
- },
-})
diff --git a/lua/plugins/nvim-tree.lua b/lua/plugins/nvim-tree.lua
deleted file mode 100644
index 74030cb..0000000
--- a/lua/plugins/nvim-tree.lua
+++ /dev/null
@@ -1,68 +0,0 @@
-local status_ok, nvim_tree = pcall(require, "nvim-tree")
-if not status_ok then
- return
-end
-
-local config_status_ok, nvim_tree_config = pcall(require, "nvim-tree.config")
-if not config_status_ok then
- return
-end
-
-local tree_cb = nvim_tree_config.nvim_tree_callback
-
-nvim_tree.setup({
- update_focused_file = {
- enable = true,
- update_cwd = true,
- },
- renderer = {
- root_folder_modifier = ":t",
- icons = {
- glyphs = {
- default = "",
- symlink = "",
- folder = {
- arrow_open = "",
- arrow_closed = "",
- default = "",
- open = "",
- empty = "",
- empty_open = "",
- symlink = "",
- symlink_open = "",
- },
- git = {
- unstaged = "",
- staged = "S",
- unmerged = "",
- renamed = "➜",
- untracked = "U",
- deleted = "",
- ignored = "◌",
- },
- },
- },
- },
- diagnostics = {
- enable = true,
- show_on_dirs = true,
- icons = {
- hint = "",
- info = "",
- warning = "",
- error = "",
- },
- },
- view = {
- width = 30,
- --height = 30,
- side = "left",
- mappings = {
- list = {
- { key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
- { key = "h", cb = tree_cb("close_node") },
- { key = "v", cb = tree_cb("vsplit") },
- },
- },
- },
-})
diff --git a/lua/plugins/prettier.lua b/lua/plugins/prettier.lua
deleted file mode 100644
index 05d4665..0000000
--- a/lua/plugins/prettier.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-local status, prettier = pcall(require, "prettier")
-if (not status) then return end
-
-prettier.setup {
- bin = 'prettierd',
- filetypes = {
- "c",
- "lua",
- "vim",
- --"css",
- --"javascript",
- --"javascriptreact",
- --"typescript",
- --"typescriptreact",
- --"json",
- --"scss",
- "less"
- }
-}
diff --git a/lua/plugins/tabline.lua b/lua/plugins/tabline.lua
deleted file mode 100644
index 4e1c506..0000000
--- a/lua/plugins/tabline.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-require("tabline").setup({
- -- Defaults configuration options
- enable = true,
- options = {
- -- If lualine is installed tabline will use separators configured in lualine by default.
- -- These options can be used to override those settings.
- section_separators = { "", "" },
- component_separators = { "", "" },
- max_bufferline_percent = 66, -- set to nil by default, and it uses vim.o.columns * 2/3
- show_tabs_always = true, -- this shows tabs only when there are more than one tab or if the first tab is named
- show_devicons = true, -- this shows devicons in buffer section
- show_bufnr = true, -- this appends [bufnr] to buffer section,
- show_filename_only = false, -- shows base filename only instead of relative path in filename
- modified_icon = "+", -- change the default modified icon
- modified_italic = true, -- set to true by default; this determines whether the filename turns italic if modified
- show_tabs_only = false, -- this shows only tabs instead of tabs + buffers
- },
-})
-vim.cmd([[
- set guioptions-=e " Use showtabline in gui vim
- set sessionoptions+=tabpages,globals " store tabpages and globals in session
-]])
diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua
deleted file mode 100644
index 7e70bd5..0000000
--- a/lua/plugins/telescope.lua
+++ /dev/null
@@ -1,177 +0,0 @@
-local status_ok, telescope = pcall(require, "telescope")
-if not status_ok then
- return
-end
-local actions = require("telescope.actions")
-local builtin = require("telescope.builtin")
-
-local function telescope_buffer_dir()
- return vim.fn.expand("%:p:h")
-end
-
-telescope.load_extension("fzf")
-telescope.load_extension("file_browser")
-require("telescope").load_extension("file_browser")
-local fb_actions = require("telescope").extensions.file_browser.actions
---telescope.load_extension('media_files')
-
-telescope.setup({
- defaults = {
- --
- prompt_prefix = " ",
- selection_caret = " ",
- path_display = { "smart" },
- --
- mappings = {
- i = {
- ["<C-n>"] = actions.cycle_history_next,
- ["<C-p>"] = actions.cycle_history_prev,
-
- ["<C-j>"] = actions.move_selection_next,
- ["<C-k>"] = actions.move_selection_previous,
-
- ["<C-c>"] = actions.close,
-
- ["<Down>"] = actions.move_selection_next,
- ["<Up>"] = actions.move_selection_previous,
-
- ["<CR>"] = actions.select_default,
- ["<C-x>"] = actions.select_horizontal,
- ["<C-y>"] = actions.select_vertical,
- ["<C-t>"] = actions.select_tab,
-
- ["<C-u>"] = actions.preview_scrolling_up,
- ["<C-d>"] = actions.preview_scrolling_down,
-
- ["<PageUp>"] = actions.results_scrolling_up,
- ["<PageDown>"] = actions.results_scrolling_down,
-
- ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
- ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
- ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
- ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
- ["<C-l>"] = actions.complete_tag,
- ["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
- },
-
- n = {
- ["<esc>"] = actions.close,
- ["<CR>"] = actions.select_default,
- ["<C-x>"] = actions.select_horizontal,
- ["<C-v>"] = actions.select_vertical,
- ["<C-t>"] = actions.select_tab,
-
- ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
- ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
- ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
- ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
-
- ["j"] = actions.move_selection_next,
- ["k"] = actions.move_selection_previous,
- ["H"] = actions.move_to_top,
- ["M"] = actions.move_to_middle,
- ["L"] = actions.move_to_bottom,
-
- ["<Down>"] = actions.move_selection_next,
- ["<Up>"] = actions.move_selection_previous,
- ["gg"] = actions.move_to_top,
- ["G"] = actions.move_to_bottom,
-
- ["<C-u>"] = actions.preview_scrolling_up,
- ["<C-d>"] = actions.preview_scrolling_down,
-
- ["<PageUp>"] = actions.results_scrolling_up,
- ["<PageDown>"] = actions.results_scrolling_down,
-
- ["?"] = actions.which_key,
- ["cd"] = function(prompt_bufnr)
- local selection = require("telescope.actions.state").get_selected_entry()
- local dir = vim.fn.fnamemodify(selection.path, ":p:h")
- require("telescope.actions").close(prompt_bufnr)
- -- Depending on what you want put `cd`, `lcd`, `tcd`
- vim.cmd(string.format("silent lcd %s", dir))
- end,
- },
- },
- },
- pickers = {
- -- Default configuration for builtin pickers goes here:
- -- picker_name = {
- -- picker_config_key = value,
- -- ...
- -- }
- -- Now the picker_config_key will be applied every time you call this
- -- builtin picker
- },
- extensions = {
- file_browser = {
- theme = "dropdown",
- -- disables netrw and use telescope-file-browser in its place
- hijack_netrw = true,
- mappings = {
- -- your custom insert mode mappings
- ["i"] = {
- ["<C-w>"] = function()
- vim.cmd("normal vbd")
- end,
- },
- ["n"] = {
- -- your custom normal mode mappings
- ["N"] = fb_actions.create,
- ["h"] = fb_actions.goto_parent_dir,
- ["/"] = function()
- vim.cmd("startinsert")
- end,
- },
- },
- },
-
- media_files = {
- -- filetypes whitelist
- -- defaults to {"png", "jpg", "mp4", "webm", "pdf"}
- filetypes = { "png", "webp", "jpg", "jpeg" },
- find_cmd = "rg", -- find command (defaults to `fd`)
- },
- -- Your extension configuration goes here:
- -- extension_name = {
- -- extension_config_key = value,
- -- }
- -- please take a look at the readme of the extension you want to configure
- },
-})
-
-telescope.load_extension("file_browser")
-
---vim.keymap.set("n", ";f", function()
--- builtin.find_files({
--- no_ignore = false,
--- hidden = true,
--- })
---end)
-vim.keymap.set("n", ";r", function()
- builtin.live_grep()
-end)
-vim.keymap.set("n", "\\\\", function()
- builtin.buffers()
-end)
-vim.keymap.set("n", ";t", function()
- builtin.help_tags()
-end)
-vim.keymap.set("n", ";;", function()
- builtin.resume()
-end)
-vim.keymap.set("n", ";e", function()
- builtin.diagnostics()
-end)
---vim.keymap.set("n", "sf", function()
--- telescope.extensions.file_browser.file_browser({
--- path = "%:p:h",
--- cwd = telescope_buffer_dir(),
--- respect_gitignore = false,
--- hidden = true,
--- grouped = true,
--- previewer = false,
--- initial_mode = "normal",
--- layout_config = { height = 40 },
--- })
---end)
diff --git a/lua/plugins/toggleterm.lua b/lua/plugins/toggleterm.lua
deleted file mode 100644
index 912729a..0000000
--- a/lua/plugins/toggleterm.lua
+++ /dev/null
@@ -1,90 +0,0 @@
-local status_ok, toggleterm = pcall(require, "toggleterm")
-if not status_ok then
- return
-end
-
-toggleterm.setup({
- size = function(term)
- if term.direction == "horizontal" then
- return 12
- elseif term.direction == "vertical" then
- return vim.o.columns * 0.3
- end
- end,
- --size = 20,
- open_mapping = [[<leader>to]],
- hide_numbers = true,
- shade_filetypes = {},
- shade_terminals = false,
- shading_factor = 1,
- start_in_insert = true,
- insert_mappings = true,
- persist_size = true,
- direction = "float",
- --direction = "vertical",
- --direction = "horizontal",
- close_on_exit = true,
- shell = vim.o.shell,
- highlights = {
- -- highlights which map to a highlight group name and a table of it's values
- -- NOTE: this is only a subset of values, any group placed here will be set for the terminal window split
- Normal = {
- background = "#000000",
- },
- },
- float_opts = {
- width = 70,
- height = 15,
- winblend = 3,
- border = "curved",
- --winblend = 0,
- highlights = {
- border = "Normal",
- background = "Normal",
- },
- },
-})
-
-function _G.set_terminal_keymaps()
- local opts = { noremap = true }
- --local opts = {buffer = 0}
- vim.api.nvim_buf_set_keymap(0, "t", "<esc>", [[<C-\><C-n>]], opts)
- vim.api.nvim_buf_set_keymap(0, "t", "jj", [[<C-\><C-n>]], opts)
- vim.api.nvim_buf_set_keymap(0, "t", "<C-h>", [[<C-\><C-n><C-W>h]], opts)
- vim.api.nvim_buf_set_keymap(0, "t", "<C-j>", [[<C-\><C-n><C-W>j]], opts)
- vim.api.nvim_buf_set_keymap(0, "t", "<C-k>", [[<C-\><C-n><C-W>k]], opts)
- vim.api.nvim_buf_set_keymap(0, "t", "<C-l>", [[<C-\><C-n><C-W>l]], opts)
-end
-
-vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
-
-local Terminal = require("toggleterm.terminal").Terminal
-local lazygit = Terminal:new({ cmd = "lazygit", hidden = true })
-
-function _LAZYGIT_TOGGLE()
- lazygit:toggle()
-end
-
-local node = Terminal:new({ cmd = "node", hidden = true })
-
-function _NODE_TOGGLE()
- node:toggle()
-end
-
-local ncdu = Terminal:new({ cmd = "ncdu", hidden = true })
-
-function _NCDU_TOGGLE()
- ncdu:toggle()
-end
-
-local htop = Terminal:new({ cmd = "htop", hidden = true })
-
-function _HTOP_TOGGLE()
- htop:toggle()
-end
-
-local python = Terminal:new({ cmd = "python", hidden = true })
-
-function _PYTHON_TOGGLE()
- python:toggle()
-end
diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua
deleted file mode 100644
index b081ca3..0000000
--- a/lua/plugins/treesitter.lua
+++ /dev/null
@@ -1,34 +0,0 @@
-local status, treesitter = pcall(require, "nvim-treesitter.configs")
-if (not status) then return end
-
-treesitter.setup {
- highlight = {
- enable = true,
- disable = {},
- },
- indent = {
- enable = true,
- disable = {},
- --disable = { "python", "css" }
- },
- ensure_installed = {
- "c",
- "bash",
- "lua",
- "rust",
- },
- --ensure_installed = "all", -- one of "all" or a list of languages
- --ignore_install = { "" }, -- List of parsers to ignore installing
- autotag = {
- enable = true,
- },
- efactor = {
- highlight_definitions = { enable = true },
- highlight_current_scope = { enable = true }
- }
-}
---vim.opt.foldmethod = "expr"
---vim.opt.foldexpr = "nvim_treesitter#foldexpr()"
-
---local parser_config = require "nvim-treesitter.parsers".get_parser_configs()
---parser_config.tsx.filetype_to_parsername = { "javascript", "typescript.tsx" }
diff --git a/lua/plugins/web-devicons.lua b/lua/plugins/web-devicons.lua
deleted file mode 100644
index b8396bc..0000000
--- a/lua/plugins/web-devicons.lua
+++ /dev/null
@@ -1,12 +0,0 @@
-local status, icons = pcall(require, "nvim-web-devicons")
-if (not status) then return end
-
-icons.setup {
- -- your personnal icons can go here (to override)
- -- DevIcon will be appended to `name`
- override = {
- },
- -- globally enable default icons (default to false)
- -- will get overriden by `get_icons` option
- default = true
-}
diff --git a/lua/plugins/winbar.lua b/lua/plugins/winbar.lua
deleted file mode 100644
index 1573828..0000000
--- a/lua/plugins/winbar.lua
+++ /dev/null
@@ -1,35 +0,0 @@
-require("winbar").setup({
- enabled = true,
-
- show_file_path = true,
- show_symbols = true,
-
- colors = {
- path = "", -- You can customize colors like #c946fd
- file_name = "",
- symbols = "",
- },
-
- icons = {
- file_icon_default = "",
- seperator = ">",
- editor_state = "●",
- lock_icon = "",
- },
-
- exclude_filetype = {
- "help",
- "startify",
- "dashboard",
- "packer",
- "neogitstatus",
- "NvimTree",
- "Trouble",
- "alpha",
- "lir",
- "Outline",
- "spectre_panel",
- "toggleterm",
- "qf",
- },
-})
diff --git a/lua/plugins/zen-mode.lua b/lua/plugins/zen-mode.lua
deleted file mode 100644
index 7e52854..0000000
--- a/lua/plugins/zen-mode.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-local status, zenMode = pcall(require, "zen-mode")
-if (not status) then return end
-
-zenMode.setup {
-}
-
-vim.keymap.set('n', '<C-w>o', '<cmd>ZenMode<cr>', { silent = true })