-
Notifications
You must be signed in to change notification settings - Fork 32
01. Modules (PlugIns)
Plenary
Init
-- lua/modules/global/init.lua
modules["nvim-lua/plenary.nvim"] = {}
Lvim colorscheme
Init
-- lua/modules/global/init.lua
modules["lvim-tech/lvim-colorscheme"] = {
event = {
"VimEnter",
"BufRead",
"BufNewFile"
},
config = ui_config.lvim_colorscheme
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.lvim_colorscheme()
vim.cmd("colorscheme lvim")
end
Dashboard nvim
Init
-- lua/modules/global/init.lua
modules["glepnir/dashboard-nvim"] = {
event = "VimEnter",
config = ui_config.dashboard_nvim
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.dashboard_nvim()
vim.g.dashboard_custom_header = {
" 888 Y88b / 888 e e ",
" 888 Y88b / 888 d8b d8b ",
" 888 Y88b / 888 d888bdY88b ",
" 888 Y888/ 888 / Y88Y Y888b ",
" 888 Y8/ 888 / YY Y888b ",
" 888____ Y 888 / Y888b "
}
vim.g.dashboard_preview_file_height = 12
vim.g.dashboard_preview_file_width = 80
vim.g.dashboard_custom_section = {
a = {
description = {" Projects "},
command = "CtrlSpace b"
},
b = {
description = {" File explorer "},
command = "Telescope file_browser"
},
c = {
description = {" Search file "},
command = "Telescope find_files"
},
d = {
description = {" Search in files "},
command = "Telescope live_grep"
},
e = {
description = {" Help "},
command = ":LvimHelper"
},
f = {
description = {" Settings "},
command = ":e ~/.config/nvim/lua/configs/global/lvim.lua"
},
g = {
description = {" Readme "},
command = ":e ~/.config/nvim/README.md"
}
}
end
Nvim tree
kyazdani42/nvim-tree.lua (requires kyazdani42/nvim-web-devicons)
Init
-- lua/modules/global/init.lua
modules["kyazdani42/nvim-tree.lua"] = {
requires = "kyazdani42/nvim-web-devicons",
cmd = "NvimTreeToggle",
config = ui_config.nvim_tree
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.nvim_tree()
vim.g.nvim_tree_show_icons = {
git = 1,
folders = 1,
files = 1,
folder_arrows = 0
}
vim.g.nvim_tree_icons = {
default = "",
symlink = "",
git = {
unstaged = "",
staged = "",
unmerged = "",
renamed = "➜",
untracked = "",
ignored = "◌"
},
folder = {
default = "",
open = "",
empty = "",
empty_open = "",
symlink = ""
}
}
require("nvim-tree").setup {
disable_netrw = true,
hijack_netrw = true,
open_on_setup = false,
ignore_ft_on_setup = {},
auto_close = false,
open_on_tab = false,
hijack_cursor = false,
update_cwd = true,
diagnostics = {
enable = true,
icons = {
error = "",
warning = "",
hint = "",
info = ""
}
},
update_focused_file = {
enable = true,
update_cwd = false,
ignore_list = {}
},
system_open = {
cmd = nil,
args = {}
},
view = {
width = 30,
side = "left",
auto_resize = true,
mappings = {
custom_only = false,
list = {}
}
}
}
end
Which key
Init
-- lua/modules/global/init.lua
modules["folke/which-key.nvim"] = {
event = "BufWinEnter",
config = ui_config.which_key
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.which_key()
local options = {
plugins = {
marks = true,
registers = true,
presets = {
operators = false,
motions = false,
text_objects = false,
windows = false,
nav = false,
z = false,
g = false
},
spelling = {
enabled = true,
suggestions = 20
}
},
icons = {
breadcrumb = "»",
separator = "➜",
group = "+"
},
window = {
border = "single",
position = "bottom",
margin = {
0,
0,
0,
0
},
padding = {
2,
2,
2,
2
}
},
layout = {
height = {
min = 4,
max = 25
},
width = {
min = 20,
max = 50
},
spacing = 10
},
hidden = {"<silent>", "<cmd>", "<Cmd>", "<CR>", "call", "lua", "^:", "^ "},
show_help = true
}
local nopts = {
mode = "n",
prefix = "<leader>",
buffer = nil,
silent = true,
noremap = true,
nowait = true
}
local vopts = {
mode = "v",
prefix = "<leader>",
buffer = nil,
silent = true,
noremap = true,
nowait = true
}
local nmappings = {
e = {"<Cmd>NvimTreeToggle<CR>", "NvimTree toggle"},
b = {
name = "Buffers",
n = {"<Cmd>bnext<CR>", "Next buffer"},
p = {"<Cmd>bprevious<CR>", "Prev buffer"},
l = {"<Cmd>Telescope buffers<CR>", "List buffers"}
},
d = {
name = "Database",
u = {"<Cmd>DBUIToggle<CR>", "DB UI toggle"},
f = {"<Cmd>DBUIFindBuffer<CR>", "DB find buffer"},
r = {"<Cmd>DBUIRenameBuffer<CR>", "DB rename buffer"},
l = {"<Cmd>DBUILastQueryInfo<CR>", "DB last query"}
},
p = {
name = "Packer",
c = {"<cmd>PackerCompile<CR>", "Compile"},
i = {"<cmd>PackerInstall<CR>", "Install"},
s = {"<cmd>PackerSync<CR>", "Sync"},
S = {"<cmd>PackerStatus<CR>", "Status"},
u = {"<cmd>PackerUpdate<CR>", "Update"}
},
P = {
name = "Path",
g = {"<Cmd>SetGlobalPath<CR>", "Set global path"},
w = {"<Cmd>SetWindowPath<CR>", "Set window path"}
},
l = {
name = "LSP",
n = {"<Cmd>LspGoToNext<CR>", "Go to next"},
p = {"<Cmd>LspGoToPrev<CR>", "Go to prev"},
r = {"<Cmd>LspRename<CR>", "Rename"},
h = {"<Cmd>LspHover<CR>", "Hover"},
d = {"<Cmd>LspDefinition<CR>", "Definition"},
t = {"<Cmd>LspTypeDefinition<CR>", "Type definition"},
R = {"<Cmd>LspReferences<CR>", "References"},
a = {"<Cmd>LspCodeAction<CR>", "Code action"},
f = {"<Cmd>LspFormatting<CR>", "Formatting"},
s = {"<Cmd>LspFormattingSync<CR>", "Sync formatting"},
S = {
name = "Symbol",
d = {"<Cmd>LspDocumentSymbol<CR>", "Document symbol"},
w = {"<Cmd>LspWorkspaceSymbol<CR>", "Workspace symbol"}
},
w = {
"<Cmd>LspAddToWorkspaceFolder<CR>",
"Add to workspace folder"
},
v = {
name = "Virtualtext",
s = {"<Cmd>LspVirtualTextShow<CR>", "Virtual text show"},
h = {"<Cmd>LspVirtualTextHide<CR>", "Virtual text hide"}
}
},
g = {
name = "GIT",
b = {"<Cmd>GitSignsBlameLine<CR>", "Blame"},
B = {"<Cmd>GBrowse<CR>", "Browse"},
d = {"<Cmd>Git diff<CR>", "Diff"},
n = {"<Cmd>GitSignsNextHunk<CR>", "Next hunk"},
p = {"<Cmd>GitSignsPrevHunk<CR>", "Prev hunk"},
l = {"<Cmd>Git log<CR>", "Log"},
P = {"<Cmd>GitSignsPreviewHunk<CR>", "Preview hunk"},
r = {"<Cmd>GitSignsResetHunk<CR>", "Reset stage hunk"},
s = {"<Cmd>GitSignsStageHunk<CR>", "Stage hunk"},
u = {"<Cmd>GitSignsUndoStageHunk<CR>", "Undo stage hunk"},
R = {"<Cmd>GitSignsResetBuffer<CR>", "Reset buffer"},
S = {"<Cmd>Gstatus<CR>", "Status"},
N = {"<Cmd>Neogit<CR>", "Neogit"}
},
m = {
name = "Bookmark",
t = {"<Cmd>BookmarkToggle<CR>", "Toggle bookmark"},
n = {"<Cmd>BookmarkNext<CR>", "Next bookmark"},
p = {"<Cmd>BookmarkPrev<CR>", "Prev bookmark"}
},
f = {
name = "Fold",
m = {"<Cmd>:set foldmethod=manual<CR>", "Manual (default)"},
i = {"<Cmd>:set foldmethod=indent<CR>", "Indent"},
e = {"<Cmd>:set foldmethod=expr<CR>", "Expr"},
d = {"<Cmd>:set foldmethod=diff<CR>", "Diff"},
M = {"<Cmd>:set foldmethod=marker<CR>", "Marker"}
},
s = {
name = "Spectre",
d = {
'<Cmd>lua require("spectre").delete()<CR>',
"Toggle current item"
},
g = {
'<Cmd>lua require("spectre.actions").select_entry()<CR>',
"Goto current file"
},
q = {
'<Cmd>lua require("spectre.actions").send_to_qf()<CR>',
"Send all item to quickfix"
},
m = {
'<Cmd>lua require("spectre.actions").replace_cmd()<CR>',
"Input replace vim command"
},
o = {
'<Cmd>lua require("spectre").show_options()<CR>',
"show option"
},
R = {
'<Cmd>lua require("spectre.actions").run_replace()<CR>',
"Replace all"
},
v = {
'<Cmd>lua require("spectre").change_view()<CR>',
"Change result view mode"
},
c = {
'<Cmd>lua require("spectre").change_options("ignore-case")<CR>',
"Toggle ignore case"
},
h = {
'<Cmd>lua require("spectre").change_options("hidden")<CR>',
"Toggle search hidden"
}
},
t = {
name = "Telescope",
b = {"<Cmd>Telescope file_browser<CR>", "File browser"},
f = {"<Cmd>Telescope find_files<CR>", "Find files"},
w = {"<Cmd>Telescope live_grep<CR>", "Live grep"},
u = {"<Cmd>Telescope buffers<CR>", "Buffers"},
m = {"<Cmd>Telescope marks<CR>", "Marks"},
o = {"<Cmd>Telescope commands<CR>", "Commands"},
y = {"<Cmd>Telescope symbols<CR>", "Symbols"},
n = {"<Cmd>Telescope quickfix<CR>", "Quickfix"},
c = {"<Cmd>Telescope git_commits<CR>", "Git commits"},
B = {"<Cmd>Telescope git_bcommits<CR>", "Git bcommits"},
r = {"<Cmd>Telescope git_branches<CR>", "Git branches"},
s = {"<Cmd>Telescope git_status<CR>", "Git status"},
S = {"<Cmd>Telescope git_stash<CR>", "Git stash"},
i = {"<Cmd>Telescope git_files<CR>", "Git files"},
M = {"<Cmd>Telescope media_files<CR>", "Media files"}
}
}
local vmappings = {
["/"] = {":CommentToggle<CR>", "Comment"},
f = {"<Cmd>LspRangeFormatting<CR>", "Range formatting"}
}
local which_key = require "which-key"
which_key.setup(options)
which_key.register(nmappings, nopts)
which_key.register(vmappings, vopts)
end
Lualine
nvim-lualine/lualine.nvim (requires kyazdani42/nvim-web-devicons)
Init
-- lua/modules/global/init.lua
modules["nvim-lualine/lualine.nvim"] = {
requires = "kyazdani42/nvim-web-devicons",
event = {
"VimEnter",
"BufRead",
"BufNewFile"
},
config = ui_config.lualine
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.lualine()
local lualine = require "lualine"
local colors = {
bg = "#252A34",
darkbg = "#1E222A",
fg = "#D9DA9E",
color_01 = "#E6B673",
color_02 = "#00839F",
color_03 = "#98c379",
color_04 = "#F2994B",
color_05 = "#1C9898",
color_06 = "#25B8A5",
color_07 = "#56adb7",
color_08 = "#F05F4E"
}
local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand "%:t") ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 120
end,
check_git_workspace = function()
local filepath = vim.fn.expand "%:p:h"
local gitdir = vim.fn.finddir(".git", filepath .. ";")
return gitdir and #gitdir > 0 and #gitdir < #filepath
end
}
local lualine_config = {
options = {
component_separators = "",
section_separators = "",
theme = {
normal = {
a = {fg = colors.bg, bg = colors.bg},
b = {fg = colors.bg, bg = colors.bg},
c = {fg = colors.bg, bg = colors.bg},
x = {fg = colors.bg, bg = colors.bg},
y = {fg = colors.bg, bg = colors.bg},
z = {fg = colors.bg, bg = colors.bg}
},
inactive = {
a = {fg = colors.bg, bg = colors.bg},
b = {fg = colors.bg, bg = colors.bg},
c = {fg = colors.bg, bg = colors.bg},
x = {fg = colors.bg, bg = colors.bg},
y = {fg = colors.bg, bg = colors.bg},
z = {fg = colors.bg, bg = colors.bg}
}
},
disabled_filetypes = {
"NvimTree",
"LvimHelper",
"dashboard",
"vista",
"dbui",
"packer",
"dapui_scopes",
"dapui_breakpoints",
"dapui_stacks",
"dapui_watches",
"ctrlspace"
}
},
sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {},
lualine_x = {},
lualine_y = {},
lualine_z = {}
}
}
local function ins_left_a(component)
table.insert(lualine_config.sections.lualine_a, component)
end
local function ins_left_b(component)
table.insert(lualine_config.sections.lualine_b, component)
end
local function ins_left_c(component)
table.insert(lualine_config.sections.lualine_c, component)
end
local function ins_right(component)
table.insert(lualine_config.sections.lualine_x, component)
end
ins_left_a {
function()
local alias = {
n = "NORMAL",
v = "VISUAL",
V = "V-LINE",
[""] = "V-BLOCK",
s = "SELECT",
S = "S-LINE",
[""] = "S-BLOCK",
i = "INSERT",
R = "REPLACE",
c = "COMMAND",
r = "PROMPT",
["!"] = "EXTERNAL",
t = "TERMINAL"
}
local mode_color = {
n = colors.color_03,
i = colors.color_08,
v = colors.color_04,
[""] = colors.color_04,
V = colors.color_04,
c = colors.color_06,
no = colors.color_08,
s = colors.color_04,
S = colors.color_04,
[""] = colors.color_04,
ic = colors.color_01,
R = colors.color_05,
Rv = colors.color_05,
cv = colors.color_08,
ce = colors.color_08,
r = colors.color_02,
rm = colors.color_02,
["r?"] = colors.color_02,
["!"] = colors.color_08,
t = colors.color_08
}
local vim_mode = vim.fn.mode()
vim.api.nvim_command("hi! LualineMode guifg=" .. mode_color[vim.fn.mode()] .. " guibg=" .. colors.bg)
return alias[vim_mode] .. " "
end,
color = "LualineMode",
padding = {right = 1}
}
ins_left_b {
"filetype",
colored = false,
icon_only = false,
color = {
fg = colors.color_07,
gui = "bold"
}
}
ins_left_c {
"filename",
cond = conditions.buffer_not_empty,
color = {
fg = colors.color_02,
gui = "bold"
},
path = 2,
shorting_target = 20
}
ins_left_c {
"diff",
symbols = {
added = " ",
modified = " ",
removed = " "
},
diff_color = {
added = {
fg = colors.color_03
},
modified = {
fg = colors.color_04
},
removed = {
fg = colors.color_08
}
}
}
ins_left_c {
"branch",
icon = " ",
color = {
fg = colors.color_05,
gui = "bold"
},
cond = conditions.hide_in_width
}
ins_left_c {
function()
local package = require("package-info")
return package.get_status()
end,
padding = {
left = 0,
right = 0
},
color = {
fg = colors.color_05
},
cond = nil
}
ins_right {
"diagnostics",
sources = {
"nvim_lsp"
},
symbols = {
error = " ",
warn = " ",
hint = " ",
info = " "
},
diagnostics_color = {
error = {
fg = colors.color_08
},
warn = {
fg = colors.color_04
},
hint = {
fg = colors.color_07
},
info = {
fg = colors.color_07
}
}
}
ins_right {
function(msg)
msg = msg or ""
local buf_clients = vim.lsp.buf_get_clients()
if next(buf_clients) == nil then
if type(msg) == "boolean" or #msg == 0 then
return ""
end
return msg
end
local buf_client_names = {}
for _, client in pairs(buf_clients) do
table.insert(buf_client_names, client.name)
end
return table.concat(buf_client_names, ", ")
end,
icon = " ",
cond = conditions.hide_in_width,
color = {
fg = colors.color_02,
gui = "bold"
}
}
ins_right {
"o:encoding",
fmt = string.upper,
cond = conditions.hide_in_width,
color = {
fg = colors.color_03,
gui = "bold"
}
}
ins_right {
"fileformat",
fmt = string.upper,
cond = conditions.hide_in_width,
icons_enabled = true,
padding = {
left = 0,
right = 2
},
color = {
fg = colors.color_03,
gui = "bold"
}
}
ins_right {
function()
local current_line = vim.fn.line "."
local total_lines = vim.fn.line "$"
local chars = {"█", "▇", "▆", "▅", "▄", "▃", "▂", "▁"}
local line_ratio = current_line / total_lines
local index = math.ceil(line_ratio * #chars)
return chars[index]
end,
padding = {
left = 0,
right = 0
},
color = {
fg = colors.color_08,
bg = colors.darkbg
},
cond = nil
}
lualine.setup(lualine_config)
end
Toggleterm
Init
-- lua/modules/global/init.lua
modules["akinsho/toggleterm.nvim"] = {
cmd = {
"TTFloat",
"TTOne",
"TTTwo",
"TTThree"
},
config = ui_config.toggleterm
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.toggleterm()
local terminal_float =
require("toggleterm.terminal").Terminal:new(
{
count = 4,
direction = "float",
float_opts = {
border = "single",
winblend = 3,
highlights = {
border = "FloatBorder",
background = "Normal"
}
},
on_open = function(term)
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "<Esc>", "<cmd>close<cr>", {noremap = true, silent = true})
vim.api.nvim_buf_set_keymap(
term.bufnr,
"t",
"<Esc>",
"<c-\\><c-n><cmd>close<cr><c-w><c-p>",
{noremap = true}
)
vim.wo.cursorcolumn = false
vim.wo.cursorline = false
vim.cmd("startinsert!")
end,
on_close = function()
vim.cmd("quit!")
end
}
)
local terminal_one =
require("toggleterm.terminal").Terminal:new(
{
count = 1,
direction = "horizontal",
on_open = function(term)
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "<Esc>", "<cmd>close<cr>", {noremap = true, silent = true})
vim.api.nvim_buf_set_keymap(
term.bufnr,
"t",
"<Esc>",
"<c-\\><c-n><cmd>close<cr><c-w><c-p>",
{noremap = true, silent = true}
)
vim.api.nvim_buf_set_keymap(term.bufnr, "t", "<C-x>", "<c-\\><c-n>", {noremap = true, silent = true})
vim.wo.cursorcolumn = false
vim.wo.cursorline = false
vim.cmd("startinsert!")
vim.api.nvim_exec([[exe "normal \<C-W>\="]], true)
end,
on_close = function()
vim.cmd("quit!")
end
}
)
local terminal_two =
require("toggleterm.terminal").Terminal:new(
{
count = 2,
direction = "horizontal",
on_open = function(term)
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "<Esc>", "<cmd>close<cr>", {noremap = true, silent = true})
vim.api.nvim_buf_set_keymap(
term.bufnr,
"t",
"<Esc>",
"<c-\\><c-n><cmd>close<cr><c-w><c-p>",
{noremap = true, silent = true}
)
vim.api.nvim_buf_set_keymap(term.bufnr, "t", "<C-x>", "<c-\\><c-n>", {noremap = true, silent = true})
vim.wo.cursorcolumn = false
vim.wo.cursorline = false
vim.cmd("startinsert!")
vim.api.nvim_exec([[exe "normal \<C-W>\="]], true)
end,
on_close = function()
vim.cmd("quit!")
end
}
)
local terminal_three =
require("toggleterm.terminal").Terminal:new(
{
count = 3,
direction = "horizontal",
on_open = function(term)
vim.api.nvim_buf_set_keymap(term.bufnr, "n", "<Esc>", "<cmd>close<cr>", {noremap = true, silent = true})
vim.api.nvim_buf_set_keymap(
term.bufnr,
"t",
"<Esc>",
"<c-\\><c-n><cmd>close<cr><c-w><c-p>",
{noremap = true, silent = true}
)
vim.api.nvim_buf_set_keymap(term.bufnr, "t", "<C-x>", "<c-\\><c-n>", {noremap = true, silent = true})
vim.wo.cursorcolumn = false
vim.wo.cursorline = false
vim.cmd("startinsert!")
vim.api.nvim_exec([[exe "normal \<C-W>\="]], true)
end,
on_close = function()
vim.cmd("quit!")
end
}
)
function _G.toggleterm_float_toggle()
terminal_float:toggle()
end
function _G.toggleterm_one_toggle()
terminal_one:toggle()
end
function _G.toggleterm_two_toggle()
terminal_two:toggle()
end
function _G.toggleterm_three_toggle()
terminal_three:toggle()
end
vim.cmd("command! TTFloat lua _G.toggleterm_float_toggle()")
vim.cmd("command! TTOne lua _G.toggleterm_one_toggle()")
vim.cmd("command! TTTwo lua _G.toggleterm_two_toggle()")
vim.cmd("command! TTThree lua _G.toggleterm_three_toggle()")
end
Twilight
Init
-- lua/modules/global/init.lua
modules["folke/twilight.nvim"] = {
cmd = "Twilight",
config = ui_config.twilight
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.twilight()
require("twilight").setup {}
end
Indent blankline
lukas-reineke/indent-blankline.nvim
Init
-- lua/modules/global/init.lua
modules["lukas-reineke/indent-blankline.nvim"] = {
event = {
"VimEnter",
"BufRead",
"BufNewFile"
},
config = ui_config.indent_blankline
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.indent_blankline()
require("indent_blankline").setup {
char = "▏",
show_first_indent_level = true,
show_trailing_blankline_indent = true,
show_current_context = true,
context_patterns = {
"class",
"function",
"method",
"block",
"list_literal",
"selector",
"^if",
"^table",
"if_statement",
"while",
"for"
},
filetype_exclude = {
"startify",
"dashboard",
"dotooagenda",
"log",
"fugitive",
"gitcommit",
"packer",
"vimwiki",
"markdown",
"json",
"txt",
"vista",
"help",
"todoist",
"NvimTree",
"peekaboo",
"git",
"TelescopePrompt",
"undotree",
"flutterToolsOutline"
},
buftype_exclude = {
"terminal",
"nofile"
}
}
end
Lvim focus
Init
-- lua/modules/global/init.lua
modules["lvim-tech/lvim-focus"] = {
event = {
"VimEnter",
"BufRead",
"BufNewFile"
},
config = ui_config.lvim_focus
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.lvim_focus()
require("lvim-focus").setup()
end
Lvim helper
Init
-- lua/modules/global/init.lua
modules["lvim-tech/lvim-helper"] = {
cmd = "LvimHelper",
config = ui_config.lvim_helper
}
Config
-- lua/modules/global/configs/ui/init.lua
function config.lvim_helper()
local global = require("core.global")
require("lvim-helper").setup(
{
files = {
global.home .. "/.config/nvim/help/lvim_bindings_normal_mode.md",
global.home .. "/.config/nvim/help/lvim_bindings_visual_mode.md",
global.home .. "/.config/nvim/help/lvim_bindings_debug_dap.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_global.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_cursor_movement.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_visual_mode.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_visual_commands.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_insert_mode.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_editing.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_registers.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_marks_and_positions.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_macros.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_cut_and_paste.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_indent_text.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_exiting.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_search_and_replace.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_search_in_multiple_files.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_tabs.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_working_with_multiple_files.md",
global.home .. "/.config/nvim/help/vim_cheat_sheet_diff.md"
}
}
)
end
Vim-CtrlSpace
Init
-- lua/modules/global/init.lua
modules["vim-ctrlspace/vim-ctrlspace"] = {
cmd = "CtrlSpace"
}
Config
-- lua/configs/global/init.lua
configs["ctrlspace_pre_config_global"] = function()
vim.g.ctrlspace_use_tablineend = 1
vim.g.CtrlSpaceLoadLastWorkspaceOnStart = 1
vim.g.CtrlSpaceSaveWorkspaceOnSwitch = 1
vim.g.CtrlSpaceSaveWorkspaceOnExit = 1
vim.g.CtrlSpaceUseTabline = 0
vim.g.CtrlSpaceUseArrowsInTerm = 1
vim.g.CtrlSpaceUseMouseAndArrowsInTerm = 1
vim.g.CtrlSpaceGlobCommand = "rg --files --follow --hidden -g '!{.git/*,node_modules/*,target/*,vendor/*}'"
vim.g.CtrlSpaceIgnoredFiles = "\v(tmp|temp)[\\/]"
vim.g.CtrlSpaceSymbols = {
CS = " ",
Sin = "",
All = "",
Vis = "★",
File = "",
Tabs = "ﱡ",
CTab = "ﱢ",
NTM = "⁺",
WLoad = "ﰬ",
WSave = "ﰵ",
Zoom = "",
SLeft = "",
SRight = "",
BM = "",
Help = "",
IV = "",
IA = "",
IM = " ",
Dots = "ﳁ"
}
end
IMPORTANT: Defined in
lua/configs/global/init.lua
Telescope
nvim-telescope/telescope.nvim (requires nvim-telescope/telescope-fzf-native.nvim | nvim-telescope/telescope-media-files.nvim)
Init
-- lua/modules/global/init.lua
local commit
if 1 ~= vim.fn.has "nvim-0.5.1" then
commit = "02a02f7bcdfb1f207de6649c00701ee1fe13a420"
else
commit = nil
end
modules["nvim-telescope/telescope.nvim"] = {
commit = commit,
requires = {
{
"nvim-telescope/telescope-fzf-native.nvim",
run = "make"
},
{
"nvim-telescope/telescope-media-files.nvim"
}
},
cmd = "Telescope",
config = editor_config.telescope
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.telescope()
if not packer_plugins["telescope.nvim"].loaded then
vim.cmd [[packadd telescope.nvim]]
vim.cmd [[packadd telescope-fzf-native.nvim]]
vim.cmd [[packadd telescope-media-files.nvim]]
end
local telescope = require("telescope")
telescope.load_extension "fzf"
telescope.load_extension "media_files"
telescope.setup {
defaults = {
prompt_prefix = " ",
selection_caret = " ",
entry_prefix = " ",
initial_mode = "insert",
selection_strategy = "reset",
sorting_strategy = "descending",
layout_strategy = "horizontal",
layout_config = {
width = 0.85,
preview_cutoff = 120,
horizontal = {
mirror = false
},
vertical = {
mirror = false
}
},
vimgrep_arguments = {
"rg",
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column",
"--smart-case",
"--hidden"
},
file_sorter = require("telescope.sorters").get_fuzzy_file,
file_ignore_patterns = {
"node_modules",
".git",
"target",
"vendor"
},
generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
path_display = {shorten = 5},
winblend = 0,
border = {},
borderchars = {"─", "│", "─", "│", "┌", "┐", "┘", "└"},
color_devicons = true,
set_env = {["COLORTERM"] = "truecolor"},
file_previewer = require("telescope.previewers").vim_buffer_cat.new,
grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker
},
pickers = {
file_browser = {
hidden = true
},
find_files = {
hidden = true
},
live_grep = {
hidden = true,
only_sort_text = true
}
},
extensions = {
fzf = {
fuzzy = true,
override_generic_sorter = false,
override_file_sorter = true,
case_mode = "smart_case"
},
media_files = {
filetypes = {"png", "webp", "jpg", "jpeg"},
find_cmd = "rg"
}
}
}
end
Nvim spectre
windwp/nvim-spectre (requires nvim-lua/popup.nvim | nvim-lua/plenary.nvim)
Init
-- lua/modules/global/init.lua
modules["windwp/nvim-spectre"] = {
event = {
"BufRead",
"BufNewFile"
},
requires = {
{
"nvim-lua/popup.nvim"
},
{
"nvim-lua/plenary.nvim"
}
},
config = editor_config.nvim_spectre
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.nvim_spectre()
vim.cmd("command! Spectre lua require('spectre').open()")
require("spectre").setup(
{
color_devicons = true,
line_sep_start = "-----------------------------------------",
result_padding = "| ",
line_sep = "-----------------------------------------",
highlight = {
ui = "String",
search = "DiffChange",
replace = "DiffDelete"
},
mapping = {
["delete_line"] = nil,
["enter_file"] = nil,
["send_to_qf"] = nil,
["replace_cmd"] = nil,
["show_option_menu"] = nil,
["run_replace"] = nil,
["change_view_mode"] = nil,
["toggle_ignore_case"] = nil,
["toggle_ignore_hidden"] = nil
},
find_engine = {
["rg"] = {
cmd = "rg",
args = {
"--color=never",
"--no-heading",
"--with-filename",
"--line-number",
"--column"
},
options = {
["ignore-case"] = {
value = "--ignore-case",
icon = "[I]",
desc = "ignore case"
},
["hidden"] = {
value = "--hidden",
desc = "hidden file",
icon = "[H]"
}
}
},
["ag"] = {
cmd = "ag",
args = {"--vimgrep", "-s"},
options = {
["ignore-case"] = {
value = "-i",
icon = "[I]",
desc = "ignore case"
},
["hidden"] = {
value = "--hidden",
desc = "hidden file",
icon = "[H]"
}
}
}
},
replace_engine = {
["sed"] = {
cmd = "sed",
args = nil
},
options = {
["ignore-case"] = {
value = "--ignore-case",
icon = "[I]",
desc = "ignore case"
}
}
},
default = {
find = {
cmd = "rg",
options = {"ignore-case"}
},
replace = {
cmd = "sed"
}
},
replace_vim_cmd = "cfdo",
is_open_target_win = true,
is_insert_mode = false
}
)
end
Nvim comment
Init
-- lua/modules/global/init.lua
modules["terrortylor/nvim-comment"] = {
cmd = "CommentToggle",
config = editor_config.nvim_comment
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.nvim_comment()
require("nvim_comment").setup()
end
Vim bookmarks
Init
-- lua/modules/global/init.lua
modules["MattesGroeger/vim-bookmarks"] = {
cmd = "BookmarkToggle",
config = editor_config.vim_bookmarks
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.vim_bookmarks()
vim.g.bookmark_no_default_key_mappings = 1
vim.g.bookmark_sign = ""
end
Vim doge
Init
-- lua/modules/global/init.lua
modules["kkoomen/vim-doge"] = {
cmd = {
"DogeGenerate",
"DogeCreateDocStandard"
},
run = ":call doge#install()",
config = editor_config.vim_doge
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.vim_doge()
vim.g.doge_mapping = "<Leader>*"
end
Nvim autopairs
Init
-- lua/modules/global/init.lua
modules["windwp/nvim-autopairs"] = {
after = {
"nvim-treesitter",
"nvim-cmp"
},
config = editor_config.nvim_autopairs
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.nvim_autopairs()
local autopairs = require "nvim-autopairs"
local Rule = require "nvim-autopairs.rule"
local cond = require "nvim-autopairs.conds"
autopairs.setup {
check_ts = true,
ts_config = {
lua = {
"string"
},
javascript = {
"template_string"
},
java = false
}
}
autopairs.add_rule(Rule("$$", "$$", "tex"))
autopairs.add_rules {
Rule("$", "$", {"tex", "latex"}):with_pair(cond.not_after_regex_check "%%"):with_pair(
cond.not_before_regex_check("xxx", 3)
):with_move(cond.none()):with_del(cond.not_after_regex_check "xx"):with_cr(cond.none())
}
autopairs.add_rules {
Rule("$$", "$$", "tex"):with_pair(
function(opts)
print(vim.inspect(opts))
if opts.line == "aa $$" then
return false
end
end
)
}
local ts_conds = require "nvim-autopairs.ts-conds"
autopairs.add_rules {
Rule("%", "%", "lua"):with_pair(ts_conds.is_ts_node {"string", "comment"}),
Rule("$", "$", "lua"):with_pair(ts_conds.is_not_ts_node {"function"})
}
end
Nvim colorizer
Init
-- lua/modules/global/init.lua
modules["norcalli/nvim-colorizer.lua"] = {
event = {
"BufRead",
"BufNewFile"
},
config = editor_config.nvim_colorize
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.nvim_colorize()
require("colorizer").setup(
{
"*"
},
{
RGB = true,
RRGGBB = true,
RRGGBBAA = true,
rgb_fn = true,
hsl_fn = true,
css = true,
css_fn = true
}
)
end
Neoscroll
Init
-- lua/modules/global/init.lua
modules["karb94/neoscroll.nvim"] = {
event = {
"BufRead",
"BufNewFile"
},
config = editor_config.neoscroll
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.neoscroll()
require("neoscroll").setup(
{
mappings = {
"<C-y>",
"<C-e>",
"<C-u>",
"<C-d>",
"<C-b>",
"<C-f>",
"gg",
"G",
"zt",
"zz",
"zb"
}
}
)
end
Suda
Init
-- lua/modules/global/init.lua
modules["lambdalisue/suda.vim"] = {
event = {
"BufRead",
"BufNewFile"
},
config = editor_config.suda
}
Config
-- lua/modules/global/configs/editor/init.lua
function config.suda()
vim.g.suda_smart_edit = 1
end
Vim arsync
Init
-- lua/modules/global/init.lua
modules["kenn7/vim-arsync"] = {
event = {
"BufRead",
"BufNewFile"
}
}
Config
-- Default configuration
Neogit
TimUntersberger/neogit (requires nvim-lua/plenary.nvim)
Init
-- lua/modules/global/init.lua
modules["TimUntersberger/neogit"] = {
requires = "nvim-lua/plenary.nvim",
cmd = "Neogit",
config = version_control_config.neogit
}
Config
-- lua/modules/global/configs/version_control/init.lua
function config.neogit()
require("neogit").setup {
disable_signs = false,
disable_context_highlighting = false,
disable_commit_confirmation = false,
signs = {
section = {
"",
""
},
item = {
"",
""
},
hunk = {
"",
""
}
},
integrations = {
diffview = true
}
}
end
Vim fugitive
Init
-- lua/modules/global/init.lua
modules["tpope/vim-fugitive"] = {
event = {
"BufRead",
"BufNewFile"
}
}
Config
-- Default configuration
Gitsigns
lewis6991/gitsigns.nvim (requires nvim-lua/plenary.nvim)
Init
-- lua/modules/global/init.lua
modules["lewis6991/gitsigns.nvim"] = {
requires = "nvim-lua/plenary.nvim",
event = {
"BufRead",
"BufReadPost",
"BufNewFile"
},
config = version_control_config.gitsigns
}
Config
-- lua/modules/global/configs/version_control/init.lua
function config.gitsigns()
require("gitsigns").setup {
signs = {
add = {
hl = "GitSignsAdd",
text = "▎",
numhl = "GitSignsAddNr",
linehl = "GitSignsAddLn"
},
change = {
hl = "GitSignsChange",
text = "▎",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn"
},
delete = {
hl = "GitSignsDelete",
text = "契",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn"
},
topdelete = {
hl = "GitSignsDelete",
text = "契",
numhl = "GitSignsDeleteNr",
linehl = "GitSignsDeleteLn"
},
changedelete = {
hl = "GitSignsChange",
text = "▎",
numhl = "GitSignsChangeNr",
linehl = "GitSignsChangeLn"
}
},
numhl = false,
linehl = false,
keymaps = {
noremap = true,
buffer = true
},
watch_index = {interval = 1000, follow_files = true},
current_line_blame = false,
current_line_blame_delay = 1000,
current_line_blame_position = "eol",
sign_priority = 6,
update_debounce = 100,
status_formatter = nil,
word_diff = false,
use_decoration_api = true,
use_internal_diff = true
}
vim.cmd("command! GitSignsPreviewHunk lua require('gitsigns').preview_hunk()")
vim.cmd("command! GitSignsNextHunk lua require('gitsigns').next_hunk()")
vim.cmd("command! GitSignsPrevHunk lua require('gitsigns').prev_hunk()")
vim.cmd("command! GitSignsStageHunk lua require('gitsigns').stage_hunk()")
vim.cmd("command! GitSignsUndoStageHunk lua require('gitsigns').undo_stage_hunk()")
vim.cmd("command! GitSignsResetHunk lua require('gitsigns').reset_hunk()")
vim.cmd("command! GitSignsResetBuffer lua require('gitsigns').reset_buffer()")
vim.cmd("command! GitSignsBlameLine lua require('gitsigns').blame_line()")
end
Git blame
Init
-- lua/modules/global/init.lua
modules["f-person/git-blame.nvim"] = {
config = version_control_config.git_blame
}
Config
-- lua/modules/global/configs/version_control/init.lua
function config.git_blame()
vim.g.gitblame_enabled = 0
end
Diffview
Init
-- lua/modules/global/init.lua
modules["sindrets/diffview.nvim"] = {
event = {
"BufRead",
"BufNewFile"
}
}
Undotree
Init
-- lua/modules/global/init.lua
modules["mbbill/undotree"] = {
event = {
"BufRead",
"BufNewFile"
},
cmd = "UndotreeToggle"
}
Config
-- Default configuration
Nvim lspconfig
Init
-- lua/modules/global/init.lua
modules["neovim/nvim-lspconfig"] = {
event = {
"VimEnter",
"BufWinEnter",
"BufRead",
"BufNewFile"
},
config = languages_config.nvim_lspconfig
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.nvim_lspconfig()
require("languages.global.utils").setup_diagnostic()
require("languages.global.diagnostics").init_diagnosticls()
-- LSP buf
vim.cmd("command! LspAddToWorkspaceFolder lua vim.lsp.buf.add_workspace_folder()")
vim.cmd("command! LspListWorkspaceFolders lua vim.lsp.buf.list_workspace_folders()")
vim.cmd("command! LspRemoveWorkspaceFolder lua vim.lsp.buf.remove_workspace_folder()")
vim.cmd("command! LspWorkspaceSymbol lua vim.lsp.buf.workspace_symbol()")
vim.cmd("command! LspDocumentSymbol lua vim.lsp.buf.document_symbol()")
vim.cmd("command! LspReferences lua vim.lsp.buf.references()")
vim.cmd("command! LspClearReferences lua vim.lsp.buf.clear_references()")
vim.cmd("command! LspCodeAction lua vim.lsp.buf.code_action()")
vim.cmd("command! LspRangeCodeAction lua vim.lsp.buf.range_code_action()")
vim.cmd("command! LspDeclaration lua vim.lsp.buf.declaration()")
vim.cmd("command! LspDefinition lua vim.lsp.buf.definition()")
vim.cmd("command! LspTypeDefinition lua vim.lsp.buf.type_definition()")
vim.cmd("command! LspDocumentHighlight lua vim.lsp.buf.document_highlight()")
vim.cmd("command! LspImplementation lua vim.lsp.buf.implementation()")
vim.cmd("command! LspIncomingCalls lua vim.lsp.buf.incoming_calls()")
vim.cmd("command! LspOutgoingCalls lua vim.lsp.buf.outgoing_calls()")
vim.cmd("command! LspFormatting lua vim.lsp.buf.formatting()")
vim.cmd("command! LspRangeFormatting lua vim.lsp.buf.range_formatting()")
vim.cmd("command! LspFormattingSync lua vim.lsp.buf.formatting_sync()")
vim.cmd("command! LspHover lua vim.lsp.buf.hover()")
vim.cmd("command! LspRename lua vim.lsp.buf.rename()")
vim.cmd("command! LspSignatureHelp lua vim.lsp.buf.signature_help()")
-- LSP diagnostic
vim.cmd("command! LspGoToNext lua require('languages.global.utils.diagnostics').goto_next()")
vim.cmd("command! LspGoToPrev lua require('languages.global.utils.diagnostics').goto_prev()")
-- Virtual text toggle
vim.cmd("command! LspVirtualTextToggle lua require('languages.global.utils').toggle_virtual_text()")
end
Nvim lsp installer
williamboman/nvim-lsp-installer
Init
-- lua/modules/global/init.lua
modules["williamboman/nvim-lsp-installer"] = {
requires = "neovim/nvim-lspconfig",
config = languages_config.nvim_lsp_installer
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.nvim_lsp_installer()
require("nvim-lsp-installer").settings {
ui = {
icons = {
server_installed = "",
server_pending = "",
server_uninstalled = ""
}
}
}
end
Sniprun
Init
-- lua/modules/global/init.lua
modules["michaelb/sniprun"] = {
requires = "neovim/nvim-lspconfig",
run = "bash ./install.sh",
cmd = {
"SnipRun",
"SnipInfo",
"SnipReset",
"SnipReplMemoryClean",
"SnipClose"
},
config = languages_config.sniprun
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.sniprun()
require("sniprun").setup()
end
Lsp signature
Init
-- lua/modules/global/init.lua
modules["ray-x/lsp_signature.nvim"] = {}
Config
-- Default configuration
Nvim treesitter
nvim-treesitter/nvim-treesitter (requires nvim-treesitter/playground)
Init
-- lua/modules/global/init.lua
modules["nvim-treesitter/nvim-treesitter"] = {
requires = {
{
"nvim-treesitter/playground",
after = "nvim-treesitter"
}
},
event = {
"BufRead",
"BufNewFile"
},
run = ":TSUpdate",
config = languages_config.nvim_treesitter
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.nvim_treesitter()
require("nvim-treesitter.configs").setup {
ensure_installed = "all",
ignore_install = {
"haskell"
},
highlight = {
enable = true
},
indent = {
enable = {
"javascriptreact"
}
},
playground = {
enable = true,
disable = {},
updatetime = 25,
persist_queries = false,
keybindings = {
toggle_query_editor = "o",
toggle_hl_groups = "i",
toggle_injected_languages = "t",
toggle_anonymous_nodes = "a",
toggle_language_display = "I",
focus_language = "f",
unfocus_language = "F",
update = "R",
goto_node = "<cr>",
show_help = "?"
}
},
autopairs = {
enable = true
},
autotag = {
enable = true
},
rainbow = {
enable = true
},
context_commentstring = {
enable = true,
config = {
javascriptreact = {
style_element = "{/*%s*/}"
}
}
}
}
end
Any jump
Init
-- lua/modules/global/init.lua
modules["pechorin/any-jump.vim"] = {
event = {
"BufRead",
"BufNewFile"
},
config = languages_config.any_jump
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.any_jump()
vim.g.any_jump_disable_default_keybindings = 1
vim.g.any_jump_list_numbers = 1
end
Lsp trouble
folke/lsp-trouble.nvim (requires kyazdani42/nvim-web-devicons)
Init
-- lua/modules/global/init.lua
modules["folke/lsp-trouble.nvim"] = {
requires = "kyazdani42/nvim-web-devicons",
config = languages_config.lsp_trouble
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.lsp_trouble()
require("trouble").setup {
height = 12,
mode = "lsp_document_diagnostics",
use_lsp_diagnostic_signs = true,
signs = {
error = "",
warning = "",
hint = "",
information = "",
other = ""
}
}
end
Symbols outline
Init
-- lua/modules/global/init.lua
modules["simrat39/symbols-outline.nvim"] = {
cmd = "SymbolsOutline",
config = languages_config.symbols_outline
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.symbols_outline()
require("symbols-outline").setup {
highlight_hovered_item = true,
show_guides = true
}
end
Nvim dap ui
rcarriga/nvim-dap-ui (requires mfussenegger/nvim-dap | jbyuki/one-small-step-for-vimkind)
Init
-- lua/modules/global/init.lua
modules["rcarriga/nvim-dap-ui"] = {
event = {
"BufRead",
"BufNewFile"
},
requires = {
"mfussenegger/nvim-dap",
"jbyuki/one-small-step-for-vimkind"
},
config = languages_config.nvim_dap_ui
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.nvim_dap_ui()
local dapui = require("dapui")
local dap = require("dap")
dapui.setup(
{
icons = {
expanded = "▾",
collapsed = "▸"
},
mappings = {
expand = {
"<CR>",
"<2-LeftMouse>"
},
open = "o",
remove = "d",
edit = "e",
repl = "r"
},
sidebar = {
elements = {
{
id = "scopes",
size = 0.25
},
{
id = "breakpoints",
size = 0.25
},
{
id = "stacks",
size = 0.25
},
{
id = "watches",
size = 00.25
}
},
size = 40,
position = "left"
},
tray = {
elements = {
"repl"
},
size = 10,
position = "bottom"
},
floating = {
max_height = nil,
max_width = nil,
mappings = {
close = {
"q",
"<Esc>"
}
}
},
windows = {
indent = 1
}
}
)
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
vim.fn.sign_define(
"DapBreakpoint",
{
text = "",
texthl = "",
linehl = "",
numhl = ""
}
)
vim.fn.sign_define(
"DapStopped",
{
text = "",
texthl = "",
linehl = "",
numhl = ""
}
)
vim.fn.sign_define(
"DapLogPoint",
{
text = "▶",
texthl = "",
linehl = "",
numhl = ""
}
)
vim.cmd('command! DapToggleBreakpoint lua require"dap".toggle_breakpoint()')
vim.cmd('command! DapStartContinue lua require"dap".continue()')
vim.cmd('command! DapStepInto lua require"dap".step_into()')
vim.cmd('command! DapStepOver lua require"dap".step_over()')
vim.cmd('command! DapStepOut lua require"dap".step_out()')
vim.cmd('command! DapUp lua require"dap".up()')
vim.cmd('command! DapDown lua require"dap".down()')
vim.cmd('command! DapPause lua require"dap".pause()')
vim.cmd('command! DapClose lua require"dap".close()')
vim.cmd('command! DapDisconnect lua require"dap".disconnect()')
vim.cmd('command! DapRestart lua require"dap".restart()')
vim.cmd('command! DapToggleRepl lua require"dap".repl.toggle()')
vim.cmd('command! DapGetSession lua require"dap".session()')
vim.cmd('command! DapUIClose lua require"dap".close(); require"dap".disconnect(); require"dapui".close()')
end
DAPInstall
Init
-- lua/modules/global/init.lua
modules["Pocco81/DAPInstall.nvim"] = {
event = "BufWinEnter",
config = languages_config.dapinstall
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.dapinstall()
local path_debuggers = vim.fn.stdpath("data") .. "/dapinstall/"
require("dap-install").setup(
{
installation_path = path_debuggers
}
)
end
Vim dadbod ui
kristijanhusak/vim-dadbod-ui (requires tpope/vim-dadbod | kristijanhusak/vim-dadbod-completion)
Init
-- lua/modules/global/init.lua
modules["kristijanhusak/vim-dadbod-ui"] = {
requires = {
{
"tpope/vim-dadbod",
after = "vim-dadbod-ui"
},
{
"kristijanhusak/vim-dadbod-completion",
after = "vim-dadbod-ui"
}
},
cmd = {
"DBUIToggle",
"DBUIAddConnection",
"DBUI",
"DBUIFindBuffer",
"DBUIRenameBuffer"
},
config = languages_config.vim_dadbod_ui
}
Config
-- lua/modules/global/configs/languages/init.lua
function config.vim_dadbod_ui()
vim.g.db_ui_show_help = 0
vim.g.db_ui_win_position = "left"
vim.g.db_ui_use_nerd_fonts = 1
vim.g.db_ui_winwidth = 35
vim.api.nvim_set_keymap(
"n",
"<leader>Du",
":DBUIToggle<CR>",
{
noremap = true,
silent = true
}
)
vim.api.nvim_set_keymap(
"n",
"<leader>Df",
":DBUIFindBuffer<CR>",
{
noremap = true,
silent = true
}
)
vim.api.nvim_set_keymap(
"n",
"<leader>Dr",
":DBUIRenameBuffer<CR>",
{
noremap = true,
silent = true
}
)
vim.api.nvim_set_keymap(
"n",
"<leader>Dl",
":DBUILastQueryInfo<CR>",
{
noremap = true,
silent = true
}
)
vim.g.db_ui_auto_execute_table_helpers = true
end
Package info
Init
-- lua/modules/global/init.lua
modules["vuki656/package-info.nvim"] = {
requires = "MunifTanjim/nui.nvim",
event = "BufRead package.json",
config = languages_config.package_info
}
Config
-- lua/modules/global/init.lua
function config.package_info()
require("package-info").setup(
{
colors = {
up_to_date = "#98c379",
outdated = "#F05F4E"
}
}
)
end
Crates
Init
-- lua/modules/global/init.lua
modules["Saecki/crates.nvim"] = {
requires = "nvim-lua/plenary.nvim",
event = "BufRead Cargo.toml",
config = languages_config.crates
}
Config
-- lua/modules/global/init.lua
function config.crates()
require("crates").setup()
vim.cmd('command! CratesUpdate lua require("crates").update()')
vim.cmd('command! CratesReload lua require("crates").reload()')
vim.cmd('command! CratesHide lua require("crates").hide()')
vim.cmd('command! CratesToggle lua require("crates").toggle()')
vim.cmd('command! CratesUpdateCrate lua require("crates").update_crate()')
vim.cmd('command! CratesUpdateCrates lua require("crates").update_crates()')
vim.cmd('command! CratesUpdateAllCrates lua require("crates").update_all_crates()')
vim.cmd('command! CratesUpgradeCrate lua require("crates").upgrade_crate()')
vim.cmd('command! CratesUpgradeCrates lua require("crates").upgrade_crates()')
vim.cmd('command! CratesUpgradeAllCrates lua require("crates").upgrade_all_crates()')
vim.cmd('command! CratesShowPopup lua require("crates").show_popup()')
vim.cmd('command! CratesShowVersionsPopup lua require("crates").show_versions_popup()')
vim.cmd('command! CratesShowFeaturesPopup lua require("crates").show_features_popup()')
vim.cmd('command! CratesFocusPopup lua require("crates").focus_popup()')
vim.cmd('command! CratesHidePopup lua require("crates").hide_popup()')
end
Markdown preview
Init
-- lua/modules/global/init.lua
modules["iamcco/markdown-preview.nvim"] = {
event = {
"VimEnter",
"BufReadPre"
},
run = "cd app && yarn install"
}
Config
-- Default configuration
Nvim cmp
hrsh7th/nvim-cmp (requires hrsh7th/cmp-nvim-lsp | hrsh7th/cmp-vsnip | hrsh7th/cmp-buffer | hrsh7th/cmp-path)
Init
-- lua/modules/global/init.lua
modules["hrsh7th/nvim-cmp"] = {
requires = {
{
"hrsh7th/cmp-nvim-lsp"
},
{
"hrsh7th/cmp-vsnip",
after = "nvim-cmp"
},
{
"hrsh7th/cmp-buffer",
after = "nvim-cmp"
},
{
"hrsh7th/cmp-path",
after = "nvim-cmp"
}
},
event = {
"BufRead",
"BufNewFile",
"InsertEnter"
},
config = completion_config.nvim_cmp
}
Config
-- lua/modules/global/configs/completion/init.lua
function config.nvim_cmp()
local cmp = require("cmp")
local lsp_symbols = {
Text = " (Text) ",
Method = " (Method)",
Function = " (Function)",
Constructor = " (Constructor)",
Field = " ﴲ (Field)",
Variable = "[] (Variable)",
Class = " (Class)",
Interface = " ﰮ (Interface)",
Module = " (Module)",
Property = " 襁 (Property)",
Unit = " (Unit)",
Value = " (Value)",
Enum = " 練 (Enum)",
Keyword = " (Keyword)",
Snippet = " (Snippet)",
Color = " (Color)",
File = " (File)",
Reference = " (Reference)",
Folder = " (Folder)",
EnumMember = " (EnumMember)",
Constant = " (Constant)",
Struct = " (Struct)",
Event = " (Event)",
Operator = " (Operator)",
TypeParameter = " (TypeParameter)"
}
cmp.setup(
{
mapping = {
["<C-p>"] = cmp.mapping.select_prev_item(),
["<C-n>"] = cmp.mapping.select_next_item(),
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm(
{
behavior = cmp.ConfirmBehavior.Replace,
select = true
}
),
["<Tab>"] = cmp.mapping(
cmp.mapping.select_next_item(),
{
"i",
"s"
}
),
["<S-Tab>"] = cmp.mapping(
cmp.mapping.select_prev_item(),
{
"i",
"s"
}
)
},
formatting = {
format = function(entry, item)
item.kind = lsp_symbols[item.kind]
item.menu =
({
nvim_lsp = "[LSP]",
buffer = "[Buffer]",
path = "[Path]",
vsnip = "[VSnip]"
})[entry.source.name]
return item
end
},
sources = {
{
name = "nvim_lsp"
},
{
name = "vsnip"
},
{
name = "path"
},
{
name = "buffer"
},
{
name = "crates"
}
},
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end
}
}
)
end
Vim vsnip
hrsh7th/vim-vsnip (requires hrsh7th/vim-vsnip-integ | rafamadriz/friendly-snippets)
Init
-- lua/modules/global/init.lua
modules["hrsh7th/vim-vsnip"] = {
requires = {
{
"hrsh7th/vim-vsnip-integ",
after = "vim-vsnip"
},
{
"rafamadriz/friendly-snippets",
after = "vim-vsnip"
}
},
event = "InsertEnter"
}
Config
-- Default configuration
Emmet vim
Init
-- lua/modules/global/init.lua
modules["mattn/emmet-vim"] = {
event = "InsertEnter",
config = completion_config.emmet_vim
}
Config
-- lua/modules/global/configs/completion/init.lua
function config.emmet_vim()
vim.g.user_emmet_complete_tag = 0
vim.g.user_emmet_install_global = 0
vim.g.user_emmet_install_command = 0
vim.g.user_emmet_mode = "a"
end
You can disable of any default Module (Plug-in)
Example
Init
-- lua/modules/custom/init.lua
modules["glepnir/dashboard-nvim"] = false
You can rewrite of settings of any of default Module (Plug-in)
Example
Init
-- lua/modules/custom/init.lua
local ui_config = require("modules.custom.configs.ui")
modules["glepnir/dashboard-nvim"] = {
event = "VimEnter",
config = ui_config.dashboard
}
Config
-- lua/modules/custom/configs/ui/init.lua
function config.dashboard()
vim.g.dashboard_custom_header = {
" 8 8888 ,o888888o. ,o888888o. ,o888888o. ",
" 8 8888 . 8888 `88. 8888 `88. . 8888 `88. ",
" 8 8888 ,8 8888 `8b ,8 8888 `8. ,8 8888 `8b ",
" 8 8888 88 8888 `8b 88 8888 88 8888 `8b ",
" 8 8888 88 8888 88 88 8888 88 8888 88 ",
" 8 8888 88 8888 88 88 8888 88 8888 88 ",
" 8 8888 88 8888 ,8P 88 8888 8888888 88 8888 ,8P ",
" 8 8888 `8 8888 ,8P `8 8888 .8' `8 8888 ,8P ",
" 8 8888 ` 8888 ,88' 8888 ,88' ` 8888 ,88' ",
" 8 888888888888 `8888888P' `8888888P' `8888888P' "
}
vim.g.dashboard_preview_file_height = 12
vim.g.dashboard_preview_file_width = 80
vim.g.dashboard_custom_section = {
a = {
description = {" Projects "},
command = "CtrlSpace b"
},
b = {
description = {" File explorer "},
command = "Vifm"
},
c = {
description = {" Search file "},
command = "SnapFiles"
},
d = {
description = {" Search in files "},
command = "SnapGrep"
}
}
end
You can add new Module (Plug-in)
Example
Init
-- lua/modules/custom/init.lua
local version_control_config = require("modules.custom.configs.version_control")
modules["ruifm/gitlinker.nvim"] = {
requires = 'nvim-lua/plenary.nvim',
config = version_control_config.gitlinker
}
Config
-- lua/modules/custom/configs/version_control/init.lua
function config.gitlinker()
require"gitlinker".setup({
opts = {
remote = nil,
add_current_line_on_normal_mode = true,
action_callback = require"gitlinker.actions".copy_to_clipboard,
print_url = true
},
callbacks = {
["github.com"] = require("gitlinker.hosts").get_github_type_url,
["gitlab.com"] = require("gitlinker.hosts").get_gitlab_type_url,
["try.gitea.io"] = require("gitlinker.hosts").get_gitea_type_url,
["codeberg.org"] = require("gitlinker.hosts").get_gitea_type_url,
["bitbucket.org"] = require("gitlinker.hosts").get_bitbucket_type_url,
["try.gogs.io"] = require("gitlinker.hosts").get_gogs_type_url,
["git.sr.ht"] = require("gitlinker.hosts").get_srht_type_url,
["git.launchpad.net"] = require("gitlinker.hosts").get_launchpad_type_url,
["repo.or.cz"] = require("gitlinker.hosts").get_repoorcz_type_url,
["git.kernel.org"] = require("gitlinker.hosts").get_cgit_type_url,
["git.savannah.gnu.org"] = require("gitlinker.hosts").get_cgit_type_url
},
mappings = "<leader>gy"
})
end