Initial new commit
This commit is contained in:
commit
c46ad3d427
22 changed files with 2401 additions and 0 deletions
168
lua/config/commands.lua
Executable file
168
lua/config/commands.lua
Executable file
|
@ -0,0 +1,168 @@
|
|||
local pickers = require "telescope.pickers"
|
||||
local finders = require "telescope.finders"
|
||||
local conf = require("telescope.config").values
|
||||
local actions = require "telescope.actions"
|
||||
local action_state = require "telescope.actions.state"
|
||||
|
||||
vim.api.nvim_create_user_command("OP", function()
|
||||
local folders = vim.fn.systemlist("\\ls -d $HOME/projects/*/")
|
||||
for i, folder in ipairs(folders) do
|
||||
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
|
||||
end
|
||||
pickers.new({}, {
|
||||
prompt_title = "Open project",
|
||||
finder = finders.new_table {
|
||||
results = folders
|
||||
},
|
||||
sorter = conf.generic_sorter({}),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
actions.select_default:replace(function()
|
||||
actions.close(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
selection = selection[1]
|
||||
vim.cmd("cd $HOME/projects/" .. selection)
|
||||
end)
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command("OD", function()
|
||||
local folders = vim.fn.systemlist("\\ls -d */")
|
||||
for i, folder in ipairs(folders) do
|
||||
folders[i] = string.match(string.match(folder, "[^/]*/$"), "^[^/]*")
|
||||
end
|
||||
pickers.new({}, {
|
||||
prompt_title = "Open directory",
|
||||
finder = finders.new_table {
|
||||
results = folders
|
||||
},
|
||||
sorter = conf.generic_sorter({}),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
actions.select_default:replace(function()
|
||||
actions.close(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
selection = selection[1]
|
||||
vim.cmd("cd " .. selection)
|
||||
end)
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command("Config", function()
|
||||
vim.cmd("cd $HOME/.config/nvim")
|
||||
end, {})
|
||||
|
||||
vim.api.nvim_create_user_command("RetabFile2Spaces", function()
|
||||
vim.cmd(":set ts=2 sts=2 noet | retab! | set ts=4 sts=4 et | retab!")
|
||||
end, {})
|
||||
vim.api.nvim_create_user_command("RetabFile4SpacesToTab", function()
|
||||
vim.cmd(":set ts=4 sts=4 noet | retab! | set ts=4 sts=0 noexpandtab | retab!")
|
||||
end, {})
|
||||
|
||||
local function get_makefile_targets()
|
||||
local makefile = "./Makefile"
|
||||
local targets = {}
|
||||
|
||||
local file = io.open(makefile, "r")
|
||||
if file then
|
||||
for line in file:lines() do
|
||||
local target = line:match("^[^\\s:]+:.*")
|
||||
if target then
|
||||
local tg = target:match("^[^:]+")
|
||||
table.insert(targets, tg)
|
||||
end
|
||||
end
|
||||
file:close()
|
||||
end
|
||||
return targets
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("Make", function(args)
|
||||
local vimCmd = "TermExec cmd=\"make"
|
||||
if (args["args"]) then
|
||||
vimCmd = vimCmd .. " " .. args["args"]
|
||||
end
|
||||
vimCmd = vimCmd .. "\""
|
||||
vim.cmd(vimCmd)
|
||||
end, {
|
||||
nargs = "*",
|
||||
["complete"] = function()
|
||||
return get_makefile_targets()
|
||||
end
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command("Maket", function()
|
||||
local targets = get_makefile_targets()
|
||||
pickers.new({}, {
|
||||
prompt_title = "Run make target",
|
||||
finder = finders.new_table {
|
||||
results = targets
|
||||
},
|
||||
sorter = conf.generic_sorter({}),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
actions.select_default:replace(function()
|
||||
actions.close(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
selection = selection[1]
|
||||
vim.cmd(":Make " .. selection)
|
||||
end)
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end, {})
|
||||
|
||||
function get_just_targets()
|
||||
local handle = io.popen("just --summary")
|
||||
local res = handle:read("*a")
|
||||
handle:close()
|
||||
local targets = {}
|
||||
-- insert space seperated targets
|
||||
for target in string.gmatch(res, "%S+") do
|
||||
table.insert(targets, target)
|
||||
end
|
||||
end
|
||||
|
||||
vim.api.nvim_create_user_command("Just", function(args)
|
||||
local vimCmd = "TermExec cmd=\"just"
|
||||
if (args["args"]) then
|
||||
vimCmd = vimCmd .. " " .. args["args"]
|
||||
end
|
||||
vimCmd = vimCmd .. "\""
|
||||
vim.cmd(vimCmd)
|
||||
end, {
|
||||
nargs = "*",
|
||||
["complete"] = function()
|
||||
return get_just_targets()
|
||||
end
|
||||
})
|
||||
|
||||
vim.api.nvim_create_user_command("Justt", function()
|
||||
local targets = get_makefile_targets()
|
||||
pickers.new({}, {
|
||||
prompt_title = "Run just target",
|
||||
finder = finders.new_table {
|
||||
results = targets
|
||||
},
|
||||
sorter = conf.generic_sorter({}),
|
||||
attach_mappings = function(prompt_bufnr, map)
|
||||
actions.select_default:replace(function()
|
||||
actions.close(prompt_bufnr)
|
||||
local selection = action_state.get_selected_entry()
|
||||
selection = selection[1]
|
||||
vim.cmd(":Just " .. selection)
|
||||
end)
|
||||
return true
|
||||
end
|
||||
}):find()
|
||||
end, {})
|
||||
|
||||
|
||||
vim.api.nvim_create_autocmd('TextYankPost', {
|
||||
desc = 'Highlight when yanking (copying) text',
|
||||
group = vim.api.nvim_create_augroup('HightlightYank', { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
4
lua/config/init.lua
Executable file
4
lua/config/init.lua
Executable file
|
@ -0,0 +1,4 @@
|
|||
require("config.pmstrap")
|
||||
require("config.sets")
|
||||
require("config.keymap")
|
||||
require("config.commands")
|
240
lua/config/keymap.lua
Executable file
240
lua/config/keymap.lua
Executable file
|
@ -0,0 +1,240 @@
|
|||
-- local wk = require("which-key")
|
||||
--
|
||||
-- local keys = {
|
||||
-- e = {
|
||||
-- name = "Toggle",
|
||||
-- e = {"<cmd>NeoTreeFloatToggle<CR>", "NeoTree"},
|
||||
-- w = {vim.cmd.Ex, "netrw"},
|
||||
-- s = {"<cmd>NeoTreeShowToggle<CR>", "neotree sidebar"},
|
||||
-- g = {"<cmd>NeoTreeFloatToggle git_status<CR>", "Git Status"},
|
||||
-- -- b = {"<cmd>NeoTreeFloatToggle buffers<CR>", "Buffers"},
|
||||
-- c = {"<cmd>NeoTreeClose<CR>" , "Close"},
|
||||
-- u = {vim.cmd.UndotreeToggle, "UndoTree"},
|
||||
-- },
|
||||
-- c = {
|
||||
-- name = "LSP",
|
||||
-- f = {function () vim.lsp.buf.format() end, "Format"},
|
||||
-- w = {function () vim.lsp.buf.workspace_symbol("") end, "workspace symbol"},
|
||||
-- d = {function () vim.diagnostic.open_float() end, "diagnostic"},
|
||||
-- a = {function () vim.lsp.buf.code_action() end, "code actions"},
|
||||
-- R = {function () vim.lsp.buf.references() end, "references"},
|
||||
-- r = {function () vim.lsp.buf.rename() end, "rename"},
|
||||
-- h = {function () vim.lsp.buf.hover() end, "Hover"},
|
||||
-- t = {function () vim.lsp.buf.type_definition() end,"Type Definition"},
|
||||
-- s = {"<cmd>Navbuddy<cr>", "Navbuddy"},
|
||||
-- S = {require("telescope.builtin").lsp_document_symbols, "Document Symbols"},
|
||||
-- l = {
|
||||
-- name = "LSP",
|
||||
-- k = {"<cmd>LspStop<cr>", "Stop"},
|
||||
-- s = {"<cmd>LspStart<cr>", "Start"},
|
||||
-- r = {"<cmd>LspRestart<cr>", "Restart"},
|
||||
-- },
|
||||
-- },
|
||||
-- b = {
|
||||
-- name = "Buffer",
|
||||
-- h = {vim.cmd.bprevious, "Previous"},
|
||||
-- l = {vim.cmd.bnext, "Next"},
|
||||
-- H = {vim.cmd.bfirst, "First"},
|
||||
-- L = {vim.cmd.blast, "Last"},
|
||||
-- b = {require("telescope.builtin").buffers, "Picker"},
|
||||
-- c = {"<cmd>:bp | sp | bn | bd<cr>", "Close"},
|
||||
-- C = {"<cmd>:bp | sp | bn | bd!<cr>", "Close Force"},
|
||||
-- d = {function() vim.cmd("bd") end, "Delete buffer"},
|
||||
-- D = {function() vim.cmd("bd!") end, "Delete buffer Force"},
|
||||
-- o = {function() vim.cmd("BDelete other") end, "Delete other buffers"},
|
||||
-- m = {function() vim.cmd("BDelete select") end, "Select buffer to delete"},
|
||||
-- },
|
||||
-- f = {
|
||||
-- name = "Telescope & fzf",
|
||||
-- c = {require("telescope.builtin").colorscheme, "Find Colorscheme"},
|
||||
-- d = {require("telescope.builtin").diagnostics, "Find Diagnostics"},
|
||||
-- w = {require("telescope.builtin").grep_string, "Find current Word"},
|
||||
-- f = {require("telescope.builtin").find_files, "telescope find files"},
|
||||
-- g = {require("telescope.builtin").live_grep, "live grep"},
|
||||
-- b = {require("telescope.builtin").buffers, "buffers"},
|
||||
-- h = {require("telescope.builtin").help_tags, "help tags"},
|
||||
-- s = {function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, "grep search through files"},
|
||||
-- m = {"<cmd>Maket<cr>", "Make"},
|
||||
-- },
|
||||
-- s = {
|
||||
-- name = "Settings",
|
||||
-- c = {function ()
|
||||
-- vim.opt.scrolloff = 100
|
||||
-- end, "Always center cursor"},
|
||||
-- C = {function ()
|
||||
-- vim.opt.scrolloff = 8
|
||||
-- end, "Disable Cursor center"},
|
||||
-- f = {function ()
|
||||
-- vim.opt.nu = true
|
||||
-- vim.opt.relativenumber = true
|
||||
-- end, "Fix number and relative numbers"},
|
||||
-- },
|
||||
-- h = {
|
||||
-- name = "Hop",
|
||||
-- w = {"<cmd>HopWord<cr>", "Word"},
|
||||
-- a = {"<cmd>HopAnywhere<cr>", "Anywhere"},
|
||||
-- l = {"<cmd>HopLine<cr>", "Line"},
|
||||
-- p = {"<cmd>HopPattern<cr>", "Pattern"},
|
||||
-- c = {"<cmd>HopChar1<cr>", "Char1"},
|
||||
-- x = {"<cmd>HopChar2<cr>", "Char2"},
|
||||
-- h = {vim.cmd.HopChar2, "Hop"},
|
||||
-- },
|
||||
-- d = {
|
||||
-- name = "Debug",
|
||||
-- b = {function () require("dap").toggle_breakpoint() end, "toggle breakpoint"},
|
||||
-- c = {function () require("dap").continue() end, "launch or continue execution"},
|
||||
-- s = {function () require("dap").step_into() end, "step into"},
|
||||
-- o = {function () require("dap").step_over() end, "step over"},
|
||||
-- r = {function () require("dap").repl.open() end, "open repl"},
|
||||
-- w = {"<cmd>DapUIFloat<cr>", "DapUI"},
|
||||
-- },
|
||||
-- w = {
|
||||
-- name = "workspace",
|
||||
-- a = {vim.lsp.buf.add_workspace_folder, "add folder"},
|
||||
-- r = {vim.lsp.buf.remove_workspace_folder, "remove folder"},
|
||||
-- l = {function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, "list folders"},
|
||||
-- },
|
||||
-- q = {
|
||||
-- name = "Quick nav",
|
||||
-- q = {require("harpoon.ui").toggle_quick_menu, "Menu"},
|
||||
-- a = {function () require("harpoon"):list():append() end, "Add file"},
|
||||
-- r = {function () require("harpoon"):list():remove() end, "Remove File"},
|
||||
-- },
|
||||
--
|
||||
-- }
|
||||
--
|
||||
-- wk.register(keys, {prefix = "<leader>"})
|
||||
-- wk.register(keys, {prefix = "<C-Space>"})
|
||||
-- wk.register(keys, {prefix = "<C-Space>", mode = "i"})
|
||||
-- wk.register(keys, {prefix = "<C-Space>", mode = "v"})
|
||||
|
||||
local keys = {
|
||||
{ "bC", "<cmd>:bp | sp | bn | bd!<cr>", desc = "Close Force" },
|
||||
{ "bD", function() vim.cmd("bd!") end, desc = "Delete buffer Force" },
|
||||
{ "bH", vim.cmd.bfirst, desc = "First" },
|
||||
{ "bL", vim.cmd.blast, desc = "Last" },
|
||||
{ "bb", require("telescope.builtin").buffers, desc = "Picker" },
|
||||
{ "bc", "<cmd>:bp | sp | bn | bd<cr>", desc = "Close" },
|
||||
{ "bd", vim.cmd.bd, desc = "Delete buffer" },
|
||||
{ "bh", vim.cmd.bprevious, desc = "Previous" },
|
||||
{ "bl", vim.cmd.bnext, desc = "Next" },
|
||||
{ "bm", function() vim.cmd("BDelete select") end, desc = "Select buffer to delete" },
|
||||
{ "bo", function() vim.cmd("BDelete other") end, desc = "Delete other buffers" },
|
||||
|
||||
{ "cR", vim.lsp.buf.references, desc = "references" },
|
||||
{ "cS", require("telescope.builtin").lsp_document_symbols, desc = "Document Symbols" },
|
||||
{ "ca", vim.lsp.buf.code_action, desc = "code actions" },
|
||||
{ "cd", vim.diagnostic.open_float, desc = "diagnostic" },
|
||||
{ "cf", vim.lsp.buf.format, desc = "Format" },
|
||||
{ "ch", vim.lsp.buf.hover, desc = "Hover" },
|
||||
|
||||
{ "clk", "<cmd>LspStop<cr>", desc = "Stop" },
|
||||
{ "clr", "<cmd>LspRestart<cr>", desc = "Restart" },
|
||||
{ "cls", "<cmd>LspStart<cr>", desc = "Start" },
|
||||
{ "cr", vim.lsp.buf.rename, desc = "rename" },
|
||||
{ "cs", "<cmd>Navbuddy<cr>", desc = "Navbuddy" },
|
||||
{ "ct", vim.lsp.buf.type_definition, desc = "Type Definition" },
|
||||
{ "cw", function() vim.lsp.buf.workspace_symbol("") end, desc = "workspace symbol" },
|
||||
|
||||
{ "db", require("dap").toggle_breakpoint, desc = "toggle breakpoint" },
|
||||
{ "dc", require("dap").continue, desc = "launch or continue execution" },
|
||||
{ "do", require("dap").step_over, desc = "step over" },
|
||||
{ "dr", require("dap").repl.open, desc = "open repl" },
|
||||
{ "ds", require("dap").step_into, desc = "step into" },
|
||||
{ "dw", "<cmd>DapUIFloat<cr>", desc = "DapUI" },
|
||||
|
||||
{ "ec", "<cmd>NeoTreeClose<CR>", desc = "Close" },
|
||||
{ "ee", "<cmd>NeoTreeFloatToggle<CR>", desc = "NeoTree" },
|
||||
{ "eg", "<cmd>NeoTreeFloatToggle git_status<CR>", desc = "Git Status" },
|
||||
{ "es", "<cmd>NeoTreeShowToggle<CR>", desc = "neotree sidebar" },
|
||||
{ "eu", vim.cmd.UndotreeToggle, desc = "UndoTree" },
|
||||
{ "ew", vim.cmd.Ex, desc = "netrw" },
|
||||
|
||||
{ "fb", require("telescope.builtin").buffers, desc = "buffers" },
|
||||
{ "fc", require("telescope.builtin").colorscheme, desc = "Find Colorscheme" },
|
||||
{ "fd", require("telescope.builtin").diagnostics, desc = "Find Diagnostics" },
|
||||
{ "ff", require("telescope.builtin").find_files, desc = "telescope find files" },
|
||||
{ "fg", require("telescope.builtin").live_grep, desc = "live grep" },
|
||||
{ "fh", require("telescope.builtin").help_tags, desc = "help tags" },
|
||||
{ "fm", "<cmd>Maket<cr>", desc = "Make"},
|
||||
{ "fs", function () require("telescope.builtin").grep_string({ search = vim.fn.input("Grep > ")}); end, desc = "grep search through files" },
|
||||
{ "fw", require("telescope.builtin").grep_string, desc = "Find current Word" },
|
||||
|
||||
{ "ha", "<cmd>HopAnywhere<cr>", desc = "Anywhere" },
|
||||
{ "hc", "<cmd>HopChar1<cr>", desc = "Char1" },
|
||||
{ "hh", vim.cmd.HopChar2, desc = "Hop" },
|
||||
{ "hl", "<cmd>HopLine<cr>", desc = "Line" },
|
||||
{ "hp", "<cmd>HopPattern<cr>", desc = "Pattern" },
|
||||
{ "hw", "<cmd>HopWord<cr>", desc = "Word" },
|
||||
{ "hx", "<cmd>HopChar2<cr>", desc = "Char2" },
|
||||
|
||||
{ "qa", function () require("harpoon"):list():append() end, desc = "Add file" },
|
||||
{ "qq", require("harpoon.ui").toggle_quick_menu, desc = "Menu" },
|
||||
{ "qr", function() require("harpoon"):list():remove() end, desc = "Remove File" },
|
||||
|
||||
{ "sC", function() vim.opt.scrolloff = 8 end, desc = "Disable Cursor center" },
|
||||
{ "sc", function() vim.opt.scrolloff = 100 end, desc = "Always center cursor" },
|
||||
{ "sf", function() vim.opt.nu = true; vim.opt.relativenumber = true end, desc = "Fix number and relative numbers" },
|
||||
|
||||
{ "wa", vim.lsp.buf.add_workspace_folder, desc = "add folder" },
|
||||
{ "wl", function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, desc = "list folders" },
|
||||
{ "wr", vim.lsp.buf.remove_workspace_folder, desc = "remove folder" },
|
||||
}
|
||||
|
||||
for i, key in ipairs(keys) do
|
||||
vim.keymap.set("n", "<leader>" .. key[1], key[2], {desc = key["desc"]})
|
||||
vim.keymap.set("n", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
||||
vim.keymap.set("i", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
||||
vim.keymap.set("v", "<C-Space>" .. key[1], key[2], {desc = key["desc"]})
|
||||
end
|
||||
|
||||
-- LSP
|
||||
vim.keymap.set("n", "gd", function() vim.lsp.buf.definition() end, {desc = "goto definition"})
|
||||
vim.keymap.set("n", "K", function() vim.lsp.buf.hover() end, {})
|
||||
vim.keymap.set("n", "[d", function() vim.diagnostic.goto_next() end, {desc = "goto next"})
|
||||
vim.keymap.set("n", "]d", function() vim.diagnostic.goto_prev() end, {desc = "goto prev"})
|
||||
vim.keymap.set("i", "<C-s>", function() vim.lsp.buf.signature_help() end)
|
||||
vim.keymap.set("i", "<C-h>", function () vim.lsp.buf.hover() end, {})
|
||||
|
||||
-- term
|
||||
vim.keymap.set("n", "<C-\\>", vim.cmd.ToggleTerm)
|
||||
vim.keymap.set("t", "<C-\\>", vim.cmd.ToggleTerm)
|
||||
vim.keymap.set("v", "<C-\\>", vim.cmd.ToggleTerm)
|
||||
|
||||
-- center
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
-- visual move
|
||||
vim.keymap.set("x", "K", ":move '<-2<CR>gv=gv")
|
||||
vim.keymap.set("x", "J", ":move '>+1<CR>gv=gv")
|
||||
|
||||
-- me lazy
|
||||
vim.keymap.set("i", "<C-c>", "<Esc>")
|
||||
|
||||
|
||||
-- non char keybinds
|
||||
vim.keymap.set("n", "<leader>f/", function ()
|
||||
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
end, {desc = "fuzzy find"})
|
||||
vim.keymap.set('n', '<leader>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
||||
|
||||
vim.keymap.set("i", "<C-Space>f/", function ()
|
||||
require("telescope.builtin").current_buffer_fuzzy_find(require("telescope.themes").get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
end, {desc = "fuzzy find"})
|
||||
vim.keymap.set('i', '<C-Space>f?', require('telescope.builtin').oldfiles, { desc = 'Find recently opened files' })
|
||||
|
||||
for i = 9, 1, -1 do
|
||||
vim.keymap.set("n", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
||||
vim.keymap.set("i", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
||||
vim.keymap.set("v", "<M-" .. i .. ">", function() require("harpoon"):list():select(i) end, {desc = ""})
|
||||
end
|
||||
|
358
lua/config/packages.lua
Executable file
358
lua/config/packages.lua
Executable file
|
@ -0,0 +1,358 @@
|
|||
return {
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
"j-hui/fidget.nvim",
|
||||
"folke/neodev.nvim",
|
||||
},
|
||||
},
|
||||
{
|
||||
"ray-x/lsp_signature.nvim",
|
||||
event = "BufRead",
|
||||
config = function() require "lsp_signature".setup() end,
|
||||
},
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = {
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
"L3MON4D3/LuaSnip",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"hrsh7th/cmp-nvim-lua",
|
||||
"hrsh7th/cmp-buffer",
|
||||
"hrsh7th/cmp-path",
|
||||
"rafamadriz/friendly-snippets"
|
||||
},
|
||||
},
|
||||
{
|
||||
"jay-babu/mason-null-ls.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"nvimtools/none-ls.nvim",
|
||||
},
|
||||
config = function()
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvimtools/none-ls.nvim"
|
||||
},
|
||||
{
|
||||
"OXY2DEV/markview.nvim",
|
||||
lazy = false,
|
||||
},
|
||||
|
||||
-- syntax highlighting
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate"
|
||||
},
|
||||
'nvim-treesitter/nvim-treesitter-context',
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter-textobjects",
|
||||
dependencies = { "nvim-treesitter" },
|
||||
},
|
||||
|
||||
-- fzf Telescope
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
branch = "0.1.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim"
|
||||
}
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-fzf-native.nvim",
|
||||
build = "make",
|
||||
},
|
||||
|
||||
-- debugging
|
||||
"mfussenegger/nvim-dap",
|
||||
"jay-babu/mason-nvim-dap.nvim",
|
||||
{
|
||||
"rcarriga/nvim-dap-ui",
|
||||
tag = "v4.0.0",
|
||||
dependencies = {
|
||||
"mfussenegger/nvim-dap",
|
||||
"nvim-neotest/nvim-nio"
|
||||
},
|
||||
},
|
||||
{ "theHamsta/nvim-dap-virtual-text", opts = {} },
|
||||
"nvim-telescope/telescope-dap.nvim",
|
||||
|
||||
-- git
|
||||
"lewis6991/gitsigns.nvim",
|
||||
|
||||
"echasnovski/mini.nvim",
|
||||
{ 'kazhala/close-buffers.nvim', config = true },
|
||||
"editorconfig/editorconfig-vim",
|
||||
{ "nacro90/numb.nvim", opts = {} },
|
||||
{ "kylechui/nvim-surround", opts = {} },
|
||||
{
|
||||
"phaazon/hop.nvim",
|
||||
event = "BufRead",
|
||||
opts = {}
|
||||
},
|
||||
{
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
init = function()
|
||||
local harpoon = require("harpoon")
|
||||
harpoon:setup()
|
||||
end
|
||||
},
|
||||
|
||||
-- misc editing
|
||||
"lambdalisue/suda.vim",
|
||||
"tpope/vim-sleuth",
|
||||
"mbbill/undotree",
|
||||
{ "windwp/nvim-autopairs", opts = {} },
|
||||
{
|
||||
"mg979/vim-visual-multi",
|
||||
config = function()
|
||||
vim.cmd([[
|
||||
let g:VM_leader='<Space>m'
|
||||
let g:VM_maps['Find Under'] = '<C-m>'
|
||||
]])
|
||||
end
|
||||
},
|
||||
|
||||
{
|
||||
"windwp/nvim-ts-autotag",
|
||||
opts = {
|
||||
filetypes = { 'html', 'javascript', 'typescript', 'javascriptreact', 'typescriptreact', 'svelte', 'vue', 'tsx', 'jsx', 'rescript', 'xml', 'php', 'markdown', 'astro', 'glimmer', 'handlebars', 'hbs', "rust" },
|
||||
},
|
||||
},
|
||||
{
|
||||
"kevinhwang91/nvim-bqf",
|
||||
event = { "BufRead", "BufNew" },
|
||||
opts = {
|
||||
auto_enable = true,
|
||||
preview = {
|
||||
win_height = 12,
|
||||
win_vheight = 12,
|
||||
delay_syntax = 80,
|
||||
border_chars = { "┃", "┃", "━", "━", "┏", "┓", "┗", "┛", "█" },
|
||||
},
|
||||
func_map = {
|
||||
vsplit = "",
|
||||
ptogglemode = "z,",
|
||||
stoggleup = "",
|
||||
},
|
||||
filter = {
|
||||
fzf = {
|
||||
action_for = { ["ctrl-s"] = "split" },
|
||||
extra_opts = { "--bind", "ctrl-o:toggle-all", "--prompt", "> " },
|
||||
},
|
||||
},
|
||||
}
|
||||
},
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
{
|
||||
"lukas-reineke/indent-blankline.nvim",
|
||||
init = function()
|
||||
require("ibl").setup({
|
||||
indent = {
|
||||
tab_char = "│",
|
||||
char = "┊",
|
||||
},
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
"folke/which-key.nvim",
|
||||
config = function()
|
||||
local wk = require("which-key")
|
||||
wk.setup {
|
||||
-- popup_mappings = {
|
||||
-- scroll_down = "<C-j>",
|
||||
-- scroll_up = "<C-k>",
|
||||
-- },
|
||||
-- window = {
|
||||
-- border = "single",
|
||||
-- },
|
||||
}
|
||||
end
|
||||
},
|
||||
"rebelot/heirline.nvim",
|
||||
{
|
||||
"akinsho/toggleterm.nvim",
|
||||
version = "*",
|
||||
opts = {
|
||||
direction = "float",
|
||||
float_opts = {
|
||||
border = "curved"
|
||||
},
|
||||
}
|
||||
},
|
||||
{
|
||||
"karb94/neoscroll.nvim",
|
||||
event = "WinScrolled",
|
||||
opts = {
|
||||
mappings = { "<C-u>", "<C-d>", "<C-b>", "<C-f>", "<C-y>", "<C-e>", "zt", "zz", "zb" },
|
||||
hide_cursor = true,
|
||||
stop_eof = true,
|
||||
use_local_scrolloff = false,
|
||||
respect_scrolloff = false,
|
||||
cursor_scrolls_alone = true,
|
||||
easing_function = nil,
|
||||
pre_hook = nil,
|
||||
post_hook = nil,
|
||||
}
|
||||
},
|
||||
{
|
||||
"folke/todo-comments.nvim",
|
||||
event = "BufRead",
|
||||
},
|
||||
{ 'numToStr/Comment.nvim', opts = {} },
|
||||
{
|
||||
"SmiteshP/nvim-navbuddy",
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
"SmiteshP/nvim-navic",
|
||||
"MunifTanjim/nui.nvim",
|
||||
"numToStr/Comment.nvim",
|
||||
"nvim-telescope/telescope.nvim"
|
||||
},
|
||||
opts = {
|
||||
window = { border = "rounded", },
|
||||
}
|
||||
},
|
||||
{
|
||||
"gelguy/wilder.nvim",
|
||||
config = function()
|
||||
-- local wilder = require("wilder")
|
||||
-- wilder.setup({
|
||||
-- modes = {":", "/", "?"},
|
||||
-- })
|
||||
-- wilder.set_option("renderer", wilder.popupmenu_renderer({
|
||||
-- pumblend = 50,
|
||||
-- }))
|
||||
vim.cmd('call wilder#setup({"modes": [":", "/", "?"]})')
|
||||
vim.cmd(
|
||||
'call wilder#set_option("renderer", wilder#popupmenu_renderer({"highlighter": wilder#basic_highlighter(), "left": [ " ", wilder#popupmenu_devicons(), ], "right": [ " ", wilder#popupmenu_scrollbar(), ], "pumblend": 20}))')
|
||||
vim.cmd(
|
||||
'call wilder#set_option("renderer", wilder#popupmenu_renderer(wilder#popupmenu_border_theme({"highlighter": wilder#basic_highlighter(), "min_width": "100%", "min_height": "50%", "reverse": 0, "highlights": {"border": "Normal",},"border": "rounded"})))')
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
branch = "v2.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
},
|
||||
|
||||
-- lenguage specific
|
||||
-- scala
|
||||
{
|
||||
"scalameta/nvim-metals",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
},
|
||||
ft = { "scala", "sbt", "java" },
|
||||
opts = function()
|
||||
local metals_config = require("metals").bare_config()
|
||||
metals_config.on_attach = function(client, bufnr)
|
||||
-- your on_attach function
|
||||
end
|
||||
|
||||
return metals_config
|
||||
end,
|
||||
config = function(self, metals_config)
|
||||
local nvim_metals_group = vim.api.nvim_create_augroup("nvim-metals", { clear = true })
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = self.ft,
|
||||
callback = function()
|
||||
require("metals").initialize_or_attach(metals_config)
|
||||
end,
|
||||
group = nvim_metals_group,
|
||||
})
|
||||
end
|
||||
},
|
||||
|
||||
-- org
|
||||
{
|
||||
"nvim-orgmode/orgmode",
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
"hrsh7th/nvim-cmp",
|
||||
},
|
||||
config = function()
|
||||
require("orgmode").setup({})
|
||||
require('nvim-treesitter.configs').setup({
|
||||
ensure_installed = 'all',
|
||||
ignore_install = { 'org' },
|
||||
})
|
||||
end
|
||||
},
|
||||
{
|
||||
"akinsho/org-bullets.nvim"
|
||||
},
|
||||
-- f#
|
||||
{ "ionide/Ionide-vim" },
|
||||
-- go
|
||||
{ "joerdav/templ.vim" },
|
||||
{
|
||||
"ray-x/go.nvim",
|
||||
dependencies = { -- optional packages
|
||||
"ray-x/guihua.lua",
|
||||
"neovim/nvim-lspconfig",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
},
|
||||
config = function()
|
||||
require("go").setup()
|
||||
end,
|
||||
event = { "CmdlineEnter" },
|
||||
ft = { "go", 'gomod' },
|
||||
build = ':lua require("go.install").update_all_sync()' -- if you need to install/update all binaries
|
||||
},
|
||||
-- csv
|
||||
'cameron-wags/rainbow_csv.nvim',
|
||||
|
||||
-- rust
|
||||
{
|
||||
"saecki/crates.nvim",
|
||||
tag = "v0.3.0",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim"
|
||||
},
|
||||
},
|
||||
{
|
||||
'mrcjkb/rustaceanvim',
|
||||
version = '^5',
|
||||
lazy = false,
|
||||
},
|
||||
-- diff
|
||||
{
|
||||
"julienvincent/hunk.nvim",
|
||||
cmd = { "DiffEditor" },
|
||||
config = function()
|
||||
require("hunk").setup()
|
||||
end,
|
||||
},
|
||||
-- slint
|
||||
{ "slint-ui/vim-slint" },
|
||||
|
||||
-- zig
|
||||
"ziglang/zig.vim",
|
||||
|
||||
-- glsl
|
||||
"tikhomirov/vim-glsl",
|
||||
|
||||
-- java
|
||||
"mfussenegger/nvim-jdtls",
|
||||
|
||||
-- latex
|
||||
"lervag/vimtex",
|
||||
"let-def/texpresso.vim",
|
||||
|
||||
-- themes
|
||||
"xiyaowong/transparent.nvim",
|
||||
"savq/melange-nvim",
|
||||
}
|
25
lua/config/pmstrap.lua
Executable file
25
lua/config/pmstrap.lua
Executable file
|
@ -0,0 +1,25 @@
|
|||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
vim.fn.system({
|
||||
"git",
|
||||
"clone",
|
||||
"--filter=blob:none",
|
||||
"--branch=stable",
|
||||
"https://github.com/folke/lazy.nvim.git",
|
||||
lazypath
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
|
||||
-- Setup lazy.nvim
|
||||
require("lazy").setup("config.packages", {
|
||||
defaults = {
|
||||
lazy = false,
|
||||
},
|
||||
--install = { colorscheme = { "melange" } },
|
||||
})
|
57
lua/config/sets.lua
Executable file
57
lua/config/sets.lua
Executable file
|
@ -0,0 +1,57 @@
|
|||
-- numbers
|
||||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
-- tab && indent
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 0
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.smartindent = true
|
||||
vim.o.breakindent = true
|
||||
vim.o.expandtab = true
|
||||
|
||||
-- lines
|
||||
vim.opt.wrap = true
|
||||
vim.opt.smarttab = true
|
||||
|
||||
vim.opt.list = true
|
||||
vim.opt.listchars:append "eol:↴"
|
||||
|
||||
-- undo
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.local/share/nvim/undofile"
|
||||
vim.opt.undofile = true
|
||||
|
||||
-- search
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.o.ignorecase = true
|
||||
vim.o.smartcase = true
|
||||
|
||||
-- colors
|
||||
vim.opt.termguicolors = true
|
||||
vim.cmd.colorscheme "melange"
|
||||
|
||||
vim.opt.cursorline = true
|
||||
|
||||
-- misc
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.sidescrolloff = 8
|
||||
vim.opt.signcolumn = "yes"
|
||||
vim.opt.isfname:append("@-@")
|
||||
vim.opt.updatetime = 50
|
||||
vim.opt.timeoutlen = 300
|
||||
vim.o.mouse = "a"
|
||||
vim.opt.showmode = false
|
||||
|
||||
vim.g.have_nerd_font = true
|
||||
|
||||
vim.o.completeopt = "menuone,noselect"
|
||||
|
||||
-- vim.filetype.add({extension = {leaf = 'html'}})
|
||||
|
||||
|
||||
vim.wo.foldmethod = "manual"
|
||||
vim.opt.foldcolumn = "1"
|
Loading…
Add table
Add a link
Reference in a new issue