aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-07-05 16:43:01 -0500
committerToby Vincent <tobyv13@gmail.com>2022-07-05 16:43:01 -0500
commit89ae947c69ed886f83b4916efd187e9603b4b335 (patch)
tree2e01d47aafc252ac44d724154eede426574295e8
parent4ade98773df9299b4ba60058c15f42dd3435e631 (diff)
feat(nvim): use module syntax for mappings and autocommands
-rw-r--r--nvim/.config/nvim/lua/tobyvin/autocommands.lua165
-rw-r--r--nvim/.config/nvim/lua/tobyvin/init.lua8
-rw-r--r--nvim/.config/nvim/lua/tobyvin/mappings.lua100
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