summaryrefslogtreecommitdiff
path: root/mut/neovim/lua/my/events.lua
diff options
context:
space:
mode:
authorMike Vink <59492084+ivi-vink@users.noreply.github.com>2024-10-19 18:00:09 +0000
committerMike Vink <59492084+ivi-vink@users.noreply.github.com>2024-10-19 18:00:09 +0000
commitfea7e9dacc0d4fc5c33890a04e94b7fcd124d347 (patch)
tree76ad0c6fa757a5f78fa099a7157c8044db4c90e9 /mut/neovim/lua/my/events.lua
parent62c02a6e17080eb4bde2d09982ab934dc8bbc750 (diff)
add lua
Diffstat (limited to 'mut/neovim/lua/my/events.lua')
-rw-r--r--mut/neovim/lua/my/events.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/mut/neovim/lua/my/events.lua b/mut/neovim/lua/my/events.lua
new file mode 100644
index 0000000..fe42daa
--- /dev/null
+++ b/mut/neovim/lua/my/events.lua
@@ -0,0 +1,81 @@
+local lsp = require("my.lsp")
+local oil = require("oil")
+local lint = require("lint")
+local event = vim.api.nvim_create_autocmd
+local command = vim.api.nvim_create_user_command
+
+vim.api.nvim_create_augroup("my", {clear= true})
+vim.api.nvim_create_augroup("conf#events", {clear= true})
+
+event(
+ "User",
+ {group= "conf#events",
+ pattern= { "ZoxideDirChanged" },
+ callback= function()
+ vim.schedule(function()
+ oil.open(vim.fn.getcwd)
+ end)
+ end})
+
+event(
+ "BufReadPost",
+ {group= "conf#events",
+ pattern= { "*" },
+ callback=function()
+ local pattern = "'\\s\\+$'"
+ vim.cmd("syn match TrailingWhitespace " .. pattern)
+ vim.cmd("hi link TrailingWhitespace IncSearch")
+ end})
+
+event(
+ "BufWritePost",
+ {group= "conf#events",
+ pattern={ "*" },
+ callback=function()
+ lint.try_lint()
+ vim.schedule(function() vim.diagnostic.setloclist({open= false}) end)
+ end})
+
+local session_file = vim.fn.expand("~/.vimsession.vim")
+event(
+ "VimLeave",
+ {group= "conf#events",
+ pattern= { "*" },
+ callback=function()
+ vim.cmd("mksession! " .. session_file)
+ end})
+
+event(
+ "LspAttach",
+ {group = "conf#events",
+ pattern = { "*" },
+ callback = function(ev)
+ lsp.attach({
+ client = vim.lsp.get_client_by_id(ev.data.client_id),
+ buf = ev.buf,
+ })
+ end})
+
+event(
+ "LspAttach",
+ {group = "conf#events",
+ pattern = { "*" },
+ callback = function(ev)
+ lsp.attach({
+ client = vim.lsp.get_client_by_id(ev.data.client_id),
+ buf = ev.buf,
+ })
+ end})
+
+event(
+ "FileType", {
+ group="conf#events",
+ pattern={ "go", "gomod", "gowork", "gotmpl" },
+ callback=function(ev)
+ vim.lsp.start({
+ name="gopls",
+ cmd={ "gopls" },
+ root_dir=vim.fs.root(ev.buf, {"go.work", "go.mod", ".git"})
+ })
+ end,
+ })