lua << EOF -- LSP-config require('lspconfig').eslint.setup({}) require('lspconfig').jsonls.setup({}) require('lspconfig').html.setup({}) require('lspconfig').yamlls.setup({}) require('lspconfig').tsserver.setup({}) require('lspconfig').phpactor.setup({}) require('lspconfig').stylelint_lsp.setup({ filetypes = { 'css', 'sass', 'scss' } }) require('lspconfig').cssls.setup({ filetypes = { 'css', 'sass', 'scss' }, settings = { css = { validate = false, }, scss = { validate = false, }, sass = { validate = false, }, }, }) require('nvim-treesitter.configs').setup({ highlight = { enable = true, }, indent = { enable = true, }, }) require('lualine').setup({ options = { theme = 'gruvbox', }, }) require('hop').setup({}) require('nvim-autopairs').setup({}) require('fzf-lua').setup({ winopts = { width = 0.80, height = 0.78, row = 0.45, col = 0.48, }, }) local cmp = require('cmp') cmp.setup({ completion = { keyword_length = 1, -- TODO set this back 3, when fine with snippets }, snippet = { expand = function(args) vim.fn["vsnip#anonymous"](args.body) end, }, mapping = { [''] = cmp.mapping.confirm({ select = true }), }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'vsnip' }, { name = 'buffer', option = { get_bufnrs = function() return vim.api.nvim_list_bufs() end }, }, { name = 'path' }, { name = 'tmux', option = { all_panes = true } }, -- TODO 'true' makes things sloppy { name = 'calc' }, }), formatting = { format = function(entry, vim_item) vim_item.menu = ({ buffer = "[Buffer]", calc = "[Calc]", nvim_lsp = "[LSP]", path = "[Path]", tmux = "[tmux]", vsnip = "[Snippet]", })[entry.source.name] return vim_item end }, }) EOF " Snippets imap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' smap vsnip#available(1) ? '(vsnip-expand-or-jump)' : '' let g:vsnip_snippet_dirs = [expand('~/Dotfiles/nvim/plugged/friendly-snippets/snippets'), expand('~/Dotfiles/snippets')] let g:vsnip_filetypes = {} let g:vsnip_filetypes.sass = ['css'] let g:vsnip_filetypes.javascriptreact = ['javascript'] let g:vsnip_filetypes.typescriptreact = ['typescript'] " fugitive nnoremap gs :G20+ nnoremap gd :Gvdiff20+ nnoremap gc :Git commit20+ nnoremap gw :Gwrite20+ nnoremap gb :Git blame20+ " fzf nnoremap , lua require('fzf-lua').files() nnoremap ` lua require('fzf-lua').files({ cwd = '~/' }) nnoremap . lua require('fzf-lua').buffers() nnoremap l lua require('fzf-lua').lines() nnoremap a lua require('fzf-lua').grep_project() nnoremap ; lua require('fzf-lua').command_history() nnoremap / lua require('fzf-lua').search_history() nnoremap c lua require('fzf-lua').git_commits() nnoremap b lua require('fzf-lua').git_branches() " LSP nnoremap f lua vim.lsp.buf.formatting() " Hop nnoremap j lua require('hop').hint_words() " Floaterm let g:floaterm_keymap_toggle = 't' let g:floaterm_width = 0.8 let g:floaterm_height = 0.8 let g:floaterm_autoclose = 1 let g:floaterm_opener = 'edit' let g:floaterm_borderchars = '─│─│╭╮╯╰' let g:floaterm_title = '' hi FloatermBorder guibg='#282828' guifg='#fbf1c7' nnoremap - :FloatermNew nnn nnoremap g :FloatermNew lazygit