Compare commits

..

3 Commits

Author SHA1 Message Date
mintycube
2064af197a Update with new nvim changes 2024-07-20 13:47:46 +05:00
mintycube
7c2de24603 Added nvim-config as a submodule 2024-07-20 13:32:31 +05:00
mintycube
a33665204c Cleanup before adding nvim-config as submodule 2024-07-20 13:28:38 +05:00
30 changed files with 13 additions and 2727 deletions

1
.config/nvim Submodule

@ -0,0 +1 @@
Subproject commit e67627c82838b14f7df78ce355ccd995bd120b23

View File

@ -1,13 +0,0 @@
{
"runtime.version": "LuaJIT",
"runtime.path": [
"lua/?.lua",
"lua/?/init.lua"
],
"diagnostics.globals": ["vim"],
"workspace.checkThirdParty": false,
"workspace.library": [
"$VIMRUNTIME",
"./lua"
]
}

View File

@ -1,3 +0,0 @@
# Neovim
#Features:

View File

@ -1,7 +0,0 @@
vim.g.mapleader = " "
vim.g.maplocalleader = " "
require("options")
require("manager")
require("autocommands")
require("mappings")

View File

@ -1,71 +0,0 @@
{
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "ce0a05ab4e2839e1c48d072c5236cce846a387bc" },
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
"cmp-async-path": { "branch": "main", "commit": "7df7f3721c45aac26b6e0474087538f4681c9c7a" },
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
"cmp-calc": { "branch": "main", "commit": "5947b412da67306c5b68698a02a846760059be2e" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-spell": { "branch": "master", "commit": "694a4e50809d6d645c1ea29015dad0c293f019d6" },
"cmp-vimtex": { "branch": "master", "commit": "a64b1b5eec0460144c91c4f20a45c74b8ded48ae" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"flit.nvim": { "branch": "main", "commit": "a9be4e76c30a128f1e51af448c8321bf8366bcd4" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"fzf-lua": { "branch": "main", "commit": "eb63a4bbfd203942737f76d4cf5424f6fb016a9d" },
"gitsigns.nvim": { "branch": "main", "commit": "f4928ba14eb6c667786ac7d69927f6aee6719f1e" },
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
"lazy.nvim": { "branch": "main", "commit": "d731a6b005fd239e85e555bd57362382f6c1e461" },
"leap.nvim": { "branch": "main", "commit": "c099aecaf858574909bd38cbadb8543c4dd16611" },
"lf.nvim": { "branch": "master", "commit": "69ab1efcffee6928bf68ac9bd0c016464d9b2c8b" },
"lsp-zero.nvim": { "branch": "v3.x", "commit": "87701af045b3032515776abeb47eb8c2ddb5e679" },
"lspkind.nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" },
"lualine.nvim": { "branch": "master", "commit": "544dd1583f9bb27b393f598475c89809c4d5e86b" },
"luasnip-latex-snippets.nvim": { "branch": "main", "commit": "4b91f28d91979f61a3e8aef1cee5b7c7f2c7beb8" },
"markdown-preview.nvim": { "branch": "main", "commit": "462ce41af003f5cdadab856f3a42dc27e39b89c8" },
"markview.nvim": { "branch": "main", "commit": "708eb913b3bd858269a2be5e19340a60cd7c68b4" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" },
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4ba55f9755ebe8297d92c419b90a946123292ae6" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" },
"mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
"mini.surround": { "branch": "main", "commit": "57caca9525cec0ea771a67326b0ee637d056078a" },
"noice.nvim": { "branch": "main", "commit": "90844cfdf8c1d2edcb2e56c21e2724e7c6ea4c41" },
"none-ls.nvim": { "branch": "main", "commit": "2870f66b1cb263f6e0bfffdb089739b874343a3a" },
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
"nvim-colorizer.lua": { "branch": "master", "commit": "08bd34bf0ed79723f62764c7f9ca70516d461d0d" },
"nvim-dap": { "branch": "master", "commit": "6f79b822997f2e8a789c6034e147d42bc6706770" },
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "484995d573c0f0563f6a66ebdd6c67b649489615" },
"nvim-html-css": { "branch": "main", "commit": "c514bd27ad560636ed39dea3e370b3103754e244" },
"nvim-lspconfig": { "branch": "master", "commit": "01e08d4bf1c35e5126b2ad5209725e4c552289ab" },
"nvim-markdown": { "branch": "master", "commit": "bf5c87788156f072cfb87b994844424b164b5b44" },
"nvim-navbuddy": { "branch": "master", "commit": "f22bac988f2dd073601d75ba39ea5636ab6e38cb" },
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
"nvim-spectre": { "branch": "master", "commit": "9a28f926d3371b7ef02243cbbb653a0478d06e31" },
"nvim-treesitter": { "branch": "master", "commit": "0d5e1214a5c386a168dc8e19d7da0ceb0e0bd6f2" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" },
"nvim-ts-autotag": { "branch": "main", "commit": "1624866a1379fc1861797f0ed05899a9c1d2ff61" },
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" },
"nvim-ufo": { "branch": "main", "commit": "1b5f2838099f283857729e820cc05e2b19df7a2c" },
"nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" },
"outline.nvim": { "branch": "main", "commit": "2175b6da5b7b5be9de14fd3f54383a17f5e4609c" },
"persistence.nvim": { "branch": "main", "commit": "40a137dd9240c9c6760c53df48d2b155f52c252b" },
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
"promise-async": { "branch": "main", "commit": "28c1d5a295eb5310afa2523d4ae9aa41ec5a9de2" },
"qalculate.vim": { "branch": "main", "commit": "d0269924bfa623bf0f73218041241cc83e97379e" },
"refactoring.nvim": { "branch": "master", "commit": "d07218748c48e756c27aa6859bfa6e62a3d271af" },
"todo-comments.nvim": { "branch": "main", "commit": "96fee098a90e7c09c9811aa7df71d773ba8b9b53" },
"toggleterm.nvim": { "branch": "main", "commit": "cd55bf6aab3f88c259fa29ea86bbdcb1a325687d" },
"tokyonight.nvim": { "branch": "main", "commit": "6adfcde66e8af2f22dd5d76060980abd8daa0df8" },
"trouble.nvim": { "branch": "main", "commit": "bf99ea71a39e322336b7f8be965f86dbf5c65540" },
"undotree": { "branch": "main", "commit": "eab459ab87dd249617b5f7187bb69e614a083047" },
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
"vimtex": { "branch": "master", "commit": "80c9bc179784c30192d482741a43f176c859daa1" },
"which-key.nvim": { "branch": "main", "commit": "bb4e82bdaff50a4a93867e4c90938d18e7615af6" },
"zen-mode.nvim": { "branch": "main", "commit": "a31cf7113db34646ca320f8c2df22cf1fbfc6f2a" }
}

View File

