aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua
diff options
context:
space:
mode:
authorXander Swan <email>2025-12-03 10:00:41 -0500
committerXander Swan <email>2025-12-03 10:00:41 -0500
commit6d4208a39ba4a576c310a301eb576d84eec1ddaf (patch)
treebeef17e3d6e88f08b68673d3d3e394d19639cd78 /.config/nvim/lua
parentd0f041df4db23a512fa2d2a7c655af0b2c7e88c5 (diff)
Entirely new config
Diffstat (limited to '.config/nvim/lua')
-rw-r--r--.config/nvim/lua/map.lua97
-rw-r--r--.config/nvim/lua/opt.lua26
-rw-r--r--.config/nvim/lua/plugin/autopairs.lua13
-rw-r--r--.config/nvim/lua/plugin/liveserver.lua13
-rw-r--r--.config/nvim/lua/plugin/lsp.lua13
-rw-r--r--.config/nvim/lua/plugin/lualine.lua7
-rw-r--r--.config/nvim/lua/plugin/neogen.lua19
-rw-r--r--.config/nvim/lua/plugin/packer.lua58
-rw-r--r--.config/nvim/lua/plugin/setup.lua64
-rw-r--r--.config/nvim/lua/plugin/telescope.lua7
-rw-r--r--.config/nvim/lua/plugin/treesitter.lua13
-rw-r--r--.config/nvim/lua/set.lua26
12 files changed, 156 insertions, 200 deletions
diff --git a/.config/nvim/lua/map.lua b/.config/nvim/lua/map.lua
index 3103f56..ef97bd1 100644
--- a/.config/nvim/lua/map.lua
+++ b/.config/nvim/lua/map.lua
@@ -1,34 +1,77 @@
-vim.keymap.set("i", "jk", "<escape>", {})
-vim.keymap.set("n", "<leader>n", [[:NvimTreeToggle<CR>]], {})
-vim.keymap.set("n", "<leader>g", [[:Git<CR>]], {})
-vim.keymap.set("n", "<leader>c", [[:noh<CR>]], {})
-vim.keymap.set("n", "<leader>e", [[:TroubleToggle<CR>]])
+vim.g.mapleader = " "
-vim.keymap.set("n", "<C-h>", "<C-w>h", {})
-vim.keymap.set("n", "<C-j>", "<C-w>j", {})
-vim.keymap.set("n", "<C-k>", "<C-w>k", {})
-vim.keymap.set("n", "<C-l>", "<C-w>l", {})
+local nv = {"n", "v"}
-vim.keymap.set("n", "<C-u>", "u", {})
-vim.keymap.set("n", "u", "", {})
+local function definepairs(replacement, char)
+ vim.keymap.set("o", "i" .. replacement, "i" .. char, {})
+ vim.keymap.set("o", "a" .. replacement, "a" .. char, {})
+end
-vim.keymap.set({ "n", "v" }, "<leader>b", "^", {})
-vim.keymap.set({ "n", "v" }, "<leader>w", "$", {})
-vim.keymap.set({ "n", "v" }, "^", "", {})
-vim.keymap.set({ "n", "v" }, "$", "", {})
+definepairs("b", "(")
+definepairs("s", "\"")
+definepairs("q", "'")
+definepairs("t", "{")
+definepairs("r", "[")
+definepairs("a", "<")
-vim.keymap.set({ "v", "n" }, ".", "<C-u>zz", {})
-vim.keymap.set({ "v", "n" }, ",", "<C-d>zz", {})
+vim.keymap.set(nv, "gm", "gM", {})
+vim.keymap.set(nv, "gM", "gMi", {})
-vim.keymap.set("o", "as", "a\"", {})
-vim.keymap.set("o", "is", "i\"", {})
-vim.keymap.set("o", "it", "i[", {})
-vim.keymap.set("o", "at", "a[", {})
-vim.keymap.set("o", "ic", "i<", {})
-vim.keymap.set("o", "ac", "a<", {})
+-- Moving between windows
+vim.keymap.set(nv, "<C-h>", "<C-w>h", {})
+vim.keymap.set(nv, "<C-j>", "<C-w>j", {})
+vim.keymap.set(nv, "<C-k>", "<C-w>k", {})
+vim.keymap.set(nv, "<C-l>", "<C-w>l", {})
-vim.keymap.set({ "n", "v" }, "<leader>y", "\"+y", {})
-vim.keymap.set({ "n", "v" }, "<leader>v", "\"_", {})
+-- Same, but for terminal
+vim.keymap.set("t", "<C-h>", "<C-\\><C-n><C-w>h", {})
+vim.keymap.set("t", "<C-j>", "<C-\\><C-n><C-w>j", {})
+vim.keymap.set("t", "<C-k>", "<C-\\><C-n><C-w>k", {})
+vim.keymap.set("t", "<C-l>", "<C-\\><C-n><C-w>l", {})
-vim.keymap.set("n", "<up>", "<nop>", { noremap = true })
-vim.keymap.set("n", "<down>", "<nop>", { noremap = true })
+-- Moving windows
+vim.keymap.set(nv, "<C-w>h", "<C-w>H", {})
+vim.keymap.set(nv, "<C-w>j", "<C-w>J", {})
+vim.keymap.set(nv, "<C-w>k", "<C-w>K", {})
+vim.keymap.set(nv, "<C-w>l", "<C-w>L", {})
+
+-- Resizing windows
+vim.keymap.set(nv, "<C-->", "<C-w>-", {})
+vim.keymap.set(nv, "<C-=>", "<C-w>+", {})
+vim.keymap.set(nv, "<C-,>", "<C-w><", {})
+vim.keymap.set(nv, "<C-.>", "<C-w>>", {})
+
+-- Make exiting insert mode in terminal mode easier
+vim.keymap.set("t", "<ESC>", "<C-\\><C-n>", {})
+
+-- Center when moving around at high speeds
+vim.keymap.set(nv, "<C-u>", "<C-u>zz", {})
+vim.keymap.set(nv, "<C-d>", "<C-d>zz", {})
+vim.keymap.set(nv, "G", "Gzz", {})
+
+-- Delete line content. I didn't do ddO because that would extend comments if
+-- you were just above one.
+vim.keymap.set("n", "dc", "cc<ESC>", {})
+
+-- Make going to the end of a line as easy as going to the beginning
+vim.keymap.set({"n", "v", "o"}, "+", "$", {})
+
+-- Allow yanking to system clipboard
+vim.keymap.set(nv, "<leader>y", "\"+y", {})
+vim.keymap.set(nv, "<leader>p", "\"+p", {})
+
+-- Commands
+vim.keymap.set(nv, "<leader>c", "<CMD>noh<CR>", {silent=true})
+vim.keymap.set(nv, "<leader>e", "<CMD>Ex<CR>", {silent=true})
+vim.keymap.set(nv, "<leader>t", function()
+ vim.cmd("split")
+ vim.cmd("term")
+end, {silent=true})
+
+-- Common typo with me
+vim.api.nvim_create_user_command("W", "w", {bang=true})
+vim.api.nvim_create_user_command("Wa", "wa", {bang=true})
+vim.api.nvim_create_user_command("Wq", "wq", {bang=true})
+vim.api.nvim_create_user_command("Wqa", "wqa", {bang=true})
+vim.api.nvim_create_user_command("Q", "q", {bang=true})
+vim.api.nvim_create_user_command("Qa", "qa", {bang=true})
diff --git a/.config/nvim/lua/opt.lua b/.config/nvim/lua/opt.lua
new file mode 100644
index 0000000..ebb99e2
--- /dev/null
+++ b/.config/nvim/lua/opt.lua
@@ -0,0 +1,26 @@
+vim.cmd("colorscheme mine")
+
+vim.o.termguicolors = true
+vim.o.relativenumber = true
+vim.o.number = true
+vim.o.cursorline = true
+vim.o.cursorlineopt = "line"
+vim.o.ignorecase = true
+vim.o.smartcase = true
+vim.o.mouse = ""
+vim.o.cc = "80"
+vim.o.splitright = true
+vim.o.splitbelow = true
+
+local tabwidth = 2
+vim.o.tabstop = tabwidth
+vim.o.shiftwidth = tabwidth
+vim.o.expandtab = true
+
+-- Disable line numbers in terminal
+vim.api.nvim_create_autocmd("TermOpen", {
+ callback = function()
+ vim.o.number = false
+ vim.o.relativenumber = false
+ end,
+})
diff --git a/.config/nvim/lua/plugin/autopairs.lua b/.config/nvim/lua/plugin/autopairs.lua
deleted file mode 100644
index ab924aa..0000000
--- a/.config/nvim/lua/plugin/autopairs.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-
-require("nvim-autopairs").setup {
- fast_wrap = {
- map = "<M-e>",
- chars = { "<", "{", "[", "(", "\"", "'" },
- pattern = [=[[%"%"%>%]%)%}%,]]=],
- end_key = "$",
- keys = "qwertyuiopzxcvbnmasdfghjkl",
- check_comma = true,
- highlight = "Search",
- highlight_grey="Comment"
- }
-}
diff --git a/.config/nvim/lua/plugin/liveserver.lua b/.config/nvim/lua/plugin/liveserver.lua
deleted file mode 100644
index 542a1fb..0000000
--- a/.config/nvim/lua/plugin/liveserver.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-local status_ok, live_server = pcall(require, "live_server")
-if not status_ok then
- return
-end
-
-live_server.setup({
- port = 8080,
- browser_command = "", -- Empty string starts up with default browser
- quiet = false,
- no_css_inject = false, -- Disables css injection if true, might be useful when testing out tailwindcss
- install_path = vim.fn.stdpath "config" .. "/live-server/",
-})
-
diff --git a/.config/nvim/lua/plugin/lsp.lua b/.config/nvim/lua/plugin/lsp.lua
index 88d5c91..6563a6f 100644
--- a/.config/nvim/lua/plugin/lsp.lua
+++ b/.config/nvim/lua/plugin/lsp.lua
@@ -7,19 +7,6 @@ lsp.ensure_installed {
"lua_ls",
"clangd",
"cmake",
- "rust_analyzer",
- "omnisharp"
-}
-
-lspconfig.gdscript.setup {}
-
-lspconfig.omnisharp.setup {
- cmd = {
- "/usr/bin/omnisharp",
- "--languageserver",
- "--hostPID",
- tostring(vim.fn.getpid())
- }
}
local cmp = require("cmp")
diff --git a/.config/nvim/lua/plugin/lualine.lua b/.config/nvim/lua/plugin/lualine.lua
deleted file mode 100644
index 81071ec..0000000
--- a/.config/nvim/lua/plugin/lualine.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-
-require("lualine").setup {
- options = {
- component_separators = { left = "", right = "" },
- section_separators = { left = "", right = "" },
- },
-}
diff --git a/.config/nvim/lua/plugin/neogen.lua b/.config/nvim/lua/plugin/neogen.lua
deleted file mode 100644
index 512af71..0000000
--- a/.config/nvim/lua/plugin/neogen.lua
+++ /dev/null
@@ -1,19 +0,0 @@
-local neogen = require("neogen")
-
-neogen.setup {
- snippet_engine = "luasnip",
- languages = {
- cs = {
- template = {
- annotation_convention = "xmldoc",
- },
- },
- },
-}
-
-local opts = {
- silent = true,
-}
-
-vim.keymap.set("n", "<leader>df", ":Neogen<CR>", opts)
-
diff --git a/.config/nvim/lua/plugin/packer.lua b/.config/nvim/lua/plugin/packer.lua
index d623de8..a2ac451 100644
--- a/.config/nvim/lua/plugin/packer.lua
+++ b/.config/nvim/lua/plugin/packer.lua
@@ -1,21 +1,17 @@
return require("packer").startup(function(use)
- use "wbthomason/packer.nvim"
- use "christoomey/vim-tmux-navigator"
-
- use {
- "nvim-tree/nvim-tree.lua",
- requires = "kyazdani42/nvim-web-devicons"
- }
-
+ use { "wbthomason/packer.nvim" }
+
use {
"nvim-telescope/telescope.nvim",
- requires = { { "nvim-lua/plenary.nvim" } }
+ requires = {
+ { "nvim-lua/plenary.nvim" }
+ },
}
- use { "majutsushi/tagbar" }
use { "Yggdroot/indentLine" }
use { "windwp/nvim-autopairs" }
use { "airblade/vim-gitgutter" }
+
use {
"folke/trouble.nvim",
requires = {
@@ -23,37 +19,10 @@ return require("packer").startup(function(use)
}
}
- use {
- "aurum77/live-server.nvim",
- run = function()
- require"live_server.util".install()
- end,
- cmd = { "LiveServer", "LiveServerStart", "LiveServerStop" },
- }
-
- use {
- "utilyre/barbecue.nvim",
- tag = "*",
- requires = {
- "SmiteshP/nvim-navic",
- "nvim-tree/nvim-web-devicons", -- optional dependency
- },
- after = "nvim-web-devicons", -- keep this if you're using NvChad
- config = function()
- require("barbecue").setup()
- end,
- }
-
use { "tpope/vim-fugitive" }
- use { "mhinz/vim-startify" }
- use { "DanilaMihailov/beacon.nvim" }
- use {
- "nvim-lualine/lualine.nvim",
- requires = { "kyazdani42/nvim-web-devicons", opt = true }
- }
use { "numToStr/Comment.nvim" }
use { "HiPhish/nvim-ts-rainbow2" }
-
+
use {
"VonHeikemen/lsp-zero.nvim",
requires = {
@@ -75,20 +44,12 @@ return require("packer").startup(function(use)
{"rafamadriz/friendly-snippets"},
}
}
- use "tikhomirov/vim-glsl"
- use { "kosayoda/nvim-lightbulb" }
+ use { "tikhomirov/vim-glsl" }
use { "michaeljsmith/vim-indent-object" }
use {
- "loctvl842/monokai-pro.nvim",
- config = function()
- vim.cmd("colorscheme monokai-pro-spectrum")
- end
- }
-
- use {
"nvim-treesitter/nvim-treesitter",
run = ":TSUpdate"
}
@@ -97,7 +58,4 @@ return require("packer").startup(function(use)
"danymat/neogen",
requires = "nvim-treesitter/nvim-treesitter"
}
-
- use("nvim-treesitter/playground")
end)
-
diff --git a/.config/nvim/lua/plugin/setup.lua b/.config/nvim/lua/plugin/setup.lua
index 4d01374..4cce77b 100644
--- a/.config/nvim/lua/plugin/setup.lua
+++ b/.config/nvim/lua/plugin/setup.lua
@@ -1,15 +1,55 @@
-
require("Comment").setup {}
-require("nvim-lightbulb").setup({
- autocmd = { enabled = true }
-})
-require("nvim-tree").setup {
+
+require("nvim-autopairs").setup {
+ fast_wrap = {
+ map = "<M-e>",
+ chars = { "<", "{", "[", "(", "\"", "'" },
+ pattern = [=[[%"%"%>%]%)%}%,]]=],
+ end_key = "$",
+ keys = "qwertyuiopzxcvbnmasdfghjkl",
+ check_comma = true,
+ highlight = "Search",
+ highlight_grey="Comment"
+ }
+}
+
+local neogen = require("neogen")
+
+neogen.setup {
+ snippet_engine = "luasnip",
+ languages = {
+ cs = {
+ template = {
+ annotation_convention = "xmldoc",
+ },
+ },
+ },
+}
+
+local opts = {
+ silent = true,
+}
+
+vim.keymap.set("n", "<leader>df", "<CMD>Neogen<CR>", opts)
+
+require("nvim-treesitter.configs").setup {
+ ensure_installed = { "c", "rust", "lua", "vimdoc" },
+ sync_install = false,
+ highlight = {
+ enable = true,
+ additional_vim_regex_highlighting = true,
+ },
+ indent = { enable = false },
+ rainbow = {
+ enable = true,
+ }
}
-require("plugin.liveserver")
-require("plugin.treesitter")
-require("plugin.telescope")
-require("plugin.autopairs")
-require("plugin.lualine")
-require("plugin.lsp")
-require("plugin.neogen")
+do
+ 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>fs", function()
+ builtin.grep_string({ search = vim.fn.input("grep>") })
+ end)
+end
diff --git a/.config/nvim/lua/plugin/telescope.lua b/.config/nvim/lua/plugin/telescope.lua
deleted file mode 100644
index d5bea56..0000000
--- a/.config/nvim/lua/plugin/telescope.lua
+++ /dev/null
@@ -1,7 +0,0 @@
-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>fs", function()
- builtin.grep_string({ search = vim.fn.input("grep>") })
-end)
-
diff --git a/.config/nvim/lua/plugin/treesitter.lua b/.config/nvim/lua/plugin/treesitter.lua
deleted file mode 100644
index e14a975..0000000
--- a/.config/nvim/lua/plugin/treesitter.lua
+++ /dev/null
@@ -1,13 +0,0 @@
-require("nvim-treesitter.configs").setup {
- ensure_installed = { "c", "rust", "lua", "vimdoc" },
- sync_install = false,
- highlight = {
- enable = true,
- additional_vim_regex_highlighting = true,
- },
- indent = { enable = false },
- rainbow = {
- enable = true,
- }
-}
-
diff --git a/.config/nvim/lua/set.lua b/.config/nvim/lua/set.lua
deleted file mode 100644
index 88816af..0000000
--- a/.config/nvim/lua/set.lua
+++ /dev/null
@@ -1,26 +0,0 @@
-vim.opt.number = true
-vim.opt.relativenumber = true
-vim.opt.cursorline = true
-vim.opt.scrolloff = 4
-vim.opt.signcolumn = "yes"
-
-vim.opt.encoding = "utf8"
-vim.opt.fileencoding = "utf8"
-vim.opt.syntax = "ON"
-vim.opt.termguicolors = true
-
-vim.opt.ignorecase = true
-vim.opt.smartcase = true
-vim.opt.incsearch = true
-
-local tabwidth = 2
-vim.opt.expandtab = true
-vim.opt.shiftwidth = tabwidth
-vim.opt.softtabstop = tabwidth
-vim.opt.tabstop = tabwidth
-
-vim.opt.splitright = true
-vim.opt.splitbelow = true
-vim.opt.cc = "80"
-
-vim.opt.mouse = ""