test
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
|
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
|
||||||
vim.g.mapleader = " "
|
vim.g.mapleader = " "
|
||||||
vim.cmd("source test.vim")
|
vim.cmd "source test.vim"
|
||||||
|
|
||||||
-- bootstrap lazy and all plugins
|
-- bootstrap lazy and all plugins
|
||||||
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||||
@@ -8,7 +8,12 @@ local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
|||||||
if not vim.uv.fs_stat(lazypath) then
|
if not vim.uv.fs_stat(lazypath) then
|
||||||
local repo = "https://github.com/folke/lazy.nvim.git"
|
local repo = "https://github.com/folke/lazy.nvim.git"
|
||||||
vim.fn.system {
|
vim.fn.system {
|
||||||
"git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath
|
"git",
|
||||||
|
"clone",
|
||||||
|
"--filter=blob:none",
|
||||||
|
repo,
|
||||||
|
"--branch=stable",
|
||||||
|
lazypath,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -18,14 +23,7 @@ local lazy_config = require "configs.lazy"
|
|||||||
|
|
||||||
-- load plugins
|
-- load plugins
|
||||||
require("lazy").setup({
|
require("lazy").setup({
|
||||||
{
|
import = "plugins"
|
||||||
"NvChad/NvChad",
|
|
||||||
lazy = false,
|
|
||||||
branch = "v2.5",
|
|
||||||
import = "nvchad.plugins",
|
|
||||||
},
|
|
||||||
|
|
||||||
{ import = "plugins" },
|
|
||||||
}, lazy_config)
|
}, lazy_config)
|
||||||
|
|
||||||
-- load theme
|
-- load theme
|
||||||
@@ -33,9 +31,10 @@ dofile(vim.g.base46_cache .. "defaults")
|
|||||||
dofile(vim.g.base46_cache .. "statusline")
|
dofile(vim.g.base46_cache .. "statusline")
|
||||||
|
|
||||||
require "options"
|
require "options"
|
||||||
|
require "plugins"
|
||||||
require "nvchad.autocmds"
|
require "nvchad.autocmds"
|
||||||
|
|
||||||
require("configs.set")
|
require "configs.set"
|
||||||
|
|
||||||
vim.opt.relativenumber = true
|
vim.opt.relativenumber = true
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"CopilotChat.nvim": { "branch": "main", "commit": "2ebe591cff06018e265263e71e1dbc4c5aa8281e" },
|
"CopilotChat.nvim": { "branch": "main", "commit": "2ebe591cff06018e265263e71e1dbc4c5aa8281e" },
|
||||||
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
"LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
|
||||||
"NvChad": { "branch": "v2.5", "commit": "bbc3d43db088c141b142a40cd5f717635833a54e" },
|
|
||||||
"auto-session": { "branch": "main", "commit": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c" },
|
"auto-session": { "branch": "main", "commit": "021b64ed7d4ac68a37be3ad28d8e1cba5bec582c" },
|
||||||
"base46": { "branch": "v2.5", "commit": "5009bc479de4f53ec98e9dd1692beb1f39ff3a82" },
|
"base46": { "branch": "v2.5", "commit": "5009bc479de4f53ec98e9dd1692beb1f39ff3a82" },
|
||||||
"bufresize.nvim": { "branch": "master", "commit": "3b19527ab936d6910484dcc20fb59bdb12322d8b" },
|
"bufresize.nvim": { "branch": "master", "commit": "3b19527ab936d6910484dcc20fb59bdb12322d8b" },
|
||||||
|
|||||||
@@ -0,0 +1,57 @@
|
|||||||
|
dofile(vim.g.base46_cache .. "cmp")
|
||||||
|
|
||||||
|
local cmp = require "cmp"
|
||||||
|
|
||||||
|
local options = {
|
||||||
|
completion = { completeopt = "menu,menuone" },
|
||||||
|
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
require("luasnip").lsp_expand(args.body)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
mapping = {
|
||||||
|
["<C-p>"] = cmp.mapping.select_prev_item(),
|
||||||
|
["<C-n>"] = cmp.mapping.select_next_item(),
|
||||||
|
["<C-d>"] = cmp.mapping.scroll_docs(-4),
|
||||||
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||||
|
["<C-Space>"] = cmp.mapping.complete(),
|
||||||
|
["<C-e>"] = cmp.mapping.close(),
|
||||||
|
|
||||||
|
["<CR>"] = cmp.mapping.confirm {
|
||||||
|
behavior = cmp.ConfirmBehavior.Insert,
|
||||||
|
select = true,
|
||||||
|
},
|
||||||
|
|
||||||
|
["<Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_next_item()
|
||||||
|
elseif require("luasnip").expand_or_jumpable() then
|
||||||
|
require("luasnip").expand_or_jump()
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
|
||||||
|
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||||
|
if cmp.visible() then
|
||||||
|
cmp.select_prev_item()
|
||||||
|
elseif require("luasnip").jumpable(-1) then
|
||||||
|
require("luasnip").jump(-1)
|
||||||
|
else
|
||||||
|
fallback()
|
||||||
|
end
|
||||||
|
end, { "i", "s" }),
|
||||||
|
},
|
||||||
|
|
||||||
|
sources = {
|
||||||
|
{ name = "nvim_lsp" },
|
||||||
|
{ name = "luasnip" },
|
||||||
|
{ name = "buffer" },
|
||||||
|
{ name = "nvim_lua" },
|
||||||
|
{ name = "path" },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return vim.tbl_deep_extend("force", options, require "nvchad.cmp")
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
dofile(vim.g.base46_cache .. "git")
|
||||||
|
|
||||||
|
return {
|
||||||
|
signs = {
|
||||||
|
delete = { text = "" },
|
||||||
|
changedelete = { text = "" },
|
||||||
|
},
|
||||||
|
}
|
||||||
+80
-71
@@ -1,78 +1,88 @@
|
|||||||
local cmp = require("cmp")
|
local M = {}
|
||||||
local cmp_lsp = require("cmp_nvim_lsp")
|
local map = vim.keymap.set
|
||||||
local capabilities = vim.tbl_deep_extend(
|
|
||||||
"force",
|
|
||||||
{},
|
|
||||||
vim.lsp.protocol.make_client_capabilities(),
|
|
||||||
cmp_lsp.default_capabilities()
|
|
||||||
)
|
|
||||||
|
|
||||||
|
-- export on_attach & capabilities
|
||||||
|
M.on_attach = function(_, bufnr)
|
||||||
|
local function opts(desc)
|
||||||
|
return { buffer = bufnr, desc = "LSP " .. desc }
|
||||||
|
end
|
||||||
|
|
||||||
require("nvchad.configs.lspconfig").defaults()
|
map("n", "gD", vim.lsp.buf.declaration, opts "Go to declaration")
|
||||||
require("fidget").setup({})
|
map("n", "gd", vim.lsp.buf.definition, opts "Go to definition")
|
||||||
require("mason").setup()
|
map("n", "gi", vim.lsp.buf.implementation, opts "Go to implementation")
|
||||||
require("mason-lspconfig").setup({
|
map("n", "<leader>sh", vim.lsp.buf.signature_help, opts "Show signature help")
|
||||||
ensure_installed = {
|
map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts "Add workspace folder")
|
||||||
"lua_ls",
|
map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts "Remove workspace folder")
|
||||||
"rust_analyzer",
|
|
||||||
"gopls",
|
map("n", "<leader>wl", function()
|
||||||
|
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||||
|
end, opts "List workspace folders")
|
||||||
|
|
||||||
|
map("n", "<leader>D", vim.lsp.buf.type_definition, opts "Go to type definition")
|
||||||
|
map("n", "<leader>ra", require "nvchad.lsp.renamer", opts "NvRenamer")
|
||||||
|
|
||||||
|
map({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts "Code action")
|
||||||
|
map("n", "gr", vim.lsp.buf.references, opts "Show references")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- disable semanticTokens
|
||||||
|
M.on_init = function(client, _)
|
||||||
|
if client.supports_method "textDocument/semanticTokens" then
|
||||||
|
client.server_capabilities.semanticTokensProvider = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
M.capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||||
|
|
||||||
|
M.capabilities.textDocument.completion.completionItem = {
|
||||||
|
documentationFormat = { "markdown", "plaintext" },
|
||||||
|
snippetSupport = true,
|
||||||
|
preselectSupport = true,
|
||||||
|
insertReplaceSupport = true,
|
||||||
|
labelDetailsSupport = true,
|
||||||
|
deprecatedSupport = true,
|
||||||
|
commitCharactersSupport = true,
|
||||||
|
tagSupport = { valueSet = { 1 } },
|
||||||
|
resolveSupport = {
|
||||||
|
properties = {
|
||||||
|
"documentation",
|
||||||
|
"detail",
|
||||||
|
"additionalTextEdits",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
handlers = {
|
|
||||||
function(server_name) -- default handler (optional)
|
|
||||||
require("lspconfig")[server_name].setup {
|
|
||||||
capabilities = capabilities
|
|
||||||
}
|
}
|
||||||
end,
|
|
||||||
|
|
||||||
zls = function()
|
M.defaults = function()
|
||||||
local lspconfig = require("lspconfig")
|
dofile(vim.g.base46_cache .. "lsp")
|
||||||
lspconfig.zls.setup({
|
require("nvchad.lsp").diagnostic_config()
|
||||||
root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"),
|
|
||||||
settings = {
|
require("lspconfig").lua_ls.setup {
|
||||||
zls = {
|
on_attach = M.on_attach,
|
||||||
enable_inlay_hints = true,
|
capabilities = M.capabilities,
|
||||||
enable_snippets = true,
|
on_init = M.on_init,
|
||||||
warn_style = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
vim.g.zig_fmt_parse_errors = 0
|
|
||||||
vim.g.zig_fmt_autosave = 0
|
|
||||||
|
|
||||||
end,
|
|
||||||
["lua_ls"] = function()
|
|
||||||
local lspconfig = require("lspconfig")
|
|
||||||
lspconfig.lua_ls.setup {
|
|
||||||
capabilities = capabilities,
|
|
||||||
settings = {
|
settings = {
|
||||||
Lua = {
|
Lua = {
|
||||||
runtime = { version = "Lua 5.1" },
|
|
||||||
diagnostics = {
|
diagnostics = {
|
||||||
globals = { "bit", "vim", "it", "describe", "before_each", "after_each" },
|
globals = { "vim" },
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
local cmp_select = { behaivior = cmp.SelectBehavior.Select }
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
|
|
||||||
end,
|
|
||||||
},
|
},
|
||||||
sources = cmp.config.sources({
|
workspace = {
|
||||||
{ name = 'nvim_lsp' },
|
library = {
|
||||||
{ name = 'luasnip' }, -- For luasnip users.
|
vim.fn.expand "$VIMRUNTIME/lua",
|
||||||
|
vim.fn.expand "$VIMRUNTIME/lua/vim/lsp",
|
||||||
|
vim.fn.stdpath "data" .. "/lazy/ui/nvchad_types",
|
||||||
|
vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy",
|
||||||
|
"${3rd}/luv/library",
|
||||||
},
|
},
|
||||||
{
|
maxPreload = 100000,
|
||||||
{ name = 'buffer' },
|
preloadFileSize = 10000,
|
||||||
})
|
},
|
||||||
})
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
require("fidget").setup({})
|
||||||
|
|
||||||
vim.diagnostic.config({
|
vim.diagnostic.config({
|
||||||
-- update_in_insert = true,
|
-- update_in_insert = true,
|
||||||
@@ -87,7 +97,6 @@ vim.diagnostic.config({
|
|||||||
})
|
})
|
||||||
|
|
||||||
local lspconfig = require "lspconfig"
|
local lspconfig = require "lspconfig"
|
||||||
local nvlsp = require "nvchad.configs.lspconfig"
|
|
||||||
|
|
||||||
-- EXAMPLE
|
-- EXAMPLE
|
||||||
local servers = {
|
local servers = {
|
||||||
@@ -105,15 +114,15 @@ local servers = {
|
|||||||
-- lsps with default config
|
-- lsps with default config
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
lspconfig[lsp].setup {
|
lspconfig[lsp].setup {
|
||||||
on_attach = nvlsp.on_attach,
|
on_attach = M.on_attach,
|
||||||
on_init = nvlsp.on_init,
|
on_init = M.on_init,
|
||||||
capabilities = nvlsp.capabilities,
|
capabilities = M.capabilities,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
-- configuring single server, example: typescript
|
-- configuring single server, example: typescript
|
||||||
-- lspconfig.ts_ls.setup {
|
-- lspconfig.ts_ls.setup {
|
||||||
-- on_attach = nvlsp.on_attach,
|
-- on_attach = M.on_attach,
|
||||||
-- on_init = nvlsp.on_init,
|
-- on_init = M.on_init,
|
||||||
-- capabilities = nvlsp.capabilities,
|
-- capabilities = M.capabilities,
|
||||||
-- }
|
-- }
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
-- vscode format
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load { exclude = vim.g.vscode_snippets_exclude or {} }
|
||||||
|
require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.vscode_snippets_path or "" }
|
||||||
|
|
||||||
|
-- snipmate format
|
||||||
|
require("luasnip.loaders.from_snipmate").load()
|
||||||
|
require("luasnip.loaders.from_snipmate").lazy_load { paths = vim.g.snipmate_snippets_path or "" }
|
||||||
|
|
||||||
|
-- lua format
|
||||||
|
require("luasnip.loaders.from_lua").load()
|
||||||
|
require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" }
|
||||||
|
|
||||||
|
vim.api.nvim_create_autocmd("InsertLeave", {
|
||||||
|
callback = function()
|
||||||
|
if
|
||||||
|
require("luasnip").session.current_nodes[vim.api.nvim_get_current_buf()]
|
||||||
|
and not require("luasnip").session.jump_active
|
||||||
|
then
|
||||||
|
require("luasnip").unlink_current()
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
dofile(vim.g.base46_cache .. "mason")
|
||||||
|
|
||||||
|
return {
|
||||||
|
PATH = "skip",
|
||||||
|
|
||||||
|
ui = {
|
||||||
|
icons = {
|
||||||
|
package_pending = " ",
|
||||||
|
package_installed = " ",
|
||||||
|
package_uninstalled = " ",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
max_concurrent_installers = 10,
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
dofile(vim.g.base46_cache .. "nvimtree")
|
||||||
|
|
||||||
|
return {
|
||||||
|
filters = { dotfiles = false },
|
||||||
|
disable_netrw = true,
|
||||||
|
hijack_cursor = true,
|
||||||
|
sync_root_with_cwd = true,
|
||||||
|
update_focused_file = {
|
||||||
|
enable = true,
|
||||||
|
update_root = false,
|
||||||
|
},
|
||||||
|
view = {
|
||||||
|
width = 30,
|
||||||
|
preserve_window_proportions = true,
|
||||||
|
},
|
||||||
|
renderer = {
|
||||||
|
root_folder_label = false,
|
||||||
|
highlight_git = true,
|
||||||
|
indent_markers = { enable = true },
|
||||||
|
icons = {
|
||||||
|
glyphs = {
|
||||||
|
default = "",
|
||||||
|
folder = {
|
||||||
|
default = "",
|
||||||
|
empty = "",
|
||||||
|
empty_open = "",
|
||||||
|
open = "",
|
||||||
|
symlink = "",
|
||||||
|
},
|
||||||
|
git = { unmerged = "" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
dofile(vim.g.base46_cache .. "telescope")
|
||||||
|
|
||||||
|
return {
|
||||||
|
defaults = {
|
||||||
|
prompt_prefix = " ",
|
||||||
|
selection_caret = " ",
|
||||||
|
entry_prefix = " ",
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
layout_config = {
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "top",
|
||||||
|
preview_width = 0.55,
|
||||||
|
},
|
||||||
|
width = 0.87,
|
||||||
|
height = 0.80,
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
n = { ["q"] = require("telescope.actions").close },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
extensions_list = { "themes", "terms" },
|
||||||
|
extensions = {},
|
||||||
|
}
|
||||||
+3
-30
@@ -1,35 +1,10 @@
|
|||||||
-- local function resize_left()
|
|
||||||
-- local cur_win = vim.api.nvim_get_current_win()
|
|
||||||
-- vim.cmd('wincmd h')
|
|
||||||
-- local new_win = vim.api.nvim_get_current_win()
|
|
||||||
-- if cur_win == new_win then
|
|
||||||
-- vim.cmd('vertical resize -10')
|
|
||||||
-- elseif vim.bo[new_win].filetype == 'NvimTree' then
|
|
||||||
--
|
|
||||||
-- else
|
|
||||||
-- vim.cmd('vertical resize -10')
|
|
||||||
-- vim.cmd('wincmd l')
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- local function resize_right()
|
|
||||||
-- local cur_win = vim.api.nvim_get_current_win()
|
|
||||||
-- vim.cmd('wincmd l')
|
|
||||||
-- local new_win = vim.api.nvim_get_current_win()
|
|
||||||
-- if cur_win == new_win then
|
|
||||||
-- vim.cmd('vertical resize -10')
|
|
||||||
-- else
|
|
||||||
-- vim.cmd('vertical resize -10')
|
|
||||||
-- vim.cmd('wincmd h')
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
require "nvchad.mappings"
|
require "nvchad.mappings"
|
||||||
|
|
||||||
-- add yours here
|
|
||||||
|
|
||||||
local map = vim.keymap.set
|
local map = vim.keymap.set
|
||||||
|
|
||||||
|
map("v", "S-Up", ":m '<-2<CR>gv=gv")
|
||||||
|
map("v", "S-Down", ":m '>+1<CR>gv=gv")
|
||||||
|
|
||||||
map("n", ";", ":", { desc = "CMD enter command mode" })
|
map("n", ";", ":", { desc = "CMD enter command mode" })
|
||||||
map("i", "jk", "<ESC>")
|
map("i", "jk", "<ESC>")
|
||||||
|
|
||||||
@@ -49,5 +24,3 @@ map('n', '<leader>u', vim.cmd.UndotreeToggle)
|
|||||||
map("n", "<A-->", "<cmd>BufDel<cr>")
|
map("n", "<A-->", "<cmd>BufDel<cr>")
|
||||||
|
|
||||||
map("n", "<C-a>", "ggVG", { noremap = true, silent = true })
|
map("n", "<C-a>", "ggVG", { noremap = true, silent = true })
|
||||||
|
|
||||||
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
|
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
local autocmd = vim.api.nvim_create_autocmd
|
||||||
|
|
||||||
|
-- user event that loads after UIEnter + only if file buf is there
|
||||||
|
autocmd({ "UIEnter", "BufReadPost", "BufNewFile" }, {
|
||||||
|
group = vim.api.nvim_create_augroup("NvFilePost", { clear = true }),
|
||||||
|
callback = function(args)
|
||||||
|
local file = vim.api.nvim_buf_get_name(args.buf)
|
||||||
|
local buftype = vim.api.nvim_get_option_value("buftype", { buf = args.buf })
|
||||||
|
|
||||||
|
if not vim.g.ui_entered and args.event == "UIEnter" then
|
||||||
|
vim.g.ui_entered = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if file ~= "" and buftype ~= "nofile" and vim.g.ui_entered then
|
||||||
|
vim.api.nvim_exec_autocmds("User", { pattern = "FilePost", modeline = false })
|
||||||
|
vim.api.nvim_del_augroup_by_name "NvFilePost"
|
||||||
|
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.api.nvim_exec_autocmds("FileType", {})
|
||||||
|
|
||||||
|
if vim.g.editorconfig then
|
||||||
|
require("editorconfig").config(args.buf)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
local map = vim.keymap.set
|
||||||
|
|
||||||
|
map("i", "<C-b>", "<ESC>^i", { desc = "move beginning of line" })
|
||||||
|
map("i", "<C-e>", "<End>", { desc = "move end of line" })
|
||||||
|
map("i", "<C-h>", "<Left>", { desc = "move left" })
|
||||||
|
map("i", "<C-l>", "<Right>", { desc = "move right" })
|
||||||
|
map("i", "<C-j>", "<Down>", { desc = "move down" })
|
||||||
|
map("i", "<C-k>", "<Up>", { desc = "move up" })
|
||||||
|
|
||||||
|
map("n", "<C-h>", "<C-w>h", { desc = "switch window left" })
|
||||||
|
map("n", "<C-l>", "<C-w>l", { desc = "switch window right" })
|
||||||
|
map("n", "<C-j>", "<C-w>j", { desc = "switch window down" })
|
||||||
|
map("n", "<C-k>", "<C-w>k", { desc = "switch window up" })
|
||||||
|
|
||||||
|
map("n", "<Esc>", "<cmd>noh<CR>", { desc = "general clear highlights" })
|
||||||
|
|
||||||
|
map("n", "<C-s>", "<cmd>w<CR>", { desc = "general save file" })
|
||||||
|
map("n", "<C-c>", "<cmd>%y+<CR>", { desc = "general copy whole file" })
|
||||||
|
|
||||||
|
map("n", "<leader>n", "<cmd>set nu!<CR>", { desc = "toggle line number" })
|
||||||
|
map("n", "<leader>rn", "<cmd>set rnu!<CR>", { desc = "toggle relative number" })
|
||||||
|
map("n", "<leader>ch", "<cmd>NvCheatsheet<CR>", { desc = "toggle nvcheatsheet" })
|
||||||
|
|
||||||
|
map("n", "<leader>fm", function()
|
||||||
|
require("conform").format { lsp_fallback = true }
|
||||||
|
end, { desc = "general format file" })
|
||||||
|
|
||||||
|
-- global lsp mappings
|
||||||
|
map("n", "<leader>ds", vim.diagnostic.setloclist, { desc = "LSP diagnostic loclist" })
|
||||||
|
|
||||||
|
-- tabufline
|
||||||
|
map("n", "<leader>b", "<cmd>enew<CR>", { desc = "buffer new" })
|
||||||
|
|
||||||
|
map("n", "<tab>", function()
|
||||||
|
require("nvchad.tabufline").next()
|
||||||
|
end, { desc = "buffer goto next" })
|
||||||
|
|
||||||
|
map("n", "<S-tab>", function()
|
||||||
|
require("nvchad.tabufline").prev()
|
||||||
|
end, { desc = "buffer goto prev" })
|
||||||
|
|
||||||
|
map("n", "<leader>x", function()
|
||||||
|
require("nvchad.tabufline").close_buffer()
|
||||||
|
end, { desc = "buffer close" })
|
||||||
|
|
||||||
|
-- Comment
|
||||||
|
map("n", "<leader>/", "gcc", { desc = "toggle comment", remap = true })
|
||||||
|
map("v", "<leader>/", "gc", { desc = "toggle comment", remap = true })
|
||||||
|
|
||||||
|
-- nvimtree
|
||||||
|
map("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "nvimtree toggle window" })
|
||||||
|
map("n", "<leader>e", "<cmd>NvimTreeFocus<CR>", { desc = "nvimtree focus window" })
|
||||||
|
|
||||||
|
-- telescope
|
||||||
|
map("n", "<leader>fw", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
|
||||||
|
map("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" })
|
||||||
|
map("n", "<leader>fh", "<cmd>Telescope help_tags<CR>", { desc = "telescope help page" })
|
||||||
|
map("n", "<leader>ma", "<cmd>Telescope marks<CR>", { desc = "telescope find marks" })
|
||||||
|
map("n", "<leader>fo", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" })
|
||||||
|
map("n", "<leader>fz", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" })
|
||||||
|
map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "telescope git commits" })
|
||||||
|
map("n", "<leader>gt", "<cmd>Telescope git_status<CR>", { desc = "telescope git status" })
|
||||||
|
map("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" })
|
||||||
|
|
||||||
|
map("n", "<leader>th", function()
|
||||||
|
require("nvchad.themes").open()
|
||||||
|
end, { desc = "telescope nvchad themes" })
|
||||||
|
|
||||||
|
map("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" })
|
||||||
|
map(
|
||||||
|
"n",
|
||||||
|
"<leader>fa",
|
||||||
|
"<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
|
||||||
|
{ desc = "telescope find all files" }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- terminal
|
||||||
|
map("t", "<C-x>", "<C-\\><C-N>", { desc = "terminal escape terminal mode" })
|
||||||
|
|
||||||
|
-- new terminals
|
||||||
|
map("n", "<leader>h", function()
|
||||||
|
require("nvchad.term").new { pos = "sp" }
|
||||||
|
end, { desc = "terminal new horizontal term" })
|
||||||
|
|
||||||
|
map("n", "<leader>v", function()
|
||||||
|
require("nvchad.term").new { pos = "vsp" }
|
||||||
|
end, { desc = "terminal new vertical term" })
|
||||||
|
|
||||||
|
-- toggleable
|
||||||
|
map({ "n", "t" }, "<A-v>", function()
|
||||||
|
require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" }
|
||||||
|
end, { desc = "terminal toggleable vertical term" })
|
||||||
|
|
||||||
|
map({ "n", "t" }, "<A-h>", function()
|
||||||
|
require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" }
|
||||||
|
end, { desc = "terminal toggleable horizontal term" })
|
||||||
|
|
||||||
|
map({ "n", "t" }, "<A-i>", function()
|
||||||
|
require("nvchad.term").toggle { pos = "float", id = "floatTerm" }
|
||||||
|
end, { desc = "terminal toggle floating term" })
|
||||||
|
|
||||||
|
-- whichkey
|
||||||
|
map("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "whichkey all keymaps" })
|
||||||
|
|
||||||
|
map("n", "<leader>wk", function()
|
||||||
|
vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ")
|
||||||
|
end, { desc = "whichkey query lookup" })
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
local opt = vim.opt
|
||||||
|
local o = vim.o
|
||||||
|
local g = vim.g
|
||||||
|
|
||||||
|
-------------------------------------- options ------------------------------------------
|
||||||
|
o.laststatus = 3
|
||||||
|
o.showmode = false
|
||||||
|
|
||||||
|
o.clipboard = "unnamedplus"
|
||||||
|
o.cursorline = true
|
||||||
|
o.cursorlineopt = "number"
|
||||||
|
|
||||||
|
-- Indenting
|
||||||
|
o.expandtab = true
|
||||||
|
o.shiftwidth = 2
|
||||||
|
o.smartindent = true
|
||||||
|
o.tabstop = 2
|
||||||
|
o.softtabstop = 2
|
||||||
|
|
||||||
|
opt.fillchars = { eob = " " }
|
||||||
|
o.ignorecase = true
|
||||||
|
o.smartcase = true
|
||||||
|
o.mouse = "a"
|
||||||
|
|
||||||
|
-- Numbers
|
||||||
|
o.number = true
|
||||||
|
o.numberwidth = 2
|
||||||
|
o.ruler = false
|
||||||
|
|
||||||
|
-- disable nvim intro
|
||||||
|
opt.shortmess:append "sI"
|
||||||
|
|
||||||
|
o.signcolumn = "yes"
|
||||||
|
o.splitbelow = true
|
||||||
|
o.splitright = true
|
||||||
|
o.timeoutlen = 400
|
||||||
|
o.undofile = true
|
||||||
|
|
||||||
|
-- interval for writing swap file to disk, also used by gitsigns
|
||||||
|
o.updatetime = 250
|
||||||
|
|
||||||
|
-- go to previous/next line with h,l,left arrow and right arrow
|
||||||
|
-- when cursor reaches end/beginning of line
|
||||||
|
opt.whichwrap:append "<>[]hl"
|
||||||
|
|
||||||
|
-- disable some default providers
|
||||||
|
g.loaded_node_provider = 0
|
||||||
|
g.loaded_python3_provider = 0
|
||||||
|
g.loaded_perl_provider = 0
|
||||||
|
g.loaded_ruby_provider = 0
|
||||||
|
|
||||||
|
-- add binaries installed by mason.nvim to path
|
||||||
|
local is_windows = vim.fn.has "win32" ~= 0
|
||||||
|
local sep = is_windows and "\\" or "/"
|
||||||
|
local delim = is_windows and ";" or ":"
|
||||||
|
vim.env.PATH = table.concat({ vim.fn.stdpath "data", "mason", "bin" }, sep) .. delim .. vim.env.PATH
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
return {
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvchad/base46",
|
||||||
|
build = function()
|
||||||
|
require("base46").load_all_highlights()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvchad/ui",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require "nvchad"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
"nvzone/volt",
|
||||||
|
"nvzone/menu",
|
||||||
|
{ "nvzone/minty", cmd = { "Huefy", "Shades" } },
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
opts = function()
|
||||||
|
dofile(vim.g.base46_cache .. "devicons")
|
||||||
|
return { override = require "nvchad.icons.devicons" }
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
|
event = "User FilePost",
|
||||||
|
opts = {
|
||||||
|
indent = { char = "│", highlight = "IblChar" },
|
||||||
|
scope = { char = "│", highlight = "IblScopeChar" },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
dofile(vim.g.base46_cache .. "blankline")
|
||||||
|
|
||||||
|
local hooks = require "ibl.hooks"
|
||||||
|
hooks.register(hooks.type.WHITESPACE, hooks.builtin.hide_first_space_indent_level)
|
||||||
|
require("ibl").setup(opts)
|
||||||
|
|
||||||
|
dofile(vim.g.base46_cache .. "blankline")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- file managing , picker etc
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-tree.lua",
|
||||||
|
cmd = { "NvimTreeToggle", "NvimTreeFocus" },
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.nvimtree"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
keys = { "<leader>", "<c-w>", '"', "'", "`", "c", "v", "g" },
|
||||||
|
cmd = "WhichKey",
|
||||||
|
opts = function()
|
||||||
|
dofile(vim.g.base46_cache .. "whichkey")
|
||||||
|
return {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- formatting!
|
||||||
|
{
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = {
|
||||||
|
formatters_by_ft = { lua = { "stylua" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
-- git stuff
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
event = "User FilePost",
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.gitsigns"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- lsp stuff
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" },
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.mason"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
event = "User FilePost",
|
||||||
|
config = function()
|
||||||
|
require("nvchad.configs.lspconfig").defaults()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- load luasnips + cmp related in insert mode only
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
event = "InsertEnter",
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
-- snippet plugin
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
dependencies = "rafamadriz/friendly-snippets",
|
||||||
|
opts = { history = true, updateevents = "TextChanged,TextChangedI" },
|
||||||
|
config = function(_, opts)
|
||||||
|
require("luasnip").config.set_config(opts)
|
||||||
|
require "nvchad.configs.luasnip"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- autopairing of (){}[] etc
|
||||||
|
{
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
opts = {
|
||||||
|
fast_wrap = {},
|
||||||
|
disable_filetype = { "TelescopePrompt", "vim" },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-autopairs").setup(opts)
|
||||||
|
|
||||||
|
-- setup cmp for autopairs
|
||||||
|
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
|
||||||
|
require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- cmp sources plugins
|
||||||
|
{
|
||||||
|
"saadparwaiz1/cmp_luasnip",
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.cmp"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
dependencies = { "nvim-treesitter/nvim-treesitter" },
|
||||||
|
cmd = "Telescope",
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.telescope"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
event = { "BufReadPost", "BufNewFile" },
|
||||||
|
cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
|
||||||
|
build = ":TSUpdate",
|
||||||
|
opts = function()
|
||||||
|
return require "nvchad.configs.treesitter"
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-treesitter.configs").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -146,4 +146,136 @@ return {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvchad/base46",
|
||||||
|
build = function()
|
||||||
|
require("base46").load_all_highlights()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvchad/ui",
|
||||||
|
lazy = false,
|
||||||
|
config = function()
|
||||||
|
require "nvchad"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
"nvzone/volt",
|
||||||
|
"nvzone/menu",
|
||||||
|
{ "nvzone/minty", cmd = { "Huefy", "Shades" } },
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-web-devicons",
|
||||||
|
opts = function()
|
||||||
|
dofile(vim.g.base46_cache .. "devicons")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
|
event = "User FilePost",
|
||||||
|
opts = {
|
||||||
|
indent = { char = "│", highlight = "IblChar" },
|
||||||
|
scope = { char = "│", highlight = "IblScopeChar" },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
dofile(vim.g.base46_cache .. "blankline")
|
||||||
|
|
||||||
|
local hooks = require "ibl.hooks"
|
||||||
|
hooks.register(hooks.type.WHITESPACE, hooks.builtin.hide_first_space_indent_level)
|
||||||
|
require("ibl").setup(opts)
|
||||||
|
|
||||||
|
dofile(vim.g.base46_cache .. "blankline")
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- file managing , picker etc
|
||||||
|
{
|
||||||
|
"nvim-tree/nvim-tree.lua",
|
||||||
|
cmd = { "NvimTreeToggle", "NvimTreeFocus" },
|
||||||
|
opts = function()
|
||||||
|
return require "configs.nvimtree"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"folke/which-key.nvim",
|
||||||
|
keys = { "<leader>", "<c-w>", '"', "'", "`", "c", "v", "g" },
|
||||||
|
cmd = "WhichKey",
|
||||||
|
opts = function()
|
||||||
|
dofile(vim.g.base46_cache .. "whichkey")
|
||||||
|
return {}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- git stuff
|
||||||
|
{
|
||||||
|
"lewis6991/gitsigns.nvim",
|
||||||
|
event = "User FilePost",
|
||||||
|
opts = function()
|
||||||
|
return require "configs.gitsigns"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- lsp stuff
|
||||||
|
{
|
||||||
|
"williamboman/mason.nvim",
|
||||||
|
cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" },
|
||||||
|
opts = function()
|
||||||
|
return require "configs.mason"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- load luasnips + cmp related in insert mode only
|
||||||
|
{
|
||||||
|
"hrsh7th/nvim-cmp",
|
||||||
|
event = "InsertEnter",
|
||||||
|
dependencies = {
|
||||||
|
{
|
||||||
|
-- snippet plugin
|
||||||
|
"L3MON4D3/LuaSnip",
|
||||||
|
dependencies = "rafamadriz/friendly-snippets",
|
||||||
|
opts = { history = true, updateevents = "TextChanged,TextChangedI" },
|
||||||
|
config = function(_, opts)
|
||||||
|
require("luasnip").config.set_config(opts)
|
||||||
|
require "configs.luasnip"
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- autopairing of (){}[] etc
|
||||||
|
{
|
||||||
|
"windwp/nvim-autopairs",
|
||||||
|
opts = {
|
||||||
|
fast_wrap = {},
|
||||||
|
disable_filetype = { "TelescopePrompt", "vim" },
|
||||||
|
},
|
||||||
|
config = function(_, opts)
|
||||||
|
require("nvim-autopairs").setup(opts)
|
||||||
|
|
||||||
|
-- setup cmp for autopairs
|
||||||
|
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
|
||||||
|
require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done())
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- cmp sources plugins
|
||||||
|
{
|
||||||
|
"saadparwaiz1/cmp_luasnip",
|
||||||
|
"hrsh7th/cmp-nvim-lua",
|
||||||
|
"hrsh7th/cmp-nvim-lsp",
|
||||||
|
"hrsh7th/cmp-buffer",
|
||||||
|
"hrsh7th/cmp-path",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nvim-telescope/telescope.nvim",
|
||||||
|
cmd = "Telescope",
|
||||||
|
opts = function()
|
||||||
|
return require "configs.telescope"
|
||||||
|
end,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user