From 019a93697352f442edfbf7b12abcaa0ff4293cfd Mon Sep 17 00:00:00 2001 From: Trey Bastian Date: Wed, 29 Oct 2025 11:52:37 +0000 Subject: new and improved nvim config --- .luarc.json | 5 ++++ init.lua | 2 ++ lua/config/conform.lua | 21 +++++++++++++++ lua/config/init.lua | 6 +++++ lua/config/keys.lua | 11 ++++++++ lua/config/lsp.lua | 14 ++++++++++ lua/config/opts.lua | 23 +++++++++++++++++ lua/config/plugins.lua | 11 ++++++++ lua/config/telescope.lua | 14 ++++++++++ lua/config/treesitter.lua | 28 ++++++++++++++++++++ nvim-pack-lock.json | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 11 files changed, 200 insertions(+) create mode 100644 .luarc.json create mode 100644 init.lua create mode 100644 lua/config/conform.lua create mode 100644 lua/config/init.lua create mode 100644 lua/config/keys.lua create mode 100644 lua/config/lsp.lua create mode 100644 lua/config/opts.lua create mode 100644 lua/config/plugins.lua create mode 100644 lua/config/telescope.lua create mode 100644 lua/config/treesitter.lua create mode 100644 nvim-pack-lock.json diff --git a/.luarc.json b/.luarc.json new file mode 100644 index 0000000..1e1765c --- /dev/null +++ b/.luarc.json @@ -0,0 +1,5 @@ +{ + "diagnostics.globals": [ + "vim" + ] +} \ No newline at end of file diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..52dac59 --- /dev/null +++ b/init.lua @@ -0,0 +1,2 @@ +-- Trey's super simple neovim config +require("config") diff --git a/lua/config/conform.lua b/lua/config/conform.lua new file mode 100644 index 0000000..c581bdb --- /dev/null +++ b/lua/config/conform.lua @@ -0,0 +1,21 @@ +local vim = vim +vim.pack.add({ + "https://github.com/stevearc/conform.nvim", +}) + +vim.keymap.set("n", "bf", function() + require("conform").format({ + async = true, + lsp_format = "fallback", + }) +end) + +require("conform").setup({ + formatters_by_ft = { + lua = { "stylua" }, -- os package manager stylua + }, + format_on_save = { + timeout_ms = 1001, + lsp_format = "fallback", + }, +}) diff --git a/lua/config/init.lua b/lua/config/init.lua new file mode 100644 index 0000000..5bf32c2 --- /dev/null +++ b/lua/config/init.lua @@ -0,0 +1,6 @@ +require("config.opts") +require("config.keys") +require("config.plugins") +require("config.lsp") +require("config.telescope") +require("config.conform") diff --git a/lua/config/keys.lua b/lua/config/keys.lua new file mode 100644 index 0000000..bf13e21 --- /dev/null +++ b/lua/config/keys.lua @@ -0,0 +1,11 @@ +local vim = vim + +vim.g.mapleader = " " +vim.g.maplocalleader = "," + +vim.keymap.set("x", "p", [["_dP]]) +vim.keymap.set("v", "", ">gv") +vim.keymap.set("v", "", "", "v>") +vim.keymap.set("n", "", "v<") +vim.keymap.set("i", "", "v<^i") diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua new file mode 100644 index 0000000..6e8f870 --- /dev/null +++ b/lua/config/lsp.lua @@ -0,0 +1,14 @@ +local vim = vim + +vim.pack.add({ + { src = "https://github.com/saghen/blink.cmp", version = vim.version.range("*") }, + "https://github.com/neovim/nvim-lspconfig", + "https://github.com/rafamadriz/friendly-snippets", +}) + +vim.lsp.enable({ + "bashls", -- npm install -g bash-language-server + "lua_ls", -- os pkg manager lua-language-server +}) + +require("blink.cmp").setup({}) diff --git a/lua/config/opts.lua b/lua/config/opts.lua new file mode 100644 index 0000000..1e951e4 --- /dev/null +++ b/lua/config/opts.lua @@ -0,0 +1,23 @@ +-- options +local o = vim.opt +o.expandtab = true +o.signcolumn = "yes" +o.nu = true +o.relativenumber = true +o.tabstop = 4 +o.softtabstop = 4 +o.shiftwidth = 2 +o.expandtab = true +o.smartindent = true +o.wrap = false +o.swapfile = false +o.backup = false +o.undofile = true +o.undodir = vim.fn.stdpath("data") .. "/undodir" +o.hlsearch = false +o.incsearch = true +o.clipboard = "unnamedplus" +o.colorcolumn = "80" +o.pumheight = 15 +o.updatetime = 50 +o.scrolloff = 8 diff --git a/lua/config/plugins.lua b/lua/config/plugins.lua new file mode 100644 index 0000000..7d3ebda --- /dev/null +++ b/lua/config/plugins.lua @@ -0,0 +1,11 @@ +-- plugins that require no configuration +vim.pack.add({ + "https://github.com/tpope/vim-fugitive", + "https://github.com/tpope/vim-eunuch", + "https://github.com/jessarcher/vim-heritage", + "https://github.com/windwp/nvim-autopairs", + "https://github.com/kylechui/nvim-surround", +}) + +require("nvim-autopairs").setup() +require("nvim-surround").setup() diff --git a/lua/config/telescope.lua b/lua/config/telescope.lua new file mode 100644 index 0000000..0c4ed4f --- /dev/null +++ b/lua/config/telescope.lua @@ -0,0 +1,14 @@ +local vim = vim +vim.pack.add({ + "https://github.com/nvim-lua/plenary.nvim", + "https://github.com/nvim-telescope/telescope.nvim", +}) + +require("telescope").setup() + +local builtin = require("telescope.builtin") +vim.keymap.set("n", "ff", builtin.find_files) +vim.keymap.set("n", "fg", builtin.git_files) +vim.keymap.set("n", "fb", builtin.buffers) +vim.keymap.set("n", "fh", builtin.help_tags) +vim.keymap.set("n", "", builtin.live_grep) diff --git a/lua/config/treesitter.lua b/lua/config/treesitter.lua new file mode 100644 index 0000000..030d987 --- /dev/null +++ b/lua/config/treesitter.lua @@ -0,0 +1,28 @@ +local vim = vim +vim.pack.add({ + "https://github.com/windwp/nvim-ts-autotag", + "https://github.com/HiPhish/rainbow-delimiters.nvim", + "https://github.com/RRethy/nvim-treesitter-endwise", + "https://github.com/nvim-treesitter/nvim-treesitter-context", + "https://github.com/nvim-treesitter/nvim-treesitter", +}) + +require("nvim-treesitter").setup({ + sync_install = false, + auto_install = true, + highlight = { enable = true }, + autotag = { enable = true }, + rainbow = { enable = true, extended_mode = true }, + indent = { enable = true }, + endwise = { enable = true }, +}) + +vim.api.nvim_create_autocmd("PackChanged", { + callback = function() + vim.cmd("TSUpdate") + end, +}) + +require("treesitter-context").setup({ + max_lines = 4, +}) diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json new file mode 100644 index 0000000..aef07a5 --- /dev/null +++ b/nvim-pack-lock.json @@ -0,0 +1,65 @@ +{ + "plugins": { + "blink.cmp": { + "rev": "327fff9", + "src": "https://github.com/saghen/blink.cmp", + "version": ">=0.0.0" + }, + "conform.nvim": { + "rev": "9fd3d5e", + "src": "https://github.com/stevearc/conform.nvim" + }, + "friendly-snippets": { + "rev": "572f566", + "src": "https://github.com/rafamadriz/friendly-snippets" + }, + "nvim-autopairs": { + "rev": "7a2c97c", + "src": "https://github.com/windwp/nvim-autopairs" + }, + "nvim-lspconfig": { + "rev": "cbd1e91" + }, + "nvim-surround": { + "rev": "fcfa7e0", + "src": "https://github.com/kylechui/nvim-surround" + }, + "nvim-treesitter": { + "rev": "42fc28ba", + "src": "https://github.com/nvim-treesitter/nvim-treesitter" + }, + "nvim-treesitter-context": { + "rev": "ec308c7", + "src": "https://github.com/nvim-treesitter/nvim-treesitter-context" + }, + "nvim-treesitter-endwise": { + "rev": "a61a9de", + "src": "https://github.com/RRethy/nvim-treesitter-endwise" + }, + "nvim-ts-autotag": { + "rev": "c4ca798", + "src": "https://github.com/windwp/nvim-ts-autotag" + }, + "plenary.nvim": { + "rev": "b9fd522", + "src": "https://github.com/nvim-lua/plenary.nvim" + }, + "rainbow-delimiters.nvim": { + "rev": "b6b3c9e", + "src": "https://github.com/HiPhish/rainbow-delimiters.nvim" + }, + "telescope.nvim": { + "rev": "b4da76b", + "src": "https://github.com/nvim-telescope/telescope.nvim" + }, + "vim-eunuch": { + "rev": "e86bb79", + "src": "https://github.com/tpope/vim-eunuch" + }, + "vim-fugitive": [], + "vim-heritage": { + "rev": "574baeb", + "src": "https://github.com/jessarcher/vim-heritage" + } + } +} \ No newline at end of file -- cgit v1.2.3