From 9b3299e972f21efd85e1b57a7d1dfffeba1549e6 Mon Sep 17 00:00:00 2001 From: c Date: Tue, 10 Jan 2023 13:58:14 -0600 Subject: [PATCH] so much stuff --- nvim/.config/nvim/after/plugin/which-key.lua | 40 +++++ nvim/.config/nvim/init.lua | 26 ++- nvim/.config/nvim/lua/clint/colorscheme.lua | 8 +- nvim/.config/nvim/lua/clint/init.lua | 6 + nvim/.config/nvim/lua/clint/keybindings.lua | 14 +- nvim/.config/nvim/lua/clint/lsp.lua | 127 ++++++++------- nvim/.config/nvim/lua/clint/plugins.lua | 6 +- nvim/.config/nvim/lua/clint/telescope.lua | 21 --- nvim/.config/nvim/lua/plugins/init.lua | 158 +++++++++++++++++++ 9 files changed, 293 insertions(+), 113 deletions(-) create mode 100644 nvim/.config/nvim/after/plugin/which-key.lua delete mode 100644 nvim/.config/nvim/lua/clint/telescope.lua create mode 100644 nvim/.config/nvim/lua/plugins/init.lua diff --git a/nvim/.config/nvim/after/plugin/which-key.lua b/nvim/.config/nvim/after/plugin/which-key.lua new file mode 100644 index 0000000..8f3da0f --- /dev/null +++ b/nvim/.config/nvim/after/plugin/which-key.lua @@ -0,0 +1,40 @@ +-- Using this strictly to document for now. Actual mappings are in +-- lua/clint/keybindings.lua + +local wk = require("which-key") + +wk.register({ + [""] = { + -- File related stuff + f = { + name = "+file", + f = "Find File", + s = "Live Search", + b = "File Browser (delete this?)", + }, + -- Git related stuff + g = { + name = "+git", + g = "LazyGit", + f = "Git Files", + }, + -- Misc + c = "Change Color Scheme", + y = "Yank to system clipboard", + Y = "Yank to system clipboard", + d = "Diagnostics", + e = "File Explorer", + s = "Find and Replace", + b = "Buffers", + h = "Registers", + o = "Object Explorer", + fo = "Format Current File", + -- LSP related stuff + r = "Rename Object", + K = "Hover", + gd = "Go to definition", + -- Debugging + B = "Set Breakpoint", + [""] = "Debug: Continue", -- this doesnt work + }, +}) diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua index 372d7c2..6c5656f 100644 --- a/nvim/.config/nvim/init.lua +++ b/nvim/.config/nvim/init.lua @@ -1,24 +1,16 @@ --- ├── init.lua --- ├── ... --- └── lua --- ├── plugins --- │ ├── init.lua --- │ └── telescope.lua --- └── clint --- ├── init.lua --- ├── lazy_bootstrap.lua --- ├── maps.lua --- └── options.lua +vim.g.mapleader = '\\' -----------------------------------------------[[ Bootstrap Lazy ]] - -require("clint/lazy_bootstrap") -- bootstraps folke/lazy +require("clint/lazy_bootstrap") -- bootstraps folke/lazy ----------------------------------------------[[ User Settings ]] -require("clint") -- loads lua/clint/init.lua +require("clint") -- loads lua/clint/init.lua ----------------------------------------------[[ Load Plugins ]] -require("lazy").setup("plugins") -- loads each lua/plugin/* - +require("lazy").setup( + { + spec = "plugins", + install = { colorscheme = { "gruvbox", "habamax" } } + } +) -- loads each lua/plugin/* diff --git a/nvim/.config/nvim/lua/clint/colorscheme.lua b/nvim/.config/nvim/lua/clint/colorscheme.lua index 710cd1e..6e8b3f5 100644 --- a/nvim/.config/nvim/lua/clint/colorscheme.lua +++ b/nvim/.config/nvim/lua/clint/colorscheme.lua @@ -2,7 +2,7 @@ vim.cmd("colorscheme gruvbox") -- ignore background color for transparency --- vim.cmd("highlight Normal guibg=none") --- vim.cmd("highlight NonText guibg=none") --- vim.cmd("highlight Normal ctermbg=none") --- vim.cmd("highlight NonText ctermbg=none") +vim.cmd("highlight Normal guibg=none") +vim.cmd("highlight NonText guibg=none") +vim.cmd("highlight Normal ctermbg=none") +vim.cmd("highlight NonText ctermbg=none") diff --git a/nvim/.config/nvim/lua/clint/init.lua b/nvim/.config/nvim/lua/clint/init.lua index e69de29..88190c6 100644 --- a/nvim/.config/nvim/lua/clint/init.lua +++ b/nvim/.config/nvim/lua/clint/init.lua @@ -0,0 +1,6 @@ +require("clint.keybindings") +require("clint.settings") +require("clint.colorscheme") +require("clint.lsp") +require("clint.statusline") +-- require("clint.debug") diff --git a/nvim/.config/nvim/lua/clint/keybindings.lua b/nvim/.config/nvim/lua/clint/keybindings.lua index b10618e..4abb156 100644 --- a/nvim/.config/nvim/lua/clint/keybindings.lua +++ b/nvim/.config/nvim/lua/clint/keybindings.lua @@ -34,8 +34,8 @@ keymap('n', '', 'za', default_ops) -- Telescope stuff keymap('n', 'ff', ':Telescope find_files hidden=true', default_ops) -keymap('n', 'gf', ':Telescope git_files', default_ops) -keymap('n', 'lg', ':Telescope live_grep', default_ops) +keymap('n', 'fs', ':Telescope live_grep', default_ops) +keymap('n', 'fr', ':Telescope oldfiles', default_ops) keymap('n', 'd', ':Telescope diagnostics', default_ops) keymap('n', 'h', ':Telescope neoclip', default_ops) keymap('n', 'b', ':Telescope buffers', default_ops) @@ -52,6 +52,8 @@ keymap("n", "", "zz", default_ops) keymap("n", "n", "nzzzv", default_ops) keymap("n", "N", "Nzzzv", default_ops) keymap("n", "G", "Gzz", default_ops) +keymap("n", "{", "{zz", default_ops) +keymap("n", "}", "}zz", default_ops) -- Yank to system clipboard keymap("n", "y", [["+y]], default_ops) @@ -63,7 +65,15 @@ keymap("n", "s", [[:%s/\<\>//gI]], -- Git keymap('n', 'gg', ':LazyGit', default_ops) +keymap('n', 'gf', ':Telescope git_files', default_ops) -- File Explorer keymap('n', 'e', ':NeoTreeFocusToggle', default_ops) +-- Object Explorer +keymap('n', 'o', ':SymbolsOutline', default_ops) + +-- Debugging +keymap('n', 'B', ":lua require'dap'.toggle_breakpoint()", default_ops) +keymap('n', '', ":lua require'dap'.continue()", default_ops) +keymap('n', 'D', ":lua require'dapui'.toggle()", default_ops) diff --git a/nvim/.config/nvim/lua/clint/lsp.lua b/nvim/.config/nvim/lua/clint/lsp.lua index 710eb90..a1e5ff8 100644 --- a/nvim/.config/nvim/lua/clint/lsp.lua +++ b/nvim/.config/nvim/lua/clint/lsp.lua @@ -1,81 +1,80 @@ -local cmp = require'cmp' +local cmp = require 'cmp' local capabilities = require('cmp_nvim_lsp').default_capabilities() local on_attach = function() - vim.keymap.set("n", "K", vim.lsp.buf.hover, {buffer=0}) - vim.keymap.set("n", "gd", vim.lsp.buf.definition, {buffer=0}) - vim.keymap.set("n", "r", vim.lsp.buf.rename, {buffer=0}) - vim.keymap.set("n", "fo", vim.lsp.buf.format, {buffer=0}) - end + vim.keymap.set("n", "K", vim.lsp.buf.hover, { buffer = 0 }) + vim.keymap.set("n", "gd", vim.lsp.buf.definition, { buffer = 0 }) + vim.keymap.set("n", "r", vim.lsp.buf.rename, { buffer = 0 }) + vim.keymap.set("n", "fo", vim.lsp.buf.format, { buffer = 0 }) +end -require'lspconfig'.pyright.setup{ +require 'lspconfig'.pyright.setup { capabilities = capabilities, on_attach = on_attach } -require'lspconfig'.sumneko_lua.setup{ +require 'lspconfig'.sumneko_lua.setup { capabilities = capabilities, on_attach = on_attach, settings = { - Lua = { - diagnostics = { - globals = { 'vim' } - } - } - } + Lua = { + diagnostics = { + globals = { 'vim' } + } + } + } } cmp.setup({ - snippet = { - -- REQUIRED - you must specify a snippet engine - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. - require('luasnip').lsp_expand(args.body) -- For `luasnip` users. - end, - }, - window = { - -- completion = cmp.config.window.bordered(), - -- documentation = cmp.config.window.bordered(), - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, -- For luasnip users. - }, { - { name = 'buffer' }, - }) - }) + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. + require('luasnip').lsp_expand(args.body) -- For `luasnip` users. + end, + }, + window = { + -- completion = cmp.config.window.bordered(), + -- documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, -- For luasnip users. + }, { + { name = 'buffer' }, + }) +}) - -- Set configuration for specific filetype. - cmp.setup.filetype('gitcommit', { - sources = cmp.config.sources({ - { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. - }, { - { name = 'buffer' }, - }) - }) +-- Set configuration for specific filetype. +cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources({ + { name = 'cmp_git' }, -- You can specify the `cmp_git` source if you were installed it. + }, { + { name = 'buffer' }, + }) +}) - -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = { - { name = 'buffer' } - } - }) - - -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = 'path' } - }, { - { name = 'cmdline' } - }) - }) +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = 'buffer' } + } +}) +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = 'path' } + }, { + { name = 'cmdline' } + }) +}) diff --git a/nvim/.config/nvim/lua/clint/plugins.lua b/nvim/.config/nvim/lua/clint/plugins.lua index 6759ebb..99ea2a3 100644 --- a/nvim/.config/nvim/lua/clint/plugins.lua +++ b/nvim/.config/nvim/lua/clint/plugins.lua @@ -1,5 +1 @@ -require("lazy").setup({ - "folke/which-key.nvim", - { "folke/neoconf.nvim", cmd = "Neoconf" }, - "folke/neodev.nvim", -}) +-- can delete this i think diff --git a/nvim/.config/nvim/lua/clint/telescope.lua b/nvim/.config/nvim/lua/clint/telescope.lua deleted file mode 100644 index 9d6781a..0000000 --- a/nvim/.config/nvim/lua/clint/telescope.lua +++ /dev/null @@ -1,21 +0,0 @@ -local M = { - 'nvim-telescope/telescope.nvim', branch = '0.1.x', - dependencies = { - {'nvim-lua/plenary.nvim'} - }, - cmd = { "Telescope", "Tel" }, -- lazy loads on these commands - keys = { "f" }, -- lazy loads on this pattern -} - -function M.config() - local telescope = require("telescope") - telescope.setup({}) - - local builtin = require('telescope.builtin') - vim.keymap.set('n', 'ff', builtin.find_files, {}) - vim.keymap.set('n', 'fg', builtin.live_grep, {}) - vim.keymap.set('n', 'fb', builtin.buffers, {}) - vim.keymap.set('n', 'fh', builtin.help_tags, {}) -end - -return M diff --git a/nvim/.config/nvim/lua/plugins/init.lua b/nvim/.config/nvim/lua/plugins/init.lua new file mode 100644 index 0000000..1520879 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins/init.lua @@ -0,0 +1,158 @@ +return { + + -------------------- + -- LSP + -------------------- + + { "williamboman/mason.nvim" }, + { "williamboman/mason-lspconfig.nvim" }, + { 'neovim/nvim-lspconfig' }, + { 'hrsh7th/cmp-nvim-lsp' }, + { 'hrsh7th/cmp-nvim-lua' }, + { 'hrsh7th/cmp-buffer' }, + { 'hrsh7th/cmp-path' }, + { 'hrsh7th/nvim-cmp' }, + { 'saadparwaiz1/cmp_luasnip' }, + + -- Linter + { 'jose-elias-alvarez/null-ls.nvim', + config = function() + local nls = require("null-ls") + nls.setup({ + sources = { + nls.builtins.diagnostics.selene, + }, + }) + end, + }, + + -- Debugging + { 'mfussenegger/nvim-dap' }, + { 'rcarriga/nvim-dap-ui', config = true }, + { "mfussenegger/nvim-dap-python", config = true }, + + -------------------- + -- Color schemes + -------------------- + + { 'ayu-theme/ayu-vim' }, + { 'morhetz/gruvbox' }, + { 'dikiaap/minimalist' }, + { 'jacoborus/tender.vim' }, + { 'jpo/vim-railscasts-theme' }, + { 'rainux/vim-desert-warm-256' }, + { 'ajmwagar/vim-deus' }, + { "rebelot/kanagawa.nvim" }, + + -------------------- + -- Utility + -------------------- + + -- Git + { 'kdheepak/lazygit.nvim' }, + + -- Sessions + { "tpope/vim-obsession" }, + + -- SuperTab + { 'ervandew/supertab' }, + + -- Vim-surround + { 'tpope/vim-surround' }, + + -- Slime, for tmux repl-ing + { 'jpalardy/vim-slime' }, + + -- Telescope, fuzzy finding + { 'nvim-lua/plenary.nvim' }, + { 'nvim-telescope/telescope.nvim' }, + { 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' }, + { "nvim-telescope/telescope-file-browser.nvim" }, + + -- Treesitter + { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, + + -- Registry history + { + "AckslD/nvim-neoclip.lua", + dependencies = { + { 'kkharji/sqlite.lua', module = 'sqlite' }, + { 'nvim-telescope/telescope.nvim' }, + }, + config = { + enable_persistent_history = true, + continuous_sync = true + }, + }, + + -- Auto pairs + { "windwp/nvim-autopairs", config = true }, -- See `config` under https://github.com/folke/lazy.nvim#-plugin-spec + + -- Comment / uncomment + { "numToStr/Comment.nvim", config = true }, + + -- Git Repo Telescope + { 'cljoly/telescope-repo.nvim' }, + + -- Which-Key + { + "folke/which-key.nvim", + config = true, + }, + + -- File Explorer + { + "nvim-neo-tree/neo-tree.nvim", + branch = "v2.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended + "MunifTanjim/nui.nvim", + }, + }, + + -- Object Explorer + { 'simrat39/symbols-outline.nvim', + config = { + auto_preview = true, + } + }, + + -------------------- + -- Aesthetics + -------------------- + + -- airline + { 'nvim-lualine/lualine.nvim' }, + + -- Devicons + { 'kyazdani42/nvim-web-devicons' }, + + -- Indent lines + { "lukas-reineke/indent-blankline.nvim" }, + + -- Cursor line + { 'yamatsum/nvim-cursorline', + config = + { + cursorline = { + enable = true, + timeout = 0, + number = true, + }, + cursorword = { + enable = false, + } + } + }, + + -- Greeter + { + 'goolord/alpha-nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' }, + -- config = function(}, + -- require 'alpha'.setup(require 'alpha.themes.startify'.config}, + -- end + }, + +}