summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/user/plugins
diff options
context:
space:
mode:
authorcafebabe <77344710+yuzu-eva@users.noreply.github.com>2022-05-21 23:33:01 +0200
committercafebabe <77344710+yuzu-eva@users.noreply.github.com>2022-05-21 23:33:01 +0200
commit16d566da938b049dda8998beec43e3cd85c4ed47 (patch)
treee138daaf0e6496f2f72659766f54544cda9c1245 /.config/nvim/lua/user/plugins
parent5825759403e9f316c03c771f64a89ac89547b4de (diff)
Add nvim configuration
Diffstat (limited to '.config/nvim/lua/user/plugins')
-rw-r--r--.config/nvim/lua/user/plugins/cmp.lua62
-rw-r--r--.config/nvim/lua/user/plugins/dracula.lua12
-rw-r--r--.config/nvim/lua/user/plugins/lspconfig.lua76
-rw-r--r--.config/nvim/lua/user/plugins/lualine.lua64
-rw-r--r--.config/nvim/lua/user/plugins/nvim-tree.lua13
-rw-r--r--.config/nvim/lua/user/plugins/telescope.lua25
-rw-r--r--.config/nvim/lua/user/plugins/treesitter.lua30
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,
+ },
+}