diff options
| author | cafebabe <77344710+yuzu-eva@users.noreply.github.com> | 2022-05-21 23:33:01 +0200 |
|---|---|---|
| committer | cafebabe <77344710+yuzu-eva@users.noreply.github.com> | 2022-05-21 23:33:01 +0200 |
| commit | 16d566da938b049dda8998beec43e3cd85c4ed47 (patch) | |
| tree | e138daaf0e6496f2f72659766f54544cda9c1245 /.config/nvim/lua/user/plugins | |
| parent | 5825759403e9f316c03c771f64a89ac89547b4de (diff) | |
Add nvim configuration
Diffstat (limited to '.config/nvim/lua/user/plugins')
| -rw-r--r-- | .config/nvim/lua/user/plugins/cmp.lua | 62 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/dracula.lua | 12 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/lspconfig.lua | 76 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/lualine.lua | 64 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/nvim-tree.lua | 13 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/telescope.lua | 25 | ||||
| -rw-r--r-- | .config/nvim/lua/user/plugins/treesitter.lua | 30 |
7 files changed, 282 insertions, 0 deletions
diff --git a/.config/nvim/lua/user/plugins/cmp.lua b/.config/nvim/lua/user/plugins/cmp.lua new file mode 100644 index 0000000..fdd7b56 --- /dev/null +++ b/.config/nvim/lua/user/plugins/cmp.lua @@ -0,0 +1,62 @@ +local has_words_before = function() + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match '%s' == nil +end + +local cmp = require 'cmp' +local lspkind = require 'lspkind' + +-- Set completeopt to have a better completion experience +vim.o.completeopt = 'menuone,longest,preview' + +cmp.setup { + experimental = { + ghost_text = true, + }, + formatting = { + format = lspkind.cmp_format { + mode = 'symbol', + menu = { + nvim_lsp = '[LSP]', + nvim_lua = '[Lua]', + buffer = '[BUF]', + }, + }, + }, + mapping = { + ['<C-p>'] = cmp.mapping.select_prev_item(), + ['<C-n>'] = cmp.mapping.select_next_item(), + ['<C-d>'] = cmp.mapping.scroll_docs(-4), + ['<C-r>'] = cmp.mapping.scroll_docs(4), + ['<C-Space>'] = cmp.mapping.complete(), + ['<C-e>'] = cmp.mapping.close(), + ['<CR>'] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.replace, + select = false, + }, + ['<Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif has_words_before() then + cmp.complete() + else + fallback() + end + end, { 'i', 's' }), + ['<S-Tab>'] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + + end, { 'i', 's' }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'nvim_lsp_signature_help' }, + { name = 'nvim_lua' }, + { name = 'path' }, + { name = 'buffer' }, + }, +} diff --git a/.config/nvim/lua/user/plugins/dracula.lua b/.config/nvim/lua/user/plugins/dracula.lua new file mode 100644 index 0000000..a2b87fe --- /dev/null +++ b/.config/nvim/lua/user/plugins/dracula.lua @@ -0,0 +1,12 @@ +vim.cmd([[ + augroup DraculaOverrides + autocmd! + autocmd ColorScheme dracula highlight! link Pmenu DraculaBg + autocmd ColorScheme dracula highlight link NormalFloat DraculaBgLight + autocmd ColorScheme dracula highlight FloatBorder guifg=#343746 guibg=#343746 + autocmd ColorScheme dracula highlight DraculaBoundary guibg=none + autocmd ColorScheme dracula highlight DraculaDiffDelete ctermbg=none guibg=none + autocmd ColorScheme dracula highlight DraculaComment cterm=italic gui=italic + augroup end + colorscheme dracula +]]) diff --git a/.config/nvim/lua/user/plugins/lspconfig.lua b/.config/nvim/lua/user/plugins/lspconfig.lua new file mode 100644 index 0000000..248ad20 --- /dev/null +++ b/.config/nvim/lua/user/plugins/lspconfig.lua @@ -0,0 +1,76 @@ +local buf_option = vim.api.nvim_buf_set_option +local buf_keymap = require 'lib.utils'.buf_keymap + +vim.diagnostic.config { + virtual_text = false, + severity_sort = true, + float = { + source = true, + focus = false, + format = function(diagnostic) + if diagnostic.user_data ~= nil and diagnostic.user_data.lsp.code ~= nil then + return string.format("%s: %s", diagnostic.user_data.lsp.code, diagnostic.message) + end + return diagnostic.message + end, + } +} + +local on_attach = function(_, bufnr) + buf_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + buf_keymap(bufnr, 'n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>') + buf_keymap(bufnr, 'n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>') + buf_keymap(bufnr, 'n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>') + buf_keymap(bufnr, 'n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>') + buf_keymap(bufnr, 'n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>') + buf_keymap(bufnr, 'n', '<leader>D', '<cmd>lua vim.lsp.buf.type_definition()<CR>') + buf_keymap(bufnr, 'n', '<leader>rn', '<cmd>lua vim.lsp.buf.rename()<CR>') + buf_keymap(bufnr, 'n', 'gr', ':Telescope lsp_references<CR>') + + buf_keymap(bufnr, 'n', '<leader>ca', ':CodeActionMenu<CR>') + buf_keymap(bufnr, 'v', '<leader>ca', ':CodeActionMenu<CR>') + + buf_keymap(bufnr, 'n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>') + buf_keymap(bufnr, 'n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>') + buf_keymap(bufnr, 'n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>') + buf_keymap(bufnr, 'n', '<leader>F', '<cmd>lua vim.lsp.buf.format { async = true }<CR>') + + -- if _.server_capabilities.document_formatting then + -- vim.api.nvim_command [[augroup Format]] + -- vim.api.nvim_command [[autocmd! * <buffer>]] + -- vim.api.nvim_command [[autocmd BufWritePre <buffer> lua vim.lsp.buf.formatting_seq_sync()]] + -- vim.api.nvim_command [[augroup END]] + -- end + +end + + + +require'lspconfig'.eslint.setup{ + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + }, + handlers = { + ['window/showMessageRequest'] = function(_, result, _) return result end, + }, +} + +require'lspconfig'.tsserver.setup{ + on_attach = on_attach, + flags = { + debounce_text_changes = 150, + } +} +-- suppress error messages from lang servers +vim.notify = function(msg, log_level, _) + if msg:match 'exit code' then + return + end + if log_level == vim.log.levels.ERROR then + vim.api.nvim_err_writeln(msg) + else + vim.api.nvim_echo({ { msg } }, true, {}) + end +end diff --git a/.config/nvim/lua/user/plugins/lualine.lua b/.config/nvim/lua/user/plugins/lualine.lua new file mode 100644 index 0000000..6ac5cee --- /dev/null +++ b/.config/nvim/lua/user/plugins/lualine.lua @@ -0,0 +1,64 @@ +-- local tabLineHl = vim.api.nvim_get_hl_by_name('TabLine', true) +-- local bg = '#' .. bit.tohex(tabLineHl.background, 6) +-- local fg = '#' .. bit.tohex(tabLineHl.foreground, 6) +local fg = '#F8F8F2' -- DraculaFg +local bg = '#21222C' -- DraculaBgDark +local separator = '#424450' -- DraculaSubtle +-- local fg = '#' .. bit.tohex(vim.api.nvim_get_hl_by_name('DraculaFg', true).foreground, 6) +-- local bg = '#' .. bit.tohex(vim.api.nvim_get_hl_by_name('DraculaBgDark', true).background, 6) +-- local separator = '#' .. bit.tohex(vim.api.nvim_get_hl_by_name('DraculaSubtle', true).foreground, 6) + +require('lualine').setup { + options = { + component_separators = '', + section_separators = '▕', + theme = { + normal = { + a = { fg = fg, bg = bg }, + b = { fg = fg, bg = bg }, + c = { fg = fg, bg = bg }, + x = { fg = fg, bg = bg }, + y = { fg = fg, bg = bg }, + z = { fg = fg, bg = bg }, + }, + inactive = { c = { fg = fg, bg = bg } }, + }, + }, + sections = { + lualine_a = { + 'mode', + { '"▏"', color = { fg = separator } }, + }, + lualine_b = { + 'branch', + 'diff', + { '"▕"', color = { fg = separator } }, + '"🖧 " .. tostring(#vim.tbl_keys(vim.lsp.buf_get_clients()))', + { 'diagnostics', sources = { 'nvim_diagnostic' } }, + { '"▏"', color = { fg = separator } }, + }, + lualine_c = { 'filename' }, + lualine_x = { + 'filetype', + 'encoding', + 'fileformat', + }, + lualine_y = { + { '"▕"', color = { fg = separator } }, + '(vim.bo.expandtab and "␠ " or "⇥ ") .. " " .. vim.bo.shiftwidth', + { '"▏"', color = { fg = separator } }, + }, + lualine_z = { + 'location', + 'progress', + }, + }, + -- tabline = { + -- lualine_a = { + -- {'buffers'} + -- }, + -- lualine_z = { + -- {'tabs'} + -- } + -- } +} diff --git a/.config/nvim/lua/user/plugins/nvim-tree.lua b/.config/nvim/lua/user/plugins/nvim-tree.lua new file mode 100644 index 0000000..a4173e7 --- /dev/null +++ b/.config/nvim/lua/user/plugins/nvim-tree.lua @@ -0,0 +1,13 @@ +-- vim.g.nvim_tree_git_hl = 1 +vim.g.nvim_tree_highlight_opened_files = 1 +vim.g.nvim_tree_group_empty = 1 + +require('nvim-tree').setup { + git = { + ignore = false, + }, +} + +vim.cmd [[highlight NvimTreeIndentMarker guifg=#30323E]] + +vim.api.nvim_set_keymap('n', '<leader>n', ':NvimTreeFindFileToggle<CR>', { silent = true, noremap = true }) diff --git a/.config/nvim/lua/user/plugins/telescope.lua b/.config/nvim/lua/user/plugins/telescope.lua new file mode 100644 index 0000000..b1d1136 --- /dev/null +++ b/.config/nvim/lua/user/plugins/telescope.lua @@ -0,0 +1,25 @@ +local telescope = require 'telescope' +local actions = require 'telescope.actions' +local keymap = require 'lib.utils'.keymap + +keymap('n', ';f', [[<cmd>lua require('telescope.builtin').find_files()<CR>]]) +keymap('n', ';r', [[<cmd>lua require('telescope.builtin').live_grep()<CR>]]) +keymap('n', ';\\', [[<cmd>lua require('telescope.builtin').buffers()<CR>]]) + +require('telescope').setup { + defaults = { + sorting_strategy = 'ascending', + mappings = { + i = { + ["<Esc>"] = actions.close, + ['<C-Down>'] = actions.cycle_history_next, + ['<C-Up>'] = actions.cycle_history_prev, + }, + }, + file_ignore_patterns = { + '.git/', + 'node_modules/', + 'android/', + }, + } +} diff --git a/.config/nvim/lua/user/plugins/treesitter.lua b/.config/nvim/lua/user/plugins/treesitter.lua new file mode 100644 index 0000000..44cf008 --- /dev/null +++ b/.config/nvim/lua/user/plugins/treesitter.lua @@ -0,0 +1,30 @@ +require('nvim-treesitter.configs').setup { + indent = { + enable = true, + }, + highlight = { + enable = true, + disable = { 'NvimTree' }, + additional_vim_regex_highlighting = true, + }, + textobjects = { + select = { + enable = true, + lookahead = true, + keymaps = { + ['ia'] = '@parameter.inner', + -- ['aa'] = { + -- php = "" '@parameter.outer', + + -- python = "(function_definition) @function", + -- cpp = "(function_definition) @function", + -- c = "(function_definition) @function", + -- java = "(method_declaration) @function", + -- }, + }, + }, + }, + context_commentstring = { + enable = true, + }, +} |
