aboutsummaryrefslogtreecommitdiff
path: root/config/nvim/lua/plugins
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2022-12-16 23:42:26 +0200
committersrdusr <trevorgray@srdusr.com>2022-12-16 23:42:26 +0200
commit6371e90cc598e52b1d057d4b6d9a7b75d60e2fd0 (patch)
treef55d4d589f1a1e619ad67243a0421e08917b4f3c /config/nvim/lua/plugins
parent8f4eae2782704484b498129a0a7d9044a4d73fbb (diff)
downloaddotfiles-6371e90cc598e52b1d057d4b6d9a7b75d60e2fd0.tar.gz
dotfiles-6371e90cc598e52b1d057d4b6d9a7b75d60e2fd0.zip
Removed config/nvim
Diffstat (limited to 'config/nvim/lua/plugins')
-rw-r--r--config/nvim/lua/plugins/autopairs.lua43
-rw-r--r--config/nvim/lua/plugins/cmp-gh-source.lua72
-rw-r--r--config/nvim/lua/plugins/cmp.lua332
-rw-r--r--config/nvim/lua/plugins/colorizer.lua6
-rw-r--r--config/nvim/lua/plugins/colorscheme.lua39
-rw-r--r--config/nvim/lua/plugins/git.lua11
-rw-r--r--config/nvim/lua/plugins/gitsigns.lua1
-rw-r--r--config/nvim/lua/plugins/heirline.lua1206
-rw-r--r--config/nvim/lua/plugins/lsp.lua611
-rw-r--r--config/nvim/lua/plugins/lspsaga.lua46
-rw-r--r--config/nvim/lua/plugins/luasnip.lua69
-rw-r--r--config/nvim/lua/plugins/mason.lua61
-rw-r--r--config/nvim/lua/plugins/modify-blend.lua40
-rw-r--r--config/nvim/lua/plugins/neoscroll.lua21
-rw-r--r--config/nvim/lua/plugins/null-ls.lua44
-rw-r--r--config/nvim/lua/plugins/nvim-tree.lua69
-rw-r--r--config/nvim/lua/plugins/prettier.lua19
-rw-r--r--config/nvim/lua/plugins/scripts/lsp-ext.lua48
-rw-r--r--config/nvim/lua/plugins/scripts/setcolors.lua121
-rw-r--r--config/nvim/lua/plugins/scripts/toggleLsp.lua40
-rw-r--r--config/nvim/lua/plugins/telescope.lua357
-rw-r--r--config/nvim/lua/plugins/treesitter.lua34
-rw-r--r--config/nvim/lua/plugins/web-devicons.lua12
-rw-r--r--config/nvim/lua/plugins/zen-mode.lua7
24 files changed, 0 insertions, 3309 deletions
diff --git a/config/nvim/lua/plugins/autopairs.lua b/config/nvim/lua/plugins/autopairs.lua
deleted file mode 100644
index fc39d2e..0000000
--- a/config/nvim/lua/plugins/autopairs.lua
+++ /dev/null
@@ -1,43 +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,
- },
- map = "<M-e>",
- pairs_map = {
-['<'] = '>',
-},
- disable_filetype = { "TelescopePrompt", "spectre_panel" },
- disable_in_macro = true,
- disable_in_visualblock = true,
- enalbe_moveright = true,
- enable_afterquote = true, -- add bracket pairs after quote
- enable_check_bracket_line = true, --- check bracket in same line
- enable_bracket_in_quote = true, --
- break_undo = true, -- switch for basic rule break undo sequence
- fast_wrap = {
- 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/config/nvim/lua/plugins/cmp-gh-source.lua b/config/nvim/lua/plugins/cmp-gh-source.lua
deleted file mode 100644
index 05bba55..0000000
--- a/config/nvim/lua/plugins/cmp-gh-source.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local ok, Job = pcall(require, "plenary.job")
-if not ok then
- return
-end
-
-local source = {}
-
-source.new = function()
- local self = setmetatable({ cache = {} }, { __index = source })
-
- return self
-end
-
-source.complete = function(self, _, callback)
- local bufnr = vim.api.nvim_get_current_buf()
-
- -- This just makes sure that we only hit the GH API once per session.
- --
- -- You could remove this if you wanted, but this just makes it so we're
- -- good programming citizens.
- if not self.cache[bufnr] then
- Job
- :new({
- -- Uses `gh` executable to request the issues from the remote repository.
- "gh",
- "issue",
- "list",
- "--limit",
- "1000",
- "--json",
- "title,number,body",
-
- on_exit = function(job)
- local result = job:result()
- local ok, parsed = pcall(vim.json.decode, table.concat(result, ""))
- if not ok then
- vim.notify "Failed to parse gh result"
- return
- end
-
- local items = {}
- for _, gh_item in ipairs(parsed) do
- gh_item.body = string.gsub(gh_item.body or "", "\r", "")
-
- table.insert(items, {
- label = string.format("#%s", gh_item.number),
- documentation = {
- kind = "markdown",
- value = string.format("# %s\n\n%s", gh_item.title, gh_item.body),
- },
- })
- end
-
- callback { items = items, isIncomplete = false }
- self.cache[bufnr] = items
- end,
- })
- :start()
- else
- callback { items = self.cache[bufnr], isIncomplete = false }
- end
-end
-
-source.get_trigger_characters = function()
- return { "#" }
-end
-
-source.is_available = function()
- return vim.bo.filetype == "gitcommit"
-end
-
-require("cmp").register_source("gh_issues", source.new())
diff --git a/config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua
deleted file mode 100644
index 829a448..0000000
--- a/config/nvim/lua/plugins/cmp.lua
+++ /dev/null
@@ -1,332 +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,
- expand = function(args)
- local luasnip = require("luasnip")
- if not luasnip then
- return
- end
- luasnip.lsp_expand(args.body)
- end,
- },
- mapping = cmp.mapping.preset.insert({
--- ["<CR>"] = cmp.mapping.confirm({
--- behavior = cmp.ConfirmBehavior.Replace,
--- select = true,
--- }),
- --["<C-k>"] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c' }),
- --["<C-j>"] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c' }),
- ['<C-y>'] = cmp.mapping.confirm({ select = true }),
- --["<C-e>"] = cmp.mapping.close(),
- --['<C-e>'] = cmp.mapping({
- -- i = cmp.mapping.abort(),
- -- c = cmp.mapping.close(),
- --}),
- ["<C-e>"] = cmp.mapping({
- i = function()
- if cmp.visible() then
- cmp.abort()
- require("user.utils").toggle_completion()
- require("notify")("completion off")
- else
- cmp.complete()
- require("user.utils").toggle_completion()
- require("notify")("completion on")
- end
- end,
- }),
- --["<CR>"] = cmp.mapping({
- -- i = function(fallback)
- -- if cmp.visible() then
- -- cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
- -- require("user.utils").toggle_completion()
- -- else
- -- fallback()
- -- end
- -- end,
- --}),
-
--- ["<C-e>"] = cmp.mapping({
--- i = function()
--- if cmp.visible() then
--- require("notify")("visible")
--- cmp.abort()
--- else
--- require("notify")("not visible")
--- cmp.complete()
--- end
--- end,
--- c = function()
--- if cmp.visible() then
--- require("notify")("visible")
--- cmp.close()
--- else
--- require("notify")("not visible")
--- cmp.complete()
--- end
--- end,
--- }),
- --['<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 = "nvim_lua" },
- { name = "luasnip" },
- --{ name = 'luasnip', option = { use_show_condition = false } },
- { name = "gh_issues" },
- { name = "nvim_lsp", max_item_count = 6 },
- { name = "nvim_lua" },
- --{ name = "luasnip" },
- --{ name = "luasnip", keyword_length = 4 },
- --{ name = "buffer", keyword_length = 3 },
- { name = "path" },
- { name = "buffer", max_item_count = 6 },
- --{ name = "buffer", option = { get_bufnrs = function()
- -- return vim.api.nvim_list_bufs()
- --end
- --}},
- { name = "cmp_git"},
- { name = "spell"},
- { name = "zsh" },
- { name = "treesitter" },
- { name = "calc" },
- { name = "nvim_lsp_signature_help" },
- --{ name = "cmdline" },
- --{ name = 'treesitter' },
- --{ name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=] }, --exclamation mark hangs a bit without this
- --{name = 'luasnip', keyword_length = 2},
- }),
- formatting = {
- --formatting = {
- --local icons = kind_icons
- --format = function(entry, vim_item)
- ----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",
- --buffer = "[buf]",
- --nvim_lsp = "[LSP]",
- --nvim_lua = "[api]",
- --path = "[path]",
- --luasnip = "[snip]",
- --cmdline = "[cmd]",
- --gh_issues = "[issues]",
- --})[entry.source.name]
- --return vim_item
- --end,
- format = lspkind.cmp_format {
- with_text = true,
- menu = {
- nvim_lsp = "[LSP]",
- luasnip = "[snip]",
- buffer = "[buf]",
- nvim_lua = "[api]",
- path = "[path]",
- gh_issues = "[issues]",
- spell = "[spell]",
- zsh = "[zsh]",
- treesitter = "[treesitter]",
- calc = "[calc]",
- nvim_lsp_signature_help = "[signature]",
- cmdline = "[cmd]"
-
- },
- },
- --},
-
- --
- --
- --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, -- this feature conflicts with copilot.vim's preview.
- hl_group = 'Nontext',
- --native_menu = false,
- },
-
- 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 = {
- ["<C-p>"] = cmp.mapping(cmp.mapping.select_prev_item(), { 'i', 'c' }),
- ["<C-n>"] = cmp.mapping(cmp.mapping.select_next_item(), { 'i', 'c' }),
- ["<C-y>"] = cmp.mapping(cmp.mapping.confirm({ select = true }), { 'i', 'c' }),
- ["<C-e>"] = cmp.mapping(cmp.mapping.close(), { 'i', 'c' }),
- ["<C-u>"] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }),
- ["<C-d>"] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }),
- ["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
- --["<C-k>"] = cmp.mapping.select_prev_item(),
- --["<C-j>"] = cmp.mapping.select_next_item(),
- --['<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(),
- },
-
- sources = cmp.config.sources({
- { name = "path" },
- }, {
- --{ name = "cmdline" },
- { name = "cmdline", keyword_pattern = [=[[^[:blank:]\!]*]=], keyword_length = 3 },
- })
-})
-
-
diff --git a/config/nvim/lua/plugins/colorizer.lua b/config/nvim/lua/plugins/colorizer.lua
deleted file mode 100644
index 14d25e2..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/colorscheme.lua b/config/nvim/lua/plugins/colorscheme.lua
deleted file mode 100644
index 1f76a40..0000000
--- a/config/nvim/lua/plugins/colorscheme.lua
+++ /dev/null
@@ -1,39 +0,0 @@
--- Colorscheme
--- ayu gruvbox molokai onedark srcery everblush vscode edge nightfly doom-one
-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 TabLineSel guibg=none guifg=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 Title guibg=none gui=bold")
---vim.api.nvim_command("highlight WinSeparator guibg=none 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 MsgSeparator 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")
-vim.cmd[[
-au WinEnter * setl winhl=WinSeparator:WinSeparatorA
-au WinLeave * setl winhl=WinSeparator:WinSeparator
-]]
-require("notify").setup({
- background_colour = "#000000",
-})
diff --git a/config/nvim/lua/plugins/git.lua b/config/nvim/lua/plugins/git.lua
deleted file mode 100644
index 963f7f9..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/gitsigns.lua b/config/nvim/lua/plugins/gitsigns.lua
deleted file mode 100644
index 53d1a1e..0000000
--- a/config/nvim/lua/plugins/gitsigns.lua
+++ /dev/null
@@ -1 +0,0 @@
-require('gitsigns').setup {}
diff --git a/config/nvim/lua/plugins/heirline.lua b/config/nvim/lua/plugins/heirline.lua
deleted file mode 100644
index c05844b..0000000
--- a/config/nvim/lua/plugins/heirline.lua
+++ /dev/null
@@ -1,1206 +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 LeftSpace = { provider = "" }
-local RightSpace = { provider = "" }
-local RightSpace2 = { provider = "" }
-local RightSpace3 = { provider = "" }
-local Fill = { provider = "%=", hl = { bg = colors.nobg } }
-local LeftSep = { provider = "" }
-local RightSep = { provider = "" }
-
-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 = {
- init = 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 },
- flexible = 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 } })
---local mysurroundedcomponent = {
---{provider='', hl = {...}},
---{<your component>},
---{provider = '>>>', hl = {...}}
---}
-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 } },
- --{ LeftSep, hl = function(self)
- -- return { fg = self.mode_colors[self.mode], bg = utils.get_highlight("statusline").bg, bold = true, }
- -- end,
- --},
- { 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 },
----- hl = "Comment",
---}
-
--- 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/config/nvim/lua/plugins/lsp.lua b/config/nvim/lua/plugins/lsp.lua
deleted file mode 100644
index 4c5cf70..0000000
--- a/config/nvim/lua/plugins/lsp.lua
+++ /dev/null
@@ -1,611 +0,0 @@
-
-local fn = vim.fn
-local keymap = vim.keymap
-
-local utils = require("user.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')
---vim.lsp.protocol.CompletionItemKind = {}
- -- 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.api.nvim_set_keymap('n', '<leader>dd', '<cmd>lua vim.diagnostic.setloclist()<CR>', { noremap = true, silent = true })
- --nnoremap("gI", vim.lsp.buf.incoming_calls, opts)
- --
- --nnoremap("<leader>cs", vim.lsp.buf.document_symbol, opts)
- --nnoremap("<leader>cw", vim.lsp.buf.workspace_symbol, opts)
- --nnoremap("<leader>rf", vim.lsp.buf.formatting, opts)
- --require("which-key").register {
- -- ["<leader>rf"] = "lsp: format buffer",
- -- ["<leader>ca"] = "lsp: code action",
- -- ["<leader>gd"] = "lsp: go to type definition",
- -- ["gr"] = "lsp: references",
- -- ["gi"] = "lsp: implementation",
- -- ["gI"] = "lsp: incoming calls",
- --}
---end
-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
-
--- Highlight symbol under cursor
-
--- Add the following to your on_attach (this allows checking server capabilities to avoid calling invalid commands.
-
-if client.server_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
-
---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 CursorHoldI <buffer> lua vim.lsp.buf.document_highlight()
--- autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()
--- augroup END
--- ]])
--- end
---
- -- Only highlight if compatible with the language
--- if client.resolved_capabilities.document_highlight then
--- vim.cmd('augroup LspHighlight')
--- vim.cmd('autocmd!')
--- vim.cmd('autocmd CursorHold <buffer> lua vim.lsp.buf.document_highlight()')
--- vim.cmd('autocmd CursorMoved <buffer> lua vim.lsp.buf.clear_references()')
--- vim.cmd('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
--- suppress error messages from lang servers
-end
-vim.lsp.set_log_level("debug")
-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, {focusable = false,})]]
---vim.cmd ([[ noremap <leader>a :autocmd! CursorHold,CursorHoldI <CR>]])
-
---vim.cmd [[ noremap <leader>a :autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})<CR>]]
---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 <CR>]])
--- --vim.diagnostic.open_float(nil, {focus=false})
--- else
--- vim.o.updatetime = 250
--- vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
--- --vim.diagnostic.hide()
--- --vim.diagnostic.disable()
--- end
---end
---vim.keymap.set("n", "<leader>a", toggle_diagnostics)
-
---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})
- --vim.o.updatetime = 250
-
--- vim.o.updatetime = 250
-----vim.o.updatetime = 250
-----vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})]]
-----local diagnostics_active = true
---local toggle_diagnostics = function()
--- --diagnostics_active = not diagnostics_active
--- --if diagnostics_active then
--- --if vim.diagnostic.open_float() == true then
--- if vim.api.nvim_exec([[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]]
---, true) then
--- vim.api.nvim_exec([[autocmd! CursorHold,CursorHoldI ]]
---, true)
--- else
--- vim.o.updatetime = 250
--- vim.api.nvim_exec([[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]], true)
--- end
---end
---vim.keymap.set("n", "<leader>a", toggle_diagnostics)
---
---vim.api.nvim_create_autocmd('CursorHold', {
--- vim.diagnostic.open_float(nil, {focus=false})
---
---})
-
-vim.o.updatetime = 250
-vim.cmd[[
-augroup OpenFloat
- autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,})
-
-augroup END
-]]
-vim.cmd([[
-function! ToggleDiagnosticsOpenFloat()
- " Switch the toggle variable
- let g:DiagnosticsOpenFloat = !get(g:, 'DiagnosticsOpenFloat', 1)
-
- " Reset group
- augroup OpenFloat
- autocmd!
- augroup END
-
- " Enable if toggled on
- if g:DiagnosticsOpenFloat
- augroup OpenFloat
- autocmd! CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focusable = false,}) print ("vim.diagnostic.open_float enabled...")
- augroup END
- endif
-endfunction
-nnoremap <leader>o :call ToggleDiagnosticsOpenFloat()<CR>\|:echom "vim.diagnostic.open_float disabled . . ."<CR>
-]])
-
---vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(
--- vim.lsp.handlers.hover, {
--- signs = true,
--- underline = false,
--- virtual_text = false,
--- show_diagnostic_autocmds = {'InsertLeave', 'TextChanged'},
--- diagnostic_delay = 500
--- })
---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
---]]
-
diff --git a/config/nvim/lua/plugins/lspsaga.lua b/config/nvim/lua/plugins/lspsaga.lua
deleted file mode 100644
index 4161ce9..0000000
--- a/config/nvim/lua/plugins/lspsaga.lua
+++ /dev/null
@@ -1,46 +0,0 @@
-return function()
- local saga = require "lspsaga"
-
- saga.init_lsp_saga {
- use_saga_diagnostic_sign = false,
- finder_action_keys = {
- vsplit = "v",
- split = "s",
- quit = { "q", "<ESC>" },
- },
- code_action_icon = "💡",
- code_action_prompt = {
- enable = false,
- sign = false,
- virtual_text = false,
- },
- }
-
- require("as.highlights").highlight("LspSagaLightbulb", { guifg = "NONE", guibg = "NONE" })
-
--- as.vnoremap("<leader>ca", ":<c-u>lua require('lspsaga.codeaction').range_code_action()<CR>")
--- as.inoremap("<c-k>", "<cmd>lua require('lspsaga.signaturehelp').signature_help()<CR>")
--- as.nnoremap("K", "<cmd>lua require('lspsaga.hover').render_hover_doc()<CR>")
--- -- scroll down hover doc
--- as.nnoremap("<C-f>", "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR>")
--- -- scroll up hover doc
--- as.nnoremap("<C-b>", "<cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR>")
-
- require("which-key").register {
- ["<leader>rn"] = { require("lspsaga.rename").rename, "lsp: rename" },
- ["<leader>ca"] = { require("lspsaga.codeaction").code_action, "lsp: code action" },
- ["gp"] = { require("lspsaga.provider").preview_definition, "lsp: preview definition" },
- ["gh"] = { require("lspsaga.provider").lsp_finder, "lsp: finder" },
- -- jump diagnostic
- ["]c"] = { require("lspsaga.diagnostic").lsp_jump_diagnostic_prev, "lsp: previous diagnostic" },
- ["[c"] = { require("lspsaga.diagnostic").lsp_jump_diagnostic_next, "lsp: next diagnostic" },
- }
-
- -- augroup("LspSagaCursorCommands", {
- -- {
- -- events = { "CursorHold" },
- -- targets = { "*" },
- -- command = "lua require('lspsaga.diagnostic').show_cursor_diagnostics()",
- -- },
- -- })
-end
diff --git a/config/nvim/lua/plugins/luasnip.lua b/config/nvim/lua/plugins/luasnip.lua
deleted file mode 100644
index de2177e..0000000
--- a/config/nvim/lua/plugins/luasnip.lua
+++ /dev/null
@@ -1,69 +0,0 @@
-local ls = require "luasnip" --
-
-require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" })
---local options = {
-ls.config.set_config {
- history = true,
- updateevents = "TextChanged,TextChangedI",
- -- Autosnippets:
- enable_autosnippets = true, --
- ext_opts = { --
- [require("luasnip.util.types").choiceNode] = {
- active = {
- virt_text = { { "«", "GruvboxOrange" } },
- },
- },
- },
-}
-
---local keymap = vim.keymap
---local keymap = vim.api.nvim_set_keymap
-local keymap = vim.keymap.set
---keymap('i', '<c-f>', 'luasnip#expand_or_jumpable() ? "<Plug>luasnip-expand-or-jump" : "<Tab>"', {expr = true, silent = true})
-keymap({ "i", "s"}, "<c-f>", function()
- if ls.expand_or_jumpable() then
- ls.expand()
- end
-end)
-
-keymap({ "i", "s"}, "<c-j>", function()
- if ls.jumpable(1) then
- ls.jump(1)
- end
-end)
-
-keymap({ "i", "s"}, "<c-k>", function()
- if ls.jumpable(-1) then
- ls.jump(-1)
- end
-end)
-
-keymap({ "i", "s"}, "<c-c>", function()
- if ls.choice_active() then
- ls.change_choice(1)
- end
-end)
-
-keymap({ "i", "s"}, "<a-c>", function()
- if ls.choice_active() then
- ls.change_choice(-1)
- end
-end)
-
--- Character class Matching
--- %a letters (A-Z, a-z)
--- %c control characters (\n, \t, \r, ...)
--- %d digits (0-9)
--- %l lower-case letter (a-z)
--- %p punctuation characters (!, ?, &, ...)
--- %s space characters
--- %u upper-case letters
--- %w alphanumeric characters (A-Z, a-z, 0-9)
--- %x hexadecimal digits (\3, \4, ...)
--- %z the character with representation 0
--- . Matches any character
-
-
-
-
-
diff --git a/config/nvim/lua/plugins/mason.lua b/config/nvim/lua/plugins/mason.lua
deleted file mode 100644
index c0fdca6..0000000
--- a/config/nvim/lua/plugins/mason.lua
+++ /dev/null
@@ -1,61 +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)
-
-
-
---local mason = require("mason")
---
---local options = {
--- ensure_installed = { "lua-language-server" }, -- not an option from mason.nvim
---
--- ui = {
--- icons = {
--- package_pending = " ",
--- package_installed = " ",
--- package_uninstalled = " ﮊ",
--- },
---
--- keymaps = {
--- toggle_server_expand = "<CR>",
--- install_server = "i",
--- update_server = "u",
--- check_server_version = "c",
--- update_all_servers = "U",
--- check_outdated_servers = "C",
--- uninstall_server = "X",
--- cancel_installation = "<C-c>",
--- },
--- },
---
--- max_concurrent_installers = 10,
---}
---
---
---
---mason.setup(options)
-
diff --git a/config/nvim/lua/plugins/modify-blend.lua b/config/nvim/lua/plugins/modify-blend.lua
deleted file mode 100644
index 7c48815..0000000
--- a/config/nvim/lua/plugins/modify-blend.lua
+++ /dev/null
@@ -1,40 +0,0 @@
-local ui = vim.api.nvim_list_uis()[1]
-
-local bufnr = vim.api.nvim_create_buf(false, true)
-local win = vim.api.nvim_open_win(bufnr, true, {
- relative = "editor",
- width = ui.width,
- height = ui.height,
- row = 10,
- col = 10,
- style = "minimal",
-})
-
-vim.api.nvim_win_set_option(win, "winblend", 1)
-
-local blend_start = 15
-local offset = 1
-
-CANCEL = false
-local timer = vim.loop.new_timer()
-timer:start(
- 0,
- 50,
- vim.schedule_wrap(function()
- blend_start = blend_start + offset
-
- if blend_start > 90 then
- offset = -1
- elseif blend_start < 10 then
- offset = 1
- end
-
- if CANCEL or not vim.api.nvim_win_is_valid(win) then
- timer:close()
- timer:stop()
- return
- end
-
- vim.cmd([[highlight NormalFloat blend=]] .. tostring(blend_start))
- end)
-)
diff --git a/config/nvim/lua/plugins/neoscroll.lua b/config/nvim/lua/plugins/neoscroll.lua
deleted file mode 100644
index d122584..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/null-ls.lua b/config/nvim/lua/plugins/null-ls.lua
deleted file mode 100644
index 4573a54..0000000
--- a/config/nvim/lua/plugins/null-ls.lua
+++ /dev/null
@@ -1,44 +0,0 @@
-local null_ls_status_ok, null_ls = pcall(require, "null-ls")
-if not null_ls_status_ok then
- return
-end
---[[null-ls.]]
---
--- null-language-server i.e. a sort of language server which does not provide any services such as formatting and diagnostics you expect from a language server. Instead it will need to install corresponding external “sources” and then hook these sources into the neovim lsp client through null-ls.
---
-
-null_ls.setup({
- debug = true,
- sources = {
- require("null-ls").builtins.formatting.stylua, -- lua formatting
- require("null-ls").builtins.formatting.prettier.with({ -- markdown, html/js formatting
- filetypes = { "html", "css", "javascript", "javascriptreact", "markdown", "json", "yaml" },
- }),
- require("null-ls").builtins.formatting.shfmt.with({ -- shell script formatting
- filetypes = { "bash", "zsh", "sh" },
- }),
- require("null-ls").builtins.diagnostics.shellcheck, -- shell script diagnostics
- require("null-ls").builtins.code_actions.shellcheck, -- shell script code actions
- --require("null-ls").builtins.formatting.black,
- --require("null-ls").builtins.formatting.prettierd,
- --require("null-ls").builtins.diagnostics.luacheck,
- --require("null-ls").builtins.diagnostics.eslint,
- --require("null-ls").builtins.diagnostics.eslint_d,
- --require("null-ls").builtins.diagnostics.mdl,
- --require("null-ls").builtins.diagnostics.vint,
- --require("null-ls").builtins.codeactions.eslint_d,
- --require("null-ls").builtins.completion.spell,
- },
- on_attach = function(client, bufnr)
- if client.server_capabilities.document_formatting then
- local group = vim.api.nvim_create_augroup("NullLsFormatting", { clear = true })
- vim.api.nvim_create_autocmd("BufWritePre", {
- callback = function()
- vim.lsp.buf.formatting_sync(nil, 4000)
- end,
- buffer = bufnr,
- group = group,
- })
- end
- end,
-})
diff --git a/config/nvim/lua/plugins/nvim-tree.lua b/config/nvim/lua/plugins/nvim-tree.lua
deleted file mode 100644
index a1e10e0..0000000
--- a/config/nvim/lua/plugins/nvim-tree.lua
+++ /dev/null
@@ -1,69 +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") },
- { key = "u", action = "dir_up" },
- },
- },
- },
-})
diff --git a/config/nvim/lua/plugins/prettier.lua b/config/nvim/lua/plugins/prettier.lua
deleted file mode 100644
index 05d4665..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/scripts/lsp-ext.lua b/config/nvim/lua/plugins/scripts/lsp-ext.lua
deleted file mode 100644
index c4378c6..0000000
--- a/config/nvim/lua/plugins/scripts/lsp-ext.lua
+++ /dev/null
@@ -1,48 +0,0 @@
---
--- lsp-ext.lua
-
-
-M = {}
-
-function M.preview_location(location, context, before_context)
- -- location may be LocationLink or Location (more useful for the former)
- context = context or 15
- before_context = before_context or 0
- local uri = location.targetUri or location.uri
- if uri == nil then
- return
- end
- local bufnr = vim.uri_to_bufnr(uri)
- if not vim.api.nvim_buf_is_loaded(bufnr) then
- vim.fn.bufload(bufnr)
- end
- local range = location.targetRange or location.range
- local contents =
- vim.api.nvim_buf_get_lines(bufnr, range.start.line - before_context, range["end"].line + 1 + context, false)
- local filetype = vim.api.nvim_buf_get_option(bufnr, "filetype")
- return vim.lsp.util.open_floating_preview(contents, filetype)
-end
-
-function M.preview_location_callback(_, method, result)
- local context = 15
- if result == nil or vim.tbl_isempty(result) then
- print("No location found: " .. method)
- return nil
- end
- if vim.tbl_islist(result) then
- M.floating_buf, M.floating_win = M.preview_location(result[1], context)
- else
- M.floating_buf, M.floating_win = M.preview_location(result, context)
- end
-end
-
-function M.peek_definition()
- if vim.tbl_contains(vim.api.nvim_list_wins(), M.floating_win) then
- vim.api.nvim_set_current_win(M.floating_win)
- else
- local params = vim.lsp.util.make_position_params()
- return vim.lsp.buf_request(0, "textDocument/definition", params, M.preview_location_callback)
- end
-end
-
-return M
diff --git a/config/nvim/lua/plugins/scripts/setcolors.lua b/config/nvim/lua/plugins/scripts/setcolors.lua
deleted file mode 100644
index 605bc84..0000000
--- a/config/nvim/lua/plugins/scripts/setcolors.lua
+++ /dev/null
@@ -1,121 +0,0 @@
-vim.cmd([[
-" Change the color scheme from a list of color scheme names.
-" Version 2010-09-12 from http://vim.wikia.com/wiki/VimTip341
-" Press key:
-" F8 next scheme
-" Shift-F8 previous scheme
-" Alt-F8 random scheme
-" Set the list of color schemes used by the above (default is 'all'):
-" :SetColors all (all $VIMRUNTIME/colors/*.vim)
-" :SetColors my (names built into script)
-" :SetColors blue ayu ron (these schemes)
-" :SetColors (display current scheme names)
-" Set the current color scheme based on time of day:
-" :SetColors now
-if v:version < 700 || exists('loaded_setcolors') || &cp
- finish
-endif
-
-let loaded_setcolors = 1
-let s:mycolors = ['everblush', 'ayu', 'gruvbox', 'molokai', 'onedark', 'srcery'] " colorscheme names that we use to set color
-
-" Set list of color scheme names that we will use, except
-" argument 'now' actually changes the current color scheme.
-function! s:SetColors(args)
- if len(a:args) == 0
- echo 'Current color scheme names:'
- let i = 0
- while i < len(s:mycolors)
- echo ' '.join(map(s:mycolors[i : i+4], 'printf("%-14s", v:val)'))
- let i += 5
- endwhile
- elseif a:args == 'all'
- let paths = split(globpath(&runtimepath, 'colors/*.vim'), "\n")
- let s:mycolors = uniq(sort(map(paths, 'fnamemodify(v:val, ":t:r")')))
- echo 'List of colors set from all installed color schemes'
- elseif a:args == 'my'
- let c1 = 'default srcery everblush'
- let c2 = 'gruvbox onedark'
- let c3 = 'ayu molokai'
- let s:mycolors = split(c1.' '.c2.' '.c3)
- echo 'List of colors set from built-in names'
- elseif a:args == 'now'
- call s:HourColor()
- else
- let s:mycolors = split(a:args)
- echo 'List of colors set from argument (space-separated names)'
- endif
-endfunction
-
-command! -nargs=* SetColors call s:SetColors('<args>')
-
-" Set next/previous/random (how = 1/-1/0) color from our list of colors.
-" The 'random' index is actually set from the current time in seconds.
-" Global (no 's:') so can easily call from command line.
-function! NextColor(how)
- call s:NextColor(a:how, 1)
-endfunction
-
-" Helper function for NextColor(), allows echoing of the color name to be
-" disabled.
-function! s:NextColor(how, echo_color)
- if len(s:mycolors) == 0
- call s:SetColors('all')
- endif
- if exists('g:colors_name')
- let current = index(s:mycolors, g:colors_name)
- else
- let current = -1
- endif
- let missing = []
- let how = a:how
- for i in range(len(s:mycolors))
- if how == 0
- let current = localtime() % len(s:mycolors)
- let how = 1 " in case random color does not exist
- else
- let current += how
- if !(0 <= current && current < len(s:mycolors))
- let current = (how>0 ? 0 : len(s:mycolors)-1)
- endif
- endif
- try
- execute 'colorscheme '.s:mycolors[current]
- break
- catch /E185:/
- call add(missing, s:mycolors[current])
- endtry
- endfor
- redraw
- if len(missing) > 0
- echo 'Error: colorscheme not found:' join(missing)
- endif
- if (a:echo_color)
- echo g:colors_name
- endif
-endfunction
-
-nnoremap <leader>cn :call NextColor(1)<CR>
-nnoremap <leader>cp :call NextColor(-1)<CR>
-nnoremap <leader>cc :call NextColor(0)<CR>
-
-" Set color scheme according to current time of day.
-function! s:HourColor()
- let hr = str2nr(strftime('%H'))
- if hr <= 3
- let i = 0
- elseif hr <= 7
- let i = 1
- elseif hr <= 14
- let i = 2
- elseif hr <= 18
- let i = 3
- else
- let i = 4
- endif
- let nowcolors = 'srcery onedark molokai'
- execute 'colorscheme '.split(nowcolors)[i]
- redraw
- echo g:colors_name
-endfunction
-]])
diff --git a/config/nvim/lua/plugins/scripts/toggleLsp.lua b/config/nvim/lua/plugins/scripts/toggleLsp.lua
deleted file mode 100644
index 28af698..0000000
--- a/config/nvim/lua/plugins/scripts/toggleLsp.lua
+++ /dev/null
@@ -1,40 +0,0 @@
-local M = {}
-
-local check_function = function(bufnr, _)
- local ok, result = pcall(vim.api.nvim_buf_get_var, bufnr, 'lsp_enabled')
- -- No buffer local variable set, so just enable by default
- if not ok then
- return true
- end
-
- return result
-end
-
-vim.lsp.handlers["textDocument/publishDiagnostics"] =
- vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
- underline = check_function,
- virtual_text = check_function,
- signs = check_function
- })
-
-function M.Enable()
- vim.b.lsp_enabled = true
-end
-
-function M.Disable()
- vim.b.lsp_enabled = false
-end
-
-function M.Toggle()
- if vim.b.lsp_enabled == false then
- M.Enable()
- else
- M.Disable()
- end
-end
-
-vim.cmd [[
- command! -nargs=* ToggleLsp lua require'lsp.toggle'.Toggle()
-]]
-
-return M
diff --git a/config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua
deleted file mode 100644
index f878b77..0000000
--- a/config/nvim/lua/plugins/telescope.lua
+++ /dev/null
@@ -1,357 +0,0 @@
-local M = {}
-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 themes = require("telescope.themes")
---local utils = require("telescope.utils")
-local actions = require("telescope.actions")
---local action_state = require("telescope.actions.state")
---local layout_actions = require("telescope.actions.layout")
-
-telescope.load_extension("fzf")
---telescope.load_extension("file_browser")
-require("telescope").load_extension "file_browser"
-require('telescope').load_extension('changed_files')
---require("telescope").load_extension("file_browser")
-local fb_actions = require("telescope").extensions.file_browser.actions
---telescope.load_extension('media_files')
-
-telescope.setup({
- defaults = {
- vimgrep_arguments = {
- "rg",
- "--color=never",
- "--no-heading",
- "--with-filename",
- "--line-number",
- "--column",
- "--smart-case",
- "--hidden",
- "--fixed-strings",
- "--trim",
- },
- prompt_prefix = " ",
- selection_caret = " ",
- entry_prefix = " ",
- path_display = { "tail" },
- --path_display = { "truncate" },
- --path_display = { "smart" },
- file_ignore_patterns = {
- "packer_compiled.lua",
- "%.DS_Store",
- "%.git/",
- "%.spl",
- "%.log",
- "%[No Name%]", -- new files / sometimes folders (netrw)
- "/$", -- ignore folders (netrw)
- "node_modules",
- "%.png",
- "%.zip",
- "%.pxd",
- "^.vim/",
- "^.local/",
- "^.cache/",
- "^downloads/",
- --"^node_modules/",
- --"^undodir/",
- },
- 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,
- ["<Esc>"] = actions.close, -- close w/ one esc
- --["<Esc>"] = "close", -- close w/ one esc
- ["<?>"] = actions.which_key, -- keys from pressing <C-/>
-
- ["<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-/>
- --["<C-o>"] = 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,
- },
-
- n = {
- ["<esc>"] = actions.close,
- ["<q>"] = actions.close,
- ["<CR>"] = actions.select_default,
- ["<C-x>"] = actions.select_horizontal,
- ["<C-y>"] = 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,
- --["<C-o>"] = 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,
- },
- },
- },
- preview = {
- filesize_limit = 3,
- timeout = 250,
- },
- selection_strategy = "reset",
- sorting_strategy = "ascending",
- scroll_strategy = "limit",
- color_devicons = true,
- layout_strategy = 'horizontal',
- layout_config = {
- horizontal = {
- height = 0.95,
- preview_cutoff = 70,
- width = 0.92,
- preview_width = {0.55, max = 50}
- },
- bottom_pane = {
- height = 12,
- preview_cutoff = 70,
- prompt_position = "bottom",
- },
- },
- pickers = {
- live_grep = {
- disable_coordinates = true,
- layout_config = {
- horizontal = {
- preview_width = 0.55,
- },
- },
- },
- },
- --pickers = {
- --lsp_references = {
- -- prompt_prefix='⬅️',
- -- show_line=false,
- -- trim_text=true,
- -- include_declaration=false,
- -- initial_mode = "normal",
- --},
- --lsp_definitions = {
- -- prompt_prefix='➡️',
- -- show_line=false,
- -- trim_text=true,
- -- initial_mode = "normal",
- --},
- --lsp_document_symbols = {
- -- prompt_prefix='* ',
- -- show_line = false,
- --},
- --treesitter = {
- -- prompt_prefix=' ',
- -- show_line = false,
- --},
- --find_files = {
- -- cwd='%:p:h',
- -- prompt_prefix=' ',
- -- hidden = true,
- -- follow = true,
- --},
- --keymaps = { prompt_prefix='? ' },
- --oldfiles = { prompt_prefix=' ' },
- --highlights = { prompt_prefix=' ' },
- --git_files = {
- -- prompt_prefix=' ',
- -- show_untracked = true,
- -- path_display = { "tail" },
- --},
- --buffers = {
- -- prompt_prefix=' ',
- -- ignore_current_buffer = true,
- -- initial_mode = "normal",
- -- sort_mru = true,
- --},
- --live_grep = {
- -- cwd='%:p:h',
- -- disable_coordinates=true,
- -- prompt_title='Search in Folder',
- -- prompt_prefix=' ',
- --},
- --spell_suggest = {
- -- initial_mode = "normal",
- -- prompt_prefix = "暈",
- -- theme = "cursor",
- -- layout_config = { cursor = { width = 0.3 } }
- --},
- --colorscheme = {
- -- enable_preview = true,
- -- prompt_prefix = '',
- -- results_title = '',
- -- layout_strategy = "bottom_pane",
- --},
- --},
-
- 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,
- --["<C-h>"] = fb_actions.goto_parent_dir,
- },
- ["n"] = {
- -- your custom normal mode mappings
- ["N"] = fb_actions.create,
- --["<C-h>"] = fb_actions.goto_parent_dir,
- --["/"] = function()
- -- vim.cmd("startinsert")
- --end,
- },
- },
- },
- --["ui-select"] = { -- mostly code actions
- -- initial_mode = "normal",
- -- prompt_prefix = " ",
- -- results_title = '',
- -- layout_strategy = "bottom_pane",
- -- sorting_strategy = "ascending",
- -- layout_config = { bottom_pane = { height = 8 } },
- --},
- ["ui-select"] = {
- require("telescope.themes").get_dropdown({}),
- },
- },
-})
-
---------------------------------------------------------------------------------
-
--- have to be loaded after telescope config
---require("telescope").load_extension("ui-select") -- use telescope for selections like code actions
-telescope.load_extension("ui-select")
-
-function M.find_configs()
- require("telescope.builtin").find_files {
- hidden = true,
- no_ignore = false,
- prompt_title = " Find Configs",
- results_title = "Config Files",
- path_display = { "smart" },
- search_dirs = {
- "~/.config/nvim",
- "~/.config/zsh",
- "~/.config/tmux",
- "~/.config/X11",
- "~/.config/alacritty",
- "~/.config/bspwm",
- "~/.config/sxhkd",
- },
- -- cwd = "~/.config/nvim/",
- file_ignore_patterns = {
- "~/.config/nvim/startup.log",
- "packer_compiled.lua",
- "resurrect",
- "tmux/plugins",
- --"^~/.config/tmux/plugins",
- "%.txt",
- ".git",
- },
- layout_strategy = "horizontal",
- layout_config = { preview_width = 0.65, width = 0.75 },
- }
-end
-
-function M.grep_notes()
- local opts = {}
- opts.hidden = true
- opts.search_dirs = {
- "~/documents/notes/",
- }
- opts.prompt_prefix = "  "
- opts.prompt_title = " Grep Notes"
- opts.path_display = { "smart" }
- require("telescope.builtin").live_grep(opts)
-end
-
-function M.find_notes()
- require("telescope.builtin").find_files {
- prompt_title = " Find Notes",
- path_display = { "smart" },
- search_dirs = {
- "~/documents",
- },
- --cwd = "~documents/notes",
- layout_strategy = "horizontal",
- layout_config = { preview_width = 0.65, width = 0.75 },
- }
-end
-
-function M.file_explorer()
- require("telescope.builtin").file_browser({
- prompt_title = "File Browser",
- cwd = "~",
- layout_strategy = "horizontal",
- })
-end
-
-function M.grep_current_dir()
- local buffer_dir = require("telescope.utils").buffer_dir()
- local opts = {
- prompt_title = "Live Grep in " .. buffer_dir,
- cwd = buffer_dir,
- }
- require("telescope.builtin").live_grep(opts)
-end
-
-return M
diff --git a/config/nvim/lua/plugins/treesitter.lua b/config/nvim/lua/plugins/treesitter.lua
deleted file mode 100644
index b081ca3..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/web-devicons.lua b/config/nvim/lua/plugins/web-devicons.lua
deleted file mode 100644
index b8396bc..0000000
--- a/config/nvim/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/config/nvim/lua/plugins/zen-mode.lua b/config/nvim/lua/plugins/zen-mode.lua
deleted file mode 100644
index 7e52854..0000000
--- a/config/nvim/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 })