Compare commits

..

44 Commits
pt ... ptv3.1

Author SHA1 Message Date
71c46eebc9 add tabularize plugin 2024-03-14 07:41:09 -04:00
becf28986a start with v3.0 and merge in ptv3 2024-03-13 14:04:45 -04:00
siduck
bb731ccbbb rm termguicolors opt as its loaded in base46 2024-03-05 21:37:22 +05:30
siduck
440ef81bc4 misc 2024-03-05 08:35:52 +05:30
siduck
d0af27648a disable semantic tokens in on_init, in lspconfig.lua 2024-03-05 08:01:37 +05:30
siduck
2eac8906fc add tabufline order syntax 2024-03-03 22:12:12 +05:30
siduck
16fadf9e0d add stl order/modules opts 2024-03-02 16:50:55 +05:30
Gabriels
960509e585
FIX: lsp_signature_help() mapping (#2698)
* fix: change lsp_signature_help() mapping

* imp: change mapping
2024-03-01 06:34:31 +05:30
siduck
db95e7e1fd change branch for ui 2024-02-29 22:39:01 +05:30
Sidhanth Rathod
3fa6e3bade
Clean Mapping syntax & some modules (#2695)
* clean mapping syntax

* rm useless util function

* add some vim* tsparsers in treesitter config

* misc clean

* misc clean 2

* add mason bootstrap in main bootstrap file only

* misc

* rm un-needed dofile call
2024-02-29 21:57:31 +05:30
Jhon Vidal
9414658e35
fix: mapping update for new version of indent-blankline plugin (#2683)
* fix: mapping update for new version of indent-blankline plugin

obsolete function, correcting for the new version of said indent-blankline plugin

* improve blankline mapping
---------

Co-authored-by: Sidhanth Rathod <siduck@tutanota.com>
2024-02-23 07:58:59 +05:30
siduck
ddef3aa172 add default hlgroup for term wins 2024-02-19 20:39:38 +05:30
siduck
56cc2d757a reload editorconfig on User FilePost event only if enabled #2672 2024-02-17 06:43:46 +05:30
siduck
59082a8f28 add float opts for term feature 2024-02-02 09:11:04 +05:30
siduck
b2e2b15b45 fix editorConfig indent opts not applying on certain fts #2633 2024-01-28 21:33:38 +05:30
Grigorii Khvatskii
0333185bfc Add support for non-interactive bootstrapping (#2528)
https://github.com/NvChad/NvChad/pull/2528#issuecomment-1834599074

---------

Co-authored-by: Sidhanth Rathod <siduck@tutanota.com>
2024-01-02 17:11:14 +05:30
siduck
a439de385b check for empty/nil mason ensure_installed table #2580 2023-12-27 19:50:21 +05:30
siduck
d7798fb74a remove telescope fzf extension #2571 2023-12-24 16:32:04 +05:30
Vitor Boschi da Silva
bfd0ea7dcd [feat] Make gitsigns init function async (#2538)
* [feat] Make gitsigns init function async

This function is running git and also initializing a shell, which can be
a relatively slow operation. By leveraging the jobs api, we run the
command in background, reducing the time it takes for the buffer to be
available to the user. It also uses the list format for the job, which
allow us to bypass the shell entirely.

* performance: use uv.cwd() instead of fn.expand 

benchmarked luv's cwd and it seems to be 20x faster than the expand function

---------

Co-authored-by: Sidhanth Rathod <siduck@tutanota.com>
2023-12-08 20:59:05 +05:30
Gean Marroquin
ffa83d57f0 remove Search, IncSearch and CurSearch highlights from cmp windows (#2490) 2023-11-13 09:54:26 +05:30
莊加旭 (Max Chuang)
37c328ab2a fix typo (#2483) 2023-11-12 07:14:21 +05:30
siduck
a88c68f911 set cursorlineopt=number #865 2023-10-31 05:43:02 +05:30
siduck
48f1bb702d include loading of treesitter hlgroups 2023-10-28 09:34:28 +05:30
TheFedaikin
da85f7fbcd feat(mappings): make <esc> a cmd to remove flickering (#2456) 2023-10-27 06:01:56 +05:30
Panos Sakkos
ccdf0dda11 Ignore .DS_Store files (#2463)
Ignores macos .DS_Store files
2023-10-27 06:01:51 +05:30
Sidhanth Rathod
cc3289639b
Breaking Change for base46 extended_integrations | Improve syntax (#2459)
* performance: avoid reloading config (#2360)

* performance: avoid reloading config

* Rm outdated info in readme

---------

Co-authored-by: Sidhanth Rathod <siduck@tutanota.com>

* update nvchad load_config result path

* Update utils.lua

* update branch names

* Fix unreachable mappings for the lsp (#2443)

* add option for base46 integrations

* rm nvchad_theme global

* use correct conf path in lspconfig
 

---------

Co-authored-by: georgejean <jeangeorge385@yahoo.fr>
Co-authored-by: KorigamiK <72932688+KorigamiK@users.noreply.github.com>
2023-10-24 06:45:17 +05:30
Sidhanth Rathod
cb27ae0ed1
update branch names for ui/base46 plugin 2023-10-17 15:25:13 +05:30
KorigamiK
35ee0bc81d Fix unreachable mappings for the lsp (#2443) 2023-10-17 07:56:43 +05:30
umlx5h
445d32c19f Add CTRL-w key to whichkey lazyloading (#2446) 2023-10-17 07:56:39 +05:30
Sidhanth Rathod
5748536742
performance: avoid reloading config table #2360 (#2444)
* performance: avoid reloading config (#2360)

* performance: avoid reloading config

* Rm outdated info in readme

---------

Co-authored-by: Sidhanth Rathod <siduck@tutanota.com>

* update nvchad load_config result path

* update branch names

---------

Co-authored-by: georgejean <jeangeorge385@yahoo.fr>
2023-10-16 07:24:14 +05:30
siduck
ed18649e94 statusline: dont reload if theme is custom
this will prevent auto-reload of statusline , good for non custom statusline users
2023-10-09 17:13:11 +05:30
Sidhanth Rathod
5261eb330b Rm outdated info in readme 2023-10-02 13:52:22 +05:30
siduck
0d2265aa37 rm outdated link from readme 2023-10-02 13:49:24 +05:30
siduck
47e9ce90ff use slim chars for blankline indent
also enable indent markers in nvimtree
2023-10-01 11:15:23 +05:30
siduck
f48ff142f0 migrate to blankline v3.0 ( breaking change ) 2023-09-28 11:22:12 +05:30
siduck
4a8fb69157 lspconfig file: place default conf in a function
This will make sure that whenever the onattach or capabilities is pulled from the default lspconfig file, thosse dofile etc code ( which is now in defautls func ) wont be called , like before.
2023-09-28 07:22:02 +05:30
siduck
cb18b424b9 misc 2023-09-27 06:14:48 +05:30
siduck
1afbaef5c7 properly disable lsp signature 2023-09-26 20:41:19 +05:30
siduck
d58ec3f55d properly disable lsp signature
https://github.com/NvChad/ui/pull/188#issuecomment-1735510051
2023-09-26 18:51:34 +05:30
siduck
17a8959bea add option for term auto_insert 2023-09-26 18:32:15 +05:30
siduck
1b20da0115 update version in core/default_config.lua 2023-09-26 11:28:45 +05:30
siduck
d9b3980e62 update ui plugin branch 2023-09-25 12:33:22 +05:30
siduck
92b7f38e83 rm nvterm & use ui.term related mappings 2023-09-25 12:28:05 +05:30
siduck
e868fab1f2 add options for term module win resize vals 2023-09-25 12:25:09 +05:30
16 changed files with 392 additions and 798 deletions

2
.gitignore vendored
View File

@ -7,3 +7,5 @@ coc-settings.json
.luarc.json .luarc.json
lazy-lock.json lazy-lock.json
*.log *.log
after
**/.DS_Store

View File

@ -1,13 +1,7 @@
require "core" require "core"
vim.api.nvim_set_var('mapleader', ';') vim.api.nvim_set_var('mapleader', ';')
local custom_init_path = vim.api.nvim_get_runtime_file("lua/custom/init.lua", false)[1] pcall(require, 'custom')
if custom_init_path then
dofile(custom_init_path)
end
require("core.utils").load_mappings()
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
@ -21,6 +15,11 @@ dofile(vim.g.base46_cache .. "defaults")
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
require "plugins" require "plugins"
-- new from v3.0
vim.schedule(function()
require "core.mappings"
end, 0)
-- Configure Telescope to scroll files with ctrl+j/k -- Configure Telescope to scroll files with ctrl+j/k
local actions = require('telescope.actions') local actions = require('telescope.actions')
local sorters = require('telescope.sorters') local sorters = require('telescope.sorters')
@ -76,4 +75,3 @@ vim.o.hidden = true
-- Git diffthis -- Git diffthis
vim.api.nvim_set_keymap('n', '<leader>gd', ':Gitsigns diffthis<CR>', {noremap = true, silent = true}) vim.api.nvim_set_keymap('n', '<leader>gd', ':Gitsigns diffthis<CR>', {noremap = true, silent = true})

View File

@ -18,7 +18,7 @@ M.lazy = function(install_path)
M.echo " Compiling base46 theme to bytecode ..." M.echo " Compiling base46 theme to bytecode ..."
local base46_repo = "https://github.com/NvChad/base46" local base46_repo = "https://github.com/NvChad/base46"
shell_call { "git", "clone", "--depth", "1", "-b", "v2.0", base46_repo, lazy_path } shell_call { "git", "clone", "--depth", "1", "-b", "v3.0", base46_repo, lazy_path }
vim.opt.rtp:prepend(lazy_path) vim.opt.rtp:prepend(lazy_path)
require("base46").compile() require("base46").compile()
@ -32,15 +32,23 @@ M.lazy = function(install_path)
-- install plugins -- install plugins
require "plugins" require "plugins"
-- mason packages & show post_boostrap screen -- mason packages & show post_bootstrap screen
require "nvchad.post_install"() vim.cmd "MasonInstallAll"
local lastpkg = vim.g.mason_binaries_list[#vim.g.mason_binaries_list]
-- Keep track of which mason pkgs get installed
require("mason-registry"):on("package:install:success", function(pkg)
if tostring(pkg) == "Package(name=" .. lastpkg .. ")" then
print "All done! Now read nvchad.com "
end
end)
end end
M.gen_chadrc_template = function() M.gen_chadrc_template = function()
local path = fn.stdpath "config" .. "/lua/custom" local path = fn.stdpath "config" .. "/lua/custom"
if fn.isdirectory(path) ~= 1 then if fn.isdirectory(path) ~= 1 then
local input = fn.input "Do you want to install example custom config? (y/N): " local input = vim.env.NVCHAD_EXAMPLE_CONFIG or fn.input "Do you want to install example custom config? (y/N): "
if input:lower() == "y" then if input:lower() == "y" then
M.echo "Cloning example custom config repo..." M.echo "Cloning example custom config repo..."

View File

@ -1,12 +1,9 @@
local opt = vim.opt local opt = vim.opt
local g = vim.g local g = vim.g
local config = require("core.utils").load_config()
-------------------------------------- globals ----------------------------------------- -------------------------------------- globals -----------------------------------------
g.nvchad_theme = config.ui.theme
g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/" g.base46_cache = vim.fn.stdpath "data" .. "/nvchad/base46/"
g.toggle_theme_icon = "" g.toggle_theme_icon = ""
g.transparency = config.ui.transparency
-------------------------------------- options ------------------------------------------ -------------------------------------- options ------------------------------------------
opt.laststatus = 3 -- global statusline opt.laststatus = 3 -- global statusline
@ -14,6 +11,7 @@ opt.showmode = false
opt.clipboard = "unnamedplus" opt.clipboard = "unnamedplus"
opt.cursorline = true opt.cursorline = true
opt.cursorlineopt = "number"
-- Indenting -- Indenting
opt.expandtab = true opt.expandtab = true
@ -38,7 +36,6 @@ opt.shortmess:append "sI"
opt.signcolumn = "yes" opt.signcolumn = "yes"
opt.splitbelow = true opt.splitbelow = true
opt.splitright = true opt.splitright = true
opt.termguicolors = true
opt.timeoutlen = 400 opt.timeoutlen = 400
opt.undofile = true opt.undofile = true
@ -83,23 +80,23 @@ autocmd("BufWritePost", {
local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim" local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".") local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
require("plenary.reload").reload_module "nvconfig"
require("plenary.reload").reload_module "base46" require("plenary.reload").reload_module "base46"
require("plenary.reload").reload_module(module) require("plenary.reload").reload_module(module)
require("plenary.reload").reload_module "custom.chadrc"
config = require("core.utils").load_config() local config = require "nvconfig"
vim.g.nvchad_theme = config.ui.theme
vim.g.transparency = config.ui.transparency
-- statusline -- statusline
require("plenary.reload").reload_module("nvchad.statusline." .. config.ui.statusline.theme) if config.ui.statusline.theme ~= "custom" then
vim.opt.statusline = "%!v:lua.require('nvchad.statusline." .. config.ui.statusline.theme .. "').run()" require("plenary.reload").reload_module "nvchad.stl.utils"
require("plenary.reload").reload_module("nvchad.stl." .. config.ui.statusline.theme)
vim.opt.statusline = "%!v:lua.require('nvchad.stl." .. config.ui.statusline.theme .. "')()"
end
-- tabufline -- tabufline
if config.ui.tabufline.enabled then if config.ui.tabufline.enabled then
require("plenary.reload").reload_module "nvchad.tabufline.modules" require("plenary.reload").reload_module "nvchad.tabufline.modules"
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules').run()" vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules')()"
end end
require("base46").load_all_highlights() require("base46").load_all_highlights()
@ -107,6 +104,32 @@ autocmd("BufWritePost", {
end, end,
}) })
-- user event that loads after UIEnter + only if file buf is there
vim.api.nvim_create_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_buf_get_option(args.buf, "buftype")
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, 0)
end
end,
})
-------------------------------------- commands ------------------------------------------ -------------------------------------- commands ------------------------------------------
local new_cmd = vim.api.nvim_create_user_command local new_cmd = vim.api.nvim_create_user_command

View File

@ -1,468 +1,135 @@
-- n, v, i, t = mode names local map = vim.keymap.set
local M = {} map("i", "<C-b>", "<ESC>^i", { desc = "Move Beginning of line" })
map("i", "<C-e>", "<End>", { desc = "Move End of line" })
M.general = { map("i", "<C-h>", "<Left>", { desc = "Move Left" })
i = { map("i", "<C-l>", "<Right>", { desc = "Move Right" })
-- go to beginning and end map("i", "<C-j>", "<Down>", { desc = "Move Down" })
["<C-b>"] = { "<ESC>^i", "Beginning of line" }, map("i", "<C-k>", "<Up>", { desc = "Move Up" })
["<C-e>"] = { "<End>", "End of line" },
map("n", "<Esc>", "<cmd>noh<CR>", { desc = "General Clear highlights" })
-- navigate within insert mode
["<C-h>"] = { "<Left>", "Move left" }, map("n", "<C-h>", "<C-w>h", { desc = "Switch Window left" })
["<C-l>"] = { "<Right>", "Move right" }, map("n", "<C-l>", "<C-w>l", { desc = "Switch Window right" })
["<C-j>"] = { "<Down>", "Move down" }, map("n", "<C-j>", "<C-w>j", { desc = "Switch Window down" })
["<C-k>"] = { "<Up>", "Move up" }, map("n", "<C-k>", "<C-w>k", { desc = "Switch Window up" })
},
map("n", "<C-s>", "<cmd>w<CR>", { desc = "File Save" })
n = { map("n", "<C-c>", "<cmd>%y+<CR>", { desc = "File Copy whole" })
["<Esc>"] = { ":noh <CR>", "Clear highlights" },
-- switch between windows map("n", "<leader>n", "<cmd>set nu!<CR>", { desc = "Toggle Line number" })
["<C-h>"] = { "<C-w>h", "Window left" }, map("n", "<leader>rn", "<cmd>set rnu!<CR>", { desc = "Toggle Relative number" })
["<C-l>"] = { "<C-w>l", "Window right" }, map("n", "<leader>ch", "<cmd>NvCheatsheet<CR>", { desc = "Toggle NvCheatsheet" })
["<C-j>"] = { "<C-w>j", "Window down" },
["<C-k>"] = { "<C-w>k", "Window up" }, -- global lsp mappings
map("n", "<leader>fm", function()
-- save vim.lsp.buf.format { async = true }
["<C-s>"] = { "<cmd> w <CR>", "Save file" }, end, { desc = "Lsp formatting" })
-- Copy all map("n", "<leader>lf", vim.diagnostic.open_float, { desc = "Lsp floating diagnostics" })
["<C-c>"] = { "<cmd> %y+ <CR>", "Copy whole file" }, map("n", "[d", vim.diagnostic.goto_prev, { desc = "Lsp prev diagnostic" })
map("n", "]d", vim.diagnostic.goto_next, { desc = "Lsp next diagnostic" })
-- line numbers map("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Lsp diagnostic loclist" })
["<leader>n"] = { "<cmd> set nu! <CR>", "Toggle line number" },
["<leader>rn"] = { "<cmd> set rnu! <CR>", "Toggle relative number" }, -- tabufline
map("n", "<leader>b", "<cmd>enew<CR>", { desc = "Buffer New" })
-- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down>
-- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/ map("n", "<tab>", function()
-- empty mode is same as using <cmd> :map require("nvchad.tabufline").next()
-- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour end, { desc = "Buffer Goto next" })
["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } },
["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, map("n", "<S-tab>", function()
["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, require("nvchad.tabufline").prev()
["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, end, { desc = "Buffer Goto prev" })
-- new buffer map("n", "<leader>x", function()
["<leader>b"] = { "<cmd> enew <CR>", "New buffer" }, require("nvchad.tabufline").close_buffer()
["<leader>ch"] = { "<cmd> NvCheatsheet <CR>", "Mapping cheatsheet" }, end, { desc = "Buffer Close" })
["<leader>fm"] = { -- Comment
function() map("n", "<leader>/", function()
vim.lsp.buf.format { async = true } require("Comment.api").toggle.linewise.current()
end, end, { desc = "Comment Toggle" })
"LSP formatting",
}, map(
}, "v",
"<leader>/",
t = { "<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>",
["<C-x>"] = { vim.api.nvim_replace_termcodes("<C-\\><C-N>", true, true, true), "Escape terminal mode" }, { desc = "Comment Toggle" }
}, )
v = { -- nvimtree
["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, map("n", "<C-n>", "<cmd>NvimTreeToggle<CR>", { desc = "Nvimtree Toggle window" })
["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, map("n", "<leader>e", "<cmd>NvimTreeFocus<CR>", { desc = "Nvimtree Focus window" })
["<"] = { "<gv", "Indent line" },
[">"] = { ">gv", "Indent line" }, -- 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" })
x = { map("n", "<leader>fh", "<cmd>Telescope help_tags<CR>", { desc = "Telescope Help page" })
["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } },
["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, map("n", "<leader>fo", "<cmd>Telescope oldfiles<CR>", { desc = "Telescope Find oldfiles" })
-- Don't copy the replaced text after pasting in visual mode map("n", "<leader>fz", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "Telescope Find in current buffer" })
-- https://vim.fandom.com/wiki/Replace_a_word_with_yanked_text#Alternative_mapping_for_paste map("n", "<leader>cm", "<cmd>Telescope git_commits<CR>", { desc = "Telescope Git commits" })
["p"] = { 'p:let @+=@0<CR>:let @"=@0<CR>', "Dont copy replaced text", opts = { silent = true } }, 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", "<cmd>Telescope themes<CR>", { desc = "Telescope Nvchad themes" })
map("n", "<leader>ff", "<cmd>Telescope find_files<cr>", { desc = "Telescope Find files" })
M.tabufline = { map(
plugin = true, "n",
"<leader>fa",
n = { "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
-- cycle through buffers { desc = "Telescope Find all files" }
["<tab>"] = { )
function()
require("nvchad.tabufline").tabuflineNext() -- terminal
end, map("t", "<C-x>", "<C-\\><C-N>", { desc = "Terminal Escape terminal mode" })
"Goto next buffer",
}, map("n", "<leader>h", function()
require("nvchad.term").new { pos = "sp", size = 0.3 }
["<S-tab>"] = { end, { desc = "Terminal New horizontal term" })
function()
require("nvchad.tabufline").tabuflinePrev() map("n", "<leader>v", function()
end, require("nvchad.term").new { pos = "vsp", size = 0.3 }
"Goto prev buffer", end, { desc = "Terminal New vertical term" })
},
map({ "n", "t" }, "<A-v>", function()
-- close buffer + hide terminal buffer require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm", size = 0.3 }
["<leader>x"] = { end, { desc = "Terminal Toggleable vertical term" })
function()
require("nvchad.tabufline").close_buffer() map({ "n", "t" }, "<A-h>", function()
end, require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm", size = 0.2 }
"Close buffer", end, { desc = "Terminal New horizontal term" })
},
}, map({ "n", "t" }, "<A-i>", function()
} require("nvchad.term").toggle { pos = "float", id = "floatTerm" }
end, { desc = "Terminal Toggle Floating term" })
M.comment = {
plugin = true, map("t", "<ESC>", function()
local win = vim.api.nvim_get_current_win()
-- toggle comment in both modes vim.api.nvim_win_close(win, true)
n = { end, { desc = "Terminal Close term in terminal mode" })
["<leader>/"] = {
function() -- whichkey
require("Comment.api").toggle.linewise.current() map("n", "<leader>wK", "<cmd>WhichKey <CR>", { desc = "Whichkey all keymaps" })
end,
"Toggle comment", map("n", "<leader>wk", function()
}, vim.cmd("WhichKey " .. vim.fn.input "WhichKey: ")
}, end, { desc = "Whichkey query lookup" })
v = { -- blankline
["<leader>/"] = { map("n", "<leader>cc", function()
"<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>", local config = { scope = {} }
"Toggle comment", config.scope.exclude = { language = {}, node_type = {} }
}, config.scope.include = { node_type = {} }
}, local node = require("ibl.scope").get(vim.api.nvim_get_current_buf(), config)
}
if node then
M.lspconfig = { local start_row, _, end_row, _ = node:range()
plugin = true, if start_row ~= end_row then
vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 })
-- See `<cmd> :help vim.lsp.*` for documentation on any of the below functions vim.api.nvim_feedkeys("_", "n", true)
end
n = { end
["gD"] = { end, { desc = "Blankline Jump to current context" })
function()
vim.lsp.buf.declaration() pcall(require, "custom.mappings")
end,
"LSP declaration",
},
["gd"] = {
function()
vim.lsp.buf.definition()
end,
"LSP definition",
},
["K"] = {
function()
vim.lsp.buf.hover()
end,
"LSP hover",
},
["gi"] = {
function()
vim.lsp.buf.implementation()
end,
"LSP implementation",
},
["<leader>ls"] = {
function()
vim.lsp.buf.signature_help()
end,
"LSP signature help",
},
["<leader>D"] = {
function()
vim.lsp.buf.type_definition()
end,
"LSP definition type",
},
["<leader>ra"] = {
function()
require("nvchad.renamer").open()
end,
"LSP rename",
},
["<leader>ca"] = {
function()
vim.lsp.buf.code_action()
end,
"LSP code action",
},
["gr"] = {
function()
vim.lsp.buf.references()
end,
"LSP references",
},
["<leader>f"] = {
function()
vim.diagnostic.open_float { border = "rounded" }
end,
"Floating diagnostic",
},
["[d"] = {
function()
vim.diagnostic.goto_prev { float = { border = "rounded" } }
end,
"Goto prev",
},
["]d"] = {
function()
vim.diagnostic.goto_next { float = { border = "rounded" } }
end,
"Goto next",
},
["<leader>q"] = {
function()
vim.diagnostic.setloclist()
end,
"Diagnostic setloclist",
},
["<leader>wa"] = {
function()
vim.lsp.buf.add_workspace_folder()
end,
"Add workspace folder",
},
["<leader>wr"] = {
function()
vim.lsp.buf.remove_workspace_folder()
end,
"Remove workspace folder",
},
["<leader>wl"] = {
function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end,
"List workspace folders",
},
},
v = {
["<leader>ca"] = {
function()
vim.lsp.buf.code_action()
end,
"LSP code action",
},
},
}
M.nvimtree = {
plugin = true,
n = {
-- toggle
["<C-n>"] = { "<cmd> NvimTreeToggle <CR>", "Toggle nvimtree" },
-- focus
["<leader>e"] = { "<cmd> NvimTreeFocus <CR>", "Focus nvimtree" },
},
}
M.telescope = {
plugin = true,
n = {
-- find
["<leader>ff"] = { "<cmd> Telescope find_files <CR>", "Find files" },
["<leader>fa"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "Find all" },
["<leader>fw"] = { "<cmd> Telescope live_grep <CR>", "Live grep" },
["<leader>fb"] = { "<cmd> Telescope buffers <CR>", "Find buffers" },
["<leader>fh"] = { "<cmd> Telescope help_tags <CR>", "Help page" },
["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "Find oldfiles" },
["<leader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <CR>", "Find in current buffer" },
-- git
["<leader>cm"] = { "<cmd> Telescope git_commits <CR>", "Git commits" },
["<leader>gt"] = { "<cmd> Telescope git_status <CR>", "Git status" },
-- pick a hidden term
["<leader>pt"] = { "<cmd> Telescope terms <CR>", "Pick hidden term" },
-- theme switcher
["<leader>th"] = { "<cmd> Telescope themes <CR>", "Nvchad themes" },
["<leader>ma"] = { "<cmd> Telescope marks <CR>", "telescope bookmarks" },
},
}
M.nvterm = {
plugin = true,
t = {
-- toggle in terminal mode
["<A-i>"] = {
function()
require("nvterm.terminal").toggle "float"
end,
"Toggle floating term",
},
["<A-h>"] = {
function()
require("nvterm.terminal").toggle "horizontal"
end,
"Toggle horizontal term",
},
["<A-v>"] = {
function()
require("nvterm.terminal").toggle "vertical"
end,
"Toggle vertical term",
},
},
n = {
-- toggle in normal mode
["<A-i>"] = {
function()
require("nvterm.terminal").toggle "float"
end,
"Toggle floating term",
},
["<A-h>"] = {
function()
require("nvterm.terminal").toggle "horizontal"
end,
"Toggle horizontal term",
},
["<A-v>"] = {
function()
require("nvterm.terminal").toggle "vertical"
end,
"Toggle vertical term",
},
-- new
["<leader>h"] = {
function()
require("nvterm.terminal").new "horizontal"
end,
"New horizontal term",
},
["<leader>v"] = {
function()
require("nvterm.terminal").new "vertical"
end,
"New vertical term",
},
},
}
M.whichkey = {
plugin = true,
n = {
["<leader>wK"] = {
function()
vim.cmd "WhichKey"
end,
"Which-key all keymaps",
},
["<leader>wk"] = {
function()
local input = vim.fn.input "WhichKey: "
vim.cmd("WhichKey " .. input)
end,
"Which-key query lookup",
},
},
}
M.blankline = {
plugin = true,
n = {
["<leader>cc"] = {
function()
local ok, start = require("indent_blankline.utils").get_current_context(
vim.g.indent_blankline_context_patterns,
vim.g.indent_blankline_use_treesitter_scope
)
if ok then
vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start, 0 })
vim.cmd [[normal! _]]
end
end,
"Jump to current context",
},
},
}
M.gitsigns = {
plugin = true,
n = {
-- Navigation through hunks
["]c"] = {
function()
if vim.wo.diff then
return "]c"
end
vim.schedule(function()
require("gitsigns").next_hunk()
end)
return "<Ignore>"
end,
"Jump to next hunk",
opts = { expr = true },
},
["[c"] = {
function()
if vim.wo.diff then
return "[c"
end
vim.schedule(function()
require("gitsigns").prev_hunk()
end)
return "<Ignore>"
end,
"Jump to prev hunk",
opts = { expr = true },
},
-- Actions
["<leader>rh"] = {
function()
require("gitsigns").reset_hunk()
end,
"Reset hunk",
},
["<leader>ph"] = {
function()
require("gitsigns").preview_hunk()
end,
"Preview hunk",
},
["<leader>gb"] = {
function()
package.loaded.gitsigns.blame_line()
end,
"Blame line",
},
["<leader>td"] = {
function()
require("gitsigns").toggle_deleted()
end,
"Toggle deleted",
},
},
}
return M

View File

@ -1,118 +0,0 @@
local M = {}
local merge_tb = vim.tbl_deep_extend
M.load_config = function()
local config = require "core.default_config"
local chadrc_path = vim.api.nvim_get_runtime_file("lua/custom/chadrc.lua", false)[1]
if chadrc_path then
local chadrc = dofile(chadrc_path)
config.mappings = M.remove_disabled_keys(chadrc.mappings, config.mappings)
config = merge_tb("force", config, chadrc)
config.mappings.disabled = nil
end
return config
end
M.remove_disabled_keys = function(chadrc_mappings, default_mappings)
if not chadrc_mappings then
return default_mappings
end
-- store keys in a array with true value to compare
local keys_to_disable = {}
for _, mappings in pairs(chadrc_mappings) do
for mode, section_keys in pairs(mappings) do
if not keys_to_disable[mode] then
keys_to_disable[mode] = {}
end
section_keys = (type(section_keys) == "table" and section_keys) or {}
for k, _ in pairs(section_keys) do
keys_to_disable[mode][k] = true
end
end
end
-- make a copy as we need to modify default_mappings
for section_name, section_mappings in pairs(default_mappings) do
for mode, mode_mappings in pairs(section_mappings) do
mode_mappings = (type(mode_mappings) == "table" and mode_mappings) or {}
for k, _ in pairs(mode_mappings) do
-- if key if found then remove from default_mappings
if keys_to_disable[mode] and keys_to_disable[mode][k] then
default_mappings[section_name][mode][k] = nil
end
end
end
end
return default_mappings
end
M.load_mappings = function(section, mapping_opt)
vim.schedule(function()
local function set_section_map(section_values)
if section_values.plugin then
return
end
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 {})
mapping_info.opts, opts.mode = nil, nil
opts.desc = mapping_info[2]
vim.keymap.set(mode, keybind, mapping_info[1], opts)
end
end
end
local mappings = require("core.utils").load_config().mappings
if type(section) == "string" then
mappings[section]["plugin"] = nil
mappings = { mappings[section] }
end
for _, sect in pairs(mappings) do
set_section_map(sect)
end
end)
end
M.lazy_load = function(plugin)
vim.api.nvim_create_autocmd({ "BufRead", "BufWinEnter", "BufNewFile" }, {
group = vim.api.nvim_create_augroup("BeLazyOnFileOpen" .. plugin, {}),
callback = function()
local file = vim.fn.expand "%"
local condition = file ~= "NvimTree_1" and file ~= "[lazy]" and file ~= ""
if condition then
vim.api.nvim_del_augroup_by_name("BeLazyOnFileOpen" .. plugin)
-- dont defer for treesitter as it will show slow highlighting
-- This deferring only happens only when we do "nvim filename"
if plugin ~= "nvim-treesitter" then
vim.schedule(function()
require("lazy").load { plugins = plugin }
if plugin == "nvim-lspconfig" then
vim.cmd "silent! do FileType"
end
end, 0)
else
require("lazy").load { plugins = plugin }
end
end
end,
})
end
return M

View File

@ -1,7 +1,7 @@
local M = {} local M = {}
M.options = { M.options = {
nvchad_branch = "v2.0", nvchad_branch = "v3.0",
} }
M.ui = { M.ui = {
@ -13,18 +13,12 @@ M.ui = {
theme_toggle = { "onedark", "one_light" }, theme_toggle = { "onedark", "one_light" },
theme = "onedark", -- default theme theme = "onedark", -- default theme
transparency = false, 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 themeing
cmp = { cmp = {
icons = true, icons = true,
lspkind_text = true, lspkind_text = true,
style = "default", -- default/flat_light/flat_dark/atom/atom_colored style = "default", -- default/flat_light/flat_dark/atom/atom_colored
border_color = "grey_fg", -- only applicable for "default" style, use color names from base30 variables
selected_item_bg = "colored", -- colored / simple
}, },
telescope = { style = "borderless" }, -- borderless / bordered telescope = { style = "borderless" }, -- borderless / bordered
@ -32,18 +26,21 @@ M.ui = {
------------------------------- nvchad_ui modules ----------------------------- ------------------------------- nvchad_ui modules -----------------------------
statusline = { statusline = {
theme = "default", -- default/vscode/vscode_colored/minimal theme = "default", -- default/vscode/vscode_colored/minimal
-- default/round/block/arrow separators work only for default statusline theme -- default/round/block/arrow separators work only for default statusline theme
-- round and block will work for minimal theme only -- round and block will work for minimal theme only
separator_style = "default", separator_style = "default",
overriden_modules = nil,
order = nil,
modules = {},
}, },
-- lazyload it when there are 1+ buffers -- lazyload it when there are 1+ buffers
tabufline = { tabufline = {
show_numbers = false,
enabled = true, enabled = true,
lazyload = true, lazyload = true,
overriden_modules = nil, order = { "treeOffset", "buffers", "tabs", "btns" },
modules = {},
}, },
-- nvdash (dashboard) -- nvdash (dashboard)
@ -75,10 +72,23 @@ M.ui = {
cheatsheet = { theme = "grid" }, -- simple/grid cheatsheet = { theme = "grid" }, -- simple/grid
lsp = { lsp = {
-- show function signatures i.e args as you type signature = true,
signature = { semantic_tokens = false,
disabled = false, },
silent = true, -- silences 'no signature help available' message from appearing
term = {
hl = "Normal:term,WinSeparator:WinSeparator",
sizes = { sp = 0.3, vsp = 0.2 },
float = {
relative = "editor",
row = 0.3,
col = 0.25,
width = 0.5,
height = 0.4,
border = "single",
},
behavior = {
auto_insert = true,
}, },
}, },
} }
@ -87,6 +97,32 @@ 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 M.lazy_nvim = require "plugins.configs.lazy_nvim" -- config for lazy.nvim startup options
M.mappings = require "core.mappings" M.base46 = {
integrations = {
"blankline",
"cmp",
"defaults",
"devicons",
"git",
"lsp",
"mason",
"nvchad_updater",
"nvcheatsheet",
"nvdash",
"nvimtree",
"statusline",
"syntax",
"treesitter",
"tbline",
"telescope",
"whichkey",
},
}
local chadrc_exists, chadrc = pcall(require, "custom.chadrc")
if chadrc_exists then
M = vim.tbl_deep_extend("force", M, chadrc)
end
return M return M

View File

@ -2,7 +2,7 @@ local cmp = require "cmp"
dofile(vim.g.base46_cache .. "cmp") dofile(vim.g.base46_cache .. "cmp")
local cmp_ui = require("core.utils").load_config().ui.cmp local cmp_ui = require("nvconfig").ui.cmp
local cmp_style = cmp_ui.style local cmp_style = cmp_ui.style
local field_arrangement = { local field_arrangement = {
@ -52,7 +52,7 @@ local options = {
window = { window = {
completion = { completion = {
side_padding = (cmp_style ~= "atom" and cmp_style ~= "atom_colored") and 1 or 0, side_padding = (cmp_style ~= "atom" and cmp_style ~= "atom_colored") and 1 or 0,
winhighlight = "Normal:CmpPmenu,CursorLine:CmpSel,Search:PmenuSel", winhighlight = "Normal:CmpPmenu,CursorLine:CmpSel,Search:None",
scrollbar = false, scrollbar = false,
}, },
documentation = { documentation = {
@ -75,10 +75,12 @@ local options = {
["<C-f>"] = cmp.mapping.scroll_docs(4), ["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(), ["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(), ["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm { ["<CR>"] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Insert, behavior = cmp.ConfirmBehavior.Insert,
select = true, select = true,
}, },
["<Tab>"] = cmp.mapping(function(fallback) ["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
@ -87,10 +89,8 @@ local options = {
else else
fallback() fallback()
end end
end, { end, { "i", "s" }),
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback) ["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
@ -99,10 +99,7 @@ local options = {
else else
fallback() fallback()
end end
end, { end, { "i", "s" }),
"i",
"s",
}),
}, },
sources = { sources = {
{ name = "nvim_lsp" }, { name = "nvim_lsp" },

View File

@ -0,0 +1,26 @@
local options = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "󰍵" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
on_attach = function(bufnr)
local gs = package.loaded.gitsigns
local function opts(desc)
return { buffer = bufnr, desc = desc }
end
local map = vim.keymap.set
map("n", "<leader>rh", gs.reset_hunk, opts "Reset Hunk")
map("n", "<leader>ph", gs.preview_hunk, opts "Preview Hunk")
map("n", "<leader>gb", gs.blame_line, opts "Blame Line")
end,
}
return options

View File

@ -1,22 +1,43 @@
dofile(vim.g.base46_cache .. "lsp")
require "nvchad.lsp"
local M = {} local M = {}
local utils = require "core.utils" local map = vim.keymap.set
local conf = require("nvconfig").ui.lsp
-- export on_attach & capabilities for custom lspconfigs -- export on_attach & capabilities for custom lspconfigs
M.on_attach = function(client, bufnr) M.on_attach = function(client, bufnr)
client.server_capabilities.documentFormattingProvider = false local function opts(desc)
client.server_capabilities.documentRangeFormattingProvider = false return { buffer = bufnr, desc = desc }
utils.load_mappings("lspconfig", { buffer = bufnr })
if client.server_capabilities.signatureHelpProvider then
require("nvchad.signature").setup(client)
end end
if not utils.load_config().ui.lsp_semantic_tokens and client.supports_method "textDocument/semanticTokens" then map("n", "gD", vim.lsp.buf.declaration, opts "Lsp Go to declaration")
map("n", "gd", vim.lsp.buf.definition, opts "Lsp Go to definition")
map("n", "K", vim.lsp.buf.hover, opts "Lsp hover information")
map("n", "gi", vim.lsp.buf.implementation, opts "Lsp Go to implementation")
map("n", "<leader>sh", vim.lsp.buf.signature_help, opts "Lsp Show signature help")
map("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts "Lsp Add workspace folder")
map("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts "Lsp Remove workspace folder")
map("n", "<leader>wl", function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, opts "Lsp List workspace folders")
map("n", "<leader>D", vim.lsp.buf.type_definition, opts "Lsp Go to type definition")
map("n", "<leader>ra", function()
require "nvchad.renamer"()
end, opts "Lsp NvRenamer")
map({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts "Lsp Code action")
map("n", "gr", vim.lsp.buf.references, opts "Lsp Show references")
-- setup signature popup
if conf.signature and client.server_capabilities.signatureHelpProvider then
require("nvchad.signature").setup(client, bufnr)
end
end
-- disable semanticTokens
M.on_init = function(client, _)
if not conf.semantic_tokens and client.supports_method "textDocument/semanticTokens" then
client.server_capabilities.semanticTokensProvider = nil client.server_capabilities.semanticTokensProvider = nil
end end
end end
@ -41,27 +62,33 @@ M.capabilities.textDocument.completion.completionItem = {
}, },
} }
require("lspconfig").lua_ls.setup { M.defaults = function()
on_attach = M.on_attach, dofile(vim.g.base46_cache .. "lsp")
capabilities = M.capabilities, require "nvchad.lsp"
settings = { require("lspconfig").lua_ls.setup {
Lua = { on_attach = M.on_attach,
diagnostics = { capabilities = M.capabilities,
globals = { "vim" }, on_init = M.on_init,
},
workspace = { settings = {
library = { Lua = {
[vim.fn.expand "$VIMRUNTIME/lua"] = true, diagnostics = {
[vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true, globals = { "vim" },
[vim.fn.stdpath "data" .. "/lazy/ui/nvchad_types"] = true, },
[vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy"] = true, workspace = {
library = {
[vim.fn.expand "$VIMRUNTIME/lua"] = true,
[vim.fn.expand "$VIMRUNTIME/lua/vim/lsp"] = true,
[vim.fn.stdpath "data" .. "/lazy/ui/nvchad_types"] = true,
[vim.fn.stdpath "data" .. "/lazy/lazy.nvim/lua/lazy"] = true,
},
maxPreload = 100000,
preloadFileSize = 10000,
}, },
maxPreload = 100000,
preloadFileSize = 10000,
}, },
}, },
}, }
} end
return M return M

View File

@ -0,0 +1,23 @@
-- vscode format
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load { paths = "your path!" }
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,
})

View File

@ -35,7 +35,7 @@ local options = {
highlight_git = true, highlight_git = true,
highlight_opened_files = "none", highlight_opened_files = "none",
indent_markers = { indent_markers = {
enable = false, enable = true,
}, },
icons = { icons = {

View File

@ -1,66 +0,0 @@
local M = {}
local utils = require "core.utils"
M.blankline = {
indentLine_enabled = 1,
filetype_exclude = {
"help",
"terminal",
"lazy",
"lspinfo",
"TelescopePrompt",
"TelescopeResults",
"mason",
"nvdash",
"nvcheatsheet",
"",
},
buftype_exclude = { "terminal" },
show_trailing_blankline_indent = false,
show_first_indent_level = false,
show_current_context = true,
show_current_context_start = true,
}
M.luasnip = function(opts)
require("luasnip").config.set_config(opts)
-- vscode format
require("luasnip.loaders.from_vscode").lazy_load()
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,
})
end
M.gitsigns = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "󰍵" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
on_attach = function(bufnr)
utils.load_mappings("gitsigns", { buffer = bufnr })
end,
}
return M

View File

@ -49,7 +49,7 @@ local options = {
}, },
}, },
extensions_list = { "themes", "terms", "fzf" }, extensions_list = { "themes", "terms" },
extensions = { extensions = {
fzf = { fzf = {
fuzzy = true, fuzzy = true,

View File

@ -1,5 +1,5 @@
local options = { local options = {
ensure_installed = { "lua" }, ensure_installed = { "lua", "vim", "vimdoc" },
highlight = { highlight = {
enable = true, enable = true,

View File

@ -3,10 +3,15 @@
local default_plugins = { local default_plugins = {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
{
"godlygeek/tabular",
lazy = false,
},
{ {
"NvChad/base46", "NvChad/base46",
branch = "v2.0", branch = "v3.0",
build = function() build = function()
require("base46").load_all_highlights() require("base46").load_all_highlights()
end, end,
@ -14,26 +19,16 @@ local default_plugins = {
{ {
"NvChad/ui", "NvChad/ui",
branch = "v2.0", branch = "v3.0",
lazy = false, lazy = false,
}, config = function()
require "nvchad"
{
"NvChad/nvterm",
init = function()
require("core.utils").load_mappings "nvterm"
end,
config = function(_, opts)
require "base46.term"
require("nvterm").setup(opts)
end, end,
}, },
{ {
"NvChad/nvim-colorizer.lua", "NvChad/nvim-colorizer.lua",
init = function() event = "User FilePost",
require("core.utils").lazy_load "nvim-colorizer.lua"
end,
config = function(_, opts) config = function(_, opts)
require("colorizer").setup(opts) require("colorizer").setup(opts)
@ -57,25 +52,23 @@ local default_plugins = {
{ {
"lukas-reineke/indent-blankline.nvim", "lukas-reineke/indent-blankline.nvim",
version = "2.20.7", event = "User FilePost",
init = function() opts = {
require("core.utils").lazy_load "indent-blankline.nvim" indent = { char = "", highlight = "IblChar" },
end, scope = { char = "", highlight = "IblScopeChar" },
opts = function() },
return require("plugins.configs.others").blankline
end,
config = function(_, opts) config = function(_, opts)
require("core.utils").load_mappings "blankline"
dofile(vim.g.base46_cache .. "blankline") dofile(vim.g.base46_cache .. "blankline")
require("indent_blankline").setup(opts)
local hooks = require "ibl.hooks"
hooks.register(hooks.type.WHITESPACE, hooks.builtin.hide_first_space_indent_level)
require("ibl").setup(opts)
end, end,
}, },
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
init = function() event = { "BufReadPost", "BufNewFile" },
require("core.utils").lazy_load "nvim-treesitter"
end,
cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" }, cmd = { "TSInstall", "TSBufEnable", "TSBufDisable", "TSModuleInfo" },
build = ":TSUpdate", build = ":TSUpdate",
opts = function() opts = function()
@ -83,6 +76,7 @@ local default_plugins = {
end, end,
config = function(_, opts) config = function(_, opts)
dofile(vim.g.base46_cache .. "syntax") dofile(vim.g.base46_cache .. "syntax")
dofile(vim.g.base46_cache .. "treesitter")
require("nvim-treesitter.configs").setup(opts) require("nvim-treesitter.configs").setup(opts)
end, end,
}, },
@ -90,24 +84,9 @@ local default_plugins = {
-- git stuff -- git stuff
{ {
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
ft = { "gitcommit", "diff" }, event = "User FilePost",
init = function()
-- load gitsigns only when a git file is opened
vim.api.nvim_create_autocmd({ "BufRead" }, {
group = vim.api.nvim_create_augroup("GitSignsLazyLoad", { clear = true }),
callback = function()
vim.fn.system("git -C " .. '"' .. vim.fn.expand "%:p:h" .. '"' .. " rev-parse")
if vim.v.shell_error == 0 then
vim.api.nvim_del_augroup_by_name "GitSignsLazyLoad"
vim.schedule(function()
require("lazy").load { plugins = { "gitsigns.nvim" } }
end)
end
end,
})
end,
opts = function() opts = function()
return require("plugins.configs.others").gitsigns return require "plugins.configs.gitsigns"
end, end,
config = function(_, opts) config = function(_, opts)
dofile(vim.g.base46_cache .. "git") dofile(vim.g.base46_cache .. "git")
@ -128,7 +107,9 @@ local default_plugins = {
-- custom nvchad cmd to install all mason binaries listed -- custom nvchad cmd to install all mason binaries listed
vim.api.nvim_create_user_command("MasonInstallAll", function() vim.api.nvim_create_user_command("MasonInstallAll", function()
vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " ")) if opts.ensure_installed and #opts.ensure_installed > 0 then
vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
end
end, {}) end, {})
vim.g.mason_binaries_list = opts.ensure_installed vim.g.mason_binaries_list = opts.ensure_installed
@ -137,11 +118,9 @@ local default_plugins = {
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
init = function() event = "User FilePost",
require("core.utils").lazy_load "nvim-lspconfig"
end,
config = function() config = function()
require "plugins.configs.lspconfig" require("plugins.configs.lspconfig").defaults()
end, end,
}, },
@ -156,7 +135,8 @@ local default_plugins = {
dependencies = "rafamadriz/friendly-snippets", dependencies = "rafamadriz/friendly-snippets",
opts = { history = true, updateevents = "TextChanged,TextChangedI" }, opts = { history = true, updateevents = "TextChanged,TextChangedI" },
config = function(_, opts) config = function(_, opts)
require("plugins.configs.others").luasnip(opts) require("luasnip").config.set_config(opts)
require "plugins.configs.luasnip"
end, end,
}, },
@ -204,7 +184,7 @@ local default_plugins = {
{ "gb", mode = "x", desc = "Comment toggle blockwise (visual)" }, { "gb", mode = "x", desc = "Comment toggle blockwise (visual)" },
}, },
init = function() init = function()
require("core.utils").load_mappings "comment" vim.g.comment_maps = true
end, end,
config = function(_, opts) config = function(_, opts)
require("Comment").setup(opts) require("Comment").setup(opts)
@ -215,9 +195,6 @@ local default_plugins = {
{ {
"nvim-tree/nvim-tree.lua", "nvim-tree/nvim-tree.lua",
cmd = { "NvimTreeToggle", "NvimTreeFocus" }, cmd = { "NvimTreeToggle", "NvimTreeFocus" },
init = function()
require("core.utils").load_mappings "nvimtree"
end,
opts = function() opts = function()
return require "plugins.configs.nvimtree" return require "plugins.configs.nvimtree"
end, end,
@ -229,11 +206,8 @@ local default_plugins = {
{ {
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter", { "nvim-telescope/telescope-fzf-native.nvim", build = "make" } }, dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = "Telescope", cmd = "Telescope",
init = function()
require("core.utils").load_mappings "telescope"
end,
opts = function() opts = function()
return require "plugins.configs.telescope" return require "plugins.configs.telescope"
end, end,
@ -252,10 +226,7 @@ local default_plugins = {
-- Only load whichkey after all the gui -- Only load whichkey after all the gui
{ {
"folke/which-key.nvim", "folke/which-key.nvim",
keys = { "<leader>", "<c-r>", '"', "'", "`", "c", "v", "g" }, keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
init = function()
require("core.utils").load_mappings "whichkey"
end,
cmd = "WhichKey", cmd = "WhichKey",
config = function(_, opts) config = function(_, opts)
dofile(vim.g.base46_cache .. "whichkey") dofile(vim.g.base46_cache .. "whichkey")
@ -264,7 +235,7 @@ local default_plugins = {
}, },
} }
local config = require("core.utils").load_config() local config = require "nvconfig"
if #config.plugins > 0 then if #config.plugins > 0 then
table.insert(default_plugins, { import = config.plugins }) table.insert(default_plugins, { import = config.plugins })