diff options
Diffstat (limited to 'Common/nvim/lua')
| -rwxr-xr-x | Common/nvim/lua/basic.lua.m4 | 10 | ||||
| -rwxr-xr-x | Common/nvim/lua/helper_functions.lua | 8 | ||||
| -rw-r--r-- | Common/nvim/lua/lsp-conf.lua | 102 | ||||
| -rwxr-xr-x | Common/nvim/lua/plugins.lua | 154 |
4 files changed, 59 insertions, 215 deletions
diff --git a/Common/nvim/lua/basic.lua.m4 b/Common/nvim/lua/basic.lua.m4 index 70d78cc..eedc5c6 100755 --- a/Common/nvim/lua/basic.lua.m4 +++ b/Common/nvim/lua/basic.lua.m4 @@ -17,22 +17,14 @@ vim.opt.softtabstop = 4 -- Disable highlight when <leader><cr> is pressed vim.api.nvim_set_keymap('n', '<leader><cr>', ':noh<cr>', { noremap = true, silent = true }) --- Tab commands -vim.api.nvim_set_keymap('n', '<leader>tp', ':tabprevious<cr>', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '<leader>tn', ':tabnext<cr>', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '<leader>tc', ':tabnew<cr>', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('n', '<leader>tx', ':tabclose<cr>', { noremap = true, silent = true }) - -- Return to last edit position when opening files vim.cmd [[ au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]] -- Colorscheme -vim.cmd [[ colorscheme bw ]] vim.opt.background = "light" --- No idea why, preview in fzf does at least work extremely porly without this -vim.cmd [[ let $BAT_THEME = 'gruvbox-light' ]] m4_ifelse(DT_DOTFILES_TYPE, `remote', `m4_dnl vim.opt.termguicolors = true ')m4_dnl +vim.cmd.colorscheme("bw") diff --git a/Common/nvim/lua/helper_functions.lua b/Common/nvim/lua/helper_functions.lua index 15db30a..12e2328 100755 --- a/Common/nvim/lua/helper_functions.lua +++ b/Common/nvim/lua/helper_functions.lua @@ -1,13 +1,5 @@ -- Load local configuration -- For me this is usually something like --- let g:vimwiki_list = [ --- \ {'name': 'I45', 'syntax': 'markdown', 'ext': 'md', 'auto_toc': 1, 'diary_frequency': 'monthly', --- \ 'path': '~/_library/I45/', --- \ 'nested_syntaxes': {'python': 'python', 'sql': 'sql', 'ioql': 'ioql'}}, --- \ {'name': 'P01', 'syntax': 'markdown', 'ext': 'md', 'auto_toc': 1, --- \ 'path': '~/_library/', --- \ } --- \] -- let g:db = "mysql://user@db001" vim.cmd [[ if !empty(glob("~/.env.vim")) diff --git a/Common/nvim/lua/lsp-conf.lua b/Common/nvim/lua/lsp-conf.lua index 9025244..ec1754b 100644 --- a/Common/nvim/lua/lsp-conf.lua +++ b/Common/nvim/lua/lsp-conf.lua @@ -1,91 +1,33 @@ --- Mason Setup -require("mason").setup({ - ui = { - icons = { - package_installed = "", - package_pending = "", - package_uninstalled = "", - }, - } -}) +require("mason").setup() require("mason-lspconfig").setup({ - ensure_installed = { "rust_analyzer", "tsserver", "clangd", "intelephense", "pyright", "texlab", "jdtls", "sqlls" } + handlers = { + function(server_name) + vim.lsp.enable(server_name) + end, + } }) -require("mason-lspconfig").setup_handlers { - function (server_name) -- default handler (optional) - require("lspconfig")[server_name].setup {} - end, -} - --- LSP Diagnostics Options Setup -local sign = function(opts) - vim.fn.sign_define(opts.name, { - texthl = opts.name, - text = opts.text, - numhl = '' - }) -end - -sign({name = 'DiagnosticSignError', text = '!'}) -sign({name = 'DiagnosticSignWarn', text = '!!'}) -sign({name = 'DiagnosticSignHint', text = '?'}) -sign({name = 'DiagnosticSignInfo', text = 'i'}) vim.diagnostic.config({ - virtual_text = false, - signs = true, update_in_insert = true, - underline = true, - severity_sort = false, }) -vim.cmd [[ -hi DiagnosticUnderlineError gui=none guibg='LightRed' -hi DiagnosticUnderlineWarn guisp='Orange' gui=undercurl -hi DiagnosticUnderlineInfo guisp='Cyan' gui=undercurl -hi DiagnosticUnderlineHint guisp='Cyan' gui=undercurl -hi DiagnosticUnderlineOk gui=none - -hi link DiagnosticFloatingHint Normal -hi link DiagnosticFloatingInfo Normal -hi DiagnosticFloatingOk guifg=Green -hi link DiagnosticFloatingWarn Normal -]] +local highlights = { + DiagnosticUnderlineError = { underline = false, bg = "LightRed" }, + DiagnosticUnderlineWarn = { sp = "Orange", undercurl = true }, + DiagnosticUnderlineInfo = { sp = "Cyan", undercurl = true }, + DiagnosticUnderlineHint = { sp = "Cyan", undercurl = true }, + DiagnosticUnderlineOK = { underline = false }, + + DiagnosticFloatingHint = { link = "Normal" }, + DiagnosticFloatingInfo = { link = "Normal" }, + DiagnosticFloatingWarn = { link = "Normal" }, + DiagnosticFloatingOk = { fg = "Green" }, +} -vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'} -vim.opt.shortmess = vim.opt.shortmess + { c = true} -vim.api.nvim_set_option('updatetime', 300) +for group, settings in pairs(highlights) do + vim.api.nvim_set_hl(0, group, settings) +end --- Enable signcolumn +vim.opt.updatetime = 300 vim.opt.signcolumn = 'yes' --- Remove background in SignColumn, looks odd without this -vim.api.nvim_set_hl(0, "SignColumn", {link = "LineNr"}) - vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist) - -vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - -- Enable completion triggered by <c-x><c-o> - vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' - - local opts = { buffer = ev.buf } - vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) - vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) - vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts) - vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts) - vim.keymap.set('i', '<C-k>', vim.lsp.buf.signature_help, opts) - vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts) - vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts) - vim.keymap.set('n', '<leader>wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end, opts) - vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts) - vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, opts) - vim.keymap.set({ 'n', 'v' }, '<space>ca', vim.lsp.buf.code_action, opts) - vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts) - vim.keymap.set('n', '<space>f', function() - vim.lsp.buf.format { async = true } - end, opts) - end -}) diff --git a/Common/nvim/lua/plugins.lua b/Common/nvim/lua/plugins.lua index 2ad775f..04b474e 100755 --- a/Common/nvim/lua/plugins.lua +++ b/Common/nvim/lua/plugins.lua @@ -1,119 +1,37 @@ --- Autoinstall packer -local fn = vim.fn -local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' -if fn.empty(fn.glob(install_path)) > 0 then - packer_bootstrap = fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) -end - --- Autocompile packer -vim.cmd([[ - augroup packer_user_config - autocmd! - autocmd BufWritePost plugins.lua source <afile> | PackerCompile - augroup end -]]) - -return require('packer').startup(function(use) - -- Packer itself :) - use 'wbthomason/packer.nvim' - - use 'tpope/vim-fugitive' - use { - 'junegunn/fzf.vim', - requires = { 'junegunn/fzf', 'kyazdani42/nvim-web-devicons' }, - config = function() - vim.cmd [[ - let g:fzf_layout = { 'down': '40%' } - - autocmd! FileType fzf - autocmd FileType fzf set laststatus=0 noshowmode noruler - \| autocmd BufLeave <buffer> set laststatus=2 showmode ruler - - let g:fzf_colors = - \ { 'fg': ['fg', 'Normal'], - \ 'bg': ['bg', 'Normal'], - \ 'hl': ['fg', 'Comment'], - \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], - \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], - \ 'hl+': ['fg', 'Statement'], - \ 'info': ['fg', 'PreProc'], - \ 'border': ['fg', 'Ignore'], - \ 'prompt': ['fg', 'Conditional'], - \ 'pointer': ['fg', 'Exception'], - \ 'marker': ['fg', 'Keyword'], - \ 'spinner': ['fg', 'Label'], - \ 'header': ['fg', 'Comment'] } - ]] - vim.api.nvim_set_keymap("n", ";", ":Files<cr>", { noremap = true, silent = true }) - vim.api.nvim_set_keymap("n", "<leader>;", ":Rg<cr>", { noremap = true, silent = true }) - vim.api.nvim_set_keymap("n", "<leader><leader>;", ":Lines<cr>", { noremap = true, silent = true }) - end, - } - - -- Lsp things - use { - 'williamboman/mason.nvim', - 'williamboman/mason-lspconfig.nvim', - 'neovim/nvim-lspconfig' , - } - - -- vim-dadbob (run sql directly) - use { - 'tpope/vim-dadbod', - config = function() - vim.cmd [[ - xnoremap <expr> <Plug>(DBExe) db#op_exec() - nnoremap <expr> <Plug>(DBExe) db#op_exec() - nnoremap <expr> <Plug>(DBExeLine) db#op_exec() . '_' - - xmap <leader>db <Plug>(DBExe) - nmap <leader>db <Plug>(DBExe) - omap <leader>db <Plug>(DBExe) - nmap <leader>dbb <Plug>(DBExeLine) - - autocmd FileType dbout setlocal nofoldenable - ]] - end, - } - - -- VimWiki stuff - use { - 'vimwiki/vimwiki', - config = function () - vim.g.vimwiki_global_ext = 0 - vim.g.vimwiki_auto_header = 1 - vim.g.vimwiki_links_space_char = '_' - vim.g.vimwiki_url_maxsave = 0 - vim.g.vimwiki_auto_chdir = 1 - end, - } - use { - 'mattn/calendar-vim', - config = function() - vim.g.calendar_monday = 1 - vim.g.calendar_weeknm = 5 - vim.api.nvim_create_autocmd("QuitPre", { - callback = function() - local invalid_win = {} - local wins = vim.api.nvim_list_wins() - for _, w in ipairs(wins) do - local bufname = vim.api.nvim_buf_get_name(vim.api.nvim_win_get_buf(w)) - if bufname:match("__Calendar") ~= nil then - table.insert(invalid_win, w) - end - end - if #invalid_win == #wins - 1 then - for _, w in ipairs(invalid_win) do vim.api.nvim_win_close(w, true) end - end - end - }) - end - } - - -- Automatically set up your configuration after cloning packer.nvim - -- Put this at the end after all plugins - if packer_bootstrap then - require('packer').sync() - end -end) +vim.pack.add({ + 'https://github.com/tpope/vim-fugitive', + 'https://github.com/tpope/vim-dadbod', + -- Fzf + 'https://github.com/junegunn/fzf', + 'https://github.com/junegunn/fzf.vim', + -- LSP + 'https://github.com/neovim/nvim-lspconfig', + 'https://github.com/mason-org/mason.nvim', + 'https://github.com/mason-org/mason-lspconfig.nvim' +}) + +-- Fzf setup +vim.cmd [[ + autocmd! FileType fzf + autocmd FileType fzf set laststatus=0 noshowmode noruler + \| autocmd BufLeave <buffer> set laststatus=2 showmode ruler +]] +vim.g.fzf_layout = { down = "40%" } +vim.api.nvim_set_keymap("n", ";", ":Files<cr>", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "<leader>;", ":Rg<cr>", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "<leader><leader>;", ":Lines<cr>", { noremap = true, silent = true }) + +-- Vim-dadbod setup +vim.cmd [[ +xnoremap <expr> <Plug>(DBExe) db#op_exec() +nnoremap <expr> <Plug>(DBExe) db#op_exec() +nnoremap <expr> <Plug>(DBExeLine) db#op_exec() . '_' + +xmap <leader>db <Plug>(DBExe) +nmap <leader>db <Plug>(DBExe) +omap <leader>db <Plug>(DBExe) +nmap <leader>dbb <Plug>(DBExeLine) + +autocmd FileType dbout setlocal nofoldenable +]] |
