diff options
| author | Mike Vink <59492084+ivi-vink@users.noreply.github.com> | 2024-10-19 18:00:09 +0000 |
|---|---|---|
| committer | Mike Vink <59492084+ivi-vink@users.noreply.github.com> | 2024-10-19 18:00:09 +0000 |
| commit | fea7e9dacc0d4fc5c33890a04e94b7fcd124d347 (patch) | |
| tree | 76ad0c6fa757a5f78fa099a7157c8044db4c90e9 /mut/neovim/lua/my/events.lua | |
| parent | 62c02a6e17080eb4bde2d09982ab934dc8bbc750 (diff) | |
add lua
Diffstat (limited to 'mut/neovim/lua/my/events.lua')
| -rw-r--r-- | mut/neovim/lua/my/events.lua | 81 |
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, + }) |
