Initial new commit

This commit is contained in:
DavidOnTop 2025-05-08 19:00:25 +02:00
commit c46ad3d427
Signed by: DavidOnTop
GPG key ID: 8D3E9A75E3E13D89
22 changed files with 2401 additions and 0 deletions

168
lua/config/commands.lua Executable file
View 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
View file

@ -0,0 +1,4 @@
require("config.pmstrap")
require("config.sets")
require("config.keymap")
require("config.commands")

240
lua/config/keymap.lua Executable file
View 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
View 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
View 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
View 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"