diff options
Diffstat (limited to 'mirenn/home/files/dotfiles/.config/nvim/lua/plugins')
23 files changed, 1081 insertions, 0 deletions
diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/comment.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/comment.lua new file mode 100644 index 0000000..559fd3c --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/comment.lua @@ -0,0 +1,6 @@ +return { + "numToStr/Comment.nvim", + lazy = true, + event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + opts = {} +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/gitsigns.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..2df9a2e --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/gitsigns.lua @@ -0,0 +1,57 @@ +local opts = { + signs = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signs_staged = { + add = { text = '┃' }, + change = { text = '┃' }, + delete = { text = '_' }, + topdelete = { text = '‾' }, + changedelete = { text = '~' }, + untracked = { text = '┆' }, + }, + signs_staged_enable = true, + signcolumn = true, -- Toggle with `:Gitsigns toggle_signs` + numhl = false, -- Toggle with `:Gitsigns toggle_numhl` + linehl = false, -- Toggle with `:Gitsigns toggle_linehl` + word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff` + watch_gitdir = { + follow_files = true + }, + auto_attach = true, + attach_to_untracked = false, + current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame` + current_line_blame_opts = { + virt_text = true, + virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align' + delay = 1000, + ignore_whitespace = false, + virt_text_priority = 100, + use_focus = true, + }, + current_line_blame_formatter = '<author>, <author_time:%R> - <summary>', + sign_priority = 6, + update_debounce = 100, + status_formatter = nil, -- Use default + max_file_length = 40000, -- Disable if file is longer than this (in lines) + preview_config = { + -- Options passed to nvim_open_win + style = 'minimal', + relative = 'cursor', + row = 0, + col = 1 + }, +} + +return { + "lewis6991/gitsigns.nvim", + lazy = true, + event = "VeryLazy", + -- event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + opts = opts, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/indent-blankline.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/indent-blankline.lua new file mode 100644 index 0000000..af9cff8 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/indent-blankline.lua @@ -0,0 +1,16 @@ +return { + "lukas-reineke/indent-blankline.nvim", + lazy = true, + event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + main = "ibl", + ---@module "ibl" + ---@type ibl.config + opts = { + exclude = { + filetypes = { + "dashboard", + "norg" + }, + }, + }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazy.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazy.lua new file mode 100644 index 0000000..d48db7e --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazy.lua @@ -0,0 +1,12 @@ +local init = function() + local keymap = vim.keymap + keymap.set("n", "<Space>p", ":Lazy home<Enter>", + { noremap = true, silent = true, desc = "Plugin Manager (Lazy)" }) +end + + +return { + "folke/lazy.nvim", + lazy = false, + init = init +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazydev.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazydev.lua new file mode 100644 index 0000000..704d963 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lazydev.lua @@ -0,0 +1,5 @@ +return { + "folke/lazydev.nvim", + ft = "lua", -- only load on lua files + opts = {} +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lspsaga.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lspsaga.lua new file mode 100644 index 0000000..86e949f --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lspsaga.lua @@ -0,0 +1,34 @@ +local config = function() + vim.diagnostic.config({ + severity_sort = true, + virtual_lines = true, + virtual_text = false + }) + require("lspsaga").setup({ + ui = { + code_action = "", + }, + outline = { + keys = { + toggle_or_jump = "<Enter>" + } + }, + finder = { + keys = { + toggle_or_open = "<Enter>", + shuttle = "<Tab>", + } + }, + }) +end + +return { + "nvimdev/lspsaga.nvim", + lazy = true, + event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + config = config, + dependencies = { + "nvim-treesitter/nvim-treesitter", -- optional + "nvim-tree/nvim-web-devicons", -- optional + }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lualine.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lualine.lua new file mode 100644 index 0000000..495822e --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/lualine.lua @@ -0,0 +1,32 @@ +local opts = { + options = { + theme = "auto", + globalstatus = true, + disabled_filetypes = { "toggleterm", "lazy", "oil", "dashboard", "TelescopePrompt", "oil_preview", "ministarter" } + }, + sections = { + lualine_a = { "mode" }, + lualine_b = { "branch", "diff", + { + "diagnostics", + sections = { "error", "warn", "info", "hint" }, + symbols = { error = " ", warn = " ", info = " ", hint = " " }, + } + }, + lualine_c = { + { + require("lazy.status").updates, + cond = require("lazy.status").has_updates, + color = { fg = "#ff9e64" }, + }, + }, + }, +} + +return { + "nvim-lualine/lualine.nvim", + lazy = true, + event = "VeryLazy", + -- event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + opts = opts, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/mini-starter.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/mini-starter.lua new file mode 100644 index 0000000..67aae04 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/mini-starter.lua @@ -0,0 +1,227 @@ +Headers = { + [[ + ███╗ ██╗ ███████╗ ██████╗ ██╗ ██╗ ██╗ ███╗ ███╗ + ████╗ ██║ ██╔════╝██╔═══██╗ ██║ ██║ ██║ ████╗ ████║ + ██╔██╗ ██║ █████╗ ██║ ██║ ██║ ██║ ██║ ██╔████╔██║ + ██║╚██╗██║ ██╔══╝ ██║ ██║ ╚██╗ ██╔╝ ██║ ██║╚██╔╝██║ + ██║ ╚████║ ███████╗╚██████╔╝ ╚████╔╝ ██║ ██║ ╚═╝ ██║ + ╚═╝ ╚═══╝ ╚══════╝ ╚═════╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝ + ]], + [[ + ███▄ █ ▓█████ ▒█████ ██▒ █▓ ██▓ ███▄ ▄███▓ + ██ ▀█ █ ▓█ ▀ ▒██▒ ██▒▓██░ █▒▓██▒▓██▒▀█▀ ██▒ + ▓██ ▀█ ██▒▒███ ▒██░ ██▒ ▓██ █▒░▒██▒▓██ ▓██░ + ▓██▒ ▐▌██▒▒▓█ ▄ ▒██ ██░ ▒██ █░░░██░▒██ ▒██ + ▒██░ ▓██░░▒████▒░ ████▓▒░ ▒▀█░ ░██░▒██▒ ░██▒ + ░ ▒░ ▒ ▒ ░░ ▒░ ░░ ▒░▒░▒░ ░ ▐░ ░▓ ░ ▒░ ░ ░ + ░ ░░ ░ ▒░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ▒ ░░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ▒ ░░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ + ░ + ]], + [[ + ██████ █████ █████ █████ ███ + ░░██████ ░░███ ░░███ ░░███ ░░░ + ░███░███ ░███ ██████ ██████ ░███ ░███ ████ █████████████ + ░███░░███░███ ███░░███ ███░░███ ░███ ░███ ░░███ ░░███░░███░░███ + ░███ ░░██████ ░███████ ░███ ░███ ░░███ ███ ░███ ░███ ░███ ░███ + ░███ ░░█████ ░███░░░ ░███ ░███ ░░░█████░ ░███ ░███ ░███ ░███ + █████ ░░█████░░██████ ░░██████ ░░███ █████ █████░███ █████ + ░░░░░ ░░░░░ ░░░░░░ ░░░░░░ ░░░ ░░░░░ ░░░░░ ░░░ ░░░░░ + ]], + [[ + ▐ ▄ ▄▄▄ . ▌ ▐·▪ • ▌ ▄ ·. + •█▌▐█▀▄.▀· ▄█▀▄ ▪█·█▌██ ·██ ▐███▪ + ▐█▐▐▌▐▀▀▪▄▐█▌.▐▌▐█▐█•▐█·▐█ ▌▐▌▐█· + ██▐█▌▐█▄▄▌▐█▌.▐▌ ███ ▐█▌██ ██▌▐█▌ + ▀▀ █▪ ▀▀▀ ▀█▄▀▪. ▀ ▀▀▀▀▀ █▪▀▀▀ + ]], + [[ + __ __ ________ ______ __ __ ______ __ __ + | \ | \ \/ \| \ | \ \ \ / \ + | ▓▓\ | ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓\ ▓▓ | ▓▓\▓▓▓▓▓▓ ▓▓\ / ▓▓ + | ▓▓▓\| ▓▓ ▓▓__ | ▓▓ | ▓▓ ▓▓ | ▓▓ | ▓▓ | ▓▓▓\ / ▓▓▓ + | ▓▓▓▓\ ▓▓ ▓▓ \ | ▓▓ | ▓▓\▓▓\ / ▓▓ | ▓▓ | ▓▓▓▓\ ▓▓▓▓ + | ▓▓\▓▓ ▓▓ ▓▓▓▓▓ | ▓▓ | ▓▓ \▓▓\ ▓▓ | ▓▓ | ▓▓\▓▓ ▓▓ ▓▓ + | ▓▓ \▓▓▓▓ ▓▓_____| ▓▓__/ ▓▓ \▓▓ ▓▓ _| ▓▓_| ▓▓ \▓▓▓| ▓▓ + | ▓▓ \▓▓▓ ▓▓ \\▓▓ ▓▓ \▓▓▓ | ▓▓ \ ▓▓ \▓ | ▓▓ + \▓▓ \▓▓\▓▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓ \▓▓▓▓▓▓\▓▓ \▓▓ + ]], + [[ + ▀███▄ ▀███▀███▀▀▀███ ▄▄█▀▀██▄ ▀████▀ ▀███▀████▀████▄ ▄███▀ + ███▄ █ ██ ▀█▄██▀ ▀██▄ ▀██ ▄█ ██ ████ ████ + █ ███ █ ██ █ ██▀ ▀██ ██▄ ▄█ ██ █ ██ ▄█ ██ + █ ▀██▄ █ ██████ ██ ██ ██▄ █▀ ██ █ █▓ █▀ ██ + █ ▀██▄▓ ██ █ ▄█ ██ ▀▓█ ▓▀ █▓ ▓ █▓▄█▀ ██ + ▓ ▓█▓ █▓ ▄███ ██▀ ▓██▄ █▓ ▓ ▀▓█▀ ██ + ▓ ▀▓▓▓▓ ▓▓ ▓ ▓██ ▓█▓ ▓▓ ▓▀ ▓▓ ▓ ▓▓▓▓▀ ▓▓ + ▓ ▓▓▓ ▓▓ ▓▓█▓▓▓ ▓▓▓ ▓▓▒▒ ▒▓ ▒ ▀▓▓▀ ▓▓ + ▒ ▒ ▒ ▒▓▓▒ ▒▒▒▓▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▓▒ ▒▒ ▒▒▒ ▒ ▒ ▒▒▒ + ]], + [[ + ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ + ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ + ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ + ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ + ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ + ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ + ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ + ⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ + ⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄ + ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ + ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⡟⢀⣀⣤⣾⡿⠃ + ]], + [[ + ,-. _,---._ __ / \ + / ) .-' `./ / \ + ( ( ,' `/ /| + \ `-" \'\ / | + `. , \ \ / | + /`. ,'-`----Y | + ( ; | ' + | ,-. ,-' | / + | | ( | | / + ) | \ `.___________|/ + `--' `--' + ]], + [[ + |\ _,,,---,,_ + ZZZzz /,`.-'`' -. ;-;;,_ + |,4- ) )-,_. ,\ ( `'-' + '---''(_/--' `-'\_) + ]], + [[ + ╭╮╭┬─╮╭─╮┬ ┬┬╭┬╮ + │││├┤ │ │╰┐┌╯││││ + ╯╰╯╰─╯╰─╯ ╰╯ ┴┴ ┴ + ]], +} + +Quotes = { + [[ + I don't care that they stole my idea... I care that they don't have any of their own. + ~ Nikola Tesla + ]], + [[ + Make everything as simple as possible, but not simpler. + ~ Albert Einstein + ]], + [[ + Code never lies, comments sometimes do. + ~ Ron Jeffries + ]], + [[ + Good code is its own best documentation. + ~ Steve McConnell + ]], + [[ + I do not fear computers. I fear the lack of them. + ~ Isaac Asimov + ]], + [[ + If a machine is expected to be infallible, it cannot also be intelligent. + ~ Alan Turing + ]], + [[ + Mathematical reasoning may be regarded. + ~ Alan Turing + ]], + [[ + Anti-social behavior is a trait of intelligence in a world full of conformists. + ~ Nikola Tesla + ]], + [[ + We are very, very small, but we are profoundly capable of very, very big things. + ~ Stephen Hawking + ]], + [[ + Quiet people have the loudest minds. + ~ Stephen Hawking + ]], + [[ + An idiot admires complexity, a genius admires simplicity. + ~ Terry Davis + ]], + [[ + It's hardware that makes a machine fast. It's software that makes a fast machine slow. + ~ Craig Reucassel + ]], + [[ + Computer science is no more about computers than astronomy is about telescopes. + ~ Edsger Dijkstra + ]], + [[ + An algorithm must be seen to be believed. + ~ Donald Knuth + ]], + [[ + In theory there is no difference between theory and practice. + In practice there is. + ~ Yogi Berra + ]], + [[ + If Java had true garbage collection, most programs would delete themselves upon execution. + ~ Robert Sewell + ]], + [[ + If debugging is the process of removing software bugs, + then programming must be the process of putting them in. + ~ Edsger Dijkstra + ]], + [[ + Most of you are familiar with the virtues of a programmer. + There are three, of course: laziness, impatience, and hubris. + ~ Larry Wall + ]], + [[ + The question of whether computers can think is like the question of whether submarines can swim. + ~ Edsger Dijkstra + ]], + [[ + Of course, I'd also suggest that whoever was the genius who thought it was a good idea to read + things ONE F*CKING BYTE AT A TIME with system calls for each byte should be retroactively aborted. + Who the f*ck does idiotic things like that? How did they not die as babies, considering that they + were likely too stupid to find a tit to suck on? + ~ Linus Torvalds + ]] +} + + +math.randomseed(os.time()) + +local header = function() + return Headers[math.random(#Headers)] +end + +local footer = function() + return Quotes[math.random(#Quotes)] +end + + +local config = function() + local starter = require("mini.starter") + vim.keymap.set("n", "<Space>d", starter.open, { desc = "Dashboard" }) + starter.setup({ + autoopen = true, + evaluate_single = false, + items = { + starter.sections.recent_files(5, false, true), + { name = "Plugin Manager", action = "Lazy", section = "Actions" }, + { name = "File Browser", action = "Oil --float", section = "Actions" }, + { name = "Neorg Index", action = "Neorg index", section = "Actions" }, + { name = 'Edit new buffer', action = 'enew', section = 'Actions' }, + { name = 'Quit Neovim', action = 'qall', section = 'Actions' }, + }, + header = header, + footer = footer, + content_hooks = nil, + query_updaters = "abcdefghijklmnopqrstuvwxyz0123456789_-.", + silent = false, + }) +end + +return { + "echasnovski/mini.starter", + lazy = false, + config = config +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neopywal.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neopywal.lua new file mode 100644 index 0000000..7c37dbe --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neopywal.lua @@ -0,0 +1,26 @@ +local init = function() + vim.cmd.colorscheme("neopywal") +end + +local config = function() + require("neopywal").setup({ + plugins = { + treesitter = true + }, + custom_colors = {}, + custom_highlights = {}, + use_palette = { + light = "wallust", + dark = "wallust", + }, + }) +end + +return { + "RedsXDD/neopywal.nvim", + lazy = false, + name = "neopywal", + init = init, + config = config, + priority = 1000, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neorg.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neorg.lua new file mode 100644 index 0000000..b6480b8 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/neorg.lua @@ -0,0 +1,127 @@ +local config = function() + vim.api.nvim_create_autocmd("Filetype", { + pattern = "norg", + callback = function() + -- remap keybinds + vim.keymap.set("n", "<Space>nn", "<Plug>(neorg.dirman.new-note)", { buffer = true }) + vim.keymap.set("n", "<Space>tc", "<cmd>Neorg toc<CR>", { buffer = true }) + + vim.keymap.set("i", "<C-d>", "<Plug>(neorg.promo.demote)", { buffer = true }) + vim.keymap.set("i", "<C-t>", "<Plug>(neorg.promo.promote)", { buffer = true }) + vim.keymap.set("i", "<M-CR>", "<Plug>(neorg.itero.next-iteration)", { buffer = true }) + vim.keymap.set("i", "<M-d>", "<Plug>(neorg.tempus.insert-date.insert-mode)", { buffer = true }) + + vim.keymap.set("n", "<.", "<Plug>(neorg.promo.demote)", { buffer = true }) + vim.keymap.set("n", "<<", "<Plug>(neorg.promo.demote.nested)", { buffer = true }) + vim.keymap.set("n", "<C-Space>", "<Plug>(neorg.qol.todo-items.todo.task-cycle)", + { buffer = true }) + vim.keymap.set("n", "<CR>", "<Plug>(neorg.esupports.hop.hop-link)", { buffer = true }) + vim.keymap.set("n", "<Space>cm", "<Plug>(neorg.looking-glass.magnify-code-block)", + { buffer = true }) + vim.keymap.set("n", "<Space>id", "<Plug>(neorg.tempus.insert-date)", { buffer = true }) + vim.keymap.set("n", "<Space>li", "<Plug>(neorg.pivot.list.invert)", { buffer = true }) + vim.keymap.set("n", "<Space>lt", "<Plug>(neorg.pivot.list.toggle)", { buffer = true }) + vim.keymap.set("n", "<Space>ma", "<Plug>(neorg.qol.todo-items.todo.task-ambiguous)", + { buffer = true }) + vim.keymap.set("n", "<Space>mc", "<Plug>(neorg.qol.todo-items.todo.task-cancelled)", + { buffer = true }) + vim.keymap.set("n", "<Space>md", "<Plug>(neorg.qol.todo-items.todo.task-done)", { buffer = true }) + vim.keymap.set("n", "<Space>mh", "<Plug>(neorg.qol.todo-items.todo.task-on-hold)", + { buffer = true }) + vim.keymap.set("n", "<Space>mi", "<Plug>(neorg.qol.todo-items.todo.task-important)", + { buffer = true }) + vim.keymap.set("n", "<Space>mp", "<Plug>(neorg.qol.todo-items.todo.task-pending)", + { buffer = true }) + vim.keymap.set("n", "<Space>mr", "<Plug>(neorg.qol.todo-items.todo.task-recurring)", + { buffer = true }) + vim.keymap.set("n", "<Space>mu", "<Plug>(neorg.qol.todo-items.todo.task-undone)", + { buffer = true }) + vim.keymap.set("n", "<M-CR>", "<Plug>(neorg.esupports.hop.hop-link.vsplit)", { buffer = true }) + vim.keymap.set("n", "<M-t>", "<Plug>(neorg.esupports.hop.hop-link.tab-drop)", { buffer = true }) + vim.keymap.set("n", ">.", "Plug>(neorg.promo.promote)", { buffer = true }) + vim.keymap.set("n", ">>", "Plug>(neorg.promo.promote.nested)", { buffer = true }) + + vim.keymap.set("v", "<", "<Plug>(neorg.promo.demote.range)", { buffer = true }) + vim.keymap.set("v", ">", "<Plug>(neorg.promo.promote.range)", { buffer = true }) + end, + }) + + require("neorg").setup({ + load = { + ["core.defaults"] = { + config = { + disable = { + "core.esupports.metagen", + "core.journal", + } + } + }, + ["core.keybinds"] = { + config = { + default_keybinds = false + } + }, + ["core.summary"] = {}, + -- ["core.latex.renderer"] = {}, + ["core.export"] = {}, + ["core.dirman"] = { + config = { + default_workspace = "documents", + workspaces = { + documents = "~/Documents/neorg", + physics = "~/Documents/neorg/uni/fisica", + asd = "~/Documents/neorg/uni/algoritmi-strutture-dati", + }, + index = "index.norg" + } + }, + ["core.completion"] = { + config = { + engine = "nvim-cmp" + } + }, + ["core.journal"] = { + config = { + journal_folder = "journal", + workspace = "documents" + } + }, + ["core.esupports.metagen"] = { + config = { + timezone = "implicit-local", + type = "auto" + } + }, + ["core.concealer"] = { + config = { + folds = false, + icons = { + heading = { + icons = { "", "", "", "", "", "" }, + }, + todo = { + cancelled = { icon = "" }, + pending = { icon = "" }, + uncertain = { icon = "" }, + urgent = { icon = "" }, + }, + code_block = { + conceal = true, + } + } + } + } + } + }) +end + +return { + "nvim-neorg/neorg", + enabled = false, + lazy = true, + ft = "norg", + cmd = "Neorg", + version = "*", -- Pin Neorg to the latest stable release + config = config, + -- dependencies = { "3rd/image.nvim" } +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/noice.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/noice.lua new file mode 100644 index 0000000..43a12b2 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/noice.lua @@ -0,0 +1,28 @@ +local opts = { + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = true, -- use a classic bottom cmdline for search + command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = true, -- add a border to hover docs and signature help + }, +} + +return { + "folke/noice.nvim", + lazy = true, + event = "VeryLazy", + opts = opts, + dependencies = { + "MunifTanjim/nui.nvim", + }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-autopairs.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-autopairs.lua new file mode 100644 index 0000000..d92a8cc --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-autopairs.lua @@ -0,0 +1,6 @@ +return { + "windwp/nvim-autopairs", + lazy = true, + event = "InsertEnter", + config = true +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-cmp.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-cmp.lua new file mode 100644 index 0000000..b7d71a3 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-cmp.lua @@ -0,0 +1,64 @@ +local config = function() + local cmp = require("cmp") + vim.opt.completeopt = "menu,menuone" + + cmp.setup({ + formatting = { + expandable_indicator = false, + fields = { "abbr", "kind" }, + format = require("lspkind").cmp_format({ + mode = "text_symbol", + maxwidth = function() return math.floor(0.45 * vim.o.columns) end, + ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead (must define maxwidth first) + before = function(_, vim_item) + vim_item.menu = "" + return vim_item + end + }) + }, + snippet = { + expand = function(args) + vim.snippet.expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = { + ["<TAB>"] = cmp.mapping.select_next_item(), + ["<C-b>"] = cmp.mapping.scroll_docs(-4), + ["<C-f>"] = cmp.mapping.scroll_docs(4), + ["<C-Space>"] = cmp.mapping.complete(), + ["<C-e>"] = cmp.mapping.abort(), + ["<CR>"] = cmp.mapping.confirm({ select = true }), + }, + sources = cmp.config.sources( + { + { name = "lazydev", group_index = 0 } + }, { + { name = "neorg" } + }, { + { name = "nvim_lsp" }, + }, { + { name = "path" }, + }, { + { name = "buffer" }, + } + ) + }) +end + +return { + "hrsh7th/nvim-cmp", + lazy = true, + event = "InsertEnter", + config = config, + dependencies = { + "neovim/nvim-lspconfig", + "onsails/lspkind.nvim", + "hrsh7th/cmp-nvim-lsp", + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-lspconfig.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-lspconfig.lua new file mode 100644 index 0000000..4c69816 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-lspconfig.lua @@ -0,0 +1,138 @@ +local config = function() + local lsp = vim.lsp + local capabilities = require("cmp_nvim_lsp").default_capabilities() + + -- setting custom signs + vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = '', + [vim.diagnostic.severity.WARN] = '', + [vim.diagnostic.severity.HINT] = '', + [vim.diagnostic.severity.INFO] = '', + }, + linehl = { + [vim.diagnostic.severity.ERROR] = 'ErrorMsg', + }, + numhl = { + [vim.diagnostic.severity.WARN] = 'WarningMsg', + }, + }, + }) + + vim.api.nvim_create_autocmd('LspAttach', { + callback = function(ev) + local client = lsp.get_client_by_id(ev.data.client_id) + local keymap = vim.keymap + local opts = { noremap = true, silent = true, buffer = ev.buf, desc = "" } + + -- setting custom keymaps + opts.desc = "Finder" + keymap.set("n", "<Space>lf", ":Lspsaga finder<Enter>", opts) -- go to definition + opts.desc = "Peek Definition (Lspsaga)" + keymap.set("n", "<Space>lp", ":Lspsaga peek_definition<Enter>", opts) -- peak definition + opts.desc = "Goto Definition (Lspsaga)" + keymap.set("n", "<Space>lg", ":Lspsaga goto_definition<Enter>", opts) -- go to definition + opts.desc = "Code Action (Lspsaga)" + keymap.set("n", "<Space>la", ":Lspsaga code_action<Enter>", opts) -- see available code actions + opts.desc = "Rename (Lspsaga)" + keymap.set("n", "<Space>lr", ":Lspsaga rename<Enter>", opts) -- smart rename + opts.desc = "Hover Documentation (Lspsaga)" + keymap.set("n", "<Space>lk", lsp.buf.hover, opts) -- show documentation for what is under cursor + opts.desc = "Outline (Lspsaga)" + keymap.set("n", "<Space>lo", ":Lspsaga outline<Enter>", opts) -- show outline + opts.desc = "Diagnostic (Lspsaga)" + keymap.set("n", "<Space>ld", ":Lspsaga show_workspace_diagnostics<Enter>", opts) -- show diagnostics + + -- enable auto formatting on save + if client ~= nil and client:supports_method("textDocument/formatting") then + vim.api.nvim_create_autocmd("BufWritePre", { + buffer = ev.buf, + callback = function() + lsp.buf.format({ async = true }) + end, + }) + end + end + }) + + vim.api.nvim_create_autocmd('LspDetach', { + callback = function(ev) + local client = lsp.get_client_by_id(ev.data.client_id) + local keymap = vim.keymap + keymap.del("n", "<Space>lf") + keymap.del("n", "<Space>lp") + keymap.del("n", "<Space>lg") + keymap.del("n", "<Space>la") + keymap.del("n", "<Space>lr") + keymap.del("n", "<Space>lk") + keymap.del("n", "<Space>lo") + keymap.del("n", "<Space>ld") + if client ~= nil and client:supports_method('textDocument/formatting') then + vim.api.nvim_clear_autocmds({ + event = 'BufWritePre', + buffer = ev.buf, + }) + end + end, + }) + + -- C/C++ + lsp.enable("clangd") + lsp.config("clangd", { + capabilities = capabilities, + }) + -- Rust + lsp.enable("rust_analyzer") + lsp.config("rust_analyzer", { + capabilities = capabilities, + }) + -- Haskell + lsp.enable("hls") + lsp.config("hls", { + capabilities = capabilities, + settings = { + ['haskell'] = { + cabalFormattingProvider = "cabalfmt", + formattingProvider = "ormolu" + }, + }, + }) + -- Lua + lsp.enable("lua_ls") + lsp.config("lua_ls", { + capabilities = capabilities, + }) + -- JavaScript/Typescript + lsp.enable("ts_ls") + lsp.config("ts_ls", { + capabilities = capabilities, + }) + -- CSS + lsp.enable("cssls") + lsp.config("cssls", { + capabilities = capabilities, + }) + -- Meson + lsp.enable("mesonlsp") + lsp.config("mesonlsp", { + capabilities = capabilities, + }) + -- Zig + lsp.enable("zls") + lsp.config("zls", { + capabilities = capabilities, + }) + -- Python + lsp.enable("pyright") + lsp.config("pyright", { + capabilities = capabilities, + }) +end + +return { + "neovim/nvim-lspconfig", + config = config, + lazy = true, + event = { "FileType" }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-treesitter.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-treesitter.lua new file mode 100644 index 0000000..15d88b1 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/nvim-treesitter.lua @@ -0,0 +1,54 @@ +local config = function() + require("nvim-treesitter.config").setup { + install_dir = vim.fn.stdpath('data') .. '/site', + auto_install = false, + sync_install = false, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + incremental_selection = { + enable = true + }, + indent = { + enable = true, + }, + autotag = { + enable = true, + }, + } + + local parsers = { + "c", + "lua", + "markdown", + "vim", + "vimdoc", + "query", + "regex", + "diff", + "cmake", + "meson", + "markdown_inline", + "bash", + "toml", + "latex", + "cpp", + "rust", + "haskell", + "nix", + "javascript", + "norg", + "fish", + "kdl", + } + -- require("nvim-treesitter").install(parsers) +end + +return { + "nvim-treesitter/nvim-treesitter", + lazy = false, + branch = "main", + -- build = ":TSUpdate", + config = config +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/oil.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/oil.lua new file mode 100644 index 0000000..0d90db2 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/oil.lua @@ -0,0 +1,63 @@ +local init = function() + local keymap = vim.keymap + keymap.set("n", "<Space>b", ":Oil --float .<Enter>", + { noremap = true, silent = true, desc = "File browser (Oil)" }) -- Oil +end + +local config = function() + local detail = false + require("oil").setup({ + float = { + border = "rounded", + }, + confirmation = { + border = "rounded", + }, + progress = { + border = "rounded", + }, + ssh = { + border = "rounded", + }, + keymaps_help = { + border = "rounded", + }, + default_file_explorer = true, + delete_to_trash = true, + skip_confirm_for_simple_edits = true, + keymaps = { + ["b?"] = "actions.show_help", + ["<CR>"] = "actions.select", + ["bp"] = "actions.preview", + ["q"] = "actions.close", + ["br"] = "actions.refresh", + ["-"] = "actions.parent", + ["_"] = "actions.open_cwd", + ["~"] = "actions.cd", + ["bs"] = "actions.change_sort", + ["b."] = "actions.toggle_hidden", + ["bt"] = "actions.toggle_trash", + ["bd"] = { + desc = "Toggle file detail view", + callback = function() + detail = not detail + if detail then + require("oil").set_columns({ "icon", "permissions", "size", "mtime" }) + else + require("oil").set_columns({ "icon" }) + end + end, + }, + }, + use_default_keymaps = false, + }) +end + +return { + "stevearc/oil.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + lazy = true, + cmd = "Oil", + init = init, + config = config +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/parinfer-rust.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/parinfer-rust.lua new file mode 100644 index 0000000..2b31d8a --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/parinfer-rust.lua @@ -0,0 +1,6 @@ +return { + "eraserhd/parinfer-rust", + build = "cargo build --release", + lazy = true, + ft = { "scheme", "lisp" } +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/telescope.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/telescope.lua new file mode 100644 index 0000000..0f6d853 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/telescope.lua @@ -0,0 +1,42 @@ +local init = function() + local keymap = vim.keymap + local opts = { noremap = true, silent = true, desc = "" } + opts.desc = "Keymaps (Telescope)" + keymap.set("n", "<Space>tk", ":Telescope keymaps<Enter>", opts) -- Keymaps + opts.desc = "Help (Telescope)" + keymap.set("n", "<Space>th", ":Telescope help_tags<Enter>", opts) -- Help + opts.desc = "Find files (Telescope)" + keymap.set("n", "<Space>tf", ":Telescope find_files<Enter>", opts) -- Find files + opts.desc = "All commands (Telescope)" + keymap.set("n", "<Space>ta", ":Telescope<Enter>", opts) -- All commands + opts.desc = "Find words (Telescope)" + keymap.set("n", "<Space>tw", ":Telescope live_grep<Enter>", opts) -- Find words + opts.desc = "Buffers (Telescope)" + keymap.set("n", "<Space>tb", ":Telescope buffers<Enter>", opts) -- Buffers +end + +local config = function() + require("telescope").setup({ + defaults = require("telescope.themes").get_ivy(), + pickers = { + find_files = { + hidden = true, + }, + builtin = { + previewer = false, + }, + help_tags = { + previewer = false, + } + }, + }) +end + +return { + "nvim-telescope/telescope.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + lazy = true, + cmd = "Telescope", + init = init, + config = config, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/todo-comments.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/todo-comments.lua new file mode 100644 index 0000000..1ae4a83 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/todo-comments.lua @@ -0,0 +1,36 @@ +local opts = { + keywords = { + FIX = { icon = "", color = "error", alt = { "FIXME", "BUG", "FIXIT", "ISSUE" } }, + TODO = { icon = "", color = "info" }, + HACK = { icon = "", color = "hack" }, + WARN = { icon = "", color = "warning", alt = { "WARNING", "XXX" } }, + PERF = { icon = "", color = "perf", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } }, + NOTE = { icon = "", color = "hint", alt = { "INFO" } }, + TEST = { icon = "", color = "test", alt = { "TESTING", "PASSED", "FAILED" } }, + }, + colors = { + error = "@text.title.1.markdown", + info = "DiagnosticInfo", + hack = "@text.title.2.markdown", + warning = "@text.title.3.markdown", + perf = "@text.title.4.markdown", + hint = "@text.title.5.markdown", + test = "@text.title.6.markdown", + } +} + +return { + "folke/todo-comments.nvim", + dependencies = { "nvim-lua/plenary.nvim" }, + lazy = true, + event = { "BufReadPost", "BufWritePost", "BufNewFile" }, + opts = opts +} + +-- FIX: ciao +-- TODO: ciao +-- HACK: ciao +-- WARN: ciao +-- PERF: ciao +-- NOTE: ciao +-- TEST: ciao diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/toggleterm.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/toggleterm.lua new file mode 100644 index 0000000..9bd1b78 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/toggleterm.lua @@ -0,0 +1,64 @@ +local init = function() + local keymap = vim.keymap + --[[ keymap.set("n", "<C-t>", ":ToggleTerm<Enter>", + { noremap = true, silent = true, desc = "Terminal (ToggleTerm)" }) -- Terminal + keymap.set("t", "<C-t>", "<C-\\><C-n>:ToggleTerm<Enter>") ]] + keymap.set("n", "<Space>g", ":ToggleLazyGit<Enter>", + { noremap = true, silent = true, desc = "LazyGit (ToggleTerm)" }) -- LazyGit +end + +local config = function() + --[[ require("toggleterm").setup { + autochdir = false, + direction = "float", + open_mapping = "<c-t>", + terminal_mappings = true, + start_in_insert = true, + float_opts = { + border = "curved", + }, + on_open = function(term) + local cwd = vim.fn.getcwd() + if term.dir ~= cwd then + term:send("cd " .. cwd .. " && clear") + term.dir = cwd + end + end, + } ]] + local Terminal = require("toggleterm.terminal").Terminal + local opts = { + noremap = true, -- non-recursive + silent = true, -- do not show message + } + + -- LazyGit + local lazygit = Terminal:new({ + cmd = "lazygit", + dir = "git_dir", + direction = "float", + float_opts = { + border = "curved", + }, + -- function to run on opening the terminal + on_open = function(term) + vim.cmd("startinsert!") + vim.api.nvim_buf_set_keymap(term.bufnr, "n", "q", ":close<Enter>", opts) + end, + -- function to run on closing the terminal + on_close = function() + vim.cmd("startinsert!") + end, + }) + local function toggle_lazygit() + lazygit:toggle() + end + vim.api.nvim_create_user_command("ToggleLazyGit", toggle_lazygit, {}) +end + +return { + "akinsho/toggleterm.nvim", + lazy = true, + cmd = { "ToggleTerm", "ToggleLazyGit" }, + init = init, + config = config, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-highlightedyank.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-highlightedyank.lua new file mode 100644 index 0000000..9405e9e --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-highlightedyank.lua @@ -0,0 +1,8 @@ +return { + "machakann/vim-highlightedyank", + lazy = true, + keys = { + { "y", mode = "n" }, + { "y", mode = "v" } + } +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-illuminate.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-illuminate.lua new file mode 100644 index 0000000..f44b6c9 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/vim-illuminate.lua @@ -0,0 +1,5 @@ +return { + "RRethy/vim-illuminate", + lazy = true, + event = { "BufReadPost", "BufWritePost", "BufNewFile" }, +} diff --git a/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/which-key.lua b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/which-key.lua new file mode 100644 index 0000000..4e391f9 --- /dev/null +++ b/mirenn/home/files/dotfiles/.config/nvim/lua/plugins/which-key.lua @@ -0,0 +1,25 @@ +local config = function() + require("which-key").setup() + vim.o.timeout = true + vim.o.timeoutlen = 500 +end + +return { + "folke/which-key.nvim", + lazy = true, + event = "VeryLazy", + config = config, + keys = { + { + "<leader>?", + function() + require("which-key").show({ global = false }) + end, + desc = "Buffer Local Keymaps (which-key)", + }, + }, + dependencies = { + "echasnovski/mini.icons", + "nvim-tree/nvim-web-devicons", -- optional + }, +} |
