Compare commits

...

69 Commits

Author SHA1 Message Date
Christoph J. Scherr 4aca543656
add core back 2024-03-22 10:57:21 +01:00
Christoph J. Scherr 16b3eeb1fa
update to upstream 2024-03-22 10:48:37 +01:00
Christoph J. Scherr 51a3436438
Merge remote-tracking branch 'upstream/v2.5' 2024-03-22 10:48:06 +01:00
siduck e5f8a38ae3 reload chadrc in autocmd 2024-03-19 09:32:01 +05:30
siduck 2e54fce028 add nvchad_types back & conform plugin 2024-03-18 06:29:28 +05:30
siduck 178bf21fde rm outdated info 2024-03-16 07:48:33 +05:30
siduck 8df62c803d rm useless code 2024-03-15 09:05:43 +05:30
siduck b94c57954f enable git by default for nvimtree 2024-03-15 06:37:04 +05:30
siduck 80c2e01c75 load blankline highlights after its setup() too https://github.com/lukas-reineke/indent-blankline.nvim/issues/754 2024-03-14 11:15:37 +05:30
siduck cf1db9821a use has(win32) func to detect windows #2690 2024-03-10 20:00:40 +05:30
siduck 259274a624 rm dead base46 integration from nvconfig 2024-03-10 19:18:10 +05:30
William Sedlacek 96ba9ceb0c
add vim.g.vscode_snippets_exclude option (#2715)
The `exclude` option for luasnip is useful for disabling snippets which a user may not want on by default.

For example the `all` option includes a snippet for `timeHMS` which always gets caught by `cmp` when typing `ts` for me which means all my typescript files end up as `file.16:07:21`
2024-03-10 07:01:07 +05:30
siduck 6fb5c313ed update branch for base46/ui plugin 2024-03-09 21:37:34 +05:30
siduck 6b40fb590f use vim.o instead of vim.opt for non tb opts 2024-03-09 18:13:19 +05:30
siduck bbc2cbaae6 rm including types in default lspconfig lua_lsp setup 2024-03-09 15:41:16 +05:30
siduck 166bb9beba rm some useless comments 2024-03-09 13:00:51 +05:30
siduck 2cf989cf31 rm useless term option 2024-03-08 19:46:31 +05:30
siduck 634f6d55de update some module paths 2024-03-07 06:50:13 +05:30
siduck 2282f9d338 rm termguicolors opt as its loaded in base46 2024-03-05 21:36:34 +05:30
Sidhanth Rathod c4db8736ce
rm useless command 2024-03-05 08:10:54 +05:30
siduck f6af7e8a29 rm un-needed require 2024-03-05 08:04:07 +05:30
siduck 6608363bd9 disable semantic tokens in on_init, in lspconfig.lua 2024-03-05 08:02:28 +05:30
siduck 168274038c add nvchad colorscheme in colors/ 2024-03-04 22:44:44 +05:30
siduck b17c4d9e86 mv nvconfig to lua/ 2024-03-04 11:56:40 +05:30
siduck e307a4eacf better plugin structure 2024-03-04 08:18:44 +05:30
siduck 73bf6c437f misc 2024-03-04 08:07:10 +05:30
siduck 7dc8c6d0b2 initial starter dir structure; 2024-02-29 22:03:20 +05:30
siduck 5d69a0d0f9 rm un-needed dofile call 2024-02-29 21:50:47 +05:30
siduck adf67560ce misc 2024-02-29 08:00:50 +05:30
siduck cd10647dd6 add mason bootstrap in main bootstrap file only 2024-02-28 20:13:34 +05:30
siduck 21753150d4 misc clean 2 2024-02-27 19:37:57 +05:30
siduck afd8870358 misc clean 2024-02-27 12:31:36 +05:30
siduck a5fc21b4f1 add some vim* tsparsers in treesitter config 2024-02-26 05:35:22 +05:30
siduck ce6e3d19a7 rm useless util function 2024-02-25 19:42:50 +05:30
siduck 4b1bca5303 clean mapping syntax 2024-02-25 08:43:48 +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
22 changed files with 792 additions and 106 deletions

2
colors/nvchad.lua Normal file
View File

@ -0,0 +1,2 @@
dofile(vim.g.base46_cache .. "defaults")
dofile(vim.g.base46_cache .. "statusline")

View File

@ -1,21 +0,0 @@
require "core"
local custom_init_path = vim.api.nvim_get_runtime_file("lua/custom/init.lua", false)[1]
if custom_init_path then
dofile(custom_init_path)
end
require("core.utils").load_mappings()
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
-- bootstrap lazy.nvim!
if not vim.loop.fs_stat(lazypath) then
require("core.bootstrap").gen_chadrc_template()
require("core.bootstrap").lazy(lazypath)
end
dofile(vim.g.base46_cache .. "defaults")
vim.opt.rtp:prepend(lazypath)
require "plugins"

View File

@ -8,6 +8,12 @@ M.ui = {
theme = "oceanic-next",
theme_toggle = { "oceanic-next", "ayu_light" },
cmp = {
icons = true,
lspkind_text = true,
style = "atom", -- default/flat_light/flat_dark/atom/atom_colored
},
hl_override = highlights.override,
hl_add = highlights.add,
lsp_semantic_tokens = true,
@ -16,7 +22,6 @@ M.ui = {
-- default/round/block/arrow separators work only for default statusline theme
-- round and block will work for minimal theme only
separator_style = "default",
overriden_modules = nil,
},
-- lazyload it when there are 1+ buffers
tabufline = {

View File

@ -55,9 +55,9 @@ M.ltex = {
languageToolOrg = {
apiKey = require "custom.secret.languagetool_token",
username = "accounts@cscherr.de",
languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/",
languageToolHttpServerUri = "https://api.languagetoolplus.com",
},
languageToolHttpServerUrl = "https://api.languagetoolplus.com/v2/",
languageToolHttpServerUri = "https://api.languagetoolplus.com",
},
},
}

70
lua/nvchad/autocmds.lua Normal file
View File

@ -0,0 +1,70 @@
local autocmd = vim.api.nvim_create_autocmd
-- dont list quickfix buffers
autocmd("FileType", {
pattern = "qf",
callback = function()
vim.opt_local.buflisted = false
end,
})
-- reload some chadrc options on-save
autocmd("BufWritePost", {
pattern = vim.tbl_map(function(path)
return vim.fs.normalize(vim.loop.fs_realpath(path))
end, vim.fn.glob(vim.fn.stdpath "config" .. "/lua/**/*.lua", true, true, true)),
group = vim.api.nvim_create_augroup("ReloadNvChad", {}),
callback = function(opts)
local fp = vim.fn.fnamemodify(vim.fs.normalize(vim.api.nvim_buf_get_name(opts.buf)), ":r") --[[@as string]]
local app_name = vim.env.NVIM_APPNAME and vim.env.NVIM_APPNAME or "nvim"
local module = string.gsub(fp, "^.*/" .. app_name .. "/lua/", ""):gsub("/", ".")
require("plenary.reload").reload_module "nvconfig"
require("plenary.reload").reload_module "chadrc"
require("plenary.reload").reload_module "base46"
require("plenary.reload").reload_module(module)
local config = require "nvconfig"
-- statusline
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 .. "')()"
-- tabufline
if config.ui.tabufline.enabled then
require("plenary.reload").reload_module "nvchad.tabufline.modules"
vim.opt.tabline = "%!v:lua.require('nvchad.tabufline.modules')()"
end
require("base46").load_all_highlights()
-- vim.cmd("redraw!")
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,
})

View File

@ -2,7 +2,7 @@ local cmp = require "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 field_arrangement = {
@ -75,10 +75,12 @@ local options = {
["<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()
@ -87,10 +89,8 @@ local options = {
else
fallback()
end
end, {
"i",
"s",
}),
end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
@ -99,10 +99,7 @@ local options = {
else
fallback()
end
end, {
"i",
"s",
}),
end, { "i", "s" }),
},
sources = {
{ 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

@ -0,0 +1,94 @@
local M = {}
local map = vim.keymap.set
local conf = require("nvconfig").ui.lsp
-- export on_attach & capabilities
M.on_attach = function(client, bufnr)
local function opts(desc)
return { buffer = bufnr, desc = desc }
end
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.lsp.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.lsp.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
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"
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"] = 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,
},
},
},
}
end
return M

