Compare commits
23
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f08c78c13
|
||
|
|
d6f6f9e11d | ||
|
|
19c17b583b | ||
|
|
8638342fa9 | ||
|
|
a62a601e1f | ||
|
|
44a24e2fe5 | ||
|
|
1a98a451ea | ||
|
|
ccf6bc397f | ||
|
|
13cce81d99 | ||
|
|
8fe6a6560e | ||
|
|
fe912ab5fb
|
||
|
|
0dcd8a91b6 | ||
|
|
e9f6957b99 | ||
|
|
8aec881517 | ||
|
|
f17e83010f | ||
|
|
282a23f446 | ||
|
|
c80f3f0501 | ||
|
|
c2ec317b1b | ||
|
|
2fedda14ed | ||
|
|
e121bde8d8 | ||
|
|
9bb7dcbaf4 | ||
|
|
c8777040fb | ||
|
|
86ccf3bb2d
|
@@ -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"
|
||||||
|
|||||||
@@ -40,13 +40,6 @@ 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): "
|
|
||||||
|
|
||||||
if input:lower() == "y" then
|
|
||||||
M.echo "Cloning example custom config repo..."
|
|
||||||
shell_call { "git", "clone", "--depth", "1", "https://github.com/NvChad/example_config", path }
|
|
||||||
fn.delete(path .. "/.git", "rf")
|
|
||||||
else
|
|
||||||
-- use very minimal chadrc
|
-- use very minimal chadrc
|
||||||
fn.mkdir(path, "p")
|
fn.mkdir(path, "p")
|
||||||
|
|
||||||
@@ -57,6 +50,5 @@ M.gen_chadrc_template = function()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
|||||||
+29
-1
@@ -44,6 +44,8 @@ opt.timeoutlen = 400
|
|||||||
opt.undofile = true
|
opt.undofile = true
|
||||||
opt.scrolloff = 15
|
opt.scrolloff = 15
|
||||||
|
|
||||||
|
opt.wildignore:append "tags,Session.vim"
|
||||||
|
|
||||||
-- 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
|
||||||
|
|
||||||
@@ -59,7 +61,7 @@ for _, provider in ipairs { "node", "perl", "python3", "ruby" } do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- add binaries installed by mason.nvim to path
|
-- add binaries installed by mason.nvim to path
|
||||||
local is_windows = vim.loop.os_uname().sysname == "Windows_NT"
|
local is_windows = vim.fn.has("win32") ~= 0
|
||||||
vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH
|
vim.env.PATH = vim.fn.stdpath "data" .. "/mason/bin" .. (is_windows and ";" or ":") .. vim.env.PATH
|
||||||
|
|
||||||
-------------------------------------- autocmds ------------------------------------------
|
-------------------------------------- autocmds ------------------------------------------
|
||||||
@@ -110,6 +112,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
|
||||||
|
|
||||||
|
|||||||
+111
-12
@@ -18,6 +18,7 @@ M.general = {
|
|||||||
n = {
|
n = {
|
||||||
["<leader>n"] = { ":noh <CR>", "Clear highlights" },
|
["<leader>n"] = { ":noh <CR>", "Clear highlights" },
|
||||||
["<leader>rr"] = { ":source $MYVIMRC<CR>", "Reload config file" },
|
["<leader>rr"] = { ":source $MYVIMRC<CR>", "Reload config file" },
|
||||||
|
["<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" },
|
||||||
["<C-l>"] = { "<C-w>l", "Window right" },
|
["<C-l>"] = { "<C-w>l", "Window right" },
|
||||||
@@ -61,6 +62,13 @@ M.general = {
|
|||||||
-- 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"] = {
|
||||||
|
function()
|
||||||
|
vim.lsp.buf.format { async = true }
|
||||||
|
end,
|
||||||
|
"LSP formatting",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
t = {
|
t = {
|
||||||
@@ -70,8 +78,8 @@ 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 = {
|
||||||
@@ -96,11 +104,18 @@ M.customstuffs = {
|
|||||||
["<C-t>"] = { "<cmd> TagbarToggle<CR>", "Show tagbar" },
|
["<C-t>"] = { "<cmd> TagbarToggle<CR>", "Show tagbar" },
|
||||||
["<leader>ra"] = { "<cmd> call VrcQuery()<CR>", "Call REST endpoint" },
|
["<leader>ra"] = { "<cmd> call VrcQuery()<CR>", "Call REST endpoint" },
|
||||||
["<leader>dl"] = { "0d$", "Delete line from start" },
|
["<leader>dl"] = { "0d$", "Delete line from start" },
|
||||||
["<leader>gp"] = { "<cmd> Git pull<CR>", "Git pull" },
|
["<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>gnb"] = { ":Git checkout -b ", "Checkout to a new branch" },
|
||||||
["<leader>gri"] = { ":Git rebase -i HEAD~", "Git rebase interactive from HEAD" },
|
["<leader>gri"] = { ":Git rebase -i HEAD~", "Git rebase interactive from HEAD" },
|
||||||
["<leader>mkd"] = { "<cmd>lua vim.api.nvim_create_user_command('PeekOpen', require('peek').open, {})<CR>", "Open markdown preview" },
|
["<leader>grm"] = { ":Git rebase -i master", "Git rebase interactive from master" },
|
||||||
["<leader>mkc"] = { "<cmd>lua vim.api.nvim_create_user_command('PeekClose', require('peek').close, {})<CR>", "Open markdown preview" },
|
["<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", "Next + auto center" },
|
||||||
["N"] = { "Nzz", "Previous + auto center" },
|
["N"] = { "Nzz", "Previous + auto center" },
|
||||||
@@ -114,7 +129,49 @@ M.customstuffs = {
|
|||||||
-- Mappings: TODO
|
-- Mappings: TODO
|
||||||
|
|
||||||
-- "trim(system('git branch --show-current 2>/dev/null'))"
|
-- "trim(system('git branch --show-current 2>/dev/null'))"
|
||||||
["<leader>tt"] = { ":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-' . trim(system('git branch --show-current 2>/dev/null')) . ': ' . input('Comment >'))<CR>", "Add TODO comment + add to qflist" },
|
||||||
|
["<leader>ct"] = { ":call append(line('.') - 1, repeat(' ', indent('.')) . '# TODO: ' . input('Comment >'))<CR>", "Add TODO comment + add to qflist" },
|
||||||
|
|
||||||
|
["<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" },
|
||||||
|
|
||||||
|
["gf"] = { ":call search('[A-Z]', 'W')<CR>", "Go to next uppercase" },
|
||||||
|
["fg"] = { ":call search('[A-Z]', 'bW')<CR>", "Go to last uppercase" },
|
||||||
|
|
||||||
|
["glb"] = { ":lua require('gitlab').choose_merge_request()<CR>", "Gitlab: Choose merge request" },
|
||||||
|
["glr"] = { ":lua require('gitlab').review()<CR>", "Gitlab: review" },
|
||||||
|
["gls"] = { ":lua require('gitlab').summary()<CR>", "Gitlab: summary" },
|
||||||
|
["glo"] = { ":lua require('gitlab').open_in_browser()<CR>", "Gitlab: open in browser" },
|
||||||
|
["glu"] = { ":lua require('gitlab').copy_mr_url()<CR>", "Gitlab: open in browser" },
|
||||||
|
["glO"] = { ":lua require('gitlab').create_mr()<CR>", "Gitlab: create MR" },
|
||||||
|
["glaa"] = { ":lua require('gitlab').add_assignee()<CR>", "Gitlab: add_assignee" },
|
||||||
|
|
||||||
|
-- vim.keymap.set("n", "glb", gitlab.choose_merge_request)
|
||||||
|
-- vim.keymap.set("n", "glr", gitlab.review)
|
||||||
|
-- vim.keymap.set("n", "gls", gitlab.summary)
|
||||||
|
-- vim.keymap.set("n", "glA", gitlab.approve)
|
||||||
|
-- vim.keymap.set("n", "glR", gitlab.revoke)
|
||||||
|
-- vim.keymap.set("n", "glc", gitlab.create_comment)
|
||||||
|
-- vim.keymap.set("v", "glc", gitlab.create_multiline_comment)
|
||||||
|
-- vim.keymap.set("v", "glC", gitlab.create_comment_suggestion)
|
||||||
|
-- vim.keymap.set("n", "glO", gitlab.create_mr)
|
||||||
|
-- vim.keymap.set("n", "glm", gitlab.move_to_discussion_tree_from_diagnostic)
|
||||||
|
-- vim.keymap.set("n", "gln", gitlab.create_note)
|
||||||
|
-- vim.keymap.set("n", "gld", gitlab.toggle_discussions)
|
||||||
|
-- vim.keymap.set("n", "glaa", gitlab.add_assignee)
|
||||||
|
-- vim.keymap.set("n", "glad", gitlab.delete_assignee)
|
||||||
|
-- vim.keymap.set("n", "glla", gitlab.add_label)
|
||||||
|
-- vim.keymap.set("n", "glld", gitlab.delete_label)
|
||||||
|
-- vim.keymap.set("n", "glra", gitlab.add_reviewer)
|
||||||
|
-- vim.keymap.set("n", "glrd", gitlab.delete_reviewer)
|
||||||
|
-- vim.keymap.set("n", "glp", gitlab.pipeline)
|
||||||
|
-- vim.keymap.set("n", "glM", gitlab.merge)
|
||||||
|
-- vim.keymap.set("n", "glu", gitlab.copy_mr_url)
|
||||||
|
-- vim.keymap.set("n", "glP", gitlab.publish_all_drafts)
|
||||||
|
|
||||||
},
|
},
|
||||||
v = {
|
v = {
|
||||||
["n"] = { "nzz", "Next + auto center" },
|
["n"] = { "nzz", "Next + auto center" },
|
||||||
@@ -331,18 +388,54 @@ M.telescope = {
|
|||||||
["<C-f>"] = { "<cmd> Telescope live_grep <CR>", "Live grep" },
|
["<C-f>"] = { "<cmd> Telescope live_grep <CR>", "Live grep" },
|
||||||
["<C-b>"] = { "<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>ff"] = { "<cmd> lua require('telescope.builtin').live_grep({default_text='<<<<<<< HEAD'}) <CR>", "Search for git conflicts" },
|
||||||
["<leader>ac"] = { ":execute 'vimgrep' input('Pattern >', getreg('/')) '**/*' <CR>", "add search term files in quickfix list" },
|
|
||||||
["<leader>qc"] = { "<cmd> Telescope quickfix <CR>", "Show 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>ll"] = { "<cmd> Telescope loclist <CR>", "Show loclist list" },
|
["<leader>fg<CR>"] = { "<cmd> lua require('telescope.builtin').live_grep({}) <CR>", "Live grep" },
|
||||||
|
["<leader>fg/"] = { "<cmd> lua require('telescope.builtin').live_grep({default_text=vim.fn.getreg('/')}) <CR>", "Live grep with search term" },
|
||||||
|
["<leader>fgw"] = { "<cmd> lua require('telescope.builtin').live_grep({default_text=vim.fn.expand('<cword>')}) <CR>", "Live grep with current word" },
|
||||||
|
|
||||||
|
["<leader>gf<CR>"] = { "<cmd> lua require('telescope.builtin').find_files({}) <CR>", "Find files" },
|
||||||
|
["<leader>gf/"] = { "<cmd> lua require('telescope.builtin').find_files({default_text=vim.fn.getreg('/')}) <CR>", "Find files with search term" },
|
||||||
|
["<leader>gfw"] = { "<cmd> lua require('telescope.builtin').find_files({default_text=vim.fn.expand('<cword>')}) <CR>", "Find files with current word" },
|
||||||
|
|
||||||
|
|
||||||
|
["<leader>br<CR>"] = { ":execute '%s/' . input('Search term >') . '/' . input('Replace by >', '') . '/g | update' <CR>", "Replace pattern in current buffer" },
|
||||||
|
["<leader>br/"] = { ":execute '%s/' . input('Search term >', getreg('/')) . '/' . input('Replace by >', '') . '/g | update' <CR>", "Replace search term pattern in current buffer" },
|
||||||
|
["<leader>brw"] = { ":execute '%s/' . input('Search term >', expand('<cword>')) . '/' . input('Replace by >', '') . '/g | update' <CR>", "Replace current word pattern in current buffer" },
|
||||||
|
|
||||||
|
-- Quickfix list
|
||||||
|
["<leader>ql"] = { "<cmd> Telescope quickfix <CR>", "Show qflist" },
|
||||||
|
["<leader>qn"] = { ":cnext<CR>", "Jump to next in qflist" },
|
||||||
|
["]q"] = { ":cnext<CR>", "Jump to next in qflist" },
|
||||||
|
["<leader>qp"] = { ":cprevious<CR>", "Jump to previous in qflist" },
|
||||||
|
["[q"] = { ":cprevious<CR>", "Jump to previous in qflist" },
|
||||||
|
["<leader>qc"] = { ":call setqflist([]) | cclose<CR>", "Clear qflist" },
|
||||||
|
|
||||||
|
-- Quickfix replace all
|
||||||
|
["<leader>qr<CR>"] = { ":execute 'cfdo' '%s/' . input('Search term >') . '/' . input('Replace by >') . '/gI | update' <CR>", "Replace pattern in all qflist" },
|
||||||
|
["<leader>qr/"] = { ":execute 'cfdo' '%s/' . input('Search term >', getreg('/')) . '/' . input('Replace by >') . '/gI | update' <CR>", "Replace search term in all qflist" },
|
||||||
|
["<leader>qrw"] = { ":execute 'cfdo' '%s/' . input('Search term >', expand('<cword>')) . '/' . input('Replace by >') . '/gI | update' <CR>", "Replace current word in all qflist" },
|
||||||
|
|
||||||
|
-- Quickfix "search"
|
||||||
|
["<leader>qs<CR>"] = { ":execute 'vimgrep' '/' . input('Pattern >') . '\\C/' '**/*' <CR>", "Add <> files in qflist" },
|
||||||
|
["<leader>qs/"] = { ":execute 'vimgrep' '/' . input('Pattern >', getreg('/')) . '\\C/' '**/*' <CR>", "Add search term files in qflist" },
|
||||||
|
["<leader>qsw"] = { ":execute 'vimgrep' '/' . input('Pattern >', expand('<cword>')) . '\\C/' '**/*' <CR>", "Add current word files in qflist" },
|
||||||
|
|
||||||
|
-- Loclist list
|
||||||
|
["<leader>ll"] = { "<cmd> Telescope loclist <CR>", "Show loclist" },
|
||||||
["<leader>ln"] = { ":lnext<CR>", "Jump to next in loclist" },
|
["<leader>ln"] = { ":lnext<CR>", "Jump to next in loclist" },
|
||||||
|
["]l"] = { ":lnext<CR>", "Jump to next in loclist" },
|
||||||
["<leader>lp"] = { ":lprevious<CR>", "Jump to previous in loclist" },
|
["<leader>lp"] = { ":lprevious<CR>", "Jump to previous in loclist" },
|
||||||
|
["[l"] = { ":lprevious<CR>", "Jump to previous in loclist" },
|
||||||
|
["<leader>lc"] = { ":call setloclist([]) | lclose<CR>", "Clear 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>fx<CR>"] = { "<cmd> Telescope current_buffer_fuzzy_find <CR>", "Find in current buffer" },
|
||||||
|
["<leader>fx/"] = { "<cmd> lua require('telescope.builtin').current_buffer_fuzzy_find({default_text=vim.fn.getreg('/')}) <CR>", "Fuzzy find in current buffer with actual search" },
|
||||||
|
["<leader>fxw"] = { "<cmd> lua require('telescope.builtin').current_buffer_fuzzy_find({default_text=vim.fn.expand('<cword>')}) <CR>", "Fuzzy find in current buffer with current word" },
|
||||||
|
|
||||||
|
["<leader>wl"] = { "<cmd> Telescope workspaces <CR>", "Find workspaces" },
|
||||||
|
|
||||||
-- git
|
-- git
|
||||||
--- Commits
|
--- Commits
|
||||||
@@ -366,6 +459,12 @@ M.telescope = {
|
|||||||
-- History
|
-- History
|
||||||
["<leader>ch"] = { "<cmd> Telescope command_history <CR>", "telescope commands history" },
|
["<leader>ch"] = { "<cmd> Telescope command_history <CR>", "telescope commands history" },
|
||||||
["<leader>/"] = { "<cmd> Telescope search_history <CR>", "telescope search 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 qflist" },
|
||||||
|
["<leader>d0"] = { "<cmd>lua require('diaglist').open_buffer_diagnostics()<CR>", "Open current buffer diagnostics in loclist" },
|
||||||
|
|
||||||
|
["<leader>;"] = { "<cmd> Telescope <CR>", "Open Telescope" },
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ local M = {}
|
|||||||
local highlights = require "custom.highlights"
|
local highlights = require "custom.highlights"
|
||||||
|
|
||||||
M.ui = {
|
M.ui = {
|
||||||
theme = "gatekeeper",
|
theme = "onedark",
|
||||||
theme_toggle = { "gatekeeper", "monekai" },
|
theme_toggle = { "onedark", "monekai" },
|
||||||
|
|
||||||
hl_override = highlights.override,
|
hl_override = highlights.override,
|
||||||
hl_add = highlights.add,
|
hl_add = highlights.add,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ local capabilities = require("plugins.configs.lspconfig").capabilities
|
|||||||
local lspconfig = require "lspconfig"
|
local lspconfig = require "lspconfig"
|
||||||
|
|
||||||
-- if you just want default config for the servers then put them in a table
|
-- if you just want default config for the servers then put them in a table
|
||||||
local servers = { "html", "cssls", "tsserver", "clangd" }
|
local servers = { "html", "cssls", "tsserver", "clangd", "salt_ls" }
|
||||||
|
|
||||||
for _, lsp in ipairs(servers) do
|
for _, lsp in ipairs(servers) do
|
||||||
lspconfig[lsp].setup {
|
lspconfig[lsp].setup {
|
||||||
|
|||||||
@@ -19,6 +19,15 @@ M.treesitter = {
|
|||||||
-- "python"
|
-- "python"
|
||||||
-- },
|
-- },
|
||||||
},
|
},
|
||||||
|
incremental_selection = {
|
||||||
|
enable = true,
|
||||||
|
keymaps = {
|
||||||
|
init_selection = "<C-space>",
|
||||||
|
node_incremental = "<C-space>",
|
||||||
|
scope_incremental = false,
|
||||||
|
node_decremental = "<bs>",
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
M.mason = {
|
M.mason = {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
local previewers = require('telescope.previewers')
|
local previewers = require('telescope.previewers')
|
||||||
local builtin = require('telescope.builtin')
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
local E = {}
|
local E = {}
|
||||||
|
|
||||||
local delta = previewers.new_termopen_previewer {
|
local delta = previewers.new_termopen_previewer {
|
||||||
|
|||||||
@@ -0,0 +1,138 @@
|
|||||||
|
local M = {
|
||||||
|
port = nil, -- The port of the Go server, which runs in the background, if omitted or `nil` the port will be chosen automatically
|
||||||
|
log_path = vim.fn.stdpath("cache") .. "/gitlab.nvim.log", -- Log path for the Go server
|
||||||
|
config_path = nil, -- Custom path for `.gitlab.nvim` file, please read the "Connecting to Gitlab" section
|
||||||
|
debug = {
|
||||||
|
go_request = false,
|
||||||
|
go_response = false,
|
||||||
|
},
|
||||||
|
attachment_dir = nil, -- The local directory for files (see the "summary" section)
|
||||||
|
reviewer_settings = {
|
||||||
|
diffview = {
|
||||||
|
imply_local = false, -- If true, will attempt to use --imply_local option when calling |:DiffviewOpen|
|
||||||
|
},
|
||||||
|
},
|
||||||
|
connection_settings = {
|
||||||
|
insecure = false, -- Like curl's --insecure option, ignore bad x509 certificates on connection
|
||||||
|
},
|
||||||
|
help = "g?", -- Opens a help popup for local keymaps when a relevant view is focused (popup, discussion panel, etc)
|
||||||
|
popup = { -- The popup for comment creation, editing, and replying
|
||||||
|
keymaps = {
|
||||||
|
next_field = "<Tab>", -- Cycle to the next field. Accepts count.
|
||||||
|
prev_field = "<S-Tab>", -- Cycle to the previous field. Accepts count.
|
||||||
|
},
|
||||||
|
perform_action = "<leader>s", -- Once in normal mode, does action (like saving comment or editing description, etc)
|
||||||
|
perform_linewise_action = "<leader>l", -- Once in normal mode, does the linewise action (see logs for this job, etc)
|
||||||
|
width = "50%",
|
||||||
|
height = "80%",
|
||||||
|
border = "rounded", -- One of "
|
||||||
|
opacity = 1.0, -- From 0.0 (fully transparent) to 1.0 (fully opaque)
|
||||||
|
comment = nil, -- Individual popup overrides, e.g. { width = "60%", height = "80%", border = "single", opacity = 0.85 },
|
||||||
|
edit = nil,
|
||||||
|
note = nil,
|
||||||
|
pipeline = nil,
|
||||||
|
reply = nil,
|
||||||
|
squash_message = nil,
|
||||||
|
temp_registers = {}, -- List of registers for backing up popup content (see `:h gitlab.nvim.temp-registers`)
|
||||||
|
},
|
||||||
|
discussion_tree = { -- The discussion tree that holds all comments
|
||||||
|
auto_open = true, -- Automatically open when the reviewer is opened
|
||||||
|
switch_view = "S", -- Toggles between the notes and discussions views
|
||||||
|
default_view = "discussions", -- Show "discussions" or "notes" by default
|
||||||
|
blacklist = {}, -- List of usernames to remove from tree (bots, CI, etc)
|
||||||
|
jump_to_file = "o", -- Jump to comment location in file
|
||||||
|
jump_to_reviewer = "m", -- Jump to the location in the reviewer window
|
||||||
|
edit_comment = "e", -- Edit comment
|
||||||
|
delete_comment = "dd", -- Delete comment
|
||||||
|
reply = "r", -- Reply to comment
|
||||||
|
toggle_node = "t", -- Opens or closes the discussion
|
||||||
|
add_emoji = "Ea", -- Add an emoji to the note/comment
|
||||||
|
-- add_emoji = "Ed", -- Remove an emoji from a note/comment
|
||||||
|
toggle_all_discussions = "T", -- Open or close separately both resolved and unresolved discussions
|
||||||
|
toggle_resolved_discussions = "R", -- Open or close all resolved discussions
|
||||||
|
toggle_unresolved_discussions = "U", -- Open or close all unresolved discussions
|
||||||
|
keep_current_open = false, -- If true, current discussion stays open even if it should otherwise be closed when toggling
|
||||||
|
publish_draft = "P", -- Publishes the currently focused note/comment
|
||||||
|
toggle_resolved = "p", -- Toggles the resolved status of the whole discussion
|
||||||
|
position = "left", -- "top", "right", "bottom" or "left"
|
||||||
|
open_in_browser = "b", -- Jump to the URL of the current note/discussion
|
||||||
|
copy_node_url = "u", -- Copy the URL of the current node to clipboard
|
||||||
|
size = "30%", -- Size of split
|
||||||
|
relative = "editor", -- Position of tree split relative to "editor" or "window"
|
||||||
|
resolved = '✓', -- Symbol to show next to resolved discussions
|
||||||
|
unresolved = '✗', -- Symbol to show next to unresolved discussions
|
||||||
|
tree_type = "by_file_name", -- Type of discussion tree - "simple" means just list of discussions, "by_file_name" means file tree with discussions under file
|
||||||
|
toggle_tree_type = "i", -- Toggle type of discussion tree - "simple", or "by_file_name"
|
||||||
|
draft_mode = false, -- Whether comments are posted as drafts as part of a review
|
||||||
|
toggle_draft_mode = "D", -- Toggle between draft mode (comments posted as drafts) and live mode (comments are posted immediately)
|
||||||
|
winbar = nil, -- Custom function to return winbar title, should return a string. Provided with WinbarTable (defined in annotations.lua)
|
||||||
|
-- If using lualine, please add "gitlab" to disabled file types, otherwise you will not see the winbar.
|
||||||
|
},
|
||||||
|
choose_merge_request = {
|
||||||
|
open_reviewer = true, -- Open the reviewer window automatically after switching merge requests
|
||||||
|
},
|
||||||
|
info = { -- Show additional fields in the summary view
|
||||||
|
enabled = true,
|
||||||
|
horizontal = false, -- Display metadata to the left of the summary rather than underneath
|
||||||
|
fields = { -- The fields listed here will be displayed, in whatever order you choose
|
||||||
|
"author",
|
||||||
|
"created_at",
|
||||||
|
"updated_at",
|
||||||
|
"merge_status",
|
||||||
|
"draft",
|
||||||
|
"conflicts",
|
||||||
|
"assignees",
|
||||||
|
"reviewers",
|
||||||
|
"pipeline",
|
||||||
|
"branch",
|
||||||
|
"target_branch",
|
||||||
|
"delete_branch",
|
||||||
|
"squash",
|
||||||
|
"labels",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
discussion_signs = {
|
||||||
|
enabled = true, -- Show diagnostics for gitlab comments in the reviewer
|
||||||
|
skip_resolved_discussion = false, -- Show diagnostics for resolved discussions
|
||||||
|
severity = vim.diagnostic.severity.INFO, -- ERROR, WARN, INFO, or HINT
|
||||||
|
virtual_text = false, -- Whether to show the comment text inline as floating virtual text
|
||||||
|
priority = 100, -- Higher will override LSP warnings, etc
|
||||||
|
icons = {
|
||||||
|
comment = "→|",
|
||||||
|
range = " |",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pipeline = {
|
||||||
|
created = "",
|
||||||
|
pending = "",
|
||||||
|
preparing = "",
|
||||||
|
scheduled = "",
|
||||||
|
running = "",
|
||||||
|
canceled = "↪",
|
||||||
|
skipped = "↪",
|
||||||
|
success = "✓",
|
||||||
|
failed = "",
|
||||||
|
},
|
||||||
|
create_mr = {
|
||||||
|
target = "master", -- Default branch to target when creating an MR
|
||||||
|
template_file = nil, -- Default MR template in .gitlab/merge_request_templates
|
||||||
|
delete_branch = false, -- Whether the source branch will be marked for deletion
|
||||||
|
squash = false, -- Whether the commits will be marked for squashing
|
||||||
|
title_input = { -- Default settings for MR title input window
|
||||||
|
width = 40,
|
||||||
|
border = "rounded",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
colors = {
|
||||||
|
discussion_tree = {
|
||||||
|
username = "Keyword",
|
||||||
|
date = "Comment",
|
||||||
|
chevron = "DiffviewNonText",
|
||||||
|
directory = "Directory",
|
||||||
|
directory_icon = "DiffviewFolderSign",
|
||||||
|
file_name = "Normal",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return M
|
||||||
@@ -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 } },
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -5,17 +5,16 @@ local M = {}
|
|||||||
local utils = require "core.utils"
|
local utils = require "core.utils"
|
||||||
|
|
||||||
-- 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
|
|
||||||
client.server_capabilities.documentRangeFormattingProvider = false
|
|
||||||
|
|
||||||
utils.load_mappings("lspconfig", { buffer = bufnr })
|
utils.load_mappings("lspconfig", { buffer = bufnr })
|
||||||
|
|
||||||
if client.server_capabilities.signatureHelpProvider then
|
if client.server_capabilities.signatureHelpProvider then
|
||||||
require("nvchad.signature").setup(client)
|
require("nvchad.signature").setup(client)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- disable semantic tokens
|
||||||
|
M.on_init = function(client, _)
|
||||||
if not utils.load_config().ui.lsp_semantic_tokens and client.supports_method "textDocument/semanticTokens" then
|
if not utils.load_config().ui.lsp_semantic_tokens and client.supports_method "textDocument/semanticTokens" then
|
||||||
client.server_capabilities.semanticTokensProvider = nil
|
client.server_capabilities.semanticTokensProvider = nil
|
||||||
end
|
end
|
||||||
@@ -42,6 +41,7 @@ M.capabilities.textDocument.completion.completionItem = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
require("lspconfig").lua_ls.setup {
|
require("lspconfig").lua_ls.setup {
|
||||||
|
on_init = M.on_init,
|
||||||
on_attach = M.on_attach,
|
on_attach = M.on_attach,
|
||||||
capabilities = M.capabilities,
|
capabilities = M.capabilities,
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
local options = {
|
local options = {
|
||||||
ensure_installed = { "lua-language-server" }, -- not an option from mason.nvim
|
ensure_installed = { "lua-language-server" }, -- not an option from mason.nvim
|
||||||
|
|
||||||
PATH = "skip",
|
PATH = "prepand",
|
||||||
|
|
||||||
ui = {
|
ui = {
|
||||||
icons = {
|
icons = {
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -18,7 +18,7 @@ local on_attach = function(client, bufnr)
|
|||||||
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, 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', 'K', vim.lsp.buf.hover, bufopts)
|
||||||
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, 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', '<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>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>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
|
||||||
vim.keymap.set('n', '<space>wl', function()
|
vim.keymap.set('n', '<space>wl', function()
|
||||||
@@ -40,7 +40,8 @@ require('lspconfig').ruff_lsp.setup {
|
|||||||
init_options = {
|
init_options = {
|
||||||
settings = {
|
settings = {
|
||||||
-- Any extra CLI arguments for `ruff` go here.
|
-- Any extra CLI arguments for `ruff` go here.
|
||||||
args = {},
|
args = {"--ignore", "E741"},
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -158,17 +158,27 @@ local options = {
|
|||||||
mappings = {
|
mappings = {
|
||||||
i = {
|
i = {
|
||||||
["<CR>"] = custom_actions.multi_selection_open,
|
["<CR>"] = custom_actions.multi_selection_open,
|
||||||
["<C-V>"] = custom_actions.multi_selection_vsplit,
|
["<C-v>"] = custom_actions.multi_selection_vsplit,
|
||||||
["<C-X>"] = custom_actions.multi_selection_split,
|
["<C-X>"] = custom_actions.multi_selection_split,
|
||||||
["<C-T>"] = custom_actions.multi_selection_tab,
|
["<C-T>"] = custom_actions.multi_selection_tab,
|
||||||
["<C-SPACE>"] = actions.send_selected_to_qflist,
|
["<C-Space>"] = actions.smart_send_to_qflist,
|
||||||
|
["<C-L>"] = actions.smart_send_to_loclist,
|
||||||
|
},
|
||||||
|
n = i,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
live_grep = {
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<C-Space>"] = actions.smart_send_to_qflist,
|
||||||
|
["<C-L>"] = actions.smart_send_to_loclist,
|
||||||
},
|
},
|
||||||
n = i,
|
n = i,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
extensions_list = { "themes", "terms", "fzf" },
|
extensions_list = { "themes", "terms", "fzf", "macrothis" },
|
||||||
extensions = {
|
extensions = {
|
||||||
fzf = {
|
fzf = {
|
||||||
fuzzy = true,
|
fuzzy = true,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
local options = {
|
local options = {
|
||||||
ensure_installed = { "lua" },
|
ensure_installed = { "lua", "vim", "vimdoc" },
|
||||||
|
|
||||||
highlight = {
|
highlight = {
|
||||||
enable = true,
|
enable = true,
|
||||||
|
|||||||
@@ -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
|
||||||
+167
-27
@@ -20,6 +20,26 @@ local default_plugins = {
|
|||||||
{"preservim/tagbar", lazy=false},
|
{"preservim/tagbar", lazy=false},
|
||||||
{"ludovicchabant/vim-gutentags", lazy=false},
|
{"ludovicchabant/vim-gutentags", lazy=false},
|
||||||
{"emaniacs/vim-rest-console", lazy=false},
|
{"emaniacs/vim-rest-console", lazy=false},
|
||||||
|
{"harrisoncramer/gitlab.nvim",
|
||||||
|
dependencies = {
|
||||||
|
"MunifTanjim/nui.nvim",
|
||||||
|
"nvim-lua/plenary.nvim",
|
||||||
|
"sindrets/diffview.nvim",
|
||||||
|
"stevearc/dressing.nvim", -- Recommended but not required. Better UI for pickers.
|
||||||
|
"nvim-tree/nvim-web-devicons" -- Recommended but not required. Icons in discussion tree.
|
||||||
|
},
|
||||||
|
enabled = true,
|
||||||
|
lazy = false,
|
||||||
|
build = function()
|
||||||
|
require("gitlab.server").build(true)
|
||||||
|
end, -- Builds the Go binary
|
||||||
|
opts = function()
|
||||||
|
return require "plugins.configs.gitlab"
|
||||||
|
end,
|
||||||
|
config = function(_, opts)
|
||||||
|
require("gitlab").setup(opts)
|
||||||
|
end,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"sindrets/diffview.nvim",
|
"sindrets/diffview.nvim",
|
||||||
lazy=false,
|
lazy=false,
|
||||||
@@ -45,7 +65,7 @@ local default_plugins = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
"NvChad/nvterm",
|
"zbirenbaum/nvterm",
|
||||||
init = function()
|
init = function()
|
||||||
require("core.utils").load_mappings "nvterm"
|
require("core.utils").load_mappings "nvterm"
|
||||||
end,
|
end,
|
||||||
@@ -57,9 +77,7 @@ local default_plugins = {
|
|||||||
|
|
||||||
{
|
{
|
||||||
"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)
|
||||||
|
|
||||||
@@ -87,6 +105,7 @@ local default_plugins = {
|
|||||||
init = function()
|
init = function()
|
||||||
require("core.utils").lazy_load "indent-blankline.nvim"
|
require("core.utils").lazy_load "indent-blankline.nvim"
|
||||||
end,
|
end,
|
||||||
|
event = "User FilePost",
|
||||||
opts = function()
|
opts = function()
|
||||||
return require("plugins.configs.others").blankline
|
return require("plugins.configs.others").blankline
|
||||||
end,
|
end,
|
||||||
@@ -99,9 +118,7 @@ local default_plugins = {
|
|||||||
|
|
||||||
{
|
{
|
||||||
"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()
|
||||||
@@ -113,25 +130,20 @@ 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",
|
||||||
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.others").gitsigns
|
||||||
end,
|
end,
|
||||||
@@ -154,7 +166,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()
|
||||||
|
if opts.ensure_installed and #opts.ensure_installed > 0 then
|
||||||
vim.cmd("MasonInstall " .. table.concat(opts.ensure_installed, " "))
|
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
|
||||||
@@ -163,9 +177,7 @@ 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"
|
||||||
end,
|
end,
|
||||||
@@ -237,6 +249,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",
|
||||||
@@ -255,7 +368,7 @@ 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()
|
init = function()
|
||||||
require("core.utils").load_mappings "telescope"
|
require("core.utils").load_mappings "telescope"
|
||||||
@@ -278,6 +391,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"
|
||||||
@@ -288,6 +402,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()
|
||||||
|
|||||||
Reference in New Issue
Block a user