diff options
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/autocommands.lua | 165 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/init.lua | 8 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/mappings.lua | 100 |
3 files changed, 121 insertions, 152 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/autocommands.lua b/nvim/.config/nvim/lua/tobyvin/autocommands.lua index c82796f..17c109b 100644 --- a/nvim/.config/nvim/lua/tobyvin/autocommands.lua +++ b/nvim/.config/nvim/lua/tobyvin/autocommands.lua @@ -1,88 +1,95 @@ -local augroup_default = vim.api.nvim_create_augroup("Default", { clear = true }) +local M = {} -vim.api.nvim_create_autocmd("TextYankPost", { - group = augroup_default, - pattern = "*", - callback = function() - vim.highlight.on_yank() - end, - desc = "Highlight yank", -}) +M.setup = function() + local augroup_default = vim.api.nvim_create_augroup("Default", { clear = true }) -vim.api.nvim_create_autocmd("BufWritePre", { - group = augroup_default, - pattern = "*", - callback = function() - local cursor = vim.api.nvim_win_get_cursor(0) - vim.cmd("%s/\\s\\+$//e") - vim.api.nvim_win_set_cursor(0, cursor) - end, - desc = "Trim whitespace on write", -}) + vim.api.nvim_create_autocmd("TextYankPost", { + group = augroup_default, + pattern = "*", + callback = function() + vim.highlight.on_yank() + end, + desc = "Highlight yank", + }) -vim.api.nvim_create_autocmd("FileType", { - group = augroup_default, - pattern = "help", - callback = function() - vim.opt_local.wrap = true - vim.opt_local.textwidth = 120 - vim.cmd("wincmd L") - vim.cmd("vertical resize " .. vim.opt.textwidth:get()) - end, - desc = "Resize help window", -}) + vim.api.nvim_create_autocmd("BufWritePre", { + group = augroup_default, + pattern = "*", + callback = function() + local cursor = vim.api.nvim_win_get_cursor(0) + vim.cmd("%s/\\s\\+$//e") + vim.api.nvim_win_set_cursor(0, cursor) + end, + desc = "Trim whitespace on write", + }) -vim.api.nvim_create_autocmd("FileType", { - group = augroup_default, - pattern = "qf", - callback = function() - vim.opt_local.buflisted = false - end, - desc = "Hide filetype from buffer list", -}) + vim.api.nvim_create_autocmd("FileType", { + group = augroup_default, + pattern = "help", + callback = function() + vim.opt_local.wrap = true + vim.opt_local.textwidth = 120 + vim.opt_local.colorcolumn = nil + vim.cmd("wincmd L") + vim.cmd("vertical resize " .. vim.opt.textwidth:get()) + end, + desc = "Resize help window", + }) -vim.api.nvim_create_autocmd("FileType", { - group = augroup_default, - pattern = { "xml", "html", "xhtml", "css", "scss", "javascript", "lua", "dart" }, - callback = function() - vim.opt_local.shiftwidth = 2 - vim.opt_local.tabstop = 2 - end, - desc = "Set file specific tabstop", -}) + vim.api.nvim_create_autocmd("FileType", { + group = augroup_default, + pattern = "qf", + callback = function() + vim.opt_local.buflisted = false + end, + desc = "Hide filetype from buffer list", + }) -local augroup_search_highlighting = vim.api.nvim_create_augroup("SearchHighlighting", { clear = true }) + vim.api.nvim_create_autocmd("FileType", { + group = augroup_default, + pattern = { "xml", "html", "xhtml", "css", "scss", "javascript", "lua", "dart" }, + callback = function() + vim.opt_local.shiftwidth = 2 + vim.opt_local.tabstop = 2 + end, + desc = "Set file specific tabstop", + }) -vim.api.nvim_create_autocmd("CmdlineEnter", { - group = augroup_search_highlighting, - pattern = "/,?", - callback = function() - vim.opt.hlsearch = true - end, - desc = "Enable hlsearch on input", -}) + local augroup_search_highlighting = vim.api.nvim_create_augroup("SearchHighlighting", { clear = true }) -vim.api.nvim_create_autocmd("CmdlineLeave", { - group = augroup_search_highlighting, - pattern = "/,?", - callback = function() - vim.opt.hlsearch = false - end, - desc = "Disable hlsearch on exit", -}) + vim.api.nvim_create_autocmd("CmdlineEnter", { + group = augroup_search_highlighting, + pattern = "/,?", + callback = function() + vim.opt.hlsearch = true + end, + desc = "Enable hlsearch on input", + }) --- TODO: figure out how to do this correctly --- config reloading --- local configs = vim.api.nvim_create_augroup("Configs", { clear = true }) --- --- vim.api.nvim_create_autocmd("BufWritePost", { --- group = configs, --- pattern = ".nvimrc.lua", --- command = "source <afile>", --- }) --- --- vim.api.nvim_create_autocmd("BufWritePost", { --- group = configs, --- pattern = os.getenv("HOME") .. "/.config/nvim/*/*.lua", --- command = "source $MYVIMRC", --- }) + vim.api.nvim_create_autocmd("CmdlineLeave", { + group = augroup_search_highlighting, + pattern = "/,?", + callback = function() + vim.opt.hlsearch = false + end, + desc = "Disable hlsearch on exit", + }) + + -- TODO: figure out how to do this correctly + -- config reloading + -- local configs = vim.api.nvim_create_augroup("Configs", { clear = true }) + -- + -- vim.api.nvim_create_autocmd("BufWritePost", { + -- group = configs, + -- pattern = ".nvimrc.lua", + -- command = "source <afile>", + -- }) + -- + -- vim.api.nvim_create_autocmd("BufWritePost", { + -- group = configs, + -- pattern = os.getenv("HOME") .. "/.config/nvim/*/*.lua", + -- command = "source $MYVIMRC", + -- }) +end + +return M diff --git a/nvim/.config/nvim/lua/tobyvin/init.lua b/nvim/.config/nvim/lua/tobyvin/init.lua index 89ba8e2..d486c75 100644 --- a/nvim/.config/nvim/lua/tobyvin/init.lua +++ b/nvim/.config/nvim/lua/tobyvin/init.lua @@ -9,12 +9,8 @@ M.setup = function() require("tobyvin.options").setup() require("tobyvin.plugins").setup() require("tobyvin.lsp").setup() - - -- deferred execution makes the editor feel more responsive - vim.defer_fn(function() - require("tobyvin.autocommands") - require("tobyvin.mappings") - end, 0) + require("tobyvin.autocommands").setup() + require("tobyvin.mappings").setup() end return M diff --git a/nvim/.config/nvim/lua/tobyvin/mappings.lua b/nvim/.config/nvim/lua/tobyvin/mappings.lua index 1dc10c8..78572b8 100644 --- a/nvim/.config/nvim/lua/tobyvin/mappings.lua +++ b/nvim/.config/nvim/lua/tobyvin/mappings.lua @@ -1,72 +1,38 @@ -local mappings = { - { - -- NORMAL mode - opts = {}, - mappings = { - ["<leader>"] = { - c = { "<cmd>Bdelete!<CR>", "Close Buffer" }, - q = { "<cmd>q<CR>", "Quit" }, - w = { "<cmd>w!<CR>", "Save" }, - -- W = { ":set wrap! linebreak!<CR>", "Toggle Line Wrap" }, - ["/"] = { "<cmd>lua require('Comment.api').toggle_current_linewise()<CR>", "Comment" }, +local utils = require("tobyvin.utils") +local M = {} - f = { - name = "Find", - s = { "<cmd>Telescope session-lens search_session<cr>", "Sessions" }, - }, +M.quit = function() + vim.cmd("quit") +end + +M.quit_force = function() + vim.cmd("quit!") +end + +M.write = function() + vim.cmd("write") +end - m = { - name = "Markers", - h = { '<cmd>lua require("harpoon.mark").add_file()<cr>', "Harpoon" }, - u = { '<cmd>lua require("harpoon.ui").toggle_quick_menu()<cr>', "Harpoon UI" }, - }, - -- r = { - -- name = "Replace", - -- f = { "<cmd>lua require('spectre').open_file_search()<cr>", "Replace Buffer" }, - -- r = { "<cmd>lua require('spectre').open()<cr>", "Replace" }, - -- w = { "<cmd>lua require('spectre').open_visual({select_word=true})<cr>", "Replace Word" }, - -- }, - }, - }, - }, - { - -- VISUAL mode - opts = { - mode = "v", - }, - mappings = { - -- Ctrl maps - ["<C-/>"] = { - "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", - "Comment", - }, +M.write_force = function() + vim.cmd("write!") +end - -- Prefix "<leader>" - ["<leader>"] = { - ["/"] = { - "<ESC><CMD>lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())<CR>", - "Comment", - }, - }, - }, - }, - { - -- INSERT mode - opts = { - mode = "i", - }, - mappings = { - ["<C-h>"] = { "<left>", "Left" }, - ["<C-j>"] = { "<up>", "Up" }, - ["<C-k>"] = { "<down>", "Down" }, - ["<C-l>"] = { "<right>", "Right" }, - }, - }, -} +M.close = function() + vim.cmd("bdelete") +end -local ok, which_key = pcall(require, "which-key") -if ok then - for i, m in ipairs(mappings) do - which_key.register(m.mappings, m.opts) - end +M.close_force = function() + vim.cmd("bdelete!") end + +M.setup = function() + local nmap = utils.create_map_group("n", "<leader>") + nmap("q", M.quit, { desc = "Quit" }) + nmap("Q", M.quit_force, { desc = "Quit!" }) + nmap("w", M.write, { desc = "Write" }) + nmap("W", M.write_force, { desc = "Write!" }) + nmap("c", M.close, { desc = "Close" }) + nmap("C", M.close_force, { desc = "Close!" }) +end + +return M |