11 Commits
Author SHA1 Message Date
Legrems 19c17b583b Merge branch 'v2.0' into p53 2024-04-03 16:12:53 +02:00
Legrems 8638342fa9 Add more git shortcut 2024-04-03 15:40:42 +02:00
Legrems a62a601e1f Add noice.lua 2024-03-27 14:39:55 +01:00
Legrems fe912ab5fb Add nvim-treesitter-textobjects 2024-02-26 18:27:42 +01:00
Legrems 86ccf3bb2d New plugins 2023-11-30 14:28:09 +01:00
Legrems 8d2bf49223 Ruff LSP 2023-11-07 17:46:58 +01:00
Legrems 8d535ad186 More mappings, fix multi select with telescope 2023-10-05 23:12:38 +02:00
Legrems 25bc8e05c4 Update 21.07.23 2023-07-21 22:29:43 +02:00
Legrems 29a0d2ee30 Add C-d to use diffview, C-A-d for close diffview 2023-06-06 11:30:26 +02:00
Legrems 722044c88a Update 05.06.23 2023-06-05 01:39:31 +02:00
Legrems b933fbe1d9 WIP 2023-05-24 05:22:31 +02:00
22 changed files with 1041 additions and 54 deletions
-2
View File
@@ -1,5 +1,3 @@
plugin
custom
spell spell
ftplugin ftplugin
syntax syntax
+11
View File
@@ -0,0 +1,11 @@
" hi DiffAdd gui=none guifg=NONE guibg=#bada9f
" hi DiffChange gui=none guifg=NONE guibg=#e5d5ac
" hi DiffDelete gui=bold guifg=#ff8080 guibg=#ffb0b0
" hi DiffText gui=none guifg=NONE guibg=#8cbee2
hi DiffAdd gui=none guifg=NONE guibg=#003200
hi DiffChange gui=none guifg=NONE guibg=#000032
hi DiffDelete gui=bold guifg=#ff8080 guibg=#602020
hi DiffText gui=bold guifg=NONE guibg=#102040
hi link @text.diff.add DiffAdd
hi link @text.diff.delete DiffDelete
hi link @text.diff.change DiffChange
+2
View File
@@ -18,4 +18,6 @@ end
dofile(vim.g.base46_cache .. "defaults") dofile(vim.g.base46_cache .. "defaults")
vim.opt.rtp:prepend(lazypath) vim.opt.rtp:prepend(lazypath)
vim.api.nvim_command "packadd cfilter"
vim.api.nvim_command "packadd justify"
require "plugins" require "plugins"
+7 -4
View File
@@ -10,9 +10,9 @@ M.ui = {
hl_add = {}, hl_add = {},
hl_override = {}, hl_override = {},
changed_themes = {}, changed_themes = {},
theme_toggle = { "onedark", "one_light" }, theme_toggle = { "gatekeeper", "one_light" },
theme = "onedark", -- default theme theme = "gatekeeper", -- default theme
transparency = false, transparency = true,
lsp_semantic_tokens = false, -- needs nvim v0.9, just adds highlight groups for lsp semantic tokens 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 -- https://github.com/NvChad/base46/tree/v2.0/lua/base46/extended_integrations
@@ -36,6 +36,9 @@ M.ui = {
-- 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, overriden_modules = nil,
fileInfo = function()
return require("nvchad_ui.statusline.default.fileInfo").run()
end
}, },
-- lazyload it when there are 1+ buffers -- lazyload it when there are 1+ buffers
@@ -65,7 +68,7 @@ M.ui = {
buttons = { buttons = {
{ " Find File", "Spc f f", "Telescope find_files" }, { " Find File", "Spc f f", "Telescope find_files" },
{ "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" }, { "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" },
{ "󰈭 Find Word", "Spc f w", "Telescope live_grep" }, { "󰈭 Find Word", "Spc f w", "Telescope find_grep" },
{ " Bookmarks", "Spc m a", "Telescope marks" }, { " Bookmarks", "Spc m a", "Telescope marks" },
{ " Themes", "Spc t h", "Telescope themes" }, { " Themes", "Spc t h", "Telescope themes" },
{ " Mappings", "Spc c h", "NvCheatsheet" }, { " Mappings", "Spc c h", "NvCheatsheet" },
+7 -4
View File
@@ -6,7 +6,7 @@ local config = require("core.utils").load_config()
g.nvchad_theme = config.ui.theme 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 g.transparency = true
-------------------------------------- options ------------------------------------------ -------------------------------------- options ------------------------------------------
opt.laststatus = 3 -- global statusline opt.laststatus = 3 -- global statusline
@@ -17,10 +17,10 @@ opt.cursorline = true
-- Indenting -- Indenting
opt.expandtab = true opt.expandtab = true
opt.shiftwidth = 2 opt.shiftwidth = 4
opt.smartindent = true opt.smartindent = true
opt.tabstop = 2 opt.tabstop = 4
opt.softtabstop = 2 opt.softtabstop = 4
opt.fillchars = { eob = " " } opt.fillchars = { eob = " " }
opt.ignorecase = true opt.ignorecase = true
@@ -31,6 +31,7 @@ opt.mouse = "a"
opt.number = true opt.number = true
opt.numberwidth = 2 opt.numberwidth = 2
opt.ruler = false opt.ruler = false
opt.relativenumber = true
-- disable nvim intro -- disable nvim intro
opt.shortmess:append "sI" opt.shortmess:append "sI"
@@ -41,6 +42,7 @@ opt.splitright = true
opt.termguicolors = true opt.termguicolors = true
opt.timeoutlen = 400 opt.timeoutlen = 400
opt.undofile = true opt.undofile = true
opt.scrolloff = 15
-- interval for writing swap file to disk, also used by gitsigns -- interval for writing swap file to disk, also used by gitsigns
opt.updatetime = 250 opt.updatetime = 250
@@ -91,6 +93,7 @@ autocmd("BufWritePost", {
vim.g.nvchad_theme = config.ui.theme vim.g.nvchad_theme = config.ui.theme
vim.g.transparency = config.ui.transparency vim.g.transparency = config.ui.transparency
vim.g.transparency = true
-- statusline -- statusline
require("plenary.reload").reload_module("nvchad.statusline." .. config.ui.statusline.theme) require("plenary.reload").reload_module("nvchad.statusline." .. config.ui.statusline.theme)
+151 -38
View File
@@ -16,6 +16,8 @@ M.general = {
}, },
n = { n = {
["<leader>n"] = { ":noh <CR>", "Clear highlights" },
["<leader>rr"] = { ":source $MYVIMRC<CR>", "Reload config file" },
["<Esc>"] = { "<cmd> noh <CR>", "Clear highlights" }, ["<Esc>"] = { "<cmd> noh <CR>", "Clear highlights" },
-- switch between windows -- switch between windows
["<C-h>"] = { "<C-w>h", "Window left" }, ["<C-h>"] = { "<C-w>h", "Window left" },
@@ -23,28 +25,43 @@ M.general = {
["<C-j>"] = { "<C-w>j", "Window down" }, ["<C-j>"] = { "<C-w>j", "Window down" },
["<C-k>"] = { "<C-w>k", "Window up" }, ["<C-k>"] = { "<C-w>k", "Window up" },
-- ["<C-d>"] = { "<cmd> tab Git diff %<CR>", "Git diff this file" },
["<C-d>"] = { "<cmd> DiffviewOpen -- %<CR>", "Git diff this file" },
["<C-o>"] = { "<cmd> DiffviewFileHistory %<CR>", "Git history diff this file" },
["<C-a-d>"] = { "<cmd> DiffviewClose<CR>", "Close git diff" },
-- ["<C-p>"] = { "<cmd> tab Git diff<CR>", "Git diff global" },
["<C-p>"] = { "<cmd> DiffviewOpen<CR>", "Git diff global" },
["<a-p>"] = { ":DiffviewOpen HEAD~", "Show last N commits" },
["<leader>gd"] = { "<cmd> DiffviewClose<CR>", "Git diff close" },
-- save -- save
["<C-s>"] = { "<cmd> w <CR>", "Save file" }, ["<C-s>"] = { "<cmd> w <CR>", "Save file" },
-- Copy all -- Copy all
["<C-c>"] = { "<cmd> %y+ <CR>", "Copy whole file" }, -- ["<C-c>"] = { "<cmd> %y+ <CR>", "Copy whole file" },
-- Quit
["<C-q>"] = { "<cmd> q! <CR>", "Force quit window" },
-- line numbers -- line numbers
["<leader>n"] = { "<cmd> set nu! <CR>", "Toggle line number" }, -- ["<leader>n"] = { "<cmd> set nu! <CR>", "Toggle line number" },
["<leader>rn"] = { "<cmd> set rnu! <CR>", "Toggle relative number" }, -- ["<leader>rn"] = { "<cmd> set rnu! <CR>", "Toggle relative number" },
-- Allow moving the cursor through wrapped lines with j, k, <Up> and <Down> -- 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/ -- http://www.reddit.com/r/vim/comments/2k4cbr/problem_with_gj_and_gk/
-- empty mode is same as using <cmd> :map -- empty mode is same as using <cmd> :map
-- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour -- also don't use g[j|k] when in operator pending mode, so it doesn't alter d, y or c behaviour
["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, -- ["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 } }, -- ["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } },
["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, -- ["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } },
["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, -- ["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } },
["<leader>y"] = {"<cmd> :w! /tmp/vimtmp<CR>", "Save into a global tmp file"},
["<leader>p"] = {"<cmd> :r! cat /tmp/vimtmp<CR>", "Restore from the global tmp file"},
-- new buffer -- new buffer
["<leader>b"] = { "<cmd> enew <CR>", "New buffer" }, -- ["<leader>b"] = { "<cmd> enew <CR>", "New buffer" },
["<leader>ch"] = { "<cmd> NvCheatsheet <CR>", "Mapping cheatsheet" }, -- ["<leader>ch"] = { "<cmd> NvCheatsheet <CR>", "Mapping cheatsheet" },
["<leader>fm"] = { ["<leader>fm"] = {
function() function()
@@ -59,21 +76,80 @@ M.general = {
}, },
v = { v = {
["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } }, -- ["<Up>"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } },
["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, -- ["<Down>"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } },
["<"] = { "<gv", "Indent line" }, ["<"] = { "<gv", "Indent line" },
[">"] = { ">gv", "Indent line" }, [">"] = { ">gv", "Indent line" },
}, },
x = { x = {
["j"] = { 'v:count || mode(1)[0:1] == "no" ? "j" : "gj"', "Move down", opts = { expr = true } }, -- ["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 } }, -- ["k"] = { 'v:count || mode(1)[0:1] == "no" ? "k" : "gk"', "Move up", opts = { expr = true } },
-- Don't copy the replaced text after pasting in visual mode -- Don't copy the replaced text after pasting in visual mode
-- https://vim.fandom.com/wiki/Replace_a_word_with_yanked_text#Alternative_mapping_for_paste -- https://vim.fandom.com/wiki/Replace_a_word_with_yanked_text#alternative_mapping_for_paste
["p"] = { 'p:let @+=@0<CR>:let @"=@0<CR>', "Dont copy replaced text", opts = { silent = true } }, ["p"] = { 'p:let @+=@0<CR>:let @"=@0<CR>', "Dont copy replaced text", opts = { silent = true } },
}, },
} }
M.customstuffs = {
n = {
["<Return>"] = { "o<ESC>", "Insert new line below" },
["<BS>"] = { "O<ESC>", "Insert new line above" },
["<C-c>"] = { "<cmd> vertical topleft Git <bar> vertical resize 50<CR>", "Show Git status on a left pane" },
["<F1>"] = { "<cmd> tabprevious<CR>", "Previous tab" },
["<F2>"] = { "<cmd> tabnext<CR>", "Next tab" },
["<F3>"] = { "<cmd> Flog -all<CR>", "Show git tree" },
["<F4>"] = { "<cmd> tab Git show -", "Git show N last commits" },
["<C-t>"] = { "<cmd> TagbarToggle<CR>", "Show tagbar" },
["<leader>ra"] = { "<cmd> call VrcQuery()<CR>", "Call REST endpoint" },
["<leader>dl"] = { "0d$", "Delete line from start" },
["<leader>gpu"] = { "<cmd> Git pull<CR>", "Git pull" },
["<leader>gpf"] = { ":Git push ", "Git push with option" },
["<leader>gmm"] = { "<cmd> Git merge master<CR>", "Git merge master" },
["<leader>gmi"] = { ":Git merge ", "Git merge ..." },
["<leader>ga"] = { ":Git commit -a --amend --no-edit --no-verify", "Git commit -a --amend --no-edit --no-verify" },
["<leader>gnb"] = { ":Git checkout -b ", "Checkout to a new branch" },
["<leader>gri"] = { ":Git rebase -i HEAD~", "Git rebase interactive from HEAD" },
["<leader>grm"] = { ":Git rebase -i master", "Git rebase interactive from master" },
["<leader>grr"] = { ":Git rebase -i ", "Git rebase interactive from <select>" },
-- ["<leader>mkd"] = { "<cmd>lua vim.api.nvim_create_user_command('PeekOpen', require('peek').open, {})<CR>", "Open markdown preview" },
-- ["<leader>mkc"] = { "<cmd>lua vim.api.nvim_create_user_command('PeekClose', require('peek').close, {})<CR>", "Open markdown preview" },
["n"] = { "nzz", "Next + auto center" },
["N"] = { "Nzz", "Previous + auto center" },
["("] = { "(zz", "Previous + auto center" },
[")"] = { ")zz", "Previous + auto center" },
["{"] = { "{zz", "Previous + auto center" },
["}"] = { "}zz", "Previous + auto center" },
["[["] = { "[[zz", "Previous + auto center" },
["]]"] = { "]]zz", "Previous + auto center" },
-- Mappings: TODO
-- "trim(system('git branch --show-current 2>/dev/null'))"
-- ["<leader>ct"] = { ":call append(line('.') - 1, repeat(' ', indent('.')) . '# TODO-' . trim(system('git branch --show-current 2>/dev/null')) . ': ' . input('Comment >'))<CR>", "Add TODO comment + add to quickfix list" },
["<leader>ct"] = { ":call append(line('.') - 1, repeat(' ', indent('.')) . '# TODO: ' . input('Comment >'))<CR>", "Add TODO comment + add to quickfix list" },
["<leader>ww"] = { ":lua require('nvim-window').pick()<CR>", "Pick window to goto" },
["<leader>wm"] = { ":WinShift<CR>", "Enter move window mode" },
["<leader>ws"] = { ":WinShift swap<CR>", "Swap window, with selection" },
["<leader>gg"] = { ":LazyGit<CR>", "Open lazygit" },
},
v = {
["n"] = { "nzz", "Next + auto center" },
["N"] = { "Nzz", "Previous + auto center" },
["("] = { "(zz", "Previous + auto center" },
[")"] = { ")zz", "Previous + auto center" },
["{"] = { "{zz", "Previous + auto center" },
["}"] = { "}zz", "Previous + auto center" },
["[["] = { "[[zz", "Previous + auto center" },
["]]"] = { "]]zz", "Previous + auto center" },
},
}
M.tabufline = { M.tabufline = {
plugin = true, plugin = true,
@@ -108,7 +184,7 @@ M.comment = {
-- toggle comment in both modes -- toggle comment in both modes
n = { n = {
["<leader>/"] = { ["<leader>ci"] = {
function() function()
require("Comment.api").toggle.linewise.current() require("Comment.api").toggle.linewise.current()
end, end,
@@ -117,7 +193,7 @@ M.comment = {
}, },
v = { v = {
["<leader>/"] = { ["<leader>ci"] = {
"<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>", "<ESC><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<CR>",
"Toggle comment", "Toggle comment",
}, },
@@ -214,18 +290,18 @@ M.lspconfig = {
"Goto next", "Goto next",
}, },
["<leader>q"] = { -- ["<leader>q"] = {
function() -- function()
vim.diagnostic.setloclist() -- vim.diagnostic.setloclist()
end, -- end,
"Diagnostic setloclist", -- "Diagnostic setloclist",
}, -- },
["<leader>wa"] = { ["<leader>wa"] = {
function() function()
vim.lsp.buf.add_workspace_folder() vim.lsp.buf.add_workspace_folder()
end, end,
"Add workspace folder", "add workspace folder",
}, },
["<leader>wr"] = { ["<leader>wr"] = {
@@ -269,18 +345,45 @@ M.telescope = {
plugin = true, plugin = true,
n = { n = {
-- Resume
["<a-f>"] = { "<cmd> Telescope resume <CR>", "Resume" },
-- find -- find
["<leader>ff"] = { "<cmd> Telescope find_files <CR>", "Find files" }, ["<C-g>"] = { "<cmd> Telescope find_files <CR>", "Find files" },
["<leader>fa"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "Find all" }, ["<C-x>"] = { "<cmd> Telescope find_files follow=true no_ignore=true hidden=true <CR>", "Find all" },
["<leader>fw"] = { "<cmd> Telescope live_grep <CR>", "Live grep" }, ["<C-f>"] = { "<cmd> Telescope live_grep <CR>", "Live grep" },
["<leader>fb"] = { "<cmd> Telescope buffers <CR>", "Find buffers" }, ["<C-b>"] = { "<cmd> Telescope buffers <CR>", "Find buffers" },
["<leader>fg"] = { "<cmd> lua require('telescope.builtin').live_grep({default_text=vim.fn.getreg('/')}) <CR>", "Live grep with actual search value as prefix" },
["<leader>gf"] = { "<cmd> lua require('telescope.builtin').find_files({default_text=vim.fn.getreg('/')}) <CR>", "Live grep with actual search value as prefix" },
["<leader>ac"] = { ":execute 'vimgrep' input('Pattern >', getreg('/')) '**/*' <CR>", "add search term files in quickfix list" },
-- ["<leader>qr"] = { ":execute 'cdo' '%s/' . input('Search term >', getreg('/')) . '/' . input('Replace by >', getreg('')) . '/g | update' <CR>", "Replace pattern in all quickfix list" },
["<leader>qr"] = { ":cdo '%s/' . input('Search term >', getreg('/')) . '/' . input('Replace by >', '') . '/g | update' <CR>", "Replace pattern in all quickfix list" },
["<leader>br"] = { ":execute '%s/' . input('Search term >', getreg('/')) . '/' . input('Replace by >', '') . '/g | update' <CR>", "Replace pattern in current buffer" },
["<leader>ql"] = { "<cmd> Telescope quickfix <CR>", "Show quickfix list" },
["<leader>qn"] = { ":cnext<CR>", "Jump to next in quickfix list" },
["<leader>qp"] = { ":cprevious<CR>", "Jump to previous in quickfix list" },
["<leader>ll"] = { "<cmd> Telescope loclist <CR>", "Show loclist list" },
["<leader>ln"] = { ":lnext<CR>", "Jump to next in loclist" },
["<leader>lp"] = { ":lprevious<CR>", "Jump to previous in loclist" },
["<leader>fh"] = { "<cmd> Telescope help_tags <CR>", "Help page" }, ["<leader>fh"] = { "<cmd> Telescope help_tags <CR>", "Help page" },
["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "Find oldfiles" }, ["<leader>fo"] = { "<cmd> Telescope oldfiles <CR>", "Find oldfiles" },
["<leader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <CR>", "Find in current buffer" }, ["<leader>fz"] = { "<cmd> Telescope current_buffer_fuzzy_find <CR>", "Find in current buffer" },
["<leader>wl"] = { "<cmd> Telescope workspaces <CR>", "Find workspaces" },
-- git -- git
["<leader>cm"] = { "<cmd> Telescope git_commits <CR>", "Git commits" }, --- Commits
["<leader>gt"] = { "<cmd> Telescope git_status <CR>", "Git status" }, ["<leader>gc"] = { "<cmd> lua require('custom.telescope').my_git_commits()<CR>", "Custom Git commits" },
--- Status
["<leader>gss"] = { "<cmd> lua require('custom.telescope').my_git_status()<CR>", "Custom Git status" },
--- Stash
["<leader>gsh"] = { "<cmd> Telescope git_stash<CR>", "Git stash" },
--- Branches
["<leader>gbb"] = { "<cmd> Telescope git_branches<CR>", "Git branches" },
["<leader>gbc"] = { "<cmd> lua require('custom.telescope').my_git_bcommits()<CR>", "Custom Git branchs commits" },
-- pick a hidden term -- pick a hidden term
["<leader>pt"] = { "<cmd> Telescope terms <CR>", "Pick hidden term" }, ["<leader>pt"] = { "<cmd> Telescope terms <CR>", "Pick hidden term" },
@@ -289,6 +392,16 @@ M.telescope = {
["<leader>th"] = { "<cmd> Telescope themes <CR>", "Nvchad themes" }, ["<leader>th"] = { "<cmd> Telescope themes <CR>", "Nvchad themes" },
["<leader>ma"] = { "<cmd> Telescope marks <CR>", "telescope bookmarks" }, ["<leader>ma"] = { "<cmd> Telescope marks <CR>", "telescope bookmarks" },
-- History
["<leader>ch"] = { "<cmd> Telescope command_history <CR>", "telescope commands history" },
["<leader>/"] = { "<cmd> Telescope search_history <CR>", "telescope search history" },
-- Diaglist: LSP diagnostics in quick/loc list
["<leader>dw"] = { "<cmd>lua require('diaglist').open_all_diagnostics()<CR>", "Open all open buffers diagnostics in quickfix list" },
["<leader>d0"] = { "<cmd>lua require('diaglist').open_buffer_diagnostics()<CR>", "Open current buffer diagnostics in loclist list" },
["<leader>;"] = { "<cmd> Telescope <CR>", "Open Telescope" },
}, },
} }
@@ -297,21 +410,21 @@ M.nvterm = {
t = { t = {
-- toggle in terminal mode -- toggle in terminal mode
["<A-i>"] = { ["<a-i>"] = {
function() function()
require("nvterm.terminal").toggle "float" require("nvterm.terminal").toggle "float"
end, end,
"Toggle floating term", "Toggle floating term",
}, },
["<A-h>"] = { ["<a-h>"] = {
function() function()
require("nvterm.terminal").toggle "horizontal" require("nvterm.terminal").toggle "horizontal"
end, end,
"Toggle horizontal term", "Toggle horizontal term",
}, },
["<A-v>"] = { ["<a-v>"] = {
function() function()
require("nvterm.terminal").toggle "vertical" require("nvterm.terminal").toggle "vertical"
end, end,
@@ -321,21 +434,21 @@ M.nvterm = {
n = { n = {
-- toggle in normal mode -- toggle in normal mode
["<A-i>"] = { ["<a-i>"] = {
function() function()
require("nvterm.terminal").toggle "float" require("nvterm.terminal").toggle "float"
end, end,
"Toggle floating term", "Toggle floating term",
}, },
["<A-h>"] = { ["<a-h>"] = {
function() function()
require("nvterm.terminal").toggle "horizontal" require("nvterm.terminal").toggle "horizontal"
end, end,
"Toggle horizontal term", "Toggle horizontal term",
}, },
["<A-v>"] = { ["<a-v>"] = {
function() function()
require("nvterm.terminal").toggle "vertical" require("nvterm.terminal").toggle "vertical"
end, end,
@@ -434,7 +547,7 @@ M.gitsigns = {
opts = { expr = true }, opts = { expr = true },
}, },
-- Actions -- actions
["<leader>rh"] = { ["<leader>rh"] = {
function() function()
require("gitsigns").reset_hunk() require("gitsigns").reset_hunk()
@@ -449,7 +562,7 @@ M.gitsigns = {
"Preview hunk", "Preview hunk",
}, },
["<leader>gb"] = { ["<leader>bb"] = {
function() function()
package.loaded.gitsigns.blame_line() package.loaded.gitsigns.blame_line()
end, end,
+20
View File
@@ -0,0 +1,20 @@
---@type ChadrcConfig
local M = {}
-- Path to overriding theme and highlights files
local highlights = require "custom.highlights"
M.ui = {
theme = "onedark",
theme_toggle = { "onedark", "monekai" },
hl_override = highlights.override,
hl_add = highlights.add,
}
M.plugins = "custom.plugins"
-- check core.mappings for table structure
M.mappings = require "custom.mappings"
return M
+17
View File
@@ -0,0 +1,17 @@
local on_attach = require("plugins.configs.lspconfig").on_attach
local capabilities = require("plugins.configs.lspconfig").capabilities
local lspconfig = require "lspconfig"
-- if you just want default config for the servers then put them in a table
local servers = { "html", "cssls", "tsserver", "clangd", "salt_ls" }
for _, lsp in ipairs(servers) do
lspconfig[lsp].setup {
on_attach = on_attach,
capabilities = capabilities,
}
end
--
-- lspconfig.pyright.setup { blabla}
+25
View File
@@ -0,0 +1,25 @@
local present, null_ls = pcall(require, "null-ls")
if not present then
return
end
local b = null_ls.builtins
local sources = {
-- webdev stuff
b.formatting.deno_fmt, -- choosed deno for ts/js files cuz its very fast!
b.formatting.prettier.with { filetypes = { "html", "markdown", "css" } }, -- so prettier works only on these filetypes
-- Lua
b.formatting.stylua,
-- cpp
b.formatting.clang_format,
}
null_ls.setup {
debug = true,
sources = sources,
}
+68
View File
@@ -0,0 +1,68 @@
local M = {}
M.treesitter = {
ensure_installed = {
"vim",
"lua",
"html",
"css",
"javascript",
"typescript",
"tsx",
"c",
"markdown",
"markdown_inline",
},
indent = {
enable = true,
-- disable = {
-- "python"
-- },
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
}
M.mason = {
ensure_installed = {
-- lua stuff
"lua-language-server",
"stylua",
-- web dev stuff
"css-lsp",
"html-lsp",
"typescript-language-server",
"deno",
"prettier",
-- c/cpp stuff
"clangd",
"clang-format",
},
}
-- git support in nvimtree
M.nvimtree = {
git = {
enable = true,
},
renderer = {
highlight_git = true,
icons = {
show = {
git = true,
},
},
},
}
return M
+19
View File
@@ -0,0 +1,19 @@
-- To find any highlight groups: "<cmd> Telescope highlights"
-- Each highlight group can take a table with variables fg, bg, bold, italic, etc
-- base30 variable names can also be used as colors
local M = {}
---@type Base46HLGroupsList
M.override = {
Comment = {
italic = true,
},
}
---@type HLTable
M.add = {
NvimTreeOpenedFolderName = { fg = "green", bold = true },
}
return M
+7
View File
@@ -0,0 +1,7 @@
-- local autocmd = vim.api.nvim_create_autocmd
-- Auto resize panes when resizing nvim window
-- autocmd("VimResized", {
-- pattern = "*",
-- command = "tabdo wincmd =",
-- })
+12
View File
@@ -0,0 +1,12 @@
---@type MappingsTable
local M = {}
M.general = {
n = {
[";"] = { ":", "enter command mode", opts = { nowait = true } },
},
}
-- more keybinds!
--
return M
+65
View File
@@ -0,0 +1,65 @@
local overrides = require("custom.configs.overrides")
---@type NvPluginSpec[]
local plugins = {
-- Override plugin definition options
{
"neovim/nvim-lspconfig",
dependencies = {
-- format & linting
{
"jose-elias-alvarez/null-ls.nvim",
config = function()
require "custom.configs.null-ls"
end,
},
},
config = function()
require "plugins.configs.lspconfig"
require "custom.configs.lspconfig"
end, -- Override to setup mason-lspconfig
},
-- override plugin configs
{
"williamboman/mason.nvim",
opts = overrides.mason
},
{
"nvim-treesitter/nvim-treesitter",
opts = overrides.treesitter,
},
{
"nvim-tree/nvim-tree.lua",
opts = overrides.nvimtree,
},
-- Install a plugin
{
"max397574/better-escape.nvim",
event = "InsertEnter",
config = function()
require("better_escape").setup()
end,
},
-- To make a plugin not be loaded
-- {
-- "NvChad/nvim-colorizer.lua",
-- enabled = false
-- },
-- All NvChad plugins are lazy-loaded by default
-- For a plugin to be loaded, you will need to set either `ft`, `cmd`, `keys`, `event`, or set `lazy = false`
-- If you want a plugin to load on startup, add `lazy = false` to a plugin spec, for example
-- {
-- "mg979/vim-visual-multi",
-- lazy = false,
-- }
}
return plugins
+62
View File
@@ -0,0 +1,62 @@
-- Implement delta as previewer for diffs
local previewers = require('telescope.previewers')
local builtin = require('telescope.builtin')
local E = {}
local delta = previewers.new_termopen_previewer {
get_command = function(entry)
-- this is for status
-- You can get the AM things in entry.status. So we are displaying file if entry.status == '??' or 'A '
-- just do an if and return a different command
if entry.status == '??' or 'A ' then
return { 'git', '-c', 'core.pager=delta', '-c', 'delta.side-by-side=false', 'diff', entry.value }
end
-- note we can't use pipes
-- this command is for git_commits and git_bcommits
return { 'git', '-c', 'core.pager=delta', '-c', 'delta.side-by-side=false', 'diff', entry.value .. '^!' }
end
}
E.my_git_commits = function(opts)
opts = opts or {}
opts.previewer = delta
builtin.git_commits(opts)
end
E.my_git_bcommits = function(opts)
opts = opts or {}
opts.previewer = delta
builtin.git_bcommits(opts)
end
E.my_git_status = function(opts)
opts = opts or {}
opts.previewer = delta
builtin.git_status(opts)
end
E.my_git_branches = function(opts)
opts = opts or {}
opts.previewer = delta
builtin.git_branches(opts)
end
E.project_files = function()
local opts = {} -- define here if you want to define something
vim.fn.system('git rev-parse --is-inside-work-tree')
if vim.v.shell_error == 0 then
require"telescope.builtin".git_files(opts)
else
require"telescope.builtin".find_files(opts)
end
end
return E
+5
View File
@@ -0,0 +1,5 @@
local actions = require("diffview.actions")
local options = {}
return options
+35
View File
@@ -0,0 +1,35 @@
local Hydra = require("hydra")
Hydra({
name = "Change / Resize Window",
mode = { "n" },
body = "<leader>t",
config = {
-- color = "pink",
},
heads = {
-- move between windows
{ "<C-h>", "<C-w>h", { desc="Noot nooty" } },
{ "<C-j>", "<C-w>j" },
{ "<C-k>", "<C-w>k" },
{ "<C-l>", "<C-w>l" },
-- resizing window
{ "H", "<C-w>3<" },
{ "L", "<C-w>3>" },
{ "K", "<C-w>2+" },
{ "J", "<C-w>2-" },
-- equalize window sizes
{ "e", "<C-w>=" },
-- close active window
{ "Q", ":q<cr>" },
{ "<C-q>", ":q<cr>" },
-- exit this Hydra
{ "q", nil, { exit = true, nowait = true } },
{ ";", nil, { exit = true, nowait = true } },
{ "<Esc>", nil, { exit = true, nowait = true } },
},
})
+46
View File
@@ -0,0 +1,46 @@
local M = {
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
},
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
views = {
cmdline_popup = {
-- border = {
-- style = "none",
-- padding = { 2, 3 },
-- },
-- position = {
-- row = "85%",
-- col = "50%",
-- },
size = {
width = 120,
height = "auto",
},
},
popupmenu = {
-- relative = "editor",
-- position = {
-- row = 25,
-- col = "50%",
-- },
size = {
width = 120,
-- height = 10,
}
}
},
}
return M
+47
View File
@@ -0,0 +1,47 @@
-- See: https://github.com/neovim/nvim-lspconfig/tree/54eb2a070a4f389b1be0f98070f81d23e2b1a715#suggested-configuration
local opts = { noremap=true, silent=true }
vim.keymap.set('n', '<space>k', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings.
-- See `:help vim.lsp.*` for documentation on any of the below functions
local bufopts = { noremap=true, silent=true, buffer=bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
end
-- Configure `ruff-lsp`.
-- See: https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#ruff_lsp
-- For the default config, along with instructions on how to customize the settings
require('lspconfig').ruff_lsp.setup {
on_attach = on_attach,
init_options = {
settings = {
-- Any extra CLI arguments for `ruff` go here.
args = {"--ignore", "E741"},
}
}
}
+134 -6
View File
@@ -1,3 +1,96 @@
local custom_actions = {}
local actions = require("telescope.actions")
local action_state = require("telescope.actions.state")
local from_entry = require("telescope.from_entry")
local entry_to_qf = function(entry)
local text = entry.text
if not text then
if type(entry.value) == "table" then
text = entry.value.text
else
text = entry.value
end
end
return {
bufnr = entry.bufnr,
filename = from_entry.path(entry, false, false),
lnum = vim.F.if_nil(entry.lnum, 1),
col = vim.F.if_nil(entry.col, 1),
text = text,
}
end
local send_selected_to_list_without_closing_prompt = function(prompt_bufnr, mode, target)
local picker = action_state.get_current_picker(prompt_bufnr)
local qf_entries = {}
for _, entry in ipairs(picker:get_multi_selection()) do
table.insert(qf_entries, entry_to_qf(entry))
end
local prompt = picker:_get_prompt()
-- actions.close(prompt_bufnr)
vim.api.nvim_exec_autocmds("QuickFixCmdPre", {})
if target == "loclist" then
vim.fn.setloclist(picker.original_win_id, qf_entries, mode)
else
local qf_title = string.format([[%s (%s)]], picker.prompt_title, prompt)
vim.fn.setqflist(qf_entries, mode)
vim.fn.setqflist({}, "a", { title = qf_title })
end
vim.api.nvim_exec_autocmds("QuickFixCmdPost", {})
end
function custom_actions._multiopen(prompt_bufnr, cmd, cmd2, mode, list)
-- actions.send_selected_to_loclist(prompt_bufnr)
local picker = action_state.get_current_picker(prompt_bufnr)
local multi = picker:get_multi_selection()
local single = picker:get_selection()
local str = ""
if #multi > 0 then
send_selected_to_list_without_closing_prompt(prompt_bufnr, mode, list)
for i, j in ipairs(multi) do
if i % 2 == 1 then
str = str..cmd.." "..j[1].." | "
else
str = str..cmd2.." "..j[1].." | "
end
end
else
str = cmd.." "..single[1]
end
-- To avoid populating qf or doing ":edit! file", close the prompt first
actions.close(prompt_bufnr)
vim.api.nvim_command(str)
end
function custom_actions.multi_selection_open(prompt_bufnr)
return custom_actions._multiopen(prompt_bufnr, "edit", "edit", "a", "loclist")
end
function custom_actions.multi_selection_vsplit(prompt_bufnr)
return custom_actions._multiopen(prompt_bufnr, "vsplit", "split", "a", "loclist")
end
function custom_actions.multi_selection_split(prompt_bufnr)
return custom_actions._multiopen(prompt_bufnr, "split", "vsplit", "a", "loclist")
end
function custom_actions.multi_selection_vtab(prompt_bufnr)
return custom_actions._multiopen(prompt_bufnr, "tabe", "tabe", "a", "loclist")
end
local options = { local options = {
defaults = { defaults = {
vimgrep_arguments = { vimgrep_arguments = {
@@ -20,14 +113,15 @@ local options = {
layout_config = { layout_config = {
horizontal = { horizontal = {
prompt_position = "top", prompt_position = "top",
preview_width = 0.55, preview_width = 0.60,
results_width = 0.8,
}, },
vertical = { vertical = {
mirror = false, mirror = false,
}, },
width = 0.87, width = 0.90,
height = 0.80, height = 0.92,
preview_cutoff = 120, preview_cutoff = 200,
}, },
file_sorter = require("telescope.sorters").get_fuzzy_file, file_sorter = require("telescope.sorters").get_fuzzy_file,
file_ignore_patterns = { "node_modules" }, file_ignore_patterns = { "node_modules" },
@@ -44,11 +138,45 @@ local options = {
-- Developer configurations: Not meant for general override -- Developer configurations: Not meant for general override
buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker, buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
mappings = { mappings = {
n = { ["q"] = require("telescope.actions").close }, n = { ["q"] = actions.close },
}, },
}, },
pickers = {
buffers = {
show_all_buffers = true,
sort_lastused = true,
mappings = {
n = {
["d"] = "delete_buffer",
},
i = {
["<C-d>"] = "delete_buffer",
}
}
},
find_files = {
mappings = {
i = {
["<CR>"] = custom_actions.multi_selection_open,
["<C-V>"] = custom_actions.multi_selection_vsplit,
["<C-X>"] = custom_actions.multi_selection_split,
["<C-T>"] = custom_actions.multi_selection_tab,
["<C-SPACE>"] = actions.send_selected_to_qflist,
},
n = i,
}
}
},
extensions_list = { "themes", "terms" }, extensions_list = { "themes", "terms", "fzf", "macrothis" },
extensions = {
fzf = {
fuzzy = true,
override_generic_sorter = true,
override_file_sorter = true,
case_mode = "smart_case",
}
}
} }
return options return options
@@ -0,0 +1,133 @@
local M = {}
M.textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["a="] = { query = "@assignment.outer", desc = "Select outer part of an assignment" },
["i="] = { query = "@assignment.inner", desc = "Select inner part of an assignment" },
["l="] = { query = "@assignment.lhs", desc = "Select left hand side of an assignment" },
["r="] = { query = "@assignment.rhs", desc = "Select right hand side of an assignment" },
["aa"] = { query = "@parameter.outer", desc = "Select outer part of a parameter/argument" },
["ia"] = { query = "@parameter.inner", desc = "Select inner part of a parameter/argument" },
["ai"] = { query = "@conditional.outer", desc = "Select outer part of a conditional" },
["ii"] = { query = "@conditional.inner", desc = "Select inner part of a conditional" },
["al"] = { query = "@loop.outer", desc = "Select outer part of a loop" },
["il"] = { query = "@loop.inner", desc = "Select inner part of a loop" },
["af"] = { query = "@call.outer", desc = "Select outer part of a function call" },
["if"] = { query = "@call.inner", desc = "Select inner part of a function call" },
["am"] = { query = "@function.outer", desc = "Select outer part of a function def" },
["im"] = { query = "@function.inner", desc = "Select inner part of a function def" },
["ak"] = { query = "@class.outer", desc = "Select outer part of a class" },
["ik"] = { query = "@class.inner", desc = "Select inner part of a class" },
["ac"] = { query = "@comment.outer", desc = "Select outer part of a comment" },
["ic"] = { query = "@comment.inner", desc = "Select inner part of a comment" },
},
},
move = {
enable = true,
-- Whether to set jumps in the jumplist
set_jumps = true,
goto_next_start = {
["]a"] = { query = "@parameter.outer", desc = "Goto next start outer parameter" },
["]i"] = { query = "@conditional.outer", desc = "Goto next start outer conditional" },
["]l"] = { query = "@loop.outer", desc = "Goto next start outer loop" },
["]f"] = { query = "@call.outer", desc = "Goto next start outer call" },
["]m"] = { query = "@function.outer", desc = "Goto next start outer function" },
["]k"] = { query = "@class.outer", desc = "Goto next start outer class" },
["]c"] = { query = "@comment.outer", desc = "Goto next start outer comment" },
},
goto_next_end = {
["]A"] = { query = "@parameter.outer", desc = "Goto next end outer parameter" },
["]I"] = { query = "@conditional.outer", desc = "Goto next end outer conditional" },
["]L"] = { query = "@loop.outer", desc = "Goto next end outer loop" },
["]F"] = { query = "@call.outer", desc = "Goto next end outer call" },
["]M"] = { query = "@function.outer", desc = "Goto next end outer function" },
["]K"] = { query = "@class.outer", desc = "Goto next end outer class" },
["]C"] = { query = "@comment.outer", desc = "Goto next end outer comment" },
},
goto_previous_start = {
["[a"] = { query = "@parameter.outer", desc = "Goto previous start outer parameter" },
["[i"] = { query = "@conditional.outer", desc = "Goto previous start outer conditional" },
["[l"] = { query = "@loop.outer", desc = "Goto previous start outer loop" },
["[f"] = { query = "@call.outer", desc = "Goto previous start outer call" },
["[m"] = { query = "@function.outer", desc = "Goto previous start outer function" },
["[k"] = { query = "@class.outer", desc = "Goto previous start outer class" },
["[c"] = { query = "@comment.outer", desc = "Goto previous start outer comment" },
},
goto_previous_end = {
["[A"] = { query = "@parameter.outer", desc = "Goto previous end outer parameter" },
["[I"] = { query = "@conditional.outer", desc = "Goto previous end outer conditional" },
["[L"] = { query = "@loop.outer", desc = "Goto previous end outer loop" },
["[F"] = { query = "@call.outer", desc = "Goto previous end outer call" },
["[M"] = { query = "@function.outer", desc = "Goto previous end outer function" },
["[K"] = { query = "@class.outer", desc = "Goto previous end outer class" },
["[C"] = { query = "@comment.outer", desc = "Goto previous end outer comment" },
},
},
swap = {
enable = true,
swap_next = {
["<leader>na"] = { query = "@parameter.inner", desc = "Swap with next inner parameter" },
["<leader>ni"] = { query = "@conditional.outer", desc = "Swap with next outer conditional" },
["<leader>nl"] = { query = "@loop.outer", desc = "Swap with next outer loop" },
["<leader>nf"] = { query = "@call.outer", desc = "Swap with next outer call" },
["<leader>nm"] = { query = "@function.outer", desc = "Swap with next outer function" },
["<leader>nk"] = { query = "@class.outer", desc = "Swap with next outer class" },
["<leader>nc"] = { query = "@comment.outer", desc = "Swap with next outer comment" },
["<leader>nA"] = { query = "@parameter.outer", desc = "Swap with next outer parameter" },
["<leader>nI"] = { query = "@conditional.inner", desc = "Swap with next inner conditional" },
["<leader>nL"] = { query = "@loop.inner", desc = "Swap with next inner loop" },
["<leader>nF"] = { query = "@call.inner", desc = "Swap with next inner call" },
["<leader>nM"] = { query = "@function.inner", desc = "Swap with next inner function" },
["<leader>nK"] = { query = "@class.inner", desc = "Swap with next inner class" },
["<leader>nC"] = { query = "@comment.inner", desc = "Swap with next inner comment" },
},
swap_previous = {
["<leader>pa"] = { query = "@parameter.inner", desc = "Swap with previous inner parameter" },
["<leader>pi"] = { query = "@conditional.outer", desc = "Swap with previous outer conditional" },
["<leader>pl"] = { query = "@loop.outer", desc = "Swap with previous outer loop" },
["<leader>pf"] = { query = "@call.outer", desc = "Swap with previous outer call" },
["<leader>pm"] = { query = "@function.outer", desc = "Swap with previous outer function" },
["<leader>pk"] = { query = "@class.outer", desc = "Swap with previous outer class" },
["<leader>pc"] = { query = "@comment.outer", desc = "Swap with previous outer comment" },
["<leader>pA"] = { query = "@parameter.outer", desc = "Swap with previous outer parameter" },
["<leader>pI"] = { query = "@conditional.inner", desc = "Swap with previous inner conditional" },
["<leader>pL"] = { query = "@loop.inner", desc = "Swap with previous inner loop" },
["<leader>pF"] = { query = "@call.inner", desc = "Swap with previous inner call" },
["<leader>pM"] = { query = "@function.inner", desc = "Swap with previous inner function" },
["<leader>pK"] = { query = "@class.inner", desc = "Swap with previous inner class" },
["<leader>pC"] = { query = "@comment.inner", desc = "Swap with previous inner comment" },
},
}
}
-- local ts_repeat_move = require "nvim-treesitter.textobjects.repeatable_move"
-- Repeat movement with ; and ,
-- vim.keymap.set({"n", "x", "o"}, ",", ts_repeat_move.repeat_last_move_next)
-- vim.keymap.set({"n", "x", "o"}, ",", ts_repeat_move.repeat_last_move_previous)
-- Optionnally, make builtin f, F, t, T also repeatable with ; and ,
-- vim.keymap.set({"n", "x", "o"}, "f", ts_repeat_move.builtin_f)
-- vim.keymap.set({"n", "x", "o"}, "F", ts_repeat_move.builtin_F)
-- vim.keymap.set({"n", "x", "o"}, "t", ts_repeat_move.builtin_t)
-- vim.keymap.set({"n", "x", "o"}, "T", ts_repeat_move.builtin_T)
return M
+168
View File
@@ -3,6 +3,32 @@
local default_plugins = { local default_plugins = {
"nvim-lua/plenary.nvim", "nvim-lua/plenary.nvim",
"rebelot/kanagawa.nvim",
{
"iamcco/markdown-preview.nvim",
run = "cd app && npm install",
lazy = false,
setup = function()
vim.g.mkdp_filetypes = { "markdown" }
end,
ft = { "markdown" },
},
{"tpope/vim-fugitive", lazy=false},
{"rbong/vim-flog", lazy=false},
{"tpope/vim-surround", lazy=false},
{"tpope/vim-obsession", lazy=false},
{"preservim/tagbar", lazy=false},
{"ludovicchabant/vim-gutentags", lazy=false},
{"emaniacs/vim-rest-console", lazy=false},
{
"sindrets/diffview.nvim",
lazy=false,
opts = function()
return require "plugins.configs.diffview"
end,
},
{"nvim-telescope/telescope-fzf-native.nvim", build="make"},
{ {
"NvChad/base46", "NvChad/base46",
@@ -56,6 +82,9 @@ local default_plugins = {
{ {
"lukas-reineke/indent-blankline.nvim", "lukas-reineke/indent-blankline.nvim",
version = "2.20.7", version = "2.20.7",
init = function()
require("core.utils").lazy_load "indent-blankline.nvim"
end,
event = "User FilePost", event = "User FilePost",
opts = function() opts = function()
return require("plugins.configs.others").blankline return require("plugins.configs.others").blankline
@@ -81,6 +110,16 @@ local default_plugins = {
end, end,
}, },
{
"nvim-treesitter/nvim-treesitter-textobjects",
lazy = false,
config = function()
require("nvim-treesitter.configs").setup(
require("plugins.configs.treesitter_textobjects")
)
end,
},
-- git stuff -- git stuff
{ {
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
@@ -190,6 +229,107 @@ local default_plugins = {
end, end,
}, },
-- Save and load macro / register
{
"desdic/macrothis.nvim",
opts = {},
keys = {
{ "<Leader>kkd", function() require('macrothis').delete() end, desc = "Delete" },
{ "<Leader>kke", function() require('macrothis').edit() end, desc = "Edit" },
{ "<Leader>kkl", function() require('macrothis').load() end, desc = "Load" },
{ "<Leader>kkn", function() require('macrothis').rename() end, desc = "Rename" },
{ "<Leader>kkq", function() require('macrothis').quickfix() end, desc = "Run macro on all files in quickfix" },
{ "<Leader>kkr", function() require('macrothis').run() end, desc = "Run macro" },
{ "<Leader>kks", function() require('macrothis').save() end, desc = "Save" },
{ "<Leader>kkx", function() require('macrothis').register() end, desc = "Edit register" },
{ "<Leader>kkp", function() require('macrothis').copy_register_printable() end, desc = "Copy register as printable" },
{ "<Leader>kkm", function() require('macrothis').copy_macro_printable() end, desc = "Copy macro as printable" },
}
},
{
"onsails/diaglist.nvim",
lazy=false,
debug=false,
},
{
"anuvyklack/hydra.nvim",
lazy=false,
},
{
"gioele/vim-autoswap",
lazy=false,
},
{
"natecraddock/workspaces.nvim",
lazy=false,
config = function()
require("workspaces").setup({
hooks = {
open = {"Telescope find_files"},
}
})
end,
},
{
"mangelozzi/rgflow.nvim",
lazy=false,
config = function()
require("rgflow").setup({
-- Set the default rip grep flags and options for when running a search via
-- RgFlow. Once changed via the UI, the previous search flags are used for
-- each subsequent search (until Neovim restarts).
cmd_flags = "--smart-case --fixed-strings --ignore --max-columns 200",
-- Mappings to trigger RgFlow functions
default_trigger_mappings = true,
-- These mappings are only active when the RgFlow UI (panel) is open
default_ui_mappings = true,
-- QuickFix window only mapping
default_quickfix_mappings = true,
})
end,
},
{
"yorickpeterse/nvim-window",
lazy=false,
config = function()
require('nvim-window').setup({
normal_hl = 'Normal',
hint_hl = 'Bold',
border = 'single'
})
end,
},
{
"sindrets/winshift.nvim",
lazy=false,
},
{
"kdheepak/lazygit.nvim",
lazy=false,
config = function()
require("lazy").setup({
{
"kdheepak/lazygit.nvim",
-- optional for floating window border decoration
dependencies = {
"nvim-lua/plenary.nvim",
},
},
})
end,
},
-- file managing , picker etc -- file managing , picker etc
{ {
"nvim-tree/nvim-tree.lua", "nvim-tree/nvim-tree.lua",
@@ -231,6 +371,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",
lazy=false,
keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" }, keys = { "<leader>", "<c-r>", "<c-w>", '"', "'", "`", "c", "v", "g" },
init = function() init = function()
require("core.utils").load_mappings "whichkey" require("core.utils").load_mappings "whichkey"
@@ -241,6 +382,32 @@ local default_plugins = {
require("which-key").setup(opts) require("which-key").setup(opts)
end, end,
}, },
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" }
},
{
"folke/noice.nvim",
event = "VeryLazy",
opts = function()
return require "plugins.configs.noice"
end,
dependencies = {
"MunifTanjim/nui.nvim",
-- "rcarriga/nvim-notify",
},
},
{
"folke/todo-comments.nvim",
lazy=false,
dependencies = { "nvim-lua/plenary.nvim" },
opts = {
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
}
}
} }
local config = require("core.utils").load_config() local config = require("core.utils").load_config()
@@ -250,3 +417,4 @@ if #config.plugins > 0 then
end end
require("lazy").setup(default_plugins, config.lazy_nvim) require("lazy").setup(default_plugins, config.lazy_nvim)
require "plugins.configs.ruff_lsp"