summaryrefslogtreecommitdiff
path: root/nvim/lua/autocommands.lua
diff options
context:
space:
mode:
authorAlex NeonXP <i@neonxp.ru>2024-02-18 15:18:56 +0300
committerAlex NeonXP <i@neonxp.ru>2024-02-18 15:18:56 +0300
commitd3483449381b6a7ee4e62e352c699c63ddaab33a (patch)
tree6b181039580851d51629cb7e3bb139bde90e9720 /nvim/lua/autocommands.lua
parent17951e8c06f638543a19cbcaf95623ca211d6514 (diff)
Конфиги nvim
Diffstat (limited to 'nvim/lua/autocommands.lua')
-rw-r--r--nvim/lua/autocommands.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/nvim/lua/autocommands.lua b/nvim/lua/autocommands.lua
new file mode 100644
index 0000000..a052a8c
--- /dev/null
+++ b/nvim/lua/autocommands.lua
@@ -0,0 +1,46 @@
+vim.api.nvim_create_autocmd({'BufWritePre'}, {
+ pattern = '*.go',
+ callback = function()
+ local params = vim.lsp.util.make_range_params(nil, vim.lsp.util._get_offset_encoding())
+ params.context = { only = {'source.organizeImports'} }
+ local result = vim.lsp.buf_request_sync(0, 'textDocument/codeAction', params, 3000)
+ for _, res in pairs(result or {}) do
+ for _, r in pairs(res.result or {}) do
+ if r.edit then
+ vim.lsp.util.apply_workspace_edit(r.edit, vim.lsp.util._get_offset_encoding())
+ else
+ vim.lsp.buf.execute_command(r.command)
+ end
+ end
+ end
+ end,
+})
+
+vim.api.nvim_create_autocmd({'BufWritePre'}, {
+ pattern = '*.go',
+ callback = function()
+ vim.lsp.buf.format(nil, 3000)
+ end
+})
+
+
+local TrimWhiteSpaceGrp = vim.api.nvim_create_augroup('TrimWhiteSpaceGrp', {})
+vim.api.nvim_create_autocmd('BufWritePre', {
+ group = TrimWhiteSpaceGrp,
+ pattern = '*',
+ command = '%s/\\s\\+$//e',
+})
+
+local YankHighlightGrp = vim.api.nvim_create_augroup('YankHighlightGrp', {})
+vim.api.nvim_create_autocmd('TextYankPost', {
+ group = YankHighlightGrp,
+ pattern = '*',
+ callback = function()
+ vim.highlight.on_yank({
+ higroup = 'IncSearch',
+ timeout = 40,
+ })
+ end,
+})
+
+