diff options
author | Alex NeonXP <i@neonxp.ru> | 2024-02-18 15:18:56 +0300 |
---|---|---|
committer | Alex NeonXP <i@neonxp.ru> | 2024-02-18 15:18:56 +0300 |
commit | d3483449381b6a7ee4e62e352c699c63ddaab33a (patch) | |
tree | 6b181039580851d51629cb7e3bb139bde90e9720 /nvim/lua/autocommands.lua | |
parent | 17951e8c06f638543a19cbcaf95623ca211d6514 (diff) |
Конфиги nvim
Diffstat (limited to 'nvim/lua/autocommands.lua')
-rw-r--r-- | nvim/lua/autocommands.lua | 46 |
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, +}) + + |