From d3483449381b6a7ee4e62e352c699c63ddaab33a Mon Sep 17 00:00:00 2001 From: Alex NeonXP Date: Sun, 18 Feb 2024 15:18:56 +0300 Subject: Конфиги nvim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nvim/lua/autocommands.lua | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 nvim/lua/autocommands.lua (limited to 'nvim/lua/autocommands.lua') 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, +}) + + -- cgit v1.2.3