LunarVim/lua/nv-utils/init.lua

221 lines
5.7 KiB
Lua
Raw Normal View History

2021-03-17 17:47:52 +01:00
local nv_utils = {}
2021-03-17 05:17:41 +01:00
2021-03-17 17:47:52 +01:00
function nv_utils.define_augroups(definitions) -- {{{1
2021-03-14 21:55:38 +01:00
-- Create autocommand groups based on the passed definitions
--
-- The key will be the name of the group, and each definition
-- within the group should have:
-- 1. Trigger
-- 2. Pattern
-- 3. Text
-- just like how they would normally be defined from Vim itself
for group_name, definition in pairs(definitions) do
vim.cmd('augroup ' .. group_name)
vim.cmd('autocmd!')
for _, def in pairs(definition) do
local command = table.concat(vim.tbl_flatten {'autocmd', def}, ' ')
vim.cmd(command)
end
vim.cmd('augroup END')
end
end
2021-03-23 03:10:58 +01:00
2021-03-17 20:48:52 +01:00
nv_utils.define_augroups({
_general_settings = {
2021-03-23 03:10:58 +01:00
{'TextYankPost', '*', 'lua require(\'vim.highlight\').on_yank({higroup = \'Search\', timeout = 200})'},
{'BufWinEnter', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
2021-03-17 20:48:52 +01:00
{'BufRead', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
{'BufNewFile', '*', 'setlocal formatoptions-=c formatoptions-=r formatoptions-=o'},
{'FileType', 'java', 'luafile ~/.config/nvim/lua/lsp/java-ls.lua'},
{'FileType', 'java', 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'},
2021-03-20 03:35:58 +01:00
{'FileType', 'java', 'nnoremap ca <Cmd>lua require(\'jdtls\').code_action()<CR>'},
2021-03-23 03:10:58 +01:00
{'FileType', 'markdown', 'setlocal wrap'}, {'FileType', 'markdown', 'setlocal spell'},
{'BufWinEnter', '.sol', 'setlocal filetype=solidity'},
2021-03-24 22:58:17 +01:00
-- seems to be nobuflisted that makes my stuff disapear will do more testing
2021-03-25 07:36:57 +01:00
{'FileType', 'dashboard', 'setlocal nocursorline noswapfile synmaxcol& signcolumn=no norelativenumber nocursorcolumn nospell nolist nonumber bufhidden=wipe colorcolumn= foldcolumn=0 matchpairs= '},
2021-03-23 03:10:58 +01:00
{'FileType', 'dashboard', 'set showtabline=0 | autocmd WinLeave <buffer> set showtabline=2'},
2021-03-23 23:55:12 +01:00
{'BufRead', '*.sol', 'setlocal filetype=solidity'}, {'BufNewFile', '*.sol', 'setlocal filetype=solidity'},
2021-03-26 04:52:16 +01:00
-- {'BufWritePre', '*.jsx', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
-- {'BufWritePre', '*.js', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
-- {'BufWritePre', '*.py', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
2021-03-24 22:58:17 +01:00
-- {'BufWritePre', '*.lua', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'},
2021-03-26 04:52:16 +01:00
-- {'BufWritePre', '*.json', 'lua vim.lsp.buf.formatting_sync(nil, 1000)'}
2021-03-17 20:48:52 +01:00
-- {'User', 'GoyoLeave', 'lua require(\'galaxyline\').disable_galaxyline()'},
-- {'User', 'GoyoEnter', 'lua require(\'galaxyline\').galaxyline_augroup()'},
2021-03-14 21:55:38 +01:00
}
2021-03-17 20:48:52 +01:00
})
2021-03-16 04:21:59 +01:00
2021-03-16 03:13:41 +01:00
-- Add this to lightbulb, java makes this annoying tho
-- autocmd CursorHold,CursorHoldI * lua require'nvim-lightbulb'.update_lightbulb()
2021-03-17 05:17:41 +01:00
-- lsp
2021-03-17 17:47:52 +01:00
function nv_utils.add_to_workspace_folder()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.add_workspace_folder()
end
2021-03-17 17:47:52 +01:00
function nv_utils.clear_references()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.clear_references()
end
2021-03-17 17:47:52 +01:00
function nv_utils.code_action()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.code_action()
end
2021-03-17 17:47:52 +01:00
function nv_utils.declaration()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.declaration()
vim.lsp.buf.clear_references()
end
2021-03-17 17:47:52 +01:00
function nv_utils.definition()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.definition()
vim.lsp.buf.clear_references()
end
2021-03-17 17:47:52 +01:00
function nv_utils.document_highlight()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.document_highlight()
end
2021-03-17 17:47:52 +01:00
function nv_utils.document_symbol()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.document_symbol()
end
2021-03-17 17:47:52 +01:00
function nv_utils.formatting()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.formatting()
end
2021-03-17 17:47:52 +01:00
function nv_utils.formatting_sync()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.formatting_sync()
end
2021-03-17 17:47:52 +01:00
function nv_utils.hover()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.hover()
end
2021-03-17 17:47:52 +01:00
function nv_utils.implementation()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.implementation()
end
2021-03-17 17:47:52 +01:00
function nv_utils.incoming_calls()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.incoming_calls()
end
2021-03-17 17:47:52 +01:00
function nv_utils.list_workspace_folders()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.list_workspace_folders()
end
2021-03-17 17:47:52 +01:00
function nv_utils.outgoing_calls()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.outgoing_calls()
end
2021-03-17 17:47:52 +01:00
function nv_utils.range_code_action()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.range_code_action()
end
2021-03-17 17:47:52 +01:00
function nv_utils.range_formatting()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.range_formatting()
end
2021-03-17 17:47:52 +01:00
function nv_utils.references()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.references()
vim.lsp.buf.clear_references()
end
2021-03-17 17:47:52 +01:00
function nv_utils.remove_workspace_folder()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.remove_workspace_folder()
end
2021-03-17 17:47:52 +01:00
function nv_utils.rename()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.rename()
end
2021-03-17 17:47:52 +01:00
function nv_utils.signature_help()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.signature_help()
end
2021-03-17 17:47:52 +01:00
function nv_utils.type_definition()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.type_definition()
end
2021-03-17 17:47:52 +01:00
function nv_utils.workspace_symbol()
2021-03-17 05:17:41 +01:00
vim.lsp.buf.workspace_symbol()
end
-- diagnostic
2021-03-17 17:47:52 +01:00
function nv_utils.get_all()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.get_all()
end
2021-03-17 17:47:52 +01:00
function nv_utils.get_next()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.get_next()
end
2021-03-17 17:47:52 +01:00
function nv_utils.get_prev()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.get_prev()
end
2021-03-17 17:47:52 +01:00
function nv_utils.goto_next()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.goto_next()
end
2021-03-17 17:47:52 +01:00
function nv_utils.goto_prev()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.goto_prev()
end
2021-03-17 17:47:52 +01:00
function nv_utils.show_line_diagnostics()
2021-03-17 05:17:41 +01:00
vim.lsp.diagnostic.show_line_diagnostics()
end
-- git signs
2021-03-17 17:47:52 +01:00
function nv_utils.next_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').next_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.prev_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').prev_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.stage_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').stage_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.undo_stage_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').undo_stage_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.reset_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').reset_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.reset_buffer()
2021-03-17 07:19:25 +01:00
require('gitsigns').reset_buffer()
end
2021-03-17 17:47:52 +01:00
function nv_utils.preview_hunk()
2021-03-17 07:19:25 +01:00
require('gitsigns').preview_hunk()
end
2021-03-17 17:47:52 +01:00
function nv_utils.blame_line()
2021-03-17 07:19:25 +01:00
require('gitsigns').blame_line()
end
2021-03-17 05:17:41 +01:00
-- misc
2021-03-19 18:19:58 +01:00
function nv_utils.file_exists(name)
2021-03-23 03:10:58 +01:00
local f = io.open(name, "r")
if f ~= nil then
io.close(f)
return true
else
return false
end
2021-03-19 18:19:58 +01:00
end
2021-03-17 05:17:41 +01:00
2021-03-17 17:47:52 +01:00
return nv_utils
2021-03-17 07:19:25 +01:00