View File

@ -0,0 +1,23 @@
-- vscode format
require("luasnip.loaders.from_vscode").lazy_load { exclude = vim.g.vscode_snippets_exclude or {} }
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

@ -1,5 +1,5 @@
local options = {
ensure_installed = { "lua-language-server" }, -- not an option from mason.nvim
ensure_installed = { "lua-language-server", 'stylua' }, -- not an option from mason.nvim
PATH = "skip",

View File

@ -1,7 +1,6 @@
local options = {
filters = {
dotfiles = false,
exclude = { vim.fn.stdpath "config" .. "/lua/custom" },
},
disable_netrw = true,
hijack_netrw = true,
@ -19,7 +18,7 @@ local options = {
preserve_window_proportions = true,
},
git = {
enable = false,
enable = true,
ignore = true,
},
filesystem_watchers = {
@ -32,11 +31,11 @@ local options = {
},
renderer = {
root_folder_label = false,
highlight_git = false,
highlight_git = true,
highlight_opened_files = "none",
indent_markers = {
enable = false,
enable = true,
},
icons = {
@ -44,7 +43,7 @@ local options = {
file = true,
folder = true,
folder_arrow = true,
git = false,
git = true,
},
glyphs = {

View File

@ -50,6 +50,14 @@ local options = {
},
extensions_list = { "themes", "terms" },
extensions = {
fzf = {
fuzzy = true,
override_generic_sorter = true,
override_file_sorter = true,
case_mode = "smart_case",
},
},
}
return options

View File

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

135
lua/nvchad/mappings.lua Normal file
View File

@ -0,0 +1,135 @@
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", "<Esc>", "<cmd>noh<CR>", { desc = "General Clear highlights" })
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", "<C-s>", "<cmd>w<CR>", { desc = "File Save" })
map("n", "<C-c>", "<cmd>%y+<CR>", { desc = "File Copy whole" })
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 = "Format Files" })
-- global lsp mappings
map("n", "<leader>lf", vim.diagnostic.open_float, { desc = "Lsp floating diagnostics" })
map("n", "[d", vim.diagnostic.goto_prev, { desc = "Lsp prev diagnostic" })
map("n", "]d", vim.diagnostic.goto_next, { desc = "Lsp next diagnostic" })
map("n", "<leader>q", 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>/", function()
require("Comment.api").toggle.linewise.current()
end, { desc = "Comment Toggle" })
map(
"v",
"<leader>/",
"<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>",
{ desc = "Comment Toggle" }
)
-- 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>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", "<cmd>Telescope themes<CR>", { 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", size = 0.3 }
end, { desc = "Terminal New horizontal term" })
map("n", "<leader>v", function()
require("nvchad.term").new { pos = "vsp", size = 0.3 }
end, { desc = "Terminal New vertical window" })
-- toggleable
map({ "n", "t" }, "<A-v>", function()
require("nvchad.term").toggle { pos = "vsp", id = "vtoggleTerm", size = 0.3 }
end, { desc = "Terminal Toggleable vertical term" })
map({ "n", "t" }, "<A-h>", function()
require("nvchad.term").toggle { pos = "sp", id = "htoggleTerm", size = 0.3 }
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" })
map("t", "<ESC>", function()
local win = vim.api.nvim_get_current_win()
vim.api.nvim_win_close(win, true)
end, { desc = "Terminal Close term in terminal mode" })
-- 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" })
-- blankline
map("n", "<leader>cc", function()
local config = { scope = {} }
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
local start_row, _, end_row, _ = node:range()
if start_row ~= end_row then
vim.api.nvim_win_set_cursor(vim.api.nvim_get_current_win(), { start_row + 1, 0 })
vim.api.nvim_feedkeys("_", "n", true)
end
end
end, { desc = "Blankline Jump to current context" })

59
lua/nvchad/options.lua Normal file
View File

@ -0,0 +1,59 @@
local opt = vim.opt
local o = vim.o
local g = vim.g
-------------------------------------- globals -----------------------------------------
g.toggle_theme_icon = ""
-------------------------------------- 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"
-- g.mapleader = " "
-- disable some default providers
vim.g["loaded_node_provider"] = 0
vim.g["loaded_python3_provider"] = 0
vim.g["loaded_perl_provider"] = 0
vim.g["loaded_ruby_provider"] = 0
-- add binaries installed by mason.nvim to path
local is_windows = vim.fn.has("win32") ~= 0
vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH

158
lua/nvchad/plugins/init.lua Normal file
View File

@ -0,0 +1,158 @@
return {
"nvim-lua/plenary.nvim",
-- formatting!
{
"stevearc/conform.nvim",
opts = {
formatters_by_ft = {
lua = { "stylua" },
},
},
config = function(_, opts)
require("conform").setup(opts)
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)
dofile(vim.g.base46_cache .. "syntax")
dofile(vim.g.base46_cache .. "treesitter")
require("nvim-treesitter.configs").setup(opts)
end,
},
-- git stuff
{
"lewis6991/gitsigns.nvim",
event = "User FilePost",
opts = function()
return require "nvchad.configs.gitsigns"
end,
config = function(_, opts)
dofile(vim.g.base46_cache .. "git")
require("gitsigns").setup(opts)
end,
},
-- lsp stuff
{
"williamboman/mason.nvim",
cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" },
opts = function()
return require "nvchad.configs.mason"
end,
config = function(_, opts)
dofile(vim.g.base46_cache .. "mason")
require("mason").setup(opts)
-- custom nvchad cmd to install all mason binaries listed
vim.api.nvim_create_user_command("MasonInstallAll", function()
if opts.ensure_installed and #opts.ensure_installed > 0 then
vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
end
end, {})
vim.g.mason_binaries_list = opts.ensure_installed
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,
config = function(_, opts)
require("cmp").setup(opts)
end,
},
{
"numToStr/Comment.nvim",
keys = {
{ "gcc", mode = "n", desc = "Comment toggle current line" },
{ "gc", mode = { "n", "o" }, desc = "Comment toggle linewise" },
{ "gc", mode = "x", desc = "Comment toggle linewise (visual)" },
{ "gbc", mode = "n", desc = "Comment toggle current block" },
{ "gb", mode = { "n", "o" }, desc = "Comment toggle blockwise" },
{ "gb", mode = "x", desc = "Comment toggle blockwise (visual)" },
},
config = function(_, opts)
require("Comment").setup(opts)
end,
},
{
"nvim-telescope/telescope.nvim",
dependencies = { "nvim-treesitter/nvim-treesitter" },
cmd = "Telescope",
opts = function()
return require "nvchad.configs.telescope"
end,
config = function(_, opts)
dofile(vim.g.base46_cache .. "telescope")
local telescope = require "telescope"
telescope.setup(opts)
-- load extensions
for _, ext in ipairs(opts.extensions_list) do
telescope.load_extension(ext)
end
end,
},
}

84
lua/nvchad/plugins/ui.lua Normal file
View File

@ -0,0 +1,84 @@
return {
{
"NvChad/base46",
branch = "v2.5",
build = function()
require("base46").load_all_highlights()
end,
},
{
"NvChad/ui",
branch = "v2.5",
lazy = false,
config = function()
require "nvchad"
end,
},
{
"NvChad/nvim-colorizer.lua",
event = "User FilePost",
config = function(_, opts)
require("colorizer").setup(opts)
-- execute colorizer as soon as possible
vim.defer_fn(function()
require("colorizer").attach_to_buffer(0)
end, 0)
end,
},
{
"nvim-tree/nvim-web-devicons",
opts = function()
return { override = require "nvchad.icons.devicons" }
end,
config = function(_, opts)
dofile(vim.g.base46_cache .. "devicons")
require("nvim-web-devicons").setup(opts)
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,
config = function(_, opts)
dofile(vim.g.base46_cache .. "nvimtree")
require("nvim-tree").setup(opts)
end,
},
{
"folke/which-key.nvim",
keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
cmd = "WhichKey",
config = function(_, opts)
dofile(vim.g.base46_cache .. "whichkey")
require("which-key").setup(opts)
end,
},
}

106
lua/nvconfig.lua Normal file
View File

@ -0,0 +1,106 @@
local M = {}
M.ui = {
------------------------------- base46 -------------------------------------
-- hl = highlights
hl_add = {},
hl_override = {},
changed_themes = {},
theme_toggle = { "onedark", "one_light" },
theme = "onedark", -- default theme
transparency = false,
cmp = {
icons = true,
lspkind_text = true,
style = "default", -- default/flat_light/flat_dark/atom/atom_colored
},
telescope = { style = "borderless" }, -- borderless / bordered
------------------------------- nvchad_ui modules -----------------------------
statusline = {
theme = "default", -- default/vscode/vscode_colored/minimal
-- default/round/block/arrow separators work only for default statusline theme
-- round and block will work for minimal theme only
separator_style = "default",
order = nil,
modules = nil,
},
-- lazyload it when there are 1+ buffers
tabufline = {
enabled = true,
lazyload = true,
order = { "treeOffset", "buffers", "tabs", "btns" },
modules = nil,
},
nvdash = {
load_on_startup = false,
header = {
" ▄ ▄ ",
" ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ ",
" █ ▄ █▄█ ▄▄▄ █ █▄█ █ █ ",
" ▄▄ █▄█▄▄▄█ █▄█▄█▄▄█▄▄█ █ ",
" ▄ █▄▄█ ▄ ▄▄ ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ",
" █▄▄▄▄ ▄▄▄ █ ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ █ ▄",
"▄ █ █▄█ █▄█ █ █ █▄█ █ █▄█ ▄▄▄ █ █",
"█▄█ ▄ █▄▄█▄▄█ █ ▄▄█ █ ▄ █ █▄█▄█ █",
" █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄█▄▄▄█ ",
},
buttons = {
{ " Find File", "Spc f f", "Telescope find_files" },
{ "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" },
{ "󰈭 Find Word", "Spc f w", "Telescope live_grep" },
{ " Bookmarks", "Spc m a", "Telescope marks" },
{ " Themes", "Spc t h", "Telescope themes" },
{ " Mappings", "Spc c h", "NvCheatsheet" },
},
},
cheatsheet = { theme = "grid" }, -- simple/grid
lsp = {
signature = true,
semantic_tokens = false,
},
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",
},
},
}
M.base46 = {
integrations = {
"blankline",
"cmp",
"defaults",
"devicons",
"git",
"lsp",
"mason",
"nvcheatsheet",
"nvdash",
"nvimtree",
"statusline",
"syntax",
"treesitter",
"tbline",
"telescope",
"whichkey",
},
}
return vim.tbl_deep_extend("force", M, require "chadrc")

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

@ -309,3 +309,10 @@ Notfallmaßnahmen
Eligswalde
Usecases
OpenAPI
#atz/!
satz/!
Satz
#orlde
Worlde/!
Wordle
GameBuilder

Binary file not shown.