diff --git a/.config/aliasrc b/.config/aliasrc index 06b8c12..7c8d442 100644 --- a/.config/aliasrc +++ b/.config/aliasrc @@ -20,6 +20,9 @@ alias c="clear" # config alias config="/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME" +# cuebreakpoints +flacsplit() { cuebreakpoints $2 | shnsplit $1 -o flac } + # diff alias diff="diff --color=auto" diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index b40159c..4df8766 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -19,20 +19,23 @@ Plug 'hrsh7th/nvim-cmp' " autocompletion Plug 'hrsh7th/cmp-nvim-lsp' " autocompletion bridge to lsp Plug 'itchyny/lightline.vim' " fancy statusline Plug 'junegunn/fzf.vim' " quickly jump files using fzf +Plug 'l3mon4d3/luasnip' " snippet support Plug 'luochen1990/rainbow' " colorized matching brackets Plug 'majutsushi/tagbar', {'on': 'TagbarToggle'} " show tags -Plug 'mattesgroeger/vim-bookmarks' " Set Bookmarks +Plug 'mattesgroeger/vim-bookmarks' " Set bookmarks Plug 'neovim/nvim-lspconfig' " Language server client +Plug 'onsails/lspkind-nvim' " icons on completion Plug 'qpkorr/vim-renamer' " bulk renamer Plug 'raimondi/delimitmate' " automatic closing of brackets Plug 'rrethy/vim-hexokinase' , {'do': 'make hexokinase'} " color Preview Plug 'ryanoasis/vim-devicons' " enable icons for vim +Plug 'saadparwaiz1/cmp_luasnip' " add snippets from luasnips to cmp Plug 'scrooloose/nerdtree', {'on': 'NERDTreeToggle'} " filetree Plug 'tiyn/vim-tccs' " custom colorscheme Plug 'tpope/vim-fugitive' " git wrapper Plug 'tpope/vim-surround' " help for quotes/parantheses Plug 'uiiaoo/java-syntax.vim' , {'for': 'java'} " better syntax highlight for java than default -Plug 'zah/nim.vim' , {'for': 'nim'} " Highlighting for nim +Plug 'zah/nim.vim' , {'for': 'nim'} " highlighting for nim call plug#end() " alvan/vim-closetag @@ -114,17 +117,40 @@ let g:bookmark_highlight_lines = 1 lua << EOF -- Add additional capabilities supported by nvim-cmp local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) +capabilities = require("cmp_nvim_lsp").update_capabilities(capabilities) -- Set completeopt to have a better completion experience vim.o.completeopt = 'menuone,noselect' -- nvim-cmp setup -local cmp = require 'cmp' +local cmp = require("cmp") +local luasnip = require("luasnip") +local lspkind = require("lspkind") cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, mapping = { - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.select_next_item(), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), [''] = cmp.mapping.close(), [''] = cmp.mapping.confirm { behavior = cmp.ConfirmBehavior.Replace, @@ -132,11 +158,53 @@ cmp.setup { }}, sources = { { name = 'nvim_lsp' }, - { name = 'path'}, + { name = 'path' }, { name = 'buffer' }, + { name = 'luasnip' }, + }, + formatting = { + format = lspkind.cmp_format({ + mode = "symbol_text", + preset = "codicons", + maxwidth = 50, + menu = { + nvim_lsp = "[LSP]", + path = "[PATH]", + buffer = "[BUF]", + luasnip = "[SNIP]", + }, + symbol_map = { + Text = "", + Method = "", + Function = "", + Constructor = "", + Field = "ﰠ", + Variable = "", + Class = "ﴯ", + Interface = "", + Module = "", + Property = "ﰠ", + Unit = "塞", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + Color = "", + File = "", + Reference = "", + Folder = "", + EnumMember = "", + Constant = "", + Struct = "פּ", + Event = "", + Operator = "", + TypeParameter = "" + }, + }), }, } +require("luasnip.loaders.from_snipmate").lazy_load() EOF " neovim/nvim-lspconfig @@ -165,7 +233,7 @@ end -- Use a loop to conveniently call 'setup' on multiple servers and -- map buffer local keybindings when the language server attaches -local servers = { "pyright", "bashls", "tsserver", "texlab", "ccls", "gopls", "hls", "nimls" } +local servers = { "pyright", "bashls", "tsserver", "texlab", "ccls", "gopls", "hls", "nimls", "marksman" } for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { on_attach=on_attach, @@ -176,6 +244,7 @@ for _, lsp in ipairs(servers) do } end + require'lspconfig'.jdtls.setup{ on_attach=on_attach, flags = { diff --git a/.config/nvim/snippets/tex.snippets b/.config/nvim/snippets/tex.snippets new file mode 100644 index 0000000..d03641c --- /dev/null +++ b/.config/nvim/snippets/tex.snippets @@ -0,0 +1,10 @@ +# Section +snippet sec \section + \\section{${1:section name}}% + \\label{sec:${2:$1}} + ${0} +# Section without number +snippet sec* \section* + \\section*{${1:section name}}% + \\label{sec:${2:$1}} + ${0}