aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTrey Bastian <hello@treybastian.com>2025-10-29 11:52:37 +0000
committerTrey Bastian <hello@treybastian.com>2025-10-29 11:52:37 +0000
commit019a93697352f442edfbf7b12abcaa0ff4293cfd (patch)
tree357523f499c13438cc61300f1812b4215a526cb1 /lua
new and improved nvim config
Diffstat (limited to 'lua')
-rw-r--r--lua/config/conform.lua21
-rw-r--r--lua/config/init.lua6
-rw-r--r--lua/config/keys.lua11
-rw-r--r--lua/config/lsp.lua14
-rw-r--r--lua/config/opts.lua23
-rw-r--r--lua/config/plugins.lua11
-rw-r--r--lua/config/telescope.lua14
-rw-r--r--lua/config/treesitter.lua28
8 files changed, 128 insertions, 0 deletions
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", "<leader>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", "<Tab>", ">gv")
+vim.keymap.set("v", "<S-Tab>", "<gv")
+vim.keymap.set("n", "<Tab>", "v><C-\\><C-N>")
+vim.keymap.set("n", "<S-Tab>", "v<<C-\\><C-N>")
+vim.keymap.set("i", "<S-Tab>", "<C-\\><C-N>v<<C-\\><C-N>^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", "<leader>ff", builtin.find_files)
+vim.keymap.set("n", "<leader>fg", builtin.git_files)
+vim.keymap.set("n", "<leader>fb", builtin.buffers)
+vim.keymap.set("n", "<leader>fh", builtin.help_tags)
+vim.keymap.set("n", "<leader><leader>", 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,
+})