rewrite config from scratch (#1)
Makes all the plugins lazyload, remove plugins with duplicate uses and just general nit picks and improvements Reviewed-on: Relms/neovim-config#1
This commit is contained in:
parent
7005d5066c
commit
69181599a5
70 changed files with 558 additions and 1268 deletions
|
@ -1,7 +1,4 @@
|
||||||
# Neovim Config
|
# Neovim Config
|
||||||
To use this neovim config, run `git clone https://code.relms.dev/Relms/neovim-config ~/.config/nvim` to clone the config to your .config folder.
|
To use this neovim config, run `git clone https://code.relms.dev/Relms/neovim-config ~/.config/nvim` to clone the config to your .config folder.
|
||||||
|
|
||||||
When you open the config for the first time, you will get a packer.nvim window to open which will open all the required plugins. After that, close Neovim again and reopen it. It will then proceed to install a bunch of treesitter parsers. That is normal.
|
When you open the config for the first time, you will get a packer.nvim window to open which will open all the required plugins. After that, close Neovim again and reopen it.
|
||||||
|
|
||||||
## Using GitHub copilot
|
|
||||||
- TODO
|
|
||||||
|
|
36
init.lua
36
init.lua
|
@ -1,31 +1,5 @@
|
||||||
require("user.disable")
|
require("plugins.configs.impatient")
|
||||||
require("user.impatient")
|
require("core.disable")
|
||||||
require("user.options")
|
require("core.options")
|
||||||
require("user.keymaps")
|
require("core.keymaps")
|
||||||
require("user.plugins")
|
require("plugins.packer")
|
||||||
require("user.notify")
|
|
||||||
require("user.navic")
|
|
||||||
require("user.cmp")
|
|
||||||
require("user.lsp")
|
|
||||||
require("user.telescope")
|
|
||||||
require("user.autopairs")
|
|
||||||
require("user.comment")
|
|
||||||
require("user.gitsigns")
|
|
||||||
require("user.bufferline")
|
|
||||||
require("user.whitespace")
|
|
||||||
require("user.lualine")
|
|
||||||
require("user.toggleterm")
|
|
||||||
require("user.indentline")
|
|
||||||
require("user.legendary")
|
|
||||||
require("user.whichkey")
|
|
||||||
require("user.trouble")
|
|
||||||
require("user.colorizer")
|
|
||||||
require("user.discord")
|
|
||||||
require("user.spectre")
|
|
||||||
require("user.dap")
|
|
||||||
require("user.treesitter")
|
|
||||||
require("user.dressing")
|
|
||||||
require("user.cybu")
|
|
||||||
require("user.autocommands")
|
|
||||||
require("user.gps")
|
|
||||||
require("user.ufo")
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
-- Disable some builtin vim plugins
|
local default_plugins = {
|
||||||
local disabled_built_ins = {
|
|
||||||
"2html_plugin",
|
"2html_plugin",
|
||||||
"getscript",
|
"getscript",
|
||||||
"getscriptPlugin",
|
"getscriptPlugin",
|
||||||
|
@ -10,16 +9,24 @@ local disabled_built_ins = {
|
||||||
"netrwSettings",
|
"netrwSettings",
|
||||||
"netrwFileHandlers",
|
"netrwFileHandlers",
|
||||||
"matchit",
|
"matchit",
|
||||||
"matchparen",
|
|
||||||
"tar",
|
"tar",
|
||||||
"tarPlugin",
|
"tarPlugin",
|
||||||
"rrhelper",
|
"rrhelper",
|
||||||
|
"spellfile_plugin",
|
||||||
"vimball",
|
"vimball",
|
||||||
"vimballPlugin",
|
"vimballPlugin",
|
||||||
"zip",
|
"zip",
|
||||||
"zipPlugin",
|
"zipPlugin",
|
||||||
|
"tutor",
|
||||||
|
"rplugin",
|
||||||
|
"syntax",
|
||||||
|
"synmenu",
|
||||||
|
"optwin",
|
||||||
|
"compiler",
|
||||||
|
"bugreport",
|
||||||
|
"ftplugin",
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, plugin in pairs(disabled_built_ins) do
|
for _, plugin in pairs(default_plugins) do
|
||||||
vim.g["loaded_" .. plugin] = 1
|
vim.g["loaded_" .. plugin] = 1
|
||||||
end
|
end
|
|
@ -43,8 +43,8 @@ keymap("n", "<leader>fd", ":Telescope dap commands<CR>", opts)
|
||||||
-- Comment
|
-- Comment
|
||||||
keymap("n", "<leader>/", ":lua require('Comment').toggle()<CR>", opts)
|
keymap("n", "<leader>/", ":lua require('Comment').toggle()<CR>", opts)
|
||||||
|
|
||||||
-- Nvim-Tree
|
-- Neotree
|
||||||
keymap("n", "<leader>e", ":NvimTreeToggle<CR>", opts)
|
keymap("n", "<leader>e", ":Neotree toggle<CR>", opts)
|
||||||
|
|
||||||
-- Trouble
|
-- Trouble
|
||||||
keymap("n", "<leader>xx", ":Trouble<CR>", opts)
|
keymap("n", "<leader>xx", ":Trouble<CR>", opts)
|
|
@ -4,6 +4,7 @@ vim.opt.cmdheight = 2
|
||||||
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
||||||
vim.opt.conceallevel = 0
|
vim.opt.conceallevel = 0
|
||||||
vim.opt.fileencoding = "utf-8"
|
vim.opt.fileencoding = "utf-8"
|
||||||
|
vim.o.background = "dark"
|
||||||
vim.opt.hlsearch = true
|
vim.opt.hlsearch = true
|
||||||
vim.opt.ignorecase = true
|
vim.opt.ignorecase = true
|
||||||
vim.opt.mouse = "a"
|
vim.opt.mouse = "a"
|
||||||
|
@ -36,16 +37,16 @@ vim.opt.incsearch = true
|
||||||
vim.opt.colorcolumn = "120"
|
vim.opt.colorcolumn = "120"
|
||||||
vim.opt.list = true
|
vim.opt.list = true
|
||||||
vim.opt.listchars:append("lead:.")
|
vim.opt.listchars:append("lead:.")
|
||||||
vim.opt.winbar = "%{%v:lua.require'user.winbar'.get_winbar()%}"
|
|
||||||
vim.opt.foldcolumn = "2"
|
vim.opt.foldcolumn = "2"
|
||||||
vim.opt.foldlevel = 99
|
vim.opt.foldlevel = 99
|
||||||
vim.opt.foldlevelstart = -1
|
vim.opt.foldlevelstart = -1
|
||||||
vim.opt.foldenable = true
|
vim.opt.foldenable = true
|
||||||
vim.opt.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
|
vim.opt.fillchars = [[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]
|
||||||
|
|
||||||
vim.cmd("set whichwrap+=<,>,[,],h,l")
|
vim.cmd("set whichwrap+=<,>,[,],h,l")
|
||||||
vim.cmd([[set iskeyword+=-]])
|
vim.cmd("set iskeyword+=-")
|
||||||
vim.cmd([[set formatoptions-=cro]])
|
vim.cmd("set formatoptions-=cro")
|
||||||
|
vim.cmd("set foldmethod=expr")
|
||||||
|
vim.cmd("set foldexpr=nvim_treesitter#foldexpr()")
|
||||||
|
|
||||||
vim.cmd(
|
vim.cmd(
|
||||||
"let g:clipboard = { 'copy': { '+': 'xsel', '*': 'xsel' }, 'paste': { '+': 'xsel', '*': 'xsel' }, 'cache_enabled': 0 }"
|
"let g:clipboard = { 'copy': { '+': 'xsel', '*': 'xsel' }, 'paste': { '+': 'xsel', '*': 'xsel' }, 'cache_enabled': 0 }"
|
|
@ -1,8 +1,4 @@
|
||||||
local status_ok, alpha = pcall(require, "alpha")
|
local alpha = require("alpha")
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local dashboard = require("alpha.themes.dashboard")
|
local dashboard = require("alpha.themes.dashboard")
|
||||||
dashboard.section.header.val = {
|
dashboard.section.header.val = {
|
||||||
" ▟▙",
|
" ▟▙",
|
||||||
|
@ -27,16 +23,16 @@ local function footer()
|
||||||
local total_plugins = #vim.tbl_keys(packer_plugins)
|
local total_plugins = #vim.tbl_keys(packer_plugins)
|
||||||
local datetime = os.date("%d-%m-%Y %H:%M:%S")
|
local datetime = os.date("%d-%m-%Y %H:%M:%S")
|
||||||
local plugins_text = " "
|
local plugins_text = " "
|
||||||
.. total_plugins
|
.. total_plugins
|
||||||
.. " plugins"
|
.. " plugins"
|
||||||
.. " v"
|
.. " v"
|
||||||
.. vim.version().major
|
.. vim.version().major
|
||||||
.. "."
|
.. "."
|
||||||
.. vim.version().minor
|
.. vim.version().minor
|
||||||
.. "."
|
.. "."
|
||||||
.. vim.version().patch
|
.. vim.version().patch
|
||||||
.. " "
|
.. " "
|
||||||
.. datetime
|
.. datetime
|
||||||
|
|
||||||
-- Quote
|
-- Quote
|
||||||
local fortune = require("alpha.fortune")
|
local fortune = require("alpha.fortune")
|
10
lua/plugins/configs/autopairs.lua
Normal file
10
lua/plugins/configs/autopairs.lua
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
local autopairs = require("nvim-autopairs")
|
||||||
|
|
||||||
|
autopairs.setup({
|
||||||
|
check_ts = true,
|
||||||
|
disable_filetype = { "TelescopePrompt" },
|
||||||
|
})
|
||||||
|
|
||||||
|
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
|
||||||
|
local cmp = require("cmp")
|
||||||
|
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done({}))
|
55
lua/plugins/configs/cmp.lua
Normal file
55
lua/plugins/configs/cmp.lua
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
local cmp = require("cmp")
|
||||||
|
local lspkind = require("lspkind")
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn["vsnip#anonymous"](args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
completion = { completeopt = "menu,menuone,noinsert", keyword_length = 1 },
|
||||||
|
sources = {
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "nvim_lua" },
|
||||||
|
{ name = "vsnip" },
|
||||||
|
{ name = "buffer" },
|
||||||
|
{ name = "path" },
|
||||||
|
},
|
||||||
|
confirm_opts = {
|
||||||
|
behavior = cmp.ConfirmBehavior.Replace,
|
||||||
|
select = false,
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
documentation = {
|
||||||
|
border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
experimental = {
|
||||||
|
ghost_text = true,
|
||||||
|
native_menu = false,
|
||||||
|
},
|
||||||
|
formatting = {
|
||||||
|
fields = { "abbr", "kind", "menu" },
|
||||||
|
format = lspkind.cmp_format({
|
||||||
|
mode = "symbol_text",
|
||||||
|
maxwidth = 50,
|
||||||
|
before = function(entry, vim_item)
|
||||||
|
vim_item.menu = ({
|
||||||
|
nvim_lsp = "[LSP]",
|
||||||
|
nvim_lua = "[NVIM_LUA]",
|
||||||
|
vsnip = "[SNIPPET]",
|
||||||
|
buffer = "[BUFFER]",
|
||||||
|
path = "[PATH]",
|
||||||
|
})[entry.source.name]
|
||||||
|
return vim_item
|
||||||
|
end,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
["<C-e>"] = cmp.mapping.abort(),
|
||||||
|
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||||
|
}),
|
||||||
|
})
|
5
lua/plugins/configs/impatient.lua
Normal file
5
lua/plugins/configs/impatient.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
local present, impatient = pcall(require, "impatient")
|
||||||
|
|
||||||
|
if not present then
|
||||||
|
return
|
||||||
|
end
|
|
@ -43,18 +43,12 @@ end
|
||||||
|
|
||||||
local function attach_navic(client, bufnr)
|
local function attach_navic(client, bufnr)
|
||||||
vim.g.navic_silence = false
|
vim.g.navic_silence = false
|
||||||
local status_ok, navic = pcall(require, "nvim-navic")
|
local navic = require("nvim-navic")
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
navic.attach(client, bufnr)
|
navic.attach(client, bufnr)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function lsp_highlight_document(client)
|
local function lsp_highlight_document(client)
|
||||||
local status_ok, illuminate = pcall(require, "illuminate")
|
local illuminate = require("illuminate")
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
illuminate.on_attach(client)
|
illuminate.on_attach(client)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -84,17 +78,9 @@ end
|
||||||
-- Define Capabilities
|
-- Define Capabilities
|
||||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||||
capabilities.textDocument.foldingRange = {
|
|
||||||
dynamicRegistration = false,
|
|
||||||
lineFoldingOnly = true,
|
|
||||||
}
|
|
||||||
|
|
||||||
local status_ok, cmp_nvim_lsp = pcall(require, "cmp_nvim_lsp")
|
local cmp_lsp = require("cmp_nvim_lsp")
|
||||||
|
|
||||||
if not status_ok then
|
M.capabilities = cmp_lsp.update_capabilities(capabilities)
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
M.capabilities = cmp_nvim_lsp.update_capabilities(capabilities)
|
|
||||||
|
|
||||||
return M
|
return M
|
7
lua/plugins/configs/lsp/init.lua
Normal file
7
lua/plugins/configs/lsp/init.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
require("plugins.configs.lsp.handlers").setup()
|
||||||
|
require("plugins.configs.lsp.nlspsettings")
|
||||||
|
require("plugins.configs.lsp.nullls")
|
||||||
|
require("plugins.configs.lsp.mason")
|
||||||
|
require("plugins.configs.lsp.lspsaga")
|
||||||
|
require("plugins.configs.lsp.signature")
|
||||||
|
require("plugins.configs.lsp.lsplines")
|
7
lua/plugins/configs/lsp/lsplines.lua
Normal file
7
lua/plugins/configs/lsp/lsplines.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
local lines = require("lsp_lines")
|
||||||
|
|
||||||
|
lines.setup()
|
||||||
|
|
||||||
|
vim.diagnostic.config({
|
||||||
|
virtual_text = false,
|
||||||
|
})
|
3
lua/plugins/configs/lsp/lspsaga.lua
Normal file
3
lua/plugins/configs/lsp/lspsaga.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
local lspsaga = require("lspsaga")
|
||||||
|
|
||||||
|
lspsaga.init_lsp_saga({})
|
29
lua/plugins/configs/lsp/mason.lua
Normal file
29
lua/plugins/configs/lsp/mason.lua
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
local mason = require("mason")
|
||||||
|
local lspconfig = require("lspconfig")
|
||||||
|
local mason_lspconfig = require("mason-lspconfig")
|
||||||
|
|
||||||
|
mason.setup()
|
||||||
|
mason_lspconfig.setup()
|
||||||
|
|
||||||
|
lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, {
|
||||||
|
on_attach = require("plugins.configs.lsp.handlers").on_attach,
|
||||||
|
capabilities = require("plugins.configs.lsp.handlers").capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
mason_lspconfig.setup_handlers({
|
||||||
|
function(server_name)
|
||||||
|
lspconfig[server_name].setup({})
|
||||||
|
end,
|
||||||
|
["jsonls"] = function()
|
||||||
|
local schemastore = require("schemastore")
|
||||||
|
|
||||||
|
lspconfig.jsonls.setup({
|
||||||
|
settings = {
|
||||||
|
json = {
|
||||||
|
schemas = schemastore.json.schemas(),
|
||||||
|
validate = { enable = true },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
})
|
|
@ -1,7 +1,7 @@
|
||||||
local nlspsettings = require("nlspsettings")
|
local nlspsettings = require("nlspsettings")
|
||||||
|
|
||||||
nlspsettings.setup({
|
nlspsettings.setup({
|
||||||
config_home = vim.fn.stdpath("config") .. "/lua/user/lsp/settings/json",
|
config_home = vim.fn.stdpath("config") .. "/lua/plugins/configs/lsp/settings",
|
||||||
local_settings_dir = ".nlsp-settings",
|
local_settings_dir = ".nlsp-settings",
|
||||||
local_settings_root_markers = { ".git" },
|
local_settings_root_markers = { ".git" },
|
||||||
append_default_schemas = true,
|
append_default_schemas = true,
|
|
@ -1,7 +1,4 @@
|
||||||
local null_ls_status_ok, null_ls = pcall(require, "null-ls")
|
local null_ls = require("null-ls")
|
||||||
if not null_ls_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local formatting = null_ls.builtins.formatting
|
local formatting = null_ls.builtins.formatting
|
||||||
local code_actions = null_ls.builtins.code_actions
|
local code_actions = null_ls.builtins.code_actions
|
||||||
|
@ -11,13 +8,9 @@ null_ls.setup({
|
||||||
debug = false,
|
debug = false,
|
||||||
sources = {
|
sources = {
|
||||||
formatting.stylua,
|
formatting.stylua,
|
||||||
code_actions.eslint_d,
|
|
||||||
diagnostics.eslint_d,
|
|
||||||
formatting.eslint_d,
|
|
||||||
diagnostics.markdownlint,
|
diagnostics.markdownlint,
|
||||||
formatting.markdownlint,
|
formatting.markdownlint,
|
||||||
diagnostics.yamllint,
|
diagnostics.yamllint,
|
||||||
formatting.rustfmt,
|
|
||||||
diagnostics.actionlint,
|
diagnostics.actionlint,
|
||||||
},
|
},
|
||||||
})
|
})
|
3
lua/plugins/configs/lsp/settings/eslint.json
Normal file
3
lua/plugins/configs/lsp/settings/eslint.json
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"eslint.codeActionsOnSave.enable": true
|
||||||
|
}
|
5
lua/plugins/configs/lsp/settings/sumneko_lua.json
Normal file
5
lua/plugins/configs/lsp/settings/sumneko_lua.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"Lua.diagnostics.globals": [
|
||||||
|
"vim"
|
||||||
|
]
|
||||||
|
}
|
8
lua/plugins/configs/lsp/signature.lua
Normal file
8
lua/plugins/configs/lsp/signature.lua
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
local signature = require("lsp_signature")
|
||||||
|
|
||||||
|
local cfg = {
|
||||||
|
floating_window = false,
|
||||||
|
}
|
||||||
|
|
||||||
|
signature.setup(cfg)
|
||||||
|
signature.on_attach(cfg)
|
55
lua/plugins/configs/lualine.lua
Normal file
55
lua/plugins/configs/lualine.lua
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
local lualine = require("lualine")
|
||||||
|
local winbar = require("plugins.configs.winbar")
|
||||||
|
|
||||||
|
lualine.setup({
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
component_separators = { left = "", right = "" },
|
||||||
|
section_separators = { left = "", right = "" },
|
||||||
|
disabled_filetypes = { "alpha", "neo-tree" },
|
||||||
|
always_divide_middle = true,
|
||||||
|
refresh = {
|
||||||
|
winbar = 50,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = { "mode" },
|
||||||
|
lualine_b = { "branch", "diff", "diagnostics" },
|
||||||
|
lualine_c = { "filename", "filesize" },
|
||||||
|
lualine_x = { "encoding", "fileformat", "filetype" },
|
||||||
|
lualine_y = { "progress" },
|
||||||
|
lualine_z = { "location" },
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = { "filename" },
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = { "location" },
|
||||||
|
},
|
||||||
|
tabline = {
|
||||||
|
lualine_a = { "buffers" },
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = { "tabs" },
|
||||||
|
},
|
||||||
|
winbar = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = { winbar.get_fileicon() .. winbar.get_filename() },
|
||||||
|
lualine_c = { winbar.get_location },
|
||||||
|
lualine_x = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
},
|
||||||
|
inactive_winbar = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {},
|
||||||
|
lualine_x = {},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {},
|
||||||
|
},
|
||||||
|
})
|
18
lua/plugins/configs/neotree.lua
Normal file
18
lua/plugins/configs/neotree.lua
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
local neotree = require("neo-tree")
|
||||||
|
|
||||||
|
neotree.setup({
|
||||||
|
popup_border_style = "rounded",
|
||||||
|
filesystem = {
|
||||||
|
filtered_items = {
|
||||||
|
visible = true,
|
||||||
|
force_visible_in_empty_folder = false,
|
||||||
|
show_hidden_count = true,
|
||||||
|
hide_dotfiles = false,
|
||||||
|
hide_gitignored = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
source_selector = {
|
||||||
|
winbar = true,
|
||||||
|
statusline = true,
|
||||||
|
},
|
||||||
|
})
|
5
lua/plugins/configs/nightfox.lua
Normal file
5
lua/plugins/configs/nightfox.lua
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
local present, nightfox = pcall(require, "nightfox")
|
||||||
|
|
||||||
|
if present then
|
||||||
|
vim.cmd("colorscheme nordfox")
|
||||||
|
end
|
46
lua/plugins/configs/telescope.lua
Normal file
46
lua/plugins/configs/telescope.lua
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
local telescope = require("telescope")
|
||||||
|
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
|
||||||
|
telescope.setup({
|
||||||
|
defaults = {
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = " ",
|
||||||
|
entry_prefix = " ",
|
||||||
|
initial_mode = "insert",
|
||||||
|
selection_strategy = "reset",
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "bottom",
|
||||||
|
preview_width = 0.55,
|
||||||
|
results_width = 0.8,
|
||||||
|
},
|
||||||
|
vertical = {
|
||||||
|
mirror = false,
|
||||||
|
},
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
preview_cutoff = 120,
|
||||||
|
},
|
||||||
|
path_display = { "truncate" },
|
||||||
|
winblend = 0,
|
||||||
|
border = {},
|
||||||
|
borderchars = { "─", "│", "─", "│", "╭", "╮", "╯", "╰" },
|
||||||
|
color_devicons = true,
|
||||||
|
mappings = {
|
||||||
|
n = { ["q"] = require("telescope.actions").close },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extensions = {
|
||||||
|
fzf = {
|
||||||
|
fuzzy = true,
|
||||||
|
override_generic_sorter = true,
|
||||||
|
override_file_sorter = true,
|
||||||
|
case_mode = "ignore_case",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
telescope.load_extension("fzf")
|
|
@ -1,7 +1,4 @@
|
||||||
local status_ok, toggleterm = pcall(require, "toggleterm")
|
local toggleterm = require("toggleterm")
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
toggleterm.setup({
|
toggleterm.setup({
|
||||||
size = 20,
|
size = 20,
|
|
@ -1,18 +1,17 @@
|
||||||
local configs = require("nvim-treesitter.configs")
|
local treesitter = require("nvim-treesitter.configs")
|
||||||
configs.setup({
|
|
||||||
ensure_installed = "all",
|
treesitter.setup({
|
||||||
sync_install = false,
|
sync_install = false,
|
||||||
ignore_install = { "" },
|
auto_install = true,
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true,
|
enable = true,
|
||||||
disable = { "" },
|
|
||||||
additional_vim_regex_highlighting = true,
|
|
||||||
},
|
},
|
||||||
rainbow = {
|
rainbow = {
|
||||||
enable = true,
|
enable = true,
|
||||||
},
|
},
|
||||||
autopairs = {
|
autopairs = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
extended_mode = true,
|
||||||
},
|
},
|
||||||
context_commentstring = {
|
context_commentstring = {
|
||||||
enable = true,
|
enable = true,
|
|
@ -7,34 +7,11 @@ local function is_empty(s)
|
||||||
return s == nil or s == ""
|
return s == nil or s == ""
|
||||||
end
|
end
|
||||||
|
|
||||||
M.winbar_filetype_exclude = {
|
function M.get_filename()
|
||||||
"help",
|
|
||||||
"startify",
|
|
||||||
"dashboard",
|
|
||||||
"packer",
|
|
||||||
"neogitstatus",
|
|
||||||
"NvimTree",
|
|
||||||
"Trouble",
|
|
||||||
"alpha",
|
|
||||||
"lir",
|
|
||||||
"Outline",
|
|
||||||
"spectre_panel",
|
|
||||||
"toggleterm",
|
|
||||||
}
|
|
||||||
|
|
||||||
local excludes = function()
|
|
||||||
if vim.tbl_contains(M.winbar_filetype_exclude, vim.bo.filetype) then
|
|
||||||
vim.opt_local.winbar = nil
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
local function get_filename()
|
|
||||||
return "%#WinBarFilename#" .. "%t" .. "%*"
|
return "%#WinBarFilename#" .. "%t" .. "%*"
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_location()
|
function M.get_location()
|
||||||
local location = navic.get_location()
|
local location = navic.get_location()
|
||||||
local gps_location = gps.get_location()
|
local gps_location = gps.get_location()
|
||||||
|
|
||||||
|
@ -47,7 +24,7 @@ local function get_location()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function get_fileicon()
|
function M.get_fileicon()
|
||||||
local hl_winbar_file_icon = "WinBarFileIcon"
|
local hl_winbar_file_icon = "WinBarFileIcon"
|
||||||
local file_path = vim.fn.expand("%:~:.:h")
|
local file_path = vim.fn.expand("%:~:.:h")
|
||||||
local filename = vim.fn.expand("%:t")
|
local filename = vim.fn.expand("%:t")
|
||||||
|
@ -60,22 +37,11 @@ local function get_fileicon()
|
||||||
|
|
||||||
if not is_empty(filename) then
|
if not is_empty(filename) then
|
||||||
file_icon, file_icon_color =
|
file_icon, file_icon_color =
|
||||||
require("nvim-web-devicons").get_icon_color(filename, file_type, { default = true })
|
require("nvim-web-devicons").get_icon_color(filename, file_type, { default = true })
|
||||||
vim.api.nvim_set_hl(0, hl_winbar_file_icon, { fg = file_icon_color })
|
vim.api.nvim_set_hl(0, hl_winbar_file_icon, { fg = file_icon_color })
|
||||||
end
|
end
|
||||||
|
|
||||||
return "%#WinBarContext#" .. "%#" .. hl_winbar_file_icon .. "#" .. file_icon .. " " .. "%*"
|
return "%#WinBarContext#" .. "%#" .. hl_winbar_file_icon .. "#" .. file_icon .. " " .. "%*"
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.get_winbar()
|
|
||||||
if excludes() then
|
|
||||||
return ""
|
|
||||||
end
|
|
||||||
if navic.is_available() then
|
|
||||||
return get_fileicon() .. get_filename() .. get_location()
|
|
||||||
else
|
|
||||||
return get_fileicon() .. get_filename()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
return M
|
251
lua/plugins/packer.lua
Normal file
251
lua/plugins/packer.lua
Normal file
|
@ -0,0 +1,251 @@
|
||||||
|
local fn = vim.fn
|
||||||
|
|
||||||
|
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
||||||
|
if fn.empty(fn.glob(install_path)) > 0 then
|
||||||
|
PACKER_BOOTSTRAP = fn.system({
|
||||||
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--depth",
|
||||||
|
"1",
|
||||||
|
"https://github.com/wbthomason/packer.nvim",
|
||||||
|
install_path,
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.cmd("packadd packer.nvim")
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd([[
|
||||||
|
augroup packer_user_config
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWritePost packer.lua source <afile> | PackerSync
|
||||||
|
augroup end
|
||||||
|
]])
|
||||||
|
|
||||||
|
local packer = require("packer")
|
||||||
|
|
||||||
|
packer.init({
|
||||||
|
display = {
|
||||||
|
open_fn = function()
|
||||||
|
return require("packer.util").float({ border = "rounded" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
profile = {
|
||||||
|
enable = true,
|
||||||
|
threshold = 0,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
return packer.startup(function(use)
|
||||||
|
use("wbthomason/packer.nvim")
|
||||||
|
|
||||||
|
-- Dependencies
|
||||||
|
use({
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
module = "nui",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
module = "plenary",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"kyazdani42/nvim-web-devicons",
|
||||||
|
module = "nvim-web-devicons",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Benchmark Startup
|
||||||
|
use({
|
||||||
|
"dstein64/vim-startuptime",
|
||||||
|
cmd = "StartupTime",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Plugin Module Caching
|
||||||
|
use("lewis6991/impatient.nvim")
|
||||||
|
|
||||||
|
-- Alpha Dashboard
|
||||||
|
use({
|
||||||
|
"goolord/alpha-nvim",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.alpha")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Colorscheme
|
||||||
|
use({
|
||||||
|
"EdenEast/nightfox.nvim",
|
||||||
|
run = ":NightfoxCompile",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.nightfox")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- File Tree
|
||||||
|
use({
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
ft = "alpha",
|
||||||
|
cmd = { "Neotree" },
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.neotree")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Treesitter
|
||||||
|
use({
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
run = ":TSUpdate",
|
||||||
|
event = "BufReadPre",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.treesitter")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"p00f/nvim-ts-rainbow",
|
||||||
|
after = "nvim-treesitter",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"JoosepAlviste/nvim-ts-context-commentstring",
|
||||||
|
after = "nvim-treesitter",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"SmiteshP/nvim-gps",
|
||||||
|
after = "nvim-treesitter",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
use({
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
cmd = "Telescope",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.telescope")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"nvim-telescope/telescope-fzf-native.nvim",
|
||||||
|
run = "make",
|
||||||
|
module = "telescope._extensions.fzf",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"nvim-telescope/telescope-dap.nvim",
|
||||||
|
module = "telescope._extensions.dap",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- CMP
|
||||||
|
use({
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.cmp")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/vim-vsnip",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/cmp-vsnip",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"rafamadriz/friendly-snippets",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
after = "nvim-cmp",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Terminal
|
||||||
|
use({
|
||||||
|
"akinsho/toggleterm.nvim",
|
||||||
|
keys = [[<C-\>]],
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.toggleterm")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- LSP
|
||||||
|
use({
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
event = "BufReadPre",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.lsp")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"onsails/lspkind.nvim",
|
||||||
|
module = "lspkind",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
module = "mason",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"williamboman/mason-lspconfig.nvim",
|
||||||
|
module = "mason-lspconfig",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"glepnir/lspsaga.nvim",
|
||||||
|
module = "lspsaga",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"RRethy/vim-illuminate",
|
||||||
|
module = "illuminate",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"SmiteshP/nvim-navic",
|
||||||
|
module = "nvim-navic",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"tamago324/nlsp-settings.nvim",
|
||||||
|
module = "nlspsettings",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"b0o/SchemaStore.nvim",
|
||||||
|
module = "schemastore",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"jose-elias-alvarez/null-ls.nvim",
|
||||||
|
module = "null-ls",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"ray-x/lsp_signature.nvim",
|
||||||
|
module = "lsp_signature",
|
||||||
|
})
|
||||||
|
use({
|
||||||
|
"Maan2003/lsp_lines.nvim",
|
||||||
|
module = "lsp_lines",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Statusline
|
||||||
|
use({
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
event = "BufReadPre",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.lualine")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Autopairs
|
||||||
|
use({
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
event = "InsertEnter",
|
||||||
|
config = function()
|
||||||
|
require("plugins.configs.autopairs")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
if PACKER_BOOTSTRAP then
|
||||||
|
require("packer").sync()
|
||||||
|
end
|
||||||
|
end)
|
|
@ -1,47 +0,0 @@
|
||||||
-- Use 'q' to quit from common plugins
|
|
||||||
vim.api.nvim_create_autocmd({ "FileType" }, {
|
|
||||||
pattern = { "qf", "help", "man", "lspinfo", "spectre_panel", "lir" },
|
|
||||||
callback = function()
|
|
||||||
vim.cmd([[
|
|
||||||
nnoremap <silent> <buffer> q :close<CR>
|
|
||||||
set nobuflisted
|
|
||||||
]])
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Remove statusline and tabline when in Alpha
|
|
||||||
vim.api.nvim_create_autocmd({ "User" }, {
|
|
||||||
pattern = { "AlphaReady" },
|
|
||||||
callback = function()
|
|
||||||
vim.cmd([[
|
|
||||||
set showtabline=0 | autocmd BufUnload <buffer> set showtabline=2
|
|
||||||
set laststatus=0 | autocmd BufUnload <buffer> set laststatus=3
|
|
||||||
:DisableWhitespace
|
|
||||||
]])
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Set wrap and spell in markdown and gitcommit
|
|
||||||
vim.api.nvim_create_autocmd({ "FileType" }, {
|
|
||||||
pattern = { "gitcommit", "markdown" },
|
|
||||||
callback = function()
|
|
||||||
vim.opt_local.wrap = true
|
|
||||||
vim.opt_local.spell = true
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.cmd("autocmd BufEnter * ++nested if winnr('$') == 1 && bufname() == 'NvimTree_' . tabpagenr() | quit | endif")
|
|
||||||
|
|
||||||
-- Fixes Autocomment
|
|
||||||
vim.api.nvim_create_autocmd({ "BufWinEnter" }, {
|
|
||||||
callback = function()
|
|
||||||
vim.cmd("set formatoptions-=cro")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Highlight Yanked Text
|
|
||||||
vim.api.nvim_create_autocmd({ "TextYankPost" }, {
|
|
||||||
callback = function()
|
|
||||||
vim.highlight.on_yank({ higroup = "Visual", timeout = 200 })
|
|
||||||
end,
|
|
||||||
})
|
|
|
@ -1,17 +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, -- treesitter integration
|
|
||||||
disable_filetype = { "TelescopePrompt" },
|
|
||||||
})
|
|
||||||
|
|
||||||
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({}))
|
|
|
@ -1,34 +0,0 @@
|
||||||
local status_ok, bufferline = pcall(require, "bufferline")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
bufferline.setup({
|
|
||||||
options = {
|
|
||||||
numbers = "ordinal",
|
|
||||||
close_command = "Bdelete! %d",
|
|
||||||
right_mouse_command = "Bdelete! %d",
|
|
||||||
left_mouse_command = "buffer %d",
|
|
||||||
middle_mouse_command = nil,
|
|
||||||
indicator_icon = "▎",
|
|
||||||
buffer_close_icon = "",
|
|
||||||
modified_icon = "●",
|
|
||||||
close_icon = "",
|
|
||||||
left_trunc_marker = "",
|
|
||||||
right_trunc_marker = "",
|
|
||||||
max_name_length = 30,
|
|
||||||
max_prefix_length = 30,
|
|
||||||
tab_size = 21,
|
|
||||||
diagnostics = "nvim_lsp",
|
|
||||||
diagnostics_update_in_insert = true,
|
|
||||||
offsets = { { filetype = "NvimTree", text = "", padding = 1 } },
|
|
||||||
show_buffer_icons = true,
|
|
||||||
show_buffer_close_icons = true,
|
|
||||||
show_close_icon = true,
|
|
||||||
show_tab_indicators = true,
|
|
||||||
persist_buffer_sort = true,
|
|
||||||
separator_style = "thin",
|
|
||||||
enforce_regular_tabs = true,
|
|
||||||
always_show_bufferline = true,
|
|
||||||
},
|
|
||||||
})
|
|
133
lua/user/cmp.lua
133
lua/user/cmp.lua
|
@ -1,133 +0,0 @@
|
||||||
local cmp_status_ok, cmp = pcall(require, "cmp")
|
|
||||||
if not cmp_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local npm_status_ok, npm = pcall(require, "cmp-npm")
|
|
||||||
if not npm_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local snip_status_ok, luasnip = pcall(require, "luasnip")
|
|
||||||
if not snip_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local lspkind_status_ok, lspkind = pcall(require, "lspkind")
|
|
||||||
if not lspkind_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
require("luasnip/loaders/from_vscode").lazy_load()
|
|
||||||
|
|
||||||
local check_backspace = function()
|
|
||||||
local col = vim.fn.col(".") - 1
|
|
||||||
return col == 0 or vim.fn.getline("."):sub(col, col):match("%s")
|
|
||||||
end
|
|
||||||
|
|
||||||
npm.setup({})
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
completion = { completeopt = "menu,menuone,noinsert", keyword_length = 1 },
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
luasnip.lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
mapping = {
|
|
||||||
["<C-k>"] = cmp.mapping.select_prev_item(),
|
|
||||||
["<C-j>"] = cmp.mapping.select_next_item(),
|
|
||||||
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
|
|
||||||
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
|
|
||||||
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
|
|
||||||
["<C-y>"] = cmp.config.disable,
|
|
||||||
["<C-e>"] = cmp.mapping({
|
|
||||||
i = cmp.mapping.abort(),
|
|
||||||
c = cmp.mapping.close(),
|
|
||||||
}),
|
|
||||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
|
||||||
["<Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif luasnip.expandable() then
|
|
||||||
luasnip.expand()
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
elseif check_backspace() then
|
|
||||||
fallback()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, {
|
|
||||||
"i",
|
|
||||||
"s",
|
|
||||||
}),
|
|
||||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, {
|
|
||||||
"i",
|
|
||||||
"s",
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
formatting = {
|
|
||||||
fields = { "abbr", "kind", "menu" },
|
|
||||||
format = lspkind.cmp_format({
|
|
||||||
mode = "symbol_text",
|
|
||||||
maxwidth = 50,
|
|
||||||
before = function(entry, vim_item)
|
|
||||||
vim_item.menu = ({
|
|
||||||
nvim_lsp = "[LSP]",
|
|
||||||
npm = "[NPM]",
|
|
||||||
crates = "[CRATES]",
|
|
||||||
nvim_lua = "[NVIM_LUA]",
|
|
||||||
luasnip = "[SNIPPET]",
|
|
||||||
buffer = "[BUFFER]",
|
|
||||||
path = "[PATH]",
|
|
||||||
})[entry.source.name]
|
|
||||||
return vim_item
|
|
||||||
end,
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
sources = {
|
|
||||||
{ name = "nvim_lsp" },
|
|
||||||
{ name = "npm" },
|
|
||||||
{ name = "crates" },
|
|
||||||
{ name = "nvim_lua" },
|
|
||||||
{ name = "luasnip" },
|
|
||||||
{ name = "buffer" },
|
|
||||||
{ name = "path" },
|
|
||||||
},
|
|
||||||
confirm_opts = {
|
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
|
||||||
select = false,
|
|
||||||
},
|
|
||||||
window = {
|
|
||||||
documentation = {
|
|
||||||
border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
experimental = {
|
|
||||||
ghost_text = true,
|
|
||||||
native_menu = false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
cmp.setup.cmdline("/", {
|
|
||||||
sources = {
|
|
||||||
{ name = "buffer" },
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
cmp.setup.cmdline(":", {
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = "path" },
|
|
||||||
}, {
|
|
||||||
{ name = "cmdline" },
|
|
||||||
}),
|
|
||||||
})
|
|
|
@ -1,16 +0,0 @@
|
||||||
local status_ok, colorizer = pcall(require, "colorizer")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
colorizer.setup({ "*" }, {
|
|
||||||
RGB = true,
|
|
||||||
RRGGBB = true,
|
|
||||||
names = false,
|
|
||||||
RRGGBBAA = true,
|
|
||||||
rgb_fn = true,
|
|
||||||
hsl_fn = true,
|
|
||||||
css = false,
|
|
||||||
css_fn = false,
|
|
||||||
mode = "background",
|
|
||||||
})
|
|
|
@ -1,22 +0,0 @@
|
||||||
local status_ok, comment = pcall(require, "Comment")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
comment.setup({
|
|
||||||
pre_hook = function(ctx)
|
|
||||||
local U = require("Comment.utils")
|
|
||||||
|
|
||||||
local location = nil
|
|
||||||
if ctx.ctype == U.ctype.block then
|
|
||||||
location = require("ts_context_commentstring.utils").get_cursor_location()
|
|
||||||
elseif ctx.cmotion == U.cmotion.v or ctx.cmotion == U.cmotion.V then
|
|
||||||
location = require("ts_context_commentstring.utils").get_visual_start_location()
|
|
||||||
end
|
|
||||||
|
|
||||||
return require("ts_context_commentstring.internal").calculate_commentstring({
|
|
||||||
key = ctx.ctype == U.ctype.line and "__default" or "__multiline",
|
|
||||||
location = location,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
|
@ -1,24 +0,0 @@
|
||||||
local ok, cybu = pcall(require, "cybu")
|
|
||||||
if not ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
cybu.setup({
|
|
||||||
display_time = 1750, -- time the cybu window is displayed
|
|
||||||
style = {
|
|
||||||
path = "relative", -- absolute, relative, tail (filename only)
|
|
||||||
border = "rounded", -- single, double, rounded, none
|
|
||||||
separator = " ", -- string used as separator
|
|
||||||
prefix = "…", -- string used as prefix for truncated paths
|
|
||||||
padding = 1, -- left & right padding in number of spaces
|
|
||||||
hide_buffer_id = true,
|
|
||||||
devicons = {
|
|
||||||
enabled = true, -- enable or disable web dev icons
|
|
||||||
colored = true, -- enable color for web dev icons
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.keymap.set("n", "<s-tab>", "<Plug>(CybuPrev)")
|
|
||||||
vim.keymap.set("n", "<tab>", "<Plug>(CybuNext)")
|
|
||||||
vim.keymap.set("n", "<c-i>", "<c-i>")
|
|
|
@ -1,12 +0,0 @@
|
||||||
local dapui_status_ok, dapui = pcall(require, "dapui")
|
|
||||||
if not dapui_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local vtext_status_ok, vtext = pcall(require, "nvim-dap-virtual-text")
|
|
||||||
if not vtext_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
dapui.setup()
|
|
||||||
vtext.setup()
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, discord = pcall(require, "presence")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
discord:setup({})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, dressing = pcall(require, "dressing")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
dressing.setup({})
|
|
|
@ -1,52 +0,0 @@
|
||||||
local status_ok, gitsigns = pcall(require, "gitsigns")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
gitsigns.setup({
|
|
||||||
signs = {
|
|
||||||
add = { hl = "GitSignsAdd", text = "▎", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" },
|
|
||||||
change = { hl = "GitSignsChange", text = "▎", numhl = "GitSignsChangeNr", linehl = "GitSignsChangeLn" },
|
|
||||||
delete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
|
||||||
topdelete = { hl = "GitSignsDelete", text = "契", numhl = "GitSignsDeleteNr", linehl = "GitSignsDeleteLn" },
|
|
||||||
changedelete = {
|
|
||||||
hl = "GitSignsChange",
|
|
||||||
text = "▎",
|
|
||||||
numhl = "GitSignsChangeNr",
|
|
||||||
linehl = "GitSignsChangeLn",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
signcolumn = true,
|
|
||||||
numhl = false,
|
|
||||||
linehl = false,
|
|
||||||
word_diff = false,
|
|
||||||
watch_gitdir = {
|
|
||||||
interval = 1000,
|
|
||||||
follow_files = true,
|
|
||||||
},
|
|
||||||
attach_to_untracked = true,
|
|
||||||
current_line_blame = true,
|
|
||||||
current_line_blame_opts = {
|
|
||||||
virt_text = true,
|
|
||||||
virt_text_pos = "eol",
|
|
||||||
delay = 1000,
|
|
||||||
ignore_whitespace = false,
|
|
||||||
},
|
|
||||||
current_line_blame_formatter_opts = {
|
|
||||||
relative_time = false,
|
|
||||||
},
|
|
||||||
sign_priority = 6,
|
|
||||||
update_debounce = 100,
|
|
||||||
status_formatter = nil,
|
|
||||||
max_file_length = 40000,
|
|
||||||
preview_config = {
|
|
||||||
border = "single",
|
|
||||||
style = "minimal",
|
|
||||||
relative = "cursor",
|
|
||||||
row = 0,
|
|
||||||
col = 1,
|
|
||||||
},
|
|
||||||
yadm = {
|
|
||||||
enable = false,
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,33 +0,0 @@
|
||||||
local status_ok, gps = pcall(require, "nvim-gps")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
gps.setup({
|
|
||||||
icons = {
|
|
||||||
["class-name"] = " ",
|
|
||||||
["function-name"] = " ",
|
|
||||||
["method-name"] = " ",
|
|
||||||
["container-name"] = "⛶ ",
|
|
||||||
["tag-name"] = "炙 ",
|
|
||||||
["mapping-name"] = " ",
|
|
||||||
["sequence-name"] = " ",
|
|
||||||
["null-name"] = "[] ",
|
|
||||||
["boolean-name"] = "ﰰﰴ ",
|
|
||||||
["integer-name"] = "# ",
|
|
||||||
["float-name"] = " ",
|
|
||||||
["string-name"] = " ",
|
|
||||||
["array-name"] = " ",
|
|
||||||
["object-name"] = " ",
|
|
||||||
["number-name"] = "# ",
|
|
||||||
["table-name"] = " ",
|
|
||||||
["date-name"] = " ",
|
|
||||||
["date-time-name"] = " ",
|
|
||||||
["inline-table-name"] = " ",
|
|
||||||
["time-name"] = " ",
|
|
||||||
["module-name"] = " ",
|
|
||||||
},
|
|
||||||
separator = " > ",
|
|
||||||
depth = 0,
|
|
||||||
depth_limit_indicator = "..",
|
|
||||||
})
|
|
|
@ -1,3 +0,0 @@
|
||||||
vim.g.Illuminate_ftblacklist = {'alpha', 'NvimTree'}
|
|
||||||
vim.api.nvim_set_keymap('n', '<a-n>', '<cmd>lua require"illuminate".next_reference{wrap=true}<cr>', {noremap=true})
|
|
||||||
vim.api.nvim_set_keymap('n', '<a-p>', '<cmd>lua require"illuminate".next_reference{reverse=true,wrap=true}<cr>', {noremap=true})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, impatient = pcall(require, "impatient")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
impatient.enable_profile()
|
|
|
@ -1,16 +0,0 @@
|
||||||
local status_ok, indent_blankline = pcall(require, "indent_blankline")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.g.indent_blankline_filetype_exclude = {
|
|
||||||
"help",
|
|
||||||
"packer",
|
|
||||||
"NvimTree",
|
|
||||||
"Trouble",
|
|
||||||
"alpha",
|
|
||||||
}
|
|
||||||
|
|
||||||
indent_blankline.setup({
|
|
||||||
show_current_context = true,
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local ok, legendary = pcall(require, "legendary")
|
|
||||||
if not ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
legendary.setup()
|
|
|
@ -1,7 +0,0 @@
|
||||||
require("user.lsp.handlers").setup()
|
|
||||||
require("user.lsp.nlspsettings")
|
|
||||||
require("user.lsp.mason")
|
|
||||||
require("user.lsp.nullls")
|
|
||||||
require("user.lsp.signature")
|
|
||||||
require("user.lsp.lspsaga")
|
|
||||||
require("user.lsp.virtuallines")
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspsaga = pcall(require, "lspsaga")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspsaga.init_lsp_saga({})
|
|
|
@ -1,32 +0,0 @@
|
||||||
local status_ok, mason = pcall(require, "mason")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local lspconfig = require("lspconfig")
|
|
||||||
|
|
||||||
mason.setup()
|
|
||||||
require("mason-lspconfig").setup({
|
|
||||||
automatic_installation = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
require("mason-tool-installer").setup({
|
|
||||||
auto_update = false,
|
|
||||||
run_on_start = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
lspconfig.util.default_config = vim.tbl_extend("force", lspconfig.util.default_config, {
|
|
||||||
on_attach = require("user.lsp.handlers").on_attach,
|
|
||||||
capabilities = require("user.lsp.handlers").capabilities,
|
|
||||||
})
|
|
||||||
|
|
||||||
require("user.lsp.settings.lua.sumneko_lua")
|
|
||||||
require("user.lsp.settings.lua.jsonls")
|
|
||||||
require("user.lsp.settings.lua.tsserver")
|
|
||||||
require("user.lsp.settings.lua.yamlls")
|
|
||||||
require("user.lsp.settings.lua.volar")
|
|
||||||
require("user.lsp.settings.lua.dockerls")
|
|
||||||
require("user.lsp.settings.lua.rnix")
|
|
||||||
require("user.lsp.settings.lua.taplo")
|
|
||||||
require("user.lsp.settings.lua.omnisharp")
|
|
||||||
require("user.lsp.settings.lua.lemminx")
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"Lua.diagnostics.globals": ["vim"]
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.dockerls.setup({})
|
|
|
@ -1,18 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local schemastore_status_ok, schemastore = pcall(require, "schemastore")
|
|
||||||
if not schemastore_status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.jsonls.setup({
|
|
||||||
settings = {
|
|
||||||
json = {
|
|
||||||
schemas = schemastore.json.schemas(),
|
|
||||||
validate = { enable = true },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.lemminx.setup({})
|
|
|
@ -1,9 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.omnisharp.setup({
|
|
||||||
organize_imports_on_format = true,
|
|
||||||
enable_import_completion = true,
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.rnix.setup({})
|
|
|
@ -1,3 +0,0 @@
|
||||||
local lspconfig = require("lspconfig")
|
|
||||||
|
|
||||||
lspconfig.sumneko_lua.setup({})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.taplo.setup({})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.tsserver.setup({})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.volar.setup({})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, lspconfig = pcall(require, "lspconfig")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lspconfig.yamlls.setup({})
|
|
|
@ -1,11 +0,0 @@
|
||||||
local status_ok, signature = pcall(require, "lsp_signature")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local cfg = {
|
|
||||||
floating_window = false, -- show hint in a floating window, set to false for virtual text only mode
|
|
||||||
}
|
|
||||||
|
|
||||||
signature.setup(cfg) -- no need to specify bufnr if you don't use toggle_key
|
|
||||||
signature.on_attach(cfg) -- no need to specify bufnr if you don't use toggle_key
|
|
|
@ -1,10 +0,0 @@
|
||||||
local status_ok, lines = pcall(require, "lsp_lines")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lines.setup()
|
|
||||||
|
|
||||||
vim.diagnostic.config({
|
|
||||||
virtual_text = false,
|
|
||||||
})
|
|
|
@ -1,38 +0,0 @@
|
||||||
local status_ok, lualine = pcall(require, "lualine")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
lualine.setup({
|
|
||||||
options = {
|
|
||||||
icons_enabled = true,
|
|
||||||
theme = "onenord",
|
|
||||||
component_separators = { left = "", right = "" },
|
|
||||||
section_separators = { left = "", right = "" },
|
|
||||||
disabled_filetypes = { "alpha", "NvimTree" },
|
|
||||||
always_divide_middle = true,
|
|
||||||
},
|
|
||||||
sections = {
|
|
||||||
lualine_a = { "mode" },
|
|
||||||
lualine_b = { "branch", "diff", "diagnostics" },
|
|
||||||
lualine_c = { "filename", "filesize" },
|
|
||||||
lualine_x = { "encoding", "fileformat", "filetype" },
|
|
||||||
lualine_y = { "progress" },
|
|
||||||
lualine_z = { "location" },
|
|
||||||
},
|
|
||||||
inactive_sections = {
|
|
||||||
lualine_a = {},
|
|
||||||
lualine_b = {},
|
|
||||||
lualine_c = { "filename" },
|
|
||||||
lualine_x = { "location" },
|
|
||||||
lualine_y = {},
|
|
||||||
lualine_z = {},
|
|
||||||
},
|
|
||||||
extensions = {
|
|
||||||
"nvim-tree",
|
|
||||||
"toggleterm",
|
|
||||||
"fzf",
|
|
||||||
"quickfix",
|
|
||||||
"nvim-dap-ui",
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,34 +0,0 @@
|
||||||
local status_ok, navic = pcall(require, "nvim-navic")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
navic.setup({
|
|
||||||
icons = {
|
|
||||||
["class-name"] = " ",
|
|
||||||
["function-name"] = " ",
|
|
||||||
["method-name"] = " ",
|
|
||||||
["container-name"] = "⛶ ",
|
|
||||||
["tag-name"] = "炙 ",
|
|
||||||
["mapping-name"] = " ",
|
|
||||||
["sequence-name"] = " ",
|
|
||||||
["null-name"] = "[] ",
|
|
||||||
["boolean-name"] = "ﰰﰴ ",
|
|
||||||
["integer-name"] = "# ",
|
|
||||||
["float-name"] = " ",
|
|
||||||
["string-name"] = " ",
|
|
||||||
["array-name"] = " ",
|
|
||||||
["object-name"] = " ",
|
|
||||||
["number-name"] = "# ",
|
|
||||||
["table-name"] = " ",
|
|
||||||
["date-name"] = " ",
|
|
||||||
["date-time-name"] = " ",
|
|
||||||
["inline-table-name"] = " ",
|
|
||||||
["time-name"] = " ",
|
|
||||||
["module-name"] = " ",
|
|
||||||
},
|
|
||||||
highlight = true,
|
|
||||||
separator = " > ",
|
|
||||||
depth_limit = 0,
|
|
||||||
depth_limit_indicator = "..",
|
|
||||||
})
|
|
|
@ -1,16 +0,0 @@
|
||||||
local status_ok, notify = pcall(require, "notify")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
notify.setup({
|
|
||||||
stages = "fade_in_slide_out",
|
|
||||||
on_open = nil,
|
|
||||||
on_close = nil,
|
|
||||||
render = "default",
|
|
||||||
timeout = 175,
|
|
||||||
background_colour = "Normal",
|
|
||||||
minimum_width = 10,
|
|
||||||
})
|
|
||||||
|
|
||||||
vim.notify = notify
|
|
|
@ -1,101 +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
|
|
||||||
vim.api.nvim_create_autocmd("BufEnter", {
|
|
||||||
nested = true,
|
|
||||||
callback = function()
|
|
||||||
if #vim.api.nvim_list_wins() == 1 and vim.api.nvim_buf_get_name(0):match("NvimTree_") ~= nil then
|
|
||||||
vim.cmd("quit")
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
nvim_tree.setup({
|
|
||||||
disable_netrw = true,
|
|
||||||
hijack_netrw = true,
|
|
||||||
open_on_setup = false,
|
|
||||||
ignore_ft_on_setup = {
|
|
||||||
"alpha",
|
|
||||||
},
|
|
||||||
open_on_tab = true,
|
|
||||||
hijack_cursor = true,
|
|
||||||
update_cwd = true,
|
|
||||||
diagnostics = {
|
|
||||||
enable = true,
|
|
||||||
icons = {
|
|
||||||
hint = "",
|
|
||||||
info = "",
|
|
||||||
warning = "",
|
|
||||||
error = "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
update_focused_file = {
|
|
||||||
enable = true,
|
|
||||||
update_cwd = true,
|
|
||||||
ignore_list = {},
|
|
||||||
},
|
|
||||||
git = {
|
|
||||||
enable = true,
|
|
||||||
ignore = false,
|
|
||||||
timeout = 500,
|
|
||||||
},
|
|
||||||
view = {
|
|
||||||
width = 30,
|
|
||||||
height = 30,
|
|
||||||
hide_root_folder = false,
|
|
||||||
side = "left",
|
|
||||||
mappings = {
|
|
||||||
custom_only = false,
|
|
||||||
list = {
|
|
||||||
{ key = { "l", "<CR>", "o" }, cb = tree_cb("edit") },
|
|
||||||
{ key = "h", cb = tree_cb("close_node") },
|
|
||||||
{ key = "v", cb = tree_cb("vsplit") },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
number = false,
|
|
||||||
relativenumber = false,
|
|
||||||
},
|
|
||||||
actions = {
|
|
||||||
open_file = {
|
|
||||||
quit_on_open = false,
|
|
||||||
window_picker = {
|
|
||||||
enable = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
renderer = {
|
|
||||||
icons = {
|
|
||||||
glyphs = {
|
|
||||||
default = "",
|
|
||||||
symlink = "",
|
|
||||||
git = {
|
|
||||||
unstaged = "",
|
|
||||||
staged = "S",
|
|
||||||
unmerged = "",
|
|
||||||
renamed = "➜",
|
|
||||||
deleted = "",
|
|
||||||
untracked = "U",
|
|
||||||
ignored = "◌",
|
|
||||||
},
|
|
||||||
folder = {
|
|
||||||
default = "",
|
|
||||||
open = "",
|
|
||||||
empty = "",
|
|
||||||
empty_open = "",
|
|
||||||
symlink = "",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
filesystem_watchers = {
|
|
||||||
enable = true,
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,219 +0,0 @@
|
||||||
local fn = vim.fn
|
|
||||||
|
|
||||||
local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
|
|
||||||
if fn.empty(fn.glob(install_path)) > 0 then
|
|
||||||
PACKER_BOOTSTRAP = fn.system({
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
"--depth",
|
|
||||||
"1",
|
|
||||||
"https://github.com/wbthomason/packer.nvim",
|
|
||||||
install_path,
|
|
||||||
})
|
|
||||||
print("Installing packer close and reopen Neovim...")
|
|
||||||
vim.cmd([[packadd packer.nvim]])
|
|
||||||
end
|
|
||||||
|
|
||||||
vim.cmd([[
|
|
||||||
augroup packer_user_config
|
|
||||||
autocmd!
|
|
||||||
autocmd BufWritePost plugins.lua source <afile> | PackerSync
|
|
||||||
augroup end
|
|
||||||
]])
|
|
||||||
|
|
||||||
local status_ok, packer = pcall(require, "packer")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
packer.init({
|
|
||||||
display = {
|
|
||||||
open_fn = function()
|
|
||||||
return require("packer.util").float({ border = "rounded" })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
profile = {
|
|
||||||
enable = true,
|
|
||||||
threshold = 0,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
return packer.startup(function(use)
|
|
||||||
use("wbthomason/packer.nvim")
|
|
||||||
|
|
||||||
-- Plugin Deps
|
|
||||||
use("nvim-lua/popup.nvim")
|
|
||||||
use("nvim-lua/plenary.nvim")
|
|
||||||
use("kyazdani42/nvim-web-devicons")
|
|
||||||
use("antoinemadec/FixCursorHold.nvim")
|
|
||||||
use("kevinhwang91/promise-async")
|
|
||||||
|
|
||||||
-- Themes
|
|
||||||
-- Theme
|
|
||||||
use({
|
|
||||||
"rmehri01/onenord.nvim",
|
|
||||||
config = function()
|
|
||||||
require("onenord").setup()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
use({
|
|
||||||
"folke/lsp-colors.nvim",
|
|
||||||
config = function()
|
|
||||||
require("lsp-colors").setup()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Completion
|
|
||||||
use("hrsh7th/nvim-cmp")
|
|
||||||
use("hrsh7th/cmp-buffer")
|
|
||||||
use("hrsh7th/cmp-path")
|
|
||||||
use("hrsh7th/cmp-cmdline")
|
|
||||||
use("saadparwaiz1/cmp_luasnip")
|
|
||||||
use("hrsh7th/cmp-nvim-lsp")
|
|
||||||
use("hrsh7th/cmp-nvim-lua")
|
|
||||||
use("David-Kunz/cmp-npm")
|
|
||||||
|
|
||||||
-- Snippets
|
|
||||||
use("L3MON4D3/LuaSnip")
|
|
||||||
use("rafamadriz/friendly-snippets")
|
|
||||||
|
|
||||||
-- LSP
|
|
||||||
use("neovim/nvim-lspconfig")
|
|
||||||
use("williamboman/mason.nvim")
|
|
||||||
use("williamboman/mason-lspconfig.nvim")
|
|
||||||
use("WhoIsSethDaniel/mason-tool-installer.nvim")
|
|
||||||
use("jose-elias-alvarez/null-ls.nvim")
|
|
||||||
use("b0o/SchemaStore.nvim")
|
|
||||||
use("ray-x/lsp_signature.nvim")
|
|
||||||
use("folke/trouble.nvim")
|
|
||||||
use("onsails/lspkind.nvim")
|
|
||||||
use("glepnir/lspsaga.nvim")
|
|
||||||
use("https://git.sr.ht/~whynothugo/lsp_lines.nvim")
|
|
||||||
use("SmiteshP/nvim-navic")
|
|
||||||
use("kevinhwang91/nvim-ufo")
|
|
||||||
use("tamago324/nlsp-settings.nvim")
|
|
||||||
use("gpanders/editorconfig.nvim")
|
|
||||||
|
|
||||||
-- Rust Dev
|
|
||||||
use({
|
|
||||||
"simrat39/rust-tools.nvim",
|
|
||||||
config = function()
|
|
||||||
require("rust-tools").setup({})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
use({
|
|
||||||
"saecki/crates.nvim",
|
|
||||||
config = function()
|
|
||||||
require("crates").setup({
|
|
||||||
null_ls = {
|
|
||||||
enabled = true,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Telescope
|
|
||||||
use("nvim-telescope/telescope.nvim")
|
|
||||||
use({ "nvim-telescope/telescope-fzf-native.nvim", run = "make" })
|
|
||||||
use("nvim-telescope/telescope-dap.nvim")
|
|
||||||
|
|
||||||
-- Treesitter
|
|
||||||
use({ "nvim-treesitter/nvim-treesitter", run = ":TSUpdate" })
|
|
||||||
use("p00f/nvim-ts-rainbow")
|
|
||||||
use("JoosepAlviste/nvim-ts-context-commentstring")
|
|
||||||
use("SmiteshP/nvim-gps")
|
|
||||||
|
|
||||||
-- Autopairs
|
|
||||||
use("windwp/nvim-autopairs")
|
|
||||||
|
|
||||||
-- Comments
|
|
||||||
use("numToStr/Comment.nvim")
|
|
||||||
|
|
||||||
-- Git
|
|
||||||
use("lewis6991/gitsigns.nvim")
|
|
||||||
|
|
||||||
-- Nvim-Tree
|
|
||||||
use({
|
|
||||||
"kyazdani42/nvim-tree.lua",
|
|
||||||
opt = true,
|
|
||||||
cmd = { "NvimTreeToggle", "NvimTreeClose" },
|
|
||||||
config = function()
|
|
||||||
require("user.nvimtree")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Bufferline
|
|
||||||
use("akinsho/bufferline.nvim")
|
|
||||||
use("moll/vim-bbye")
|
|
||||||
|
|
||||||
-- Whitespace
|
|
||||||
use("ntpeters/vim-better-whitespace")
|
|
||||||
|
|
||||||
-- Lualine
|
|
||||||
use("nvim-lualine/lualine.nvim")
|
|
||||||
|
|
||||||
-- Toggleterm
|
|
||||||
use("akinsho/toggleterm.nvim")
|
|
||||||
|
|
||||||
-- Speed
|
|
||||||
use("lewis6991/impatient.nvim")
|
|
||||||
use("nathom/filetype.nvim")
|
|
||||||
use("dstein64/vim-startuptime")
|
|
||||||
|
|
||||||
-- Indent Line
|
|
||||||
use("lukas-reineke/indent-blankline.nvim")
|
|
||||||
|
|
||||||
-- Alpha
|
|
||||||
use({
|
|
||||||
"goolord/alpha-nvim",
|
|
||||||
config = function()
|
|
||||||
require("user.alpha")
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Keymaps
|
|
||||||
use("folke/which-key.nvim")
|
|
||||||
use("mrjones2014/legendary.nvim")
|
|
||||||
|
|
||||||
-- Illuminate
|
|
||||||
use("RRethy/vim-illuminate")
|
|
||||||
|
|
||||||
-- Colorizer
|
|
||||||
use("norcalli/nvim-colorizer.lua")
|
|
||||||
|
|
||||||
-- Wakatime
|
|
||||||
use("wakatime/vim-wakatime")
|
|
||||||
|
|
||||||
-- Discord
|
|
||||||
use("andweeb/presence.nvim")
|
|
||||||
|
|
||||||
-- DAP
|
|
||||||
use("mfussenegger/nvim-dap")
|
|
||||||
use("rcarriga/nvim-dap-ui")
|
|
||||||
use("theHamsta/nvim-dap-virtual-text")
|
|
||||||
|
|
||||||
-- Spectre
|
|
||||||
use("windwp/nvim-spectre")
|
|
||||||
|
|
||||||
-- Notify
|
|
||||||
use("rcarriga/nvim-notify")
|
|
||||||
|
|
||||||
-- Markdown Preview
|
|
||||||
use({
|
|
||||||
"iamcco/markdown-preview.nvim",
|
|
||||||
run = function()
|
|
||||||
vim.fn["mkdp#util#install"]()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
-- UI
|
|
||||||
use("stevearc/dressing.nvim")
|
|
||||||
use("ghillb/cybu.nvim")
|
|
||||||
|
|
||||||
-- Undo Tree
|
|
||||||
use("mbbill/undotree")
|
|
||||||
|
|
||||||
if PACKER_BOOTSTRAP then
|
|
||||||
require("packer").sync()
|
|
||||||
end
|
|
||||||
end)
|
|
|
@ -1,9 +0,0 @@
|
||||||
local status_ok, spectre = pcall(require, "spectre")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
spectre.setup({
|
|
||||||
live_update = true,
|
|
||||||
is_insert_mode = true,
|
|
||||||
})
|
|
|
@ -1,76 +0,0 @@
|
||||||
local status_ok, telescope = pcall(require, "telescope")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
telescope.load_extension("fzf")
|
|
||||||
telescope.load_extension("dap")
|
|
||||||
|
|
||||||
local actions = require("telescope.actions")
|
|
||||||
|
|
||||||
telescope.setup({
|
|
||||||
defaults = {
|
|
||||||
prompt_prefix = " ",
|
|
||||||
selection_caret = " ",
|
|
||||||
path_display = { "smart" },
|
|
||||||
mappings = {
|
|
||||||
i = {
|
|
||||||
["<C-n>"] = actions.cycle_history_next,
|
|
||||||
["<C-p>"] = actions.cycle_history_prev,
|
|
||||||
["<C-j>"] = actions.move_selection_next,
|
|
||||||
["<C-k>"] = actions.move_selection_previous,
|
|
||||||
["<C-c>"] = actions.close,
|
|
||||||
["<Down>"] = actions.move_selection_next,
|
|
||||||
["<Up>"] = actions.move_selection_previous,
|
|
||||||
["<CR>"] = actions.select_default,
|
|
||||||
["<C-x>"] = actions.select_horizontal,
|
|
||||||
["<C-v>"] = 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,
|
|
||||||
},
|
|
||||||
n = {
|
|
||||||
["<Esc>"] = actions.close,
|
|
||||||
["<CR>"] = actions.select_default,
|
|
||||||
["<C-x>"] = actions.select_horizontal,
|
|
||||||
["<C-v>"] = actions.select_vertical,
|
|
||||||
["<C-t>"] = actions.select_tab,
|
|
||||||
["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
|
|
||||||
["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
|
|
||||||
["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
|
|
||||||
["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
|
|
||||||
["j"] = actions.move_selection_next,
|
|
||||||
["k"] = actions.move_selection_previous,
|
|
||||||
["H"] = actions.move_to_top,
|
|
||||||
["M"] = actions.move_to_middle,
|
|
||||||
["L"] = actions.move_to_bottom,
|
|
||||||
["<Down>"] = actions.move_selection_next,
|
|
||||||
["<Up>"] = actions.move_selection_previous,
|
|
||||||
["gg"] = actions.move_to_top,
|
|
||||||
["G"] = actions.move_to_bottom,
|
|
||||||
["<C-u>"] = actions.preview_scrolling_up,
|
|
||||||
["<C-d>"] = actions.preview_scrolling_down,
|
|
||||||
["<PageUp>"] = actions.results_scrolling_up,
|
|
||||||
["<PageDown>"] = actions.results_scrolling_down,
|
|
||||||
["?"] = actions.which_key,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
pickers = {},
|
|
||||||
extensions = {
|
|
||||||
fzf = {
|
|
||||||
fuzzy = true,
|
|
||||||
override_generic_sorter = true,
|
|
||||||
override_file_sorter = true,
|
|
||||||
case_mode = "ignore_case",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, trouble = pcall(require, "trouble")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
trouble.setup({})
|
|
|
@ -1,39 +0,0 @@
|
||||||
local status_ok, ufo = pcall(require, "ufo")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local handler = function(virtText, lnum, endLnum, width, truncate)
|
|
||||||
local newVirtText = {}
|
|
||||||
local suffix = (" %d "):format(endLnum - lnum)
|
|
||||||
local sufWidth = vim.fn.strdisplaywidth(suffix)
|
|
||||||
local targetWidth = width - sufWidth
|
|
||||||
local curWidth = 0
|
|
||||||
for _, chunk in ipairs(virtText) do
|
|
||||||
local chunkText = chunk[1]
|
|
||||||
local chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
|
||||||
if targetWidth > curWidth + chunkWidth then
|
|
||||||
table.insert(newVirtText, chunk)
|
|
||||||
else
|
|
||||||
chunkText = truncate(chunkText, targetWidth - curWidth)
|
|
||||||
local hlGroup = chunk[2]
|
|
||||||
table.insert(newVirtText, { chunkText, hlGroup })
|
|
||||||
chunkWidth = vim.fn.strdisplaywidth(chunkText)
|
|
||||||
-- str width returned from truncate() may less than 2nd argument, need padding
|
|
||||||
if curWidth + chunkWidth < targetWidth then
|
|
||||||
suffix = suffix .. (" "):rep(targetWidth - curWidth - chunkWidth)
|
|
||||||
end
|
|
||||||
break
|
|
||||||
end
|
|
||||||
curWidth = curWidth + chunkWidth
|
|
||||||
end
|
|
||||||
table.insert(newVirtText, { suffix, "MoreMsg" })
|
|
||||||
return newVirtText
|
|
||||||
end
|
|
||||||
|
|
||||||
ufo.setup({
|
|
||||||
provider_selector = function()
|
|
||||||
return { "lsp", "indent" }
|
|
||||||
end,
|
|
||||||
fold_virt_text_handler = handler,
|
|
||||||
})
|
|
|
@ -1,6 +0,0 @@
|
||||||
local status_ok, which_key = pcall(require, "which-key")
|
|
||||||
if not status_ok then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
which_key.setup({})
|
|
|
@ -1,15 +0,0 @@
|
||||||
vim.g.better_whitespace_enabled = 1
|
|
||||||
vim.g.strip_whitespace_on_save = 1
|
|
||||||
vim.g.show_spaces_that_precede_tabs = 1
|
|
||||||
vim.g.strip_whitelines_at_eof = 1
|
|
||||||
vim.g.better_whitespace_filetypes_blacklist = {
|
|
||||||
"diff",
|
|
||||||
"git",
|
|
||||||
"gitcommit",
|
|
||||||
"unite",
|
|
||||||
"qf",
|
|
||||||
"help",
|
|
||||||
"markdown",
|
|
||||||
"fugitive",
|
|
||||||
"toggleterm",
|
|
||||||
}
|
|
Reference in a new issue