@ -1,320 +0,0 @@
local M = {}
M.suckless = {
[[ ]],
[[ ]],
[[ ]],
[[ ]],
[[ ▀ ]],
[[█▀█▄█▀█▀█▀█]],
[[ ]],
[[ ]],
}
-- M.great_slash = {
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⡀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⣀⣠⣶⣶⣶⣿⣿⣿⣟⠟⠉⠁ ⠉⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣵⣶⣿⣿⣿⡿⣟⢿⡝⠙⠀⠤⠤⣤⣤⡶⠂⠀]],
-- [[⠀⠀⠀⠀⢀⠴⣪⣾⣿⣿⣿⣿⣿⢿⡿⠃⢿⢸⣧⡍⠭⣭⣿⡿⠋⠀⠀⠀]],
-- [[⠀⠀⠀⢀⣵⣿⣿⣿⣿⣿⢯⠟⡵⠋ ⢠⢾⣿⣿⣿⡤⣼⢏⣠⣀⠀⠀⠀]],
-- [[⠀⢠⣰⣻⣿⣿⣿⣾⣿⣧⢡⣘⠁⠀⠀⠘⣄⣻⣿⣿⣷⣿⣿⡿⠍⠁⠀⠀]],
-- [[⠀⡇⡿⣿⣿⣿⡿⣿⡻⣿⣜⢄⣶⣤⣀⠀⠀⠀⠈⠛⢻⣟⠫⠉⠀⠀⠀⠀]],
-- [[⠀⠣⡻⣌⡻⠿⣿⣮⣽⣿⣶⣾⣿⣳⠶⠖⠬⠍⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠈⠀⠉⠉⠙⠛⠛⠒⠓⠒⠀⠀⠀⠒⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.mothwing = {
-- [[⠀⠀⠀⠀⢠⣶⡦⠀⣠⣤⣤⣤⣀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⢸⣿⣧⣾⣿⣣⠄⣹⣿⠟⢆⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠙⣿⣿⣿⣷⣿⣾⣿⣧⣸⡆⠀]],
-- [[⠀⠀⠀⠀⠀⠐⢿⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀]],
-- [[⠀⠀⠀⠀⠀⠻⣮⣿⣿⣿⣿⣿⣿⡿⠃⠀⠀]],
-- [[⠀⠀⠀⠀⡠⢞⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀]],
-- [[⠀⠀⡰⣓⣼⡿⡿⢻⣭⣾⣿⢿⢻⡰⠀⠀⠀]],
-- [[⠀⡮⡺⠕⡫⠋⣬⣴⣿⣿⣿⣸⠸⡱⡄⠀⠀]],
-- [[⠸⡰⡝⣨⠕⠊⠀⣿⣿⣿⠏⠏⣶⡕⡇⠀⠀]],
-- [[⠘⠀⡢⠁⠀⠀⠀⠋⠋⠀⠀⢰⡘⠰⠇⠀⠀]],
-- [[ ⠸⠁⠀⠀⠀⠀]],
-- }
--
-- M.radiance = {
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⡇⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢇⠀⠃⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠷⣷⢷⣴⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣧⣅⣂⣧⣾⣷⣇⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⢀⠀⠀⠀⢀⢠⢐⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡷⠑⢆⣠⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠢⢦⣀⣴⣾⣿⣭⣶⠵⠩⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡛⣘⠿⣿⣷⠶⠿⠦⠴⠠⡀⠀]],
-- [[⠀⠀⢀⣀⣘⣩⣙⣫⣭⣶⡿⣫⣪⣭⢛⠿⣿⣿⡿⠋⣩⣝⢶⣝⡿⣶⣭⣓⡦⢍⠂⠄⠀⠀]],
-- [[⠀⠀⠀⠐⠋⠩⢭⣉⣩⣵⢞⣵⡿⠁⠊⢀⣻⣿⡁⠉⡪⡻⣷⣝⢿⣶⡝⠭⡙⠓⠤⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠈⠉⠉⢉⢉⠠⠟⠉⠂⠀⠀⠠⣭⢩⡤⠀⠁⠰⠈⠙⠷⡈⠙⢆⠀⠆⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠟⠸⢓⠀⠀⠀⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⢠⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣾⠸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
--
-- M.venom = {
-- [[⠀⠀⢰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀]],
-- [[⠀⠀⣾⣧⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣼⡇⠀]],
-- [[⠀⠀⡏⢿⣿⣿⣶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣾⣿⣿⡗⠀⠀]],
-- [[⠀⠀⠁⠘⣿⣿⣿⣿⣿⣷⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣿⣿⣿⣿⣿⠁⠀⠀]],
-- [[⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣷⣍⠡⠀⠀⠀⠀⠀⠀⢋⣽⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠹⣻⣿⣿⣿⣿⣿⣧⣀⠀⠀⠀⠠⣀⣾⣿⣿⣿⡿⣟⣿⠏⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠈⠹⠜⠋⠟⠿⠉⠀⠀⠀⠀⠀⠑⠻⢿⠙⠩⠫⠛⠁⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⢠⠠⡆⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢀⠀⠄⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠂⠇⠰⠄⡞⠀⣼⠀⣿⡄⢰⡷⠸⣧⢰⡆⠨⡂⡾⡐⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠈⠈⢧⢹⡇⢿⠀⢿⠇⠈⡇⠨⡟⢸⡇⡿⠡⠁⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠸⡀⢸⠀⠀⠇⢸⠃⡿⠘⠁⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠈⠀⠀⠀⠊⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⢳⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡎⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠘⠧⢢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⠏⠁⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⣆⢡⢠⠀⡀⢠⢀⡄⡆⣸⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠸⠘⢂⡆⢸⣸⢃⠇⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠋⠎⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.symbol = {
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠋⠀⠀]],
-- [[⠀⠀⢦⣀⠀⠈⢣⡀⠀⠀⣀⣀⣀⣀⣴⠁⣠⡶⠀⠀⢀⣴⠋⠁⠀⠀⠀]],
-- [[⠀⠀⠀⠙⢷⣄⠈⢿⡞⠛⠉⠉⠉⢹⠃⣠⡞⠀⣠⣴⠟⠀⢀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠙⢣⣀⢡⡶⠞⠛⠛⠣⢦⠝⣠⣾⠟⢁⣤⠔⠃⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠙⠣⠀⢀⣀⣀⣀⣴⣾⠿⠡⠚⠻⣧⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠰⣾⠟⢉⡉⠙⣿⡅⢀⡀⡀⠀⢹⡄⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠈⢀⡀⠻⠟⢀⣿⠃⠘⠶⠃⠀⢸⡇⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⢀⠠⡶⣡⠄⣠⡿⠿⠶⠶⠟⠉⠀⠀⠀⠀⢀⣿⠁⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠘⠂⢡⡾⠋⠀⠀⠀⠀⠀⠀⠀⠱⣤⣠⡾⠃⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠐⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠋⢴⡀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀]],
-- }
--
-- M.scorpion = {
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢤⢠⠠⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣔⡀⠚⠀⠀⠠⠒⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡟⠁⠀⠀⠀⢀⡋⢙⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠛⠀⠀⢀⠀⠀⢐⣣⠤⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠒⠁⠢⡄⠀⡈⠀⢐⠧⢀⠇⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀⠀⠀⣘⢀⠇⣀⡱⢈⡁⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠀⢀⣠⢤⡍⢛⡆⣻⡴⣾⡸⣎⣳⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⣀⣠⣤⣤⣀⡀⣀⣀⡀⠀⢇⣤⣷⣿⣴⣌⣰⡤⡁⢀⡤⠄⠠⡄⠀⠀]],
-- [[⠀⠀⠀⢈⣽⣿⣿⣿⣿⠟⠑⠉⠑⠷⠱⣮⢹⣿⣿⣿⠟⠸⡭⠬⢥⣄⠀⠀⢀⠀⠀]],
-- [[⠀⠀⠔⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⢛⣑⣓⢬⣕⠋⠙⢦⠀⢀⠍⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⢦⡃⠀⠀⡃⠀⢸⠀⠈⠂⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣄⠀⢀⣤⢾⠃⠁⠀⠀⠃⠁⠀⠉⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠐⢄⣀⣀⣠⣴⣿⣿⣿⢣⠞⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⢀⠀⠀⠈⠉⣹⣿⣿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠈⠉⠛⠛⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.raven = {
-- [[ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠀ ]],
-- [[ ⠀⠀⢤⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠠⣢⢃⡶ ]],
-- [[ ⠀⠀⣼⡶⠘⠀⠀⠀⠀⠀⠀⠀⠀⢠⢀⠄⠀⠢⢼⣿⣿⣷⡅ ]],
-- [[ ⠠⠀⣿⣿⢇⡀⠀⠀⠀⠀⠀⠀⡤⠀⢈⢄⡇⣪⣿⣿⣿⢟⡠ ]],
-- [[ ⠀⢸⣿⣿⣟⡐⠁⣀⠀⠀⠀⣠⡤⡨⣳⣿⣿⣿⣿⣿⣿⡿⠃ ]],
-- [[ ⠀⠀⢻⣿⣿⣇⠸⠠⠀⠀⣠⣿⣷⣿⣿⣿⣿⣿⣿⣿⠿⠁⠁ ]],
-- [[ ⠀⠀⠀⠙⠿⣿⣮⣄⣄⣈⣾⣿⣿⣿⣿⣿⣿⣿⣿⢏⠹⠄⠃ ]],
-- [[ ⠀⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⠻⠀⠙⠠⠀⠀ ]],
-- [[ ⠀⠀⠀⠈⢤⡟⠻⣿⣿⣿⣿⣿⣿⡿⠿⡻⠳⠁⠀⠁⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⠀⠀⠁⠙⢿⣿⣿⣿⣿⣶⣾⣷⣶⣦⣤⠀⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⠀⢀⣤⡶⡖⠿⣿⣿⣿⣿⡿⠏⠝⠁⠀⠀⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⠀⠈⠀⠡⠔⠀⠈⠙⠙⠑⠂⠀⠀⠀⠀⠀⠀⠀⠀ ]],
-- }
--
-- M.yggdrasil = {
-- [[ ⠀⠀⠀⠀⠀⠀⢀⢀⠀⣄⢂⣀⣂⣤⣀⢀⢀⠀⠀⠀⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⣄⣰⣝⣉⣙⢱⣞⠜⡖⣌⣌⣁⣻⣠⣀⠀⠀⠀⠀ ]],
-- [[ ⠀⠀⢔⢽⣊⣂⣇⡒⠮⢻⣇⠲⢍⣿⢟⣒⣰⣠⣑⡔⣀⠀⠀ ]],
-- [[ ⠀⠹⡸⢙⣕⡐⢂⠍⣩⡻⣿⣆⣾⠟⣉⢣⠪⠲⡰⡋⣢⢆⠀ ]],
-- [[ ⠀⣪⡹⣵⢦⠽⡓⠶⠶⣧⣹⣿⣏⣴⠶⠛⠟⠽⢛⣒⢮⡙⠀ ]],
-- [[ ⠸⢋⢪⠑⢩⠈⠀⠀⠀⠈⣿⣿⣿⠁⠀⠀⠘⢠⠈⠆⢎⢱⠁ ]],
-- [[ ⠀⠻⡕⡲⡈⠀⠀⠀⠀⠀⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠆⠄⠁ ]],
-- [[ ⠀⠀⠀⠇⠀⠀⠀⠀⠀⣰⣿⣿⣿⣤⡀⠀⠀⠀⠀⠌⠘⠀⠀ ]],
-- [[ ⠀⠀⠀⢱⠒⡶⡶⢖⣫⡿⢻⠿⡟⢿⣍⡱⢖⠶⠒⡆⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⠁⠬⡃⠴⣇⣴⠏⠖⠙⣦⣸⠦⡼⠣⠉⠀⠀⠀⠀ ]],
-- [[ ⠀⠀⠀⠀⠀⠀⠈⠁⠑⠢⠧⠭⠼⠵⠋⠊⠁⠀⠀⠀⠀⠀⠀ ]],
-- }
--
-- M.void_stranger = {
-- [[]],
-- [[⠀⠀⠀⠀⠀⠀⣀⣴⣶⣄⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⣴⠋⠁⠈⣿⡟⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⣾⣏⣀⠠⠞⠉⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⣸⣿⠏⠀⠀⠀⠀ ⠀⣀⡀⠀⠀]],
-- [[⠀⢰⣿⣿⠀⠀⠀⠀⡠⠒⠿⣿⣿⣧⠀]],
-- [[⠀⠀⣿⣿⣷⣤⡠⠊⠀⠀⠀⢸⣿⣿⠀]],
-- [[⠀⠀⠈⠛⠋⠁⠀⠀⠀⠀⠀⣼⣿⡇⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⢀⡤⠖⠈⣿⡿⠀⠀]],
-- [[⠀⠀⠀⠀⠀⢀⣾⣿⠀⠀⣰⠗⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠘⠯⢻⠶⠊⠁⠀⠀⠀⠀]],
-- [[]],
-- }
--
-- M.aot = {
-- [[⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⡄⠀⠀]],
-- [[⢰⠒⠒⢻⣿⣶⡒⠒⠒⠒⠒⠒⠒⠒⠒⠒⡲⠊⣰⣓⡒⡆]],
-- [[⢸⢸⢻⣭⡙⢿⣿⣍⡉⠉⡇⡏⠉⠉⣩⠋⢀⣔⠕⢫⡇⡇]],
-- [[⢸⢸⣈⡻⣿⣶⣽⡸⣿⣦⡇⡇⡠⠊⣸⢶⠋⢁⡤⠧⡇⡇]],
-- [[⢸⢸⠻⣿⣶⣝⠛⣿⣮⢻⠟⣏⣠⠞⠁⣼⡶⠋⢀⣴⡇⡇]],
-- [[⢸⢸⣿⣶⣍⠻⠼⣮⡕⢁⡤⢿⢁⡴⠊⣸⣵⠞⠋⢠⡇⡇]],
-- [[⢸⢘⣛⡻⣿⣧⢳⣿⣧⠎⢀⣾⠋⡠⠞⢱⢇⣠⡴⠟⡇⡇]],
-- [[⢸⢸⠹⣿⣷⣎⣉⣻⢁⡔⢁⢿⡏⢀⣤⢾⡟⠁⣀⣎⡇⡇]],
-- [[⢸⢸⠲⣶⣭⡛⠚⢿⢋⡔⢁⣼⠟⢋⣠⣼⠖⠋⢁⠎⡇⡇]],
-- [[⢸⢸⢤⣬⣛⠿⠞⣿⢋⠔⣉⣾⠖⠋⢁⣯⡴⠞⢃⠂⡇⡇]],
-- [[⢸⢸⠀⢙⣻⢿⣧⣾⡵⠚⣉⣯⠶⠛⣹⣧⠤⢮⠁⠀⡇⡇]],
-- [[⠸⣘⠢⣄⠙⠿⢷⡡⠖⣋⣽⠥⠒⣩⣟⣤⣔⣁⡤⠖⣃⠇]],
-- [[⠀⠀⠙⠢⢍⣻⡿⠒⢉⣴⣗⣚⣽⣋⣀⣤⣊⠥⠒⠉⠀⠀]],
-- [[⠀⠀⠀⢀⣔⠥⠒⢮⣙⠾⠀⠷⣚⡭⠞⠉⠛⠦⣀⠀⠀⠀]],
-- [[⠀⠀⠀⠉⠀⠀⠀⠀⠈⠑⠒⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.meatboy = {
-- [[⠀⠀⣀⣀⣤⣤⣦⣶⢶⣶⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⡄⠀⠀⠀⠀⠀]],
-- [[⠀⠀⣿⣿⣿⠿⣿⣿⣾⣿⣿⣿⣿⣿⣿⠟⠛⠛⢿⣿⡇⠀⠀⠀⠀⠀]],
-- [[⠀⠀⣿⡟⠡⠂⠀⢹⣿⣿⣿⣿⣿⣿⡇⠘⠁⠀⠀⣿⡇⠀⢠⣄⠀⠀]],
-- [[⠀⠀⢸⣗⢴⣶⣷⣷⣿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣴⣿⣗⣄⣼⣷⣶⡄]],
-- [[⠀⢀⣾⣿⡅⠐⣶⣦⣶⠀⢰⣶⣴⣦⣦⣶⠴⠀⢠⣿⣿⣿⣿⣼⣿⡇]],
-- [[⢀⣾⣿⣿⣷⣬⡛⠷⣿⣿⣿⣿⣿⣿⣿⠿⠿⣠⣿⣿⣿⣿⣿⠿⠛⠃]],
-- [[⢸⣿⣿⣿⣿⣿⣿⣿⣶⣦⣭⣭⣥⣭⣵⣶⣿⣿⣿⣿⣟⠉⠀⠀⠀⠀]],
-- [[⠀⠙⠇⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⣿⣿⣿⣿⣿⣛⠛⠛⠛⠛⠛⢛⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠿⣿⣿⣿⠿⠿⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⠿⠇⠀⠀⠀⠀⠀]],
-- }
--
-- M.isaac = {
-- [[ ⣀⣤⣴⣶⣶⣶⣶⣶⣶⣤⣄⣀ ]],
-- [[ ⢀⣠⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄ ]],
-- [[ ⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣆ ]],
-- [[ ⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧ ]],
-- [[ ⣾⣿⡿⠟⡋⠉⠛⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠛⠉⠉⠙⠻⣿⣿⣇]],
-- [[⢠⣿⡏⢰⣿⣿⡇ ⢸⣿⣿⣿⠿⠿⣿⣿⣿⠁⣾⣿⣷ ⠘⣿⣿]],
-- [[⠸⣿⣇⠈⠉⠉ ⢀⣼⡿⠋ ⠙⢿⣄⠙⠛⠁ ⢠⣿⣿]],
-- [[ ⢿⣿⡇ ⣶⣿⣿⢁⣤⣤⣤⣤⣤⣤ ⣿⣷ ⠈⢹⣿⡟]],
-- [[ ⠈⢿⡗ ⢸⣿⣿⣿⣶⣶⣶⣶⣶⣶⣶⣶⣿⣿ ⢸⡟ ]],
-- [[ ⠳⡀ ⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠌ ]],
-- [[ ⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤ ]],
-- [[ ⠉⠙⠻⠿⠿⣿⣿⣿⣿⠿⠿⠛⠉ ]],
-- }
--
-- M.gta = {
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣤⡀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⠟⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⣿⣷⣄⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣶⣿⡆⠀⠀⠉⠉⠀⠈⣶⡆⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⢻⣷⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⡿⠟⠀⠀⠀⠀⠀⠀⠀⣸⣿⡄]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣷]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⢰⣾⣿⠏]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣧⡔⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠟⠁⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[Ah shit, here we go again.]],
-- }
--
-- M.hydra = {
-- [[ ⣴⣶⣤⡤⠦⣤⣀⣤⠆ ⣈⣭⣿⣶⣿⣦⣼⣆ ]],
-- [[ ⠉⠻⢿⣿⠿⣿⣿⣶⣦⠤⠄⡠⢾⣿⣿⡿⠋⠉⠉⠻⣿⣿⡛⣦ ]],
-- [[ ⠈⢿⣿⣟⠦ ⣾⣿⣿⣷ ⠻⠿⢿⣿⣧⣄ ]],
-- [[ ⣸⣿⣿⢧ ⢻⠻⣿⣿⣷⣄⣀⠄⠢⣀⡀⠈⠙⠿⠄ ]],
-- [[ ⢠⣿⣿⣿⠈ ⣻⣿⣿⣿⣿⣿⣿⣿⣛⣳⣤⣀⣀ ]],
-- [[ ⢠⣧⣶⣥⡤⢄ ⣸⣿⣿⠘ ⢀⣴⣿⣿⡿⠛⣿⣿⣧⠈⢿⠿⠟⠛⠻⠿⠄ ]],
-- [[ ⣰⣿⣿⠛⠻⣿⣿⡦⢹⣿⣷ ⢊⣿⣿⡏ ⢸⣿⣿⡇ ⢀⣠⣄⣾⠄ ]],
-- [[⣠⣿⠿⠛ ⢀⣿⣿⣷⠘⢿⣿⣦⡀ ⢸⢿⣿⣿⣄ ⣸⣿⣿⡇⣪⣿⡿⠿⣿⣷⡄ ]],
-- [[⠙⠃ ⣼⣿⡟ ⠈⠻⣿⣿⣦⣌⡇⠻⣿⣿⣷⣿⣿⣿ ⣿⣿⡇ ⠛⠻⢷⣄]],
-- [[ ⢻⣿⣿⣄ ⠈⠻⣿⣿⣿⣷⣿⣿⣿⣿⣿⡟ ⠫⢿⣿⡆ ]],
-- [[ ⠻⣿⣿⣿⣿⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣤⣾⡿⠃ ]],
-- }
--
-- M.spider = {
-- [[ ▐ ▌ ▐ ▌ ]],
-- [[ ▐▌ █ █ ▐▌ ]],
-- [[ ▄█ ▀▀▄▌▄▐▄▀▀ █▄ ]],
-- [[ ▐█ ▄█▀▄█████▄▀█▄ █ ]],
-- [[ ▀▀ ▄▄▄█████▄▄▄ ▀▀ ]],
-- [[ ▄█▀ ▄▀███▀▄ ▀█▄ ]],
-- [[ ▄█ ▄▀ ███ ▀▄ █▄ ]],
-- [[▐█ █ ▐█▌ █ █▌]],
-- [[ █ █ ▀ █ █ ]],
-- [[ ▀█ █ █ █▀ ]],
-- [[ █ █ █ █ ]],
-- [[ █ █ █ █ ]],
-- [[ ▌ ▌ ▐ ▐ ]],
-- }
--
-- M.moth = {
-- [[⠀⠀⠀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⠀⠀]],
-- [[⢀⡖⢭⡿⡁⣶⠒⢍⣩⡿⢽⣷⣦⣤⣀⠀⢾⣏⡋⡽⠇⠀⣀⣤⢴⣚⠟⣉⣉⡽⠖⠪⡟⣹⡿⠆]],
-- [[⠈⠙⠵⣫⠵⣐⣏⢒⣲⠿⢷⣛⣹⡽⣿⢻⣾⠿⡛⡧⣷⣛⣷⣯⣿⣲⢶⣾⣚⢇⢁⡼⣿⠟⠋⠀]],
-- [[⠀⠀⠀⠘⠿⣵⣫⠾⣛⣫⢫⠕⠂⠈⠀⢩⣷⠾⢲⢯⣍⠓⠉⠚⠹⣿⣯⣿⣹⣾⣿⠟⠁⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠉⢠⡾⣫⡶⡂⠀⠀⠀⠐⡟⠖⡙⡧⠆⠀⠀⠀⠀⣿⢋⣻⡧⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠘⢾⣕⢕⠰⡀⠀⠀⠀⣯⠩⠏⠇⠐⡀⠀⠀⢠⣇⣰⡿⠃⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠃⠉⠉⠃⠀⠀⢻⣨⡈⠀⠃⠑⠀⠘⠋⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.skull = {
-- [[ ⠀⠀⠀⠀⠀⠀⣀⣤⣴⣶⣾⣿⣿⣿⣶⣶⣦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⢿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀ ]],
-- [[⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⡟⠁⠀⠀⠀⠈⢻⣿⣿⣿⠀⠀⠀⠀⠀⠀ ]],
-- [[⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠛⠛⠛⠛⠛⠛⢛⣿⣮⣿⣿⣿⠀⠀⠀⠀⠀⠀⢈⣿⣿⡟⠀⠀⠀⠀⠀⠀ ]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣧⡀⠀⠀⠀⢀⣼⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⢀⣼⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⠟⠉⠻⣿⣿⣿⣿⣶⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⡇⣠⣷⡀⢹⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠋⠛⠋⠛⠙⠛⠙⠛⠙⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
--
-- M.morse = {
-- [[ ]],
-- [[ ]],
-- [[ ]],
-- [[ ]],
-- [[ ]],
-- [[ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ]],
-- [[ ▄ ▄ ▄ ▄ ▄ ▄ ▄ ]],
-- [[ ]],
-- [[ ]],
-- [[ ]],
-- }
--
-- M.sharp = {
-- [[ ]],
-- [[  ]],
-- [[ ████ ██████ █████ ██ ]],
-- [[ ███████████ █████  ]],
-- [[ █████████ ███████████████████ ███ ███████████ ]],
-- [[ █████████ ███ █████████████ █████ ██████████████ ]],
-- [[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
-- [[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
-- [[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
-- [[ ]],
-- }
--
-- M.galaxy = {
-- [[ ⠀⠀⢀⣀⣀⡀⠒⠒⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⢀⣤⣶⡾⠿⠿⠿⠿⣿⣿⣶⣦⣄⠙⠷⣤⡀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⣠⡾⠛⠉⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣿⣷⣄⠘⢿⡄⠀⠀⠀]],
-- [[⠀⢀⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠐⠂⠠⢄⡀⠈⢿⣿⣧⠈⢿⡄⠀⠀]],
-- [[⢀⠏⠀⠀⠀⢀⠄⣀⣴⣾⠿⠛⠛⠛⠷⣦⡙⢦⠀⢻⣿⡆⠘⡇⠀⠀]],
-- [[⠀⠀⠀⠀⡐⢁⣴⡿⠋⢀⠠⣠⠤⠒⠲⡜⣧⢸⠄⢸⣿⡇⠀⡇⠀⠀]],
-- [[⠀⠀⠀⡼⠀⣾⡿⠁⣠⢃⡞⢁⢔⣆⠔⣰⠏⡼⠀⣸⣿⠃⢸⠃⠀⠀]],
-- [[⠀⠀⢰⡇⢸⣿⡇⠀⡇⢸⡇⣇⣀⣠⠔⠫⠊⠀⣰⣿⠏⡠⠃⠀⠀⢀]],
-- [[⠀⠀⢸⡇⠸⣿⣷⠀⢳⡈⢿⣦⣀⣀⣀⣠⣴⣾⠟⠁⠀⠀⠀⠀⢀⡎]],
-- [[⠀⠀⠘⣷⠀⢻⣿⣧⠀⠙⠢⠌⢉⣛⠛⠋⠉⠀⠀⠀⠀⠀⠀⣠⠎⠀]],
-- [[⠀⠀⠀⠹⣧⡀⠻⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡾⠃⠀⠀]],
-- [[⠀⠀⠀⠀⠈⠻⣤⡈⠻⢿⣿⣷⣦⣤⣤⣤⣤⣤⣴⡾⠛⠉⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠈⠙⠶⢤⣈⣉⠛⠛⠛⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀]],
-- [[⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀]],
-- }
return M

View File

@ -1,174 +0,0 @@
-- [[ Highlight on yank ]]
vim.api.nvim_create_autocmd("TextYankPost", {
callback = function()
vim.highlight.on_yank({ timeout = 100 })
end,
group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }),
pattern = "*",
})
-- [[ Disable Autocommenting on new lines ]]
vim.api.nvim_create_autocmd("BufEnter", {
callback = function()
vim.opt.formatoptions:remove({ "c", "r", "o" })
end,
group = vim.api.nvim_create_augroup("DisableAutocommenting", { clear = true }),
})
-- [[ Update file on Focus ]]
vim.api.nvim_create_autocmd("FocusGained", {
callback = function()
vim.cmd("checktime")
end,
group = vim.api.nvim_create_augroup("UpdateOnFocus", { clear = true }),
})
-- [[ Open lf when it's a Directory ]]
vim.api.nvim_create_autocmd("VimEnter", {
callback = function(data)
local directory = vim.fn.isdirectory(data.file) == 1
if directory then
require("lf").start()
end
end,
group = vim.api.nvim_create_augroup("lf_ifDirectory", { clear = true }),
})
-- [[ Remove trailing whitespaces ]]
vim.api.nvim_create_autocmd({ "BufWritePre" }, {
pattern = { "*" },
callback = function()
local save_cursor = vim.fn.getpos(".")
vim.cmd([[%s/\s\+$//e]])
vim.cmd([[%s/\n\+\%$//e]])
vim.fn.setpos(".", save_cursor)
end,
group = vim.api.nvim_create_augroup("RemoveTrailingWhitespaces", { clear = true }),
})
-- [[ Restore last cursor position ]]
vim.api.nvim_create_autocmd("BufReadPost", {
pattern = "*",
callback = function()
local line = vim.fn.line "'\""
if
line > 1
and line <= vim.fn.line "$"
and vim.bo.filetype ~= "commit"
and vim.fn.index({ "xxd", "gitrebase" }, vim.bo.filetype) == -1
then
vim.cmd 'normal! g`"zz'
end
end,
})
-- [[ Reload xresources on write ]]
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
pattern = vim.fn.resolve(vim.fn.expand("~/.config/x11/xresources")),
callback = function()
-- cmd([[!xrdb % ; killall -USR1 st ; renew-dwm ; notify-send " - xresources reloaded"]])
vim.cmd([[!xrdb % ; killall -USR1 st ; renew-dwm]])
end,
group = vim.api.nvim_create_augroup("ReloadXresources", { clear = true }),
})
-- [[ Restore cursor shape on exit]]
vim.api.nvim_create_autocmd({ "VimLeave" }, {
pattern = "*",
callback = function()
vim.cmd("set guicursor=a:hor20-blinkon500-blinkoff500-blinkwait700")
end,
group = vim.api.nvim_create_augroup("RestoreCursor", { clear = true }),
})
-- [[ Recompile suckless software on write and show notification ]]
local function recompile(path)
vim.api.nvim_create_augroup("RecompileGroup_" .. path, { clear = true })
vim.api.nvim_create_autocmd({ "BufWritePost" }, {
pattern = vim.fn.resolve(vim.fn.expand(path)),
callback = function()
local dir = vim.fn.fnamemodify(path, ":h")
local shell_cmd = string.format("cd %s && sudo make install && renew-dwm && notify-send ' refresh complete'", dir)
vim.cmd("!" .. shell_cmd)
end,
})
end
recompile("~/.config/suckless/dwm/config.h")
recompile("~/.config/suckless/dmenu/config.h")
recompile("~/.config/suckless/st/config.h")
recompile("~/.config/suckless/dwmblocks/config.h")
recompile("~/.config/suckless/slock/config.h")
--[[ Close nvim if toggleterm or Outline is the last buffer ]]
vim.api.nvim_create_autocmd({ "BufEnter" }, {
pattern = "*",
callback = function()
if
vim.fn.tabpagenr("$") == 1
and vim.fn.winnr("$") == 1
and (vim.bo.ft == "toggleterm" or vim.bo.ft == "Outline")
then
vim.cmd("bd! | q")
end
end,
group = vim.api.nvim_create_augroup("CloseLast", { clear = true }),
})
vim.cmd([[
command -bar -nargs=? -complete=help HelpCurwin call HelpCurwin(<q-args>)
let g:did_open_help = v:false
function! HelpCurwin(subject) abort
let mods = 'silent noautocmd keepalt'
if !g:did_open_help
execute mods .. ' help'
execute mods .. ' helpclose'
let g:did_open_help = v:true
endif
if !empty(getcompletion(a:subject, 'help'))
execute mods .. ' edit ' .. &helpfile
set buftype=help
endif
return 'help ' .. a:subject
endfunction
]])
-- Function to check if the buffer is empty
local function is_buffer_empty(buf)
local line_count = vim.api.nvim_buf_line_count(buf)
if line_count > 1 then
return false
end
local lines = vim.api.nvim_buf_get_lines(buf, 0, -1, false)
return lines[1] == ''
end
-- Function to close all empty buffers if the current buffer is 'help'
local function close_empty_buffers_if_help()
local current_buf = vim.api.nvim_get_current_buf()
if vim.bo.ft == 'help' then
local buffers = vim.api.nvim_list_bufs()
for _, buf in ipairs(buffers) do
if buf ~= current_buf and vim.api.nvim_buf_is_valid(buf) and vim.api.nvim_buf_is_loaded(buf) and is_buffer_empty(buf) then
vim.api.nvim_buf_delete(buf, { force = true })
end
end
end
end
vim.api.nvim_create_autocmd('BufWinEnter', {
callback = close_empty_buffers_if_help,
group = vim.api.nvim_create_augroup("help_in_fullscreen", { clear = true }),
})
-- [[ Autosave ]]
-- vim.api.nvim_create_autocmd({ "FocusLost", "BufLeave", "BufWinLeave", "InsertLeave" }, {
-- callback = function()
-- if vim.bo.filetype ~= "" and vim.bo.buftype == "" then
-- vim.cmd("silent! w")
-- end
-- end,
-- group = vim.api.nvim_create_augroup("AutoSave", { clear = true }),
-- })

View File

@ -1,65 +0,0 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end ---@diagnostic disable-next-line: undefined-field
vim.opt.rtp:prepend(lazypath)
require("lazy").setup(
{
spec = "plugins",
defaults = {
lazy = true,
},
change_detection = {
notify = false,
},
ui = {
border = "rounded",
},
performance = {
cache = {
enabled = true,
},
reset_packpath = true,
rtp = {
disabled_plugins = {
"2html_plugin",
"tohtml",
"getscript",
"getscriptPlugin",
"gzip",
"logipat",
"netrw",
"netrwPlugin",
"netrwSettings",
"netrwFileHandlers",
"matchit",
"matchparen",
"tar",
"tarPlugin",
"rrhelper",
"spellfile_plugin",
"vimball",
"vimballPlugin",
"zip",
"zipPlugin",
"tutor",
"rplugin",
"syntax",
"synmenu",
"optwin",
"compiler",
"bugreport",
"ftplugin",
},
},
},
}
)

View File

@ -1,72 +0,0 @@
-- Does not contain plugin specific keybinds
vim.keymap.set("n", "k", "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true })
vim.keymap.set("n", "j", "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true })
vim.keymap.set("n", "<leader>s", ":%s/<C-r><C-w>//gI<Left><Left><Left>")
vim.keymap.set("n", "<C-h>", "<C-w>h")
vim.keymap.set("n", "<C-j>", "<C-w>j")
vim.keymap.set("n", "<C-k>", "<C-w>k")
vim.keymap.set("n", "<C-l>", "<C-w>l")
vim.keymap.set("n", "<C-Left>", ":vertical resize -2<CR>", { silent = true })
vim.keymap.set("n", "<C-Right>", ":vertical resize +2<CR>", { silent = true })
vim.keymap.set("n", "<C-Up>", ":resize +2<CR>", { silent = true })
vim.keymap.set("n", "<C-Down>", ":resize -2<CR>", { silent = true })
vim.keymap.set("n", "J", "mzJ`z")
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")
vim.keymap.set("n", "<leader>cx", "<cmd>!chmod +x %<CR>", { desc = "chmod +x" })
vim.keymap.set("n", "<leader>cp", ':!compiler "%:p"<CR>', { desc = "run (C)om[P]iler script" })
vim.keymap.set("n", "<leader>sa", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], { desc = "Replace All" })
vim.keymap.set("n", "<leader>y", "<cmd>%yank<CR>", { desc = "Yank buffer" })
vim.keymap.set("n", "<A-;>", "<Esc>miA;<Esc>`i")
vim.keymap.set("n", "<leader>q", ":lua vim.diagnostic.open_float()<CR>", { noremap = true, silent = true })
vim.keymap.set("n", "<A-w>", ":bd<CR>", { silent = true })
vim.keymap.set("n", "[b", "<cmd>bprevious<cr>", { desc = "Prev Buffer" })
vim.keymap.set("n", "]b", "<cmd>bnext<cr>", { desc = "Next Buffer" })
vim.keymap.set("n", "<A-v>", ":vsplit<CR>", { silent = true })
vim.keymap.set("n", "<A-h>", ":split<CR>", { silent = true })
vim.keymap.set("n", "<C-s>", ":w<CR>")
vim.keymap.set('n', "gl", ':lua vim.diagnostic.open_float()<cr>')
vim.keymap.set("n", "<leader>cg", ":setlocal spell! spelllang=en_us<CR>", { desc = "Spellcheck", silent = true })
vim.keymap.set("n", "gco", "o<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Below" })
vim.keymap.set("n", "gcO", "O<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Above" })
vim.keymap.set("x", "p", 'p:let @+=@0<CR>:let @"=@0<CR>', { silent = true })
vim.keymap.set("x", "K", ":m '<-2<cr>gv=gv")
vim.keymap.set("x", "J", ":m '>+1<cr>gv=gv")
vim.keymap.set("x", "<leader>h", [["ay:!dmenuhandler '<C-r>a'<cr>]])
vim.keymap.set("v", "<", "<gv^")
vim.keymap.set("v", ">", ">gv^")
vim.keymap.set("i", "<C-u>", "<Esc>viwUea")
vim.keymap.set("i", "<C-t>", "<Esc>b~lea")
vim.keymap.set("i", "<C-;>", "<Esc>miA;<Esc>`ii")
vim.keymap.set("i", "<A-j>", "<Esc>:m .+1<CR>==gi")
vim.keymap.set("i", "<A-k>", "<Esc>:m .-2<CR>==gi")
vim.keymap.set("i", "<A-Up>", "<C-\\><C-N><C-w>k")
vim.keymap.set("i", "<A-Down>", "<C-\\><C-N><C-w>j")
vim.keymap.set("i", "<A-Left>", "<C-\\><C-N><C-w>h")
vim.keymap.set("i", "<A-Right>", "<C-\\><C-N><C-w>l")
vim.keymap.set("t", "<C-h>", "<C-\\><C-N><C-w>h")
vim.keymap.set("t", "<C-j>", "<C-\\><C-N><C-w>j")
vim.keymap.set("t", "<C-k>", "<C-\\><C-N><C-w>k")
vim.keymap.set("t", "<C-l>", "<C-\\><C-N><C-w>l")
vim.keymap.set("c", "<space>",
function()
local mode = vim.fn.getcmdtype()
if mode == "?" or mode == "/" then
return ".*"
else
return " "
end
end,
{ expr = true }
)
vim.keymap.set({ "x", "v", "n" }, ";", ":", { nowait = true })
vim.keymap.set({ "x", "v", "n" }, "<A-j>", ":m .+1<cr>==")
vim.keymap.set({ "x", "v", "n" }, "<A-k>", ":m .-2<cr>==")

View File

@ -1,84 +0,0 @@
-- colorscheme
-- vim.cmd.colorscheme("default")
-- vim.opt.background = "light"
-- indentation
vim.opt.tabstop = 2
vim.opt.softtabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true
vim.opt.smartindent = true
vim.opt.breakindent = true
vim.opt.autoindent = true
vim.opt.smarttab = true
-- search and replace
vim.opt.ignorecase = true
vim.opt.smartcase = true
vim.opt.hlsearch = false
vim.opt.incsearch = true
vim.opt.gdefault = true
vim.opt.showmatch = true
vim.opt.grepformat = "%f:%l:%c:%m"
vim.opt.grepprg = "rg --vimgrep"
vim.opt.inccommand = "split"
-- user interface
-- vim.opt.fillchars = { eob = " " }
vim.opt.laststatus = 3
vim.opt.number = true
vim.opt.numberwidth = 2
vim.opt.relativenumber = true
vim.opt.ruler = false
vim.opt.wrap = true
vim.opt.termguicolors = true
vim.opt.scrolloff = 8
vim.opt.sidescrolloff = 8
vim.opt.signcolumn = "yes"
vim.opt.cursorline = true
vim.opt.cursorlineopt = "number"
vim.opt.conceallevel = 2
vim.opt.list = false
vim.opt.showmode = false
-- vim.opt.colorcolumn = "80"
vim.opt.winminwidth = 5
-- editing
vim.opt.completeopt = { "menu", "menuone", "noselect" }
vim.opt.updatetime = 250
vim.opt.timeoutlen = 300
vim.opt.undofile = true
vim.opt.autowrite = true
vim.opt.mouse = "a"
vim.opt.whichwrap:append("<>,[,],h,l")
vim.opt.iskeyword:append("-")
-- window management
vim.opt.splitbelow = true
vim.opt.splitright = true
-- clipboard
vim.opt.clipboard = "unnamedplus"
-- auto change dir
vim.opt.autochdir = true
-- fold options
vim.opt.foldlevel = 99
vim.opt.foldlevelstart = 99
vim.opt.foldenable = true
vim.opt.shortmess = "aoOFCWstTAIcCqFS"
-- gui options
vim.opt.guifont = "JetBrainsMono NF:h9"
-- neovide ui
vim.g.neovide_padding_top = 5
vim.g.neovide_padding_bottom = 0
vim.g.neovide_padding_right = 10
vim.g.neovide_padding_left = 10
vim.opt.virtualedit = "block"
vim.opt.smoothscroll = true
vim.opt.pumblend = 10 -- Popup blend
vim.opt.pumheight = 10 -- Maximum number of entries in a popup

View File

@ -1,156 +0,0 @@
return { -- colorscheme
-- {
-- "catppuccin/nvim",
-- name = "catppuccin",
-- priority = 1000,
-- lazy = false,
-- config = function()
-- require("catppuccin").setup({
-- flavour = "mocha", -- latte, frappe, macchiato, mocha
-- })
-- vim.cmd.colorscheme("catppuccin")
-- local hl = vim.api.nvim_set_hl
-- hl(0, "DiagnosticVirtualTextError", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextInfo", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextWarn", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextHint", { link = "Comment" })
-- end
-- },
-- {
-- 'AlexvZyl/nordic.nvim',
-- lazy = false,
-- priority = 1000,
-- config = function()
-- require 'nordic'.load()
-- -- vim.cmd.colorscheme("nordic")
-- local hl = vim.api.nvim_set_hl
-- hl(0, "DiagnosticVirtualTextError", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextInfo", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextWarn", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextHint", { link = "Comment" })
-- end
-- },
-- {
-- 'comfysage/evergarden',
-- priority = 1000, -- Colorscheme plugin is loaded first before any other plugins
-- lazy = false,
-- config = function()
-- require("evergarden").setup({
-- transparent_background = true,
-- contrast_dark = 'medium', -- 'hard'|'medium'|'soft'
-- })
-- -- vim.cmd.colorscheme("evergarden")
-- local hl = vim.api.nvim_set_hl
-- hl(0, "DiagnosticVirtualTextError", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextInfo", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextWarn", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextHint", { link = "Comment" })
-- end
-- },
-- {
-- "rose-pine/neovim",
-- name = "rose-pine",
-- priority = 1000,
-- lazy = false,
-- config = function()
-- require("rose-pine").setup({
-- variant = "moon",
-- dim_inactive_windows = true,
-- groups = {
-- error = "subtle",
-- warn = "subtle",
-- info = "subtle",
-- hint = "subtle",
-- }
-- })
-- -- vim.cmd.colorscheme("rose-pine")
-- end
-- },
-- {
-- "tiagovla/tokyodark.nvim",
-- lazy = false,
-- priority = 1000,
-- config = function()
-- require("tokyodark").setup({
-- transparent_background = false, -- set background to transparent
-- gamma = 1.00, -- adjust the brightness of the theme
-- styles = {
-- comments = { italic = true }, -- style for comments
-- keywords = { italic = true }, -- style for keywords
-- identifiers = { italic = true }, -- style for identifiers
-- functions = {}, -- style for functions
-- variables = {}, -- style for variables
-- },
-- custom_highlights = {} or function(highlights, palette) return {} end, -- extend highlights
-- custom_palette = {} or function(palette) return {} end, -- extend palette
-- terminal_colors = true, -- enable terminal colors
-- })
-- -- vim.cmd.colorscheme("tokyodark")
-- end,
-- },
-- {
-- "nyoom-engineering/oxocarbon.nvim",
-- lazy = false,
-- priority = 1000,
-- config = function()
-- -- vim.cmd.colorscheme("oxocarbon")
-- local hl = vim.api.nvim_set_hl
-- hl(0, "DiagnosticVirtualTextError", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextInfo", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextWarn", { link = "Comment" })
-- hl(0, "DiagnosticVirtualTextHint", { link = "Comment" })
-- hl(0, "DiagnosticUnderlineError", { underline = true, sp = "#858694" })
-- hl(0, "DiagnosticUnderlineWarn", { underline = true, sp = "#858694" })
-- hl(0, "DiagnosticUnderlineInfo", { underline = true, sp = "#858694" })
-- hl(0, "DiagnosticUnderlineHint", { underline = true, sp = "#858694" })
-- end,
-- },
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
config = function()
require("tokyonight").setup({
transparent = true, -- Enable this to disable setting the background color
styles = {
sidebars = "dark",
floats = "dark",
},
sidebars = { "qf", "help", "Outline" },
-- on_colors = function(colors)
-- colors.bg = "#16161E"
-- colors.bg_dark = "#0d0d12"
-- end,
on_highlights = function(hl, colors)
hl.DiagnosticVirtualTextError = {
fg = colors.comment
}
hl.DiagnosticVirtualTextHint = {
fg = colors.comment
}
hl.DiagnosticVirtualTextInfo = {
fg = colors.comment
}
hl.DiagnosticVirtualTextWarn = {
fg = colors.comment
}
-- hl.DiagnosticSignError = {
-- fg = colors.comment
-- }
-- hl.DiagnosticSignHint = {
-- fg = colors.comment
-- }
-- hl.DiagnosticSignInfo = {
-- fg = colors.comment
-- }
-- hl.DiagnosticSignWarn = {
-- fg = colors.comment
-- }
end,
})
vim.cmd.colorscheme("tokyonight")
-- vim.api.nvim_set_hl(0, "Normal", { bg = "none" })
-- vim.api.nvim_set_hl(0, "NormalFloat", { bg = "none" })
end,
},
}

View File

@ -1,69 +0,0 @@
return {
-- dap + dependencies
{
"mfussenegger/nvim-dap",
dependencies = {
{
"rcarriga/nvim-dap-ui",
dependencies = { "nvim-neotest/nvim-nio" },
--stylua: ignore
keys = {
{ "<leader>du", function() require("dapui").toggle({}) end, desc = "Dap UI" },
{ "<leader>de", function() require("dapui").eval() end, desc = "Eval", mode = { "n", "v" } },
},
opts = {},
config = function(_, opts)
require("dapui").setup(opts)
require("dap").listeners.after.event_initialized["dapui_config"] = function()
require("dapui").open({})
end
require("dap").listeners.before.event_terminated["dapui_config"] = function()
require("dapui").close({})
end
require("dap").listeners.before.event_exited["dapui_config"] = function()
require("dapui").close({})
end
end,
},
{
"theHamsta/nvim-dap-virtual-text",
opts = {},
},
{
"jay-babu/mason-nvim-dap.nvim",
dependencies = "mason.nvim",
cmd = { "DapInstall", "DapUninstall" },
opts = {
automatic_installation = true,
handlers = {},
ensure_installed = {
"bash-debug-adapter",
"codelldb",
"debugpy",
"go-debug-adapter",
},
},
},
},
--stylua: ignore
keys = {
{ "<leader>dB", function() require("dap").set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, desc = "Breakpoint Condition" },
{ "<leader>db", function() require("dap").toggle_breakpoint() end, desc = "Toggle Breakpoint" },
{ "<leader>dc", function() require("dap").continue() end, desc = "Continue" },
{ "<leader>da", function() require("dap").continue({ before = get_args }) end, desc = "Run with Args" },
{ "<leader>dC", function() require("dap").run_to_cursor() end, desc = "Run to Cursor" },
{ "<leader>dg", function() require("dap").goto_() end, desc = "Go to Line (No Execute)" },
{ "<leader>di", function() require("dap").step_into() end, desc = "Step Into" },
{ "<leader>dj", function() require("dap").down() end, desc = "Down" },
{ "<leader>dk", function() require("dap").up() end, desc = "Up" },
{ "<leader>dl", function() require("dap").run_last() end, desc = "Run Last" },
{ "<leader>do", function() require("dap").step_out() end, desc = "Step Out" },
{ "<leader>dO", function() require("dap").step_over() end, desc = "Step Over" },
{ "<leader>dp", function() require("dap").pause() end, desc = "Pause" },
{ "<leader>dr", function() require("dap").repl.toggle() end, desc = "Toggle REPL" },
{ "<leader>ds", function() require("dap").session() end, desc = "Session" },
{ "<leader>dt", function() require("dap").terminate() end, desc = "Terminate" },
{ "<leader>dw", function() require("dap.ui.widgets").hover() end, desc = "Widgets" },
},
}
}

View File

@ -1,117 +0,0 @@
return {
-- markdown
{
"OXY2DEV/markview.nvim",
enabled = false,
ft = { "markdown" },
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons"
},
-- opts = {
-- headings = {
-- enable = true,
-- shift_width = 4,
-- heading_1 = {
-- style = "label",
-- },
-- heading_2 = {
-- style = "label",
-- },
-- heading_3 = {
-- style = "label",
-- },
-- heading_4 = {
-- style = "label",
-- },
-- heading_5 = {
-- style = "label",
-- },
-- heading_6 = {
-- style = "label",
-- }
-- }
-- }
},
{
"ixru/nvim-markdown",
ft = { "markdown" },
},
-- glow preview
{
"0x00-ketsu/markdown-preview.nvim",
keys = {
{ "<leader>cm", "<cmd>lua require('markdown-preview')<cr><cmd>MPToggle<cr>", desc = "[M]arkdown preview" },
},
opts = {},
},
-- qalc
{
"iffse/qalculate.vim",
event = "BufEnter *.qalc",
},
-- {
-- "grueslayer/qalc.nvim",
-- branch = "scratch_buffer",
-- event = "BufEnter *.qalc",
-- cmd = { "QalcAttach", "QalcYank" },
-- dependencies = {
-- "iffse/qalculate.vim"
-- },
-- keys = {
-- { "<leader>cqa", "<cmd>QalcAttach<CR>", desc = "Attach Calculator" },
-- { "<leader>cqy", "<cmd>QalcYank<CR>", desc = "Yank Result" },
-- },
-- opts = {
-- bufname = '', -- string
-- set_ft = 'qalculate', -- string
-- attach_extension = '*.qalc', -- string
-- sign = ' ==> ', -- string
-- show_sign = true, -- boolean
-- right_align = true, -- boolean
-- highlights = {
-- sign = '@comment', -- sign before result
-- result = '@string', -- result in virtual text
-- },
-- diagnostics = { -- table
-- underline = false,
-- virtual_text = false,
-- signs = true,
-- update_in_insert = true,
-- severity_sort = true,
-- }
-- }
-- },
-- vimtex + snippets
{
"lervag/vimtex",
ft = "tex",
dependencies = {
{
"iurimateus/luasnip-latex-snippets.nvim",
dependencies = "L3MON4D3/LuaSnip",
config = function()
require("luasnip-latex-snippets").setup()
-- or setup({ use_treesitter = true })
require("luasnip").config.setup({ enable_autosnippets = true })
end,
},
},
keys = {
{ "<leader>cc", "<cmd>VimtexCompile<cr>", desc = "[C]ompile latex" },
{ "<leader>co", "<cmd>VimtexCompileOutput<cr>", desc = "Show latex compiler output" },
},
config = function()
vim.g.vimtex_view_general_viewer = "zathura"
-- vim.g.vimtex_view_general_options = [[--unique file:@pdf\#src:@line@tex]]
-- vim.g.vimtex_quickfix_enabled = 1
vim.g.vimtex_syntax_enabled = 1
vim.g.vimtex_quickfix_mode = 0
vim.g.vimtex_compiler_method = "tectonic"
-- vim.cmd("call vimtex#init()")
end,
}
}

View File

@ -1,590 +0,0 @@
return {
-- project management
{
"ahmedkhalf/project.nvim",
event = "VeryLazy",
keys = {
{
"<A-p>",
function()
local contents = require("project_nvim").get_recent_projects()
local reverse = {}
for i = #contents, 1, -1 do
reverse[#reverse + 1] = contents[i]
end
require("fzf-lua").fzf_exec(reverse, {
actions = {
["default"] = function(e)
-- vim.cmd.cd(e[1])
require("fzf-lua").files({ cwd = e[1] })
end,
["ctrl-d"] = function(x)
local choice = vim.fn.confirm("Delete '" .. #x .. "' projects? ", "&Yes\n&No", 2)
if choice == 1 then
local history = require("project_nvim.utils.history")
for _, v in ipairs(x) do
history.delete_project(v)
end
end
end,
},
winopts = {
height = 0.3,
width = 0.5,
},
})
end,
desc = "Projects"
},
},
config = function()
require("project_nvim").setup {
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json", "tex" },
}
end,
},
-- harpoon
{
"ThePrimeagen/harpoon",
branch = "harpoon2",
dependencies = { "nvim-lua/plenary.nvim" },
keys = {
{ "<leader>a", function() require("harpoon"):list():add() end, desc = "Add to harpoon" },
{ "<leader>h", function() require("harpoon").ui:toggle_quick_menu(require("harpoon"):list()) end, desc = "harpoon ui" },
{ "<leader>1", function() require("harpoon"):list():select(1) end, desc = "Harpoon Select 1" },
{ "<leader>2", function() require("harpoon"):list():select(2) end, desc = "Harpoon Select 2" },
{ "<leader>3", function() require("harpoon"):list():select(3) end, desc = "Harpoon Select 3" },
{ "<leader>4", function() require("harpoon"):list():select(4) end, desc = "Harpoon Select 4" },
{ "<leader>5", function() require("harpoon"):list():select(5) end, desc = "Harpoon Select 5" },
{ "<leader>6", function() require("harpoon"):list():select(6) end, desc = "Harpoon Select 6" },
{ "<leader>7", function() require("harpoon"):list():select(7) end, desc = "Harpoon Select 7" },
{ "<leader>8", function() require("harpoon"):list():select(8) end, desc = "Harpoon Select 8" },
{ "<leader>9", function() require("harpoon"):list():select(9) end, desc = "Harpoon Select 9" },
},
config = function()
require("harpoon"):setup()
end
},
-- todo-comments
{
"folke/todo-comments.nvim",
dependencies = "nvim-lua/plenary.nvim",
cmd = { "TodoTrouble" },
event = "VeryLazy",
config = true,
-- stylua: ignore
keys = {
{ "]t", function() require("todo-comments").jump_next() end, desc = "Next Todo Comment" },
{ "[t", function() require("todo-comments").jump_prev() end, desc = "Previous Todo Comment" },
{ "<leader>xt", "<cmd>TodoTrouble<cr>", desc = "Todo (Trouble)" },
{ "<leader>xT", "<cmd>TodoTrouble keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme (Trouble)" },
-- { "<leader>st", "<cmd>TodoTelescope<cr>", desc = "Todo" },
-- { "<leader>sT", "<cmd>TodoTelescope keywords=TODO,FIX,FIXME<cr>", desc = "Todo/Fix/Fixme" },
},
},
-- trouble
{
"folke/trouble.nvim",
cmd = { "TroubleToggle", "Trouble" },
opts = { use_diagnostic_signs = true },
keys = {
{ "<leader>xx", "<cmd>Trouble diagnostics toggle<cr>", desc = "Diagnostics (Trouble)" },
{ "<leader>xX", "<cmd>Trouble diagnostics toggle filter.buf=0<cr>", desc = "Buffer Diagnostics (Trouble)" },
{ "<leader>xs", "<cmd>Trouble symbols toggle focus=false<cr>", desc = "Symbols (Trouble)" },
{ "<leader>xS", "<cmd>Trouble lsp toggle focus=false win.position=right<cr>", desc = "LSP references/definitions/... (Trouble)", },
{ "<leader>xL", "<cmd>Trouble loclist toggle<cr>", desc = "Location List (Trouble)" },
{ "<leader>xQ", "<cmd>Trouble qflist toggle<cr>", desc = "Quickfix List (Trouble)" },
{
"[q",
function()
if require("trouble").is_open() then
require("trouble").previous({ skip_groups = true, jump = true })
else
local ok, err = pcall(vim.cmd.cprev)
if not ok then
vim.notify(err, vim.log.levels.ERROR)
end
end
end,
desc = "Previous Trouble/Quickfix Item",
},
{
"]q",
function()
if require("trouble").is_open() then
require("trouble").next({ skip_groups = true, jump = true })
else
local ok, err = pcall(vim.cmd.cnext)
if not ok then
vim.notify(err, vim.log.levels.ERROR)
end
end
end,
desc = "Next Trouble/Quickfix Item",
},
},
},
-- spectre
{
"nvim-pack/nvim-spectre",
build = false,
cmd = "Spectre",
opts = { open_cmd = "noswapfile vnew" },
-- stylua: ignore
keys = {
{ "<leader>sr", function() require("spectre").open() end, desc = "Replace in Files (Spectre)" },
},
},
-- sessions
{
"folke/persistence.nvim",
event = "BufReadPre",
opts = { options = vim.opt.sessionoptions:get() },
-- stylua: ignore
keys = {
{ "<leader>qs", function() require("persistence").load() end, desc = "Restore Session" },
{ "<leader>ql", function() require("persistence").load({ last = true }) end, desc = "Restore Last Session" },
{ "<leader>qd", function() require("persistence").stop() end, desc = "Don't Save Current Session" },
},
},
-- illuminate
{
"RRethy/vim-illuminate",
enabled = true,
event = "VeryLazy",
opts = {
delay = 200,
large_file_cutoff = 2000,
large_file_overrides = {
providers = { "lsp" },
},
filetypes_denylist = {
"alpha",
"help",
"lazy",
"mason",
"outline",
"toggleterm",
"fzf",
"lspinfo",
"null-ls-info",
},
},
config = function(_, opts)
require("illuminate").configure(opts)
local function map(key, dir, buffer)
vim.keymap.set("n", key, function()
require("illuminate")["goto_" .. dir .. "_reference"](false)
end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer })
end
map("]]", "next")
map("[[", "prev")
-- also set it after loading ftplugins, since a lot overwrite [[ and ]]
vim.api.nvim_create_autocmd("FileType", {
callback = function()
local buffer = vim.api.nvim_get_current_buf()
map("]]", "next", buffer)
map("[[", "prev", buffer)
end,
})
end,
keys = {
{ "]]", desc = "Next Reference" },
{ "[[", desc = "Prev Reference" },
},
},
-- symbols sidebar
{
"hedyhli/outline.nvim",
lazy = true,
cmd = { "Outline", "OutlineOpen" },
keys = {
{ "<leader>cn", "<cmd>Outline<CR>", desc = "Toggle outline" },
},
opts = {
outline_window = {
focus_on_open = false,
},
},
},
-- folds
{
"kevinhwang91/nvim-ufo",
dependencies = "kevinhwang91/promise-async",
event = "VeryLazy",
opts = {},
},
-- comments
{
"numToStr/Comment.nvim",
dependencies = {
{ "nvim-treesitter/nvim-treesitter" },
{
"JoosepAlviste/nvim-ts-context-commentstring",
config = function()
require("ts_context_commentstring").setup({
enable_autocmd = false,
})
vim.g.skip_ts_context_commentstring_module = true
end,
},
},
config = function()
require("Comment").setup({
pre_hook = require("ts_context_commentstring.integrations.comment_nvim").create_pre_hook(),
})
end,
keys = {
{ "gcc", mode = "n", desc = "Comment toggle current line" },
{ "gc", mode = { "n", "o" }, desc = "Comment toggle linewise" },
{ "gc", mode = "x", desc = "Comment toggle linewise (visual)" },
{ "gbc", mode = "n", desc = "Comment toggle current block" },
{ "gb", mode = { "n", "o" }, desc = "Comment toggle blockwise" },
{ "gb", mode = "x", desc = "Comment toggle blockwise (visual)" },
},
},
-- surround
{
"echasnovski/mini.surround",
event = "VeryLazy",
opts = {
mappings = {
add = "gza", -- Add surrounding in Normal and Visual modes
delete = "gzd", -- Delete surrounding
find = "gzf", -- Find surrounding (to the right)
find_left = "gzF", -- Find surrounding (to the left)
highlight = "gzh", -- Highlight surrounding
replace = "gzr", -- Replace surrounding
update_n_lines = "gzn", -- Update `n_lines`
},
},
},
-- whichkey
{
"folke/which-key.nvim",
event = "VeryLazy",
keys = { "<leader>", "<space>", " ", "'", "`", "g", "c", "v", "z", "[", "]", "<M>" },
cmd = "WhichKey",
opts = {},
},
-- autopairs
{
"windwp/nvim-autopairs",
enabled = false,
event = "InsertEnter",
opts = {
ignored_next_char = "[%w%.]",
},
},
{
"echasnovski/mini.pairs",
event = "VeryLazy",
opts = {
modes = { insert = true, command = true, terminal = false },
-- skip autopair when next character is one of these
skip_next = [=[[%w%%%'%[%"%.%`%$]]=],
-- skip autopair when the cursor is inside these treesitter nodes
skip_ts = { "string" },
-- skip autopair when next character is closing pair
-- and there are more closing pairs than opening pairs
skip_unbalanced = true,
-- better deal with markdown code blocks
markdown = true,
},
keys = {
{
"<leader>up",
function() vim.g.minipairs_disable = not vim.g.minipairs_disable end,
desc = "Toggle Auto Pairs",
}
}
},
-- leap
{
"ggandor/leap.nvim",
enabled = true,
dependencies = {
{
"ggandor/flit.nvim",
enabled = true,
keys = function()
local ret = {}
for _, key in ipairs({ "f", "F", "t", "T" }) do
ret[#ret + 1] = { key, mode = { "n", "x", "o" }, desc = key }
end
return ret
end,
opts = { labeled_modes = "nx" },
},
{ "tpope/vim-repeat" },
},
keys = {
{ "s", mode = { "n", "x", "o" }, desc = "Leap Forward to" },
{ "S", mode = { "n", "x", "o" }, desc = "Leap Backward to" },
{ "gs", mode = { "n", "x", "o" }, desc = "Leap from Windows" },
},
config = function(_, opts)
local leap = require("leap")
for k, v in pairs(opts) do
leap.opts[k] = v
end
leap.add_default_mappings(true)
vim.keymap.del({ "x", "o" }, "x")
vim.keymap.del({ "x", "o" }, "X")
vim.api.nvim_set_hl(0, "LeapBackdrop", { link = "Comment" })
vim.api.nvim_set_hl(0, "LeapMatch", { fg = "white", bold = true, nocombine = true })
vim.api.nvim_set_hl(0, "LeapLabelPrimary", { fg = "#f02077", bold = true, nocombine = true })
vim.api.nvim_set_hl(0, "LeapLabelSecondary", { fg = "#99ddff", bold = true, nocombine = true })
local api = vim.api
local ts = vim.treesitter
local function get_ts_nodes()
if not pcall(ts.get_parser) then return end
local wininfo = vim.fn.getwininfo(api.nvim_get_current_win())[1]
-- Get current node, and then its parent nodes recursively.
local cur_node = ts.get_node()
if not cur_node then return end
local nodes = { cur_node }
local parent = cur_node:parent()
while parent do
table.insert(nodes, parent)
parent = parent:parent()
end
-- Create Leap targets from TS nodes.
local targets = {}
local startline, startcol
for _, node in ipairs(nodes) do
startline, startcol, endline, endcol = node:range() -- (0,0)
local startpos = { startline + 1, startcol + 1 }
local endpos = { endline + 1, endcol + 1 }
-- Add both ends of the node.
if startline + 1 >= wininfo.topline then
table.insert(targets, { pos = startpos, altpos = endpos })
end
if endline + 1 <= wininfo.botline then
table.insert(targets, { pos = endpos, altpos = startpos })
end
end
if #targets >= 1 then return targets end
end
local function select_node_range(target)
local mode = api.nvim_get_mode().mode
-- Force going back to Normal from Visual mode.
if not mode:match('no?') then vim.cmd('normal! ' .. mode) end
vim.fn.cursor(unpack(target.pos))
local v = mode:match('V') and 'V' or mode:match('<EFBFBD>') and '<EFBFBD>' or 'v'
vim.cmd('normal! ' .. v)
vim.fn.cursor(unpack(target.altpos))
end
local function leap_ts()
require('leap').leap {
target_windows = { api.nvim_get_current_win() },
targets = get_ts_nodes,
action = select_node_range,
}
end
vim.keymap.set({ 'x', 'o' }, '\\', leap_ts)
end,
},
-- colorizer
{
"NvChad/nvim-colorizer.lua",
event = "VeryLazy",
opts = {
user_default_options = {
css = true,
RRGGBBAA = true,
AARRGGBB = true,
names = false,
RGB = false,
},
},
},
-- file manager
{
"lmburns/lf.nvim",
dependencies = { "nvim-lua/plenary.nvim", "akinsho/toggleterm.nvim" },
opts = {
winblend = 0,
highlights = { NormalFloat = { guibg = "NONE" } },
border = "rounded",
escape_quit = true,
},
keys = {
{ "<leader><space>", "<cmd>lua require('lf').start()<cr>", desc = "Lf file manager" },
},
},
-- gitsigns
{
"lewis6991/gitsigns.nvim",
init = function()
-- load gitsigns only when a git file is opened
vim.api.nvim_create_autocmd({ "BufRead" }, {
group = vim.api.nvim_create_augroup("GitSignsLazyLoad", { clear = true }),
callback = function()
vim.fn.system("git -C " .. '"' .. vim.fn.expand("%:p:h") .. '"' .. " rev-parse")
if vim.v.shell_error == 0 then
vim.api.nvim_del_augroup_by_name("GitSignsLazyLoad")
vim.schedule(function()
require("lazy").load({ plugins = { "gitsigns.nvim" } })
end)
end
end,
})
end,
opts = {
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "" },
topdelete = { text = "" },
changedelete = { text = "" },
untracked = { text = "" },
},
on_attach = function(buffer)
local gs = package.loaded.gitsigns
local function map(mode, l, r, desc)
vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
end
-- stylua: ignore start
map("n", "]h", gs.next_hunk, "Next Hunk")
map("n", "[h", gs.prev_hunk, "Prev Hunk")
map({ "n", "v" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
map({ "n", "v" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
map("n", "<leader>ghp", gs.preview_hunk_inline, "Preview Hunk Inline")
map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")
map("n", "<leader>ghd", gs.diffthis, "Diff This")
map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")
map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
end,
},
},
-- undotree sidebar
{
"jiaoshijie/undotree",
dependencies = "nvim-lua/plenary.nvim",
config = true,
keys = { -- load the plugin only when using it's keybinding:
{ "<leader>u", "<cmd>lua require('undotree').toggle()<cr>" },
},
},
-- terminal
{
"akinsho/toggleterm.nvim",
cmd = { "ToggleTerm" },
opts = {},
keys = {
{ "<leader>t", "<cmd>ToggleTerm direction=vertical<cr>", desc = "Open terminal" },
{
"<leader>gg",
"<cmd>lua _LAZYGIT_TOGGLE()<CR>",
desc = "Toggle Lazy[G]it",
silent = true,
noremap = true,
},
{
"<leader>p",
":lua RUN_CODE()<CR>",
desc = "Run [P]roject",
silent = true,
noremap = true,
},
},
config = function()
require("toggleterm").setup({
size = function(term)
if term.direction == "horizontal" then
return 15
elseif term.direction == "vertical" then
return vim.o.columns * 0.45
end
end,
})
local run_command_table = {
["cpp"] = "([[ -f Makefile ]] && make all run)",
["c"] = "gcc -g -Wall % -o %:r && ./%:r",
["python"] = "python %",
["lua"] = "lua %",
["zsh"] = "zsh %",
["sh"] = "sh %",
["qalculate"] = "qalc --color='1' --file %",
-- ["java"] = "cd %:h && javac *.java && java %:t:r",
-- ["asm"] = "nasm -f elf64 % -o %:r.o && ld %:r.o -o %:r && ./%:r && rm %:r.o",
-- ["cpp"] = "g++ -g -Wall -Weffc++ -Wextra -Wconversion -Wsign-conversion -Werror -std=c++20 -pedantic-errors % -o %:r && ./%:r",
-- ["rust"] = "rustc % && ./%:r",
-- ["go"] = "go run %",
-- ["javascript"] = "node %",
}
local extra = 'printf "\\\\n\\\\033[0;33mPress ENTER to continue \\\\033[0m"; read'
local Terminal = require("toggleterm.terminal").Terminal
function EXPAND_SYMBOL_RESOLVER(cmd)
local mod = string.byte("%")
local space = string.byte(" ")
local col = string.byte(":")
local i = 1
local expanded_cmd = ""
while i <= #cmd do
if cmd:byte(i) == mod then
local j = i + 1
while cmd:byte(j) == col and cmd:byte(j + 1) ~= space and j <= #cmd do
j = j + 2
end
expanded_cmd = expanded_cmd .. vim.fn.expand(string.sub(cmd, i, j - 1))
i = j
end
expanded_cmd = expanded_cmd .. string.sub(cmd, i, i)
i = i + 1
end
return expanded_cmd
end
function RUN_CODE()
if run_command_table[vim.bo.filetype] then
local expanded_cmd = EXPAND_SYMBOL_RESOLVER(run_command_table[vim.bo.filetype])
local runcmd = expanded_cmd .. "; " .. extra
local runterm = Terminal:new({ cmd = runcmd, direction = "vertical" })
runterm:toggle()
else
print("\nFileType not supported\n")
end
end
function _LAZYGIT_TOGGLE()
Terminal:new({ cmd = "lazygit", hidden = true, direction = "float" }):toggle()
end
end,
},
}

View File

@ -1,35 +0,0 @@
return {
-- fzf
{
"ibhagwan/fzf-lua",
keys = {
{ "<leader>/", function() require("fzf-lua").buffers() end, desc = "Switch buffers" },
{ "<leader>l", function() require("fzf-lua").live_grep_native() end, desc = "Live Grep" },
{ "<leader>o", function() require("fzf-lua").oldfiles() end, desc = "Open Recent file" },
{ "<leader>b", function() require("fzf-lua").builtin() end, desc = "FZF menu" },
{ "<leader>ca", function() require("fzf-lua").lsp_code_actions() end, mode = { "n", "v" }, desc = "LSP Code Actions" },
{ "<leader>cd", function() require("fzf-lua").lsp_definitions() end, mode = { "n", "v" }, desc = "LSP Definitions" },
{ "<leader>cD", function() require("fzf-lua").lsp_declarations() end, mode = { "n", "v" }, desc = "LSP Declarations" },
{ "<leader>cI", function() require("fzf-lua").lsp_implementations() end, mode = { "n", "v" }, desc = "LSP Implementations" },
{ "<leader>cr", function() require("fzf-lua").lsp_references() end, mode = { "n", "v" }, desc = "LSP References" },
{ "<leader>ce", function() require("fzf-lua").lsp_document_diagnostics() end, desc = "LSP Diagnostics" },
{ "<leader>cwe", function() require("fzf-lua").lsp_workspace_diagnostics() end, desc = "LSP Workspace Diagnostics" },
{ "<leader>cs", function() require("fzf-lua").lsp_document_symbols() end, desc = "Symbols" },
{ "<leader>cS", function() require("fzf-lua").lsp_workspace_symbols() end, desc = "Workspace Symbols" },
{ "<leader>cD", function() require("fzf-lua").lsp_declarations() end, mode = { "n", "v" }, desc = "LSP Declarations" },
},
config = function()
require("fzf-lua").setup({
previewers = {
builtin = {
extensions = {
["png"] = { "ueberzug" },
["jpg"] = { "ueberzug" },
},
ueberzug_scaler = "fit_contain",
}
}
})
end,
}
}

View File

@ -1,261 +0,0 @@
return {
{
"VonHeikemen/lsp-zero.nvim",
branch = "v3.x",
lazy = true,
config = false,
init = function()
vim.g.lsp_zero_extend_cmp = 0
vim.g.lsp_zero_extend_lspconfig = 0
end,
},
-- autocompletion
{
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
{ "L3MON4D3/LuaSnip" },
{ "hrsh7th/cmp-buffer" },
{ "https://codeberg.org/FelipeLema/cmp-async-path" },
{ "hrsh7th/cmp-nvim-lsp" },
{ "saadparwaiz1/cmp_luasnip" },
{ "rafamadriz/friendly-snippets" },
{ "onsails/lspkind.nvim" },
{ "hrsh7th/cmp-calc" },
{ "f3fora/cmp-spell" },
{ "micangl/cmp-vimtex" },
{ "Jezda1337/nvim-html-css" },
},
config = function()
local lsp_zero = require("lsp-zero")
lsp_zero.extend_cmp()
local cmp = require("cmp")
local cmp_action = lsp_zero.cmp_action()
-- Lazy load snippets from VSCode
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load({ paths = { "./lua/snippets" } })
cmp.setup({
sources = {
{ name = "luasnip" },
{ name = "nvim_lsp" },
{ name = "buffer" },
{ name = "async_path" },
{ name = "calc" },
{ name = "html-css" },
{ name = "vimtex" },
{
name = "spell",
option = {
keep_all_entries = false,
enable_in_context = function()
return true
end,
},
},
},
preselect = "item",
completion = {
completeopt = "menu,menuone,noinsert",
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
maxwidth = 30,
fields = { "abbr", "kind" },
format = require("lspkind").cmp_format({
mode = "symbol_text",
maxwidth = 30,
ellipsis_char = "",
}),
},
mapping = cmp.mapping.preset.insert({
["<C-Space>"] = cmp.mapping.complete(),
["<C-u>"] = cmp.mapping.scroll_docs(-4),
["<C-d>"] = cmp.mapping.scroll_docs(4),
["<C-f>"] = cmp_action.luasnip_jump_forward(),
["<C-b>"] = cmp_action.luasnip_jump_backward(),
["<CR>"] = cmp.mapping.confirm({ select = false }),
["<Tab>"] = cmp_action.luasnip_supertab(),
["<S-Tab>"] = cmp_action.luasnip_shift_supertab(),
}),
snippet = {
expand = function(args)
require("luasnip").lsp_expand(args.body)
end,
},
})
end,
},
-- lsp
{
"neovim/nvim-lspconfig",
cmd = { "LspInfo", "LspInstall", "LspStart" },
event = { "BufReadPre", "BufNewFile" },
dependencies = {
{
"williamboman/mason.nvim",
config = true,
},
{ "hrsh7th/cmp-nvim-lsp" },
{ "williamboman/mason-lspconfig.nvim" },
{
"SmiteshP/nvim-navbuddy",
dependencies = {
"SmiteshP/nvim-navic",
"MunifTanjim/nui.nvim"
},
keys = {
{ "<leader>n", function() require("nvim-navbuddy").open() end, desc = "Open Navbuddy" },
},
opts = {
lsp = {
auto_attach = true
},
window = {
border = "rounded",
},
}
}
},
config = function()
local lsp_zero = require("lsp-zero")
lsp_zero.extend_lspconfig()
lsp_zero.on_attach(function(client, bufnr)
lsp_zero.default_keymaps({
buffer = bufnr,
-- exclude = { 'gl', 'K' },
})
end)
vim.diagnostic.config({
underline = false,
virtual_text = true,
signs = {
text = {
[vim.diagnostic.severity.ERROR] = "",
[vim.diagnostic.severity.WARN] = "",
[vim.diagnostic.severity.HINT] = "󰌵",
[vim.diagnostic.severity.INFO] = ""
}
},
update_in_insert = false,
severity_sort = true,
})
-- vim.cmd("hi Keyword gui=italic,bold cterm=italic,bold")
vim.cmd("hi Comment gui=italic cterm=italic")
vim.api.nvim_set_hl(0, "DiagnosticVirtualTextError", { link = "Comment" })
vim.api.nvim_set_hl(0, "DiagnosticVirtualTextInfo", { link = "Comment" })
vim.api.nvim_set_hl(0, "DiagnosticVirtualTextWarn", { link = "Comment" })
vim.api.nvim_set_hl(0, "DiagnosticVirtualTextHint", { link = "Comment" })
require("mason-lspconfig").setup({
ensure_installed = {
"clangd",
"ruff_lsp",
"marksman",
"html",
"cssls",
"lua_ls",
"bashls",
"texlab",
"jsonls",
"eslint",
"vtsls",
},
handlers = {
lsp_zero.default_setup,
lua_ls = function()
require("lspconfig").lua_ls.setup({
settings = {
Lua = {
workspace = { checkThirdParty = false },
telemetry = { enable = false },
},
completion = {
callSnippet = 'Replace',
},
},
})
end,
clangd = function()
require("lspconfig").clangd.setup({
capabilities = { offsetEncoding = "utf-16" },
-- cmd = {
-- "clangd",
-- "--background-index",
-- "--clang-tidy",
-- "--header-insertion=iwyu",
-- "--completion-style=detailed",
-- "--function-arg-placeholders",
-- "--fallback-style=llvm",
-- },
-- init_options = {
-- usePlaceholders = true,
-- completeUnimported = true,
-- clangdFileStatus = true,
-- },
})
end,
-- ltex = function()
-- require("lspconfig").ltex.setup({
-- settings = {
-- ltex = {
-- language = {"en-US"},
-- -- dictionary = {":~/.config/nvim/spell/en.utf-8.add"},
-- disabledRules = { ['en-US'] = { 'MORFOLOGIK_RULE_EN_US' } },
-- },
-- },
-- })
-- end,
vtsls = function()
require("lspconfig").vtsls.setup({
filetypes = {
"javascript",
"javascriptreact",
"javascript.jsx",
"typescript",
"typescriptreact",
"typescript.tsx",
},
settings = {
complete_function_calls = true,
vtsls = {
enableMoveToFileCodeAction = true,
autoUseWorkspaceTsdk = true,
experimental = {
completion = {
enableServerSideFuzzyMatch = true,
},
},
},
typescript = {
updateImportsOnFileMove = { enabled = "always" },
suggest = {
completeFunctionCalls = true,
},
inlayHints = {
enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true },
parameterNames = { enabled = "literals" },
parameterTypes = { enabled = true },
propertyDeclarationTypes = { enabled = true },
variableTypes = { enabled = false },
},
},
},
})
end
},
})
end,
},
}

View File

@ -1,45 +0,0 @@
return {
-- formatting and linting
{
"nvimtools/none-ls.nvim",
event = "LspAttach",
opts = function()
local formatting = require("null-ls").builtins.formatting
local lint = require("null-ls").builtins.diagnostics
local code_actions = require("null-ls").builtins.code_actions
-- local actions = require("null-ls").builtins.code_actions
return {
sources = {
-- Linting
lint.cppcheck, -- for c,cpp ( Install manually using pacman )
-- lint.proselint, -- for md
lint.stylelint, -- for css
lint.codespell, -- general code spellings
-- Formatting
formatting.shfmt, -- for sh
formatting.prettier, -- for js, md, html, css``
-- Code Actions
code_actions.proselint,
code_actions.gitsigns,
code_actions.refactoring.with({
filetypes = {
"go",
"javascript",
"lua",
"python",
"typescript",
"c",
"cpp"
}
}),
},
}
end,
keys = {
{ "<leader>f", ":lua vim.lsp.buf.format({ timeout_ms = 2000 })<CR>", desc = "Format", silent = true },
},
}
}

View File

@ -1,46 +0,0 @@
return {
-- refactoring
{
"ThePrimeagen/refactoring.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
},
event = "LspAttach",
cmd = { "Refactor" },
config = function()
require("refactoring").setup({
prompt_func_return_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
prompt_func_param_type = {
go = false,
java = false,
cpp = false,
c = false,
h = false,
hpp = false,
cxx = false,
},
printf_statements = {},
print_var_statements = {},
show_success_message = false,
})
vim.keymap.set("x", "<leader>re", ":Refactor extract ")
vim.keymap.set("x", "<leader>rf", ":Refactor extract_to_file ")
vim.keymap.set("x", "<leader>rv", ":Refactor extract_var ")
vim.keymap.set({ "n", "x" }, "<leader>ri", ":Refactor inline_var")
vim.keymap.set("n", "<leader>rI", ":Refactor inline_func")
vim.keymap.set("n", "<leader>rb", ":Refactor extract_block")
vim.keymap.set("n", "<leader>rbf", ":Refactor extract_block_to_file")
end,
},
}

View File

@ -1,105 +0,0 @@
return {
-- treesitter
{
"nvim-treesitter/nvim-treesitter",
version = false,
event = { "BufReadPre", "BufNewFile" },
build = ":TSUpdate",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
{
"windwp/nvim-ts-autotag",
opts = {},
},
},
config = function()
local treesitter = require("nvim-treesitter.configs")
treesitter.setup({
highlight = { enable = true, disable = { "latex" } },
indent = { enable = true },
ensure_installed = {
"bash",
"html",
"css",
"javascript",
"lua",
"python",
"vim",
"vimdoc",
"yaml",
"json",
"c",
"cpp",
"go",
"rust",
"regex",
"latex",
"bibtex"
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = "<c-s>",
node_decremental = "<M-space>",
},
},
textobjects = {
move = {
enable = true,
goto_next_start = { ["]f"] = "@function.outer", ["]c"] = "@class.outer" },
goto_next_end = { ["]F"] = "@function.outer", ["]C"] = "@class.outer" },
goto_previous_start = { ["[f"] = "@function.outer", ["[c"] = "@class.outer" },
goto_previous_end = { ["[F"] = "@function.outer", ["[C"] = "@class.outer" },
},
},
})
end,
},
-- mini.ai
{
"echasnovski/mini.ai",
-- keys = {
-- { "a", mode = { "x", "o" } },
-- { "i", mode = { "x", "o" } },
-- },
event = "VeryLazy",
opts = function()
local ai = require("mini.ai")
return {
n_lines = 500,
custom_textobjects = {
o = ai.gen_spec.treesitter({
a = { "@block.outer", "@conditional.outer", "@loop.outer" },
i = { "@block.inner", "@conditional.inner", "@loop.inner" },
}, {}),
f = ai.gen_spec.treesitter({ a = "@function.outer", i = "@function.inner" }, {}),
c = ai.gen_spec.treesitter({ a = "@class.outer", i = "@class.inner" }, {}),
t = { "<([%p%w]-)%f[^<%w][^<>]->.-</%1>", "^<.->().*()</[^/]->$" },
d = { "%f[%d]%d+" }, -- digits
e = { -- Word with case
{
"%u[%l%d]+%f[^%l%d]",
"%f[%S][%l%d]+%f[^%l%d]",
"%f[%P][%l%d]+%f[^%l%d]",
"^[%l%d]+%f[^%l%d]",
},
"^().*()$",
},
g = function() -- Whole buffer, similar to `gg` and 'G' motion
local from = { line = 1, col = 1 }
local to = {
line = vim.fn.line("$"),
col = math.max(vim.fn.getline("$"):len(), 1),
}
return { from = from, to = to }
end,
u = ai.gen_spec.function_call(), -- u for "Usage"
U = ai.gen_spec.function_call({ name_pattern = "[%w_]" }), -- without dot in function name
},
}
end,
}
}

View File

@ -1,398 +0,0 @@
return {
{
"folke/noice.nvim",
enabled = true,
event = "VeryLazy",
opts = {
lsp = {
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
signature = { enabled = false },
hover = { enabled = false }
},
routes = {
{
filter = {
event = "msg_show",
any = {
{ find = "%d+L, %d+B" },
{ find = "; after #%d+" },
{ find = "; before #%d+" },
},
},
view = "mini",
},
},
presets = {
bottom_search = true,
command_palette = true,
long_message_to_split = true,
},
},
-- stylua: ignore
keys = {
{ "<leader>sn", "", desc = "+noice"},
{ "<S-Enter>", function() require("noice").redirect(vim.fn.getcmdline()) end, mode = "c", desc = "Redirect Cmdline" },
{ "<leader>snl", function() require("noice").cmd("last") end, desc = "Noice Last Message" },
{ "<leader>snh", function() require("noice").cmd("history") end, desc = "Noice History" },
{ "<leader>sna", function() require("noice").cmd("all") end, desc = "Noice All" },
{ "<leader>snd", function() require("noice").cmd("dismiss") end, desc = "Dismiss All" },
{ "<leader>snt", function() require("noice").cmd("pick") end, desc = "Noice Picker (Telescope/FzfLua)" },
{ "<c-f>", function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end, silent = true, expr = true, desc = "Scroll Forward", mode = {"i", "n", "s"} },
{ "<c-b>", function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end, silent = true, expr = true, desc = "Scroll Backward", mode = {"i", "n", "s"}},
},
config = function(_, opts)
-- HACK: noice shows messages from before it was enabled,
-- but this is not ideal when Lazy is installing plugins,
-- so clear the messages in this case.
if vim.o.filetype == "lazy" then
vim.cmd([[messages clear]])
end
require("noice").setup(opts)
end,
},
-- icons
{
"nvim-tree/nvim-web-devicons",
},
-- statusline
{
"nvim-lualine/lualine.nvim",
lazy = false,
-- event = "VeryLazy",
config = function()
local function get_colors()
local colorscheme = vim.g.colors_name
if colorscheme == "tokyonight-moon" then
local colors = require("tokyonight.colors").setup()
return {
bg = colors.bg,
fg = colors.comment,
active_buf = colors.fg,
}
elseif colorscheme == "default" then
return {
bg = '#14161b',
fg = '#9B9EA4',
active_buf = "#E0E2EA",
}
else
return {
bg = "",
fg = "",
active_buf = "",
}
end
end
local colors = get_colors()
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) > 80
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 config = {
options = {
component_separators = "",
section_separators = " ",
disabled_filetypes = { "help", "lazy", "mason", "fzf", "lspinfo", "alpha" },
theme = {
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end
ins_left({
"mode",
})
ins_left {
'diagnostics',
sources = { 'nvim_diagnostic' },
-- Displays diagnostics for the defined severity types
sections = { 'error', 'warn' },
symbols = { error = '', warn = '' },
colored = false,
}
ins_left {
function()
return '%='
end,
}
ins_left({
"buffers",
hide_filename_extension = false,
buffers_color = {
active = { fg = colors.active_buf, bg = colors.bg },
inactive = { fg = colors.fg, bg = colors.bg },
},
symbols = {
modified = "",
alternate_file = "",
},
cond = conditions.buffer_not_empty,
color = { fg = colors.active_buf, gui = "bold" },
})
ins_right({
function()
if vim.bo.filetype == "txt" or vim.bo.filetype == "markdown" or vim.bo.filetype == "tex" then
if vim.fn.wordcount().visual_words == 1 then
return tostring(vim.fn.wordcount().visual_words) .. " word"
elseif not (vim.fn.wordcount().visual_words == nil) then
return tostring(vim.fn.wordcount().visual_words) .. " words"
else
return tostring(vim.fn.wordcount().words) .. " words"
end
else
return ""
end
end,
})
ins_right({
-- Lsp server name
function()
local msg = "Inactive"
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
return client.name
end
end
return msg
end,
icon = "",
})
ins_right({
"branch",
icon = "",
color = { gui = "bold" },
})
ins_right({
"location",
})
require("lualine").setup(config)
end
},
-- indentation lines
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
event = "VeryLazy",
opts = {
-- scope = { enabled = false },
scope = { enabled = true },
exclude = {
filetypes = { "help", "lazy", "mason", "outline", "toggleterm", "fzf", "lspinfo" },
},
},
},
-- dashboard
{
"goolord/alpha-nvim",
event = "VimEnter",
config = function()
local dashboard = require("alpha.themes.dashboard")
local create_gradient = function(start, finish, steps)
local r1, g1, b1 =
tonumber("0x" .. start:sub(2, 3)),
tonumber("0x" .. start:sub(4, 5)),
tonumber("0x" .. start:sub(6, 7))
local r2, g2, b2 =
tonumber("0x" .. finish:sub(2, 3)),
tonumber("0x" .. finish:sub(4, 5)),
tonumber("0x" .. finish:sub(6, 7))
local r_step = (r2 - r1) / steps
local g_step = (g2 - g1) / steps
local b_step = (b2 - b1) / steps
local gradient = {}
for i = 1, steps do
local r = math.floor(r1 + r_step * i)
local g = math.floor(g1 + g_step * i)
local b = math.floor(b1 + b_step * i)
table.insert(gradient, string.format("#%02x%02x%02x", r, g, b))
end
return gradient
end
local function apply_gradient_hl(text)
local gradient = create_gradient("#5e81ac", "#60728a", #text)
local lines = {}
for i, line in ipairs(text) do
local tbl = {
type = "text",
val = line,
opts = {
hl = "HeaderGradient" .. i,
shrink_margin = false,
position = "center",
},
}
table.insert(lines, tbl)
-- create hl group
vim.api.nvim_set_hl(0, "HeaderGradient" .. i, { fg = gradient[i] })
end
return {
type = "group",
val = lines,
opts = { position = "center" },
}
end
local headers = require("ascii")
dashboard.section.buttons.val = {
dashboard.button("r", " Recent files", ":lua require('fzf-lua').oldfiles()<CR>"),
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
dashboard.button("p", " Projects",
function()
local contents = require("project_nvim").get_recent_projects()
local reverse = {}
for i = #contents, 1, -1 do
reverse[#reverse + 1] = contents[i]
end
require("fzf-lua").fzf_exec(reverse, {
actions = {
["default"] = function(e)
-- vim.cmd.cd(e[1])
require("fzf-lua").files({ cwd = e[1] })
end,
["ctrl-d"] = function(x)
local choice = vim.fn.confirm("Delete '" .. #x .. "' projects? ", "&Yes\n&No", 2)
if choice == 1 then
local history = require("project_nvim.utils.history")
for _, v in ipairs(x) do
history.delete_project(v)
end
end
end,
},
winopts = {
height = 0.4,
width = 0.5,
},
})
end),
-- dashboard.button("f", " Find file", ":lua require('fzf-lua').files()<CR>"),
-- dashboard.button("t", "󱎸 Find text", ":lua require('fzf-lua').live_grep_native()<CR>"),
dashboard.button("s", " Restore Session", ":lua require('persistence').load()<CR>"),
dashboard.button("n", "󰠮 Notes",
":lua require('fzf-lua').files({cmd=[[fd -t f -E '*.json' -E '*.pdf' -E '*.canvas']],cwd =[[~/notes]]})<CR>"),
dashboard.button("c", " Configuration", ":e $MYVIMRC <CR>"),
dashboard.button("z", "󰒲 Lazy", ":Lazy<CR>"),
dashboard.button("q", " Quit", ":qa<CR>"),
}
dashboard.section.buttons.opts.spacing = 0
vim.api.nvim_create_autocmd("User", {
pattern = "LazyVimStarted",
callback = function()
local stats = require("lazy").stats()
local ms = (math.floor(stats.startuptime * 100 + 0.5) / 100)
dashboard.section.footer.val = "󱎫 " .. ms .. " ms"
pcall(vim.cmd.AlphaRedraw)
end,
})
local headerKeys = {}
for key, _ in pairs(headers) do
table.insert(headerKeys, key)
end
local randomHeader = headerKeys[math.random(#headerKeys)]
dashboard.config.layout = {
{ type = "padding", val = 3 },
-- options = randomHeader, raven, yggdrasil,
-- void_stranger, aot, meatboy, isaac, gta,
-- hydra, spider, morse, sharp, galaxy,
apply_gradient_hl(headers[randomHeader]),
{ type = "padding", val = 4 },
dashboard.section.buttons,
{ type = "padding", val = 4 },
dashboard.section.footer,
}
dashboard.opts.opts.noautocmd = true
require("alpha").setup(dashboard.opts)
end,
},
-- zen-mode
{
"folke/zen-mode.nvim",
opts = {
window = {
backdrop = 0,
width = 100,
height = 0.85,
},
plugins = {
gitsigns = { enabled = false },
kitty = {
enabled = true,
font = "+2",
},
},
},
keys = {
{ "<leader>z", ":lua require('zen-mode').toggle()<CR>", desc = "[Z]en Mode", silent = true },
},
},
}

View File

@ -1,14 +0,0 @@
{
"Hello World": {
"prefix": "hello",
"body": [
"#include <iostream>",
"",
"int main () {",
"\t$1",
"\treturn 0;",
"}"
],
"description": "starter template"
}
}

View File

@ -1,48 +0,0 @@
{
"shebang": {
"prefix": "shebang",
"body": [
"#!/usr/bin/env ${1:sh}",
"#",
"# ${2:Description of the script.}$0"
],
"description": [
"Shebang to specify what shell is going to run the script by default. It includes a description of the script. \n\nIt must be defined in the first line of the script.\n\nBy using #!/usr/bin/env we are making the shebang portable, meaning it is going to work correctly even if the interpreter is not located under /usr/bin"
]
},
"Print Name and Date": {
"prefix": "signature",
"body": [
"${0:Author}",
"${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}"
],
"description": "Signature"
},
"MIT": {
"prefix": "mitl",
"description": "MIT License",
"body": [
"The MIT License (MIT)",
"",
"Copyright (c) ${CURRENT_YEAR} ${0:Author}",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in all",
"copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
"SOFTWARE."
]
}
}

View File

@ -1,25 +0,0 @@
{
"name": "user snippets",
"engines": {
"vscode": "^1.11.0"
},
"contributes": {
"snippets": [
{
"language": [
"plaintext",
"markdown",
"tex",
"html",
"global",
"all"
],
"path": "./global.json"
},
{
"language": "cpp",
"path": "./cpp.json"
}
]
}
}

@ -1 +1 @@
Subproject commit b221ccbc214e6b9c2ad73f2e69dc4b999f0591c3
Subproject commit a5f48fb1d7bcc044734009ddd8e70ea1efcce4fa

@ -1 +1 @@
Subproject commit 43631961b8c8099b3dc42027031a358fc5d87b8d
Subproject commit 914378fcc6aceb692f797a32c926ce40ec862984

@ -1 +1 @@
Subproject commit 0238bdf643c0152c2b17d3cc94c971fa18affa8d
Subproject commit f3284c5f9ef7fc519f1a2bfc5d216404ded405b0

@ -1 +1 @@
Subproject commit 33db255a2d3be3617eddb0da72b64ec7fd2d774e
Subproject commit ede0ce70a03e7a5ebc7a847ff48b8aedcfd514e8

View File

@ -9,7 +9,7 @@ Xcursor.size: 24
st.font: JetBrains Mono:size=10
st.borderpx: 10
st.alpha: 1.0
st.alpha: 0.8
st.tabspaces: 2
st.cwscale: 1.0
st.chscale: 1.0

3
.gitmodules vendored
View File

@ -13,3 +13,6 @@
[submodule ".config/suckless/slock"]
path = .config/suckless/slock
url = git@github.com:mintycube/slock.git
[submodule ".config/nvim"]
path = .config/nvim
url = git@github.com:mintycube/nvim-config.git

View File

@ -6,10 +6,10 @@ selection=$(fd --color=always \
-e md -e txt -e qalc \
| fzf \
--ansi \
--prompt="Notes  " \
--margin="10%,5%" \
--prompt=" Notes  " \
--margin="10%,3%" \
--no-info --height=100% --scrollbar="" \
--preview="glow ~/notes/{}" \
--preview-window="border-left")
--preview="fuz-preview ~/notes/{}" \
--preview-window="70%,border-left")
[ -n "$selection" ] && nvim ~/notes/"$selection"