From fce1a2144755c2de8de4c932877767a769de8122 Mon Sep 17 00:00:00 2001 From: JirR02 Date: Wed, 22 Nov 2023 15:57:19 +0100 Subject: [PATCH] Added nvim config --- .config/nvim/init.lua | 4 ++ .config/nvim/lazy-lock.json | 42 +++++++++++++ .config/nvim/lua/jirr02/core/colorscheme.lua | 6 ++ .config/nvim/lua/jirr02/core/keymaps.lua | 8 +++ .config/nvim/lua/jirr02/core/options.lua | 25 ++++++++ .config/nvim/lua/jirr02/lazy.lua | 14 +++++ .config/nvim/lua/jirr02/plugins/alpha.lua | 24 ++++++++ .config/nvim/lua/jirr02/plugins/autopairs.lua | 9 +++ .../nvim/lua/jirr02/plugins/bufferline.lua | 27 +++++++++ .config/nvim/lua/jirr02/plugins/comment.lua | 8 +++ .config/nvim/lua/jirr02/plugins/gitsigns.lua | 4 ++ .config/nvim/lua/jirr02/plugins/init.lua | 7 +++ .../nvim/lua/jirr02/plugins/lsp/lspconfig.lua | 60 +++++++++++++++++++ .config/nvim/lua/jirr02/plugins/lsp/mason.lua | 37 ++++++++++++ .../nvim/lua/jirr02/plugins/lsp/none-ls.lua | 52 ++++++++++++++++ .config/nvim/lua/jirr02/plugins/lualine.lua | 13 ++++ .config/nvim/lua/jirr02/plugins/noice.lua | 12 ++++ .config/nvim/lua/jirr02/plugins/nvim-cmp.lua | 51 ++++++++++++++++ .../nvim/lua/jirr02/plugins/nvim-surround.lua | 4 ++ .config/nvim/lua/jirr02/plugins/nvimtree.lua | 51 ++++++++++++++++ .config/nvim/lua/jirr02/plugins/telescope.lua | 25 ++++++++ .../jirr02/plugins/treesitter-textobjects.lua | 14 +++++ .../nvim/lua/jirr02/plugins/treesitter.lua | 11 ++++ .config/nvim/lua/jirr02/plugins/which-key.lua | 48 +++++++++++++++ 24 files changed, 556 insertions(+) create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/lazy-lock.json create mode 100644 .config/nvim/lua/jirr02/core/colorscheme.lua create mode 100644 .config/nvim/lua/jirr02/core/keymaps.lua create mode 100644 .config/nvim/lua/jirr02/core/options.lua create mode 100644 .config/nvim/lua/jirr02/lazy.lua create mode 100644 .config/nvim/lua/jirr02/plugins/alpha.lua create mode 100644 .config/nvim/lua/jirr02/plugins/autopairs.lua create mode 100644 .config/nvim/lua/jirr02/plugins/bufferline.lua create mode 100644 .config/nvim/lua/jirr02/plugins/comment.lua create mode 100644 .config/nvim/lua/jirr02/plugins/gitsigns.lua create mode 100644 .config/nvim/lua/jirr02/plugins/init.lua create mode 100644 .config/nvim/lua/jirr02/plugins/lsp/lspconfig.lua create mode 100644 .config/nvim/lua/jirr02/plugins/lsp/mason.lua create mode 100644 .config/nvim/lua/jirr02/plugins/lsp/none-ls.lua create mode 100644 .config/nvim/lua/jirr02/plugins/lualine.lua create mode 100644 .config/nvim/lua/jirr02/plugins/noice.lua create mode 100644 .config/nvim/lua/jirr02/plugins/nvim-cmp.lua create mode 100644 .config/nvim/lua/jirr02/plugins/nvim-surround.lua create mode 100644 .config/nvim/lua/jirr02/plugins/nvimtree.lua create mode 100644 .config/nvim/lua/jirr02/plugins/telescope.lua create mode 100644 .config/nvim/lua/jirr02/plugins/treesitter-textobjects.lua create mode 100644 .config/nvim/lua/jirr02/plugins/treesitter.lua create mode 100644 .config/nvim/lua/jirr02/plugins/which-key.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..5f0dafb --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,4 @@ +require("jirr02.core.options") +require("jirr02.core.keymaps") +require("jirr02.core.colorscheme") +require("jirr02.lazy") diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..2d585bd --- /dev/null +++ b/.config/nvim/lazy-lock.json @@ -0,0 +1,42 @@ +{ + "LuaSnip": { "branch": "master", "commit": "a4de64570b9620875c8ea04175cd07ed8e32ac99" }, + "ReplaceWithRegister": { "branch": "master", "commit": "832efc23111d19591d495dc72286de2fb0b09345" }, + "alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" }, + "bufferline.nvim": { "branch": "main", "commit": "9e8d2f695dd50ab6821a6a53a840c32d2067a78a" }, + "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, + "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, + "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, + "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, + "comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "dracula.nvim": { "branch": "main", "commit": "7200e64c589f899d29f8963aad7543856d1c2545" }, + "friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" }, + "gitsigns.nvim": { "branch": "main", "commit": "af0f583cd35286dd6f0e3ed52622728703237e50" }, + "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, + "lspkind.nvim": { "branch": "master", "commit": "57610d5ab560c073c465d6faf0c19f200cb67e6e" }, + "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "40301e1c74bc0946eece13edf2b1c561cc497491" }, + "mason-null-ls.nvim": { "branch": "main", "commit": "ae0c5fa57468ac65617f1bf821ba0c3a1e251f0c" }, + "mason-tool-installer.nvim": { "branch": "main", "commit": "e4f34741daa9cf95de68a603d3e7a6844a69fdf0" }, + "mason.nvim": { "branch": "main", "commit": "eabf6d347fdb75be360d4c0ced1145670a171453" }, + "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" }, + "none-ls.nvim": { "branch": "main", "commit": "b8fd44ee1616e6a9c995ed5f94ad9f1721d303ef" }, + "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" }, + "nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" }, + "nvim-bufdel": { "branch": "main", "commit": "96c4f7ab053ddab0025bebe5f7c71e4795430e47" }, + "nvim-cmp": { "branch": "main", "commit": "51260c02a8ffded8e16162dcf41a23ec90cfba62" }, + "nvim-lint": { "branch": "master", "commit": "7746f952827dabfb70194518c99c93d5651b8f19" }, + "nvim-lspconfig": { "branch": "master", "commit": "b44737605807023d32e6310b87ba69f4dbf10e0e" }, + "nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" }, + "nvim-surround": { "branch": "main", "commit": "4f0e1f470595af067eca9b872778d83c7f52f134" }, + "nvim-tree.lua": { "branch": "master", "commit": "7e3c0bee7b246ca835d5f7453db6fa19de359bab" }, + "nvim-treesitter": { "branch": "master", "commit": "a82bba45fb0fb43fc2e7998f3394fadc80606d8a" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "e69a504baf2951d52e1f1fbb05145d43f236cbf1" }, + "nvim-web-devicons": { "branch": "master", "commit": "5de460ca7595806044eced31e3c36c159a493857" }, + "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, + "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" }, + "telescope.nvim": { "branch": "master", "commit": "4522d7e3ea75ffddabdc39957168a8a7060b5df0" }, + "vim-fugitive": { "branch": "master", "commit": "46eaf8918b347906789df296143117774e827616" }, + "vim-surround": { "branch": "master", "commit": "3d188ed2113431cf8dac77be61b842acb64433d9" }, + "vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } +} \ No newline at end of file diff --git a/.config/nvim/lua/jirr02/core/colorscheme.lua b/.config/nvim/lua/jirr02/core/colorscheme.lua new file mode 100644 index 0000000..d5dd84e --- /dev/null +++ b/.config/nvim/lua/jirr02/core/colorscheme.lua @@ -0,0 +1,6 @@ +return { + "Mofiqul/dracula.nvim", + config = function() + vim.cmd([[colorscheme dracula]]) + end, +} diff --git a/.config/nvim/lua/jirr02/core/keymaps.lua b/.config/nvim/lua/jirr02/core/keymaps.lua new file mode 100644 index 0000000..e03b841 --- /dev/null +++ b/.config/nvim/lua/jirr02/core/keymaps.lua @@ -0,0 +1,8 @@ +vim.g.mapleader = " " + +local keymap = vim.keymap + +keymap.set("i", "jk", "", { desc = "Exit out of insert mode" }) +keymap.set("n", "q", "wq", { desc = "Exit NeoVim and Save file" }) +keymap.set("n", "w", "w", { desc = "Save file" }) +keymap.set("n", "-", "gcc", { desc = "Toggle comment" }) diff --git a/.config/nvim/lua/jirr02/core/options.lua b/.config/nvim/lua/jirr02/core/options.lua new file mode 100644 index 0000000..d0dc48a --- /dev/null +++ b/.config/nvim/lua/jirr02/core/options.lua @@ -0,0 +1,25 @@ +local opt = vim.opt + +opt.relativenumber = true +opt.number = true + +opt.tabstop = 2 +opt.shiftwidth = 2 +opt.expandtab = true +opt.autoindent = true + +opt.ignorecase = true +opt.smartcase = true + +opt.termguicolors = true +opt.background = "dark" +opt.signcolumn = "yes" + +opt.backspace = "indent,eol,start" + +opt.clipboard:append("unnamedplus") + +opt.splitright = true +opt.splitbelow = true + +opt.iskeyword:append("-") diff --git a/.config/nvim/lua/jirr02/lazy.lua b/.config/nvim/lua/jirr02/lazy.lua new file mode 100644 index 0000000..aa494c3 --- /dev/null +++ b/.config/nvim/lua/jirr02/lazy.lua @@ -0,0 +1,14 @@ +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", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ { import = "jirr02.plugins" }, { import = "jirr02.core.colorscheme" }, { import = "jirr02.plugins.lsp"} }) diff --git a/.config/nvim/lua/jirr02/plugins/alpha.lua b/.config/nvim/lua/jirr02/plugins/alpha.lua new file mode 100644 index 0000000..9f96f07 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/alpha.lua @@ -0,0 +1,24 @@ +return { + "goolord/alpha-nvim", + event = "VimEnter", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + local alpha = require("alpha") + local dashboard = require("alpha.themes.dashboard") + + -- Set menu + dashboard.section.buttons.val = { + dashboard.button("e", " > New File", "ene"), + dashboard.button("SPC ee", " > Toggle file explorer", "NvimTreeToggle"), + dashboard.button("SPC ff", "󰱼 > Find File", "Telescope find_files"), + dashboard.button("SPC fs", " > Find Word", "Telescope live_grep"), + dashboard.button("q", " > Quit NVIM", "qa"), + } + + -- Send config to alpha + alpha.setup(dashboard.opts) + + -- Disable folding on alpha buffer + vim.cmd([[autocmd FileType alpha setlocal nofoldenable]]) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/autopairs.lua b/.config/nvim/lua/jirr02/plugins/autopairs.lua new file mode 100644 index 0000000..6f0bf0f --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/autopairs.lua @@ -0,0 +1,9 @@ +return { + "windwp/nvim-autopairs", + config = function() + local autopairs = require("nvim-autopairs") + + autopairs.setup() + + end +} diff --git a/.config/nvim/lua/jirr02/plugins/bufferline.lua b/.config/nvim/lua/jirr02/plugins/bufferline.lua new file mode 100644 index 0000000..870f1f9 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/bufferline.lua @@ -0,0 +1,27 @@ +return { + "akinsho/bufferline.nvim", + dependencies = { + "nvim-tree/nvim-web-devicons", + "ojroques/nvim-bufdel", + }, + config = function() + local bufferline = require("bufferline") + local wk = require("which-key") + + bufferline.setup({ + options = { + mode = "buffers", + seperator_style = "slant", + }, + }) + + wk.register({ + b = { + name = "buffer", + x = { "BufDel", "Close Buffer" }, + n = { "BufferLineCycleNext", "Go to next buffer" }, + p = { "BufferLineCyclePrev", "Go to previous buffer" }, + }, + }, { prefix = "" }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/comment.lua b/.config/nvim/lua/jirr02/plugins/comment.lua new file mode 100644 index 0000000..6d5b4bc --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/comment.lua @@ -0,0 +1,8 @@ +return { + "numToStr/comment.nvim", + config = function() + local comment = require("Comment") + + comment.setup({}) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/gitsigns.lua b/.config/nvim/lua/jirr02/plugins/gitsigns.lua new file mode 100644 index 0000000..d725d08 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/gitsigns.lua @@ -0,0 +1,4 @@ +return { + "lewis6991/gitsigns.nvim", + config = true, +} diff --git a/.config/nvim/lua/jirr02/plugins/init.lua b/.config/nvim/lua/jirr02/plugins/init.lua new file mode 100644 index 0000000..2d1036e --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/init.lua @@ -0,0 +1,7 @@ +return { + { "tpope/vim-surround" }, + { "vim-scripts/ReplaceWithRegister" }, + { "mfussenegger/nvim-lint" }, + { "christoomey/vim-tmux-navigator" }, + { "tpope/vim-fugitive" }, +} diff --git a/.config/nvim/lua/jirr02/plugins/lsp/lspconfig.lua b/.config/nvim/lua/jirr02/plugins/lsp/lspconfig.lua new file mode 100644 index 0000000..5a68ac3 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/lsp/lspconfig.lua @@ -0,0 +1,60 @@ +return { + "neovim/nvim-lspconfig", + dependencies = { + "hrsh7th/cmp-nvim-lsp", + "onsails/lspkind.nvim", + }, + config = function() + local lspconfig = require("lspconfig") + local cmp_nvim_lsp = require("cmp_nvim_lsp") + local wk = require("which-key") + local capabilities = cmp_nvim_lsp.default_capabilities() + + lspconfig["lua_ls"].setup({ + capabilities = capabilities, + settings = { -- custom settings for lua + Lua = { + -- make the language server recognize "vim" global + diagnostics = { + globals = { "vim" }, + }, + workspace = { + -- make language server aware of runtime files + library = { + [vim.fn.expand("$VIMRUNTIME/lua")] = true, + [vim.fn.stdpath("config") .. "/lua"] = true, + }, + }, + }, + }, + }) + lspconfig["pyright"].setup({ + capabilities = capabilities, + filetypes = { "python" }, + }) + lspconfig["clangd"].setup({ + capabilities = capabilities, + }) + lspconfig["marksman"].setup({ + capabilities = capabilities, + }) + lspconfig["texlab"].setup({ + capabilities = capabilities, + }) + wk.register({ + l = { + name = "lsp", + r = { "Telescope lsp_references", "Show references" }, + D = { "lua vim.lsp.buf.defenition()", "Show defenition" }, + c = { "lua vim.lsp.buf.code_action()", "Code actions" }, + R = { "lua vim.lsp.buf.rename()", "Smart rename" }, + d = { "Telescope diagnostics bufnr=0", "Diagnostics" }, + l = { "lua vim.lsp.buf.open_float()", "Line Diagnostics" }, + n = { "lua vim.diagnostics.goto_next()", "Go to next Diagnostic" }, + p = { "lua vim.diagnostics.goto_prev()", "Go to previous Diagnostic" }, + i = { "lua vim.lsp.buf.hover()", "Show documentation" }, + L = { "LspRestart", "Restart LSP" }, + }, + }, { prefix = "" }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/lsp/mason.lua b/.config/nvim/lua/jirr02/plugins/lsp/mason.lua new file mode 100644 index 0000000..4bde815 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/lsp/mason.lua @@ -0,0 +1,37 @@ +return { + "williamboman/mason.nvim", + dependencies = { + "williamboman/mason-lspconfig.nvim", + "WhoIsSethDaniel/mason-tool-installer.nvim", + }, + config = function() + local mason = require("mason") + local mason_lspconfig = require("mason-lspconfig") + local mason_tool_installer = require("mason-tool-installer") + + mason.setup() + + mason_lspconfig.setup({ + ensure_installed = { + "lua_ls", + "pyright", + "clangd", + "marksman", + "texlab", + }, + }) + + mason_tool_installer.setup({ + ensure_installed = { + "mypy", + "ruff", + "black", + "clang-format", + "stylua", + "prettier", + "vale", + "latexindent", + }, + }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/lsp/none-ls.lua b/.config/nvim/lua/jirr02/plugins/lsp/none-ls.lua new file mode 100644 index 0000000..f1b3a0f --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/lsp/none-ls.lua @@ -0,0 +1,52 @@ +return { + "nvimtools/none-ls.nvim", + dependencies = { + "jay-babu/mason-null-ls.nvim", + }, + config = function() + local mason_null_ls = require("mason-null-ls") + local null_ls = require("null-ls") + local augroup = vim.api.nvim_create_augroup("LspFormatting", {}) + local formatting = null_ls.builtins.formatting + local diagnostics = null_ls.builtins.diagnostics + + mason_null_ls.setup() + + null_ls.setup({ + debug = true, + sources = { + formatting.stylua, + formatting.black, + formatting.clang_format, + formatting.prettier, + formatting.latexindent, + diagnostics.mypy.with({ + extra_args = function() + local virtual = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or "/usr" + return { "--python-executable", virtual .. "/bin/python3" } + end, + }), + diagnostics.ruff, + diagnostics.vale, + }, + on_attach = function(current_client, bufnr) + if current_client.supports_method("textDocument/formatting") then + vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr }) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup, + buffer = bufnr, + callback = function() + vim.lsp.buf.format({ + filter = function(client) + -- only use null-ls for formatting instead of lsp server + return client.name == "null-ls" + end, + bufnr = bufnr, + }) + end, + }) + end + end, + }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/lualine.lua b/.config/nvim/lua/jirr02/plugins/lualine.lua new file mode 100644 index 0000000..10e2eae --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/lualine.lua @@ -0,0 +1,13 @@ +return { + "nvim-lualine/lualine.nvim", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + local lualine = require("lualine") + + lualine.setup({ + options = { + theme = 'dracula-nvim', + }, + }) + end +} diff --git a/.config/nvim/lua/jirr02/plugins/noice.lua b/.config/nvim/lua/jirr02/plugins/noice.lua new file mode 100644 index 0000000..337629c --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/noice.lua @@ -0,0 +1,12 @@ +return { + "folke/noice.nvim", + dependencies = { + "MunifTanjim/nui.nvim", + "rcarriga/nvim-notify", + }, + config = function() + local noice = require("noice") + + noice.setup() + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/nvim-cmp.lua b/.config/nvim/lua/jirr02/plugins/nvim-cmp.lua new file mode 100644 index 0000000..128be0d --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/nvim-cmp.lua @@ -0,0 +1,51 @@ +return { + "hrsh7th/nvim-cmp", + event = "InsertEnter", + dependencies = { + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + "rafamadriz/friendly-snippets", + "onsails/lspkind.nvim", + }, + config = function() + local cmp = require("cmp") + local luasnip = require("luasnip") + local lspkind = require("lspkind") + + require("luasnip.loaders.from_vscode").lazy_load() + + cmp.setup({ + completion = { + completeopt = "menu,menuone,preview,noselect", + }, + snippet = { -- configure how nvim-cmp interacts with snippet engine + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.select_prev_item(), -- previous suggestion + [""] = cmp.mapping.select_next_item(), -- next suggestion + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), -- show completion suggestions + [""] = cmp.mapping.abort(), -- close completion window + [""] = cmp.mapping.confirm({ select = false }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, -- snippets + { name = "buffer" }, -- text within current buffer + { name = "path" }, -- file system paths + }), + formatting = { + format = lspkind.cmp_format({ + maxwidth = 50, + ellipsis_char = "...", + }), + }, + }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/nvim-surround.lua b/.config/nvim/lua/jirr02/plugins/nvim-surround.lua new file mode 100644 index 0000000..b01d768 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/nvim-surround.lua @@ -0,0 +1,4 @@ +return { + "kylechui/nvim-surround", + config = true, +} diff --git a/.config/nvim/lua/jirr02/plugins/nvimtree.lua b/.config/nvim/lua/jirr02/plugins/nvimtree.lua new file mode 100644 index 0000000..d7b9b95 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/nvimtree.lua @@ -0,0 +1,51 @@ +return { + "nvim-tree/nvim-tree.lua", + dependencies = { "nvim-tree/nvim-web-devicons" }, + config = function() + local nvimtree = require("nvim-tree") + local wk = require("which-key") + + vim.g.loaded_netrw = 1 + vim.g.loaded_netrwPlugin = 1 + + nvimtree.setup({ + view = { + width = 35, + relativenumber = true, + }, + renderer = { + indent_markers = { + enable = true, + }, + icons = { + glyphs = { + folder = { + arrow_closed = "", -- arrow when folder is closed + arrow_open = "", -- arrow when folder is open + }, + }, + }, + }, + actions = { + open_file = { + window_picker = { + enable = false, + }, + }, + }, + filters = { + custom = { ".DS_Store" }, + }, + git = { + ignore = false, + }, + }) + wk.register({ + e = { + name = "explorer", + e = { "NvimTreeToggle", "Toggle File Explorer" }, + r = { "NvimTreeRefresh", "Refresh File Explorer" }, + }, + }, { prefix = "" }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/telescope.lua b/.config/nvim/lua/jirr02/plugins/telescope.lua new file mode 100644 index 0000000..82c9b55 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/telescope.lua @@ -0,0 +1,25 @@ +return { + "nvim-telescope/telescope.nvim", + branch = "0.1.x", + dependencies = { + "nvim-lua/plenary.nvim", + { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, + "nvim-tree/nvim-web-devicons", + }, + config = function() + local telescope = require("telescope") + local wk = require("which-key") + + telescope.load_extension("fzf") + + wk.register({ + f = { + name = "file", + f = { "Telescope find_files", "Find Files in Current Working Directory" }, + r = { "Telescope oldfiles", "Recent Files" }, + s = { "Telescope grep_string", "Find String in File" }, + g = { "Telescope git_files", "Find git files" }, + }, + }, { prefix = "" }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/treesitter-textobjects.lua b/.config/nvim/lua/jirr02/plugins/treesitter-textobjects.lua new file mode 100644 index 0000000..327e677 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/treesitter-textobjects.lua @@ -0,0 +1,14 @@ +return { + "nvim-treesitter/nvim-treesitter-textobjects", + lazy = true, + config = function() + require("nvim-treesitter.configs").setup({ + textobjects = { + select = { + enable = true, + lookahead = true, + }, + }, + }) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/treesitter.lua b/.config/nvim/lua/jirr02/plugins/treesitter.lua new file mode 100644 index 0000000..d47a0c1 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/treesitter.lua @@ -0,0 +1,11 @@ +return { + "nvim-treesitter/nvim-treesitter", + dependencies = { + "nvim-treesitter/nvim-treesitter-textobjects", + }, + config = function() + local treesitter = require("nvim-treesitter.configs") + + treesitter.setup({}) + end, +} diff --git a/.config/nvim/lua/jirr02/plugins/which-key.lua b/.config/nvim/lua/jirr02/plugins/which-key.lua new file mode 100644 index 0000000..60ad727 --- /dev/null +++ b/.config/nvim/lua/jirr02/plugins/which-key.lua @@ -0,0 +1,48 @@ +return { + "folke/which-key.nvim", + event = "VeryLazy", + init = function() + vim.o.timeout = true + vim.o.timeoutlen = 500 + end, + config = function() + local wk = require("which-key") + + wk.setup({ + opts = {}, + }) + wk.register({ + n = { + name = "vim", + h = { "nohl", "Close Search Highlights" }, + }, + s = { + name = "splits", + v = { "v", "Split vertical" }, + s = { "s", "Split horizontal" }, + e = { "=", "Make Splits equal" }, + x = { "close", "Close Split" }, + }, + m = { + name = "menu", + l = { "Lazy", "Open Lazy Menu" }, + m = { "Mason", "Open Mason Menu" }, + }, + g = { + name = "git", + t = { "Gitsigns toggle_signs", "Toggle Gitsigns" }, + h = { "Gitsigns toggle_linehl", "Toggle Line Highlights" }, + s = { "Telescope git_status", "git status" }, + d = { "Gvdiff", "Differences" }, + w = { "Gwrite", "Add File" }, + N = { "Gitsigns next_hunk", "Go to next hunk" }, + P = { "Gitsigns prev_hunk", "Go to previous hunk" }, + c = { "Git commit", "Commit" }, + H = { "Gitsigns stage_hunk", "Stage hunk" }, + p = { "Git push", "Push" }, + C = { "Telescope git_commits", "View commits" }, + b = { "Telescope git_branches", "View branches" }, + }, + }, { prefix = "" }) + end, +}