From a0ecbb3dc8c96a4f9a01a030e7ed50c7efdcdaf4 Mon Sep 17 00:00:00 2001 From: Zacharias-Brohn Date: Fri, 7 Feb 2025 21:00:50 +0100 Subject: [PATCH] fix dots --- init.lua | 9 +- lazy-lock.json | 9 +- lua/configs/lspconfig.lua | 10 +- lua/configs/set.lua | 4 +- lua/configs/treesitter.lua | 15 +++ lua/init.lua | 4 + lua/nvchad/autocmds.lua | 27 +++++ lua/nvchad/configs/cmp.lua | 57 ++++++++++ lua/nvchad/configs/gitsigns.lua | 9 ++ lua/nvchad/configs/lspconfig.lua | 85 +++++++++++++++ lua/nvchad/configs/luasnip.lua | 22 ++++ lua/nvchad/configs/mason.lua | 15 +++ lua/nvchad/configs/nvimtree.lua | 34 ++++++ lua/nvchad/configs/telescope.lua | 24 +++++ lua/nvchad/configs/treesitter.lua | 15 +++ lua/nvchad/mappings.lua | 107 +++++++++++++++++++ lua/nvchad/options.lua | 2 + lua/nvchad/plugins/init.lua | 169 ++++++++++++++++++++++++++++++ lua/plugins/init.lua | 150 ++++++++++++++++++++++++-- 19 files changed, 741 insertions(+), 26 deletions(-) create mode 100644 lua/configs/treesitter.lua create mode 100644 lua/nvchad/autocmds.lua create mode 100644 lua/nvchad/configs/cmp.lua create mode 100644 lua/nvchad/configs/gitsigns.lua create mode 100644 lua/nvchad/configs/lspconfig.lua create mode 100644 lua/nvchad/configs/luasnip.lua create mode 100644 lua/nvchad/configs/mason.lua create mode 100644 lua/nvchad/configs/nvimtree.lua create mode 100644 lua/nvchad/configs/telescope.lua create mode 100644 lua/nvchad/configs/treesitter.lua create mode 100644 lua/nvchad/mappings.lua create mode 100644 lua/nvchad/options.lua create mode 100644 lua/nvchad/plugins/init.lua diff --git a/init.lua b/init.lua index 3823631..5f77458 100644 --- a/init.lua +++ b/init.lua @@ -16,16 +16,8 @@ vim.opt.rtp:prepend(lazypath) local lazy_config = require "configs.lazy" - -- load plugins require("lazy").setup({ - { - "NvChad/NvChad", - lazy = false, - branch = "v2.5", - import = "nvchad.plugins", - }, - { import = "plugins" }, }, lazy_config) @@ -41,3 +33,4 @@ require("configs.set") vim.schedule(function() require "mappings" end) + diff --git a/lazy-lock.json b/lazy-lock.json index 1f9c919..1024404 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,7 +1,6 @@ { - "CopilotChat.nvim": { "branch": "main", "commit": "834ba1bc71e1a146831be0ebfeb456ad252c3c56" }, + "CopilotChat.nvim": { "branch": "main", "commit": "dbce8a231d1ac72c68ce00b86b415c9304417102" }, "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, - "NvChad": { "branch": "v2.5", "commit": "6f25b2739684389ca69ea8229386c098c566c408" }, "auto-session": { "branch": "main", "commit": "82630e2f70be140f8dcc75a12e2ee2839e8488c2" }, "base46": { "branch": "v2.5", "commit": "fde7a2cd54599e148d376f82980407c2d24b0fa2" }, "bufresize.nvim": { "branch": "master", "commit": "3b19527ab936d6910484dcc20fb59bdb12322d8b" }, @@ -19,7 +18,7 @@ "focus.nvim": { "branch": "master", "commit": "d76338e58e49f844e8f6a7aff16a74a2a55a80ef" }, "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, "fzf-lua": { "branch": "main", "commit": "1176d512b1390f992c775f08dcb155d4e0ba01cf" }, - "gitsigns.nvim": { "branch": "main", "commit": "fc56fc25cfc3dc3f24266508aa4a7096102eb6a6" }, + "gitsigns.nvim": { "branch": "main", "commit": "c23bbd3ed2c7a3fdc3399e97e24f9e158f57612f" }, "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, "lazy.nvim": { "branch": "main", "commit": "f15a93907ddad3d9139aea465ae18336d87f5ce6" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "f75e877f5266e87523eb5a18fcde2081820d087b" }, @@ -32,10 +31,10 @@ "nvim-bufdel": { "branch": "main", "commit": "523d58e94e7212fff3e05c247b962dc8f93bcfde" }, "nvim-cmp": { "branch": "main", "commit": "12509903a5723a876abd65953109f926f4634c30" }, "nvim-dap": { "branch": "master", "commit": "52302f02fea3a490e55475de52fa4deb8af2eb11" }, - "nvim-lspconfig": { "branch": "master", "commit": "696ac53289280a29a349f3e68624e23129341126" }, + "nvim-lspconfig": { "branch": "master", "commit": "75edb91a3d2deabe76a9911cde2c13d411b3b097" }, "nvim-notify": { "branch": "master", "commit": "22f29093eae7785773ee9d543f8750348b1a195c" }, "nvim-tree.lua": { "branch": "master", "commit": "70825f23db61ecd900c4cfea169bffe931926a9d" }, - "nvim-treesitter": { "branch": "master", "commit": "824bf8455fd670186986fb3eb46fcaa4c5460949" }, + "nvim-treesitter": { "branch": "master", "commit": "62911c78a868bac24c8a86f2c1c412d0b799f885" }, "nvim-web-devicons": { "branch": "master", "commit": "402377242b04be3f4f0f3720bd952df86e946c30" }, "plenary.nvim": { "branch": "master", "commit": "3707cdb1e43f5cea73afb6037e6494e7ce847a66" }, "presence.nvim": { "branch": "main", "commit": "87c857a56b7703f976d3a5ef15967d80508df6e6" }, diff --git a/lua/configs/lspconfig.lua b/lua/configs/lspconfig.lua index 595ba67..35a4da4 100644 --- a/lua/configs/lspconfig.lua +++ b/lua/configs/lspconfig.lua @@ -102,11 +102,11 @@ local servers = { "zls", } -lspconfig.hyprls.setup { - root_dir = vim.fs.root( 0, 'hyprland.conf' ), - single_file_support = false, - filetypes = { "conf" }, -} +-- lspconfig.hyprls.setup { +-- root_dir = vim.fs.root( 0, 'hyprland.conf' ), +-- single_file_support = false, +-- filetypes = { "conf" }, +-- } -- lsps with default config for _, lsp in ipairs(servers) do diff --git a/lua/configs/set.lua b/lua/configs/set.lua index 3d21cef..cf8ad5f 100644 --- a/lua/configs/set.lua +++ b/lua/configs/set.lua @@ -27,8 +27,8 @@ vim.opt.updatetime = 50 vim.opt.colorcolumn = "80" -vim.opt.textwidth = 80 -vim.opt.formatoptions = "tcrqnja" +vim.opt.textwidth = 0 +vim.opt.formatoptions = "tcrqnj" vim.o.sessionoptions = "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal,localoptions" diff --git a/lua/configs/treesitter.lua b/lua/configs/treesitter.lua new file mode 100644 index 0000000..b330243 --- /dev/null +++ b/lua/configs/treesitter.lua @@ -0,0 +1,15 @@ +pcall(function() + dofile(vim.g.base46_cache .. "syntax") + dofile(vim.g.base46_cache .. "treesitter") +end) + +return { + ensure_installed = "all", + sync_install = false, + auto_install = true, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, +} + diff --git a/lua/init.lua b/lua/init.lua index 943cc2e..69fd804 100644 --- a/lua/init.lua +++ b/lua/init.lua @@ -14,3 +14,7 @@ autocmd('LspAttach', { vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, opts) end }) + +vim.filetype.add({ + pattern = { [".*/hypr/.*%.conf$"] = "hyprlang" }, +}) diff --git a/lua/nvchad/autocmds.lua b/lua/nvchad/autocmds.lua new file mode 100644 index 0000000..47437aa --- /dev/null +++ b/lua/nvchad/autocmds.lua @@ -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, +}) diff --git a/lua/nvchad/configs/cmp.lua b/lua/nvchad/configs/cmp.lua new file mode 100644 index 0000000..28071ae --- /dev/null +++ b/lua/nvchad/configs/cmp.lua @@ -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 = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.close(), + + [""] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Insert, + select = true, + }, + + [""] = 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" }), + + [""] = 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") diff --git a/lua/nvchad/configs/gitsigns.lua b/lua/nvchad/configs/gitsigns.lua new file mode 100644 index 0000000..b8550e3 --- /dev/null +++ b/lua/nvchad/configs/gitsigns.lua @@ -0,0 +1,9 @@ +dofile(vim.g.base46_cache .. "git") + +return { + signs = { + delete = { text = "󰍵" }, + changedelete = { text = "󱕖" }, + }, + attach_to_untracked = true, +} diff --git a/lua/nvchad/configs/lspconfig.lua b/lua/nvchad/configs/lspconfig.lua new file mode 100644 index 0000000..25e7eed --- /dev/null +++ b/lua/nvchad/configs/lspconfig.lua @@ -0,0 +1,85 @@ +local M = {} +local map = vim.keymap.set + +-- export on_attach & capabilities +M.on_attach = function(_, bufnr) + local function opts(desc) + return { buffer = bufnr, desc = "LSP " .. desc } + end + + map("n", "gD", vim.lsp.buf.declaration, opts "Go to declaration") + map("n", "gd", vim.lsp.buf.definition, opts "Go to definition") + map("n", "gi", vim.lsp.buf.implementation, opts "Go to implementation") + map("n", "sh", vim.lsp.buf.signature_help, opts "Show signature help") + map("n", "wa", vim.lsp.buf.add_workspace_folder, opts "Add workspace folder") + map("n", "wr", vim.lsp.buf.remove_workspace_folder, opts "Remove workspace folder") + + map("n", "wl", function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, opts "List workspace folders") + + map("n", "D", vim.lsp.buf.type_definition, opts "Go to type definition") + map("n", "ra", require "nvchad.lsp.renamer", opts "NvRenamer") + + map({ "n", "v" }, "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", + }, + }, +} + +M.defaults = function() + dofile(vim.g.base46_cache .. "lsp") + require("nvchad.lsp").diagnostic_config() + + require("lspconfig").lua_ls.setup { + on_attach = M.on_attach, + capabilities = M.capabilities, + on_init = M.on_init, + + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + 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, + preloadFileSize = 10000, + }, + }, + }, + } +end + +return M diff --git a/lua/nvchad/configs/luasnip.lua b/lua/nvchad/configs/luasnip.lua new file mode 100644 index 0000000..18a6094 --- /dev/null +++ b/lua/nvchad/configs/luasnip.lua @@ -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, +}) diff --git a/lua/nvchad/configs/mason.lua b/lua/nvchad/configs/mason.lua new file mode 100644 index 0000000..f3288b6 --- /dev/null +++ b/lua/nvchad/configs/mason.lua @@ -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, +} diff --git a/lua/nvchad/configs/nvimtree.lua b/lua/nvchad/configs/nvimtree.lua new file mode 100644 index 0000000..20b3ac5 --- /dev/null +++ b/lua/nvchad/configs/nvimtree.lua @@ -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 = "" }, + }, + }, + }, +} diff --git a/lua/nvchad/configs/telescope.lua b/lua/nvchad/configs/telescope.lua new file mode 100644 index 0000000..58f4a72 --- /dev/null +++ b/lua/nvchad/configs/telescope.lua @@ -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 = {}, +} diff --git a/lua/nvchad/configs/treesitter.lua b/lua/nvchad/configs/treesitter.lua new file mode 100644 index 0000000..5b9818b --- /dev/null +++ b/lua/nvchad/configs/treesitter.lua @@ -0,0 +1,15 @@ +pcall(function() + dofile(vim.g.base46_cache .. "syntax") + dofile(vim.g.base46_cache .. "treesitter") +end) + +return { + ensure_installed = { "lua", "luadoc", "printf", "vim", "vimdoc" }, + + highlight = { + enable = true, + use_languagetree = true, + }, + + indent = { enable = true }, +} diff --git a/lua/nvchad/mappings.lua b/lua/nvchad/mappings.lua new file mode 100644 index 0000000..526909b --- /dev/null +++ b/lua/nvchad/mappings.lua @@ -0,0 +1,107 @@ +local map = vim.keymap.set + +map("i", "", "^i", { desc = "move beginning of line" }) +map("i", "", "", { desc = "move end of line" }) +map("i", "", "", { desc = "move left" }) +map("i", "", "", { desc = "move right" }) +map("i", "", "", { desc = "move down" }) +map("i", "", "", { desc = "move up" }) + +map("n", "", "h", { desc = "switch window left" }) +map("n", "", "l", { desc = "switch window right" }) +map("n", "", "j", { desc = "switch window down" }) +map("n", "", "k", { desc = "switch window up" }) + +map("n", "", "noh", { desc = "general clear highlights" }) + +map("n", "", "w", { desc = "general save file" }) +map("n", "", "%y+", { desc = "general copy whole file" }) + +map("n", "n", "set nu!", { desc = "toggle line number" }) +map("n", "rn", "set rnu!", { desc = "toggle relative number" }) +map("n", "ch", "NvCheatsheet", { desc = "toggle nvcheatsheet" }) + +map("n", "fm", function() + require("conform").format { lsp_fallback = true } +end, { desc = "general format file" }) + +-- global lsp mappings +map("n", "ds", vim.diagnostic.setloclist, { desc = "LSP diagnostic loclist" }) + +-- tabufline +map("n", "b", "enew", { desc = "buffer new" }) + +map("n", "", function() + require("nvchad.tabufline").next() +end, { desc = "buffer goto next" }) + +map("n", "", function() + require("nvchad.tabufline").prev() +end, { desc = "buffer goto prev" }) + +map("n", "x", function() + require("nvchad.tabufline").close_buffer() +end, { desc = "buffer close" }) + +-- Comment +map("n", "/", "gcc", { desc = "toggle comment", remap = true }) +map("v", "/", "gc", { desc = "toggle comment", remap = true }) + +-- nvimtree +map("n", "", "NvimTreeToggle", { desc = "nvimtree toggle window" }) +map("n", "e", "NvimTreeFocus", { desc = "nvimtree focus window" }) + +-- telescope +map("n", "fw", "Telescope live_grep", { desc = "telescope live grep" }) +map("n", "fb", "Telescope buffers", { desc = "telescope find buffers" }) +map("n", "fh", "Telescope help_tags", { desc = "telescope help page" }) +map("n", "ma", "Telescope marks", { desc = "telescope find marks" }) +map("n", "fo", "Telescope oldfiles", { desc = "telescope find oldfiles" }) +map("n", "fz", "Telescope current_buffer_fuzzy_find", { desc = "telescope find in current buffer" }) +map("n", "cm", "Telescope git_commits", { desc = "telescope git commits" }) +map("n", "gt", "Telescope git_status", { desc = "telescope git status" }) +map("n", "pt", "Telescope terms", { desc = "telescope pick hidden term" }) + +map("n", "th", function() + require("nvchad.themes").open() +end, { desc = "telescope nvchad themes" }) + +map("n", "ff", "Telescope find_files", { desc = "telescope find files" }) +map( + "n", + "fa", + "Telescope find_files follow=true no_ignore=true hidden=true", + { desc = "telescope find all files" } +) + +-- terminal +map("t", "", "", { desc = "terminal escape terminal mode" }) + +-- new terminals +map("n", "h", function() + require("nvchad.term").new { pos = "sp" } +end, { desc = "terminal new horizontal term" }) + +map("n", "v", function() + require("nvchad.term").new { pos = "vsp" } +end, { desc = "terminal new vertical term" }) + +-- toggleable +map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm" } +end, { desc = "terminal toggleable vertical term" }) + +map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm" } +end, { desc = "terminal toggleable horizontal term" }) + +map({ "n", "t" }, "", function() + require("nvchad.term").toggle { pos = "float", id = "floatTerm" } +end, { desc = "terminal toggle floating term" }) + +-- whichkey +map("n", "wK", "WhichKey ", { desc = "whichkey all keymaps" }) + +map("n", "wk", function() + vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ") +end, { desc = "whichkey query lookup" }) diff --git a/lua/nvchad/options.lua b/lua/nvchad/options.lua new file mode 100644 index 0000000..d4f6414 --- /dev/null +++ b/lua/nvchad/options.lua @@ -0,0 +1,2 @@ +-------------------------------------- options +--------------------------------------------- diff --git a/lua/nvchad/plugins/init.lua b/lua/nvchad/plugins/init.lua new file mode 100644 index 0000000..d93a4c2 --- /dev/null +++ b/lua/nvchad/plugins/init.lua @@ -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 = { "", "", '"', "'", "`", "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", "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, + -- }, +} diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 4adb814..54f83e5 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -144,14 +144,152 @@ return { { "nvim-treesitter/nvim-treesitter", + opts = function() + require "configs.treesitter" + end, + }, + { + "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 = { - ensure_installed = "all", - sync_install = false, - auto_install = true, - highlight = { - enable = true, - additional_vim_regex_highlighting = false, + 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 = { "", "", '"', "'", "`", "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 "nvchad.configs.gitsigns" + end, + }, + + -- lsp stuff + { + "williamboman/mason.nvim", + cmd = { "Mason", "MasonInstall", "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, }, }