diff --git a/.github/README.md b/.github/README.md index d5e4946..48100ce 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,13 +3,13 @@
Home - Install + Install - Contribute + Contribute Support - Features + Features

@@ -89,9 +89,8 @@ A fuzzy file finder, picker, sorter, previewer and much more: - Many beautiful themes, theme toggler by our [base46 plugin](https://github.com/NvChad/base46) - Inbuilt terminal toggling & management with [Nvterm](https://github.com/NvChad/nvterm) - NvChad updater, hide & unhide terminal buffers with [NvChad extensions](https://github.com/NvChad/extensions) -- Lightweight & performant ui plugin with [NvChad UI](https://github.com/NvChad/ui) +- Lightweight & performant ui plugin with [NvChad UI](https://github.com/NvChad/ui) It provides statusline modules, tabufline ( tabs + buffer manager) , beautiful cheatsheets and much more! - File navigation with [nvim-tree.lua](https://github.com/kyazdani42/nvim-tree.lua) -- Managing tabs, buffers with [bufferline.nvim](https://github.com/akinsho/bufferline.nvim) - Beautiful and configurable icons with [nvim-web-devicons](https://github.com/kyazdani42/nvim-web-devicons) - Git diffs and more with [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim) - NeoVim Lsp configuration with [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig) and [mason.nvim](https://github.com/williamboman/mason.nvim) diff --git a/lua/core/bootstrap.lua b/lua/core/bootstrap.lua index 2f435d9..b00fc09 100644 --- a/lua/core/bootstrap.lua +++ b/lua/core/bootstrap.lua @@ -25,24 +25,9 @@ M.lazy = function(install_path) -- install plugins require "plugins" - vim.api.nvim_buf_delete(0, { force = true }) -- close lazy window - ---------- mason packages ------------- - vim.schedule(function() - vim.cmd "MasonInstallAll" - local packages = table.concat(vim.g.mason_binaries_list, " ") - - require("mason-registry"):on("package:install:success", function(pkg) - packages = string.gsub(packages, pkg.name:gsub("%-", "%%-"), "") -- rm package name - - if packages:match "%S" == nil then - vim.schedule(function() - vim.api.nvim_buf_delete(0, { force = true }) - M.echo "Now please read the docs at nvchad.com!! 󰕹 󰱬" - end) - end - end) - end) + -- mason packages & show post_boostrap screen + require "nvchad.post_bootstrap"() end M.gen_chadrc_template = function() @@ -50,15 +35,17 @@ M.gen_chadrc_template = function() local path = vim.fn.stdpath "config" .. "/lua/custom/" local input = vim.fn.input "Do you want to install example custom config? (y/N) : " + -- clone example_config repo if input == "y" then M.echo "cloning example custom config repo ..." vim.fn.system { "git", "clone", "--depth", "1", "https://github.com/NvChad/example_config", path } vim.fn.delete(path .. ".git", "rf") else + -- use very minimal chadrc vim.fn.mkdir(path, "p") local file = io.open(path .. "chadrc.lua", "w") - file:write "local M = {}\n M.ui = {theme = 'onedark'}\n return M" + file:write "---@type ChadrcConfig \n local M = {}\n M.ui = {theme = 'onedark'}\n return M" file:close() end end diff --git a/lua/core/default_config.lua b/lua/core/default_config.lua index f09fad0..ab71bfd 100644 --- a/lua/core/default_config.lua +++ b/lua/core/default_config.lua @@ -1,12 +1,7 @@ --- Chadrc overrides this file - local M = {} M.options = { - nvChad = { - update_url = "https://github.com/NvChad/NvChad", - update_branch = "v2.0", - }, + nvchad_branch = "v2.0", } M.ui = { @@ -18,6 +13,10 @@ M.ui = { theme_toggle = { "onedark", "one_light" }, theme = "onedark", -- default theme transparency = false, + lsp_semantic_tokens = false, -- needs nvim v0.9, just adds highlight groups for lsp semantic tokens + + -- https://github.com/NvChad/base46/tree/v2.0/lua/base46/extended_integrations + extended_integrations = {}, -- these aren't compiled by default, ex: "alpha", "notify" -- cmp themeing cmp = { @@ -28,9 +27,7 @@ M.ui = { selected_item_bg = "colored", -- colored / simple }, - telescope = { - style = "borderless", -- borderless / bordered - }, + telescope = { style = "borderless" }, -- borderless / bordered ------------------------------- nvchad_ui modules ----------------------------- statusline = { @@ -75,9 +72,7 @@ M.ui = { }, }, - cheatsheet = { - theme = "grid", -- simple/grid - }, + cheatsheet = { theme = "grid" }, -- simple/grid lsp = { -- show function signatures i.e args as you type @@ -88,11 +83,10 @@ M.ui = { }, } -M.plugins = "" -- path i.e "custom.plugins" -> custom/plugins.lua only and not custom/plugins/init.lua!!!! +M.plugins = "" -- path i.e "custom.plugins", so make custom/plugins.lua file M.lazy_nvim = require "plugins.configs.lazy_nvim" -- config for lazy.nvim startup options --- these are default mappings, check core.mappings for table structure M.mappings = {} return M diff --git a/lua/core/mappings.lua b/lua/core/mappings.lua index cf08429..d1578bc 100644 --- a/lua/core/mappings.lua +++ b/lua/core/mappings.lua @@ -265,6 +265,7 @@ M.telescope = { ["fb"] = { " Telescope buffers ", "find buffers" }, ["fh"] = { " Telescope help_tags ", "help page" }, ["fo"] = { " Telescope oldfiles ", "find oldfiles" }, + ["fz"] = { " Telescope current_buffer_fuzzy_find ", "find in current buffer" }, -- git ["cm"] = { " Telescope git_commits ", "git commits" }, diff --git a/lua/core/utils.lua b/lua/core/utils.lua index e95078c..4c44dc6 100644 --- a/lua/core/utils.lua +++ b/lua/core/utils.lua @@ -52,37 +52,39 @@ M.remove_disabled_keys = function(chadrc_mappings, default_mappings) end M.load_mappings = function(section, mapping_opt) - local function set_section_map(section_values) - if section_values.plugin then - return - end + vim.schedule(function() + local function set_section_map(section_values) + if section_values.plugin then + return + end - section_values.plugin = nil + section_values.plugin = nil - for mode, mode_values in pairs(section_values) do - local default_opts = merge_tb("force", { mode = mode }, mapping_opt or {}) - for keybind, mapping_info in pairs(mode_values) do - -- merge default + user opts - local opts = merge_tb("force", default_opts, mapping_info.opts or {}) + for mode, mode_values in pairs(section_values) do + local default_opts = merge_tb("force", { mode = mode }, mapping_opt or {}) + for keybind, mapping_info in pairs(mode_values) do + -- merge default + user opts + local opts = merge_tb("force", default_opts, mapping_info.opts or {}) - mapping_info.opts, opts.mode = nil, nil - opts.desc = mapping_info[2] + mapping_info.opts, opts.mode = nil, nil + opts.desc = mapping_info[2] - vim.keymap.set(mode, keybind, mapping_info[1], opts) + vim.keymap.set(mode, keybind, mapping_info[1], opts) + end end end - end - local mappings = require("core.utils").load_config().mappings + local mappings = require("core.utils").load_config().mappings - if type(section) == "string" then - mappings[section]["plugin"] = nil - mappings = { mappings[section] } - end + if type(section) == "string" then + mappings[section]["plugin"] = nil + mappings = { mappings[section] } + end - for _, sect in pairs(mappings) do - set_section_map(sect) - end + for _, sect in pairs(mappings) do + set_section_map(sect) + end + end) end M.lazy_load = function(plugin) diff --git a/lua/plugins/configs/lazy_nvim.lua b/lua/plugins/configs/lazy_nvim.lua index dbb3abc..cd170bd 100644 --- a/lua/plugins/configs/lazy_nvim.lua +++ b/lua/plugins/configs/lazy_nvim.lua @@ -5,7 +5,7 @@ return { ui = { icons = { ft = "", - lazy = "鈴 ", + lazy = "󰂠 ", loaded = "", not_loaded = "", }, diff --git a/lua/plugins/configs/lspconfig.lua b/lua/plugins/configs/lspconfig.lua index 24083ae..441d5ae 100644 --- a/lua/plugins/configs/lspconfig.lua +++ b/lua/plugins/configs/lspconfig.lua @@ -7,14 +7,15 @@ local utils = require "core.utils" -- export on_attach & capabilities for custom lspconfigs M.on_attach = function(client, bufnr) - client.server_capabilities.documentFormattingProvider = false - client.server_capabilities.documentRangeFormattingProvider = false - utils.load_mappings("lspconfig", { buffer = bufnr }) if client.server_capabilities.signatureHelpProvider then require("nvchad_ui.signature").setup(client) end + + if not utils.load_config().ui.lsp_semantic_tokens then + client.server_capabilities.semanticTokensProvider = nil + end end M.capabilities = vim.lsp.protocol.make_client_capabilities() diff --git a/lua/plugins/configs/mason.lua b/lua/plugins/configs/mason.lua index 8ccc313..3692a15 100644 --- a/lua/plugins/configs/mason.lua +++ b/lua/plugins/configs/mason.lua @@ -6,8 +6,8 @@ local options = { ui = { icons = { package_pending = " ", - package_installed = " ", - package_uninstalled = " ﮊ", + package_installed = "󰄳 ", + package_uninstalled = " 󰚌", }, keymaps = { diff --git a/lua/plugins/configs/nvimtree.lua b/lua/plugins/configs/nvimtree.lua index 38dd29a..fd7c62c 100644 --- a/lua/plugins/configs/nvimtree.lua +++ b/lua/plugins/configs/nvimtree.lua @@ -16,7 +16,6 @@ local options = { adaptive_size = false, side = "left", width = 30, - hide_root_folder = true, preserve_window_proportions = true, }, git = { @@ -34,7 +33,6 @@ local options = { renderer = { highlight_git = true, highlight_opened_files = "none", - indent_markers = { enable = false, }, @@ -48,10 +46,10 @@ local options = { }, glyphs = { - default = "", + default = "󰈚", symlink = "", folder = { - default = "", + default = "󰉋", empty = "", empty_open = "", open = "", diff --git a/lua/plugins/configs/others.lua b/lua/plugins/configs/others.lua index 874a0b6..8775517 100644 --- a/lua/plugins/configs/others.lua +++ b/lua/plugins/configs/others.lua @@ -53,7 +53,7 @@ M.gitsigns = { signs = { add = { hl = "DiffAdd", text = "│", numhl = "GitSignsAddNr" }, change = { hl = "DiffChange", text = "│", numhl = "GitSignsChangeNr" }, - delete = { hl = "DiffDelete", text = "", numhl = "GitSignsDeleteNr" }, + delete = { hl = "DiffDelete", text = "󰍵", numhl = "GitSignsDeleteNr" }, topdelete = { hl = "DiffDelete", text = "‾", numhl = "GitSignsDeleteNr" }, changedelete = { hl = "DiffChangeDelete", text = "~", numhl = "GitSignsChangeNr" }, untracked = { hl = "GitSignsAdd", text = "│", numhl = "GitSignsAddNr", linehl = "GitSignsAddLn" }, diff --git a/lua/plugins/configs/whichkey.lua b/lua/plugins/configs/whichkey.lua deleted file mode 100644 index cfdf4c0..0000000 --- a/lua/plugins/configs/whichkey.lua +++ /dev/null @@ -1,31 +0,0 @@ -local options = { - - icons = { - breadcrumb = "»", -- symbol used in the command line area that shows your active key combo - separator = "  ", -- symbol used between a key and it's label - group = "+", -- symbol prepended to a group - }, - - popup_mappings = { - scroll_down = "", -- binding to scroll down inside the popup - scroll_up = "", -- binding to scroll up inside the popup - }, - - window = { - border = "none", -- none/single/double/shadow - }, - - layout = { - spacing = 6, -- spacing between columns - }, - - hidden = { "", "", "", "", "call", "lua", "^:", "^ " }, - - triggers_blacklist = { - -- list of mode / prefixes that should never be hooked by WhichKey - i = { "j", "k" }, - v = { "j", "k" }, - }, -} - -return options diff --git a/lua/plugins/init.lua b/lua/plugins/init.lua index 19e212e..2f711af 100644 --- a/lua/plugins/init.lua +++ b/lua/plugins/init.lua @@ -95,7 +95,7 @@ local default_plugins = { -- git stuff { "lewis6991/gitsigns.nvim", - ft = "gitcommit", + ft = { "gitcommit", "diff" }, init = function() -- load gitsigns only when a git file is opened vim.api.nvim_create_autocmd({ "BufRead" }, { @@ -190,7 +190,6 @@ local default_plugins = { "hrsh7th/cmp-path", }, }, - opts = function() return require "plugins.configs.cmp" end, @@ -201,7 +200,7 @@ local default_plugins = { { "numToStr/Comment.nvim", - -- keys = { "gc", "gb" }, + keys = { "gcc", "gbc" }, init = function() require("core.utils").load_mappings "comment" end, @@ -233,11 +232,9 @@ local default_plugins = { init = function() require("core.utils").load_mappings "telescope" end, - opts = function() return require "plugins.configs.telescope" end, - config = function(_, opts) dofile(vim.g.base46_cache .. "telescope") local telescope = require "telescope" @@ -253,13 +250,10 @@ local default_plugins = { -- Only load whichkey after all the gui { "folke/which-key.nvim", - keys = { "", '"', "'", "`" }, + keys = { "", '"', "'", "`", "c", "v" }, init = function() require("core.utils").load_mappings "whichkey" end, - opts = function() - return require "plugins.configs.whichkey" - end, config = function(_, opts) dofile(vim.g.base46_cache .. "whichkey") require("which-key").setup(opts)