This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

[Init] A new neovim config I made :3

Signed-off-by: RestedWicked <wicked@radiantware.xyz>

author
RestedWicked
date (Aug 13, 2025, 2:49 AM -0700) commit c1aec798
+848
+1
init.lua
··· 1 + require("wicked")
+28
lazy-lock.json
··· 1 + { 2 + "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, 3 + "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, 4 + "blink.cmp": { "branch": "main", "commit": "bae4bae0eedd1fa55f34b685862e94a222d5c6f8" }, 5 + "conform.nvim": { "branch": "master", "commit": "973f3cb73887d510321653044791d7937c7ec0fa" }, 6 + "fidget.nvim": { "branch": "main", "commit": "dafd592c7bdbb6cd6d17d3c9a1a8abf3930138c1" }, 7 + "guess-indent.nvim": { "branch": "main", "commit": "84a4987ff36798c2fc1169cbaff67960aed9776f" }, 8 + "harpoon": { "branch": "harpoon2", "commit": "ed1f853847ffd04b2b61c314865665e1dadf22c7" }, 9 + "indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" }, 10 + "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 11 + "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, 12 + "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, 13 + "mason-lspconfig.nvim": { "branch": "main", "commit": "7f0bf635082bb9b7d2b37766054526a6ccafdb85" }, 14 + "mason-tool-installer.nvim": { "branch": "main", "commit": "517ef5994ef9d6b738322664d5fdd948f0fdeb46" }, 15 + "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, 16 + "mini.nvim": { "branch": "main", "commit": "0e9d1f972a91acf5a0513319099ba41f7c09c30a" }, 17 + "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, 18 + "nvim-lspconfig": { "branch": "master", "commit": "f0c6ccf43997a1c7e9ec4aea36ffbf2ddd9f15ef" }, 19 + "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, 20 + "nvim-web-devicons": { "branch": "master", "commit": "c2599a81ecabaae07c49ff9b45dcd032a8d90f1a" }, 21 + "oil.nvim": { "branch": "master", "commit": "bbad9a76b2617ce1221d49619e4e4b659b3c61fc" }, 22 + "onedark.nvim": { "branch": "master", "commit": "de495fabe171d48aed5525f002d14414efcecbb2" }, 23 + "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, 24 + "telescope.nvim": { "branch": "master", "commit": "6312868392331c9c0f22725041f1ec2bef57c751" }, 25 + "trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" }, 26 + "vim-fugitive": { "branch": "master", "commit": "61b51c09b7c9ce04e821f6cf76ea4f6f903e3cf4" }, 27 + "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } 28 + }
+7
lua/wicked/init.lua
··· 1 + require("wicked.set") 2 + require("wicked.remap") 3 + require("wicked.lazy") 4 + 5 + vim.g.netrw_browse_split = 0 6 + vim.g.netrw_banner = 0 7 + vim.g.netrw_winsize = 25
+14
lua/wicked/lazy.lua
··· 1 + local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 2 + if not vim.loop.fs_stat(lazypath) then 3 + vim.fn.system({ 4 + "git", 5 + "clone", 6 + "--filter=blob:none", 7 + "https://github.com/folke/lazy.nvim.git", 8 + "--branch=stable", -- latest stable release 9 + lazypath, 10 + }) 11 + end 12 + vim.opt.rtp:prepend(lazypath) 13 + 14 + require("lazy").setup("wicked.plugins")
+98
lua/wicked/plugins/autocompletion.lua
··· 1 + return { -- Autocompletion 2 + 'saghen/blink.cmp', 3 + event = 'VimEnter', 4 + version = '1.*', 5 + dependencies = { 6 + -- Snippet Engine 7 + { 8 + 'L3MON4D3/LuaSnip', 9 + version = '2.*', 10 + build = (function() 11 + -- Build Step is needed for regex support in snippets. 12 + -- This step is not supported in many windows environments. 13 + -- Remove the below condition to re-enable on windows. 14 + if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then 15 + return 16 + end 17 + return 'make install_jsregexp' 18 + end)(), 19 + dependencies = { 20 + -- `friendly-snippets` contains a variety of premade snippets. 21 + -- See the README about individual language/framework/plugin snippets: 22 + -- https://github.com/rafamadriz/friendly-snippets 23 + -- { 24 + -- 'rafamadriz/friendly-snippets', 25 + -- config = function() 26 + -- require('luasnip.loaders.from_vscode').lazy_load() 27 + -- end, 28 + -- }, 29 + }, 30 + opts = {}, 31 + }, 32 + 'folke/lazydev.nvim', 33 + }, 34 + --- @module 'blink.cmp' 35 + --- @type blink.cmp.Config 36 + opts = { 37 + keymap = { 38 + -- 'default' (recommended) for mappings similar to built-in completions 39 + -- <c-y> to accept ([y]es) the completion. 40 + -- This will auto-import if your LSP supports it. 41 + -- This will expand snippets if the LSP sent a snippet. 42 + -- 'super-tab' for tab to accept 43 + -- 'enter' for enter to accept 44 + -- 'none' for no mappings 45 + -- 46 + -- For an understanding of why the 'default' preset is recommended, 47 + -- you will need to read `:help ins-completion` 48 + -- 49 + -- No, but seriously. Please read `:help ins-completion`, it is really good! 50 + -- 51 + -- All presets have the following mappings: 52 + -- <tab>/<s-tab>: move to right/left of your snippet expansion 53 + -- <c-space>: Open menu or open docs if already open 54 + -- <c-n>/<c-p> or <up>/<down>: Select next/previous item 55 + -- <c-e>: Hide menu 56 + -- <c-k>: Toggle signature help 57 + -- 58 + -- See :h blink-cmp-config-keymap for defining your own keymap 59 + preset = 'default', 60 + 61 + -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: 62 + -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps 63 + }, 64 + 65 + appearance = { 66 + -- 'mono' (default) for 'Nerd Font Mono' or 'normal' for 'Nerd Font' 67 + -- Adjusts spacing to ensure icons are aligned 68 + nerd_font_variant = 'mono', 69 + }, 70 + 71 + completion = { 72 + -- By default, you may press `<c-space>` to show the documentation. 73 + -- Optionally, set `auto_show = true` to show the documentation after a delay. 74 + documentation = { auto_show = false, auto_show_delay_ms = 500 }, 75 + }, 76 + 77 + sources = { 78 + default = { 'lsp', 'path', 'snippets', 'lazydev' }, 79 + providers = { 80 + lazydev = { module = 'lazydev.integrations.blink', score_offset = 100 }, 81 + }, 82 + }, 83 + 84 + snippets = { preset = 'luasnip' }, 85 + 86 + -- Blink.cmp includes an optional, recommended rust fuzzy matcher, 87 + -- which automatically downloads a prebuilt binary when enabled. 88 + -- 89 + -- By default, we use the Lua implementation instead, but you may enable 90 + -- the rust implementation via `'prefer_rust_with_warning'` 91 + -- 92 + -- See :h blink-cmp-config-fuzzy for more information 93 + fuzzy = { implementation = 'lua' }, 94 + 95 + -- Shows a signature help window while you type arguments for a function 96 + signature = { enabled = true }, 97 + }, 98 + }
+40
lua/wicked/plugins/autoformat.lua
··· 1 + return { -- Autoformat 2 + 'stevearc/conform.nvim', 3 + event = { 'BufWritePre' }, 4 + cmd = { 'ConformInfo' }, 5 + keys = { 6 + { 7 + '<leader>f', 8 + function() 9 + require('conform').format { async = true, lsp_format = 'fallback' } 10 + end, 11 + mode = '', 12 + desc = '[F]ormat buffer', 13 + }, 14 + }, 15 + opts = { 16 + notify_on_error = false, 17 + format_on_save = function(bufnr) 18 + -- Disable "format_on_save lsp_fallback" for languages that don't 19 + -- have a well standardized coding style. You can add additional 20 + -- languages here or re-enable it for the disabled ones. 21 + local disable_filetypes = { c = true, cpp = true } 22 + if disable_filetypes[vim.bo[bufnr].filetype] then 23 + return nil 24 + else 25 + return { 26 + timeout_ms = 500, 27 + lsp_format = 'fallback', 28 + } 29 + end 30 + end, 31 + formatters_by_ft = { 32 + lua = { 'stylua' }, 33 + -- Conform can also run multiple formatters sequentially 34 + -- python = { "isort", "black" }, 35 + -- 36 + -- You can use 'stop_after_first' to run the first available formatter from the list 37 + -- javascript = { "prettierd", "prettier", stop_after_first = true }, 38 + }, 39 + }, 40 + }
+7
lua/wicked/plugins/autopairs.lua
··· 1 + return { 2 + 'windwp/nvim-autopairs', 3 + event = "InsertEnter", 4 + config = true 5 + -- use opts = {} for passing setup options 6 + -- this is equivalent to setup({}) function 7 + }
+7
lua/wicked/plugins/comments.lua
··· 1 + return { 2 + 'numToStr/Comment.nvim', 3 + opts = { 4 + -- add any options here 5 + }, 6 + lazy = false, 7 + }
+7
lua/wicked/plugins/fugitive.lua
··· 1 + return { 2 + 'tpope/vim-fugitive', 3 + config = function() 4 + vim.keymap.set("n", "<leader>gs", vim.cmd.Git) 5 + end 6 + 7 + }
+3
lua/wicked/plugins/guess-indent.lua
··· 1 + return { 2 + 'NMAC427/guess-indent.nvim' 3 + }
+65
lua/wicked/plugins/harpoon.lua
··· 1 + return { 2 + 'ThePrimeagen/harpoon', 3 + branch = "harpoon2", 4 + dependencies = { 5 + 'nvim-lua/plenary.nvim', 6 + 'nvim-telescope/telescope.nvim', 7 + 8 + }, 9 + 10 + config = function() 11 + local harpoon = require("harpoon") 12 + 13 + -- REQUIRED 14 + harpoon:setup() 15 + -- REQUIRED 16 + 17 + local conf = require("telescope.config").values 18 + 19 + local function toggle_telescope(harpoon_files) 20 + local finder = function() 21 + local paths = {} 22 + for _, item in ipairs(harpoon_files.items) do 23 + table.insert(paths, item.value) 24 + end 25 + 26 + return require("telescope.finders").new_table({ 27 + results = paths, 28 + }) 29 + end 30 + 31 + require("telescope.pickers").new({}, { 32 + prompt_title = "Harpoon", 33 + finder = finder(), 34 + previewer = conf.file_previewer({}), 35 + sorter = conf.generic_sorter({}), 36 + attach_mappings = function(prompt_bufnr, map) 37 + map("i", "<C-d>", function() 38 + local state = require("telescope.actions.state") 39 + local selected_entry = state.get_selected_entry() 40 + local current_picker = state.get_current_picker(prompt_bufnr) 41 + 42 + table.remove(harpoon_files.items, selected_entry.index) 43 + current_picker:refresh(finder()) 44 + end) 45 + return true 46 + end, 47 + }):find() 48 + end 49 + 50 + vim.keymap.set("n", "<C-e>", function() toggle_telescope(harpoon:list()) end, 51 + { desc = "Open harpoon window" }) 52 + 53 + vim.keymap.set("n", "<leader>a", function() harpoon:list():add() end) 54 + 55 + vim.keymap.set("n", "<C-h>", function() harpoon:list():select(1) end) 56 + vim.keymap.set("n", "<C-j>", function() harpoon:list():select(2) end) 57 + vim.keymap.set("n", "<C-k>", function() harpoon:list():select(3) end) 58 + vim.keymap.set("n", "<C-l>", function() harpoon:list():select(4) end) 59 + 60 + -- Toggle previous & next buffers stored within Harpoon list 61 + vim.keymap.set("n", "<C-S-P>", function() harpoon:list():prev() end) 62 + vim.keymap.set("n", "<C-S-N>", function() harpoon:list():next() end) 63 + 64 + end 65 + }
+33
lua/wicked/plugins/indent.lua
··· 1 + return { 2 + "lukas-reineke/indent-blankline.nvim", 3 + main = "ibl", 4 + config = function() 5 + require("ibl").setup() 6 + local highlight = { 7 + "RainbowRed", 8 + "RainbowYellow", 9 + "RainbowBlue", 10 + "RainbowOrange", 11 + "RainbowGreen", 12 + "RainbowViolet", 13 + "RainbowCyan", 14 + } 15 + local hooks = require "ibl.hooks" 16 + -- create the highlight groups in the highlight setup hook, so they are reset 17 + -- every time the colorscheme changes 18 + hooks.register(hooks.type.HIGHLIGHT_SETUP, function() 19 + vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) 20 + vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) 21 + vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) 22 + vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) 23 + vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) 24 + vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) 25 + vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) 26 + end) 27 + 28 + vim.g.rainbow_delimiters = { highlight = highlight } 29 + require("ibl").setup { scope = { highlight = highlight } } 30 + 31 + hooks.register(hooks.type.SCOPE_HIGHLIGHT, hooks.builtin.scope_highlight_from_extmark) 32 + end 33 + }
+21
lua/wicked/plugins/lazydev.lua
··· 1 + return { 2 + -- `lazydev` configures Lua LSP for your Neovim config, runtime and plugins 3 + -- used for completion, annotations and signatures of Neovim apis 4 + 'folke/lazydev.nvim', 5 + cond = function() 6 + if os.getenv("WICKED_VIM_MODE") == "OBSIDIAN" then 7 + return false 8 + end 9 + if os.getenv("WICKED_VIM_MODE") == nil then 10 + return true 11 + end 12 + end, 13 + ft = 'lua', 14 + opts = { 15 + library = { 16 + -- Load luvit types when the `vim.uv` word is found 17 + { path = '${3rd}/luv/library', words = { 'vim%.uv' } }, 18 + }, 19 + }, 20 + } 21 +
+235
lua/wicked/plugins/lsp.lua
··· 1 + return { 2 + -- Main LSP Configuration 3 + 'neovim/nvim-lspconfig', 4 + dependencies = { 5 + -- Automatically install LSPs and related tools to stdpath for Neovim 6 + -- Mason must be loaded before its dependents so we need to set it up here. 7 + -- NOTE: `opts = {}` is the same as calling `require('mason').setup({})` 8 + { 'mason-org/mason.nvim', opts = {} }, 9 + 'mason-org/mason-lspconfig.nvim', 10 + 'WhoIsSethDaniel/mason-tool-installer.nvim', 11 + 12 + -- Useful status updates for LSP. 13 + { 'j-hui/fidget.nvim', opts = {} }, 14 + 15 + -- Allows extra capabilities provided by blink.cmp 16 + 'saghen/blink.cmp', 17 + }, 18 + config = function() 19 + -- This function gets run when an LSP attaches to a particular buffer. 20 + -- That is to say, every time a new file is opened that is associated with 21 + -- an lsp (for example, opening `main.rs` is associated with `rust_analyzer`) this 22 + -- function will be executed to configure the current buffer 23 + vim.api.nvim_create_autocmd('LspAttach', { 24 + group = vim.api.nvim_create_augroup('kickstart-lsp-attach', { clear = true }), 25 + callback = function(event) 26 + -- NOTE: Remember that Lua is a real programming language, and as such it is possible 27 + -- to define small helper and utility functions so you don't have to repeat yourself. 28 + -- 29 + -- In this case, we create a function that lets us more easily define mappings specific 30 + -- for LSP related items. It sets the mode, buffer and description for us each time. 31 + local map = function(keys, func, desc, mode) 32 + mode = mode or 'n' 33 + vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc }) 34 + end 35 + 36 + -- Rename the variable under your cursor. 37 + -- Most Language Servers support renaming across files, etc. 38 + map('grn', vim.lsp.buf.rename, '[R]e[n]ame') 39 + 40 + -- Execute a code action, usually your cursor needs to be on top of an error 41 + -- or a suggestion from your LSP for this to activate. 42 + map('gra', vim.lsp.buf.code_action, '[G]oto Code [A]ction', { 'n', 'x' }) 43 + 44 + -- Find references for the word under your cursor. 45 + map('grr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences') 46 + 47 + -- Jump to the implementation of the word under your cursor. 48 + -- Useful when your language has ways of declaring types without an actual implementation. 49 + map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation') 50 + 51 + -- Jump to the definition of the word under your cursor. 52 + -- This is where a variable was first declared, or where a function is defined, etc. 53 + -- To jump back, press <C-t>. 54 + map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') 55 + 56 + -- WARN: This is not Goto Definition, this is Goto Declaration. 57 + -- For example, in C this would take you to the header. 58 + map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') 59 + 60 + -- Fuzzy find all the symbols in your current document. 61 + -- Symbols are things like variables, functions, types, etc. 62 + map('gO', require('telescope.builtin').lsp_document_symbols, 'Open Document Symbols') 63 + 64 + -- Fuzzy find all the symbols in your current workspace. 65 + -- Similar to document symbols, except searches over your entire project. 66 + map('gW', require('telescope.builtin').lsp_dynamic_workspace_symbols, 'Open Workspace Symbols') 67 + 68 + -- Jump to the type of the word under your cursor. 69 + -- Useful when you're not sure what type a variable is and you want to see 70 + -- the definition of its *type*, not where it was *defined*. 71 + map('grt', require('telescope.builtin').lsp_type_definitions, '[G]oto [T]ype Definition') 72 + 73 + -- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10) 74 + ---@param client vim.lsp.Client 75 + ---@param method vim.lsp.protocol.Method 76 + ---@param bufnr? integer some lsp support methods only in specific files 77 + ---@return boolean 78 + local function client_supports_method(client, method, bufnr) 79 + if vim.fn.has 'nvim-0.11' == 1 then 80 + return client:supports_method(method, bufnr) 81 + else 82 + return client.supports_method(method, { bufnr = bufnr }) 83 + end 84 + end 85 + 86 + -- The following two autocommands are used to highlight references of the 87 + -- word under your cursor when your cursor rests there for a little while. 88 + -- See `:help CursorHold` for information about when this is executed 89 + -- 90 + -- When you move your cursor, the highlights will be cleared (the second autocommand). 91 + local client = vim.lsp.get_client_by_id(event.data.client_id) 92 + if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_documentHighlight, event.buf) then 93 + local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false }) 94 + vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, { 95 + buffer = event.buf, 96 + group = highlight_augroup, 97 + callback = vim.lsp.buf.document_highlight, 98 + }) 99 + 100 + vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, { 101 + buffer = event.buf, 102 + group = highlight_augroup, 103 + callback = vim.lsp.buf.clear_references, 104 + }) 105 + 106 + vim.api.nvim_create_autocmd('LspDetach', { 107 + group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }), 108 + callback = function(event2) 109 + vim.lsp.buf.clear_references() 110 + vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf } 111 + end, 112 + }) 113 + end 114 + 115 + -- The following code creates a keymap to toggle inlay hints in your 116 + -- code, if the language server you are using supports them 117 + -- 118 + -- This may be unwanted, since they displace some of your code 119 + if client and client_supports_method(client, vim.lsp.protocol.Methods.textDocument_inlayHint, event.buf) then 120 + map('<leader>th', function() 121 + vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf }) 122 + end, '[T]oggle Inlay [H]ints') 123 + end 124 + end, 125 + }) 126 + 127 + -- Diagnostic Config 128 + -- See :help vim.diagnostic.Opts 129 + vim.diagnostic.config { 130 + severity_sort = true, 131 + float = { border = 'rounded', source = 'if_many' }, 132 + underline = { severity = vim.diagnostic.severity.ERROR }, 133 + signs = vim.g.have_nerd_font and { 134 + text = { 135 + [vim.diagnostic.severity.ERROR] = '󰅚 ', 136 + [vim.diagnostic.severity.WARN] = '󰀪 ', 137 + [vim.diagnostic.severity.INFO] = '󰋽 ', 138 + [vim.diagnostic.severity.HINT] = '󰌶 ', 139 + }, 140 + } or {}, 141 + virtual_text = { 142 + source = 'if_many', 143 + spacing = 2, 144 + format = function(diagnostic) 145 + local diagnostic_message = { 146 + [vim.diagnostic.severity.ERROR] = diagnostic.message, 147 + [vim.diagnostic.severity.WARN] = diagnostic.message, 148 + [vim.diagnostic.severity.INFO] = diagnostic.message, 149 + [vim.diagnostic.severity.HINT] = diagnostic.message, 150 + } 151 + return diagnostic_message[diagnostic.severity] 152 + end, 153 + }, 154 + } 155 + 156 + -- LSP servers and clients are able to communicate to each other what features they support. 157 + -- By default, Neovim doesn't support everything that is in the LSP specification. 158 + -- When you add blink.cmp, luasnip, etc. Neovim now has *more* capabilities. 159 + -- So, we create new capabilities with blink.cmp, and then broadcast that to the servers. 160 + local capabilities = require('blink.cmp').get_lsp_capabilities() 161 + 162 + -- Enable the following language servers 163 + -- Feel free to add/remove any LSPs that you want here. They will automatically be installed. 164 + -- 165 + -- Add any additional override configuration in the following tables. Available keys are: 166 + -- - cmd (table): Override the default command used to start the server 167 + -- - filetypes (table): Override the default list of associated filetypes for the server 168 + -- - capabilities (table): Override fields in capabilities. Can be used to disable certain LSP features. 169 + -- - settings (table): Override the default settings passed when initializing the server. 170 + -- For example, to see the options for `lua_ls`, you could go to: https://luals.github.io/wiki/settings/ 171 + local servers = { 172 + -- clangd = {}, 173 + -- gopls = {}, 174 + -- pyright = {}, 175 + -- rust_analyzer = {}, 176 + -- ... etc. See `:help lspconfig-all` for a list of all the pre-configured LSPs 177 + -- 178 + -- Some languages (like typescript) have entire language plugins that can be useful: 179 + -- https://github.com/pmizio/typescript-tools.nvim 180 + -- 181 + -- But for many setups, the LSP (`ts_ls`) will work just fine 182 + -- ts_ls = {}, 183 + -- 184 + 185 + lua_ls = { 186 + -- cmd = { ... }, 187 + -- filetypes = { ... }, 188 + -- capabilities = {}, 189 + settings = { 190 + Lua = { 191 + completion = { 192 + callSnippet = 'Replace', 193 + }, 194 + -- You can toggle below to ignore Lua_LS's noisy `missing-fields` warnings 195 + -- diagnostics = { disable = { 'missing-fields' } }, 196 + }, 197 + }, 198 + }, 199 + } 200 + 201 + -- Ensure the servers and tools above are installed 202 + -- 203 + -- To check the current status of installed tools and/or manually install 204 + -- other tools, you can run 205 + -- :Mason 206 + -- 207 + -- You can press `g?` for help in this menu. 208 + -- 209 + -- `mason` had to be setup earlier: to configure its options see the 210 + -- `dependencies` table for `nvim-lspconfig` above. 211 + -- 212 + -- You can add other tools here that you want Mason to install 213 + -- for you, so that they are available from within Neovim. 214 + local ensure_installed = vim.tbl_keys(servers or {}) 215 + vim.list_extend(ensure_installed, { 216 + 'stylua', -- Used to format Lua code 217 + }) 218 + require('mason-tool-installer').setup { ensure_installed = ensure_installed } 219 + 220 + require('mason-lspconfig').setup { 221 + ensure_installed = {}, -- explicitly set to an empty table (Kickstart populates installs via mason-tool-installer) 222 + automatic_installation = false, 223 + handlers = { 224 + function(server_name) 225 + local server = servers[server_name] or {} 226 + -- This handles overriding only values explicitly passed 227 + -- by the server configuration above. Useful when disabling 228 + -- certain features of an LSP (for example, turning off formatting for ts_ls) 229 + server.capabilities = vim.tbl_deep_extend('force', {}, capabilities, server.capabilities or {}) 230 + require('lspconfig')[server_name].setup(server) 231 + end, 232 + }, 233 + } 234 + end, 235 + }
+8
lua/wicked/plugins/lualine.lua
··· 1 + return { 2 + 'nvim-lualine/lualine.nvim', 3 + dependencies = { 'nvim-tree/nvim-web-devicons' }, 4 + config = function() 5 + require('lualine').setup { 6 + } 7 + end, 8 + }
+37
lua/wicked/plugins/mini.lua
··· 1 + return { -- Collection of various small independent plugins/modules 2 + 'echasnovski/mini.nvim', 3 + config = function() 4 + -- Better Around/Inside textobjects 5 + -- 6 + -- Examples: 7 + -- - va) - [V]isually select [A]round [)]paren 8 + -- - yinq - [Y]ank [I]nside [N]ext [Q]uote 9 + -- - ci' - [C]hange [I]nside [']quote 10 + require('mini.ai').setup { n_lines = 500 } 11 + 12 + -- Add/delete/replace surroundings (brackets, quotes, etc.) 13 + -- 14 + -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren 15 + -- - sd' - [S]urround [D]elete [']quotes 16 + -- - sr)' - [S]urround [R]eplace [)] ['] 17 + require('mini.surround').setup() 18 + 19 + -- Simple and easy statusline. 20 + -- You could remove this setup call if you don't like it, 21 + -- and try some other statusline plugin 22 + local statusline = require 'mini.statusline' 23 + -- set use_icons to true if you have a Nerd Font 24 + statusline.setup { use_icons = vim.g.have_nerd_font } 25 + 26 + -- You can configure sections in the statusline by overriding their 27 + -- default behavior. For example, here we set the section for 28 + -- cursor location to LINE:COLUMN 29 + ---@diagnostic disable-next-line: duplicate-set-field 30 + statusline.section_location = function() 31 + return '%2l:%-2v' 32 + end 33 + 34 + -- ... and there is more! 35 + -- Check out: https://github.com/echasnovski/mini.nvim 36 + end, 37 + }
+14
lua/wicked/plugins/oil.lua
··· 1 + return { 2 + "stevearc/oil.nvim", 3 + ---@module 'oil' 4 + ---@type oil.SetupOpts 5 + opts = { 6 + -- Open Oil 7 + vim.keymap.set("n", "<leader>pv", "<CMD>Oil<CR>", { desc = "Open parent directory" }), 8 + }, 9 + -- Optional dependencies 10 + --dependencies = { { "echasnovski/mini.icons", opts = {} } }, 11 + dependencies = { "nvim-tree/nvim-web-devicons" }, -- use if you prefer nvim-web-devicons 12 + -- Lazy loading is not recommended because it is very tricky to make it work correctly in all situations. 13 + lazy = false, 14 + }
+16
lua/wicked/plugins/onedark.lua
··· 1 + return { 2 + 'navarasu/onedark.nvim', 3 + priority = 1000, 4 + lazy = false, 5 + config = function() 6 + require('onedark').setup { 7 + style = 'dark', 8 + transparent = true, 9 + 10 + code_style = { 11 + comments = 'none', 12 + } 13 + } 14 + require('onedark').load() 15 + end, 16 + }
+29
lua/wicked/plugins/telescope.lua
··· 1 + return { 2 + 'nvim-telescope/telescope.nvim', 3 + 4 + tag = "0.1.6", 5 + 6 + dependencies = { 7 + 'nvim-lua/plenary.nvim', 8 + }, 9 + 10 + config = function() 11 + require('telescope').setup({}) 12 + 13 + local builtin = require('telescope.builtin') 14 + vim.keymap.set('n', '<leader>pf', builtin.find_files, {}) 15 + vim.keymap.set('n', '<C-p>', builtin.git_files, {}) 16 + vim.keymap.set('n', '<leader>pws', function() 17 + local word = vim.fn.expand("<cword>") 18 + builtin.grep_string({ search = word }) 19 + end) 20 + vim.keymap.set('n', '<leader>pWs', function() 21 + local word = vim.fn.expand("<cWORD>") 22 + builtin.grep_string({ search = word }) 23 + end) 24 + vim.keymap.set('n', '<leader>ps', function() 25 + builtin.grep_string({ search = vim.fn.input("Grep > ") }) 26 + end) 27 + vim.keymap.set('n', '<leader>vh', builtin.help_tags, {}) 28 + end, 29 + }
+29
lua/wicked/plugins/treesitter.lua
··· 1 + return { 2 + 'nvim-treesitter/nvim-treesitter', 3 + build = ":TSUpdate", 4 + config = function() 5 + require'nvim-treesitter.configs'.setup { 6 + indent = { enable = true }, 7 + -- A list of parser names, or "all" 8 + ensure_installed = { "vimdoc", "javascript", "typescript", "c", "lua", "rust" }, 9 + 10 + -- Install parsers synchronously (only applied to `ensure_installed`) 11 + sync_install = false, 12 + 13 + -- Automatically install missing parsers when entering buffer 14 + -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally 15 + auto_install = true, 16 + 17 + highlight = { 18 + --- `false` will disable the whole extension 19 + enable = true, 20 + 21 + -- Setting this to true will run `:h syntax` and tree-sitter at the same time. 22 + -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). 23 + -- Using this option may slow down your editor, and you may see some duplicate highlights. 24 + -- Instead of true it can also be a list of languages 25 + additional_vim_regex_highlighting = { "markdown" } 26 + }, 27 + } 28 + end 29 + }
+6
lua/wicked/plugins/trouble.lua
··· 1 + return { 2 + "folke/trouble.nvim", 3 + dependencies = { "nvim-tree/nvim-web-devicons" }, 4 + opts = { 5 + }, 6 + }
+10
lua/wicked/plugins/which-key.lua
··· 1 + return { 2 + "folke/which-key.nvim", 3 + event = "VeryLazy", 4 + init = function() 5 + vim.o.timeout = true 6 + vim.o.timeoutlen = 300 7 + end, 8 + opts = { 9 + } 10 + }
+69
lua/wicked/remap.lua
··· 1 + -- Set <space> as the leader key 2 + vim.g.mapleader = " " 3 + vim.g.maplocalleader = " " 4 + 5 + -- Clear highlights on search when pressing <Esc> in normal mode 6 + -- See `:help hlsearch` 7 + vim.keymap.set("n", "<Esc>", "<cmd>nohlsearch<CR>") 8 + 9 + -- Diagnostic keymaps 10 + vim.keymap.set("n", "<leader>q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" }) 11 + 12 + -- Open Explorer 13 + -- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex, { desc = "Open explorer" }) 14 + 15 + -- Move Selection 16 + vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv", { desc = "Move selection down" }) 17 + vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv", { desc = "Move selection up" }) 18 + 19 + -- Append Line 20 + vim.keymap.set("n", "J", "mzJ`z", { desc = "Append to line with a space" }) 21 + 22 + -- Move Page Down 23 + vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Half-page jump down" }) 24 + -- Move Page Up 25 + vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Half-page jump up" }) 26 + 27 + -- Insert Line 28 + vim.keymap.set("n", "oo", "<Cmd>call append(line('.'), repeat([''], v:count1))<CR>", { desc = "Insert line below" }) 29 + vim.keymap.set("n", "OO", "<Cmd>call append(line('.')-1, repeat([''], v:count1))<CR>", { desc = "Insert line above" }) 30 + 31 + -- Search RegEx 32 + vim.keymap.set("n", "n", "nzzzv", { desc = "Search next" }) 33 + vim.keymap.set("n", "N", "Nzzzv", { desc = "Search previous" }) 34 + 35 + -- Replace Selection Without Losing buffer 36 + vim.keymap.set("x", "<leader>p", [["_dP]], { desc = "Replace selection" }) 37 + 38 + -- System Clipboard Yank : asbjornHaland 39 + vim.keymap.set({ "n", "v" }, "<leader>y", [["+y]], { desc = "Yank to system clipboard" }) 40 + vim.keymap.set("n", "<leader>Y", [["+Y]], { desc = "Yank to system clipboard" }) 41 + 42 + -- Delete to Void Register 43 + vim.keymap.set({ "n", "v" }, "<leader>d", [["_d]], { desc = "Delete to void" }) 44 + 45 + -- The Cancel Remap 46 + vim.keymap.set("i", "<C-c>", "<Esc>") 47 + 48 + -- Don't press Capital Q 49 + vim.keymap.set("n", "Q", "<nop>") 50 + 51 + -- Format 52 + vim.keymap.set("n", "<leader>f", vim.lsp.buf.format, { desc = "Format" }) 53 + 54 + -- Quickfix 55 + vim.keymap.set("n", "<C-k>", "<cmd>cnext<CR>zz", { desc = "Quickfix next" }) 56 + vim.keymap.set("n", "<C-j>", "<cmd>cprev<CR>zz", { desc = "Quickfix previous" }) 57 + vim.keymap.set("n", "<leader>k", "<cmd>lnext<CR>zz", { desc = "Quickfix next" }) 58 + vim.keymap.set("n", "<leader>j", "<cmd>lprev<CR>zz", { desc = "Quickfix previous" }) 59 + 60 + -- Replace Highlight 61 + vim.keymap.set( 62 + "n", 63 + "<leader>s", 64 + [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], 65 + { desc = "Refactor selection" } 66 + ) 67 + 68 + -- Create Executable 69 + vim.keymap.set("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Make executable" })
+64
lua/wicked/set.lua
··· 1 + vim.opt.guicursor = "" 2 + 3 + -- Have Nerd Font 4 + vim.g.have_nerd_font = true 5 + 6 + -- Line Numbers 7 + vim.o.number = true 8 + vim.o.relativenumber = false 9 + 10 + -- Enable Mouse Mode 11 + vim.o.mouse = 'a' 12 + 13 + -- Don't show the Mode 14 + vim.o.showmode = flase 15 + 16 + -- Tab Spacing 17 + vim.o.tabstop = 4 18 + vim.o.softtabstop = 4 19 + vim.o.shiftwidth = 4 20 + vim.o.expandtab = true 21 + vim.o.smartindent = true 22 + vim.o.autoindent = true 23 + 24 + -- Line Wrapping 25 + vim.o.wrap = false 26 + 27 + -- Undo History 28 + vim.o.swapfile = false 29 + vim.o.backup = false 30 + vim.o.undodir = vim.loop.os_homedir() .. "/.vim/undodir" 31 + vim.o.undofile = true 32 + 33 + -- Search 34 + vim.o.hlsearch = false 35 + vim.o.incsearch = true 36 + 37 + -- Colors 38 + vim.o.termguicolors = true 39 + 40 + -- Scrolling 41 + vim.o.scrolloff = 8 42 + vim.o.signcolumn = "yes" 43 + vim.opt.isfname:append("@-@") 44 + 45 + vim.o.updatetime = 50 46 + 47 + -- Lists 48 + vim.o.list = true 49 + vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } 50 + 51 + -- Confirm Operation 52 + vim.o.confirm = true 53 + 54 + -- Marks the 80th character 55 + vim.o.colorcolumn = "80" 56 + 57 + vim.o.clipboard = "unnamedplus" 58 + 59 + if os.getenv("WICKED_VIM_MODE") == "OBSIDIAN" then 60 + vim.o.conceallevel = 2 61 + end 62 + if os.getenv("WICKED_VIM_MODE") == nil then 63 + vim.o.conceallevel = 0 64 + end